openapi: 3.0.3
info:
  version: "7"
  title: Data Hub
  description: >
    The Data Hub API provides access to information that is managed by SAS Visual Investigator. This API facilitates describing data that resides in either internal writable databases or external customer-controlled read-only databases. Once the data definitions are provided as entity types, the data becomes accessible within SAS Visual Investigator. This API also provides mechanisms for fetching individual entity records that were defined by the entity type definitions. <br/> <br/>
  contact:
    name: SAS Developers
    email: devex@sas.com
    url: https://developer.sas.com
  license:
    name: SAS Institute Inc.
tags:
  - name: AsyncJobs
    description: End point to create asynchronous jobs.
  - name: Data Stores
    description: Contains the operations related to data store configurations.
  - name: Documents
    description: Contains the operations related to documents.
  - name: Relationship Links
    description: Contains the operations related to relationship links.
  - name: Entity Types
    description: Contains the operations related to managing entity type metadata.
  - name: Reference Lists
    description: Contains the operations related to managing reference list metadata.
  - name: Relationship Types
    description: Contains the operations related to managing relationship type metadata.
  - name: Solutions
    description: Contains the operations related to managing solution metadata.
  - name: Transaction Types
    description: Contains the operations related to managing transaction type metadata.
  - name: Attachments
    description: Contains the operations related to attachments.
  - name: Action History
    description: Contains the operations related to action history.
  - name: Version History
    description: Contains the operations related to version history.
  - name: Administration
    description: Contains the operations related to administering the service.
  - name: Comments
    description: Contains the operations related to comments.
  - name: Files
    description: Contains the operations related to files.
  - name: Sheets
    description: Contains the operations related to sheets.
  - name: Icons
    description: Contains the operations related to icons.
  - name: Conditions
    description: Contains the operations related to conditions.
servers:
  - url: https://example.com/svi-datahub
    description: >
      The Data Hub service serves all requests at this URL.
paths:
  "/documents/{entityTypeName}/{documentId}/attachments":
    head:
      summary: Get headers for all file attachment metadata associated with a document
      operationId: headersForDocumentAttachments
      description: >
        Gets headers for all file attachment metadata that is associated with a document. The "location" property in the response contains the relative URI path to the document. To retrieve the contents of an attachment, use that URI to download the document from the Files service:

        ``` GET ${hostAndPort}${valueOfLocationProperty} ``` . <br></br>

        Note that `hostAndPort` is the host and port of the Files service.
      tags:
        - Attachments
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first document in a page.
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of attachments to return in this page of results. The actual number of returned items is  fewer if the collection is exhausted.
        - name: sortBy
          in: query
          schema:
            type: string
            default: uploadedAt:descending
          description: The criteria by which to sort the attachments.
        - name: filter
          in: query
          schema:
            type: string
          description: The criteria by which to filter the attachments.
      responses:
        "200":
          headers: {}
          description: >
            The request succeeded.
        "400":
          description: The request was invalid.
    get:
      summary: Get all file attachment metadata associated with a document
      operationId: getDocumentAttachments
      description: >
        The "location" property in the response contains the relative URI path to the document. To retrieve the contents of an attachment, use that URI to download the document from the Files service:

        ``` GET ${hostAndPort}${valueOfLocationProperty} ``` . <br></br>

        Note that `hostAndPort` is the host and port of the Files service.
      tags:
        - Attachments
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first document in a page.
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of attachments to return in this page of results. The actual number of returned items is  fewer if the collection is exhausted.
        - name: sortBy
          in: query
          schema:
            type: string
            default: uploadedAt:descending
          description: The criteria by which to sort the attachments.
        - name: filter
          in: query
          schema:
            type: string
          description: The criteria by which to filter the attachments.
      responses:
        "200":
          headers: {}
          description: >
            The request succeeded.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    post:
      summary: Create file attachment metadata on a document
      operationId: createDocumentAttachment
      description: >
        Creates file attachment metadata on a document. To create an attachment, upload the file to the SAS Viya Files service, and then use the Files service response to construct a request to the Data Hub createDocumentAttachment endpoint. </br></br>

        Here is an example of how to upload a file to the Files service (as of version 1.1 of the Files service): 
            
        ``` POST /files/files?parentFolderUri=/folders/folders/${clientGeneratedUuid} ```

        </br></br> The payload of the request is the file. Refer to the Files API documentation for complete information about how to upload a file. </br></br>

        The client generates the UUID, which
         acts as the file name. That UUID is used in the Data Hub attachments request
        in the "id" and "location" properties. The "location" property is the relative URI path to download the document from the Files service. Obtain additional property values, such as "type" and "size", from the response of the POST request to the Files service.
      tags:
        - Attachments
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
      requestBody:
        description: The metadata that associates a file with a document.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/file"
            example:
              $ref: "#/components/examples/fileExample/value"
          application/vnd.sas.datahub.file:
            schema:
              $ref: "#/components/schemas/file"
            example:
              $ref: "#/components/examples/fileExample/value"
      responses:
        "201":
          description: The file attachment metadata on a document was created.
          headers:
            Location:
              description: A path to the newly created attachment.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
            application/vnd.sas.datahub.file:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{entityTypeName}/{documentId}/attachments/{attachmentId}":
    head:
      summary: Get headers for file attachment metadata associated with a document
      operationId: headersForDocumentAttachment
      description: >
        Gets headers for the file attachment metadata that is associated with a document. The "location" property is the relative URI path to download the document from the Files service. To retrieve the contents of an attachment, use the URI that is provided in the "location" field:

        ``` GET ${hostAndPort}${valueOfLocationProperty} ``` . <br></br>

        Note that `hostAndPort` is the host and port of the Files service.
      tags:
        - Attachments
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          required: true
          description: The ID for the document.
        - name: attachmentId
          in: path
          schema:
            type: string
          required: true
          description: The ID for the attachment metadata.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "400":
          description: The request was invalid.
        "404":
          description: The attachment was not found.
    get:
      summary: Get file attachment metadata associated with a document
      operationId: getDocumentAttachment
      description: >
        Gets the file attachment metadata that is associated with a document. The "location" property is the relative URI path to download the document from the Files service. To retrieve the contents of an attachment, use the URI that is provided in the "location" field:

        ``` GET ${hostAndPort}${valueOfLocationProperty} ``` . <br></br>

        Note that `hostAndPort` is the host and port of the Files service.
      tags:
        - Attachments
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          required: true
          description: The ID for the document.
        - name: attachmentId
          in: path
          schema:
            type: string
          required: true
          description: The ID for the attachment metadata.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
            application/vnd.sas.datahub.file:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The attachment was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    delete:
      summary: Delete an attachment from a document
      operationId: deleteDocumentAttachments
      description: >
        Deletes an attachment that is associated with a document. The metadata and the file that are stored by the Files service are deleted.
      tags:
        - Attachments
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          required: true
          description: The ID for the document.
        - name: attachmentId
          in: path
          schema:
            type: string
          required: true
          description: The ID for the attachment metadata.
      responses:
        "204":
          description: The attachment was deleted.
        "404":
          description: The attachment was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/comments":
    head:
      summary: Get headers for a collection of comments associated with an object
      operationId: headersForRecordComments
      description: >
        Gets headers for a collection of comments by object type and ID.
      tags:
        - Comments
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object from which to get the comments.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first comment on the object.
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of comments to return in this page of results. The actual number of returned comments is fewer if the collection is exhausted.
        - name: sortBy
          in: query
          description: The sort criteria for the request.
          schema:
            type: string
        - name: filter
          in: query
          description: The filter criteria for the request.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
        "400":
          description: >
            The request was invalid. The objectTypeName or ID was null or empty.
        "404":
          description: The object was not found or the user did not have permission to view it.
    get:
      summary: Get a collection of comments associated with an object
      operationId: getRecordComments
      description: >
        Gets a collection of comments by object type and ID.
      tags:
        - Comments
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object from which to get the comments.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first comment on the object.
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of comments to return in this page of results. The actual number of returned comments is fewer if the collection is exhausted.
        - name: sortBy
          in: query
          description: The sort criteria for the request.
          schema:
            type: string
        - name: filter
          in: query
          description: The filter criteria for the request.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/commentCollection"
              example:
                $ref: "#/components/examples/commentCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/commentCollection"
              example:
                $ref: "#/components/examples/commentCollectionExample/value"
        "400":
          description: >
            The request was invalid. The objectTypeName or ID was null or empty.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The object was not found or the user did not have permission to view it.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    post:
      summary: Create a new comment
      operationId: createDocumentComment
      description: >
        Creates a new comment for the specified object type and object ID.
      tags:
        - Comments
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object to which to post the comment.
          required: true
      requestBody:
        description: The comment was created.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/comment"
            example:
              $ref: "#/components/examples/commentExample/value"
      responses:
        "201":
          description: The comment was successfully created.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
        "400":
          description: >
            Potential reasons for a 400 error: -The objectTypeName was null or empty. -The ID was null or empty. -The comment was null. -The comment detail was empty.

            The error message that is returned clarifies the reason for the 400 error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The object was not found or the user did not have permission to view it.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    put:
      summary: Update a comment
      operationId: updateComment
      description: >
        Updates a comment on an object by specifying the object type and ID.

        During an Update operation, all properties of a comment are read-only except the category. This is for security and audit purposes in order to keep historical data accurate.
      tags:
        - Comments
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object in which to update the comment.
          required: true
        - name: If-Match
          in: header
          schema:
            type: string
          description: >
            The ETag of the representation in the request. If this header value is provided, it must match the ETag of the current version of the resource on the server. Otherwise, the server responds with a 412 error.
          required: false
      requestBody:
        description: The comment to update.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/comment"
            example:
              $ref: "#/components/examples/commentExample/value"
      responses:
        "200":
          description: >
            The request succeeded. The comment was created.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/comment"
              example:
                $ref: "#/components/examples/commentExample/value"
        "400":
          description: >
            Potential reasons for a 400 error: - The objectTypeName was null or empty. - The ID was null or empty. - The comment was null. - Anything other than the comment category was changed.

            The error message that is returned clarifies the reason for the 400 error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The object was not found, the user did not have permission to view it, or the comment does not exist.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The object in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/comments/categories":
    head:
      summary: Get headers for a collection of comment category summaries that are associated with an object
      operationId: headersForCommentCategories
      description: >
        Gets headers for a collection of comment category summaries by object type and ID.
      tags:
        - Comments
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object from which to get the comments.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "400":
          description: The objectTypeName or ID was null or empty.
        "404":
          description: The object was not found or the user did not have permission to view it.
    get:
      summary: Get a collection of comment category summaries that are associated with an object
      operationId: getCommentCategories
      description: >
        Gets a collection of comment category summaries by object type and ID.
      tags:
        - Comments
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object from which to get the comments.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/commentCategorySummary"
              example:
                $ref: "#/components/examples/commentCategoryListExample/value"
        "400":
          description: The objectTypeName or ID was null or empty.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The object was not found or the user did not have permission to view it.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /conditionEvaluations:
    post:
      summary: Bulk evaluate conditions
      operationId: createConditionEvaluations
      description: >
        Evaluate a bulk condition evaluation request. The response is a bulk condition evaluation response indicating the results of evaluating the conditions. Each individual evaluation request in the bulk request can succeed or fail independently. Each successful evaluation yields a condition evaluation response object that contains a `result` property. Each failed evaluation yields a condition evaluation response object that contains error details. Duplicate condition evaluation request objects in the REST request are ignored, and together result in only one condition evaluation response object in the REST response. The order of the condition evaluation response objects in the REST response is not guaranteed. In order to determine which condition evaluation response corresponds to which condition evaluation request, do not use the ordering. Instead, check the `requested` property of the condition  evaluation response object to determine which request it corresponds to.
      tags:
        - Conditions
      requestBody:
        description: The bulk condition evaluation request.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/bulkConditionEvaluationRequest"
            example:
              $ref: "#/components/examples/bulkConditionEvaluationRequestExample/value"
          application/vnd.sas.investigation.data.condition.evaluation.bulk.request:
            schema:
              $ref: "#/components/schemas/bulkConditionEvaluationRequest"
            example:
              $ref: "#/components/examples/bulkConditionEvaluationRequestExample/value"
      responses:
        "201":
          description: >
            The condition evaluation requests were processed.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkConditionEvaluationResponse"
              example:
                $ref: "#/components/examples/bulkConditionEvaluationResponseExample/value"
            application/vnd.sas.investigation.data.condition.evaluation.bulk.response:
              schema:
                $ref: "#/components/schemas/bulkConditionEvaluationResponse"
              example:
                $ref: "#/components/examples/bulkConditionEvaluationResponseExample/value"
        "400":
          description: >
            The request was invalid.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/dataStores:
    get:
      summary: Fetch a data store by name
      operationId: getDataStoreByName
      description: >
        Retrieves a data store that matches a specific name.  The user name and password for the data store (required for the Create operation) are not returned in the response.
      tags:
        - Data Stores
      parameters:
        - name: name
          required: true
          in: query
          description: The name of the data store.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The requested data store object is returned.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/dataStore"
              example:
                $ref: "#/components/examples/dataStoreExample/value"
        "404":
          description: Invalid data store name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    post:
      summary: Create a data store
      operationId: createDataStore
      description: >
        Creates a new data store.  Prior to version 10.5.1 of SAS Visual Investigator, this process could take from 30-60 seconds to complete. The "handle" property must be generated by the client.  The string must be unique and contain no special characters. The "username" and "password" properties are required.
      tags:
        - Data Stores
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/dataStore"
            example:
              $ref: "#/components/examples/dataStoreExample/value"
        description: The definition of the data store object to be inserted.
        required: true
      responses:
        "201":
          description: A data store was created.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/dataStore"
              example:
                $ref: "#/components/examples/dataStoreExample/value"
        "400":
          description: Invalid data store definition.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/admin/dataStores/repair/{dataStoreName}":
    put:
      summary: Repair a data store
      operationId: repairDataStore
      description: >
        Repairs a data store. At times, data store information can get into a bad state. For example, during a release migration when data store metadata is being moved and a failure occurs. In these situations, use this endpoint along with the full data store content with the user name and password. Data Hub attempts to repair the state of the data store.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreName
          required: true
          in: path
          description: The name of the data store.
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/dataStore"
            example:
              $ref: "#/components/examples/dataStoreExample/value"
        description: The data store object that to be repaired.
        required: true
      responses:
        "200":
          description: The request succeeded. The data store was repaired.
          content:
            text/plain:
              schema:
                type: string
              example: The data store 'oracle_store' with ID '2' was successfully repaired.
        "400":
          description: Invalid data store definition.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The data store in the request body is out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "428":
          description: The data store in the request body did not contain a version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/dataStores/all:
    get:
      summary: Fetch all data stores
      operationId: getAllDataStores
      description: Retrieves a list of all available data stores.
      tags:
        - Data Stores
      parameters:
        - name: includeInternal
          required: true
          in: query
          description: Specifies whether to include internal data stores. Internal data stores are used by Data Hub or other components of SAS Visual Investigator.
          schema:
            type: string
            default: false
      responses:
        "200":
          description: The request succeeded. An array of data stores is returned.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/dataStore"
              example:
                $ref: "#/components/examples/dataStoreCollectionExample/value"
  "/admin/dataStores/{dataStoreId}/credentials":
    head:
      summary: Get headers for user name and password for a data store
      operationId: headersForDataStoreCredentials
      description: >
        Retrieves headers for the data store user name and password. Other metadata about the data store is not included in the response.

        This endpoint requires the "svi.administration.datastore_credentials" capability. Be careful about who is given this capability.  This endpoint is designed to be used by other SAS services that need the data store credentials.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store.
          schema:
            type: integer
      responses:
        "200":
          description: >
            The request succeeded. The requested data store credential object is returned. The password is Base64-encoded.
          headers: {}
        "404":
          description: Invalid data store ID.
    get:
      summary: Fetch user name and password for a data store
      operationId: getDataStoreCredentials
      description: >
        Retrieves the data store user name and password. Other metadata about the data store is not included in the response.

        This endpoint requires the "svi.administration.datastore_credentials" capability. Be careful about who is given this capability.  This endpoint is designed to be used by other SAS services that need the data store credentials.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store.
          schema:
            type: integer
      responses:
        "200":
          description: >
            The request succeeded. The requested data store credential object is returned. The password is Base64-encoded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/dataStoreCredentials"
              example:
                $ref: "#/components/examples/dataStoreCredentialExample/value"
        "404":
          description: Invalid data store ID.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/dataStores/connectionTest:
    post:
      summary: Test the connection to the data store that is in the request body
      operationId: createConnectionTest
      description: >
        Attempts to connect to the data store that is specified in the request body.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/dataStore"
            example:
              $ref: "#/components/examples/dataStoreExample/value"
        description: The data store object that is used to test the connection.
        required: true
      responses:
        "204":
          description: The connection attempt was successful or connection testing has been disabled via the configuration settings.
        "400":
          description: >
            Bad request. The possible causes are an invalid database type, an invalid database name, a missing host or port, or the inability to establish a socket connection. The error message and logs should clarify the issue. 
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/dataStores/default:
    get:
      summary: Get the default data store
      operationId: getDefaultDataStore
      description: >
        Retrieves the default data store.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      responses:
        "200":
          description: Request succeeded. The default data store object is returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/dataStore"
              example:
                $ref: "#/components/examples/dataStoreExample/value"
  /admin/dataStores/supportedDatabaseTypes:
    get:
      summary: Gets a list of supported database types
      operationId: getSupportedDatabaseTypes
      description: >
        Retrieves a list of supported database types.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: includeAll
          required: false
          in: query
          description: >
            By default, this operation returns only manageable types. These are the types that you can add/modify/delete in the SAS Visual Investigator Administration user interface. To force all the types to be returned, set this property to `true`.
          schema:
            type: boolean
            default: false
      responses:
        "200":
          description: The request succeeded. A list of supported database types is returned.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/dataStoreSupportedType"
              example:
                $ref: "#/components/examples/dataStoreSupportedTypeCollectionExample/value"
  "/admin/dataStores/{dataStoreId}":
    head:
      summary: Get headers for a data store by ID
      operationId: headersForDataStore
      description: >
        Retrieves headers for a data store that matches the specified data store ID.  The user name and password for the data store (required for the Create operation) are not returned in the response.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store.
          schema:
            type: integer
      responses:
        "200":
          description: The request succeeded. The data store with the specified ID is returned. If no data store exists with that ID, null is returned.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
    get:
      summary: Get a data store by ID
      operationId: getDataStore
      description: >
        Retrieves a data store that matches the specified data store ID.  The user name and password for the data store (required for the Create operation) are not returned in the response.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store.
          schema:
            type: integer
      responses:
        "200":
          description: The request succeeded. The data store with the specified ID is returned. If no data store exists with that ID, null is returned.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/dataStore"
              example:
                $ref: "#/components/examples/dataStoreExample/value"
    delete:
      summary: Delete a data store by ID
      operationId: deleteDataStore
      description: >
        Deletes the data store that matches the specified data store ID.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store.
          schema:
            type: integer
      responses:
        "204":
          description: The data store was deleted or there was no data store with the specified ID.
    put:
      summary: Update a data store by ID
      operationId: updateDataStore
      description: >
        Updates the data store with the specified ID to the data store definition that is contained in the request body.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store.
          schema:
            type: integer
        - name: If-Match
          in: header
          schema:
            type: string
          description: >
            The ETag of the representation in the request. If this header value is provided, it must match the ETag of the current version of the resource on the server. Otherwise, the server responds with a 412 error.
          required: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/dataStore"
            example:
              $ref: "#/components/examples/dataStoreExample/value"
        description: The data store object to update the existing data store.
        required: true
      responses:
        "200":
          description: The request succeeded. The updated data store is returned.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/dataStore"
              example:
                $ref: "#/components/examples/dataStoreExample/value"
        "400":
          description: >
            The request was invalid. The error message should clarify the issue. Possible reasons include: - The data store credentials are null in the request body's data store definition. - The data store handle is changed in the request body (this is not allowed). - The name is changed in the request body (this is not allowed). - A property is missing in the request body's data store definition.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The object in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/admin/dataStores/{dataStoreId}/tables":
    head:
      summary: Get headers for all table names from a data store
      operationId: headersForTableNames
      description: >
        Returns headers for a list of all table names from the data store with the specified ID.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store from which to get the table names.
          schema:
            type: integer
      responses:
        "200":
          description: The request succeeded. A list of the data store's table names is returned.
          headers: {}
        "404":
          description: A data store with the specified ID was not found.
    get:
      summary: Get all table names from a data store
      operationId: getTableNames
      description: >
        Returns a list of all table names from the data store with the specified ID.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store from which to get the table names.
          schema:
            type: integer
      responses:
        "200":
          description: The request succeeded. A list of the data store's table names is returned.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
                - table_name_1
                - table_name_2
                - table_name_3
        "404":
          description: A data store with the specified ID was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/admin/dataStores/{dataStoreId}/tables/{tableName}":
    head:
      summary: Get headers for table metadata from a data store
      operationId: headersForTableDetailsDefaultSchema
      description: >
        Returns headers for table metadata from a data store for the specified data store ID and table name.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store from which to get the table.
          schema:
            type: integer
        - name: tableName
          required: true
          in: path
          description: The name of the table from which to get the metadata.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The metadata for the table is returned.
          headers: {}
        "404":
          description: A data store with the specified ID was not found.
    get:
      summary: Get table metadata from a data store
      operationId: getTableDetailsDefaultSchema
      description: >
        Returns table metadata from a data store for the specified data store ID and table name.

        This endpoint requires the "svi.administration.core_metadata" capability.
      tags:
        - Data Stores
      parameters:
        - name: dataStoreId
          required: true
          in: path
          description: The ID of the data store from which to get the table.
          schema:
            type: integer
        - name: tableName
          required: true
          in: path
          description: The name of the table from which to get the metadata.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The metadata for the table is returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/tableMetadata"
              example:
                $ref: "#/components/examples/tableExample/value"
        "404":
          description: A data store with the specified ID was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /documents:
    post:
      summary: Create a new internal document
      operationId: createNewInternalDocument
      description: >
        Create a new internal document. If child documents are included in the request body, new child documents are also created.
      tags:
        - Documents
      parameters:
        - name: _operation
          in: query
          schema:
            type: string
            enum:
              - CREATE_AND_LINK
          description: >
            When this query parameter is set to `CREATE_AND_LINK`, the request body contains both an enriched document and a link. Both the enriched document and the link are created in one operation. In this case, the client can set the `Accept` header of this request to `application/vnd.sas.investigation.data.masked.enriched.document.and.link+json`. If it does, any masked data in the response will be replaced with dots. Otherwise, masked data in the response is omitted.
      requestBody:
        description: The document to be created.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/enrichedDocument"
            example:
              $ref: "#/components/examples/enrichedDocumentExample/value"
          application/vnd.sas.investigation.data.enriched.document:
            schema:
              $ref: "#/components/schemas/enrichedDocument"
            example:
              $ref: "#/components/examples/enrichedDocumentExample/value"
      responses:
        "201":
          description: >
            The internal document was created.
          headers:
            Location:
              description: The URI of the newly created document.
              schema:
                type: string
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/enrichedDocument"
                  - $ref: "#/components/schemas/documentAndLink"
              examples:
                enrichedDocumentExample:
                  $ref: "#/components/examples/enrichedDocumentExample"
                documentAndLinkExample:
                  $ref: "#/components/examples/documentAndLinkExample"
            application/vnd.sas.investigation.data.enriched.document:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.masked.enriched.document:
              schema:
                $ref: "#/components/schemas/maskedEnrichedDocument"
              example:
                $ref: "#/components/examples/maskedEnrichedDocumentExample/value"
            application/vnd.sas.investigation.data.masked.enriched.document.and.link:
              schema:
                $ref: "#/components/schemas/maskedDocumentAndLink"
              example:
                $ref: "#/components/examples/maskedDocumentAndLinkExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{entityTypeName}":
    head:
      summary: Get headers for a collection of documents by entity type
      operationId: headersForDocuments
      description: >
        Gets headers for a collection of documents for the specified entity type. To filter the collection of documents, submit a GET via POST request.
      tags:
        - Documents
      parameters:
        - name: Accept-Item
          in: header
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.enriched.document
              - application/vnd.sas.investigation.data.enriched.document+json
              - application/vnd.sas.investigation.data.masked.enriched.document
              - application/vnd.sas.investigation.data.masked.enriched.document+json
              - application/vnd.sas.investigation.data.minimally.masked.enriched.document
              - application/vnd.sas.investigation.data.minimally.masked.enriched.document+json
          description: The media type that the client accepts for items within the response collection.
          required: false
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first document in a page.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          description: >
            The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
        - in: query
          name: depth
          description: >
            The depth of child documents to return.  The value can be either: <ul>
              <li>'0' - No child documents are included in each document</li>
              <li>'1' - Child documents are included in each document if they exist for that document</li>
            </ul>
          schema:
            type: string
            default: 0
        - in: query
          name: includeDisplayLabel
          description: Indicates whether to generate and include the display label in the document.
          schema:
            type: boolean
            default: false
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The entity type was not found.
        "415":
          description: >
            The endpoint cannot produce collection items of the type specified in the `Accept-Item` header.
    get:
      summary: Get a collection of documents by entity type
      operationId: getDocuments
      description: >
        Gets a collection of documents for the specified entity type. To filter the collection of documents, submit a GET via POST request.

        Requesting a collection of child documents is not supported.
      tags:
        - Documents
      parameters:
        - name: Accept-Item
          in: header
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.enriched.document
              - application/vnd.sas.investigation.data.enriched.document+json
              - application/vnd.sas.investigation.data.masked.enriched.document
              - application/vnd.sas.investigation.data.masked.enriched.document+json
              - application/vnd.sas.investigation.data.minimally.masked.enriched.document
              - application/vnd.sas.investigation.data.minimally.masked.enriched.document+json
          description: The media type that the client accepts for items within the response collection.
          required: false
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs. <em>Child entity types are not supported.</em>
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first document in a page.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          description: >
            The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
        - in: query
          name: depth
          description: >
            The depth of child documents to return.  The value can be either: <ul>
              <li>'0' - No child documents are included in each document</li>
              <li>'1' - Child documents are included in each document if they exist for that document</li>
            </ul>
          schema:
            type: string
            default: 0
        - in: query
          name: includeDisplayLabel
          description: Indicates whether to generate and include the display label in the document.
          schema:
            type: boolean
            default: false
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                anyOf:
                  - type: array
                    items:
                      $ref: "#/components/schemas/enrichedDocument"
                  - type: array
                    items:
                      $ref: "#/components/schemas/maskedEnrichedDocument"
                  - type: array
                    items:
                      $ref: "#/components/schemas/minimallyMaskedEnrichedDocument"
              examples:
                enrichedDocumentCollectionExample:
                  $ref: "#/components/examples/enrichedDocumentCollectionExample"
                maskedEnrichedDocumentCollectionExample:
                  $ref: "#/components/examples/maskedEnrichedDocumentCollectionExample"
                minimallyMaskedEnrichedDocumentCollectionExample:
                  $ref: "#/components/examples/minimallyMaskedEnrichedDocumentCollectionExample"
        "404":
          description: The entity type was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "415":
          description: >
            The endpoint cannot produce collection items of the type specified in the `Accept-Item` header.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    post:
      summary: Filter a collection of documents
      operationId: getFilteredDocumentCollection
      description: >
        Filters a collection of documents by document ID or by using a custom filter.

        The type of filtering determines the media types to specify in the Content-Type header.

        This endpoint is a GET via POST. The reasoning for why a POST is needed is specified for each type of request.


        The client can specify the type of document returned in the Accept-Item header for both types of requests.

        The options are:

        <ul>
          <li>application/vnd.sas.investigation.data.document+json</li>
          <li>application/vnd.sas.investigation.data.enriched.document+json</li>
        </ul>


        Enriched documents are the document plus sheets (i.e, workspaces) and comments. A regular document does not

        include the enrichment data. Getting enriched documents is potentially less efficient than getting a document.

        You should use "application/vnd.sas.investigation.data.document" unless the enrichment data is required.


        Specifying "application/json" in a header indicates that the client would like to use the default media type

        for that header. The default media types for this endpoint are:


        | HTTP Header  | Value in header  | Value interpreted by server                                         |

        |--------------|------------------|---------------------------------------------------------------------|

        | Content-Type | application/json | application/vnd.sas.investigation.data.document.filter.request+json |

        | Accept       | application/json | application/vnd.sas.collection+json                                 |

        | Accept-Item  | application/json | application/vnd.sas.investigation.data.enriched.document+json       |


        Using the default value for the Content-Type header means that the user is making a Document Filter request. 

        Document Filter requests are requests for collections of documents that use a custom filter.


        The default item type returned is an enriched document for legacy reasons.



        **Custom filter (Document Filter Request)**



        Filter a collection of documents given the type and a filter string. This is a GET via POST request. The

        endpoint uses this design to keep the values used for filtering (the value of the "filter" property) from

        being logged.


        This request must have the following header and value:


        | HTTP Header  | HTTP Header value                                                   |

        |--------------|---------------------------------------------------------------------|

        | Content-Type | application/vnd.sas.investigation.data.document.filter.request+json |


        The body of the request will be a Document Filter Request. See the Document Filter Request model for

        more details.


        Microsoft SQL Server and Azure SQL Server have limitations on the number of parameters that can be used

        when querying databases. When using this endpoint to filter documents that are stored in an SQL Server data store,

        large and complex filter strings that contain over 2000 parameters might fail. To circumvent this limitation,

        split your filter expression into smaller expressions and make multiple requests to this endpoint. Then, combine the

        results as appropriate.


        **Filter By ID (Document ID Request)**



        Request specific documents by providing an entity type name and an array of document ID values.  Use this request

        when many documents by ID need to be requested.  There is a similar document endpoint that accepts multiple

        "id" query parameters, but it is limited by the maximum URI size allowed.  This request overcomes that limitation

        by placing the list of IDs in the body of a POST request.


        Document ID Requests must have the following header and value:


        | HTTP Header  | HTTP Header value                                                   |

        |--------------|---------------------------------------------------------------------|

        | Content-Type | application/vnd.sas.investigation.data.document.id.request+json     |


        The body of the request will be a Document ID Request. See the Document ID Request model for

        more details.


        Filtering child documents is not supported.
      tags:
        - Documents
      requestBody:
        description: >
          The parameters that are used for filtering, sorting, display labels, and the inclusion of child documents. There are two types of requests that can be made: request by ID or by using a custom filter. The default is using a custom filter. See the description for this endpoint for more details.
        content:
          application/vnd.sas.investigation.data.document.filter.request:
            schema:
              $ref: "#/components/schemas/documentFilterRequest"
            example:
              $ref: "#/components/examples/documentFilterRequestExample/value"
          application/vnd.sas.investigation.data.document.id.request:
            schema:
              $ref: "#/components/schemas/documentIdRequest"
            example:
              $ref: "#/components/examples/documentIdRequestExample/value"
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document collection belongs. <em>Child entity types are not supported.</em>
          required: true
        - in: header
          name: Accept-Item
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.enriched.document
              - application/vnd.sas.investigation.data.enriched.document+json
              - application/vnd.sas.investigation.data.masked.enriched.document
              - application/vnd.sas.investigation.data.masked.enriched.document+json
              - application/vnd.sas.investigation.data.document
              - application/vnd.sas.investigation.data.document+json
              - application/vnd.sas.investigation.data.masked.document
              - application/vnd.sas.investigation.data.masked.document+json
          required: false
          description: When making a request to filter documents, specifies the media type of the items returned.
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/enrichedDocumentCollection"
                  - $ref: "#/components/schemas/plainDocumentCollection"
                  - $ref: "#/components/schemas/maskedEnrichedDocumentCollection"
                  - $ref: "#/components/schemas/maskedDocumentCollection"
              examples:
                enrichedDocumentResourceCollection:
                  $ref: "#/components/examples/enrichedDocumentResourceCollectionExample"
                documentResourceCollection:
                  $ref: "#/components/examples/plainDocumentResourceCollectionExample"
                maskedEnrichedDocumentCollection:
                  $ref: "#/components/examples/maskedEnrichedDocumentResourceCollectionExample"
                maskedDocumentCollection:
                  $ref: "#/components/examples/maskedDocumentResourceCollectionExample"
            application/vnd.sas.collection:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/enrichedDocumentCollection"
                  - $ref: "#/components/schemas/plainDocumentCollection"
                  - $ref: "#/components/schemas/maskedEnrichedDocumentCollection"
                  - $ref: "#/components/schemas/maskedDocumentCollection"
              examples:
                enrichedDocumentResourceCollection:
                  $ref: "#/components/examples/enrichedDocumentResourceCollectionExample"
                documentResourceCollection:
                  $ref: "#/components/examples/plainDocumentResourceCollectionExample"
                maskedEnrichedDocumentCollection:
                  $ref: "#/components/examples/maskedEnrichedDocumentResourceCollectionExample"
                maskedDocumentCollection:
                  $ref: "#/components/examples/maskedDocumentResourceCollectionExample"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The type of document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "415":
          description: An unsupported media type was provided.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{entityTypeName}/{documentId}":
    head:
      summary: Get headers for a document by ID
      operationId: headersForDocument
      description: >
        Gets headers for a document by ID. Both internal and external documents can be read.
      tags:
        - Documents
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - in: query
          name: depth
          description: >
            The depth of child documents to return. Valid values are: <ul>
              <li>'0' - No child documents are included in each document</li>
              <li>'1' - Child documents are included in each document if they exist for that document</li>
            </ul>
          schema:
            type: string
            default: 0
        - in: query
          name: includeDisplayLabel
          description: Indicates whether to generate and include the display label in the document.
          schema:
            type: boolean
            default: false
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "400":
          description: The request was invalid.
        "404":
          description: The document was not found.
    get:
      summary: Get a document by ID
      operationId: getDocument
      description: >
        Gets a document by ID. You can use a parameter to specify whether child documents are returned. Both internal and external documents can be read.
      tags:
        - Documents
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - in: query
          name: depth
          description: >
            The depth of child documents to return. Valid values are: <ul>
              <li>'0' - No child documents are included in each document</li>
              <li>'1' - Child documents are included in each document if they exist for that document</li>
            </ul>
          schema:
            type: string
            default: 0
        - in: query
          name: includeDisplayLabel
          description: Indicates whether to generate and include the display label in the document.
          schema:
            type: boolean
            default: false
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.enriched.document:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.masked.enriched.document:
              schema:
                $ref: "#/components/schemas/maskedEnrichedDocument"
              example:
                $ref: "#/components/examples/maskedEnrichedDocumentExample/value"
            application/vnd.sas.investigation.data.minimally.masked.enriched.document:
              schema:
                $ref: "#/components/schemas/minimallyMaskedEnrichedDocument"
              example:
                $ref: "#/components/examples/minimallyMaskedEnrichedDocumentExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    put:
      summary: Update an internal document
      operationId: updateInternalDocument
      description: >
        Updates an internal document. This is an appropriate way to add child documents or worksheets to the document. The content
         of the request is the existing document. Updating external documents is not allowed.
      tags:
        - Documents
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - name: Accept
          in: header
          description: >
            For document fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Accept" HTTP header can be used to control how masked fields are handled during updates. If this HTTP  header is not provided or is set to "application/json", then masked field values that are set to null will be ignored. If the "Accept" header is set to "application/vnd.sas.investigation.data.masked.document+json" then  masked fields that are set to the mask template (nine dots) will be ignored. The "Accept" header value should  match the data masking approach that was used to fetch data before an update is performed.
          required: false
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.enriched.document+json
              - application/vnd.sas.investigation.data.masked.enriched.document+json
      requestBody:
        description: A modified version of an existing document.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/enrichedDocument"
            example:
              $ref: "#/components/examples/enrichedDocumentExample/value"
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.enriched.document:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.masked.enriched.document:
              schema:
                $ref: "#/components/schemas/maskedEnrichedDocument"
              example:
                $ref: "#/components/examples/maskedEnrichedDocumentExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The document in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "428":
          description: The document in the request body did not contain a version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    patch:
      summary: Patch a document
      operationId: patchDocument
      description: >
        Applies a patch to a document. This enables a client to make changes to a document without needing to load the entire document. The request body contains a description of the changes to be made to the document, which is represented by a json-patch object. For more information about json-patch, refer to [jsonpatch.com](https://jsonpatch.com).
      tags:
        - Documents
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - name: If-Match
          in: header
          schema:
            type: integer
          description: >
            The version of the document to update. This parameter is required for documents of entity types that have a version field configured. If a version field is configured, this value must match the most recent version of the document. If the value does not match the most recent version of the document, the patch operation fails. This helps prevent conflicting edits from being applied to a document.
      requestBody:
        description: >
          A json-patch specification of changes to make to the document. Copy and move operations cannot use a masked field value as their source. Test operations cannot reference masked field values.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/jsonPatch"
            example:
              $ref: "#/components/examples/jsonPatchExample/value"
          application/json-patch:
            schema:
              $ref: "#/components/schemas/jsonPatch"
            example:
              $ref: "#/components/examples/jsonPatchExample/value"
      responses:
        "200":
          description: >
            The request succeeded. The response body contains the document after the application of the patch.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.enriched.document:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.masked.enriched.document:
              schema:
                $ref: "#/components/schemas/maskedEnrichedDocument"
              example:
                $ref: "#/components/examples/maskedEnrichedDocumentExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The document in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "428":
          description: The document in the request body did not contain a version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    delete:
      summary: Delete an internal document
      description: Deletes an internal document. Deleting external documents is not allowed.
      operationId: deleteInternalDocument
      tags:
        - Documents
      parameters:
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
      responses:
        "204":
          description: The document was deleted.
        "404":
          description: The document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /documents/bulk:
    post:
      summary: Bulk create and update documents
      operationId: bulkUploadInternalDocuments
      description: >
        Creates and updates internal documents in bulk. The input is a list of document objects. Each document represents

        either a Create or Update operation, depending on its form. The output is a list of operation summary results.


        The input for the request is a SAS collection, which looks like the following:
          ```json
          {
            "items":[...]
          }
          ```
        Each element in "items" represents a series of records to be inserted or updated. If a given record includes a primary

        key, then it is treated as an update. Otherwise, it is a Create operation. All locks, unlocks, creates,

        and updates are processed internally by the server.


        The response from the request is another SAS collection with summary results for each item that was sent.

        Result items are in the same order as the input collection. This is especially important if you need

        to capture the newly generated primary keys of values that were inserted. If there is a problem, there will

        be an "error" property in the results for the item that had issues. If some items return errors, it does

        not prevent other valid records from being successfully processed.
      tags:
        - Documents
      parameters:
        - name: Content-Item-Type
          in: header
          description: >
            For document fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Content-Item-Type" HTTP header can be used to control how masked fields are handled with bulk updates. If this  HTTP header is not provided, then masked field values that are set to null will be ignored. If the "Content-Item-Type"  header is set to "application/vnd.sas.investigation.data.masked.document+json" then masked fields that are set to  the mask template (nine dots) will be ignored. The "Content-Item-Type" header value should match the data masking  approach that was used to fetch data before an update is performed.
          required: false
          schema:
            type: string
            enum:
              - application/vnd.sas.investigation.data.masked.document+json
      requestBody:
        content:
          application/vnd.sas.collection:
            schema:
              $ref: "#/components/schemas/sasCollection"
            example:
              $ref: "#/components/examples/bulkOperationExample/value"
      responses:
        "201":
          description: >
            Internal documents were created or updated. See items in the collection to determine whether the operation for an individual document succeeded or failed.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkOperationResultCollection"
              example:
                $ref: "#/components/examples/documentBulkOperationResultCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/bulkOperationResultCollection"
              example:
                $ref: "#/components/examples/documentBulkOperationResultCollectionExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "415":
          description: >
            The endpoint does not support collection items of the type specified in the `Content-Item-Type` request header.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{entityTypeName}/{documentId}/{relationshipTypeName}":
    head:
      summary: Get headers for other documents related to an individual document
      operationId: headersForRelatedDocuments
      description: >
        For a given document and relationship type name, finds all the documents that are related to the given document according to the

        given relationship type.


        Since the child documents of a top-level document are related to it by a special kind of relationship type, this endpoint can be used

        to fetch children of a document. In this case, the name of the relationship type is identical to the child entity type, so use

        the child entity type name as the `relationshipTypeName` path parameter.


        The related documents can be filtered by a date range using the date and time fields on the entity type of the related document.


        It is important to clarify that there are two entity types to consider:

        the entity type that is specified in the path and the related entity type that is returned. Distinguishing between the

        two is important when filtering by a date range.


        For example, assume there is a relationship type defined between an entity type named "entityTypeA" and another

        entity type named "entityTypeB" that is called "fromAToB". For the request GET

        /documents/entityTypeA/{documentId}/fromAtoB, "entityTypeB" is the related entity type and a collection of

        "entityTypeB" documents are returned.


        The number of related documents can be filtered by fields on the related entity type using a combination of the

        "earliestValidFrom", "latestValidFrom", "earliestValidTo", "latestValidTo", "dateFieldName", "earliestDate", and

        "latestDate" parameters. Each of these parameters refer to a Date, Timestamp, or Timestamp With Time Zone field

        on the related entity type.


        When using the "earliestValidFrom" and "latestValidFrom" parameters, the results are filtered by the field

        name that is specified in the "validFromFieldName" property in the related entity type.


        When using the "earliestValidTo" and "latestValidTo" parameters, the results are filtered by the field name that is 

        specified in the "validToFieldName" property in the related entity type.


        The "dateFieldName" parameter is used to specify an arbitrary Date, Timestamp, or Timestamp With Time Zone field

        name on the related entity type. When specified, include "earliestDate", "latestDate", or both

        parameters.
      tags:
        - Documents
      parameters:
        - name: Accept-Item
          in: header
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.document
              - application/vnd.sas.investigation.data.document+json
              - application/vnd.sas.investigation.data.masked.document
              - application/vnd.sas.investigation.data.masked.document+json
              - application/vnd.sas.investigation.data.minimally.masked.document
              - application/vnd.sas.investigation.data.minimally.masked.document+json
          description: The media type that the client accepts for items within the response collection.
          required: false
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - name: relationshipTypeName
          in: path
          schema:
            type: string
          description: >
            The name of a relationship type that is associated with the entity type name defined in the parameter "entityTypeName".
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first document in a page.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          description: >
            The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
        - name: earliestValidFrom
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The earliest value that is allowed for the related entity's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: earliestValidTo
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The earliest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: latestValidFrom
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The latest value that is allowed for the related document's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: latestValidTo
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The latest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: dateFieldName
          in: query
          schema:
            type: string
          description: >
            An arbitrary Date, Timestamp, or Timestamp With Time Zone field in the related entity type. If a value is provided, the field with this name is used to filter documents against the given "earliestValidFrom", "earliestValidTo", "latestValidFrom", and "latestValidTo" parameters.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: >
            No documents were found that are associated with the given documents and relationship type
        "415":
          description: >
            The endpoint cannot produce collection items of the type specified in the `Accept-Item` header.
    get:
      summary: Get other documents related to an individual document
      operationId: getRelatedDocuments
      description: >
        For a given document and relationship type name, finds all the documents that are related to the given document according to the

        given relationship type.


        Since the child documents of a top-level document are related to it by a special kind of relationship type, this endpoint can be used

        to fetch children of a document. In this case, the name of the relationship type is identical to the child entity type, so use

        the child entity type name as the `relationshipTypeName` path parameter.


        The related documents can be filtered by a date range using the date and time fields on the related document's entity

        type.


        For the purpose of this documentation, it is important to clarify that there are two entity types to consider:

        the entity type that is specified in the path and the related entity type that is returned. Distinguishing between the

        two is important when filtering by a date range.


        For example, assume there is a relationship type defined between an entity type named "entityTypeA" and another

        entity type named "entityTypeB" that is called "fromAToB". For the request GET

        /documents/entityTypeA/{documentId}/fromAtoB, "entityTypeB" is the related entity type and a collection of

        "entityTypeB" documents are returned.


        The number of related documents can be filtered by fields on the related entity type using a combination of the

        "earliestValidFrom", "latestValidFrom", "earliestValidTo", "latestValidTo", "dateFieldName", "earliestDate", and

        "latestDate" parameters. Each of these parameters refer to a Date, Timestamp, or Timestamp With Time Zone field

        on the related entity type.


        When using the "earliestValidFrom" and "latestValidFrom" parameters, the results are filtered by the field

        name that is specified in the "validFromFieldName" property in the related entity type.


        When using the "earliestValidTo" and "latestValidTo" parameters, the results are filtered by the field name that is 

        specified in the "validToFieldName" property in the related entity type.


        The "dateFieldName" parameter is used to specify an arbitrary Date, Timestamp, or Timestamp With Time Zone field

        name on the related entity type. When specified, include "earliestDate", "latestDate", or both

        parameters.
      tags:
        - Documents
      parameters:
        - name: Accept-Item
          in: header
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.document
              - application/vnd.sas.investigation.data.document+json
              - application/vnd.sas.investigation.data.masked.document
              - application/vnd.sas.investigation.data.masked.document+json
              - application/vnd.sas.investigation.data.minimally.masked.document
              - application/vnd.sas.investigation.data.minimally.masked.document+json
          description: The media type that the client accepts for items within the response collection.
          required: false
        - name: entityTypeName
          in: path
          schema:
            type: string
          description: The name of the entity type to which the document belongs.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID for the document.
          required: true
        - name: relationshipTypeName
          in: path
          schema:
            type: string
          description: >
            The name of a relationship type that is associated with the entity type name defined in the parameter "entityTypeName".
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first document in a page.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          description: >
            The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
        - name: earliestValidFrom
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The earliest value that is allowed for the related entity's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: earliestValidTo
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The earliest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: latestValidFrom
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The latest value that is allowed for the related document's "Valid From" date or timestamp field. If the "Valid From" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validFromField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: latestValidTo
          in: query
          schema:
            type: string
            format: date-time
          description: >
            The latest value that is allowed for the related document's "Valid To" date or timestamp field. If the "Valid To" field is a Date field, a date value with no timestamp is allowed. Otherwise, use an ISO-8601 timestamp value. By default, the field configured as the "validToField" in the document's entity type is used for filtering. If the query parameter "dateFieldName" is provided, the field that is specified there overrides the entity type's configuration, and that field is used instead.
        - name: dateFieldName
          in: query
          schema:
            type: string
          description: >
            An arbitrary Date, Timestamp, or Timestamp With Time Zone field in the related entity type. If a value is provided, the field with this name is used to filter documents against the given "earliestValidFrom", "earliestValidTo", "latestValidFrom", and "latestValidTo" parameters.
      responses:
        "200":
          description: The request succeeded. The media type of the items inside the response collection depends on the value of the Accept-Item header in the request.
          headers: {}
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/plainDocumentCollection"
                  - $ref: "#/components/schemas/maskedDocumentCollection"
                  - $ref: "#/components/schemas/minimallyMaskedDocumentCollection"
              example:
                $ref: "#/components/examples/plainDocumentResourceCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/plainDocumentCollection"
                  - $ref: "#/components/schemas/maskedDocumentCollection"
                  - $ref: "#/components/schemas/minimallyMaskedDocumentCollection"
              examples:
                plainDocumentResourceCollectionExample:
                  $ref: "#/components/examples/plainDocumentResourceCollectionExample"
                maskedDocumentResourceCollectionExample:
                  $ref: "#/components/examples/maskedDocumentResourceCollectionExample"
                minimallyMaskedDocumentResourceCollectionExample:
                  $ref: "#/components/examples/minimallyMaskedDocumentResourceCollectionExample"
        "404":
          description: >
            No documents were found that are associated with the given documents and relationship type
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "415":
          description: >
            The endpoint cannot produce collection items of the type specified in the `Accept-Item` header.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{documentId}/fields":
    head:
      summary: Get headers for field values for document
      operationId: headersForFieldValues
      description: >
        Gets headers for a representation of multiple fields values for a top-level document. Since the GET operation for this endpoint does not produce an error if the user is not authorized to reveal the value of a masked field, this HEAD operation does not either.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: fieldName
          in: query
          explode: true
          schema:
            type: array
            items:
              type: string
          description: The names of the fields.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The document or field was not found.
    get:
      summary: Get field values for document
      operationId: getDocumentFieldValues
      description: >
        Gets a representation of multiple fields values for a top-level document. If any of the fields is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If any of the fields are configured for masking and the requesting user is not authorized to reveal the value of the masked field, the value will be omitted from the response.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: fieldName
          in: query
          explode: true
          schema:
            type: array
            items:
              type: string
          description: The names of the fields.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValueCollection"
              example:
                $ref: "#/components/examples/fieldValueCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fieldValueCollection"
              example:
                $ref: "#/components/examples/fieldValueCollectionExample/value"
        "404":
          description: The document or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{documentId}/fields/{fieldName}":
    head:
      summary: Get headers for field value for document
      operationId: headersForDocumentFieldValue
      description: >
        Gets headers for a representation of a field value for a top-level document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The document or field was not found.
    get:
      summary: Get field value for document
      operationId: getDocumentFieldValue
      description: >
        Gets a representation of a field value for a top-level document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
            application/vnd.sas.investigation.data.object.field.value:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
        "404":
          description: The document or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/history/{objectTypeName}/{documentId}/fields/{fieldName}":
    head:
      summary: Get headers for historical field value for document
      operationId: headersForDocumentFieldValueHistory
      description: >
        Gets headers for a representation of a field value for a top-level document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
        - name: version
          in: query
          schema:
            type: integer
          description: The version of the document in history.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The document or field was not found.
    get:
      summary: Get historical field value for document
      operationId: getDocumentFieldValueHistory
      description: >
        Gets a representation of a field value for a top-level document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
        - name: version
          in: query
          schema:
            type: integer
          description: The version of the document in history.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
            application/vnd.sas.investigation.data.object.field.value:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
        "404":
          description: The document or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields":
    head:
      summary: Get headers for field values for child document
      operationId: headersForChildDocumentFieldValues
      description: >
        Gets headers for a representation of multiple fields values for a child document. Since the GET operation for this endpoint does not produce an error if the user is not authorized to reveal the value of a masked field, this HEAD operation does not either.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fieldName
          in: query
          explode: true
          schema:
            type: array
            items:
              type: string
          description: The names of the fields.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The document or field was not found.
    get:
      summary: Get field values for child document
      operationId: getChildDocumentFieldValues
      description: >
        Gets a representation of multiple fields values for a child document. If any of the fields is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If any of the fields is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the value will be omitted from the response.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fieldName
          in: query
          explode: true
          schema:
            type: array
            items:
              type: string
          description: The names of the fields.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValueCollection"
              example:
                $ref: "#/components/examples/fieldValueCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fieldValueCollection"
              example:
                $ref: "#/components/examples/fieldValueCollectionExample/value"
        "404":
          description: The document or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}":
    head:
      summary: Get headers for field value for child document
      operationId: headersForChildDocumentFieldValue
      description: >
        Gets headers for a representation of a field value for a child document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The document or field was not found.
    get:
      summary: Get field value for child document
      operationId: getChildDocumentFieldValue
      description: >
        Gets a representation of a field value for a child document. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
            application/vnd.sas.investigation.data.object.field.value:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
        "404":
          description: The document or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/history/{objectTypeName}/{documentId}/children/{childDocType}/{childDocId}/fields/{fieldName}":
    head:
      summary: Get headers for historical field value for child document
      operationId: headersForChildDocumentFieldValueHistory
      description: >
        Gets headers for a representation of a field value for a child document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
        - name: version
          in: query
          schema:
            type: integer
          description: The version of the document in history.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The document or field was not found.
    get:
      summary: Get historical field value for child document
      operationId: getChildDocumentFieldValueHistory
      description: >
        Gets a representation of a field value for a child document at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
      tags:
        - Documents
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
        - name: version
          in: query
          schema:
            type: integer
          description: The version of the document in history.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
            application/vnd.sas.investigation.data.object.field.value:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
        "404":
          description: The document or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{documentId}/actions":
    head:
      summary: Get headers for summary of action history for a document
      operationId: headersForActionHistorySummaryDocument
      description: >
        Gets headers for a summary of action history for a document. Action history summaries contain a link to fetch the full representation.

        The 'Accept-Item' request header can be used to fetch the available action types for this document. If the 'Accept-Item' header is set to "application/vnd.sas.investigate.action.type", this endpoint returns a collection of action types. This collection represents all of the action types that exist historically for the specified document, providing an exhaustive list of all possible filter options.
      tags:
        - Documents
        - Action History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Action history was not available for the specified document.
        "404":
          description: >
            The specified document was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: createdAt:descending
          required: false
          description: >
            The sort criteria for the request. The only supported sort criteria are 'createdAt' ascending and 'createdAt' descending.
        - name: actionType
          in: query
          schema:
            type: string
          required: false
          description: >
            The filter criteria for the request. Basic selection filter syntax for the 'actionType' field is supported. For example: '?actionType=DOCUMENT_EDIT|COMMENT_CREATE' returns only DOCUMENT_EDIT or COMMENT_CREATE actions.
        - in: header
          name: Accept-Item
          schema:
            type: string
          required: false
          description: >
            If set to 'application/vnd.sas.investigate.action.type', the available action types are returned.
    get:
      summary: Get summary of action history for a document
      operationId: getActionHistorySummaryDocument
      description: >
        Gets a summary of action history for a document. Action history summaries contain a link to fetch the full representation.

        The 'Accept-Item' request header can be used to fetch the available action types for this document. If the 'Accept-Item' header is set to "application/vnd.sas.investigate.action.type", this endpoint returns a collection of action types. This collection represents all of the action types that exist historically for the specified document, providing an exhaustive list of all possible filter options.
      tags:
        - Documents
        - Action History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/actionSummaryCollection"
                  - $ref: "#/components/schemas/actionTypeCollection"
              example:
                $ref: "#/components/examples/actionSummaryResourceCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                allOf:
                  - $ref: "#/components/schemas/actionSummaryCollection"
                  - $ref: "#/components/schemas/actionTypeCollection"
              example:
                $ref: "#/components/examples/actionSummaryResourceCollectionExample/value"
        "400":
          description: >
            Action history was not available for the specified document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: createdAt:descending
          required: false
          description: >
            The sort criteria for the request. The only supported sort criteria are 'createdAt' ascending and 'createdAt' descending.
        - name: actionType
          in: query
          schema:
            type: string
          required: false
          description: >
            The filter criteria for the request. Basic selection filter syntax for the 'actionType' field is supported. For example: '?actionType=DOCUMENT_EDIT|COMMENT_CREATE' returns only DOCUMENT_EDIT or COMMENT_CREATE actions.
        - in: header
          name: Accept-Item
          schema:
            type: string
          required: false
          description: >
            If set to 'application/vnd.sas.investigate.action.type', the available action types are returned.
  "/documents/{objectTypeName}/{documentId}/actions/{actionId}":
    head:
      summary: Get headers for an action for a document
      operationId: headersForActionHistoryDocument
      description: >
        Gets headers for the full representation of an action from a document's action history. A link to this representation is returned in the links property of an action summary.
      tags:
        - Documents
        - Action History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Action history was not available for the specified document.
        "404":
          description: >
            The specified document or action was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the document.
          required: true
        - name: actionId
          in: path
          schema:
            type: string
          required: true
          description: >
            The ID of the action. This could be a document version or the ID of an action.
        - name: tableLimit
          in: query
          schema:
            type: integer
            default: 10
          required: false
          description: >
            Specifies the length at which to truncate child document action history.

            For example, assume that a request is made with this query parameter set to 5. If, for a given child document type, there is less than 5 child documents for a specific action (Create/Edit/Delete), then 'n' child documents are returned. If 'n' is greater than 5, a message instructs the user to use the Versions control to view the child documents.
        - name: actionType
          in: query
          schema:
            type: string
          required: false
          description: >
            The type of the action. This is one of the available action types for the document. Currently, this parameter is not required by the server, but omitting it is deprecated. This parameter will be required in a future version of the API. Certain action types will not be available from this endpoint if the actionType parameter is not provided.
    get:
      summary: Get an action for a document
      operationId: getActionHistoryDocument
      description: >
        Gets the full representation of an action from a document's action history. A link to this representation is returned in the links property of an action summary.
      tags:
        - Documents
        - Action History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/action"
              example:
                $ref: "#/components/examples/actionExample/value"
            application/vnd.sas.investigate.action:
              schema:
                $ref: "#/components/schemas/action"
              example:
                $ref: "#/components/examples/actionExample/value"
        "400":
          description: >
            Action history was not available for the specified document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified document or action was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the document.
          required: true
        - name: actionId
          in: path
          schema:
            type: string
          required: true
          description: >
            The ID of the action. This could be a document version or the ID of an action.
        - name: tableLimit
          in: query
          schema:
            type: integer
            default: 10
          required: false
          description: >
            Specifies the length at which to truncate child document action history.

            For example, assume that a request is made with this query parameter set to 5. If, for a given child document type, there is less than 5 child documents for a specific action (Create/Edit/Delete), then 'n' child documents are returned. If 'n' is greater than 5, a message instructs the user to use the Versions control to view the child documents.
        - name: actionType
          in: query
          schema:
            type: string
          required: false
          description: >
            The type of the action. This is one of the available action types for the document. Currently, this parameter is not required by the server, but omitting it is deprecated. This parameter will be required in a future version of the API. Certain action types will not be available from this endpoint if the actionType parameter is not provided.
  "/documents/{objectTypeName}/{documentId}/versions":
    head:
      summary: Get headers for summary of version history for a document
      operationId: headersForVersionHistorySummaryDocument
      description: >
        Gets headers for a summary of version history for a document. Version summaries contain a link to fetch the full version representation.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Version history was not available for the specified document.
        "404":
          description: >
            The specified document was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: "{field name of the document's version field}:descending"
          required: false
          description: >
            The sort criteria for the request.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to include the display label for the document.
    get:
      summary: Get summary of version history for a document
      operationId: getVersionHistorySummaryDocument
      description: >
        Gets a summary of version history for a document. Version summaries contain a link to fetch the full version representation.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/versionSummaryCollection"
              example:
                $ref: "#/components/examples/versionSummaryResourceCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/versionSummaryCollection"
              example:
                $ref: "#/components/examples/versionSummaryResourceCollectionExample/value"
        "400":
          description: >
            Version history was not available for the specified document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: "{field name of the document's version field}:descending"
          required: false
          description: >
            The sort criteria for the request.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to include the display label for the document.
  "/documents/{objectTypeName}/{documentId}/versions/{version}":
    head:
      summary: Get headers for a document version
      operationId: headersForVersionHistoryDocument
      description: >
        Gets headers for the full representation of a version from a document's version history. A link to this representation is returned in the links property of a version summary.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Version history was not available for the specified document.
        "404":
          description: >
            The specified document or document version was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the document.
          required: true
        - name: changedOnly
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to return only the fields that have changed between the previous and requested document version.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to include the display label for the document in the version.
    get:
      summary: Get a version for a document
      operationId: getVersionHistoryDocument
      description: >
        Gets the full representation of a version from a document's version history. A link to this representation is returned in the links property of a version summary.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/version"
              example:
                $ref: "#/components/examples/versionExample/value"
            application/vnd.sas.investigate.version:
              schema:
                $ref: "#/components/schemas/version"
              example:
                $ref: "#/components/examples/versionExample/value"
        "400":
          description: >
            Version history was not available for the specified document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified document or document version was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the document.
          required: true
        - name: changedOnly
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to return only the fields that have changed between the previous and requested document version.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to include the display label for the document in the version.
  "/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}":
    head:
      summary: Get headers for a summary of version history for a child document
      operationId: headersForVersionHistorySummaryChildDocument
      description: >
        Gets headers for a summary of version history for a child document. Child version summaries contain a link to fetch the full child version representation.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Version history was not available for the specified child document.
        "404":
          description: >
            The specified child document or parent document was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the child document's parent document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the child document's parent document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: The version of the child document's parent document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: "{child document's createdAt field name}:descending"
          required: false
          description: >
            The sort criteria for the request.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to include the display label for the child document in the version.
        - name: operation
          in: query
          schema:
            type: string
          required: false
          description: >
            A query parameter that can be used to filter the child documents by their operation.

            The available operations are: <ul>
              <li>"create"</li>
              <li>"delete"</li>
              <li>"update"</li>
              <li>"unknown"</li>
              <li>"unchanged"</li>
            </ul>
    get:
      summary: Get a summary of version history for a child document
      operationId: getVersionHistorySummaryChildDocument
      description: >
        Gets a summary of version history for a child document. Child version summaries contain a link to fetch the full child version representation.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/childVersionSummaryCollection"
              example:
                $ref: "#/components/examples/childVersionSummaryResourceCollectionExample/value"
            application/json:
              schema:
                $ref: "#/components/schemas/childVersionSummaryCollection"
              example:
                $ref: "#/components/examples/childVersionSummaryResourceCollectionExample/value"
        "400":
          description: >
            Version history was not available for the specified child document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified child document or parent document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the child document's parent document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: The ID of the child document's parent document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: The version of the child document's parent document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The object type of the child document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: "{child document's createdAt field name}:descending"
          required: false
          description: >
            The sort criteria for the request.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Indicates whether to include the display label for the child document in the version.
        - name: operation
          in: query
          schema:
            type: string
          required: false
          description: >
            A query parameter that can be used to filter the child documents by their operation.

            The available operations are: <ul>
              <li>"create"</li>
              <li>"delete"</li>
              <li>"update"</li>
              <li>"unknown"</li>
              <li>"unchanged"</li>
            </ul>
  "/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}":
    head:
      summary: Get headers for a child document version
      operationId: headersForVersionHistoryChildDocument
      description: >
        Gets headers for the full representation of a child version from a child document's version history. A link to this representation is returned in the "links" property of a child version summary.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Version history was not available for the specified child document.
        "404":
          description: >
            The specified child document, parent document, or parent document version was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the child document's parent document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document's parent document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the child document's parent document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: >
            The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document.
          required: true
        - name: changedOnly
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to return only the fields that have changed between the previous and requested child document version.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to include the display label for the child document.
    get:
      summary: Get a child version for a child document
      operationId: getVersionHistoryChildDocument
      description: >
        Gets the full representation of a child version from a child document's version history. A link to this representation is returned in the "links" property of a child version summary.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/childVersion"
              example:
                $ref: "#/components/examples/childVersionExample/value"
            application/vnd.sas.investigate.childversion:
              schema:
                $ref: "#/components/schemas/childVersion"
              example:
                $ref: "#/components/examples/childVersionExample/value"
        "400":
          description: >
            Version history was not available for the specified child document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified child document, parent document, or parent document version was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the child document's parent document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document's parent document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the child document's parent document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: >
            The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document.
          required: true
        - name: changedOnly
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to return only the fields that have changed between the previous and requested child document version.
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to include the display label for the child document.
  "/documents/{objectTypeName}/{documentId}/versions/{version}/items":
    head:
      summary: Get headers for additional history information about a historical document version
      operationId: headersForVersionAdditionalHistoryDocument
      description: >
        Gets headers for additional history information about a historical document version. For example, this could be Create, Edit, and Delete operations on Insight objects associated with the document.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Additional history information was not available for the specified document.
        "404":
          description: >
            The specified document or document version was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the document for which to fetch additional history information.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: historyInfoId:ascending
            example: version:descending
          required: false
          description: >
            The sort criteria for the request.
    get:
      summary: Get additional history information about a historical document version
      operationId: getVersionAdditionalHistoryDocument
      description: >
        Gets additional history information about a historical document version. For example, this could be Create, Edit, and Delete operations on Insight objects associated with the document.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/historyinfoCollection"
              example:
                $ref: "#/components/examples/historyinfoResourceCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/historyinfoCollection"
              example:
                $ref: "#/components/examples/historyinfoResourceCollectionExample/value"
        "400":
          description: >
            Additional history information was not available for the specified document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified document or document version was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the document for which to fetch additional history information.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: historyInfoId:ascending
            example: version:descending
          required: false
          description: >
            The sort criteria for the request.
  "/documents/{objectTypeName}/{documentId}/versions/{version}/children/{childDocType}/{childDocId}/items":
    head:
      summary: Get headers for additional history information for a child document at a specific parent document version
      operationId: headersForVersionAdditionalHistoryChildDocument
      description: >
        Gets headers for additional history information for a child document at a specific parent document version.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Additional history information was not available for the given child document.
        "404":
          description: >
            The specified parent document, child document, or parent document version was not found.
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the child document's parent document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document's parent document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the child document's parent document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: >
            The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: historyInfoId:ascending
            example: version:descending
          required: false
          description: >
            The sort criteria for the request.
    get:
      summary: Get additional history information for a child document at a specific parent document version
      operationId: getVersionAdditionalHistoryChildDocument
      description: >
        Gets additional history information for a child document at a specific parent document version.
      tags:
        - Documents
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/historyinfoCollection"
              example:
                $ref: "#/components/examples/historyinfoResourceCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/historyinfoCollection"
              example:
                $ref: "#/components/examples/historyinfoResourceCollectionExample/value"
        "400":
          description: >
            Additional history information was not available for the given child document.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified parent document, child document, or parent document version was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: >
            The object type of the child document's parent document.
          required: true
        - name: documentId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document's parent document.
          required: true
        - name: version
          in: path
          schema:
            type: string
          description: >
            The version of the child document's parent document.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: >
            The object type of the child document.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: >
            The ID of the child document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: historyInfoId:ascending
            example: version:descending
          required: false
          description: >
            The sort criteria for the request.
  /admin/storedObjects:
    get:
      summary: Retrieve an entity type object by name
      description: >
        Retrieves an entity type by name. An entity type is the metadata that is associated with documents.


        The client can request a representation that contains additional metadata from this endpoint by

        specifying one of the following media types in the Accept header.


        | Value in Accept header                                                  | Additional data in representation                                                                                                                              |

        |-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|

        | application/json                                                        | No additional data beyond the default Entity Type representation.                                                                                              |

        | application/vnd.sas.investigation.meta.entity.type.admin+json;version=2 | The default Entity Type representation, plus additional File Category metadata<sup>1</sup>.                                                                |

        | application/vnd.sas.investigation.meta.entity.type.admin.audit+json     | The default Entity Type representation, plus additional File Category metadata<sup>1</sup>, plus metadata for audit object virtual fields<sup>2</sup>. |


        <sup>1</sup> Additional File Category metadata includes, for each File Category in the Entity Type metadata,

        whether files exist under that File Category, and a collection of Templates that reference that File

        Category.


        <sup>2</sup> Audit object virtual fields expose the values in "Created By User" fields and "Last Updated By User"

        fields as serialized JSON objects that can be consumed by User/Group Selection controls. An Entity Type without

        a "Created By User" field (that is, a field that has a name similar to "created_by_user") will not have an

        audit object virtual field for "Created By User." Likewise, an Entity Type without a "Last Updated By User" field

        (as defined by the field's role) will not have a "Last Updated By User" audit object virtual field.
      operationId: getStoredObjectByName
      tags:
        - Entity Types
      parameters:
        - name: name
          in: query
          schema:
            type: string
          description: The name of an entity type object.
        - name: excludeUnauthorized
          in: query
          schema:
            type: boolean
            default: false
          description: >
            Specifies whether to exclude the results that the user is not authorized to view.  Only admin users can set this to true.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/entityType"
              example:
                $ref: "#/components/examples/entityTypeExample/value"
        "404":
          description: The request did not find an entity type with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/admin/storedObjects/{entityTypeId}":
    head:
      summary: Retrieve headers for an entity type object by ID
      description: >
        Retrieves headers for an entity type by ID. An entity type is the metadata that is associated with documents.
      operationId: headersForStoredObject
      tags:
        - Entity Types
      parameters:
        - name: entityTypeId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the entity type object.
        - name: excludeUnauthorized
          in: query
          schema:
            type: boolean
            default: false
          description: >
            Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The request did not find an entity type with a matching name.
    get:
      summary: Retrieve an entity type object by ID
      description: >
        Retrieves an entity type by ID. An entity type is the metadata that is associated with documents.
      operationId: getStoredObject
      tags:
        - Entity Types
      parameters:
        - name: entityTypeId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the entity type object.
        - name: excludeUnauthorized
          in: query
          schema:
            type: boolean
            default: false
          description: >
            Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/entityType"
              example:
                $ref: "#/components/examples/entityTypeExample/value"
        "404":
          description: The request did not find an entity type with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/storedObjects/all:
    get:
      summary: Retrieve all entity types
      description: Retrieves all entity types in the full representation.
      operationId: getAllStoredObjects
      tags:
        - Entity Types
      parameters:
        - name: excludeUnauthorized
          in: query
          schema:
            type: boolean
            default: false
          description: >
            Specifies whether to exclude the results that the user is not authorized to view. Only administrative users can set this to true.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/entityType"
              example:
                $ref: "#/components/examples/entityTypeArrayExample/value"
  /admin/storedObjects/listAll:
    get:
      operationId: getAllStoredObjectsForListing
      summary: Retrieve all entity types in a summary representation
      description: Retrieves all entity types where each object is a summary representation of the entity type.
      tags:
        - Entity Types
      parameters:
        - name: excludeUnauthorized
          in: query
          schema:
            type: boolean
            default: false
          description: >
            Specifies whether to exclude the results that the user is not authorized to view. Only admin users can set this to true.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/entityTypeSummary"
              example:
                $ref: "#/components/examples/entityTypeSummaryArrayExample/value"
  "/admin/storedObjects/{entityTypeId}/reconstruct":
    post:
      summary: Trigger entity type metadata reconstruction
      description: >
        Synchronizes an entity type's field metadata with the schema for the database table that contains the entity type's records. This can be used to repair the entity type's metadata if the table that backs the entity type changes. Care should be taken when using this operation as it does not automatically update other services in SAS Visual Investigator to reflect the metadata changes. Users who do not understand how their metadata is used in SAS Visual Investigator or are not prepared to repair inconsistencies downstream from Data Hub are not advised to use this endpoint. The request body should be empty.
      operationId: reconstructStoredObject
      tags:
        - Entity Types
      parameters:
        - name: entityTypeId
          in: path
          required: true
          schema:
            type: string
          description: The id of the entity type object.
      requestBody:
        description: The request body should be empty.
        content:
          application/json:
            schema: {}
            example: {}
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/entityType"
              example:
                $ref: "#/components/examples/entityTypeExample/value"
            application/vnd.sas.svi.entity.type:
              schema:
                $ref: "#/components/schemas/entityType"
              example:
                $ref: "#/components/examples/entityTypeExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The request did not find an entity type with a matching ID or the entity type was found but the table backing it was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /locks/documents:
    post:
      summary: Lock a document for editing and deletion
      operationId: createDocumentLock
      description: >
        Places a lock on a document prior to modifying or deleting the document. If another user has a lock on the object, the request fails. Be sure to delete the lock after editing the document.  A document lock times out after two hours or when the session ends; whichever occurs first.
      tags:
        - Documents
      parameters:
        - in: query
          name: type
          required: true
          description: The entity type name of the document.
          schema:
            type: string
        - in: query
          name: id
          required: true
          description: The ID of the document.
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema: {}
            example: {}
      responses:
        "201":
          description: >
            A lock was placed on the document.  There is no body in the response.
          headers: {}
          content:
            application/json:
              schema: {}
              example: {}
        "400":
          description: >
            The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "409":
          description: Unable to place a lock on the document because another user has already locked it.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    delete:
      summary: Release a document lock
      operationId: deleteDocumentLock
      description: >
        Releases a document lock. A document lock times out after two hours or when the session ends; whichever occurs first.
      tags:
        - Documents
      parameters:
        - in: query
          name: type
          required: true
          description: The entity type name of the document.
          schema:
            type: string
        - in: query
          name: id
          required: true
          description: The ID of the document.
          schema:
            type: string
      responses:
        "204":
          description: The lock was released. If there was no lock, a 204 is still returned.
    get:
      summary: Query document lock for user
      operationId: getIsDocumentLocked
      description: Determines whether the user has a lock on a document.
      tags:
        - Documents
      parameters:
        - in: query
          name: type
          required: true
          description: The entity type name of the document.
          schema:
            type: string
        - in: query
          name: id
          required: true
          description: The ID of the document.
          schema:
            type: string
      responses:
        "200":
          description: >
            The request succeeded. The response is a Boolean value that indicates whether the user has a lock on the document.
          headers: {}
          content:
            application/json:
              schema:
                type: boolean
              example: true
        "404":
          description: The document was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /links:
    post:
      summary: Create a new relationship link between two documents
      operationId: createNewInternalRelationshipLink
      description: >
        Creates a new relationship link between two documents. A link is an instance of a relationship type. A relationship type that describes the link must already exist. The relationship type must have an internal bridge table to create links.
      tags:
        - Relationship Links
      parameters:
        - in: query
          name: includeEntityLabels
          description: Compute and include display labels for both to and from documents in the response.
          schema:
            type: boolean
            default: false
          required: true
      requestBody:
        description: An object that represents the link.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/relationshipLink"
            example:
              $ref: "#/components/examples/relationshipLinkExample/value"
      responses:
        "201":
          description: >
            A new relationship link between two documents was created.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/relationshipLink"
              example:
                $ref: "#/components/examples/relationshipLinkExample/value"
            application/vnd.sas.investigation.data.masked.relationshiplink:
              schema:
                $ref: "#/components/schemas/maskedRelationshipLink"
              example:
                $ref: "#/components/examples/maskedRelationshipLinkExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    get:
      summary: Query a list of links or an individual link based on specific query parameters
      operationId: getRelationshipLinkOrLinks
      description: >
        Gets either a list of links that are associated with a document or an individual link.  The type of request is determined by the included query parameters.  Do not mix the query parameters for both types of requests.

        <ul> <li>To fetch a list of all links that originate from a specific document, use these query parameters:
          <ul>
            <li>_relationshipName</li>
            <li>_fromEntityTypeName</li>
            <li>_entityId</li>
            <li>_entityTypeName</li>
            <li>_includeEntityLabels</li>
          </ul> </br>

        <li>To fetch an individual link between two documents, use these query parameters:
          <ul>
            <li>relationshipName</li>
            <li>fromEntityTypeName</li>
            <li>fromEntityId</li>
            <li>toEntityTypeName</li>
            <li>toEntityId</li>
            <li>includeEntityLabels</li>
          </ul>
        </ul>
      tags:
        - Relationship Links
      parameters:
        - in: query
          name: _relationshipName
          description: The name of the relationship type upon which the link is based.
          schema:
            type: string
        - in: query
          name: _fromEntityTypeName
          description: The entity type of the starting point of the link.
          schema:
            type: string
        - in: query
          name: _entityId
          description: The unique identifier for the entity that is the starting point of the link.
          schema:
            type: string
        - in: query
          name: _entityTypeName
          description: The same value as _fromEntityTypeName. (This is required for legacy reasons.)
          schema:
            type: string
        - in: query
          name: _includeEntityLabels
          description: Compute and include display labels for both to and from documents.
          schema:
            type: boolean
            default: false
        - in: query
          name: relationshipName
          description: The name of the relationship type upon which the link is based.
          schema:
            type: string
        - in: query
          name: fromEntityTypeName
          description: The entity type of the starting point of the link.
          schema:
            type: string
        - in: query
          name: fromEntityId
          description: The unique identifier for the entity that is the starting point of the link.
          schema:
            type: string
        - in: query
          name: toEntityTypeName
          description: The entity type of the destination point of the link.
          schema:
            type: string
        - in: query
          name: toEntityId
          description: The unique identifier for the entity that is the destination point of the link.
          schema:
            type: string
        - in: query
          name: includeEntityLabels
          description: Compute and include display labels for both the to document and the from document.
          schema:
            type: boolean
            default: false
        - in: header
          name: Accept-Item
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.masked.relationshiplink
              - application/vnd.sas.investigation.data.masked.relationshiplink+json
              - application/vnd.sas.investigation.data.minimally.masked.relationshiplink
              - application/vnd.sas.investigation.data.minimally.masked.relationshiplink+json
          required: false
          description: >
            The media type that the client accepts for items within the response collection. This value is ignored when this operation is fetching a single relationship link.
      responses:
        "200":
          description: >
            The request succeeded. The response is either an individual link or a Resource Collection of links.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/relationshipLink"
                  - $ref: "#/components/schemas/relationshipLinkCollection"
                  - $ref: "#/components/schemas/maskedRelationshipLinkCollection"
                  - $ref: "#/components/schemas/minimallyMaskedRelationshipLinkCollection"
              examples:
                relationshipLinkExample:
                  $ref: "#/components/examples/relationshipLinkExample"
                relationshipLinkCollectionExample:
                  $ref: "#/components/examples/relationshipLinkResourceCollectionExample"
                maskedRelationshipLinkCollectionExample:
                  $ref: "#/components/examples/maskedRelationshipLinkResourceCollectionExample"
            application/vnd.sas.collection:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/relationshipLinkCollection"
                  - $ref: "#/components/schemas/maskedRelationshipLinkCollection"
                  - $ref: "#/components/schemas/minimallyMaskedRelationshipLinkCollection"
              examples:
                relationshipLinkCollectionExample:
                  $ref: "#/components/examples/relationshipLinkResourceCollectionExample"
                maskedRelationshipLinkCollectionExample:
                  $ref: "#/components/examples/maskedRelationshipLinkResourceCollectionExample"
        "404":
          description: Unable to find a link or links based on the values that are provided in the request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "415":
          description: >
            The endpoint cannot produce collection items of the type specified in the `Accept-Item` header.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    put:
      summary: Update a relationship link
      operationId: updateRelationshipLink
      description: >
        Updates an existing relationship link where the relationship type has an internal bridge table.
      tags:
        - Relationship Links
      requestBody:
        description: An object that represents the link.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/relationshipLink"
            example:
              $ref: "#/components/examples/relationshipLinkExample/value"
      parameters:
        - in: query
          schema:
            type: string
          name: relationshipName
          required: true
          description: The name of the relationship type upon which link is based.
        - in: query
          schema:
            type: string
          name: fromEntityTypeName
          required: true
          description: The entity type of the starting point of the link.
        - in: query
          name: fromEntityId
          schema:
            type: string
          required: true
          description: The unique identifier for the entity that is the starting point of the link.
        - in: query
          name: toEntityTypeName
          description: The entity type of the destination point of the link.
          required: true
          schema:
            type: string
        - in: query
          name: toEntityId
          description: The unique identifier for the entity that is the destination point of the link.
          required: true
          schema:
            type: string
        - in: query
          name: includeEntityLabels
          description: >
            Specifies whether to compute and include display labels for both the to document and the from document in the response.
          schema:
            type: boolean
            default: false
        - name: If-Match
          in: header
          schema:
            type: string
          description: >
            The ETag of the representation in the request. If this header value is provided, it must match the ETag of the current version of the resource on the server. Otherwise, the server responds with a 412 error.
          required: false
      responses:
        "200":
          description: >
            The request succeeded.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/relationshipLink"
              example:
                $ref: "#/components/examples/relationshipLinkExample/value"
            application/vnd.sas.investigation.data.masked.relationshiplink:
              schema:
                $ref: "#/components/schemas/maskedRelationshipLink"
              example:
                $ref: "#/components/examples/maskedRelationshipLinkExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: Unable to find the link.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The link in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "428":
          description: The link in the request body did not contain a version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /links/@item:
    get:
      summary: Query an individual link
      operationId: getRelationshipLink
      description: >
        Retrieves an individual link using an ID string.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - in: query
          name: _includeDisplayLabel
          schema:
            type: boolean
          description: >
            Specifies whether to compute and include display labels for both the to document and the from document in the response.
      responses:
        "200":
          description: >
            The request succeeded. An individual link is returned.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/relationshipLink"
              example:
                $ref: "#/components/examples/relationshipLinkExample/value"
            application/vnd.sas.investigation.data.masked.relationshiplink:
              schema:
                $ref: "#/components/schemas/maskedRelationshipLink"
              example:
                $ref: "#/components/examples/maskedRelationshipLinkExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: Unable to find the link.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    put:
      summary: Update a relationship link
      operationId: updateRelationshipLinkById
      description: >
        Updates an existing relationship link where the relationship type has an internal bridge table.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - in: query
          name: _includeEntityLabels
          description: >
            Specifies whether to compute and include display labels for both the to document and the from document in the response.
          schema:
            type: boolean
            default: false
        - name: Accept
          in: header
          description: >
            For relationship link fields that use data masking, it is important to avoid accidentally overwriting values in the database with masked values that have been loaded by the client. In general, masking dots should not be stored in the database. The "Accept" HTTP header can be used to control how masked fields are handled during updates. If this HTTP  header is not provided or is set to "application/json", then masked field values that are set to null will be ignored. If the "Accept" header is set to "application/vnd.sas.investigation.data.masked.relationshiplink+json" then  masked fields that are set to the mask template (nine dots) will be ignored. The "Accept" header value should  match the data masking approach that was used to fetch data before an update is performed.
          required: false
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.investigation.data.masked.relationshiplink+json
        - name: If-Match
          in: header
          schema:
            type: string
          description: >
            The ETag of the representation in the request. If this header value is provided, it must match the ETag of the current version of the resource on the server. Otherwise, the server responds with a 412 error.
          required: false
      requestBody:
        description: An object that represents the link.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/relationshipLink"
            example:
              $ref: "#/components/examples/relationshipLinkExample/value"
      responses:
        "200":
          description: >
            The request succeeded.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/relationshipLink"
              example:
                $ref: "#/components/examples/relationshipLinkExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: Unable to find the link.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The link in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "428":
          description: The link in the request body did not contain a version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    patch:
      summary: Patch a relationship link
      operationId: patchRelationshipLink
      description: >
        Applies a patch to a relationship link. This enables a client to make changes to a link without needing to load the entire link. The request body contains a description of changes to be made to the link, which is represented by a json-patch object. For more information about json-patch, refer to [jsonpatch.com](https://jsonpatch.com).
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - in: query
          name: _includeEntityLabels
          description: >
            Specifies whether to compute and include display labels for both the to document and the from document in the response.
          schema:
            type: boolean
            default: false
        - name: If-Match
          in: header
          schema:
            type: integer
          required: true
          description: >
            The version of the relationship link to update. This value must match the most recent version of the relationship link. If the value does not match the most recent version of the relationship link, the patch operation fails. This helps prevent conflicting edits from being applied to a relationship link.

            The ETag of the relationship link to update can also be provided in this header value, as a string. If an ETag is provided, it must match the ETag of the current version of the relationship link on the server. Otherwise, the server responds with a 412 error.
      requestBody:
        description: >
          A json-patch specification of changes to make to the relationship link. Copy and move operations cannot use a masked field value as their source. Test operations cannot reference masked field values.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/jsonPatch"
            example:
              $ref: "#/components/examples/jsonPatchExample/value"
          application/json-patch:
            schema:
              $ref: "#/components/schemas/jsonPatch"
            example:
              $ref: "#/components/examples/jsonPatchExample/value"
      responses:
        "200":
          description: >
            The request succeeded. The response body contains the relationship link after the application of the patch.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/relationshipLink"
              example:
                $ref: "#/components/examples/relationshipLinkExample/value"
            application/vnd.sas.investigation.data.masked.relationshiplink:
              schema:
                $ref: "#/components/schemas/maskedRelationshipLink"
              example:
                $ref: "#/components/examples/maskedRelationshipLinkExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The relationship link was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The relationship link in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "428":
          description: The relationship link in the request body did not contain a version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    delete:
      summary: Delete a relationship link
      operationId: deleteRelationshipLink
      description: >
        Deletes an existing relationship link where the relationship type has an internal bridge table.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
      responses:
        "204":
          description: The request succeeded.
        "404":
          description: Unable to find a link or links based on the values that are provided in the request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /links/@item/fields:
    head:
      summary: Get headers for field values for a relationship link
      operationId: headersForRelationshipLinkFieldValues
      description: >
        Gets headers for a representation of multiple field values for a relationship link. Since the GET operation for this endpoint does not produce an error if the user is not authorized to reveal the value of a masked field, this HEAD operation does not either.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: fieldName
          in: query
          explode: true
          schema:
            type: array
            items:
              type: string
          description: The names of the fields.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The relationship link or field was not found.
    get:
      summary: Get field values for a relationship link
      operationId: getRelationshipLinkFieldValues
      description: >
        Gets a representation of multiple field values for a relationship link. If any of the fields is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If any of the fields are configured for masking and the requesting user is not authorized to reveal the value of the masked field, the value will be omitted from the response.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: fieldName
          in: query
          explode: true
          schema:
            type: array
            items:
              type: string
          description: The names of the fields.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValueCollection"
              example:
                $ref: "#/components/examples/fieldValueCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fieldValueCollection"
              example:
                $ref: "#/components/examples/fieldValueCollectionExample/value"
        "404":
          description: The relationship link or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/links/@item/fields/{fieldName}":
    head:
      summary: Get headers for field value for a relationship link
      operationId: headersForRelationshipLinkFieldValue
      description: >
        Gets headers for a representation of a field value for a relationship link. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The relationship link or field was not found.
    get:
      summary: Get field value for a relationship link
      operationId: getRelationshipLinkFieldValue
      description: >
        Gets a representation of a field value for a relationship link. If the field is configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
        "404":
          description: The relationship link or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/links/history/@item/fields/{fieldName}":
    head:
      summary: Get headers for historical field value for a relationship link
      operationId: headersForRelationshipLinkFieldValueHistory
      description: >
        Gets headers for a representation of a field value for a relationship link at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the request will succeed. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the request will fail.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
        - name: version
          in: query
          schema:
            type: integer
          description: The version of the document in history.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The relationship link or field was not found.
    get:
      summary: Get historical field value for a relationship link
      operationId: getRelationshipLinkFieldValueHistory
      description: >
        Gets a representation of a field value for a relationship link at a certain point in its history. If the field is currently configured for masking, and if the requesting user is authorized to reveal the value of the masked field, the raw unmasked value of the field is returned. If the field is currently configured for masking and the requesting user is not authorized to reveal the value of the masked field, the result is an error.
      tags:
        - Relationship Links
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: fieldName
          in: path
          schema:
            type: string
          description: The name of the field.
          required: true
        - name: version
          in: query
          schema:
            type: integer
          description: The version of the document in history.
          required: true
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fieldValue"
              example:
                $ref: "#/components/examples/fieldValueExample/value"
        "404":
          description: The relationship link or field was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /links/@item/actions:
    get:
      summary: Get summary of action history for a link
      operationId: getActionHistorySummaryLink
      description: >
        Gets a summary of action history for a link. Action history summaries contain a link to fetch the full representation.

        The 'Accept-Item' request header can be used to fetch the 'available action types' for this link. If the 'Accept-Item' header is set to "application/vnd.sas.investigate.action.type", this endpoint returns a collection of action types. This collection represents all of the action types that exist historically for the specified link, providing an exhaustive list of all possible filter options.
      tags:
        - Relationship Links
        - Action History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/actionSummaryCollection"
                  - $ref: "#/components/schemas/actionTypeCollection"
              example:
                $ref: "#/components/examples/relationshipLinkActionSummaryResourceCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                allOf:
                  - $ref: "#/components/schemas/actionSummaryCollection"
                  - $ref: "#/components/schemas/actionTypeCollection"
              example:
                $ref: "#/components/examples/relationshipLinkActionSummaryResourceCollectionExample/value"
        "400":
          description: >
            Action history was not available for the specified link.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified link was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          required: false
          description: >
            The maximum number of items to return in a page of results.
        - name: sortBy
          in: query
          schema:
            type: string
            default: createdAt:descending
          required: false
          description: >
            The sort criteria for the request. Only sorting by the 'createdAt' field descending or ascending is supported.
        - name: actionType
          in: query
          schema:
            type: string
          required: false
          description: >
            The filter criteria for the request. The Basic Selection filter syntax for the 'actionType' field is supported. For example: '?actionType=RELATIONSHIP_EDIT' would return only RELATIONSHIP_EDIT actions.
        - in: header
          name: Accept-Item
          schema:
            type: string
          required: false
          description: >
            If set to 'application/vnd.sas.investigate.action.type', the 'available action types' are returned.
  "/links/@item/actions/{actionId}":
    head:
      summary: Get headers for an action from the action history of a link
      operationId: headersForActionHistoryLink
      description: >
        Gets headers for the full representation of an action from a link's action history. A link to this representation is returned in the links property of an action summary.
      tags:
        - Relationship Links
        - Action History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Action history was not available for the specified link.
        "404":
          description: >
            The specified link or requested action was not found.
      parameters:
        - name: actionId
          in: path
          schema:
            type: string
          required: true
          description: >
            The ID of the action.
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
    get:
      summary: Get an action from the action history of a link
      operationId: getActionHistoryLink
      description: >
        Gets the full representation of an action from a link's action history. A link to this representation is returned in the links property of an action summary.
      tags:
        - Relationship Links
        - Action History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/action"
              example:
                $ref: "#/components/examples/relationshipLinkActionExample/value"
            application/vnd.sas.investigate.action:
              schema:
                $ref: "#/components/schemas/action"
              example:
                $ref: "#/components/examples/relationshipLinkActionExample/value"
        "400":
          description: >
            Action history was not available for the specified link.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified link or requested action was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: actionId
          in: path
          schema:
            type: string
          required: true
          description: >
            The ID of the action.
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
  /links/@item/versions:
    get:
      summary: Get summary of version history for a link
      operationId: getVersionHistorySummaryLink
      description: >
        Gets a summary of version history for a link. Version summaries contain a link to fetch the full version representation.
      tags:
        - Relationship Links
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/versionSummaryCollection"
              example:
                $ref: "#/components/examples/relationshipLinkVersionSummaryResourceCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/versionSummaryCollection"
              example:
                $ref: "#/components/examples/relationshipLinkVersionSummaryResourceCollectionExample/value"
        "400":
          description: >
            Version history was not available for the specified link.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified link was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to include the display label for the link.
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          required: false
          description: >
            The start index. This is used for paging.
        - name: limit
          in: query
          schema:
            type: integer
            default: 40
          required: false
          description: >
            The maximum number of items to return in a page of results.
  "/links/@item/versions/{version}":
    head:
      summary: Get headers for a version from the version history of a link
      operationId: headersForVersionHistoryLink
      description: >
        Gets headers for the full representation of a version from a link's version history. The link to fetch the full representation is returned with version summaries.
      tags:
        - Relationship Links
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
        "400":
          description: >
            Version history was not available for the specified link.
        "404":
          description: >
            The specified link or the requested version was not found.
      parameters:
        - name: version
          in: path
          schema:
            type: string
          required: true
          description: >
            - The version of the links history to fetch.
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to include the display label for the link in the version.
        - name: changedOnly
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to return only fields that have changed between the previous and requested link version.
    get:
      summary: Get a version from the version history of a link
      operationId: getVersionHistoryLink
      description: >
        Gets the full representation of a version from a link's version history. The link to fetch the full representation is returned with version summaries.
      tags:
        - Relationship Links
        - Version History
      responses:
        "200":
          description: >
            The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/version"
              example:
                $ref: "#/components/examples/relationshipLinkVersionExample/value"
            application/vnd.sas.investigate.version:
              schema:
                $ref: "#/components/schemas/version"
              example:
                $ref: "#/components/examples/relationshipLinkVersionExample/value"
        "400":
          description: >
            Version history was not available for the specified link.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The specified link or the requested version was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
      parameters:
        - name: version
          in: path
          schema:
            type: string
          required: true
          description: >
            - The version of the links history to fetch.
        - $ref: "#/components/parameters/relationshipLinkDelimitedId"
        - name: includeDisplayLabel
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to include the display label for the link in the version.
        - name: changedOnly
          in: query
          schema:
            type: boolean
            default: false
          required: false
          description: >
            Specifies whether to return only fields that have changed between the previous and requested link version.
  /links/bulk:
    post:
      summary: Bulk Create and Update links
      operationId: bulkUpsertLinks
      description: >
        Creates and Updates internal links in bulk. The input is a list of link objects. Each link represents either a Create or Update operation, depending on its form. The output is a list of operation summary results.

        The input for the request is a SAS collection, which looks like the following:
          ```json
          {
            "items":[...]
          }
          ```
        Each element in "items" represents a series of records to be inserted or updated. If a specified record includes a link id, then it is treated as an Update operation. Otherwise, it is a Create operation. All Create and Update operations are processed internally by the server.

        The response from the request is another SAS collection with summary results for each item that was sent. Result items are in the same order as the input collection. If there is a problem, there will be an "error" property in the results for the item that had issues. If some items return errors, it does not prevent other valid records from being successfully processed.
      tags:
        - Relationship Links
      requestBody:
        content:
          application/vnd.sas.collection:
            schema:
              $ref: "#/components/schemas/sasCollection"
            example:
              $ref: "#/components/examples/linkBulkOperationExample/value"
      responses:
        "200":
          description: >
            Links were created or updated. See items in the collection to determine whether the operation for an  individual link succeeded or failed.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/linkBulkOperationResultCollection"
              example:
                $ref: "#/components/examples/linkBulkOperationResultCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/linkBulkOperationResultCollection"
              example:
                $ref: "#/components/examples/linkBulkOperationResultCollectionExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /links/count:
    get:
      summary: Retrieve a count of the number of links between an entity and its related entities
      operationId: getCountLinks
      description: >
        For a given entityTypeName and entityId, searches for all related entities and returns a summary of the total  number of links found for each related entity type. This method finds all links that are related to an entity  and from an entity.
      parameters:
        - name: entityTypeName
          in: query
          description: Specifies the name of the entity type for which to search.
          required: true
          schema:
            type: string
        - name: entityId
          in: query
          description: Specifies the ID of the entity for which to search.
          required: true
          schema:
            type: string
        - name: Accept-Item
          in: header
          description: When making a request to count links, specifies the media type of the items returned.
          required: true
          schema:
            type: string
            enum:
              - application/vnd.sas.investigation.link.count
      tags:
        - Relationship Links
      responses:
        "200":
          description: The request succeeded. A summary of all related links is returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/countLinksResultCollection"
              example:
                $ref: "#/components/examples/countLinksResultCollectionExample/value"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/countLinksResultCollection"
              example:
                $ref: "#/components/examples/countLinksResultCollectionExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/relationships:
    get:
      summary: Fetch a single relationship type or an array of relationship types
      operationId: getRelationshipTypes
      description: >
        Depending on the query parameter used, returns either a single relationship by qualified name or all relationships of a given type.  Using both query parameters in a single request is not supported.

        Use the "qualifiedName" parameter when the looking up an individual relationship by its qualified name.  The qualified name can be determined from the "qualifiedName" property in the relationship type or by constructing one.

        Use the "type" parameter when looking up all relationships of a given type.
      tags:
        - Relationship Types
      parameters:
        - name: type
          in: query
          schema:
            type: string
            enum:
              - DIRECT_CHILD
              - LINK
          description: >
            Specifies the type of the relationships for which to search. LINK relationships are all relationships that link one Entity Type to one or many other Entity Types. DIRECT_CHILD relationships are a relationship between a parent Entity Type and a child Entity Type.
          required: false
        - name: qualifiedName
          in: query
          schema:
            type: string
          description: >
            The qualified name that uniquely identifies the relationship type. The components of a qualified name are:

            {"from" Entity Type name} + "__" + {Relationship Type name}
          required: false
      responses:
        "200":
          description: >
            The request succeeded. Either a single relationship type or an array of relationship types are returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/relationshipType"
              example:
                $ref: "#/components/examples/relationshipTypeExample/value"
        "404":
          description: The relationship type specified in qualifiedName was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/admin/relationships/{relationshipTypeId}/reconstruct":
    post:
      summary: Trigger relationship type metadata reconstruction
      description: >
        Synchronizes the relationship type's field metadata with the schema for the database table that contains the relationship type's records. This can be used to repair the relationship type's metadata if the table that backs the relationship type changes. Care should be taken when using this operation as it does not automatically update other services in SAS Visual Investigator to reflect the metadata changes. Users who do not understand how their metadata is used in SAS Visual Investigator or are not prepared to repair inconsistencies downstream from Data Hub are not advised to use this endpoint. The request body should be empty.
      operationId: reconstructRelationship
      tags:
        - Relationship Types
      parameters:
        - name: relationshipTypeId
          in: path
          required: true
          schema:
            type: string
          description: The numerical ID of the relationship type object.
      requestBody:
        description: Request body should be empty.
        content:
          application/json:
            schema: {}
            example: {}
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/relationshipType"
              example:
                $ref: "#/components/examples/relationshipTypeExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The request did not find a relationship type with a matching ID or the relationship type was found but the table backing it was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/lists:
    get:
      summary: Fetch all reference list or lists
      operationId: getReferenceListOrLists
      description: Fetches all reference lists or a single reference list by specifying the name of the list.
      tags:
        - Reference Lists
      parameters:
        - name: name
          in: query
          schema:
            type: string
          description: The name of a reference list. If this parameter is specified, only the reference list with that name is returned. If this parameter is omitted, all reference lists are returned.
          required: false
      responses:
        "200":
          description: >
            The request succeeded.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/referenceList"
              example:
                $ref: "#/components/examples/referenceListExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/referenceListSummaryCollection"
              example:
                $ref: "#/components/examples/referenceListSummaryResourceCollectionExample/value"
          headers:
            Last-Modified:
              description: A timestamp that indicates when the reference list was last modified.
              schema:
                type: string
                format: date-time
        "404":
          description: The reference list was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    post:
      summary: Create a new reference list
      operationId: createReferenceList
      description: Creates a new reference list.
      tags:
        - Reference Lists
      requestBody:
        description: The reference list to be created.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/referenceList"
            example:
              $ref: "#/components/examples/referenceListExample/value"
      responses:
        "201":
          description: >
            A new reference list was created. 
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/referenceList"
              example:
                $ref: "#/components/examples/referenceListExample/value"
          headers:
            Last-Modified:
              description: A timestamp that indicates when the reference list was last modified.
              schema:
                type: string
                format: date-time
            Location:
              description: The URI of the newly created reference list.
              schema:
                type: string
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/admin/lists/{referenceListId}":
    put:
      summary: Update a reference list
      operationId: updateReferenceList
      description: Updates a reference list by ID.
      tags:
        - Reference Lists
      parameters:
        - name: referenceListId
          in: path
          schema:
            type: string
          description: The ID of the reference list to update.
          required: true
        - name: If-Match
          in: header
          schema:
            type: string
          description: >
            The ETag of the representation in the request. If this header value is provided, it must match the ETag of the current version of the resource on the server. Otherwise, the server responds with a 412 error.
          required: false
      requestBody:
        description: The reference list to be updated.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/referenceList"
            example:
              $ref: "#/components/examples/referenceListExample/value"
      responses:
        "200":
          description: >
            The request succeeded.
          headers:
            Last-Modified:
              description: A timestamp that indicates when the reference list was last modified.
              schema:
                type: string
                format: date-time
            Location:
              description: The URI of the newly created reference list.
              schema:
                type: string
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/referenceList"
              example:
                $ref: "#/components/examples/referenceListExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The reference list in the request body was out of date.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "428":
          description: The reference list in the request body did not contain a version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/solutions/{solutionName}/publish":
    post:
      summary: Mark the items in a solution as published
      operationId: solutionPublish
      description: >
        Marks all entity types, page templates, and page contexts as published. This makes it possible to differentiate published items from open and modified items.
      tags:
        - Solutions
      parameters:
        - in: path
          name: solutionName
          required: true
          description: The name of the solution.
          schema:
            type: string
      requestBody:
        description: The request body should be empty.
        content:
          application/json:
            schema: {}
            example: {}
      responses:
        "200":
          description: The request succeeded. The solution was published.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/solutionPublishResult"
              example:
                $ref: "#/components/examples/solutionPublishResultExample/value"
            application/vnd.sas.investigation.solution.publish.result:
              schema:
                $ref: "#/components/schemas/solutionPublishResult"
              example:
                $ref: "#/components/examples/solutionPublishResultExample/value"
        "400":
          description: There was a problem with the solution in the request body.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The solution was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/transactions:
    get:
      summary: Retrieve a transaction type by name
      description: Retrieves a transaction type object by name. Transaction types are metadata describing transaction links.
      operationId: getTransactionTypeByName
      tags:
        - Transaction Types
      parameters:
        - name: name
          in: query
          schema:
            type: string
          description: The name of a transaction type object.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/transactionType"
              example:
                $ref: "#/components/examples/transactionTypeExample/value"
        "404":
          description: The request did not find a transaction type with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/admin/transactions/{transactionTypeId}":
    head:
      summary: Retrieve headers for a transaction type object by ID
      description: Retrieves headers for a transaction type object by ID. Transaction types are metadata that describe transaction links.
      operationId: headersForTransactionType
      tags:
        - Transaction Types
      parameters:
        - name: transactionTypeId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the transaction type object.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
        "404":
          description: The request did not find a transaction type with a matching name.
    get:
      summary: Retrieve a transaction type object by ID
      description: Retrieves a transaction type object by ID. Transaction types are metadata that describe transaction links.
      operationId: getTransactionType
      tags:
        - Transaction Types
      parameters:
        - name: transactionTypeId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the transaction type object.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/transactionType"
              example:
                $ref: "#/components/examples/transactionTypeExample/value"
        "404":
          description: The request did not find a transaction type with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/transactions/all:
    get:
      summary: Retrieve all transaction types
      operationId: getAllTransactionTypes
      description: Retrieves all transaction types. Transaction types are metadata that describe transaction links.
      tags:
        - Transaction Types
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/transactionType"
              example:
                $ref: "#/components/examples/transactionTypeArrayExample/value"
  "/admin/transactions/{transactionTypeId}/reconstruct":
    post:
      summary: Trigger transaction type metadata reconstruction
      description: >
        Synchronizes the transaction type's field metadata with the schema for the database table that contains the transaction type's records. This can be used to repair the transaction type's metadata if the table that backs the transaction type changes. Care should be taken when using this operation as it does not automatically update other services in SAS Visual Investigator to reflect the metadata changes. Users who do not understand how their metadata is used in SAS Visual Investigator or are not prepared to repair inconsistencies downstream from Data Hub are not advised to use this endpoint. The request body should be empty.
      operationId: reconstructTransaction
      tags:
        - Transaction Types
      parameters:
        - name: transactionTypeId
          in: path
          required: true
          schema:
            type: string
          description: The numerical ID of the transaction type object.
      requestBody:
        description: The request body should be empty.
        content:
          application/json:
            schema: {}
            example: {}
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/transactionType"
              example:
                $ref: "#/components/examples/transactionTypeExample/value"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The request did not find a transaction type with a matching ID or the transaction type was found but the table backing it was not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /admin/rules/cache:
    delete:
      summary: Clear and reload the rules caches
      description: >
        Deletes the data that is contained in rules caches, and then reloads the data. Includes data for page rules, field rules, and node link diagram rules.
      operationId: deleteRulesCaches
      tags:
        - Administration
      parameters: []
      responses:
        "204":
          description: The data in the rules caches was cleared and reloaded.
  /admin/asyncJobs:
    post:
      tags:
        - AsyncJobs
      operationId: createAsyncJob
      summary: Create jobs to be executed on the server asynchronously
      description: Create a job be executed asynchronously on the server. Currently jobs can be created to index or re-index data in Visual Investigator.
      parameters:
        - in: query
          name: new
          description: A parameter indicating of newer parameters are being used in the job definition
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/job"
            examples:
              General:
                $ref: "#/components/examples/generalIndexingExample"
              Full Index Job:
                $ref: "#/components/examples/fullIndexExample"
              Incremental Index Job:
                $ref: "#/components/examples/incrementalIndexExample"
              Bulk Index Job (No Scoping):
                $ref: "#/components/examples/bulkIndexNoScopingExample"
        description: Details of the job to be created
        required: true
      responses:
        "201":
          description: Created
          headers:
            Last-Modified:
              description: Last modified timestamp for the job
              schema:
                type: string
                format: date-time
            Location:
              description: Not used - all job status monitoring is done through Features service end points
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/job"
              examples:
                General:
                  $ref: "#/components/examples/generalIndexingExample"
            application/vnd.sas.job.monitor.job:
              schema:
                $ref: "#/components/schemas/job"
              examples:
                General:
                  $ref: "#/components/examples/generalIndexingExample"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/files":
    post:
      summary: Create a file association object and associate it with an object
      operationId: createFileAndAssociateWithObject
      description: >
        Creates a file association. You can create a file association by using the representation that is contained in the request body or by reusing a file that is already associated with an object.

        To create a file association using the representation that is contained in the request body, the file to which the file association points (via its Location property) must exist in the Files service and must not be associated with another object.

        To create a file association by using a file that is already associated with an object, call this endpoint without a request body and use the copyFileFrom parameter to identify the file. The Data Hub service copies the file enabling it to be associated with a different object. The object that is identified by the objectTypeName and objectId in the path is associated with the copied file.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: copyFileFrom
          in: query
          schema:
            type: string
          description: The ID of the file to copy. If this parameter is used, do not include a request body.
          required: false
      requestBody:
        description: >
          The metadata that associates a file with a document. If the copyFileFrom parameter is used, do not include a request body.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/file"
            example:
              $ref: "#/components/examples/fileExample/value"
          application/vnd.sas.datahub.file:
            schema:
              $ref: "#/components/schemas/file"
            example:
              $ref: "#/components/examples/fileExample/value"
      responses:
        "201":
          description: The file metadata was created and associated with the object.
          headers:
            Location:
              description: The path to the newly created file.
              schema:
                type: string
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
            application/vnd.sas.datahub.file:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
        "400":
          description: The request failed. The file association in the request body was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The object does not exist or the user does not have the correct permissions to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    head:
      summary: Get headers for the files that are associated with an object
      operationId: headersForFiles
      description: >
        Gets headers for the files that are associated with an object and returns them as a collection.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first file in the collection.
          required: false
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
          required: false
        - name: sortBy
          in: query
          schema:
            type: string
          description: The criteria by which to sort the files.
          required: false
        - name: filter
          in: query
          schema:
            type: string
          description: The criteria by which to filter the files.
          required: false
      responses:
        "200":
          description: The request succeeded. A collection of metadata for the files that are associated with the object was returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
        "400":
          description: The start or limit parameter was invalid.
        "404":
          description: The object does not exist or the user does not have the correct permissions to view the object.
    get:
      summary: Get the files that are associated with an object
      operationId: getFiles
      description: >
        Gets the files that are associated with an object and returns them as a collection.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first file in the collection.
          required: false
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
          required: false
        - name: sortBy
          in: query
          schema:
            type: string
          description: The criteria by which to sort the files.
          required: false
        - name: filter
          in: query
          schema:
            type: string
          description: The criteria by which to filter the files.
          required: false
      responses:
        "200":
          description: The request succeeded. A collection of metadata for the files that are associated with the object was returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
        "400":
          description: The start or limit parameter was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The object does not exist or the user does not have the correct permissions to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/files/{fileId}":
    head:
      summary: Get headers for file metadata
      operationId: headersForFileAssociation
      description: >
        Gets headers for the file metadata for the file with the specified object type, object type ID, and file ID.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: includeExtractedContent
          in: query
          schema:
            type: boolean
            default: false
          description: >
            If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response.
          required: false
      responses:
        "200":
          description: The file metadata request was successful.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
        "400":
          description: The request was invalid. The file ID cannot be null.
        "404":
          description: The object does not exist or the user does not have the correct permissions to view the object.
    get:
      summary: Get file metadata
      operationId: getFileAssociation
      description: >
        Gets the file metadata for the file with the specified object type, object type ID, and file ID.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: includeExtractedContent
          in: query
          schema:
            type: boolean
            default: false
          description: >
            If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response.
          required: false
      responses:
        "200":
          description: The file metadata request was successful.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
            application/vnd.sas.datahub.file:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
        "400":
          description: The request was invalid. The file ID cannot be null.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The object does not exist or the user does not have the correct permissions to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    put:
      summary: Update the file association object with the specified file ID
      operationId: updateFileAssociation
      description: >
        Updates the file metadata for the file with the specified object type, object type ID, and file ID. You can update the following fields: name, description, displayOrder and properties. If the file association is a link to an external file, you can also update the extractedContent field. Updates to any other fields are ignored.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: includeExtractedContent
          in: query
          schema:
            type: boolean
            default: false
          description: >
            If the file metadata contains any extracted content and this parameter is set to true, extracted file content is included in the response.
          required: false
        - name: If-Match
          in: header
          schema:
            type: string
          description: >
            The ETag of the representation in the request. If this header value is provided, it must match the ETag of the current version of the resource on the server. Otherwise, the server responds with a 412 error.
          required: false
      responses:
        "200":
          description: The file metadata update was successful.
          headers:
            ETag:
              description: The ETag for the current version of the resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
            application/vnd.sas.datahub.file:
              schema:
                $ref: "#/components/schemas/file"
              example:
                $ref: "#/components/examples/fileExample/value"
        "400":
          description: The request was invalid. The file ID cannot be null.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The object does not exist, the user does not have the correct permissions to view the object, or the file ID in the request body does not match the file ID in the URI path.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "412":
          description: The file association in the request body was out of date or it did not include a version number.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    delete:
      summary: Delete the file with the specified file ID
      operationId: deleteFile
      description: >
        Deletes the file with the specified ID from the object that is specified in the path.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
      responses:
        "204":
          description: The file was successfully deleted.
          headers: {}
        "400":
          description: The request was invalid. The file ID cannot be null or invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The object does not exist or the user does not have the correct permissions to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/files/{fileId}/content":
    head:
      summary: Gets headers when downloading the file with the specified file ID
      operationId: headersForFileAssociatedWithObject
      description: >
        Gets the headers when downloading the file with the specified ID from the object that is specified in the path.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: range
          in: header
          schema:
            type: string
            default: Range
          description: Sets the range of the file that is downloaded.
          required: false
        - name: ifRange
          in: header
          schema:
            type: string
            default: If-Range
          description: Sets the end of the range of the file that is downloaded.
          required: false
        - name: changeContentDisposition
          in: query
          schema:
            type: boolean
            default: false
          description: >
            A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
          required: false
      responses:
        "200":
          description: The request succeeded. The file with the specified file ID was returned.
          headers:
            Location:
              description: The path to the file.
              schema:
                type: string
        "400":
          description: The file location is not valid.
        "404":
          description: >
            The object does not exist, the user does not have the correct permissions to view the object, or the file association is a link to an external file. External files cannot be downloaded via this endpoint.
    get:
      summary: Download the file with the specified file ID
      operationId: getFileAssociatedWithObject
      description: >
        Downloads the file with the specified ID from the object that is specified in the path.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type to which the object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: range
          in: header
          schema:
            type: string
            default: Range
          description: Sets the range of the file that is downloaded.
          required: false
        - name: ifRange
          in: header
          schema:
            type: string
            default: If-Range
          description: Sets the end of the range of the file that is downloaded.
          required: false
        - name: changeContentDisposition
          in: query
          schema:
            type: boolean
            default: false
          description: >
            A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
          required: false
      responses:
        "200":
          description: The request succeeded. The file with the specified file ID was returned.
          headers:
            Location:
              description: The path to the file.
              schema:
                type: string
          content:
            "*/*":
              schema: {}
        "400":
          description: The file location is not valid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The object does not exist, the user does not have the correct permissions to view the object, or the file association is a link to an external file. External files cannot be downloaded via this endpoint.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/files/{fileId}/content":
    head:
      summary: Gets headers for downloading the detached file with the specified file ID
      operationId: headersForDetachedFile
      description: >
        Gets the headers when downloading the file with the specified ID, for a file that is not attached to an object.

        Use the /documents/{objectTypeName}/{objectId}/files/{fileId}/content endpoint for a file that is attached to an object.
      tags:
        - Files
      parameters:
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: range
          in: header
          schema:
            type: string
            default: Range
          description: Sets the range of the file that is downloaded.
          required: false
        - name: ifRange
          in: header
          schema:
            type: string
            default: If-Range
          description: Sets the end of the range of the file that is downloaded.
          required: false
        - name: changeContentDisposition
          in: query
          schema:
            type: boolean
            default: false
          description: >
            A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
          required: false
      responses:
        "200":
          description: The request succeeded. The file with the specified file ID was returned.
          headers:
            Location:
              description: The path to the file.
              schema:
                type: string
        "400":
          description: The request failed because the file ID could not be parsed correctly. The file ID must be a UUID.
        "403":
          description: >
            The request failed. The object does not exist, the user does not have the correct permissions to view the object, or the file is attached to an object.
    get:
      summary: Download the detached file with the specified file ID
      operationId: getDetachedFile
      description: >
        Downloads the file with the specified ID, for a file that is not attached to an object.

        Use the /documents/{objectTypeName}/{objectId}/files/{fileId}/content endpoint for a file that ißs attached to an object.
      tags:
        - Files
      parameters:
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: range
          in: header
          schema:
            type: string
            default: Range
          description: Sets the range of the file that is downloaded.
          required: false
        - name: ifRange
          in: header
          schema:
            type: string
            default: If-Range
          description: Sets the end of the range of the file that is downloaded.
          required: false
        - name: changeContentDisposition
          in: query
          schema:
            type: boolean
            default: false
          description: >
            A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
          required: false
      responses:
        "200":
          description: The request succeeded. The file with the specified file ID was returned.
          headers:
            Location:
              description: The path to the file.
              schema:
                type: string
          content:
            "*/*":
              schema: {}
        "400":
          description: The request failed because the file ID could not be parsed correctly. The file ID must be a UUID.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "403":
          description: >
            The request failed. The object does not exist, the user does not have the correct permissions to view the object, or the file is attached to an object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/files/{fileId}":
    delete:
      summary: Delete the file with the specified file ID
      operationId: deleteDetachedFile
      description: >
        Deletes the file with the specified ID, if it is not attached to an object.

        Use the /documents/{objectTypeName}/{objectId}/files/{fileId} endpoint if the file is attached to an object.
      tags:
        - Files
      parameters:
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
      responses:
        "204":
          description: The file was successfully deleted.
          headers: {}
        "400":
          description: The request failed because the file ID could not be parsed correctly. The file ID must be a UUID.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "403":
          description: >
            The request failed. The object does not exist, the user does not have the correct permissions to view the object, or the file is attached to an object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The request failed. The file could not be deleted.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files":
    head:
      summary: Get headers for the files that are associated with a child object
      operationId: headersForChildDocumentFiles
      description: >
        Gets headers for the files that are associated with a child object and returns them as a collection.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the parent object type to which the parent object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the parent object.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The name of the child document type to which the child document belongs.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first file in the collection.
          required: false
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
          required: false
        - name: sortBy
          in: query
          schema:
            type: string
          description: The criteria by which to sort the files.
          required: false
        - name: filter
          in: query
          schema:
            type: string
          description: The criteria by which to filter the files.
          required: false
      responses:
        "200":
          description: The request succeeded. A collection of metadata for the files that are associated with the child object was returned.
          headers: {}
        "400":
          description: >
            The request failed. The parent object type name, parent object ID, child document type name, and child ID cannot be null or empty.
        "404":
          description: >
            The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, or the user does not have the correct permissions to view the object.
    get:
      summary: Get the files that are associated with a child object
      operationId: getChildDocumentFiles
      description: >
        Gets the files that are associated with a child object and returns them as a collection.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the parent object type to which the parent object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the parent object.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The name of the child document type to which the child document belongs.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: start
          in: query
          schema:
            type: integer
            default: 0
          description: The starting index of the first file in the collection.
          required: false
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
          description: >
            The maximum number of files to return in this page of results. The actual number of returned items is fewer if the collection is exhausted.
          required: false
        - name: sortBy
          in: query
          schema:
            type: string
          description: The criteria by which to sort the files.
          required: false
        - name: filter
          in: query
          schema:
            type: string
          description: The criteria by which to filter the files.
          required: false
      responses:
        "200":
          description: The request succeeded. A collection of metadata for the files that are associated with the child object was returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
            application/vnd.sas.collection:
              schema:
                $ref: "#/components/schemas/fileCollection"
              example:
                $ref: "#/components/examples/fileCollectionExample/value"
        "400":
          description: >
            The request failed. The parent object type name, parent object ID, child document type name, and child ID cannot be null or empty.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, or the user does not have the correct permissions to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/children/{childDocType}/{childDocId}/files/{fileId}/content":
    get:
      summary: Download a file associated with a child object
      operationId: getFileAssociatedWithChildObject
      description: >
        Downloads the file with the specified ID from the child object that is specified in the path.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the parent object type to which the parent object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the parent object.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The name of the child document type to which the child document belongs.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: range
          in: header
          schema:
            type: string
            default: Range
          description: Sets the range of the file that is downloaded.
          required: false
        - name: ifRange
          in: header
          schema:
            type: string
            default: If-Range
          description: Sets the end of the range of the file that is downloaded.
          required: false
        - name: changeContentDisposition
          in: query
          schema:
            type: boolean
            default: false
          description: >
            A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
          required: false
      responses:
        "200":
          description: The request succeeded. The file with the specified file ID was returned.
          headers:
            Location:
              description: The path to the file.
              schema:
                type: string
          content:
            "*/*":
              schema: {}
        "400":
          description: >
            The request failed. One or more of the following conditions could have caused the failure: the parent object type name was null or empty, the parent object ID was null or empty, the child document type name was null or empty, the child document ID was null or empty, or the file location was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: >
            The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, the user does not have the correct permissions to view the object,  the file with the given ID does not exist, or the file association is a link to an external file. External  files cannot be downloaded via this endpoint.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    head:
      summary: Get headers when downloading a file associated with a child object
      operationId: headersForFileAssociatedWithChildObject
      description: >
        Gets the headers when downloading the file with the specified ID from the child object that is specified in the path.
      tags:
        - Files
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the parent object type to which the parent object belongs.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the parent object.
          required: true
        - name: childDocType
          in: path
          schema:
            type: string
          description: The name of the child document type to which the child document belongs.
          required: true
        - name: childDocId
          in: path
          schema:
            type: string
          description: The ID of the child document.
          required: true
        - name: fileId
          in: path
          schema:
            type: string
          description: The ID of the file.
          required: true
        - name: range
          in: header
          schema:
            type: string
            default: Range
          description: Sets the range of the file that is downloaded.
          required: false
        - name: ifRange
          in: header
          schema:
            type: string
            default: If-Range
          description: Sets the end of the range of the file that is downloaded.
          required: false
        - name: changeContentDisposition
          in: query
          schema:
            type: boolean
            default: false
          description: >
            A true value sets an 'inline' value in the Content-Disposition header. A false value sets an 'attachment' value in the Content-Disposition header.
          required: false
      responses:
        "200":
          description: The request succeeded. The file with the specified file ID was returned.
          headers:
            Location:
              description: The path to the file.
              schema:
                type: string
        "400":
          description: >
            The request failed. One or more of the following conditions could have caused the failure: the parent object type name was null or empty, the parent object ID was null or empty, the child document type name was null or empty, the child document ID was null or empty, or the file location was invalid.
        "404":
          description: >
            The request failed. One or more of the following conditions could have caused the failure: the parent object does not exist, the child object does not exist, the user does not have the correct permissions to view the object,  the file with the given ID does not exist, or the file association is a link to an external file. External  files cannot be downloaded via this endpoint.
  "/documents/{objectTypeName}/{objectId}/sheets":
    head:
      summary: Get headers for a list of sheets by object type and object ID
      operationId: headersForSheets
      description: >
        Gets headers for a list of the sheets that are associated with the object specified in the path.

        To modify a sheet, update the sheets property on the object using a separate endpoint.
      tags:
        - Sheets
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
      responses:
        "200":
          description: The request succeeded. A list of sheets was returned.
          headers: {}
        "400":
          description: The request failed. The parameters cannot be null or empty.
        "404":
          description: The request failed. The object was not found or the user did not have permission to view the object.
    get:
      summary: Get a list of sheets by object type and object ID
      operationId: getSheets
      description: >
        Gets a list of the sheets that are associated with the object specified in the path.

        To modify a sheet, update the sheets property on the object using a separate endpoint.
      tags:
        - Sheets
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
      responses:
        "200":
          description: The request succeeded. A list of sheets was returned.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/sheet"
              example:
                $ref: "#/components/examples/sheetListExample/value"
        "400":
          description: The request failed. The parameters cannot be null or empty.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The request failed. The object was not found or the user did not have permission to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    post:
      summary: Copy selected sheets to the provided object
      operationId: createSheetsCopies
      description: >
        The sheet copy selection included in the request body is used to copy the sheets from their location. The sheets are copied to the object specified in the path. The object to which the sheets were copied is returned as an enriched document.
      tags:
        - Sheets
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
      requestBody:
        description: The sheet copy selection identifies the sheets to copy to the target object.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sheetCopySelection"
            example:
              $ref: "#/components/examples/sheetCopySelectionExample/value"
          application/vnd.sas.datahub.sheetcopyselection:
            schema:
              $ref: "#/components/schemas/sheetCopySelection"
            example:
              $ref: "#/components/examples/sheetCopySelectionExample/value"
      responses:
        "201":
          description: The request succeeded. The enriched document to which the sheets were copied was returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
            application/vnd.sas.investigation.data.enriched.document:
              schema:
                $ref: "#/components/schemas/enrichedDocument"
              example:
                $ref: "#/components/examples/enrichedDocumentExample/value"
        "400":
          description: The request failed. The parameters and the sheet IDs cannot be null or empty.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The request failed. The object or sheet was not found or the user did not have permission to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/documents/{objectTypeName}/{objectId}/sheets/{sheetId}":
    head:
      summary: Get headers for a sheet
      operationId: headersForSheet
      description: >
        Gets headers for the sheet with the given ID from the object that is specified in the path.

        To modify a sheet, update the sheets property on the object using a separate endpoint.
      tags:
        - Sheets
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: sheetId
          in: path
          schema:
            type: string
          description: The ID of the sheet.
          required: true
      responses:
        "200":
          description: The request succeeded. The sheet with the specified ID was returned.
          headers: {}
        "400":
          description: The request failed. The parameters cannot be null or empty.
        "404":
          description: The request failed. The object or sheet was not found or the user did not have permission to view the object.
    get:
      summary: Get a sheet
      operationId: getSheet
      description: >
        Gets a sheet with the given ID from the object that is specified in the path.

        To modify a sheet, update the sheets property on the object using a separate endpoint.
      tags:
        - Sheets
      parameters:
        - name: objectTypeName
          in: path
          schema:
            type: string
          description: The name of the object type.
          required: true
        - name: objectId
          in: path
          schema:
            type: string
          description: The ID of the object.
          required: true
        - name: sheetId
          in: path
          schema:
            type: string
          description: The ID of the sheet.
          required: true
      responses:
        "200":
          description: The request succeeded. The sheet with the specified ID was returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sheet"
              example:
                $ref: "#/components/examples/sheetExample/value"
        "400":
          description: The request failed. The parameters cannot be null or empty.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
        "404":
          description: The request failed. The object or sheet was not found or the user did not have permission to view the object.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /icons:
    get:
      summary: Retrieve metadata for one or more icons
      description: Retrieves metadata for one or more icons.
      operationId: getAllIcons
      tags:
        - Icons
      parameters:
        - name: objectTypeName
          in: query
          required: false
          schema:
            type: string
          description: >
            The name of the icon. If an objectTypeName is specified, then only one icon is returned. Without an objectTypeName, this call returns all icons.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: "#/components/schemas/icon"
                  - type: array
                    items:
                      $ref: "#/components/schemas/icon"
              example:
                $ref: "#/components/examples/iconExample"
        "404":
          description: The request did not find an icon with a matching object type name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    head:
      summary: Request header for icon metadata by object type name
      description: Retrieves an icon's metadata by name. Icon metadata contains information about an image.
      operationId: headersForGetIcon
      tags:
        - Icons
      parameters:
        - name: objectTypeName
          in: query
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content: {}
        "404":
          description: The request did not find an icon with a matching object type name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/icons/{name}":
    get:
      summary: Retrieve icon metadata by name
      description: Retrieves an icon's metadata by name. Icon metadata contains information about an image.
      operationId: getIconMetadata
      tags:
        - Icons
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/icon"
              example:
                $ref: "#/components/examples/iconExample"
        "404":
          description: The request did not find an icon with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    head:
      summary: Request header for icon metadata by name
      description: Retrieves an icon's metadata by name. Icon metadata contains information about an image.
      operationId: headersForGetIconMetadata
      tags:
        - Icons
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content: {}
        "404":
          description: The request did not find an icon with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  "/icons/{name}/image":
    get:
      summary: Retrieve an icon image by name
      description: Retrieves the bytes comprising an icon image.
      operationId: getIconBytes
      tags:
        - Icons
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            "*/*":
              schema: {}
        "404":
          description: The request did not find an icon with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    head:
      summary: Request header for an icon image by name
      description: Retrieves the bytes comprising an icon image.
      operationId: headersForGetIconBytes
      tags:
        - Icons
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content: {}
        "404":
          description: The request did not find an icon with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /icons/image:
    get:
      summary: Retrieve an icon image by filter
      description: Retrieves the bytes comprising an icon image.
      operationId: getIconBytesByName
      tags:
        - Icons
      parameters:
        - name: objectTypeName
          in: query
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            "*/*":
              schema: {}
        "404":
          description: The request did not find an icon with a matching object type name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    head:
      summary: Request header for an icon image by filter
      description: Retrieves the bytes comprising an icon image.
      operationId: headersForGetIconBytesByName
      tags:
        - Icons
      parameters:
        - name: objectTypeName
          in: query
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content: {}
        "404":
          description: The request did not find an icon with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
  /icons/decoration:
    get:
      summary: Retrieve the decoration for an icon
      description: Retrieves a node decorator for an Entity or Document.
      operationId: getIconDecoration
      tags:
        - Icons
      parameters:
        - name: objectTypeName
          in: query
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/nodeDecoration"
              example:
                $ref: "#/components/examples/nodeDecoration"
        "404":
          description: The request did not find an icon with a matching object type name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
    head:
      summary: Request header for the decoration for an icon
      description: Retrieves a node decorator for an Entity or Document.
      operationId: headersForGetIconDecoration
      tags:
        - Icons
      parameters:
        - name: objectTypeName
          in: query
          required: true
          schema:
            type: string
          description: The name of the icon.
      responses:
        "200":
          description: The request succeeded.
          headers: {}
          content: {}
        "404":
          description: The request did not find an icon with a matching name.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
            application/vnd.sas.error:
              schema:
                $ref: "#/components/schemas/sasError"
              example:
                $ref: "#/components/examples/sasErrorExample/value"
components:
  schemas:
    task:
      title: Task
      description: A Task is one unit of work that makes up a Job. It may succeed or fail independ of other Tasks in the same Job.
      x-sas-type: Task
      x-sas-media-type:
        name: application/vnd.sas.job.monitor.task
        version: 1
      required:
        - version
        - name
        - parameters
      properties:
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
        id:
          type: string
          description: A system-assigned unique identifier (UUID) for this task
        name:
          type: string
          description: A human readable name that could help in identifying this task
        description:
          type: string
          description: A brief description of this task
        status:
          type: string
          enum:
            - pending
            - running
            - cancelled
            - completed
            - failed
            - reverted
            - invalid
          description: Execution status of this task
        message:
          type: string
          description: Messages - generally about any failures or cancellations
        parent:
          type: string
          description: UUID of the parent job or task
        startedAt:
          type: string
          format: date-time
          description: Execution start timestamp
        endedAt:
          type: string
          format: date-time
          description: Execution end timestamp
        parameters:
          type: object
          description: Parameters required for the task
          additionalProperties:
            type: string
        subTasks:
          type: array
          description: Sub-tasks, if any
          items:
            $ref: "#/components/schemas/task"
    job:
      title: Job
      description: A Job describes a bundle of work to be performed asynchronously. It consists of one or more Tasks.
      x-sas-type: Job
      x-sas-media-type:
        name: application/vnd.sas.job.monitor.job
        version: 1
      required:
        - version
        - parameters
      properties:
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
        id:
          type: string
          description: A system-assigned unique identifier (UUID) for this job
        name:
          type: string
          description: A human readable name that could help in identifying this job
        description:
          type: string
          description: A brief description of this job
        tags:
          type: array
          description: A list of tags that could be used to search this job
          items:
            type: string
        status:
          type: string
          enum:
            - pending
            - running
            - cancelled
            - completed
            - failed
            - reverted
            - invalid
          description: Execution status of this job
        message:
          type: string
          description: Messages - generally about any failures or cancellations
        startedBy:
          type: string
          description: User who submitted this job for execution
        startedAt:
          type: string
          format: date-time
          description: Execution start timestamp
        endedAt:
          type: string
          format: date-time
          description: Execution end timestamp
        parameters:
          type: object
          description: Parameters required for the job
          additionalProperties:
            type: string
        tasks:
          type: array
          description: Tasks that are part of this job
          items:
            $ref: "#/components/schemas/task"
    file:
      title: File Association Object
      type: object
      example:
        $ref: "#/components/examples/fileExample"
      description: >
        The metadata for a file associated that is with a document. The actual file content is stored by the Files service.
      allOf:
        - $ref: "#/components/schemas/linkableObject"
        - type: object
          properties:
            id:
              type: string
              format: uuid
              description: A UUID that uniquely identifies this file.
            name:
              type: string
              description: The name of the file.
            originalName:
              type: string
              description: The original name of the file when it was uploaded.
            category:
              type: string
              description: The category to which the file belongs.
            location:
              type: string
              description: A URI for the content of the file.
            type:
              type: string
              description: The MIME type of the file.
            size:
              type: integer
              format: base64
              description: The size (in KB) of the file.
            description:
              type: string
              description: A description of the file.
            properties:
              type: object
              description: The properties to associate with the file.
              additionalProperties:
                type: string
            uploadedAt:
              type: string
              format: date-time
              description: The timestamp that indicates when the file was uploaded.
            uploadedBy:
              type: string
              description: The user who uploaded the file.
            extractedContent:
              type: string
              description: >
                Any content that has been extracted for indexing. If the file assocation is an external link, this field can be used to provide extracted content that will be indexed.
            isLink:
              type: boolean
              description: >
                Identifies the location of the content. True is assigned if the file association is a link to an external file. False is assigned if the file has been uploaded to the system as an attachment. This field is read-only. Incoming values are ignored.
    fileCollection:
      title: File Association Collection
      type: object
      description: A list of files.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/file"
              description: The array that contains the files.
    bulkOperationResult:
      title: Bulk Operation Result
      type: object
      description: >
        When performing a bulk Insert or Update operation on documents, this type represents the result from that operation for an individual document. The result is either success or failure. If the error property is present, the operation failed. If there is no value in the error property, the operation was successful.
      properties:
        id:
          type: string
          description: The ID for the document.
        entityType:
          type: string
          description: The entity type of the document.
        operation:
          type: string
          description: The type of operation being performed for the document.
          enum:
            - CREATE
            - UPDATE
        error:
          type: object
          description: >
            Details about why the operation failed for this document. If this property has a value, the operation failed.
          allOf:
            - $ref: "#/components/schemas/sasCollection"
    bulkOperationResultCollection:
      title: Bulk Operation Result Collection
      type: object
      description: >
        A list of bulk operation result items. Each item represents whether an operation succeeded or failed for an individual document.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/bulkOperationResult"
              description: The array that contains the bulk operation results.
    linkBulkOperationResult:
      title: Link Bulk Operation Result
      type: object
      description: >
        When performing a bulk Insert or Update operation on links, this type represents the result from that operation for an individual link. The result is either success or failure. If the error property is present, the operation failed. If there is no value in the error property, the operation was successful.
      properties:
        id:
          type: string
          description: The ID for the link object that connects the "from" and "to" documents.
        fromEntityType:
          type: string
          description: The entity type of the "from" document.
        fromId:
          type: string
          description: The ID for the "from" document.
        toEntityType:
          type: string
          description: The entity type of the "to" document.
        toId:
          type: string
          description: The ID for the "to" document.
        relationshipTypeName:
          type: string
          description: The relationship type name of the link.
        operation:
          type: string
          description: The type of operation being performed for the link.
          enum:
            - CREATE
            - UPDATE
        error:
          type: object
          description: >
            Details about why the operation failed for this link. If this property has a value, the operation failed.
          allOf:
            - $ref: "#/components/schemas/sasCollection"
      example:
        $ref: "#/components/examples/linkBulkOperationResultExample/value"
    linkBulkOperationResultCollection:
      title: Link Bulk Operation Result Collection
      type: object
      description: >
        A list of link bulk operation result items. Each item represents whether an operation succeeded or failed for an individual link.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/linkBulkOperationResult"
              description: The array that contains the link bulk operation results.
      example:
        $ref: "#/components/examples/linkBulkOperationResultCollectionExample/value"
    comment:
      title: Comment
      type: object
      description: >
        Additional text on an internal document.

        During an Update operation, all properties of a comment are read-only except the category. This is for security and audit purposes to keep historical data accurate.
      properties:
        id:
          type: integer
          format: int64
          description: The unique identifier for the comment.
        category:
          type: string
          description: The category of the comment.
        author:
          $ref: "#/components/schemas/commentUser"
        createDate:
          type: string
          format: date-time
          description: The date on which the comment was created.
        lastUpdatedAt:
          type: string
          format: date-time
          description: The date on which the comment was updated.
        lastUpdatedBy:
          type: string
          description: The user who last updated the comment.
        detail:
          type: string
          description: Text of the comment.
      example:
        $ref: "#/components/examples/commentExample"
    commentUser:
      title: Comment Author
      type: object
      description: Information about an author of a comment.
      properties:
        id:
          type: string
          description: The unique identifier of the comment author.
        name:
          type: string
          description: The name of the user who is the comment author.
    commentCategorySummary:
      title: Comment Category Summary
      type: object
      description: Contains the comment category name and the count of that category on the object.
      properties:
        category:
          type: string
          description: The name of the category.
        count:
          type: integer
          description: The number of comments that have the category on the object.
      example:
        $ref: "#/components/examples/commentCategoryExample"
    commentCollection:
      title: Comment Collection
      type: object
      description: A collection of comment objects.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/comment"
              description: The array that contains the comments.
    dataField:
      title: Data Field
      type: object
      description: Reserved for internal use. An abstract object representing the metadata that all data object fields have in common.
      allOf:
        - $ref: "#/components/schemas/localizableObject"
        - type: object
          properties:
            name:
              type: string
              description: The name of the field.
            columnName:
              type: string
              description: The name of the database column that is associated with this field.
            dataType:
              type: string
              description: >
                The type of the database column that is associated with this field. Note: The "json" data type is only partially supported for internal use with Postgres.
              enum:
                - BOOLEAN
                - STRING
                - SMALLINT
                - INTEGER
                - LONG
                - FLOAT
                - DOUBLE
                - NUMERIC
                - DATE
                - TIMESTAMP
                - TIMESTAMP_WITH_TIME_ZONE
                - REFERENCE_DATA
                - JSON
            length:
              type: integer
              description: >
                The size of the data type. This value is used primarily for managing the length of string fields.
            precision:
              type: integer
              description: >
                The number of significant digits for a numeric type. The maximum value for precision is database dependent. For example, it is 38 for Oracle.
            scale:
              type: integer
              description: >
                The number of decimal digits for a numeric type. Integers have a scale of zero. A negative scale value can be used to control the maximum number of digits to the left of the decimal point.
            required:
              type: boolean
              description: Indicates whether the field value must be provided.
            primaryKeyField:
              type: boolean
              description: Indicates whether the field value is used as part of primary key. Primary key fields cannot be masked.
            unique:
              type: boolean
              description: Indicates whether duplicate values are allowed for the field.
            autoGenerated:
              type: boolean
              description: Indicates whether the values for this field are automatically generated.
            systemReserved:
              type: boolean
              description: >
                Indicates whether modifications are allowed for this field type. Some fields are created for internal use only. System reserved fields cannot be masked.
            displayIndex:
              type: integer
              description: The order in which fields occur within the database. This index is one-based.
            version:
              type: integer
              description: The internal Data Hub version for this field.
            constrainingListName:
              type: string
              description: The name of a Reference List that determines the list of valid values for this field.
            userSelectionStrategy:
              type: string
              description: Indicates the types of values that are allowed in this field.
              enum:
                - USERS
                - GROUPS
                - USERS_AND_GROUPS
            allowMultipleSelections:
              type: boolean
              description: Indicates whether multiple selections are allowed.
            primaryKeySeqNo:
              type: integer
              description: The position this field occupies in a primary key. This index is one-based.
            readOnly:
              type: boolean
              description: Indicates whether modifications are allowed for this field type.
            indexedForSearch:
              type: boolean
              description: Indicates whether this field should be added to the search index.
            logicalDataType:
              type: string
              enum:
                - USER_GROUP
                - REFERENCE_DATA
              description: Optional data subtype value for handling user groups and reference data.
            masked:
              type: boolean
              description: >
                Indicates whether this field should be masked from users and groups that are not authorized to reveal the masking. Fields cannot be masked if they are system reserved, if they participate in a primary key, or if they are referenced in a Relationship Type or Transaction Type's join configuration.
            authorizedToRevealMasked:
              type: array
              items:
                $ref: "#/components/schemas/userGroupChooserSelection"
              description: A list of users or groups that identifies who is authorized to reveal the field if it is masked.
    linkableObject:
      title: Linkable Object
      type: object
      description: Reserved for internal use. Abstract object that contains links to other resources.
      properties:
        links:
          type: array
          items:
            $ref: "#/components/schemas/sasLink"
          description: A list of vnd.sas.link objects as per Link representation.
    auditableObject:
      title: Auditable Object
      type: object
      description: Reserved for internal use. An abstract object for handling audit information.
      properties:
        id:
          type: integer
          description: The primary key that uniquely identifies this metadata object.
        createdBy:
          type: string
          description: The user ID that created this metadata object.
        createdAt:
          type: string
          format: date-time
          description: The timestamp that indicates when this metadata object was created.
        lastUpdatedBy:
          type: string
          description: The user ID that most recently modified this metadata object.
        lastUpdatedAt:
          type: string
          format: date-time
          description: The timestamp that indicates when this metadata object was last modified.
    localizableObject:
      title: Localizable Object
      type: object
      description: Reserved for internal use. An abstract object for handling the localizable label and description.
      allOf:
        - $ref: "#/components/schemas/auditableObject"
        - type: object
          properties:
            label:
              type: string
              description: The locale neutral label for this metadata object.
            description:
              type: string
              description: The locale neutral description for this metadata object.
            localizedLabels:
              type: array
              description: The localized labels that are associated with this metadata object.
              items:
                $ref: "#/components/schemas/labelLocalized"
            localizedDescriptions:
              type: array
              description: The localized descriptions that are associated with this metadata object.
              items:
                $ref: "#/components/schemas/descriptionLocalized"
    dataObject:
      title: Data Object
      type: object
      description: Reserved for internal use. An abstract object for representing an object that is associated with a data table.
      allOf:
        - $ref: "#/components/schemas/localizableObject"
        - type: object
          properties:
            name:
              type: string
              description: The name of this metadata object.
            dataStoreName:
              type: string
              description: The name of the data store where this type of metadata will be stored.
            tableName:
              type: string
              description: The name of the database table where this type of metadata will be stored.
            systemReserved:
              type: boolean
              description: Specifies whether this metadata object is reserved for internal use only.
            historyEnabled:
              type: boolean
              description: Specifies whether changes to instances of this entity will be audited.
            version:
              type: integer
              description: The internal Data Hub version for this metadata object.
            validFromFieldName:
              type: string
              description: The name of the field that contain the validFrom date/time value.
            validToFieldName:
              type: string
              description: The name of the field that contains the validTo date/time value.
            lastUpdatedAtTimeFieldName:
              type: string
              description: The name of the field that contains the last updated date/time value.
            createdAtTimeFieldName:
              type: string
              description: The name of the field that contains the creation date/time value.
            displayTextFields:
              type: array
              description: >
                Specifies the fields to be concatenated to form the display label. The values of any masked fields will  appear in their raw, unmasked form in the display label.
              items:
                $ref: "#/components/schemas/sortableNameReference"
            dataStoreAssignedTimeZone:
              type: string
              description: >
                The value of the "assignedTimeZone" property in the data store that is associated with this metadata object. This property is read-only.
    descriptionLocalized:
      title: Localized Description
      description: The description text that is associated with a specific locale.
      allOf:
        - $ref: "#/components/schemas/auditableObject"
        - type: object
          properties:
            version:
              type: integer
              description: The internal Data Hub version for the localized text entry.
            locale:
              type: string
              description: >
                A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN".
              example: en-US
            description:
              type: string
              description: The text value that is expressed in a specific language.
    labelLocalized:
      title: Localized Label
      description: The description text that is associated with a specific locale.
      allOf:
        - $ref: "#/components/schemas/auditableObject"
        - type: object
          properties:
            version:
              type: integer
              description: The internal Data Hub version for the localized text entry.
            locale:
              type: string
              description: >
                A standardized two letter language and two letter country code. Here are some examples: "en-GB", "en-US", and "zh-CN".
              example: en-US
            label:
              type: string
              description: The text value that is expressed in a specific language.
    sortCriteria:
      title: Sort Criteria
      description: The criteria that specifies how to sort a collection.
      properties:
        fieldName:
          type: string
          description: The name of the field.
        sortOrder:
          type: string
          description: The order in which to sort the field.
          enum:
            - asc
            - desc
    userGroupChooserSelection:
      title: User Group Chooser Selection
      description: A user or group account.
      properties:
        id:
          type: string
          description: The name of the user or group.
        type:
          type: string
          description: Denotes whether the account is a user or group.
          enum:
            - user
            - group
    conditionEvaluationRequest:
      title: Condition Evaluation Request
      type: object
      description: >
        A request to evaluate a condition against a specific object.
      required:
        - conditionId
        - objectTypeName
        - objectId
      properties:
        conditionId:
          type: string
          description: >
            The ID of the condition to evaluate. This condition must be applicable to the entity type  of the object that this request specifies.
        objectTypeName:
          type: string
          description: >
            The entity type of the object that this request specifies.
        objectId:
          type: string
          description: >
            The ID of the object that this request specifies.
    conditionEvaluationResponse:
      title: Condition Evaluation Response
      type: object
      description: >
        The response that is generated when a condition is evaluated against an object.
      required:
        - requested
      properties:
        requested:
          description: The request specification to which this object responds.
          type: object
          allOf:
            - $ref: "#/components/schemas/conditionEvaluationRequest"
        result:
          description: >
            The result of a successfully completed evaluation. This property is omitted if the evaluation fails.
          type: boolean
        errorCode:
          description: >
            An error code that explains why the evaluation failed. This property is omitted if the evaluation succeeds.
          type: string
        errorMessage:
          description: >
            An error message that explains why the evaluation failed. This property is omitted if the evaluation succeeds.
          type: string
    bulkConditionEvaluationRequest:
      title: Bulk Condition Evaluation Request
      type: object
      description: >
        A request to process multiple condition evaluation requests at the same time.
      required:
        - requests
      properties:
        requests:
          description: A set of condition evaluation requests to be processed.
          type: array
          items:
            $ref: "#/components/schemas/conditionEvaluationRequest"
    bulkConditionEvaluationResponse:
      title: Bulk Condition Evaluation Response
      type: object
      description: >
        The results from processing a bulk condition evaluation request. Invidual requests succeed and fail independently, and successes are reported alongside failures in the responses.
      required:
        - responses
      properties:
        responses:
          description: The results of processing the condition evaluation requests.
          type: array
          items:
            $ref: "#/components/schemas/conditionEvaluationResponse"
    dataStore:
      title: Data Store
      type: object
      description: Information that is used for connecting to a database such as Oracle or SQL Server.
      allOf:
        - $ref: "#/components/schemas/auditableObject"
        - type: object
          properties:
            name:
              type: string
              description: The name of the data store.
            type:
              type: string
              description: The type of the data store.
              enum:
                - RELATIONAL
            defaultSchemaName:
              type: string
              description: The default schema name to be used for the data store.
            version:
              type: integer
              description: The internal version number for this data store.
            connectionType:
              type: string
              description: The type of database the system.
              enum:
                - internal_postgres
                - postgres
                - db2
                - MySQL
                - oracle
                - SQL Server
                - teradata
            host:
              type: string
              description: The host name for the database server.
            port:
              type: string
              description: The TCP/IP port number for connecting to the database server.
            username:
              type: string
              description: The user name for connecting to the database server.
            password:
              type: string
              description: The password for connecting to the database server.
            databaseNameOrServiceName:
              type: string
              description: The name of the database to which to connect.
            schema:
              type: string
              description: The name of the target schema within the database.
            reindexRequired:
              type: boolean
              readOnly: true
              description: >
                Specifies whether all entity, relationship, and transaction types need to be reindexed after making an update to the data store.
            isCasDistributedDataLoadSupported:
              type: boolean
              readOnly: true
              description: Specifies whether the data store supports the CAS "Distributed Data Load" feature.
            initialSize:
              type: integer
              description: The initial starting size for the database connection pool.
            maxIdle:
              type: integer
              description: The maximum number of idle connections that are allowed in the connection pool.
            minIdle:
              type: integer
              description: The minimum number of idle connections that are allowed in the connection pool.
            maxActive:
              type: integer
              description: The maximum number of active connections that are allowed in the connection pool.
            handle:
              type: string
              description: >
                A string that is used to group key/value pairs that belong to a single data store (analogous to a folder). When creating a data store, this value must be unique. No other data store can have the same "handle" value. It is the responsibility of the client to determine a unique value.
            urlAppendedParameters:
              type: string
              description: Additional JDBC connection parameters that are appended to the end of the connection string.
            advancedProperties:
              type: object
              description: Additional properties that are needed by other modules while interacting with this data store. For example, when loading data into CAS, etc.
              allOf:
                - $ref: "#/components/schemas/sasProperties"
            assignedTimeZone:
              type: string
              description: The default timezone for timestamp values that are stored in the database.
      example:
        $ref: "#/components/examples/dataStoreExample"
    dataStoreCredentials:
      title: Data Store Credentials
      type: object
      description: The user name and password for a data store.
      properties:
        username:
          type: string
          description: The user name of the data store credentials.
        password:
          type: string
          description: The password of the data store credentials. This value is encoded with Base64.
      example:
        $ref: "#/components/examples/dataStoreCredentialExample"
    dataStoreSupportedType:
      title: Data Store Supported Type
      type: object
      description: A supported database for a data store.
      properties:
        type:
          type: string
          description: The type of database.
        requiredFields:
          type: array
          items:
            type: string
          description: The required fields for the data store with the database type.
        defaultAdditionalFields:
          description: A map of additional default fields for the data store with the database type.
          type: object
          additionalProperties:
            properties:
              fieldKey:
                type: string
              fieldValue:
                type: string
    tableMetadata:
      title: Table Metadata
      type: object
      description: The metadata for a data store table.
      properties:
        type:
          type: string
          description: The type of database.
        name:
          type: string
          description: The name of the table.
        schema:
          type: string
          description: The database schema.
        dataStoreName:
          type: string
          description: The name of the data store.
        databaseProductName:
          type: string
          description: The name of the database.
        selectable:
          type: boolean
          description: Specifies whether the table is selectable. Set to True if the table is selectable and False if it is not selectable.
        columns:
          type: array
          items:
            $ref: "#/components/schemas/columnMetadata"
          description: A list of all column metadata for the table.
    columnMetadata:
      title: Table Metadata
      type: object
      description: The metadata for a data store table.
      properties:
        dataType:
          $ref: "#/components/schemas/columnDataType"
        name:
          type: string
          description: The column name.
        length:
          type: integer
          description: The column length.
        precision:
          type: integer
          description: The precision of the column.
        scale:
          type: integer
          description: The scale of the column.
        required:
          type: boolean
          description: Specifies whether the value in the column is a required value. Set to True if the value is required.
        primaryKeyColumn:
          type: boolean
          description: Specifies whether the column is a primary key. Set to True if the column is a primary key.
        ordinalPosition:
          type: integer
          description: The ordinal position of the column.
        primaryKeySeqNo:
          type: integer
          description: The primary key sequence number.
    columnDataType:
      type: string
      description: The enum for all the column data types.
      enum:
        - BOOLEAN
        - STRING
        - SMALLINT
        - INTEGER
        - LONG
        - FLOAT
        - DOUBLE
        - NUMERIC
        - DATE
        - TIMESTAMP
        - TIMESTAMP_WITH_TIME_ZONE
        - JSON
        - OTHER
    document:
      title: Document
      type: object
      description: >
        The actual data that is associated with a particular Entity Type. Entity Types are the metadata and Documents are the data. If a field is masked, its value will not appear in the `fieldValues` object.
      properties:
        objectTypeName:
          type: string
          description: The name of the entity type with which the document is associated.
        objectTypeId:
          type: integer
          format: int64
          description: The ID of the entity type with which the document is associated.
        objectTypeVersion:
          type: integer
          description: The internal Data Hub version for the entity type that is associated with the document.
        id:
          type: string
          description: The qualified ID that uniquely identifies the document.
        displayLabel:
          type: string
          description: The value to use for displaying the ID of the document.
        fieldValues:
          type: object
          description: >
            The values for the fields and child objects that are defined for the related entity type. The actual data of the document exists here.
          additionalProperties: true
        validFrom:
          type: string
          format: date-time
          description: The timestamp value that indicates the starting datetime for when the document is valid.
        validTo:
          type: string
          format: date-time
          description: The timestamp value that indicates the ending datetime for when the document is valid.
        createdAt:
          type: string
          format: date-time
          description: The timestamp that indicates when the document was created.
        lastUpdatedAt:
          type: string
          format: date-time
          description: The timestamp that indicates when the document was last modified.
      example:
        $ref: "#/components/examples/documentExample"
    minimallyMaskedDocument:
      title: Minimally-Masked Document
      description: >
        A representation of a Document that has the minimal amount of field masking applied. That is, for each masked field, if the requesting user is authorized to reveal its value, the value is unmasked in this representation. Otherwise the value will remain masked.
      allOf:
        - $ref: "#/components/schemas/document"
      example:
        $ref: "#/components/examples/documentExample"
    maskedDocument:
      title: Masked Document
      description: >
        A representation of a Document that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally.
      allOf:
        - $ref: "#/components/schemas/document"
      example:
        $ref: "#/components/examples/documentExample"
    enrichedDocument:
      title: Enriched Document
      type: object
      description: >
        The actual data that is associated with a particular Entity Type. Entity Types are the metadata and Documents are the data. The document is "enriched" with additional data such as comments, insights, and workspaces.
      allOf:
        - $ref: "#/components/schemas/document"
        - type: object
          properties:
            comments:
              type: array
              description: The comments that are associated with the document.
              items:
                $ref: "#/components/schemas/comment"
            sheets:
              type: array
              items:
                $ref: "#/components/schemas/sheet"
              description: The insights and workspaces that are associated with the document.
            attachmentsCount:
              type: integer
              format: int64
              description: The number of attachments that are associated with the document.
            fieldRestrictions:
              type: object
              description: A bundle of field restrictions that apply to fields in the document as well as any embedded child documents.
              allOf:
                - $ref: "#/components/schemas/fieldRestrictions"
      example:
        $ref: "#/components/examples/enrichedDocumentExample"
    minimallyMaskedEnrichedDocument:
      title: Minimally-Masked Enriched Document
      description: >
        A representation of an Enriched Document that has the minimal amount of field masking applied. That is, for each masked field, if the requesting user is authorized to reveal its value, the value is unmasked in this representation. Otherwise the value will remain masked.
      allOf:
        - $ref: "#/components/schemas/enrichedDocument"
      example:
        $ref: "#/components/examples/enrichedDocumentExample"
    maskedEnrichedDocument:
      title: Masked Enriched Document
      description: >
        A representation of an Enriched Document that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally.
      allOf:
        - $ref: "#/components/schemas/enrichedDocument"
      example:
        $ref: "#/components/examples/enrichedDocumentExample"
    enrichedDocumentCollection:
      title: Enriched Document Collection
      type: object
      description: A collection of enriched documents.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/enrichedDocument"
              description: The array that contains the enriched documents.
    maskedEnrichedDocumentCollection:
      title: Masked Enriched Document Collection
      type: object
      description: A collection of masked enriched documents.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/maskedEnrichedDocument"
              description: The array that contains the masked enriched documents.
    plainDocumentCollection:
      title: Document Collection
      type: object
      description: A collection of documents.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/document"
              description: The array that contains the documents.
    minimallyMaskedDocumentCollection:
      title: Minimally-Masked Document Collection
      description: A collection of minimally-masked documents.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/minimallyMaskedDocument"
              description: The array that contains the minimally-masked documents.
    maskedDocumentCollection:
      title: Masked Document Collection
      description: A collection of masked documents.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/maskedDocument"
              description: The array that contains the masked documents.
    documentAndLink:
      title: Document and Link Bundle
      description: A representation that bundles together an Enriched Document and a Relationship Link.
      type: object
      required:
        - document
        - documentLink
      properties:
        document:
          $ref: "#/components/schemas/enrichedDocument"
        documentLink:
          $ref: "#/components/schemas/relationshipLink"
    maskedDocumentAndLink:
      title: Masked Document and Link Bundle
      description: A representation that bundles together a Masked Enriched Document and a Masked Relationship Link.
      type: object
      required:
        - document
        - documentLink
      properties:
        document:
          $ref: "#/components/schemas/maskedEnrichedDocument"
        documentLink:
          $ref: "#/components/schemas/maskedRelationshipLink"
    documentFilterRequest:
      title: Document Filter Request
      type: object
      description: A request to filter a collection of documents.
      properties:
        filter:
          type: string
          description: >
            A limited version of the filter syntax defined in the 

            [SAS REST reference guide](https://developer.sas.com/rest-apis/svi-datahub-v7/docs/getting-started/usage-notes#filtering) is supported.


            <em>The only functions supported are "and", "or", and "eq" to reduce the possibility of full table scans.</em>


            Given the limited support for functions, only a select number of entity field types are supported:

            <ul>
              <li>STRING</li>
              <li>INTEGER</li>
              <li>SMALLINT</li>
              <li>LONG</li>
              <li>NUMERIC</li>
              <li>BOOLEAN</li>
              <li>REFERENCE_DATA (when providing a value to the filter, use the value of the Reference Data item’s “code” property)</li>
            </ul>


            Other considerations when crafting document filter queries:

            <ul>
              <li>The "object attributes" of the filter string correspond to the entity type's field names, not the column names.</li>
              <li>Filtering by values in child documents is not supported.</li>
            </ul>


            Filter examples:

            <ul>
              <li>eq(first_name, 'John')</li>
              <li>and(eq(first_name, 'John'), eq(last_name, 'Smith'))</li>
              <li>or(eq(first_name, 'John'), eq(last_name, 'Smith'))</li>
              <li>and(eq(record_id, 1234), or(eq(first_name, 'John'), eq(last_name, 'Smith')))</li>
            </ul>
        start:
          description: The starting index of the first document in a page.
          type: integer
          format: int64
          default: 0
        limit:
          type: integer
          default: 20
          description: >
            The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
        depth:
          type: string
          description: >
            Supported values: <ul>
              <li>'0' - No child documents are included in each document</li>
              <li>'1' - Child documents are included in each document if they exist for that document</li>
            </ul>
          default: 0
        includeDisplayLabel:
          type: boolean
          description: Generate and include the display label in the document.
          default: false
        sortBy:
          type: string
          example: first_name:ascending;last_name:descending
          description: >
            Sort a collection by field name. The sorting syntax is defined in the [SAS REST reference

            guide](https://developer.sas.com/rest-apis/svi-datahub-v7/docs/getting-started/usage-notes#sorting). Only "ascending" and "descending" are supported. Sorting

            behavior is dependent on the type of underlying database in which the document data is stored. Because of this,

            there is a chance that the sorting behavior might differ between entity types. Sorting is not applied by

            default.
    documentIdRequest:
      title: Document ID Request
      type: object
      description: A request for a collection of documents by ID.
      properties:
        documentIds:
          type: array
          items:
            type: string
          description: >
            An array of document ID values for the entity type that is associated with the request.
        start:
          description: The starting index of the first document in a page.
          type: integer
          format: int64
          default: 0
        limit:
          type: integer
          default: 20
          description: >
            The maximum number of documents to return in this page of results. The actual number of returned documents is fewer if the collection is exhausted.
        depth:
          type: string
          description: >
            Supported values: <ul>
              <li>'0' - No child documents are included in each document</li>
              <li>'1' - Child documents are included in each document if they exist for that document</li>
            </ul>
          default: 0
        includeDisplayLabel:
          type: boolean
          description: Generate and include the display label in the document.
          default: false
        sortBy:
          type: string
          example: first_name:ascending;last_name:descending
          description: >
            Sort a collection by field name. The sorting syntax is defined in the [SAS REST reference

            guide](https://developer.sas.com/rest-apis/svi-datahub-v7/docs/getting-started/usage-notes#sorting). Only "ascending" and "descending" are supported. Sorting

            behavior is dependent on the type of underlying database in which the document data is stored. Because of this,

            there is a chance that the sorting behavior might differ between entity types. Sorting is not applied by

            default.
    entityType:
      title: Entity Type
      description: >
        The metadata that defines a class of entities. This definition includes a list of fields, language-specific labels, icons, and other relevant information.
      allOf:
        - $ref: "#/components/schemas/dataObject"
        - type: object
          properties:
            type:
              type: string
              enum:
                - MANAGED
                - SOURCE
              description: >
                Indicates whether the entity type is managed internally or exists in an external read-only database: <ul>
                  <li>`MANAGED` - an internal entity type</li>
                  <li>`SOURCE` - an external entity type</li>
                </ul>
            markerColor:
              type: string
              description: The color that is used to display the marker for this entity type on a network diagram.
              example: "#9d2b12"
            nodeShape:
              type: string
              description: >
                The shape that is used to display the marker for this entity type on a network diagram.
              enum:
                - circle
                - square
                - diamond
                - ellipse
                - hexagon
                - pentagon
                - triangle
            nodeColor:
              type: string
              description: >
                The color that is used to display the marker for this entity type on a network diagram.
              example: "#F0F1F2"
            borderColor:
              type: string
              description: >
                The color that is used to display the border for this entity type on a network diagram.
              example: "#F0F1F2"
            borderWidth:
              type: number
              format: double
              description: >
                The width of the border when displaying this entity type as a selected node on a network diagram.
            scale:
              type: number
              format: double
              description: >
                A value that adjusts the relative size when selecting a node of this entity type on a network diagram.  The value is applied as a ratio to 1. For example, a value of 2 doubles the size and a value of 1 does not change the size.
            styles:
              type: array
              items:
                $ref: "#/components/schemas/entityStyle"
              description: Additional styling that is conditional.
            elementGroupRoot:
              type: boolean
              description: Indicates whether this entity type is the root for an element group.
            indexedForSearch:
              type: boolean
              description: Indicates whether this entity type should be indexed for full text searching.
            fields:
              description: An array that contains the fields that are associated with this entity type.
              type: array
              items:
                $ref: "#/components/schemas/entityTypeField"
            relationshipsFrom:
              description: A collection of relationships that point from this entity type.
              type: array
              items:
                $ref: "#/components/schemas/relationshipType"
            relationshipsTo:
              description: A collection of relationships that point toward this entity type.
              type: array
              items:
                $ref: "#/components/schemas/relationshipType"
            defaultRegularIcon:
              description: The icon that is displayed in the Network-Link Diagram.
              type: object
              allOf:
                - $ref: "#/components/schemas/icon"
            defaultMapIcon:
              description: Deprecated. Should not be used.
              type: object
              allOf:
                - $ref: "#/components/schemas/icon"
            parentName:
              type: string
              description: >
                The name of the parent entity type for this entity type.
            allowElementGroupRootAssignment:
              type: boolean
              description: Indicates whether this entity can be used as an element group root.
            deleteTableName:
              type: string
              description: The name of SQL table where deleted records are tracked.
            urnFormat:
              type: string
              description: The URN format string that is used to automatically generate primary keys.
            urnLength:
              type: integer
              description: The maximum length of the generated URN.
            urnStartValue:
              type: integer
              format: int64
              description: If sequential numbers are used as part of the URN, the start value to use for that sequence.
            urnType:
              type: string
              description: The type of URN generation that this entity uses.
              enum:
                - UUID
                - RANDOM_DIGITS
                - SEQUENTIAL
            requireSearchBeforeCreate:
              type: boolean
              description: >
                Indicates whether a search operation must be performed before inserting a new instance of this entity. Set to true to require this. 
            enableCasDistributedDataLoad:
              type: boolean
              description: >
                Indicates whether all nodes on the grid are used for table loading. This option affects only data for use with Scenario Administration.

                When set to true, this option uses the value distribution of the first numeric column in the table to structure the shared load. Therefore, you should confirm that the first numeric column contains well-dispersed values.

                For example, if the first numeric column contains binary flag data with a 90/10 value distribution, 90% of the table is loaded to one node and the remaining 10% is loaded to a second node.
            attachmentsIndexedForSearch:
              type: boolean
              description: >
                Indicates whether entity type attachment content is added to the search index.

                When instances of this entity type have files attached to them, if this flag is set to "true", the contents of those attachments are extracted and added to the search index. This allows users to find instances of this entity type by searching for terms that might be in files attached to them.

                When this flag is updated from "false" to "true", if there are attachments to any instances of this entity type, the entity type must be reindexed before searching can match on attachment contents as described above.
            reindexRequired:
              type: boolean
              description: >
                Read only. Setting this property on input has no effect.

                Certain Update operations on entity types require the entity type to be reindexed before changes can be fully active. When such an update has been made, this flag is set to "true" in the representation of the entity type that is provided in the response to the update. This is not a persistent state of the entity type. It is provided as advice to the client once per such an update. Subsequent responses representing the entity type might not have this flag set, even if the advised reindex has not been performed.

                For example, a client sends a `PUT` request to update an entity type's `attachmentsIndexedForSearch` flag from "false" to "true". There are instances of the entity type that have attachments; therefore reindexing becomes necessary before searching can match based on attachment contents. This is indicated by a "true" value in this property in the response to the `PUT` request. Subsequent `GET` or `PUT` requests that return a representation of the entity type might have `reindexRequired` set to "false" even if the entity type has not been reindexed. This is because in that subsequent request, no update was made that would require reindexing before taking effect.
            mobileOfflineEnabled:
              type: boolean
              description: Indicates whether offline support is enabled for SAS Mobile Investigator.
            publishCode:
              type: string
              enum:
                - OPEN
                - PUBLISHED
                - MODIFIED
              description: >
                Indicates the publication status that is assigned to an item: <ul>
                  <li>OPEN - Content that is free to customize</li>
                  <li>PUBLISHED - Content that might be upgraded in the future and should be customized with care </li>
                  <li>MODIFIED - Published content that has been customized </li>
                </ul>
    entityTypeField:
      title: Entity Type Field
      type: object
      description: A single field that is associated with an entity type object.
      allOf:
        - $ref: "#/components/schemas/dataField"
        - type: object
          properties:
            ownerName:
              type: string
              description: The name of the owner.
            relatedElementName:
              type: string
              description: The name of the related element.
    entityTypeSummary:
      title: Entity Type Summary
      type: object
      description: A short summary of an entity type.
      properties:
        id:
          type: integer
          format: int64
          description: The primary key that uniquely identifies this entity type.
        label:
          type: string
          description: The locale neutral label for this entity type.
        name:
          type: string
          description: The name of this entity type.
        dataStoreName:
          type: string
          description: The name of the data store where this type of entity is stored.
        tableName:
          type: string
          description: The name of the database table where this type of entity is stored.
        systemReserved:
          type: boolean
          description: Indicates whether this entity is reserved for internal use only.
        validFromFieldName:
          type: string
          description: The name of the field that contains the validFrom date/time value.
        type:
          type: string
          enum:
            - MANAGED
            - SOURCE
          description: Indicates whether this entity is managed internally or if it resides in an external read-only database.
        markerColor:
          type: string
          description: The color that is used to display the marker for this entity on a map.
          example: "#9d2b12"
        indexedForSearch:
          type: boolean
          description: Indicates whether this entity should be indexed for search.
        fields:
          description: An array that contains the fields that are associated with this entity type.
          type: array
          items:
            $ref: "#/components/schemas/entityTypeField"
        parentName:
          type: string
          description: The name of parent entity type for this entity type.
        allowElementGroupRootAssignment:
          type: boolean
          description: Indicates whether this entity can be used as an element group root.
    entityTypeExpression:
      title: Abstract Expression
      type: object
      discriminator:
        propertyName: type
      description: >
        The abstract parent class for expression types. Subclasses include the following expression types: <ul>
          <li>Arithmetic</li>
          <li>Boolean</li>
          <li>Conditional</li>
          <li>Field Reference</li>
          <li>Function Call</li>
          <li>Literal</li>
          <li>Logical</li>
          <li>Named Parameter</li>
          <li>String</li>
        </ul>
      properties:
        type:
          description: >
            The type of expression. Valid values include: <ul>
              <li>FieldRef</li>
              <li>Literal</li>
              <li>StrExpr</li>
              <li>BoolExpr</li>
              <li>Function</li>
              <li>ArithExpr</li>
            <ul>
          type: string
          enum:
            - Conditional
            - FieldRef
            - Literal
            - StrExpr
            - BoolExpr
            - Function
            - ArithExpr
    entityTypeExpressionArithmetic:
      title: Arithmetic Expression
      type: object
      description: >
        Arithmetic expression of the form: leftOperand operator rightOperand. The expression evaluates to a Boolean result.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpression"
        - type: object
          properties:
            leftOperand:
              type: object
              description: The left operand that the operator applies to the right operands.
              allOf:
                - $ref: "#/components/schemas/entityTypeExpression"
            operator:
              type: string
              enum:
                - ADD
                - MINUS
                - PROD
                - DIV
              description: >
                The arithmetic operator for the expression: <ul>
                  <li>`ADD` - add</li>
                  <li>`MINUS` - subtract</li>
                  <li>`PROD` - multiply</li>
                  <li>`DIV` - division</li>
                </ul>
            rightOperand:
              type: object
              description: The operand on the right side to which the left operand and the operator are applied.
              allOf:
                - $ref: "#/components/schemas/entityTypeExpression"
    entityTypeExpressionBoolean:
      title: Boolean Expression
      type: object
      description: The abstract type that represents a conditional or a logical expression.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpression"
    entityTypeExpressionConditional:
      title: Conditional Expression
      type: object
      description: >
        A conditional expression of the form: leftOperand operator rightOperands.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpressionBoolean"
        - type: object
          properties:
            leftOperand:
              type: object
              description: The left operand that the operator applies to the right operands.
              allOf:
                - $ref: "#/components/schemas/entityTypeExpression"
            operator:
              type: string
              description: >
                The operator for the expression. The supported values are: "eq" (equal), "ne" (not equal), "gt" (greater than), "lt" (less than), "ge" (greater than or equal), "le" (less than or equal), "in", "notIn", "between", "isNull", "isNotNull", "startsWith", "endsWith", and "contains".
              enum:
                - EQ
                - NE
                - GT
                - LT
                - GE
                - LE
                - IN
                - NOT_IN
                - BETWEEN
                - IS_NULL
                - IS_NOT_NULL
                - STARTS_WITH
                - ENDS_WITH
                - CONTAINS
            rightOperands:
              type: array
              items:
                $ref: "#/components/schemas/entityTypeExpression"
              description: An array of expressions on the right side to which the left operand and the operator are applied.
    entityTypeExpressionFieldReference:
      title: Field Reference Expression
      type: object
      description: A data object field that is used as an Expression in queries and SortCriteria.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpression"
        - type: object
          properties:
            objectName:
              type: string
              description: The name of the object that is being referenced.
            fieldName:
              type: string
              description: The name of the field within the object that is being referenced.
    entityTypeExpressionFunctionCall:
      title: Function Call Expression
      type: object
      description: >
        An expression that makes a function call.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpression"
        - type: object
          properties:
            functionName:
              type: string
              description: >
                The name of the function to call. Valid values are: <br/> <br/> "toString": Convert other data type values into String.
                              <ul><li>Minimum arguments: 1</li><li>Maximum arguments: 2</li></ul>
                              <p>Depending on the underlying data store, a second argument can be passed while converting datetime
                              values into String. This indicates the format of the returned value.
                              The exact behavior is dependent on the underlying data store. Refer to the data store documentation for details.</p>
                "toDate": Convert other data types to a datetime value.
                              <ul><li>Minimum arguments: 1</li><li>Maximum arguments: 2</li></ul>
                              <p>Depending on the underlying data store, a second argument that indicates the format of the source data
                              can be passed. The content of the format string is also dependent on the underlying data store.
                              Refer to the data store documentation for supported formats.</p>
                              <p>Only String input values in a format that is supported by the underlying data store are supported.</p>
                "toNumber": Convert a String input value into a number. The exact behavior is dependent on the underlying data store.<br/> <br/> "upperCase": Convert all characters in the input String to uppercase.<br/> <br/> "lowerCase": Convert all characters in the input String to lowercase.<br/> <br/> "mod": Calculate modulus of two integer values.<br/> <br/> "pow": Perform exponentiation of the first argument (number) raised to the power of the second argument.<br/>
              enum:
                - TO_STRING
                - TO_DATE
                - TO_NUMBER
                - UPPERCASE
                - LOWERCASE
                - MOD
                - POW
            arguments:
              type: array
              items:
                $ref: "#/components/schemas/entityTypeExpression"
              description: An array of parameters to pass to the function.
    entityTypeExpressionLiteral:
      title: Literal Expression
      type: object
      description: A literal value to be used in an expression.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpression"
        - type: object
          properties:
            value:
              type: object
              description: A literal value that is referenced in an expression.
    entityTypeExpressionLogical:
      title: Logical Expression
      type: object
      description: >
        A logical expression of the form: leftOperand operator rightOperand. The expression evaluates to a Boolean result.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpressionBoolean"
        - type: object
          properties:
            leftOperand:
              type: object
              description: The left operand that the operator applies to the right operands.
              allOf:
                - $ref: "#/components/schemas/entityTypeExpression"
            operator:
              type: string
              description: The operator for the expression.
              enum:
                - AND
                - OR
                - NOT
            rightOperand:
              type: object
              description: The operand on the right side to which the left operand and the operator are applied.
              allOf:
                - $ref: "#/components/schemas/entityTypeExpression"
    entityTypeExpressionNamedParameter:
      title: Named Parameter Expression
      type: object
      description: A named parameter to use when creating parameterized queries for repeated calls.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpression"
        - type: object
          properties:
            parameterName:
              type: string
              description: The name of the parameter to use in the expression.
    entityTypeExpressionString:
      title: String Expression
      type: object
      description: >
        An expression for performing operations on String operands.
      allOf:
        - $ref: "#/components/schemas/entityTypeExpression"
        - type: object
          properties:
            leftOperand:
              type: object
              description: The left operand that the operator applies to the right operands.
              allOf:
                - $ref: "#/components/schemas/entityTypeExpression"
            operator:
              type: string
              description: >
                The operator for the expression. The supported value is "concat".
              enum:
                - CONCAT
            rightOperand:
              type: object
              description: The operand on the right side to which the left operand and the operator are applied.
              allOf:
                - $ref: "#/components/schemas/entityTypeExpression"
    fieldMaskingConfiguration:
      title: Field Masking Configuration
      description: >
        A representation of the masking configuration for a single field.
      type: object
      properties:
        currentUserIsAuthorizedToReveal:
          type: boolean
          description: Indicates whether the current user is authorized to reveal the masked value.
        revealUrl:
          type: string
          description: A URL that can be used to request the raw (unmasked) value of the field.
    fieldRestriction:
      title: Field Restriction
      description: >
        A representation of the set of field restrictions that are applied to a single field. Not every kind of restriction applies to every field. For example, the "maxLength" restriction will not apply to numerical fields, but "precision" and "scale" might. Note that many endpoints documented in this REST API only populate a subset of these field restrictions (often only "masked").
      type: object
      properties:
        masked:
          $ref: "#/components/schemas/fieldMaskingConfiguration"
        required:
          type: boolean
          description: Indicates whether the field is required.
        readOnly:
          type: boolean
          description: Indicates whether the field can be modified.
        maxLength:
          type: integer
          description: The maximum length of value allowed for the field.
        systemReserved:
          type: boolean
          description: >
            Indicates whether the field is reserved for system use. System-reserved fields are not normally writable. Also, they cannot be masked.
        fieldDataType:
          type: string
          enum:
            - REFERENCE_DATA
            - USER_GROUP
            - BOOLEAN
            - STRING
            - SMALLINT
            - INTEGER
            - LONG
            - FLOAT
            - DOUBLE
            - NUMERIC
            - DATE
            - TIMESTAMP
            - TIMESTAMP_WITH_TIME_ZONE
            - JSON
          description: The data type of the field.
        precision:
          type: integer
          description: The numerical precison of the field.
        scale:
          type: integer
          description: The numerical scale of the field.
        constrainingListName:
          type: string
          description: The reference list that constrains the possible values of this field.
        cascadingReferenceDataFilterByCode:
          type: string
          description: The code used to filter the cascading reference data constraining the value of this field.
        cascadingReferenceDataFilterByField:
          type: string
          description: The name of the field used to filter the cascading reference data constraining the value of this field.
        allowMultipleSelections:
          type: boolean
          description: Indicates whether this field allows multiple selections of users and/or groups.
        userSelectionStrategy:
          type: string
          enum:
            - USERS
            - GROUPS
            - USERS_AND_GROUPS
          description: >
            Used with user/group selection fields. The possible values are: - "USERS": This field can only indicate a set of users. - "GROUPS": This field can only indicate a set of groups. - "USERS_AND_GROUPS": This field can indicate a set containing both users and groups.
    restrictedFields:
      title: Restricted Fields Map
      description: >
        Represents all of the field restrictions of a datatype as a map of field name to field restriction object. The keys of this map are strings representing field names. The value mapped by each key is the Field Restriction object containing all the field restrictions for the field with that name.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/fieldRestriction"
    fieldRestrictions:
      title: Field Restrictions Bundle
      description: >
        Represents a bundle of field restrictions for related data object types, as a map of object type name to Restricted Fields Map object. The keys of this map are strings representing object type names. The value mapped by each key is the Restricted Fields Map object for that data object type. The purpose of this representation is to allow the field restrictions for a top-level entity type to be bundled with the field restrictions for all of its child entity types, in one map. In this case, the top-level entity name and the child entity names will all be sibling keys in the Field Restrictions Bundle map.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/restrictedFields"
    fieldValue:
      title: Field Value
      description: >
        A representation of a single field value. The value is represented under the "raw" property of this object.
      type: object
      required:
        - raw
        - fieldName
      properties:
        fieldName:
          type: string
          description: The name of the field whose value is represented by this object.
    fieldValueCollection:
      title: Field Value Collection
      description: A collection of field values.
      type: object
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/fieldValue"
              description: The array that contains the field values.
    countLinksResult:
      title: Count Links Result
      type: object
      description: >
        This type represents an individual result from counting the relationship links for a document. The "linkCount" property contains the total number of links that were found for each type. There will be one entry for each "to" entity type. Note that if the relationship type is  heterogeneous, then the "from" entity type will have a value, but the "to" entity type will be null.
      properties:
        relationshipId:
          type: integer
          description: The id of the relationship type
        relationshipName:
          type: string
          description: The name of the relationship type
        relationshipLabel:
          type: string
          description: The localized name of the relationship type
        relationshipQualifiedName:
          type: string
          description: The full name of the relationship type, which is based on the "from" entity type and the relationship name
        relationshipReverseName:
          type: string
          description: The name of the relationship from the opposite perspective
        relationshipReverseLabel:
          type: string
          description: The label for the relationship from the opposite perspective
        fromEntityTypeName:
          type: string
          description: The type of the "from" entity type
        fromEntityTypeLabel:
          type: string
          description: The localized label for the "to" entity type
        toEntityTypeName:
          type: string
          description: The type of the "to" entity type
        toEntityTypeLabel:
          type: string
          description: The localized label for the "to" entity type
        linkCount:
          type: integer
          description: The number of matching links that were found
    countLinksResultCollection:
      title: Count Links Result Collection
      type: object
      description: >
        A list of count links result items. Each item provides a count of the number of links between the "from" entity and other entities of a specific type.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/countLinksResult"
              description: The array that contains the link count results.
    referenceList:
      title: Reference List
      description: >
        Represents a list of choices that the user can select as the value for a field. Common examples might include "Size" (small, medium, large) or "Color" (red, green, blue). In the first example, "Size" is the list and (small, medium, large) are items of that list.
      allOf:
        - $ref: "#/components/schemas/localizableObject"
        - type: object
          properties:
            name:
              type: string
              description: The name of the reference list. The name is limited to 50 characters.
            archived:
              type: boolean
              description: Indicates whether the reference list is archived.
            maxCodeLength:
              type: integer
              description: The maximum length of the string that is used as the code for list items.
            alphabeticalSort:
              type: boolean
              description: Indicates whether the reference list is sorted alphabetically.
            items:
              description: The collection of reference list items.
              type: array
              items:
                $ref: "#/components/schemas/referenceListItem"
          required:
            - name
            - archived
            - maxCodeLength
            - alphabeticalSort
    referenceListSummary:
      title: Reference List Summary
      description: >
        A condensed summary of a Reference List object.
      type: object
      properties:
        version:
          type: integer
          description: The internal Data Hub version of the Reference List object.
        id:
          type: integer
          description: The numeric identifier of the Reference List object.
        name:
          type: string
          description: The locale-independent name of the Reference List object.
        label:
          type: string
          description: A localized label for the Reference List object.
        maxCodeLength:
          type: integer
          description: The maximum length of the string that is used as the code for list items.
        archived:
          type: boolean
          description: Indicates whether the reference list is archived.
        links:
          type: array
          items:
            $ref: "#/components/schemas/sasLink"
          description: >
            A list of links that are available for this Reference List. This contains the link to fetch the full Reference List representation.
    referenceListSummaryCollection:
      title: Reference List Summary Collection
      description: >
        A Resource Collection that contains Reference List Summary objects.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/referenceListSummary"
              description: An array of Reference List Summaries.
    referenceListItem:
      title: Reference List Item
      description: An option in a reference list.
      allOf:
        - $ref: "#/components/schemas/localizableObject"
        - type: object
          properties:
            code:
              type: string
              description: The unique identifier for this reference list item.
            archived:
              type: boolean
              description: Indicates whether the reference list is archived.
            displayIndex:
              type: integer
              description: Indicates the position in which this item appears in the reference list.
          required:
            - code
            - archived
            - displayIndex
    relationshipLink:
      title: Relationship Link
      description: A link between two documents as defined by a relationship type. If a field is masked, its value will not appear in the `fieldValues` object.
      properties:
        relationshipTypeName:
          type: string
          description: The name of the relationship type that defines this link.
        relationshipTypeVersion:
          type: integer
          description: The internal Data Hub version of the relationship type.
        relationshipTypeLabel:
          type: string
          description: The display label for the relationship type.
        id:
          type: string
          description: The ID of the link.
        qualifiedTypeName:
          type: string
          description: >
            The qualified name of the relationship type. Qualified names are in the format: fromObjectTypeName + "__" + relationshipTypeName.
        fromObjectTypeName:
          type: string
          description: The entity type name for the "From" side of the relationship type.
        fromObjectTypeVersion:
          type: integer
          format: int64
          description: >
            The internal Data Hub version for the entity type for the "From" side of the relationship type.
        fromObjectId:
          type: string
          description: The document ID for the "From" side of the relationship type.
        fromObjectDisplayLabel:
          type: string
          description: The display label for the document on the "From" side of the relationship type.
        toObjectTypeName:
          type: string
          description: The entity type name for the "To" side of the relationship type.
        toObjectTypeVersion:
          type: integer
          format: int64
          description: >
            The internal Data Hub version for the entity type for the "To" side of the relationship type.
        toObjectId:
          type: string
          description: The document ID for the "To" side of the relationship type.
        toObjectDisplayLabel:
          type: string
          description: The display label for the document on the "To" side of the relationship type.
        validFrom:
          type: string
          format: date-time
          description: The timestamp value that indicates the starting datetime for when the link is valid.
        validTo:
          type: string
          format: date-time
          description: The timestamp value that indicates the ending datetime for when the link is valid.
        fieldValues:
          type: object
          description: >
            The values for the fields that are defined as the attributes of the link.
        restrictedFields:
          type: object
          description: >
            The restrictions that apply to the fields of the link. Currently, only masking field restrictions are represented here.
          allOf:
            - $ref: "#/components/schemas/restrictedFields"
        createdAt:
          type: string
          format: date-time
          description: The timestamp value that indicates when this link was created.
        lastUpdatedAt:
          type: string
          format: date-time
          description: The timestamp value that indicates when this link was last modified.
        "@type":
          type: string
          description: Data type that describes the link object. The value is always "DocumentLink".
    maskedRelationshipLink:
      title: Masked Relationship Link
      description: >
        A representation of a relationship link that has masked field values replaced with dot characters. Fields not configured to be masked are represented normally.
      allOf:
        - $ref: "#/components/schemas/relationshipLink"
    relationshipLinkCollection:
      title: Relationship Link Collection
      description: A collection of relationshp links.
      type: object
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/relationshipLink"
              description: The array that contains the relationship links.
    maskedRelationshipLinkCollection:
      title: Masked Relationship Link Collection
      description: A collection of masked relationship links.
      type: object
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/maskedRelationshipLink"
              description: The array that contains the masked relationship links.
    minimallyMaskedRelationshipLink:
      title: Minimally-Masked Relationship Link
      description: >
        A representation of a Relationship Link that has the minimal amount of field masking applied. That is, for each masked field, if the requesting user is authorized to reveal its value, the value is unmasked in this representation. Otherwise the value will remain masked.
      allOf:
        - $ref: "#/components/schemas/relationshipLink"
      example:
        $ref: "#/components/examples/relationshipLinkExample"
    minimallyMaskedRelationshipLinkCollection:
      title: Minimally-Masked Relationship Link Collection
      description: A collection of minimally-masked Relationship Links.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/minimallyMaskedRelationshipLink"
              description: The array that contains the minimally-masked relationship links.
    relationshipType:
      title: Relationship Type
      description: The definition of a connection that can be established between two entities.
      allOf:
        - $ref: "#/components/schemas/dataObject"
        - type: object
          properties:
            reverseName:
              type: string
              description: The name of the relationship from the opposite perspective.
            reverseLabel:
              type: string
              description: The label for the relationship from the opposite perspective.
            fromObjectName:
              type: string
              description: The name of the side of the relationship that is pointed away from another entity.
            fromObjectLabel:
              type: string
              description: The label for the side of the relationship that is pointed away from another entity.
            toObjectName:
              type: string
              description: The name of the side of the relationship that is pointed toward another entity.
            toObjectLabel:
              type: string
              description: The label for the side of the relationship that is pointed toward another entity.
            required:
              type: boolean
              description: Indicates whether the relationship is required.
            cardinality:
              type: string
              description: >
                The cardinality for the relationship. The possible values are: "ONE_TO_ONE", "ONE_TO_MANY", "MANY_TO_ONE", "MANY_TO_MANY"
              enum:
                - ONE_TO_ONE
                - ONE_TO_MANY
                - MANY_TO_ONE
                - MANY_TO_MANY
            sortCriteria:
              $ref: "#/components/schemas/sortCriteria"
            type:
              type: string
              description: >
                The type of relationship. DIRECT_CHILD relationships are parent-child relationships. LINK relationships are general relationships between one type and another.
              enum:
                - DIRECT_CHILD
                - LINK
            symmetric:
              type: boolean
              description: Indicates whether the relationship is symmetric.
            managed:
              type: boolean
              description: Indicates whether the relationship is managed.
            toObjectTypeFieldName:
              type: string
              description: >
                Only used for heterogeneous relationships with no bridge table. The value indicates a field in the "from" entity type. If a document of the "from" entity type has a value for this field, it will contain the entity type name of a document of the "to" entity type to which it is linked under this relationship type. This field in the "from" entity type may not be masked.
            toObjectTypeNames:
              type: array
              description: The names of the entity types on the "to" side of the relationship.
              items:
                type: string
            joinKeyFieldName:
              type: string
              description: >
                Only used for heterogeneous relationships with no bridge table. The value indicates a field in "from" entity type. If a document of the "from" entity type has a value for this field, it will contain the entity ID of a document of the "to" entity type to which it is linked under this relationship type. This field in the "from" entity type may not be masked.
            joinConditions:
              type: array
              description: The list of expressions that are used to perform the join. Join conditions may not reference masked fields.
              items:
                $ref: "#/components/schemas/entityTypeExpressionBoolean"
            fields:
              type: array
              description: The list of fields that are part of the relationship.
              items:
                $ref: "#/components/schemas/relationshipTypeField"
            localizedReverseLabels:
              type: array
              items:
                $ref: "#/components/schemas/labelLocalized"
            deleteTableName:
              type: string
              description: The name of the table that is used for tracking deleted records.
            useCustomIndex:
              type: boolean
              description: Indicates whether the relationship should use a custom index.
            color:
              type: string
              description: The color of links displayed in network view for this relationship type.
            width:
              type: number
              format: double
              description: The width of links displayed in network view for this relationship type.
            dashType:
              type: string
              description: The type of line displayed when viewing a relationship link.
              enum:
                - solid
                - dotted
                - dashed
                - shortDash
                - dashDot
                - longDash
                - longDashDot
                - longDashDotDot
            styles:
              type: array
              description: Additional styling that is conditional.
              items:
                $ref: "#/components/schemas/relationshipStyle"
            reindexRequired:
              type: boolean
              description: >
                Indicates whether reindexing is required. After a relationship type is updated, this value is true if the relationship needs to be reindexed.
    relationshipTypeField:
      title: Relationship Type Field
      description: A field within a relationship type.
      allOf:
        - $ref: "#/components/schemas/dataField"
        - type: object
          properties:
            ownerName:
              type: string
              description: The owner of the relationship type
            writeOnlyAtCreate:
              type: boolean
              description: Flag to indicate that a read-only field can be modified when a link is created
            hidden:
              type: boolean
              description: Flag to indicate if the field should be visible to end-users
    sheet:
      title: Sheet
      type: object
      description: An instance of an insight or workspace.
      properties:
        id:
          type: integer
          format: int64
          description: A value that uniquely identifies the insight or workspace.
        name:
          type: string
          description: The name of the insight or workspace.
        tabOrder:
          type: integer
          description: The tab order for the insight or workspace.
        type:
          type: string
          enum:
            - WORKSHEET
            - NOTESHEET
          description: >
            Indicates the type of "sheet", either a workspace or an insight: <ul>
              <li>`WORKSHEET` - a workspace</li>
              <li>`NOTESHEET` - an insight</li>
            </ul>
        cells:
          type: array
          description: The individual cells on the sheet.
          items:
            $ref: "#/components/schemas/sheetCell"
        lastModified:
          type: string
          format: date-time
          description: The timestamp that indicates when this cell was last modified.
    sheetCell:
      title: Cell
      type: object
      description: An individual cell on a workspace or an insight.
      properties:
        id:
          type: integer
          format: int64
          description: A value that uniquely identifies the cell.
        row:
          type: integer
          description: The row of the worksight or insight in which the cell exists.
        position:
          type: integer
          description: The position of the cell in the row.
        type:
          type: string
          enum:
            - LIVE
            - STATIC
            - IMAGE
            - TEXT
          description: >
            The type of the cell: <ul>
              <li>`LIVE` - live visualization</li>
              <li>`STATIC` - static visualization or network</li>
              <li>`IMAGE` - Base64 encoded image and annotations</li>
              <li>`TEXT` - simple text cell for HTML</li>
            </ul>
        height:
          type: integer
          description: The height of the cell.
        width:
          type: integer
          description: The width of the cell.
        lastModified:
          type: string
          format: date-time
          description: The timestamp that indicates when this cell was last modified.
    sheetCopySelection:
      title: Sheet Copy Selection
      type: object
      description: A selection of sheets to copy.
      properties:
        sheetIds:
          type: array
          description: The values that uniquely identify the sheets to copy.
          items:
            type: integer
            format: int64
        objectTypeName:
          type: string
          description: The object type name of the object to which the sheets are attached.
        objectId:
          type: string
          description: The ID of the object to which the sheets are attached.
    solutionPublishResult:
      title: Solution Publish Result
      description: >
        The results of a publish operation. This includes counts of how many items were published and a summary of any that failed.
      properties:
        solutionName:
          type: string
          description: The name of the solution.
          example: sample_solution
        solutionLabel:
          type: string
          description: The localized name of the solution.
          example: Sample Solution
        successful:
          type: integer
          description: The number of items that were successfully published.
          example: 42
        failed:
          type: integer
          description: The number of items that could not be published.
          example: 1
        results:
          type: array
          items:
            $ref: "#/components/schemas/solutionPublishResultItem"
    solutionPublishResultItem:
      title: Solution Publish Result Item
      description: >
        The results of a publish operation for a specific item type. This includes counts of how many items were published and a summary of any that failed.
      properties:
        type:
          type: string
          description: The internal name for the item type that was published.
          enum:
            - ENTITY_TYPE
            - CONTEXT_MAPPING
            - PAGE_TEMPLATE
            - WORKFLOW_TEMPLATE
            - FLOW
          example: ENTITY_TYPE
        label:
          type: string
          description: The localized name of the item.
          example: Entity Type
        successful:
          type: integer
          description: The number of items that were successfully published.
          example: 42
        failed:
          type: integer
          description: The number of items that could not be published.
          example: 1
        errors:
          type: array
          items:
            $ref: "#/components/schemas/solutionPublishResultError"
    solutionPublishResultError:
      title: Solution Publish Result Error
      description: >
        Detailed information about an item that was not successfully published.
      properties:
        name:
          type: string
          description: The name of the item.
          example: sample_item
        label:
          type: string
          description: The localized name of the item.
          example: Sample Item
        message:
          type: string
          description: The error message for the failure.
          example: Record is locked by another user.
    sortableNameReference:
      title: Sortable Name Reference
      description: A name (typically a field name) with an ordinal that indicates its position in a sequence.
      properties:
        name:
          type: string
          description: The name of the reference.
        displayIndex:
          type: integer
          description: The ordinal for the name. This is typically a field name.
    entityStyle:
      title: Entity Style
      description: >
        The properties for styling an icon, nodes, and map pins for an entity type. The style is tied to a condition. When the condition is true, the style is applied.
      allOf:
        - $ref: "#/components/schemas/styleCommonProperties"
        - type: object
          properties:
            iconName:
              type: string
              description: The name of the icon properties.
            markerCode:
              type: string
              description: A hexadecimal color value for the background color to use for map pins.
            nodeColor:
              type: string
              description: A hexadecimal color value to use when an object is represented as a node.
            borderColor:
              type: string
              description: A hexadecimal color value to use for the node border.
            borderWidth:
              type: number
              format: double
              description: The width of the node border.
    relationshipStyle:
      title: Relationship Style
      type: object
      description: The properties for styling of links for a relationship type.
      allOf:
        - $ref: "#/components/schemas/styleCommonProperties"
        - type: object
          properties:
            color:
              type: string
              description: The color of links that are displayed in network view for this relationship type.
            width:
              type: number
              format: double
              description: The width of links that are displayed in network view for this relationship type. Specify a whole number.
            dashType:
              type: string
              description: The type of line that is displayed when viewing a relationship link.
              enum:
                - solid
                - dotted
                - dashed
                - shortDash
                - dashDot
                - longDash
                - longDashDot
                - longDashDotDot
    styleCommonProperties:
      title: Common Style Properties
      description: >
        The shared style icon properties for a condition. When the condition is true, the style is applied.
      properties:
        id:
          type: string
          description: A unique ID value for the style properties.
        conditionId:
          type: string
          description: The ID of the condition with which the style is associated.
        evaluationOrder:
          type: integer
          description: The order in which the condition should be evaluated.
    transactionType:
      title: Transaction Type
      description: >
        The metadata that defines a class of transactions. This definition includes a "from" entity type, a "to" entity type, a date-time field, as well as on optional list of additional fields. A transaction, which is an instance of a transaction type, defines an action that was performed between two entities at a specific point in time.
      allOf:
        - $ref: "#/components/schemas/dataObject"
        - type: object
          properties:
            fromObjectName:
              type: string
              description: The entity type on the "from" side of the transaction.
            toObjectName:
              type: string
              description: The entity type on the "to" side of the transaction.
            fromObjJoinCondition:
              description: The join condition that identifies the "from" entity type. Join conditions cannot reference masked fields.
              type: object
              allOf:
                - $ref: "#/components/schemas/entityTypeExpressionBoolean"
            toObjJoinCondition:
              description: The join condition that identifies the "to" entity type. Join conditions cannot reference masked fields.
              type: object
              allOf:
                - $ref: "#/components/schemas/entityTypeExpressionBoolean"
            fromObjectRefFieldName:
              type: string
              description: The name of the field that contains the reference key to the "from" entity. This field cannot be masked.
            toObjectRefFieldName:
              type: string
              description: The name of the field that contains the reference key to the "to" entity. This field cannot be masked.
            fromObjectTypeFieldName:
              type: string
              description: If the transactions can have different "from" entity types, the name of the field that contains the "from" entity type. This field cannot be masked.
            toObjectTypeFieldName:
              type: string
              description: If the transactions can have different "to" entity types, name of the field that contains the "to" entity type. This field cannot be masked.
            lineWidthFieldName:
              type: string
              description: The field that is used to calculate the line width used when displaying the transaction on a network diagram.
            lineWidthFunctionType:
              type: string
              description: The aggregate function that is used (on the field identified in lineWidthFieldName property) to calculate the line width when displaying the transaction on a network diagram.
              enum:
                - SUM
                - COUNT
                - AVERAGE
                - MIN
                - MAX
            lineColorFieldName:
              type: string
              description: The field that is used to determine line color when displaying the transaction on a network diagram.
            lineColorFunctionType:
              type: string
              description: The aggregate function that is used (on field identified in lineColorFieldName property) to determine the line color when displaying the transaction on a network diagram.
              enum:
                - SUM
                - COUNT
                - AVERAGE
                - MIN
                - MAX
            validFromFieldName:
              type: string
              description: The field that is used to determine the earliest time this transaction is valid. This field cannot be masked.
            fields:
              description: The array that contains the fields that are associated with this transaction type.
              type: array
              items:
                $ref: "#/components/schemas/transactionTypeField"
    transactionTypeField:
      title: Transaction Type Field
      type: object
      description: A single field that is associated with a transaction type object.
      allOf:
        - $ref: "#/components/schemas/dataField"
        - type: object
          properties:
            ownerName:
              type: string
              description: The name of the owner.
    actionSummary:
      title: Action Summary
      type: object
      description: >
        A representation of an action against a document or link.

        For example, an action could be: <ul>
          <li>Created the document</li>
          <li>Added a comment</li>
          <li>Deleted an attachment</li>
        </ul>

        The summary version of this representation omits detailed information about the action.
      properties:
        actionId:
          type: string
          description: >
            An ID that represents this action.
        action:
          type: string
          description: >
            A localized message that describes the action. For example, "Attached a file".
        actionType:
          type: string
          description: >
            A string that represents this action. This can be used to filter actions.
          enum:
            - DOCUMENT_CREATE
            - DOCUMENT_EDIT
            - DOCUMENT_DELETE
            - DOCUMENT_UNKNOWN
            - RELATIONSHIP_CREATE
            - RELATIONSHIP_EDIT
            - RELATIONSHIP_DELETE
            - RELATIONSHIP_UNKNOWN
            - OBJECT_LINKED
            - OBJECT_LINK_EDIT
            - OBJECT_UNLINKED
            - OBJECT_LINK_UNKNOWN
            - COMMENT_CREATE
            - COMMENT_EDIT
            - FILE_UPLOAD
            - FILE_DELETE
        objectType:
          type: string
          description: >
            The type of the underlying document or link to which the action was applied.
        objectId:
          type: string
          description: >
            The ID of the underlying document or link to which the action was applied.
        objectVersion:
          type: string
          description: >
            The version of the underlying document or link to which the action was applied.
        createdBy:
          type: string
          description: >
            The ID of the user who created this action.
        createdAt:
          type: string
          format: date-time
          description: >
            The timestamp that indicates when this action was created.
        links:
          type: array
          items:
            $ref: "#/components/schemas/sasLink"
          description: >
            A list of links that are available for this action. This contains the link to fetch the full action representation.
        version:
          type: integer
          description: >
            The version number of the Action Summary MediaType.
    actionSummaryCollection:
      title: Action Summary Collection
      description: >
        A collection of action summaries.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/actionSummary"
              description: An array of action summaries.
    subActionItem:
      title: Sub-Action Item
      type: object
      description: >
        An action item representation of a sub-action that occurred inside the scope of an action. For example, the "Deleted child objects" action inside an "Edited the document" action.
      properties:
        type:
          type: string
          enum:
            - subItem
          description: >
            A constant value for this action item that allows clients to display the sub-action item correctly.
        action:
          type: string
          description: >
            A localized message that represents this sub-action item.
          example: Edited child objects.
        items:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/subActionItem"
              - $ref: "#/components/schemas/labelActionItem"
              - $ref: "#/components/schemas/tableActionItem"
          description: >
            A list of action items under this sub-action item. This array can contain: <ul>
              <li>Sub-Action Items</li>
              <li>Label Action Items</li>
              <li>Table Action Items</li>
            </ul>
    labelActionItem:
      title: Label Action Item
      type: object
      description: >
        An action item representation that can be used to display a message to the user.
      properties:
        type:
          type: string
          enum:
            - labelItem
          description: >
            A constant value for this action item that allows clients to display the label action item correctly.
        label:
          type: string
          description: >
            The message that is displayed to the user.
        labelType:
          type: string
          enum:
            - STRING
            - HTML
          description: >
            Indicates the type of the label to the client for formatting and display purposes.
        items:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/subActionItem"
              - $ref: "#/components/schemas/labelActionItem"
              - $ref: "#/components/schemas/tableActionItem"
          description: >
            A list of action items under this label action item. This array can contain: <ul>
              <li>Sub-Action Items</li>
              <li>Label Action Items</li>
              <li>Table Action Items</li>
            </ul>
    tableActionItem:
      title: Table Action Item
      type: object
      description: >
        An action item representation that can be used to present a table to the user.
      properties:
        type:
          type: string
          enum:
            - tableItem
          description: >
            A constant value for this action item that allows clients to display the table action item correctly.
        action:
          type: string
          description: >
            A localized message that represents this table action item.
          example: Changed fields.
        headings:
          type: array
          description: >
            The localized headers for the table.
          items:
            type: string
        rows:
          type: array
          description: >
            A list of table rows. Each row contains a list of action table values.
          items:
            type: array
            items:
              $ref: "#/components/schemas/actionTableValue"
    action:
      title: Action
      type: object
      description: >
        A representation of an action against a document or link.

        For example, an action could be: <ul>
          <li>Created the document</li>
          <li>Added a comment</li>
          <li>Deleted an attachment</li>
        </ul>

        This representation contains detailed information about the action. For example, field value changes that occur when a document is edited.
      allOf:
        - $ref: "#/components/schemas/actionSummary"
        - type: object
          properties:
            items:
              type: array
              items:
                type: object
              description: >
                A list of action items. This represents detailed information about the action. This array can contain: <ul>
                  <li>Sub-Action Items</li>
                  <li>Label Action Items</li>
                  <li>Table Action Items</li>
                </ul>
    actionTableValue:
      title: Action Table Value
      type: object
      description: >
        Represents a table cell within a table action item. If the field value is masked, the representation includes a field restriction object containing some additional masking metadata for the field value.
      properties:
        value:
          type: object
          description: >
            The value of the cell. If the field is configured for masking, this value is replaced with dots.
        fieldRestriction:
          $ref: "#/components/schemas/fieldRestriction"
        type:
          type: string
          enum:
            - BOOLEAN
            - STRING
            - INTEGER
            - DECIMAL
            - DATE
            - TIMESTAMP
            - TIMESTAMP_WITH_TIME_ZONE
            - JSON
            - HTML
            - REFERENCE_DATA
            - USER_GROUP
          description: >
            Indicates the type of value to the client. This is for display and format purposes.
    actionType:
      title: Action Type
      type: object
      description: >
        Represents a type of action that the client can filter on.
      properties:
        actionType:
          type: string
          description: >
            A unique string that represents an action.

            For example: <ul>
              <li>DOCUMENT_EDIT</li>
              <li>COMMENT_CREATE</li>
              <li>FILE_UPLOAD</li>
            </ul>

            When requesting filtered action history, the client passes this string in the filter parameter.
        localizedMessage:
          type: string
          description: >
            A localized message that represents this filter option. This could be displayed in a drop-down filter selection menu.
    actionTypeCollection:
      title: Action Type Collection
      type: object
      description: >
        A collection of action types.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/actionType"
              description: An array of action types.
    historyinfo:
      title: Additional History Information
      type: object
      description: >
        Represents additional information about a historical version of a document. For example, showing that a change occurred to an insight.
      properties:
        historyInfoId:
          type: integer
          description: >
            The ID for this additional history information record.
        itemRefId:
          type: string
          description: >
            The ID of the object that this additional history information references. For example, this could be the ID of a file association.
        itemType:
          type: string
          description: >
            The type of object that this additional history information references.
        itemLabel:
          type: string
          description: >
            A label for the object that this additional history information references.
        operation:
          type: string
          description: >
            Represents the generic type of operation that this additional history information references.
        ownerType:
          type: string
          description: >
            The object type of the document to which this additional history information belongs.
        ownerId:
          type: string
          description: >
            The ID of the document to which this additional history information belongs.
        ownerVersion:
          type: string
          description: >
            The version of the document to which this additional history information belongs.
    historyinfoCollection:
      title: Additional History Information Collection
      description: >
        A collection of additional history information.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/historyinfo"
              description: An array of additional history information.
    versionSummary:
      title: Version Summary
      type: object
      description: >
        A representation of a single historical version of document or link. The summary version of this representation omits the comparison of field values between the requested and previous version of the document or link.
      properties:
        typeName:
          type: string
          description: >
            The entity type or relationship type of the underlying document or link.
        id:
          type: string
          description: >
            The ID of the underlying document or link.
        version:
          type: string
          description: >
            The version of the underlying document or link.
        displayLabel:
          type: string
          description: >
            The display label for the underlying document or link.
        operation:
          type: string
          description: >
            A string that describes what action caused this version to be created.

            Operations: <ul>
              <li>create</li>
              <li>delete</li>
              <li>update</li>
              <li>unknown</li>
              <li>unchanged</li>
            </ul>
        createdBy:
          type: string
          description: >
            The ID of the user that created this version.
        createdAt:
          type: string
          format: date-time
          description: >
            The timestamp that indicates when this version was created.
        links:
          type: array
          items:
            $ref: "#/components/schemas/sasLink"
          description: >
            A list of links that are available for this version. This contains a link to the full version representation.
    versionSummaryCollection:
      title: Version Summary Collection
      description: >
        A collection of version summaries.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/versionSummary"
              description: An array of version summaries.
    version:
      title: Version
      description: >
        A representation of a single historical version of document or link. This representation contains an array of values that compares field values between the previous and requested version of the document or link.
      allOf:
        - $ref: "#/components/schemas/versionSummary"
        - type: object
          properties:
            values:
              type: array
              items:
                $ref: "#/components/schemas/versionValue"
              description: >
                A list of version values.
    childVersionSummary:
      title: Child Version Summary
      description: >
        A representation of a single version of a child document. The summary version of this representation omits the comparison of field values between the requested and previous version of the child document.
      allOf:
        - $ref: "#/components/schemas/versionSummary"
        - type: object
          properties:
            parentTypeName:
              type: string
              description: >
                The object type of the parent document.
            parentId:
              type: string
              description: >
                The ID of the parent document.
            parentVersion:
              type: string
              description: >
                The version of the parent document.
    childVersionSummaryCollection:
      title: Child Version Summary Collection
      description: >
        A collection of child version summaries.
      allOf:
        - $ref: "#/components/schemas/sasCollection"
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/childVersionSummary"
              description: An array of child version summaries.
    childVersion:
      title: Child Version
      description: >
        A representation of a single version of child document. This representation contains an array of values that compares field values between the previous and requested version of the child document.
      allOf:
        - $ref: "#/components/schemas/childVersionSummary"
        - type: object
          properties:
            values:
              type: array
              items:
                $ref: "#/components/schemas/versionValue"
              description: >
                A list of version values.
    versionValue:
      title: Version Value
      type: object
      description: >
        A comparison of a field value between the requested and previous version of a document or link.
      properties:
        name:
          type: string
          description: >
            The field name of the underlying field.
        label:
          type: string
          description: >
            The localized label for the underlying field.
        previousVersionValue:
          description: >
            The value of the field in the previous version of the document or link. If the field is currently configured for masking, this value is masked with dots.
        previousValueFieldRestriction:
          description: >
            A field restriction object containing any relevant masking metadata for the previous version value. This can be used by clients to determine whether the previous version value can be revealed by the current user and what URL can be used to fetch the revealed previous version value.
          type: object
          allOf:
            - $ref: "#/components/schemas/fieldRestriction"
        value:
          description: >
            The value of the field in the requested version of the document or link. If the field is currently configured for masking, this value is masked with dots.
        fieldRestriction:
          description: >
            A field restriction object containing any relevant masking metadata for the field value. This can be used by clients to determine whether the value can be revealed by the current user and what URL can be used to fetch the revealed value.
          type: object
          allOf:
            - $ref: "#/components/schemas/fieldRestriction"
        type:
          type: string
          description: >
            The data type of the field. This can be used by clients for formatting and display purposes.
        valueChanged:
          type: boolean
          description: >
            Indicates whether the value has changed between the previous and requested version of the document or link.
    sasCollection:
      title: SAS Collection
      description: >
        This is a base schema that is used to define paginated collections of resources. It is based on http://{SAS API Portal}/reference/schema/baseCollection/v2/baseCollection2.json. Other APIs can extend this base schema by adding an "items" array property. 
      type: object
      properties:
        name:
          type: string
          description: The name of the collection.
        start:
          type: integer
          description: The zero-based index of the first item in the collection.
          format: int64
        limit:
          type: integer
          description: The number of items that were requested for the collection.
        count:
          type: integer
          description: If populated, indicates the number of items in the collection.
          format: int64
        accept:
          type: string
          description: A space-delimited list of media types from which an `Accept` header can be constructed.
        links:
          type: array
          description: The links that apply to the collection.
          items:
            $ref: "#/components/schemas/sasLink"
        version:
          type: integer
          description: The version number of the collection representation. This representation is version 2.
    sasError:
      title: SAS Error
      description: >
        The representation of an error. This schema is based on http://{SAS API Portal}/reference/schema/application/vnd.sas.error/v2/error2.json.
      type: object
      properties:
        message:
          type: string
          description: The message for the error.
        id:
          type: string
          description: The string ID for the error.
        errorCode:
          type: integer
          description: The numeric ID for the error.
        httpStatusCode:
          type: integer
          description: The HTTP status code for the error.
        details:
          type: array
          description: Messages that provide additional details about the cause of the error.
          items:
            type: string
        remediation:
          type: string
          description: A message that describes how to resolve the error.
        errors:
          type: array
          description: Any additional errors that occurred.
          items:
            type: object
        links:
          type: array
          description: The links that apply to the error.
          items:
            $ref: "#/components/schemas/sasLink"
        version:
          type: integer
          description: The version number of the error representation. This representation is version 2.
      example:
        $ref: "#/components/examples/sasErrorExample"
    sasLink:
      title: SAS Link
      description: >
        A link to a related operation or resource. This schema is based on http://{SAS API Portal}/reference/schema/link/v1/link.json.
      type: object
      properties:
        method:
          type: string
          description: The HTTP method for the link.
        rel:
          type: string
          description: The relationship of the link to the resource.
        uri:
          type: string
          description: The relative URI for the link.
        href:
          type: string
          description: The URL for the link.
        title:
          type: string
          description: The title for the link.
        type:
          type: string
          description: The media type or link type for the link.
        itemType:
          type: string
          description: If this is a link to a container, `itemType` is the media type or link type for the items in the container.
        responseType:
          type: string
          description: The media type or link type of the response body for a `PUT`, `POST`, or `PATCH` operation.
        responseItemType:
          type: string
          description: The media type or link type of the items in the response body for a `PUT`, `POST`, or `PATCH` operation.
    sasProperties:
      title: SAS Properties
      description: >
        Contains a set of properties, each of which is a pair that consists of a string name and a string value. This schema is based on http://{SAS API Portal}/reference/schema/application/vnd.sas.properties/v1/properties.json.
      type: object
      properties:
        version:
          type: integer
          description: The version number of the API representation. This is version 1.
          minimum: 1
        properties:
          type: array
          items:
            $ref: "#/components/schemas/sasProperty"
          description: A list of name/value pairs.
        links:
          description: Links to associated resources and operations. APIs might provide links for the link relations `self', `update` (to replace the attributes), `patch` (to update some attributes), or others.
          type: array
          items:
            type: object
    sasProperty:
      title: SAS Property
      description: >
        A pair that consists of a string name and a string value.  This is based on http://{SAS API Portal}/reference/schema/property/v1/property.json.
      type: object
      properties:
        name:
          type: string
          description: The property name.
        value:
          type: string
          description: The property value.
    jsonPatch:
      title: JSON Patch
      description: >
        A specification of changes to make to an object. It consists of an array of patch operations.
      type: array
      items:
        oneOf:
          - $ref: "#/components/schemas/jsonPatchAddOperation"
          - $ref: "#/components/schemas/jsonPatchReplaceOperation"
          - $ref: "#/components/schemas/jsonPatchTestOperation"
          - $ref: "#/components/schemas/jsonPatchRemoveOperation"
          - $ref: "#/components/schemas/jsonPatchMoveOperation"
          - $ref: "#/components/schemas/jsonPatchCopyOperation"
    jsonPatchAddOperation:
      title: JSON Patch Add Operation
      description: >
        Specifies a patch operation that adds a value.
      additionalProperties: false
      properties:
        path:
          description: A JSON Pointer path where the Add operation is applied.
          type: string
        op:
          description: The operation to perform. For Add operations, this is always "add".
          type: string
          pattern: ^add$
        value:
          description: The value to add at the location specified by the path.
    jsonPatchReplaceOperation:
      title: JSON Patch Replace Operation
      description: >
        Specifies a patch operation that replaces a value.
      additionalProperties: false
      properties:
        path:
          description: A JSON Pointer path where the Replace operation is applied.
          type: string
        op:
          description: The operation to perform. For Replace operations, this is always "replace".
          type: string
          pattern: ^replace$
        value:
          description: The value to replace at the location specified by the path.
    jsonPatchTestOperation:
      title: JSON Patch Test Operation
      description: >
        Specifies a patch operation that tests a value.
      additionalProperties: false
      properties:
        path:
          description: A JSON Pointer path where the Test operation is applied.
          type: string
        op:
          description: The operation to perform. For Test operations, this is always "test".
          type: string
          pattern: ^test$
        value:
          description: The value to test at the location specified by the path.
    jsonPatchRemoveOperation:
      title: JSON Patch Remove Operation
      description: >
        Specifies a patch operation that removes a value.
      additionalProperties: false
      properties:
        path:
          description: A JSON Pointer path where the Remove operation is applied.
          type: string
        op:
          description: The operation to perform. For Remove operations, this is always "remove".
          type: string
          pattern: ^remove$
    jsonPatchMoveOperation:
      title: JSON Patch Move Operation
      description: >
        Specifies a patch operation that moves a value from one location to another.
      additionalProperties: false
      properties:
        from:
          description: A JSON Pointer path from which the value is moved.
          type: string
        path:
          description: A JSON Pointer path to which the value is moved.
          type: string
        op:
          description: The operation to perform. For Move operations, this is always "move".
          type: string
          pattern: ^move$
    jsonPatchCopyOperation:
      title: JSON Patch Copy Operation
      description: >
        Specifies a patch operation that copies a value from one location to another.
      additionalProperties: false
      properties:
        from:
          description: A JSON Pointer path from which the value is copied.
          type: string
        path:
          description: A JSON Pointer path to which the value is copied.
          type: string
        op:
          description: The operation to perform. For Copy operations, this is always "copy".
          type: string
          pattern: ^copy$
    icon:
      title: Icon
      type: object
      description: The information that describes an icon.
      allOf:
        - $ref: "#/components/schemas/auditableObject"
        - type: object
          properties:
            name:
              type: string
              description: The name of the icon.
            imageType:
              type: string
              description: The type of the icon's image.
              enum:
                - GIF
                - JPEG
                - PNG
                - SVG
                - SVG+XML
            imageLocation:
              type: string
              description: The location where the image is stored.
            bytes:
              type: string
              format: binary
              description: The raw binary data for the icon.
            version:
              type: integer
              description: The internal Data Hub version for this icon.
    nodeDecoration:
      title: Node Decoration
      type: object
      description: The information that describes a node decoration.
      allOf:
        - type: object
          properties:
            label:
              type: string
              description: The label for the icon decoration.
            icons:
              type: array
              description: The collection of icon decorations associated with this node.
  examples:
    actionExample:
      description: Example of an Action object.
      value:
        actionId: "2"
        action: Edited the Person
        actionType: DOCUMENT_EDIT
        objectType: Person
        objectId: uuid_100
        objectVersion: "2"
        createdBy: videmo
        createdAt: 2023-06-28T00:00:00.000Z
        links:
          - method: GET
            rel: self
            href: /svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT
            uri: /svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT
            type: application/vnd.sas.investigate.action
        version: 1
        items:
          - type: tableItem
            action: Changed fields
            headings:
              - Field
              - Original Value
              - New Value
            rows:
              - - value: Person Id
                  type: STRING
                - value: uuid_100
                  type: STRING
              - - value: First Name
                  type: STRING
                - value: John
                  type: STRING
              - - value: Last Name
                  type: STRING
                - value: Smith
                  type: STRING
              - - value: Created By
                  type: STRING
                - value: unit_test
                  type: STRING
              - - value: Last Updated By
                  type: STRING
                - value: videmo
                  type: STRING
    actionSummaryResourceCollectionExample:
      description: Example of a Resource Collection that contains Action Summary objects.
      value:
        links:
          - method: GET
            rel: collection
            href: /svi-datahub/documents/person/uuid_100/actions
            uri: /svi-datahub/documents/person/uuid_100/actions
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigate.action.summary
          - method: GET
            rel: self
            href: /svi-datahub/documents/person/uuid_100/actions?start=0&limit=10
            uri: /svi-datahub/documents/person/uuid_100/actions?start=0&limit=10
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigate.action.summary
          - method: GET
            rel: availableActionTypes
            href: /svi-datahub/documents/person/uuid_100/actions
            uri: /svi-datahub/documents/person/uuid_100/actions
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigate.action.type
        name: actions
        start: 0
        count: 1
        items:
          - actionId: "2"
            action: Edited the Person
            actionType: DOCUMENT_EDIT
            objectType: Person
            objectId: uuid_100
            objectVersion: "2"
            createdBy: videmo
            createdAt: 2023-06-28T19:28:42.948Z
            links:
              - method: GET
                rel: self
                href: /svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT
                uri: /svi-datahub/documents/person/uuid_100/actions/2?actionType=DOCUMENT_EDIT
                type: application/vnd.sas.investigate.action
            version: 1
        limit: 10
        version: 2
    relationshipLinkActionExample:
      description: Example of a Relationship Link Action.
      value:
        actionId: "2"
        action: Edited the relationship
        actionType: RELATIONSHIP_EDIT
        objectType: Witnessed by
        objectId: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
        objectVersion: "2"
        createdBy: videmo
        createdAt: 2023-06-29T00:00:00.000Z
        links:
          - method: GET
            rel: self
            href: /svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            uri: /svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            type: application/vnd.sas.investigate.action
        version: 1
        items:
          - type: tableItem
            action: Changed properties
            headings:
              - Property
              - Original Value
              - New Value
            rows:
              - - value: Auto Generated Sk
                  type: STRING
                - value: e5343e0e-3d68-11e8-b467-0ed5f89f718b
                  type: STRING
              - - value: Person Id
                  type: STRING
                - value: uuid_102
                  type: STRING
              - - value: Report Id
                  type: STRING
                - value: uuid_502
                  type: STRING
              - - value: Description
                  type: STRING
                - value: some description
                  type: STRING
              - - value: Created By User Id
                  type: STRING
                - value: unit_test
                  type: STRING
              - - value: Last Updated By User Id
                  type: STRING
                - value: videmo
                  type: STRING
    relationshipLinkActionSummaryResourceCollectionExample:
      description: Example of a Resource Collection that contains Relationship Link Action Summary objects.
      value:
        links:
          - method: GET
            rel: self
            href: /svi-datahub/links/@item/actions?_id=witnessed_by%7C_%7Cintel_report%7C_%7Cperson%7C_%7Ce5343e0e-3d68-11e8-b467-0ed5f89f718b&start=0&limit=10
            uri: /svi-datahub/links/@item/actions?_id=witnessed_by%7C_%7Cintel_report%7C_%7Cperson%7C_%7Ce5343e0e-3d68-11e8-b467-0ed5f89f718b&start=0&limit=10
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigate.action.summary
          - method: GET
            rel: collection
            href: /svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            uri: /svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigate.action.summary
          - method: GET
            rel: up
            href: /svi-datahub/links/@item?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            uri: /svi-datahub/links/@item?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            type: application/vnd.sas.investigate.action.summary
          - method: GET
            rel: availableActionTypes
            href: /svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            uri: /svi-datahub/links/@item/actions?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigate.action.type
        name: actions
        start: 0
        count: 1
        items:
          - actionId: "2"
            action: Edited the relationship
            actionType: RELATIONSHIP_EDIT
            objectType: Witnessed by
            objectId: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            objectVersion: "2"
            createdBy: videmo
            createdAt: 2023-06-29T22:17:51.061Z
            links:
              - method: GET
                rel: self
                href: /svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
                uri: /svi-datahub/links/@item/actions/2?_id=witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
                type: application/vnd.sas.investigate.action
            version: 1
        limit: 10
        version: 2
    bulkOperationExample:
      description: Example of request to insert and update more than one document
      value:
        items:
          - objectTypeName: ParentTest
            objectTypeId: 102200
            objectTypeVersion: 5
            id: 427255e4-d090-4045-9e1b-21b2cd193c7e
            fieldValues:
              ChildTest:
                - objectTypeName: ChildTest
                  objectTypeId: 102201
                  objectTypeVersion: 1
                  id: b44a80b7-8342-4c26-b186-11597218de9e
                  fieldValues:
                    ChildValue1: test1_child2A1
                    ChildValue2: test1_child2B1
                    childtest_id: b44a80b7-8342-4c26-b186-11597218de9e
                    parenttest_id: 427255e4-d090-4045-9e1b-21b2cd193c7e
                - objectTypeName: ChildTest
                  objectTypeId: 102201
                  objectTypeVersion: 1
                  id: c10e1931-1860-4b5b-8fa2-588016b7d556
                  fieldValues:
                    ChildValue1: Hello
                    ChildValue2: World
                    childtest_id: c10e1931-1860-4b5b-8fa2-588016b7d556
                    parenttest_id: 427255e4-d090-4045-9e1b-21b2cd193c7e
              ParentValue: test1_Update1
              created_at_dttm: 2019-01-31T20:16:51.303Z
              created_by_user_id: videmo
              last_updated_at_dttm: 2019-02-01T16:04:53.559Z
              last_updated_by_user_id: videmo
              parenttest_id: 427255e4-d090-4045-9e1b-21b2cd193c7e
              version: 3
            createdAt: 2019-01-31T20:16:51.303Z
            lastUpdatedAt: 2019-02-01T16:04:53.559Z
            attachmentsCount: 0
          - objectTypeName: ParentTest
            objectTypeId: 102200,
            fieldValues:
              ChildTest:
                - objectTypeName: ChildTest
                  objectTypeId: 102201
                  objectTypeVersion: 1
                  fieldValues:
                    ChildValue1: test2_child2A
                    ChildValue2: test2_child2B
                - objectTypeName: ChildTest
                  objectTypeId: 102201
                  objectTypeVersion: 1
                  fieldValues:
                    ChildValue1: test1_child1A
                    ChildValue2: test1_child1B
            ParentValue: test2
    linkBulkOperationExample:
      description: Example of request to insert and update more than one link. Note that the '@type' field is required.
      value:
        items:
          - "@type": DocumentLink
            relationshipTypeName: Type2
            fieldValues:
              LinkField1: Test Value 1
              LinkField2: Test Value 2
            fromObjectTypeName: Type1
            fromObjectId: 5d04969d-7f5b-44fe-be17-b6d441f3e18e
            toObjectTypeName: Type2
            toObjectId: 58dec96e-8315-48d0-ac49-a4c9aad1f050
          - "@type": DocumentLink
            relationshipTypeName: Type2
            relationshipTypeVersion: 0
            relationshipTypeLabel: Type1_to_Type2
            id: Type2|_|Type1|_|Type2|_|09576e87-6e4c-4758-b131-7f64c659b89d
            createdAt: 2022-07-28T12:26:18.059Z
            lastUpdatedAt: 2022-07-28T15:39:44.065Z
            displayLabel: Type1_to_Type2
            fromObjectTypeName: Type1
            fromObjectTypeVersion: 2
            fromObjectId: 5d04969d-7f5b-44fe-be17-b6d441f3e18e
            toObjectTypeName: Type2
            toObjectTypeVersion: 2
            toObjectId: 0a4e28eb-bc55-45fa-bc9e-efaefd30a4b5
            fieldValues:
              LinkField1: Test Value 1a
              LinkField2: Test Value 2a
              auto_generated_sk: 09576e87-6e4c-4758-b131-7f64c659b89d
              created_at_dttm: 2022-07-28T12:26:18.059Z
              created_by_user_id: videmo
              last_updated_at_dttm: 2022-07-28T15:39:44.065Z
              last_updated_by_user_id: videmo
              type1_id: 5d04969d-7f5b-44fe-be17-b6d441f3e18e
              type2_id: 0a4e28eb-bc55-45fa-bc9e-efaefd30a4b5
              version: 8
            qualifiedTypeName: Type1__Type2
    documentBulkOperationResultCollectionExample:
      description: Example of a Resource Collection that contains Bulk Operation Result objects.
      value:
        links: []
        name: entities
        count: 1
        items:
          - id: uuid_100
            entityType: person
            operation: UPDATE
        version: 2
    linkBulkOperationResultExample:
      description: Example of a link bulk operation result.
      value:
        id: primary_victim|_|police_report|_|person|_|id_600
        relationshipTypeName: primary_victim
        fromEntityType: police_report
        fromId: id_600
        toId: id_104
        toEntityType: person
        operation: UPDATE
    linkBulkOperationResultCollectionExample:
      description: Example of a collection of link bulk operation results.
      value:
        links: []
        name: links
        count: 2
        items:
          - id: primary_victim|_|police_report|_|person|_|id_600
            relationshipTypeName: primary_victim
            fromId: id_600
            fromEntityType: police_report
            toId: id_104
            toEntityType: person
            operation: UPDATE
          - error:
              errorCode: 0
              message: The entity type with name "TestChild" was not found or the current user does not have the necessary permissions to view the entity type.
              details:
                - "From Entity Type: TestChild"
                - "From Entity ID: 3cf75c6d-439a-4b74-ac9f-ca2b5eb80c18"
                - "To Entity Type: Case"
                - "To Entity ID: 106f65d1-73be-4b7e-a78d-a33d38dbf057"
                - "Relationship Type Name: case_rev"
              id: DH6106
              version: 2
              httpStatusCode: 404
        version: 2
    entityTypeExample:
      description: Example of an Entity Type object.
      value:
        id: 100924
        createdBy: sasboot
        createdAt: 2023-06-23T20:47:03.513Z
        lastUpdatedBy: videmo
        lastUpdatedAt: 2023-06-28T18:19:17.984Z
        label: Person
        description: Person
        localizedLabels:
          - id: 102942
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.514Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:03.514Z
            label: Person
            version: 0
            localeCd: en-US
        localizedDescriptions:
          - id: 101015
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.514Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:03.514Z
            description: Person
            version: 0
            localeCd: en-US
        name: person
        dataStoreName: DEFAULT_STORE
        dataStoreDefaultSchemaName: fdhdata
        tableName: person
        systemReserved: false
        historyEnabled: true
        version: 6
        validFromFieldName: birthday
        lastUpdatedAtTimeFieldName: last_updated_at_dttm
        createdAtTimeFieldName: created_at_dttm
        displayTextFields:
          - name: first_name
            displayIndex: 0
          - name: last_name
            displayIndex: 1
        dataStoreAssignedTimeZone: Etc/UTC
        solutionName: sas_visual_investigator_default
        solutionLabel: SAS Visual Investigator
        historyTableName: person
        lastUpdatedByUserIdFieldName: last_updated_by_user_id
        versionNumberFieldName: version
        createFlagHistoryColumnName: created_flg
        deleteFlagHistoryColumnName: archived_flg
        deleteTableName: VdkDmdiNifqGgq8jOL3QwNHwZQxVkD
        updateFlagHistoryColumnName: updated_flg
        type: MANAGED
        markerColor: "#0293a0"
        nodeShape: square
        nodeColor: "#ffffff"
        borderColor: "#BFBFBF"
        borderWidth: 1
        scale: 1
        nodeDecoration: {}
        elementGroupRoot: false
        indexedForSearch: true
        attachmentsIndexedForSearch: false
        reindexRequired: false
        fields:
          - id: 102858
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.515Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Person Id
            localizedLabels:
              - id: 102948
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.515Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.515Z
                label: Person Id
                version: 0
                localeCd: en-US
            name: id
            columnName: id
            dataType: STRING
            length: 36
            required: true
            primaryKeyField: true
            unique: true
            autoGenerated: true
            systemReserved: true
            displayIndex: 0
            version: 6
            primaryKeySeqNo: 1
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102856
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.514Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: First Name
            localizedLabels:
              - id: 102946
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.515Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.515Z
                label: First Name
                version: 0
                localeCd: en-US
            name: first_name
            columnName: first_name
            dataType: STRING
            length: 15
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 1
            version: 6
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102859
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.515Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Last Name
            localizedLabels:
              - id: 102949
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.515Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.515Z
                label: Last Name
                version: 0
                localeCd: en-US
            name: last_name
            columnName: last_name
            dataType: STRING
            length: 15
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 2
            version: 6
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102853
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.514Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Birthday
            localizedLabels:
              - id: 102943
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.514Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.514Z
                label: Birthday
                version: 0
                localeCd: en-US
            name: birthday
            columnName: birthday
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 3
            version: 6
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102862
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.515Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Version
            localizedLabels:
              - id: 102952
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.515Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.515Z
                label: Version
                version: 0
                localeCd: en-US
            name: version
            columnName: version
            dataType: LONG
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 4
            version: 6
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102855
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.514Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Created By
            localizedLabels:
              - id: 102945
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.514Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.514Z
                label: Created By
                version: 0
                localeCd: en-US
            name: created_by_user_id
            columnName: created_by_user_id
            dataType: STRING
            length: 255
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 5
            version: 6
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102854
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.514Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Created At
            localizedLabels:
              - id: 102944
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.514Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.514Z
                label: Created At
                version: 0
                localeCd: en-US
            name: created_at_dttm
            columnName: created_at_dttm
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 6
            version: 6
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102861
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.515Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Last Updated By
            localizedLabels:
              - id: 102951
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.515Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.515Z
                label: Last Updated By
                version: 0
                localeCd: en-US
            name: last_updated_by_user_id
            columnName: last_updated_by_user_id
            dataType: STRING
            length: 255
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 7
            version: 6
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102860
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.515Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Last Updated At
            localizedLabels:
              - id: 102950
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.515Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.515Z
                label: Last Updated At
                version: 0
                localeCd: en-US
            name: last_updated_at_dttm
            columnName: last_updated_at_dttm
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 8
            version: 6
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102857
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:03.515Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Gender
            localizedLabels:
              - id: 102947
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:03.515Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:03.515Z
                label: Gender
                version: 0
                localeCd: en-US
            name: gender
            columnName: gender
            dataType: REFERENCE_DATA
            length: 10
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 9
            version: 6
            constrainingListName: Gender
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 103052
            createdBy: videmo
            createdAt: 2023-06-28T17:22:53.701Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-28T18:19:17.986Z
            label: Ps Inc
            localizedLabels:
              - id: 103282
                createdBy: videmo
                createdAt: 2023-06-28T17:22:53.702Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-28T17:22:53.702Z
                label: Ps Inc
                version: 0
                localeCd: en-US
            name: ps_inc
            columnName: ps_inc
            dataType: NUMERIC
            precision: 6
            scale: 6
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 10
            version: 2
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
        relationshipsTo:
          - id: 101324
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:09.117Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:29.144Z
            label: Primary Victim
            localizedLabels:
              - id: 103227
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.119Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:09.119Z
                label: Primary Victim
                version: 0
                localeCd: en-US
            name: primary_victim
            dataStoreName: DEFAULT_STORE
            dataStoreDefaultSchemaName: fdhdata
            tableName: primary_victim
            systemReserved: false
            historyEnabled: true
            version: 1
            lastUpdatedAtTimeFieldName: last_updated_at_dttm
            createdAtTimeFieldName: created_at_dttm
            dataStoreAssignedTimeZone: Etc/UTC
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
            historyTableName: primary_victim
            lastUpdatedByUserIdFieldName: last_updated_by_user_id
            versionNumberFieldName: version
            createFlagHistoryColumnName: created_flg
            deleteFlagHistoryColumnName: archived_flg
            updateFlagHistoryColumnName: updated_flg
            reverseName: police_report
            reverseLabel: Police Report
            fromObjectName: police_report
            fromObjectLabel: Police Report
            toObjectName: person
            toObjectLabel: Person
            required: false
            cascadeType: NONE
            cardinality: MANY_TO_ONE
            type: LINK
            symmetric: false
            managed: true
            joinConditions:
              - type: Conditional
                leftOperand:
                  type: FieldRef
                  objectName: police_report
                  fieldName: id
                rightOperands:
                  - type: FieldRef
                    objectName: ^RELATION^
                    fieldName: police_report_id
                operator: EQ
              - type: Conditional
                leftOperand:
                  type: FieldRef
                  objectName: ^RELATION^
                  fieldName: person_id
                rightOperands:
                  - type: FieldRef
                    objectName: person
                    fieldName: id
                operator: EQ
            fields:
              - id: 101570
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.119Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Auto Generated Sk
                localizedLabels:
                  - id: 103228
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.119Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.119Z
                    label: Auto Generated Sk
                    version: 0
                    localeCd: en-US
                name: auto_generated_sk
                columnName: auto_generated_sk
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: true
                unique: false
                autoGenerated: true
                systemReserved: true
                displayIndex: 0
                version: 1
                primaryKeySeqNo: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
              - id: 101576
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.120Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Police Report ID
                localizedLabels:
                  - id: 103234
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.120Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.120Z
                    label: Police Report ID
                    version: 0
                    localeCd: en-US
                name: police_report_id
                columnName: police_report_id
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 1
                version: 1
                readOnly: false
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
              - id: 101575
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.119Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Person Id
                localizedLabels:
                  - id: 103233
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.120Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.120Z
                    label: Person Id
                    version: 0
                    localeCd: en-US
                name: person_id
                columnName: person_id
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 2
                version: 1
                readOnly: false
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
              - id: 101577
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.120Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Version
                localizedLabels:
                  - id: 103235
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.120Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.120Z
                    label: Version
                    version: 0
                    localeCd: en-US
                name: version
                columnName: version
                dataType: LONG
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 3
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
              - id: 101572
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.119Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Created By User Id
                localizedLabels:
                  - id: 103230
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.119Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.119Z
                    label: Created By User Id
                    version: 0
                    localeCd: en-US
                name: created_by_user_id
                columnName: created_by_user_id
                dataType: STRING
                length: 255
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 4
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
              - id: 101571
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.119Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Created at Date/Time
                localizedLabels:
                  - id: 103229
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.119Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.119Z
                    label: Created at Date/Time
                    version: 0
                    localeCd: en-US
                name: created_at_dttm
                columnName: created_at_dttm
                dataType: TIMESTAMP
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 5
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
              - id: 101574
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.119Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Last Updated By User Id
                localizedLabels:
                  - id: 103232
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.119Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.119Z
                    label: Last Updated By User Id
                    version: 0
                    localeCd: en-US
                name: last_updated_by_user_id
                columnName: last_updated_by_user_id
                dataType: STRING
                length: 255
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 6
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
              - id: 101573
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.119Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.144Z
                label: Last Updated at Date/Time
                localizedLabels:
                  - id: 103231
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:09.119Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:09.119Z
                    label: Last Updated at Date/Time
                    version: 0
                    localeCd: en-US
                name: last_updated_at_dttm
                columnName: last_updated_at_dttm
                dataType: TIMESTAMP
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 7
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: police_report.primary_victim
                masked: false
            localizedReverseLabels:
              - id: 103236
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:09.120Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:09.120Z
                label: Police Report
                version: 0
                localeCd: en-US
            useCustomIndex: false
            color: "#c3c3c3"
            width: 1
            dashType: solid
            reindexRequired: false
            readOnly: false
            qualifiedName: police_report__primary_victim
          - id: 101323
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.750Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:29.363Z
            label: Witnessed by
            localizedLabels:
              - id: 103216
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.753Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.753Z
                label: Witnessed by
                version: 0
                localeCd: en-US
            name: witnessed_by
            dataStoreName: DEFAULT_STORE
            dataStoreDefaultSchemaName: fdhdata
            tableName: witnessed_by
            systemReserved: false
            historyEnabled: true
            version: 1
            lastUpdatedAtTimeFieldName: last_updated_at_dttm
            createdAtTimeFieldName: created_at_dttm
            dataStoreAssignedTimeZone: Etc/UTC
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
            historyTableName: witnessed_by
            lastUpdatedByUserIdFieldName: last_updated_by_user_id
            versionNumberFieldName: version
            createFlagHistoryColumnName: created_flg
            deleteFlagHistoryColumnName: archived_flg
            updateFlagHistoryColumnName: updated_flg
            reverseName: witnessed
            reverseLabel: Witnessed
            fromObjectName: intel_report
            fromObjectLabel: Intelligence Report
            toObjectName: person
            toObjectLabel: Person
            required: false
            cascadeType: NONE
            cardinality: MANY_TO_MANY
            type: LINK
            symmetric: false
            managed: true
            joinConditions:
              - type: Conditional
                leftOperand:
                  type: FieldRef
                  objectName: intel_report
                  fieldName: id
                rightOperands:
                  - type: FieldRef
                    objectName: ^RELATION^
                    fieldName: intelReportId
                operator: EQ
              - type: Conditional
                leftOperand:
                  type: FieldRef
                  objectName: ^RELATION^
                  fieldName: personId
                rightOperands:
                  - type: FieldRef
                    objectName: person
                    fieldName: id
                operator: EQ
            fields:
              - id: 101561
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.753Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.363Z
                label: Auto Generated Sk
                localizedLabels:
                  - id: 103217
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.753Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.753Z
                    label: Auto Generated Sk
                    version: 0
                    localeCd: en-US
                name: auto_generated_sk
                columnName: auto_generated_sk
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: true
                unique: false
                autoGenerated: true
                systemReserved: true
                displayIndex: 0
                version: 1
                primaryKeySeqNo: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101568
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.754Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.363Z
                label: Person Id
                localizedLabels:
                  - id: 103224
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.754Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.754Z
                    label: Person Id
                    version: 0
                    localeCd: en-US
                name: personId
                columnName: person_id
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 1
                version: 1
                readOnly: false
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101565
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.753Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.363Z
                label: Report Id
                localizedLabels:
                  - id: 103221
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.753Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.753Z
                    label: Report Id
                    version: 0
                    localeCd: en-US
                name: intelReportId
                columnName: intel_report_id
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 1
                version: 1
                readOnly: false
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101564
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.753Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.363Z
                label: Description
                localizedLabels:
                  - id: 103220
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.753Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.753Z
                    label: Description
                    version: 0
                    localeCd: en-US
                name: description
                columnName: description
                dataType: STRING
                length: 100
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: false
                displayIndex: 2
                version: 1
                readOnly: false
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101569
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.754Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.364Z
                label: Version
                localizedLabels:
                  - id: 103225
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.754Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.754Z
                    label: Version
                    version: 0
                    localeCd: en-US
                name: version
                columnName: version
                dataType: LONG
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 3
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101563
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.753Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.364Z
                label: Created By User Id
                localizedLabels:
                  - id: 103219
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.753Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.753Z
                    label: Created By User Id
                    version: 0
                    localeCd: en-US
                name: created_by_user_id
                columnName: created_by_user_id
                dataType: STRING
                length: 255
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 4
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101562
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.753Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.364Z
                label: Created at Date/Time
                localizedLabels:
                  - id: 103218
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.753Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.753Z
                    label: Created at Date/Time
                    version: 0
                    localeCd: en-US
                name: created_at_dttm
                columnName: created_at_dttm
                dataType: TIMESTAMP
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 5
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101567
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.754Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.364Z
                label: Last Updated By User Id
                localizedLabels:
                  - id: 103223
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.754Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.754Z
                    label: Last Updated By User Id
                    version: 0
                    localeCd: en-US
                name: last_updated_by_user_id
                columnName: last_updated_by_user_id
                dataType: STRING
                length: 255
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 6
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
              - id: 101566
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.753Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:29.364Z
                label: Last Updated at Date/Time
                localizedLabels:
                  - id: 103222
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.753Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.753Z
                    label: Last Updated at Date/Time
                    version: 0
                    localeCd: en-US
                name: last_updated_at_dttm
                columnName: last_updated_at_dttm
                dataType: TIMESTAMP
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 7
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.witnessed_by
                masked: false
            localizedReverseLabels:
              - id: 103226
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.754Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.754Z
                label: Witnessed
                version: 0
                localeCd: en-US
            useCustomIndex: false
            color: "#c3c3c3"
            width: 1
            dashType: solid
            reindexRequired: false
            readOnly: false
            qualifiedName: intel_report__witnessed_by
          - id: 101321
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.039Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.024Z
            label: Reported by
            localizedLabels:
              - id: 103196
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.042Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.042Z
                label: Reported by
                version: 0
                localeCd: en-US
            name: reported_by
            dataStoreName: DEFAULT_STORE
            dataStoreDefaultSchemaName: fdhdata
            tableName: reported_by
            systemReserved: false
            historyEnabled: false
            version: 1
            lastUpdatedAtTimeFieldName: last_updated_at_dttm
            createdAtTimeFieldName: created_at_dttm
            dataStoreAssignedTimeZone: Etc/UTC
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
            historyTableName: reported_by
            lastUpdatedByUserIdFieldName: last_updated_by_user_id
            versionNumberFieldName: version
            createFlagHistoryColumnName: created_flg
            deleteFlagHistoryColumnName: archived_flg
            updateFlagHistoryColumnName: updated_flg
            reverseName: reported
            reverseLabel: Reported
            fromObjectName: intel_report
            fromObjectLabel: Intelligence Report
            toObjectName: person
            toObjectLabel: Person
            required: false
            cascadeType: NONE
            cardinality: MANY_TO_MANY
            type: LINK
            symmetric: false
            managed: true
            joinConditions:
              - type: Conditional
                leftOperand:
                  type: FieldRef
                  objectName: intel_report
                  fieldName: id
                rightOperands:
                  - type: FieldRef
                    objectName: ^RELATION^
                    fieldName: intelReportId
                operator: EQ
              - type: Conditional
                leftOperand:
                  type: FieldRef
                  objectName: ^RELATION^
                  fieldName: personId
                rightOperands:
                  - type: FieldRef
                    objectName: person
                    fieldName: id
                operator: EQ
            fields:
              - id: 101545
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.042Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.024Z
                label: Auto Generated Sk
                localizedLabels:
                  - id: 103197
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.043Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.043Z
                    label: Auto Generated Sk
                    version: 0
                    localeCd: en-US
                name: auto_generated_sk
                columnName: auto_generated_sk
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: true
                unique: false
                autoGenerated: true
                systemReserved: true
                displayIndex: 0
                version: 1
                primaryKeySeqNo: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
              - id: 101548
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.043Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.024Z
                label: Report Id
                localizedLabels:
                  - id: 103200
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.043Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.043Z
                    label: Report Id
                    version: 0
                    localeCd: en-US
                name: intelReportId
                columnName: intel_report_id
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 1
                version: 1
                readOnly: false
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
              - id: 101551
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.025Z
                label: Person Id
                localizedLabels:
                  - id: 103203
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.044Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.044Z
                    label: Person Id
                    version: 0
                    localeCd: en-US
                name: personId
                columnName: person_id
                dataType: STRING
                length: 36
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 1
                version: 1
                readOnly: false
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
              - id: 101552
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.025Z
                label: Version
                localizedLabels:
                  - id: 103204
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.044Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.044Z
                    label: Version
                    version: 0
                    localeCd: en-US
                name: version
                columnName: version
                dataType: LONG
                required: true
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 4
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
              - id: 101547
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.043Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.025Z
                label: Created By User Id
                localizedLabels:
                  - id: 103199
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.043Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.043Z
                    label: Created By User Id
                    version: 0
                    localeCd: en-US
                name: created_by_user_id
                columnName: created_by_user_id
                dataType: STRING
                length: 255
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 5
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
              - id: 101546
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.043Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.025Z
                label: Created at Date/Time
                localizedLabels:
                  - id: 103198
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.043Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.043Z
                    label: Created at Date/Time
                    version: 0
                    localeCd: en-US
                name: created_at_dttm
                columnName: created_at_dttm
                dataType: TIMESTAMP
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 6
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
              - id: 101550
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.025Z
                label: Last Updated By User Id
                localizedLabels:
                  - id: 103202
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.044Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.044Z
                    label: Last Updated By User Id
                    version: 0
                    localeCd: en-US
                name: last_updated_by_user_id
                columnName: last_updated_by_user_id
                dataType: STRING
                length: 255
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 7
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
              - id: 101549
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:30.025Z
                label: Last Updated at Date/Time
                localizedLabels:
                  - id: 103201
                    createdBy: sasboot
                    createdAt: 2023-06-23T20:47:08.044Z
                    lastUpdatedBy: sasboot
                    lastUpdatedAt: 2023-06-23T20:47:08.044Z
                    label: Last Updated at Date/Time
                    version: 0
                    localeCd: en-US
                name: last_updated_at_dttm
                columnName: last_updated_at_dttm
                dataType: TIMESTAMP
                required: false
                primaryKeyField: false
                unique: false
                autoGenerated: false
                systemReserved: true
                displayIndex: 8
                version: 1
                readOnly: true
                indexedForSearch: false
                showTimeZone: false
                ownerName: intel_report.reported_by
                masked: false
            localizedReverseLabels:
              - id: 103205
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.044Z
                label: Reported
                version: 0
                localeCd: en-US
            useCustomIndex: false
            color: "#c3c3c3"
            width: 1
            dashType: solid
            reindexRequired: false
            readOnly: false
            qualifiedName: intel_report__reported_by
        defaultRegularIcon:
          id: 1011
          createdBy: sas.datahub
          createdAt: 2016-08-29T20:28:03.829Z
          lastUpdatedBy: sas.svi-datahub
          lastUpdatedAt: 2023-06-23T20:22:49.225Z
          name: Individual16Teal
          imageType: SVG
          imageLocation: /svi-datahub/icons/Individual16Teal/image
          version: 1
          solutionName: sas_visual_investigator_default
          solutionLabel: SAS Visual Investigator
        allowElementGroupRootAssignment: false
        urnType: UUID
        requireSearchBeforeCreate: false
        mobileOfflineEnabled: false
        enableCasDistributedDataLoad: false
        publishCode: OPEN
        readOnly: false
        icons:
          - id: 1011
            createdBy: sas.datahub
            createdAt: 2016-08-29T20:28:03.829Z
            lastUpdatedBy: sas.svi-datahub
            lastUpdatedAt: 2023-06-23T20:22:49.225Z
            name: Individual16Teal
            imageType: SVG
            imageLocation: /svi-datahub/icons/Individual16Teal/image
            version: 1
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
    entityTypeArrayExample:
      description: Example of an array of Entity Type objects.
      value:
        - id: 100924
          createdBy: sasboot
          createdAt: 2023-06-23T20:47:03.513Z
          lastUpdatedBy: videmo
          lastUpdatedAt: 2023-06-28T18:19:17.984Z
          label: Person
          description: Person
          localizedLabels:
            - id: 102942
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.514Z
              lastUpdatedBy: sasboot
              lastUpdatedAt: 2023-06-23T20:47:03.514Z
              label: Person
              version: 0
              localeCd: en-US
          localizedDescriptions:
            - id: 101015
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.514Z
              lastUpdatedBy: sasboot
              lastUpdatedAt: 2023-06-23T20:47:03.514Z
              description: Person
              version: 0
              localeCd: en-US
          name: person
          dataStoreName: DEFAULT_STORE
          dataStoreDefaultSchemaName: fdhdata
          tableName: person
          systemReserved: false
          historyEnabled: true
          version: 6
          validFromFieldName: birthday
          lastUpdatedAtTimeFieldName: last_updated_at_dttm
          createdAtTimeFieldName: created_at_dttm
          displayTextFields:
            - name: first_name
              displayIndex: 0
            - name: last_name
              displayIndex: 1
          dataStoreAssignedTimeZone: Etc/UTC
          solutionName: sas_visual_investigator_default
          solutionLabel: SAS Visual Investigator
          historyTableName: person
          lastUpdatedByUserIdFieldName: last_updated_by_user_id
          versionNumberFieldName: version
          createFlagHistoryColumnName: created_flg
          deleteFlagHistoryColumnName: archived_flg
          deleteTableName: VdkDmdiNifqGgq8jOL3QwNHwZQxVkD
          updateFlagHistoryColumnName: updated_flg
          type: MANAGED
          markerColor: "#0293a0"
          nodeShape: square
          nodeColor: "#ffffff"
          borderColor: "#BFBFBF"
          borderWidth: 1
          scale: 1
          nodeDecoration: {}
          elementGroupRoot: false
          indexedForSearch: true
          attachmentsIndexedForSearch: false
          reindexRequired: false
          fields:
            - id: 102858
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.515Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Person Id
              localizedLabels:
                - id: 102948
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.515Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.515Z
                  label: Person Id
                  version: 0
                  localeCd: en-US
              name: id
              columnName: id
              dataType: STRING
              length: 36
              required: true
              primaryKeyField: true
              unique: true
              autoGenerated: true
              systemReserved: true
              displayIndex: 0
              version: 6
              primaryKeySeqNo: 1
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102856
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.514Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: First Name
              localizedLabels:
                - id: 102946
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.515Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.515Z
                  label: First Name
                  version: 0
                  localeCd: en-US
              name: first_name
              columnName: first_name
              dataType: STRING
              length: 15
              required: true
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 1
              version: 6
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102859
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.515Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Last Name
              localizedLabels:
                - id: 102949
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.515Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.515Z
                  label: Last Name
                  version: 0
                  localeCd: en-US
              name: last_name
              columnName: last_name
              dataType: STRING
              length: 15
              required: true
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 2
              version: 6
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102853
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.514Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Birthday
              localizedLabels:
                - id: 102943
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.514Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.514Z
                  label: Birthday
                  version: 0
                  localeCd: en-US
              name: birthday
              columnName: birthday
              dataType: TIMESTAMP
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 3
              version: 6
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102862
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.515Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Version
              localizedLabels:
                - id: 102952
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.515Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.515Z
                  label: Version
                  version: 0
                  localeCd: en-US
              name: version
              columnName: version
              dataType: LONG
              required: true
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 4
              version: 6
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102855
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.514Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Created By
              localizedLabels:
                - id: 102945
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.514Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.514Z
                  label: Created By
                  version: 0
                  localeCd: en-US
              name: created_by_user_id
              columnName: created_by_user_id
              dataType: STRING
              length: 255
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 5
              version: 6
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102854
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.514Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Created At
              localizedLabels:
                - id: 102944
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.514Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.514Z
                  label: Created At
                  version: 0
                  localeCd: en-US
              name: created_at_dttm
              columnName: created_at_dttm
              dataType: TIMESTAMP
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 6
              version: 6
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102861
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.515Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Last Updated By
              localizedLabels:
                - id: 102951
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.515Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.515Z
                  label: Last Updated By
                  version: 0
                  localeCd: en-US
              name: last_updated_by_user_id
              columnName: last_updated_by_user_id
              dataType: STRING
              length: 255
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 7
              version: 6
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102860
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.515Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Last Updated At
              localizedLabels:
                - id: 102950
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.515Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.515Z
                  label: Last Updated At
                  version: 0
                  localeCd: en-US
              name: last_updated_at_dttm
              columnName: last_updated_at_dttm
              dataType: TIMESTAMP
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 8
              version: 6
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102857
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:03.515Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Gender
              localizedLabels:
                - id: 102947
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:03.515Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:03.515Z
                  label: Gender
                  version: 0
                  localeCd: en-US
              name: gender
              columnName: gender
              dataType: REFERENCE_DATA
              length: 10
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 9
              version: 6
              constrainingListName: Gender
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 103052
              createdBy: videmo
              createdAt: 2023-06-28T17:22:53.701Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-28T18:19:17.986Z
              label: Ps Inc
              localizedLabels:
                - id: 103282
                  createdBy: videmo
                  createdAt: 2023-06-28T17:22:53.702Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-28T17:22:53.702Z
                  label: Ps Inc
                  version: 0
                  localeCd: en-US
              name: ps_inc
              columnName: ps_inc
              dataType: NUMERIC
              precision: 6
              scale: 6
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 10
              version: 2
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
          relationshipsTo:
            - id: 101324
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:09.117Z
              lastUpdatedBy: sasboot
              lastUpdatedAt: 2023-06-23T20:47:29.144Z
              label: Primary Victim
              localizedLabels:
                - id: 103227
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.119Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:09.119Z
                  label: Primary Victim
                  version: 0
                  localeCd: en-US
              name: primary_victim
              dataStoreName: DEFAULT_STORE
              dataStoreDefaultSchemaName: fdhdata
              tableName: primary_victim
              systemReserved: false
              historyEnabled: true
              version: 1
              lastUpdatedAtTimeFieldName: last_updated_at_dttm
              createdAtTimeFieldName: created_at_dttm
              dataStoreAssignedTimeZone: Etc/UTC
              solutionName: sas_visual_investigator_default
              solutionLabel: SAS Visual Investigator
              historyTableName: primary_victim
              lastUpdatedByUserIdFieldName: last_updated_by_user_id
              versionNumberFieldName: version
              createFlagHistoryColumnName: created_flg
              deleteFlagHistoryColumnName: archived_flg
              updateFlagHistoryColumnName: updated_flg
              reverseName: police_report
              reverseLabel: Police Report
              fromObjectName: police_report
              fromObjectLabel: Police Report
              toObjectName: person
              toObjectLabel: Person
              required: false
              cascadeType: NONE
              cardinality: MANY_TO_ONE
              type: LINK
              symmetric: false
              managed: true
              joinConditions:
                - type: Conditional
                  leftOperand:
                    type: FieldRef
                    objectName: police_report
                    fieldName: id
                  rightOperands:
                    - type: FieldRef
                      objectName: ^RELATION^
                      fieldName: police_report_id
                  operator: EQ
                - type: Conditional
                  leftOperand:
                    type: FieldRef
                    objectName: ^RELATION^
                    fieldName: person_id
                  rightOperands:
                    - type: FieldRef
                      objectName: person
                      fieldName: id
                  operator: EQ
              fields:
                - id: 101570
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.119Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Auto Generated Sk
                  localizedLabels:
                    - id: 103228
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.119Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.119Z
                      label: Auto Generated Sk
                      version: 0
                      localeCd: en-US
                  name: auto_generated_sk
                  columnName: auto_generated_sk
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: true
                  unique: false
                  autoGenerated: true
                  systemReserved: true
                  displayIndex: 0
                  version: 1
                  primaryKeySeqNo: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
                - id: 101576
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.120Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Police Report ID
                  localizedLabels:
                    - id: 103234
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.120Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.120Z
                      label: Police Report ID
                      version: 0
                      localeCd: en-US
                  name: police_report_id
                  columnName: police_report_id
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 1
                  version: 1
                  readOnly: false
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
                - id: 101575
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.119Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Person Id
                  localizedLabels:
                    - id: 103233
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.120Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.120Z
                      label: Person Id
                      version: 0
                      localeCd: en-US
                  name: person_id
                  columnName: person_id
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 2
                  version: 1
                  readOnly: false
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
                - id: 101577
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.120Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Version
                  localizedLabels:
                    - id: 103235
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.120Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.120Z
                      label: Version
                      version: 0
                      localeCd: en-US
                  name: version
                  columnName: version
                  dataType: LONG
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 3
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
                - id: 101572
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.119Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Created By User Id
                  localizedLabels:
                    - id: 103230
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.119Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.119Z
                      label: Created By User Id
                      version: 0
                      localeCd: en-US
                  name: created_by_user_id
                  columnName: created_by_user_id
                  dataType: STRING
                  length: 255
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 4
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
                - id: 101571
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.119Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Created at Date/Time
                  localizedLabels:
                    - id: 103229
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.119Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.119Z
                      label: Created at Date/Time
                      version: 0
                      localeCd: en-US
                  name: created_at_dttm
                  columnName: created_at_dttm
                  dataType: TIMESTAMP
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 5
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
                - id: 101574
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.119Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Last Updated By User Id
                  localizedLabels:
                    - id: 103232
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.119Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.119Z
                      7label: Last Updated By User Id
                      version: 0
                      localeCd: en-US
                  name: last_updated_by_user_id
                  columnName: last_updated_by_user_id
                  dataType: STRING
                  length: 255
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 6
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
                - id: 101573
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.119Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.144Z
                  label: Last Updated at Date/Time
                  localizedLabels:
                    - id: 103231
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:09.119Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:09.119Z
                      label: Last Updated at Date/Time
                      version: 0
                      localeCd: en-US
                  name: last_updated_at_dttm
                  columnName: last_updated_at_dttm
                  dataType: TIMESTAMP
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 7
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: police_report.primary_victim
                  masked: false
              localizedReverseLabels:
                - id: 103236
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:09.120Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:09.120Z
                  label: Police Report
                  version: 0
                  localeCd: en-US
              useCustomIndex: false
              color: "#c3c3c3"
              width: 1
              dashType: solid
              reindexRequired: false
              readOnly: false
              qualifiedName: police_report__primary_victim
            - id: 101323
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:08.750Z
              lastUpdatedBy: sasboot
              lastUpdatedAt: 2023-06-23T20:47:29.363Z
              label: Witnessed by
              localizedLabels:
                - id: 103216
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.753Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:08.753Z
                  label: Witnessed by
                  version: 0
                  localeCd: en-US
              name: witnessed_by
              dataStoreName: DEFAULT_STORE
              dataStoreDefaultSchemaName: fdhdata
              tableName: witnessed_by
              systemReserved: false
              historyEnabled: true
              version: 1
              lastUpdatedAtTimeFieldName: last_updated_at_dttm
              createdAtTimeFieldName: created_at_dttm
              dataStoreAssignedTimeZone: Etc/UTC
              solutionName: sas_visual_investigator_default
              solutionLabel: SAS Visual Investigator
              historyTableName: witnessed_by
              lastUpdatedByUserIdFieldName: last_updated_by_user_id
              versionNumberFieldName: version
              createFlagHistoryColumnName: created_flg
              deleteFlagHistoryColumnName: archived_flg
              updateFlagHistoryColumnName: updated_flg
              reverseName: witnessed
              reverseLabel: Witnessed
              fromObjectName: intel_report
              fromObjectLabel: Intelligence Report
              toObjectName: person
              toObjectLabel: Person
              required: false
              cascadeType: NONE
              cardinality: MANY_TO_MANY
              type: LINK
              symmetric: false
              managed: true
              joinConditions:
                - type: Conditional
                  leftOperand:
                    type: FieldRef
                    objectName: intel_report
                    fieldName: id
                  rightOperands:
                    - type: FieldRef
                      objectName: ^RELATION^
                      fieldName: intelReportId
                  operator: EQ
                - type: Conditional
                  leftOperand:
                    type: FieldRef
                    objectName: ^RELATION^
                    fieldName: personId
                  rightOperands:
                    - type: FieldRef
                      objectName: person
                      fieldName: id
                  operator: EQ
              fields:
                - id: 101561
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.753Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.363Z
                  label: Auto Generated Sk
                  localizedLabels:
                    - id: 103217
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.753Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.753Z
                      label: Auto Generated Sk
                      version: 0
                      localeCd: en-US
                  name: auto_generated_sk
                  columnName: auto_generated_sk
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: true
                  unique: false
                  autoGenerated: true
                  systemReserved: true
                  displayIndex: 0
                  version: 1
                  primaryKeySeqNo: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101568
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.754Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.363Z
                  label: Person Id
                  localizedLabels:
                    - id: 103224
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.754Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.754Z
                      label: Person Id
                      version: 0
                      localeCd: en-US
                  name: personId
                  columnName: person_id
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 1
                  version: 1
                  readOnly: false
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101565
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.753Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.363Z
                  label: Report Id
                  localizedLabels:
                    - id: 103221
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.753Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.753Z
                      label: Report Id
                      version: 0
                      localeCd: en-US
                  name: intelReportId
                  columnName: intel_report_id
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 1
                  version: 1
                  readOnly: false
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101564
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.753Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.363Z
                  label: Description
                  localizedLabels:
                    - id: 103220
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.753Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.753Z
                      label: Description
                      version: 0
                      localeCd: en-US
                  name: description
                  columnName: description
                  dataType: STRING
                  length: 100
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: false
                  displayIndex: 2
                  version: 1
                  readOnly: false
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101569
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.754Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.364Z
                  label: Version
                  localizedLabels:
                    - id: 103225
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.754Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.754Z
                      label: Version
                      version: 0
                      localeCd: en-US
                  name: version
                  columnName: version
                  dataType: LONG
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 3
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101563
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.753Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.364Z
                  label: Created By User Id
                  localizedLabels:
                    - id: 103219
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.753Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.753Z
                      label: Created By User Id
                      version: 0
                      localeCd: en-US
                  name: created_by_user_id
                  columnName: created_by_user_id
                  dataType: STRING
                  length: 255
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 4
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101562
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.753Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.364Z
                  label: Created at Date/Time
                  localizedLabels:
                    - id: 103218
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.753Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.753Z
                      label: Created at Date/Time
                      version: 0
                      localeCd: en-US
                  name: created_at_dttm
                  columnName: created_at_dttm
                  dataType: TIMESTAMP
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 5
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101567
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.754Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.364Z
                  label: Last Updated By User Id
                  localizedLabels:
                    - id: 103223
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.754Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.754Z
                      label: Last Updated By User Id
                      version: 0
                      localeCd: en-US
                  name: last_updated_by_user_id
                  columnName: last_updated_by_user_id
                  dataType: STRING
                  length: 255
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 6
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
                - id: 101566
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.753Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:29.364Z
                  label: Last Updated at Date/Time
                  localizedLabels:
                    - id: 103222
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.753Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.753Z
                      label: Last Updated at Date/Time
                      version: 0
                      localeCd: en-US
                  name: last_updated_at_dttm
                  columnName: last_updated_at_dttm
                  dataType: TIMESTAMP
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 7
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.witnessed_by
                  masked: false
              localizedReverseLabels:
                - id: 103226
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.754Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:08.754Z
                  label: Witnessed
                  version: 0
                  localeCd: en-US
              useCustomIndex: false
              color: "#c3c3c3"
              width: 1
              dashType: solid
              reindexRequired: false
              readOnly: false
              qualifiedName: intel_report__witnessed_by
            - id: 101321
              createdBy: sasboot
              createdAt: 2023-06-23T20:47:08.039Z
              lastUpdatedBy: sasboot
              lastUpdatedAt: 2023-06-23T20:47:30.024Z
              label: Reported by
              localizedLabels:
                - id: 103196
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.042Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:08.042Z
                  label: Reported by
                  version: 0
                  localeCd: en-US
              name: reported_by
              dataStoreName: DEFAULT_STORE
              dataStoreDefaultSchemaName: fdhdata
              tableName: reported_by
              systemReserved: false
              historyEnabled: false
              version: 1
              lastUpdatedAtTimeFieldName: last_updated_at_dttm
              createdAtTimeFieldName: created_at_dttm
              dataStoreAssignedTimeZone: Etc/UTC
              solutionName: sas_visual_investigator_default
              solutionLabel: SAS Visual Investigator
              historyTableName: reported_by
              lastUpdatedByUserIdFieldName: last_updated_by_user_id
              versionNumberFieldName: version
              createFlagHistoryColumnName: created_flg
              deleteFlagHistoryColumnName: archived_flg
              updateFlagHistoryColumnName: updated_flg
              reverseName: reported
              reverseLabel: Reported
              fromObjectName: intel_report
              fromObjectLabel: Intelligence Report
              toObjectName: person
              toObjectLabel: Person
              required: false
              cascadeType: NONE
              cardinality: MANY_TO_MANY
              type: LINK
              symmetric: false
              managed: true
              joinConditions:
                - type: Conditional
                  leftOperand:
                    type: FieldRef
                    objectName: intel_report
                    fieldName: id
                  rightOperands:
                    - type: FieldRef
                      objectName: ^RELATION^
                      fieldName: intelReportId
                  operator: EQ
                - type: Conditional
                  leftOperand:
                    type: FieldRef
                    objectName: ^RELATION^
                    fieldName: personId
                  rightOperands:
                    - type: FieldRef
                      objectName: person
                      fieldName: id
                  operator: EQ
              fields:
                - id: 101545
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.042Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.024Z
                  label: Auto Generated Sk
                  localizedLabels:
                    - id: 103197
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.043Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.043Z
                      label: Auto Generated Sk
                      version: 0
                      localeCd: en-US
                  name: auto_generated_sk
                  columnName: auto_generated_sk
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: true
                  unique: false
                  autoGenerated: true
                  systemReserved: true
                  displayIndex: 0
                  version: 1
                  primaryKeySeqNo: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
                - id: 101548
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.043Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.024Z
                  label: Report Id
                  localizedLabels:
                    - id: 103200
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.043Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.043Z
                      label: Report Id
                      version: 0
                      localeCd: en-US
                  name: intelReportId
                  columnName: intel_report_id
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 1
                  version: 1
                  readOnly: false
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
                - id: 101551
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.044Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.025Z
                  label: Person Id
                  localizedLabels:
                    - id: 103203
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.044Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.044Z
                      label: Person Id
                      version: 0
                      localeCd: en-US
                  name: personId
                  columnName: person_id
                  dataType: STRING
                  length: 36
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 1
                  version: 1
                  readOnly: false
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
                - id: 101552
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.044Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.025Z
                  label: Version
                  localizedLabels:
                    - id: 103204
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.044Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.044Z
                      label: Version
                      version: 0
                      localeCd: en-US
                  name: version
                  columnName: version
                  dataType: LONG
                  required: true
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 4
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
                - id: 101547
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.043Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.025Z
                  label: Created By User Id
                  localizedLabels:
                    - id: 103199
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.043Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.043Z
                      label: Created By User Id
                      version: 0
                      localeCd: en-US
                  name: created_by_user_id
                  columnName: created_by_user_id
                  dataType: STRING
                  length: 255
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 5
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
                - id: 101546
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.043Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.025Z
                  label: Created at Date/Time
                  localizedLabels:
                    - id: 103198
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.043Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.043Z
                      label: Created at Date/Time
                      version: 0
                      localeCd: en-US
                  name: created_at_dttm
                  columnName: created_at_dttm
                  dataType: TIMESTAMP
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 6
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
                - id: 101550
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.044Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.025Z
                  label: Last Updated By User Id
                  localizedLabels:
                    - id: 103202
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.044Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.044Z
                      label: Last Updated By User Id
                      version: 0
                      localeCd: en-US
                  name: last_updated_by_user_id
                  columnName: last_updated_by_user_id
                  dataType: STRING
                  length: 255
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 7
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
                - id: 101549
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.044Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:30.025Z
                  label: Last Updated at Date/Time
                  localizedLabels:
                    - id: 103201
                      createdBy: sasboot
                      createdAt: 2023-06-23T20:47:08.044Z
                      lastUpdatedBy: sasboot
                      lastUpdatedAt: 2023-06-23T20:47:08.044Z
                      label: Last Updated at Date/Time
                      version: 0
                      localeCd: en-US
                  name: last_updated_at_dttm
                  columnName: last_updated_at_dttm
                  dataType: TIMESTAMP
                  required: false
                  primaryKeyField: false
                  unique: false
                  autoGenerated: false
                  systemReserved: true
                  displayIndex: 8
                  version: 1
                  readOnly: true
                  indexedForSearch: false
                  showTimeZone: false
                  ownerName: intel_report.reported_by
                  masked: false
              localizedReverseLabels:
                - id: 103205
                  createdBy: sasboot
                  createdAt: 2023-06-23T20:47:08.044Z
                  lastUpdatedBy: sasboot
                  lastUpdatedAt: 2023-06-23T20:47:08.044Z
                  label: Reported
                  version: 0
                  localeCd: en-US
              useCustomIndex: false
              color: "#c3c3c3"
              width: 1
              dashType: solid
              reindexRequired: false
              readOnly: false
              qualifiedName: intel_report__reported_by
          defaultRegularIcon:
            id: 1011
            createdBy: sas.datahub
            createdAt: 2016-08-29T20:28:03.829Z
            lastUpdatedBy: sas.svi-datahub
            lastUpdatedAt: 2023-06-23T20:22:49.225Z
            name: Individual16Teal
            imageType: SVG
            imageLocation: /svi-datahub/icons/Individual16Teal/image
            version: 1
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          allowElementGroupRootAssignment: false
          urnType: UUID
          requireSearchBeforeCreate: false
          mobileOfflineEnabled: false
          enableCasDistributedDataLoad: false
          publishCode: OPEN
          readOnly: false
          icons:
            - id: 1011
              createdBy: sas.datahub
              createdAt: 2016-08-29T20:28:03.829Z
              lastUpdatedBy: sas.svi-datahub
              lastUpdatedAt: 2023-06-23T20:22:49.225Z
              name: Individual16Teal
              imageType: SVG
              imageLocation: /svi-datahub/icons/Individual16Teal/image
              version: 1
              solutionName: sas_visual_investigator_default
              solutionLabel: SAS Visual Investigator
    entityTypeSummaryExample:
      description: Example of an Entity Type Summary object.
      value:
        id: 100924
        label: Person
        description: Person
        name: person
        dataStoreName: DEFAULT_STORE
        dataStoreDefaultSchemaName: fdhdata
        tableName: person
        systemReserved: false
        historyEnabled: true
        validFromFieldName: birthday
        dataStoreAssignedTimeZone: Etc/UTC
        solutionName: sas_visual_investigator_default
        solutionLabel: SAS Visual Investigator
        deleteTableName: VdkDmdiNifqGgq8jOL3QwNHwZQxVkD
        type: MANAGED
        markerColor: "#0293a0"
        nodeShape: square
        nodeColor: "#ffffff"
        borderColor: "#BFBFBF"
        borderWidth: 1
        scale: 1
        nodeDecoration: {}
        indexedForSearch: true
        attachmentsIndexedForSearch: false
        reindexRequired: false
        fields:
          - id: 102858
            label: Person Id
            name: id
            columnName: id
            dataType: STRING
            length: 36
            required: true
            primaryKeyField: true
            unique: true
            autoGenerated: true
            systemReserved: true
            displayIndex: 0
            primaryKeySeqNo: 1
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102856
            label: First Name
            name: first_name
            columnName: first_name
            dataType: STRING
            length: 15
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 1
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102859
            label: Last Name
            name: last_name
            columnName: last_name
            dataType: STRING
            length: 15
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 2
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102853
            label: Birthday
            name: birthday
            columnName: birthday
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 3
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102862
            label: Version
            name: version
            columnName: version
            dataType: LONG
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 4
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102855
            label: Created By
            name: created_by_user_id
            columnName: created_by_user_id
            dataType: STRING
            length: 255
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 5
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102854
            label: Created At
            name: created_at_dttm
            columnName: created_at_dttm
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 6
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102861
            label: Last Updated By
            name: last_updated_by_user_id
            columnName: last_updated_by_user_id
            dataType: STRING
            length: 255
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 7
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102860
            label: Last Updated At
            name: last_updated_at_dttm
            columnName: last_updated_at_dttm
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 8
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 102857
            label: Gender
            name: gender
            columnName: gender
            dataType: REFERENCE_DATA
            length: 10
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 9
            constrainingListName: Gender
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
          - id: 103052
            label: Ps Inc
            name: ps_inc
            columnName: ps_inc
            dataType: NUMERIC
            precision: 6
            scale: 6
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 10
            readOnly: false
            indexedForSearch: true
            showTimeZone: false
            ownerName: person
            masked: false
        allowElementGroupRootAssignment: false
        icons:
          - id: 1011
            name: Individual16Teal
            imageType: SVG
            imageLocation: /svi-datahub/icons/Individual16Teal/image
            solutionLabel: SAS Visual Investigator
    entityTypeSummaryArrayExample:
      description: Example of an array that contains Entity Type Summary objects.
      value:
        - id: 100924
          label: Person
          description: Person
          name: person
          dataStoreName: DEFAULT_STORE
          dataStoreDefaultSchemaName: fdhdata
          tableName: person
          systemReserved: false
          historyEnabled: true
          validFromFieldName: birthday
          dataStoreAssignedTimeZone: Etc/UTC
          solutionName: sas_visual_investigator_default
          solutionLabel: SAS Visual Investigator
          deleteTableName: VdkDmdiNifqGgq8jOL3QwNHwZQxVkD
          type: MANAGED
          markerColor: "#0293a0"
          nodeShape: square
          nodeColor: "#ffffff"
          borderColor: "#BFBFBF"
          borderWidth: 1
          scale: 1
          nodeDecoration: {}
          indexedForSearch: true
          attachmentsIndexedForSearch: false
          reindexRequired: false
          fields:
            - id: 102858
              label: Person Id
              name: id
              columnName: id
              dataType: STRING
              length: 36
              required: true
              primaryKeyField: true
              unique: true
              autoGenerated: true
              systemReserved: true
              displayIndex: 0
              primaryKeySeqNo: 1
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102856
              label: First Name
              name: first_name
              columnName: first_name
              dataType: STRING
              length: 15
              required: true
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 1
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102859
              label: Last Name
              name: last_name
              columnName: last_name
              dataType: STRING
              length: 15
              required: true
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 2
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102853
              label: Birthday
              name: birthday
              columnName: birthday
              dataType: TIMESTAMP
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 3
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102862
              label: Version
              name: version
              columnName: version
              dataType: LONG
              required: true
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 4
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102855
              label: Created By
              name: created_by_user_id
              columnName: created_by_user_id
              dataType: STRING
              length: 255
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 5
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102854
              label: Created At
              name: created_at_dttm
              columnName: created_at_dttm
              dataType: TIMESTAMP
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 6
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102861
              label: Last Updated By
              name: last_updated_by_user_id
              columnName: last_updated_by_user_id
              dataType: STRING
              length: 255
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 7
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102860
              label: Last Updated At
              name: last_updated_at_dttm
              columnName: last_updated_at_dttm
              dataType: TIMESTAMP
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: true
              displayIndex: 8
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 102857
              label: Gender
              name: gender
              columnName: gender
              dataType: REFERENCE_DATA
              length: 10
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 9
              constrainingListName: Gender
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
            - id: 103052
              label: Ps Inc
              name: ps_inc
              columnName: ps_inc
              dataType: NUMERIC
              precision: 6
              scale: 6
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 10
              readOnly: false
              indexedForSearch: true
              showTimeZone: false
              ownerName: person
              masked: false
          allowElementGroupRootAssignment: false
          icons:
            - id: 1011
              name: Individual16Teal
              imageType: SVG
              imageLocation: /svi-datahub/icons/Individual16Teal/image
              solutionLabel: SAS Visual Investigator
    fileExample:
      description: Example of a file association object.
      value:
        creationTimeStamp: 2019-11-06T22:01:23.809Z
        modifiedTimeStamp: 2019-11-06T22:01:23.809Z
        createdBy: videmo
        modifiedBy: videmo
        id: 608f37fb-d3b5-4381-bff0-4a6fee1c0e84
        location: /svi-datahub/documents/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
        properties: {}
        contentDisposition: attachment; filename="2cb2668d-218a-2f8a-a5aa-6a9ce54ff739"
        contentType: text/plain
        encoding: UTF-8
        links:
          - method: GET
            rel: self
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            type: application/vnd.sas.file
          - method: GET
            rel: alternate
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            type: application/vnd.sas.summary
          - method: PATCH
            rel: patch
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            type: application/vnd.sas.file
            responseType: application/vnd.sas.file
          - method: PUT
            rel: update
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            type: application/vnd.sas.file
            responseType: application/vnd.sas.file
          - method: DELETE
            rel: delete
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84
          - method: GET
            rel: content
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content
            type: text/plain
          - method: PUT
            rel: updateContent
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/content
            type: "*/*"
            responseType: application/vnd.sas.file
          - method: POST
            rel: copyFile
            href: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy
            uri: /files/files/608f37fb-d3b5-4381-bff0-4a6fee1c0e84/copy
            responseType: application/vnd.sas.file
          - method: POST
            rel: create
            href: /files/files
            uri: /files/files
            type: "*/*"
            responseType: application/vnd.sas.file
        name: 2cb2668d-218a-2f8a-a5aa-6a9ce54ff739
        originalName: My Attachment.txt
        size: 443
        typeDefName: file
        isLink: false
        version: 3
    fileCollectionExample:
      description: Example of a collection of file association objects.
      value:
        links:
          - method: GET
            rel: self
            href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10
            uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files?start=0&limit=10
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.datahub.file
          - method: GET
            rel: collection
            href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
            uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.datahub.file
          - method: POST
            rel: create
            href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
            uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
            type: application/vnd.sas.datahub.file
            responseType: application/vnd.sas.datahub.file
        name: files
        accept: application/vnd.sas.datahub.file
        start: 0
        count: 2
        items:
          - version: 1
            id: 237f217b-4911-4f5b-9e1a-bc36a6c06ab0
            name: DocumentsPdf.pdf
            originalName: DocumentsPdf.pdf
            category: Attachment
            location: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0
            type: application/pdf
            size: 22159
            uploadedAt: 2022-05-31T12:23:14.493Z
            uploadedBy: videmo
            links:
              - method: GET
                rel: self
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0
                type: application/vnd.sas.datahub.file
              - method: GET
                rel: content
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0/content
                type: application/pdf
              - method: DELETE
                rel: delete
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/237f217b-4911-4f5b-9e1a-bc36a6c06ab0
              - method: GET
                rel: up
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.datahub.file
              - method: POST
                rel: addFile
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                type: application/vnd.sas.datahub.file
                responseType: application/vnd.sas.datahub.file
          - version: 1
            id: 1ebb707a-9e54-47ec-a957-9b2bd64d62a0
            name: super.txt
            originalName: super.txt
            category: Attachment
            location: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0
            type: text/plain
            size: 5
            uploadedAt: 2022-05-31T12:22:42.067Z
            uploadedBy: videmo
            links:
              - method: GET
                rel: self
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0
                type: application/vnd.sas.datahub.file
              - method: GET
                rel: content
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0/content
                type: text/plain
              - method: DELETE
                rel: delete
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files/1ebb707a-9e54-47ec-a957-9b2bd64d62a0
              - method: GET
                rel: up
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.datahub.file
              - method: POST
                rel: addFile
                href: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                uri: /svi-datahub/documents/alerts/281eb4b9-c936-4918-a36a-7d2ae57fbee6/files
                type: application/vnd.sas.datahub.file
                responseType: application/vnd.sas.datahub.file
        limit: 10
        version: 2
    fieldMaskingConfigurationExample:
      description: Example of a Field Masking Configuration object.
      value:
        currentUserIsAuthorizedToReveal: true
        revealUrl: /svi-datahub/documents/history/person/012345/fields/ssn?version=4
    fieldRestrictionExample:
      description: Example of a Field Restriction object.
      value:
        masked:
          currentUserIsAuthorizedToReveal: true
          revealUrl: /svi-datahub/documents/history/person/012345/fields/ssn?version=4
        maxLength: 9
    restrictedFieldsExample:
      description: Example of a Restricted Fields Map object.
      value:
        ssn:
          masked:
            currentUserIsAuthorizedToReveal: true
            revealUrl: /svi-datahub/documents/history/person/012345/fields/ssn?version=4
          maxLength: 9
    fieldRestrictionsExample:
      description: Example of a Field Restrictions Bundle object.
      value:
        person:
          ssn:
            masked:
              currentUserIsAuthorizedToReveal: true
              revealUrl: /svi-datahub/documents/history/person/012345/fields/ssn?version=4
            maxLength: 9
        creditCard:
          accountNumber:
            readOnly: true
            masked:
              currentUserIsAuthorizedToReveal: false
              revealUrl: /svi-datahub/documents/history/person/012345/children/creditCard/98765/fields/accountNumber?version=1
    fieldValueExample:
      description: Example of a Field Value object.
      value:
        fieldName: ssn
        raw: 12345678
    fieldValueCollectionExample:
      description: Example of a Resource Collection of Field Value objects.
      value:
        count: 2
        items:
          - fieldName: ssn
            raw: 12345678
          - fieldName: last_name
            raw: Smith
    commentExample:
      description: Example of a comment object.
      value:
        id: 1
        category: ExampleCategory
        author:
          id: example
          name: ExampleUser
        createDate: 2022-03-17T17:47:41.845Z
        lastUpdatedAt: 2022-03-17T17:47:41.845Z
        lastUpdatedBy: example
        detail: ExampleComment
    commentCollectionExample:
      description: Example of a collection of comment objects.
      value:
        links:
          - method: GET
            rel: collection
            href: /svi-datahub/documents/example_entity/entity_id/comments
            uri: /svi-datahub/documents/example_entity/entity_id/comments
            type: application/vnd.sas.collection
          - method: GET
            rel: next
            href: /svi-datahub/documents/example_entity/entity_id/comments?start=10&limit=10
            uri: /svi-datahub/documents/example_entity/entity_id/comments?start=10&limit=10
            type: application/vnd.sas.collection
          - method: GET
            rel: self
            href: /svi-datahub/documents/example_entity/entity_id/comments?start=0&limit=10
            uri: /svi-datahub/documents/example_entity/entity_id/comments?start=0&limit=10
            type: application/vnd.sas.collection
        name: comments
        start: 0
        count: 2
        items:
          - id: 2
            category: ExampleCategory2
            author:
              id: example
              name: TestExample
            createDate: 2022-03-17T18:29:08.689Z
            lastUpdatedAt: 2022-03-17T18:29:08.689Z
            lastUpdatedBy: example
            detail: ExampleComment2
          - id: 1
            category: ExampleCategory
            author:
              id: example
              name: TestExample
            createDate: 2022-03-17T17:47:41.845Z
            lastUpdatedAt: 2022-03-17T17:47:41.845Z
            lastUpdatedBy: example
            detail: ExampleComment
        limit: 10
        version: 2
    commentCategoryExample:
      description: Example of a comment category object.
      value:
        category: ExampleCategory
        count: 2
    commentCategoryListExample:
      description: Example of a comment category list.
      value:
        - category: ExampleCategory
          count: 2
        - category: ExampleCategory2
          count: 1
    bulkConditionEvaluationRequestExample:
      description: Example of a bulk condition evaluation request object.
      value:
        requests:
          - conditionId: 1c4cdebb-c125-41ea-99c2-ac0aeedb646e
            objectTypeName: person
            objectId: 9da58bba-3961-41fb-be16-cdbf8b504451
          - conditionId: 1c4cdebb-c125-41ea-99c2-ac0aeedb646e
            objectTypeName: person
            objectId: 4688f7e9-cd70-4a87-930e-55b6f8cbb264
          - conditionId: 590acf3d-b226-4db0-b92f-001c44aa6503
            objectTypeName: account
            objectId: 89bf6f8f-a307-4116-ba3c-90d16ddd177b
          - conditionId: 590acf3d-b226-4db0-b92f-001c44aa6503
            objectTypeName: account
            objectId: 6007d257-dd08-4247-b29c-6e685452df0c
    bulkConditionEvaluationResponseExample:
      description: Example of a bulk condition evaluation response object.
      value:
        responses:
          - requested:
              conditionId: 1c4cdebb-c125-41ea-99c2-ac0aeedb646e
              objectTypeName: person
              objectId: 9da58bba-3961-41fb-be16-cdbf8b504451
            result: true
          - requested:
              conditionId: 1c4cdebb-c125-41ea-99c2-ac0aeedb646e
              objectTypeName: person
              objectId: 4688f7e9-cd70-4a87-930e-55b6f8cbb264
            result: false
          - requested:
              conditionId: 590acf3d-b226-4db0-b92f-001c44aa6503
              objectTypeName: account
              objectId: 89bf6f8f-a307-4116-ba3c-90d16ddd177b
            result: true
          - requested:
              conditionId: 590acf3d-b226-4db0-b92f-001c44aa6503
              objectTypeName: account
              objectId: 6007d257-dd08-4247-b29c-6e685452df0c
            errorCode: DH6200
            errorMessage: >
              The object with the ID "6007d257-dd08-4247-b29c-6e685452df0c" was not found for the "account" entity type.
    dataStoreExample:
      description: Example of a Data Store object.
      value:
        id: 103000
        createdBy: videmo
        createdAt: 2018-08-29T12:51:58.254Z
        lastUpdatedBy: videmo
        lastUpdatedAt: 2018-08-29T12:51:58.254Z
        name: MyOracleDatabase
        type: RELATIONAL
        defaultSchemaName: MySchema
        version: 0
        connectionType: oracle
        host: example.com
        port: "15658"
        username: MyUserName
        reindexRequired: false
        isCasDistributedDataLoadSupported: true
        password: "*****"
        databaseNameOrServiceName: MyOracleServiceName
        schema: MY_SCHEMA
        initialSize: 1
        handle: MyOracleDatabasenRXFB
        urlAppendedParameters: FailoverPreconnect=false;JavaDoubleToString=false
        advancedProperties:
          ConnectionRetryCount: "5"
          ConnectionRetryDelay: "1"
          EnableBulkLoad: "1"
    dataStoreCollectionExample:
      description: Example of a collection of Data Store objects.
      value:
        - id: 103000
          createdBy: videmo
          createdAt: 2018-08-29T12:51:58.254Z
          lastUpdatedBy: videmo
          lastUpdatedAt: 2018-08-29T12:51:58.254Z
          name: MyOracleDatabase
          type: RELATIONAL
          defaultSchemaName: MySchema
          version: 0
          connectionType: oracle
          host: example.com
          port: "15658"
          username: MyUserName
          reindexRequired: false
          isCasDistributedDataLoadSupported: true
          password: "*****"
          databaseNameOrServiceName: MyOracleServiceName
          schema: MY_SCHEMA
          initialSize: 1
          handle: MyOracleDatabasenRXFB
          urlAppendedParameters: FailoverPreconnect=false;JavaDoubleToString=false
          advancedProperties:
            ConnectionRetryCount: "5"
            ConnectionRetryDelay: "1"
            EnableBulkLoad: "1"
    dataStoreCredentialExample:
      description: Example of a Data Store credential object.
      value:
        username: testUser
        password: dGVzdFBhc3N3b3JkMTIz
    dataStoreSupportedTypeCollectionExample:
      description: Example of a collection of Data Store Supported Type objects.
      value:
        - type: postgres
          requiredFields:
            - name
            - host
            - port
            - username
            - password
            - databaseName
            - schema
            - handle
            - version
        - type: oracle
          requiredFields:
            - name
            - host
            - port
            - username
            - password
            - databaseName
            - schema
            - handle
            - version
        - type: teradata
          requiredFields:
            - name
            - host
            - port
            - username
            - password
            - databaseName
            - handle
            - version
        - type: db2
          requiredFields:
            - name
            - host
            - port
            - username
            - password
            - databaseName
            - schema
            - handle
            - version
        - type: MySQL
          requiredFields:
            - name
            - host
            - port
            - username
            - password
            - schema
            - handle
            - version
        - type: SQL Server
          requiredFields:
            - name
            - host
            - port
            - username
            - password
            - databaseName
            - schema
            - handle
            - version
    tableExample:
      description: Example of a Table object.
      value:
        name: person
        schema: my_schema
        type: TABLE
        databaseProductName: PostgreSQL
        columns:
          - name: birthday
            dataType: TIMESTAMP
            required: false
            primaryKeyColumn: false
            ordinalPosition: 0
            primaryKeySeqNo: 0
          - name: created_at_dttm
            dataType: TIMESTAMP
            required: true
            primaryKeyColumn: false
            ordinalPosition: 1
            primaryKeySeqNo: 0
          - name: created_by_user_id
            dataType: STRING
            length: 255
            required: true
            primaryKeyColumn: false
            ordinalPosition: 2
            primaryKeySeqNo: 0
          - name: first_name
            dataType: STRING
            length: 15
            required: false
            primaryKeyColumn: false
            ordinalPosition: 3
            primaryKeySeqNo: 0
          - name: id
            dataType: STRING
            length: 36
            required: true
            primaryKeyColumn: true
            ordinalPosition: 5
            primaryKeySeqNo: 1
          - name: last_name
            dataType: STRING
            length: 15
            required: false
            primaryKeyColumn: false
            ordinalPosition: 6
            primaryKeySeqNo: 0
          - name: last_updated_at_dttm
            dataType: TIMESTAMP
            required: true
            primaryKeyColumn: false
            ordinalPosition: 7
            primaryKeySeqNo: 0
          - name: last_updated_by_user_id
            dataType: STRING
            length: 255
            required: true
            primaryKeyColumn: false
            ordinalPosition: 8
            primaryKeySeqNo: 0
          - name: version
            dataType: LONG
            required: true
            primaryKeyColumn: false
            ordinalPosition: 9
            primaryKeySeqNo: 0
    documentExample:
      description: Example of a Document object.
      value:
        objectTypeName: person
        objectTypeId: 100515
        objectTypeVersion: 4
        id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
        fieldValues:
          birthday: 2020-01-05T00:00:00Z
          created_at_dttm: 2020-04-13T19:17:47.84Z
          created_by_user_id: viuser
          first_name: John
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          last_name: Smith
          last_updated_at_dttm: 2020-04-13T19:31:37.097Z
          last_updated_by_user_id: viuser
          version: 4
        createdAt: 2020-04-13T19:17:47.840Z
        lastUpdatedAt: 2020-04-13T19:31:37.097Z
        validFrom: 2020-01-05T00:00:00.000Z
    maskedDocumentExample:
      description: Example of a Masked Document object.
      value:
        objectTypeName: person
        objectTypeId: 100515
        objectTypeVersion: 4
        id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
        fieldValues:
          birthday: 2020-01-05T00:00:00Z
          created_at_dttm: 2020-04-13T19:17:47.84Z
          created_by_user_id: viuser
          first_name: John
          ssn: •••••••••
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          last_name: Smith
          last_updated_at_dttm: 2020-04-13T19:31:37.097Z
          last_updated_by_user_id: viuser
          version: 4
        createdAt: 2020-04-13T19:17:47.840Z
        lastUpdatedAt: 2020-04-13T19:31:37.097Z
        validFrom: 2020-01-05T00:00:00.000Z
    enrichedDocumentExample:
      description: Example of an Enriched Document object.
      value:
        objectTypeName: person
        objectTypeId: 100515
        objectTypeVersion: 4
        id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
        fieldValues:
          birthday: 2020-01-05T00:00:00Z
          created_at_dttm: 2020-04-13T19:17:47.84Z
          created_by_user_id: viuser
          first_name: John
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          last_name: Smith
          last_updated_at_dttm: 2020-04-13T19:31:37.097Z
          last_updated_by_user_id: viuser
          version: 4
        createdAt: 2020-04-13T19:17:47.840Z
        lastUpdatedAt: 2020-04-13T19:31:37.097Z
        validFrom: 2020-01-05T00:00:00.000Z
        fieldRestrictions:
          person:
            ssn:
              masked:
                currentUserIsAuthorizedToReveal: true
        sheets:
          - id: 201
            type: WORKSHEET
            name: Workspace-1
            version: 2
            created: 2020-04-13T19:27:08.105Z
            createdBy: viuser
            lastModified: 2020-04-13T19:27:26.175Z
            lastModifiedBy: viuser
            tabOrder: 0
            uxState:
              commonToolPane:
                expanded: true
                width: 340
              filterPanel:
                expanded: true
                width: 200
            cells:
              - type: LIVE
                id: 301
                row: 0
                position: 0
                height: 0
                width: 0
                version: 1
                documents:
                  - type: person
                    id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                  - type: person
                    id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                    uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                visualizationType: Network
                resultsPerPage: 0
                networkData:
                  links: []
                  nodes:
                    person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                      id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      transitionStart:
                        x: 667
                        y: 206.5
                      type: person
                      typeLabel: Person
                      x: 711.99394815911
                      y: 220.234232742122
                    person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                      id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      transitionStart:
                        x: 339.81315560960843
                        y: 106.62745147130762
                      type: person
                      typeLabel: Person
                      x: 621.6305200034983
                      y: 192.65113758282533
                  numNodes: 2
                  options:
                    activeNodes: false
                    centralityType: null
                    displayableTransactionType: null
                    groupCtr: 1
                    layout:
                      charge: 25
                      linkDistance: 130
                      linkStrength: 0.4
                      velocityDecay: 0.45
                    nodeCtr: 1
                    scale: 2.0766116941529233
                    showLegend: true
                    showLinkLabels: false
                    showNodeAnnotation: true
                    showNodeLabels: true
                    showTimeline: false
                    showTransactionDetails: false
                    showTransactionLinks: false
                    toolsPane:
                      activeTool: Object Inspector
                      open: true
                    transactionTypeIndex: 0
                    translate:
                      - -872.0999999999999
                      - -222.32031484257868
        comments:
          - id: 1
            author:
              id: viuser
              name: Test viuser
            createDate: 2020-04-13T19:18:05.087Z
            lastUpdatedAt: 2020-04-13T19:18:05.087Z
            lastUpdatedBy: viuser
            detail: Sample comment<br />
        attachmentsCount: 2
    maskedEnrichedDocumentExample:
      description: Example of a Masked Enriched Document object.
      value:
        objectTypeName: person
        objectTypeId: 100515
        objectTypeVersion: 4
        id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
        fieldValues:
          birthday: 2020-01-05T00:00:00Z
          created_at_dttm: 2020-04-13T19:17:47.84Z
          created_by_user_id: viuser
          first_name: John
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          last_name: Smith
          ssn: •••••••••
          last_updated_at_dttm: 2020-04-13T19:31:37.097Z
          last_updated_by_user_id: viuser
          version: 4
        createdAt: 2020-04-13T19:17:47.840Z
        lastUpdatedAt: 2020-04-13T19:31:37.097Z
        validFrom: 2020-01-05T00:00:00.000Z
        fieldRestrictions:
          person:
            ssn:
              masked:
                currentUserIsAuthorizedToReveal: true
        sheets:
          - id: 201
            type: WORKSHEET
            name: Workspace-1
            version: 2
            created: 2020-04-13T19:27:08.105Z
            createdBy: viuser
            lastModified: 2020-04-13T19:27:26.175Z
            lastModifiedBy: viuser
            tabOrder: 0
            uxState:
              commonToolPane:
                expanded: true
                width: 340
              filterPanel:
                expanded: true
                width: 200
            cells:
              - type: LIVE
                id: 301
                row: 0
                position: 0
                height: 0
                width: 0
                version: 1
                documents:
                  - type: person
                    id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                  - type: person
                    id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                    uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                visualizationType: Network
                resultsPerPage: 0
                networkData:
                  links: []
                  nodes:
                    person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                      id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      transitionStart:
                        x: 667
                        y: 206.5
                      type: person
                      typeLabel: Person
                      x: 711.99394815911
                      y: 220.234232742122
                    person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                      id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      transitionStart:
                        x: 339.81315560960843
                        y: 106.62745147130762
                      type: person
                      typeLabel: Person
                      x: 621.6305200034983
                      y: 192.65113758282533
                  numNodes: 2
                  options:
                    activeNodes: false
                    centralityType: null
                    displayableTransactionType: null
                    groupCtr: 1
                    layout:
                      charge: 25
                      linkDistance: 130
                      linkStrength: 0.4
                      velocityDecay: 0.45
                    nodeCtr: 1
                    scale: 2.0766116941529233
                    showLegend: true
                    showLinkLabels: false
                    showNodeAnnotation: true
                    showNodeLabels: true
                    showTimeline: false
                    showTransactionDetails: false
                    showTransactionLinks: false
                    toolsPane:
                      activeTool: Object Inspector
                      open: true
                    transactionTypeIndex: 0
                    translate:
                      - -872.0999999999999
                      - -222.32031484257868
        comments:
          - id: 1
            author:
              id: viuser
              name: Test viuser
            createDate: 2020-04-13T19:18:05.087Z
            lastUpdatedAt: 2020-04-13T19:18:05.087Z
            lastUpdatedBy: viuser
            detail: Sample comment<br />
        attachmentsCount: 2
    minimallyMaskedEnrichedDocumentExample:
      description: Example of a Masked Enriched Document object.
      value:
        objectTypeName: person
        objectTypeId: 100515
        objectTypeVersion: 4
        id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
        fieldValues:
          birthday: 2020-01-05T00:00:00Z
          created_at_dttm: 2020-04-13T19:17:47.84Z
          created_by_user_id: viuser
          first_name: John
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          last_name: Smith
          ssn: "123456789"
          last_updated_at_dttm: 2020-04-13T19:31:37.097Z
          last_updated_by_user_id: viuser
          version: 4
        createdAt: 2020-04-13T19:17:47.840Z
        lastUpdatedAt: 2020-04-13T19:31:37.097Z
        validFrom: 2020-01-05T00:00:00.000Z
        fieldRestrictions:
          person:
            ssn:
              masked:
                currentUserIsAuthorizedToReveal: true
        sheets:
          - id: 201
            type: WORKSHEET
            name: Workspace-1
            version: 2
            created: 2020-04-13T19:27:08.105Z
            createdBy: viuser
            lastModified: 2020-04-13T19:27:26.175Z
            lastModifiedBy: viuser
            tabOrder: 0
            uxState:
              commonToolPane:
                expanded: true
                width: 340
              filterPanel:
                expanded: true
                width: 200
            cells:
              - type: LIVE
                id: 301
                row: 0
                position: 0
                height: 0
                width: 0
                version: 1
                documents:
                  - type: person
                    id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                  - type: person
                    id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                    uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                visualizationType: Network
                resultsPerPage: 0
                networkData:
                  links: []
                  nodes:
                    person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                      id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      transitionStart:
                        x: 667
                        y: 206.5
                      type: person
                      typeLabel: Person
                      x: 711.99394815911
                      y: 220.234232742122
                    person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                      id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      transitionStart:
                        x: 339.81315560960843
                        y: 106.62745147130762
                      type: person
                      typeLabel: Person
                      x: 621.6305200034983
                      y: 192.65113758282533
                  numNodes: 2
                  options:
                    activeNodes: false
                    centralityType: null
                    displayableTransactionType: null
                    groupCtr: 1
                    layout:
                      charge: 25
                      linkDistance: 130
                      linkStrength: 0.4
                      velocityDecay: 0.45
                    nodeCtr: 1
                    scale: 2.0766116941529233
                    showLegend: true
                    showLinkLabels: false
                    showNodeAnnotation: true
                    showNodeLabels: true
                    showTimeline: false
                    showTransactionDetails: false
                    showTransactionLinks: false
                    toolsPane:
                      activeTool: Object Inspector
                      open: true
                    transactionTypeIndex: 0
                    translate:
                      - -872.0999999999999
                      - -222.32031484257868
        comments:
          - id: 1
            author:
              id: viuser
              name: Test viuser
            createDate: 2020-04-13T19:18:05.087Z
            lastUpdatedAt: 2020-04-13T19:18:05.087Z
            lastUpdatedBy: viuser
            detail: Sample comment<br />
        attachmentsCount: 2
    enrichedDocumentCollectionExample:
      description: Example of a collection of Enriched Documents.
      value:
        - objectTypeName: person
          objectTypeId: 100515
          objectTypeVersion: 4
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          fieldValues:
            birthday: 2020-01-05T00:00:00Z
            created_at_dttm: 2020-04-13T19:17:47.84Z
            created_by_user_id: viuser
            first_name: John
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            last_name: Smith
            last_updated_at_dttm: 2020-04-13T19:31:37.097Z
            last_updated_by_user_id: viuser
            version: 4
          createdAt: 2020-04-13T19:17:47.840Z
          lastUpdatedAt: 2020-04-13T19:31:37.097Z
          validFrom: 2020-01-05T00:00:00.000Z
          fieldRestrictions:
            person:
              ssn:
                masked:
                  currentUserIsAuthorizedToReveal: true
          sheets:
            - id: 201
              type: WORKSHEET
              name: Workspace-1
              version: 2
              created: 2020-04-13T19:27:08.105Z
              createdBy: viuser
              lastModified: 2020-04-13T19:27:26.175Z
              lastModifiedBy: viuser
              tabOrder: 0
              uxState:
                commonToolPane:
                  expanded: true
                  width: 340
                filterPanel:
                  expanded: true
                  width: 200
              cells:
                - type: LIVE
                  id: 301
                  row: 0
                  position: 0
                  height: 0
                  width: 0
                  version: 1
                  documents:
                    - type: person
                      id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    - type: person
                      id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  visualizationType: Network
                  resultsPerPage: 0
                  networkData:
                    links: []
                    nodes:
                      person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                        id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                        transitionStart:
                          x: 667
                          y: 206.5
                        type: person
                        typeLabel: Person
                        x: 711.99394815911
                        y: 220.234232742122
                      person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                        id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                        transitionStart:
                          x: 339.81315560960843
                          y: 106.62745147130762
                        type: person
                        typeLabel: Person
                        x: 621.6305200034983
                        y: 192.65113758282533
                    numNodes: 2
                    options:
                      activeNodes: false
                      centralityType: null
                      displayableTransactionType: null
                      groupCtr: 1
                      layout:
                        charge: 25
                        linkDistance: 130
                        linkStrength: 0.4
                        velocityDecay: 0.45
                      nodeCtr: 1
                      scale: 2.0766116941529233
                      showLegend: true
                      showLinkLabels: false
                      showNodeAnnotation: true
                      showNodeLabels: true
                      showTimeline: false
                      showTransactionDetails: false
                      showTransactionLinks: false
                      toolsPane:
                        activeTool: Object Inspector
                        open: true
                      transactionTypeIndex: 0
                      translate:
                        - -872.0999999999999
                        - -222.32031484257868
          comments:
            - id: 1
              author:
                id: viuser
                name: Test viuser
              createDate: 2020-04-13T19:18:05.087Z
              lastUpdatedAt: 2020-04-13T19:18:05.087Z
              lastUpdatedBy: viuser
              detail: Sample comment<br />
          attachmentsCount: 2
    maskedEnrichedDocumentCollectionExample:
      description: Example of a collection of Masked Enriched Documents.
      value:
        - objectTypeName: person
          objectTypeId: 100515
          objectTypeVersion: 4
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          fieldValues:
            birthday: 2020-01-05T00:00:00Z
            created_at_dttm: 2020-04-13T19:17:47.84Z
            created_by_user_id: viuser
            first_name: John
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            last_name: Smith
            ssn: •••••••••
            last_updated_at_dttm: 2020-04-13T19:31:37.097Z
            last_updated_by_user_id: viuser
            version: 4
          createdAt: 2020-04-13T19:17:47.840Z
          lastUpdatedAt: 2020-04-13T19:31:37.097Z
          validFrom: 2020-01-05T00:00:00.000Z
          fieldRestrictions:
            person:
              ssn:
                masked:
                  currentUserIsAuthorizedToReveal: true
          sheets:
            - id: 201
              type: WORKSHEET
              name: Workspace-1
              version: 2
              created: 2020-04-13T19:27:08.105Z
              createdBy: viuser
              lastModified: 2020-04-13T19:27:26.175Z
              lastModifiedBy: viuser
              tabOrder: 0
              uxState:
                commonToolPane:
                  expanded: true
                  width: 340
                filterPanel:
                  expanded: true
                  width: 200
              cells:
                - type: LIVE
                  id: 301
                  row: 0
                  position: 0
                  height: 0
                  width: 0
                  version: 1
                  documents:
                    - type: person
                      id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    - type: person
                      id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  visualizationType: Network
                  resultsPerPage: 0
                  networkData:
                    links: []
                    nodes:
                      person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                        id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                        transitionStart:
                          x: 667
                          y: 206.5
                        type: person
                        typeLabel: Person
                        x: 711.99394815911
                        y: 220.234232742122
                      person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                        id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                        transitionStart:
                          x: 339.81315560960843
                          y: 106.62745147130762
                        type: person
                        typeLabel: Person
                        x: 621.6305200034983
                        y: 192.65113758282533
                    numNodes: 2
                    options:
                      activeNodes: false
                      centralityType: null
                      displayableTransactionType: null
                      groupCtr: 1
                      layout:
                        charge: 25
                        linkDistance: 130
                        linkStrength: 0.4
                        velocityDecay: 0.45
                      nodeCtr: 1
                      scale: 2.0766116941529233
                      showLegend: true
                      showLinkLabels: false
                      showNodeAnnotation: true
                      showNodeLabels: true
                      showTimeline: false
                      showTransactionDetails: false
                      showTransactionLinks: false
                      toolsPane:
                        activeTool: Object Inspector
                        open: true
                      transactionTypeIndex: 0
                      translate:
                        - -872.0999999999999
                        - -222.32031484257868
          comments:
            - id: 1
              author:
                id: viuser
                name: Test viuser
              createDate: 2020-04-13T19:18:05.087Z
              lastUpdatedAt: 2020-04-13T19:18:05.087Z
              lastUpdatedBy: viuser
              detail: Sample comment<br />
          attachmentsCount: 2
    minimallyMaskedEnrichedDocumentCollectionExample:
      description: Example of a collection of Minimally-Masked Enriched Documents.
      value:
        - objectTypeName: person
          objectTypeId: 100515
          objectTypeVersion: 4
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          fieldValues:
            birthday: 2020-01-05T00:00:00Z
            created_at_dttm: 2020-04-13T19:17:47.84Z
            created_by_user_id: viuser
            first_name: John
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            last_name: Smith
            ssn: "123456789"
            last_updated_at_dttm: 2020-04-13T19:31:37.097Z
            last_updated_by_user_id: viuser
            version: 4
          createdAt: 2020-04-13T19:17:47.840Z
          lastUpdatedAt: 2020-04-13T19:31:37.097Z
          validFrom: 2020-01-05T00:00:00.000Z
          fieldRestrictions:
            person:
              ssn:
                masked:
                  currentUserIsAuthorizedToReveal: true
          sheets:
            - id: 201
              type: WORKSHEET
              name: Workspace-1
              version: 2
              created: 2020-04-13T19:27:08.105Z
              createdBy: viuser
              lastModified: 2020-04-13T19:27:26.175Z
              lastModifiedBy: viuser
              tabOrder: 0
              uxState:
                commonToolPane:
                  expanded: true
                  width: 340
                filterPanel:
                  expanded: true
                  width: 200
              cells:
                - type: LIVE
                  id: 301
                  row: 0
                  position: 0
                  height: 0
                  width: 0
                  version: 1
                  documents:
                    - type: person
                      id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    - type: person
                      id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  visualizationType: Network
                  resultsPerPage: 0
                  networkData:
                    links: []
                    nodes:
                      person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                        id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                        transitionStart:
                          x: 667
                          y: 206.5
                        type: person
                        typeLabel: Person
                        x: 711.99394815911
                        y: 220.234232742122
                      person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                        id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                        transitionStart:
                          x: 339.81315560960843
                          y: 106.62745147130762
                        type: person
                        typeLabel: Person
                        x: 621.6305200034983
                        y: 192.65113758282533
                    numNodes: 2
                    options:
                      activeNodes: false
                      centralityType: null
                      displayableTransactionType: null
                      groupCtr: 1
                      layout:
                        charge: 25
                        linkDistance: 130
                        linkStrength: 0.4
                        velocityDecay: 0.45
                      nodeCtr: 1
                      scale: 2.0766116941529233
                      showLegend: true
                      showLinkLabels: false
                      showNodeAnnotation: true
                      showNodeLabels: true
                      showTimeline: false
                      showTransactionDetails: false
                      showTransactionLinks: false
                      toolsPane:
                        activeTool: Object Inspector
                        open: true
                      transactionTypeIndex: 0
                      translate:
                        - -872.0999999999999
                        - -222.32031484257868
          comments:
            - id: 1
              author:
                id: viuser
                name: Test viuser
              createDate: 2020-04-13T19:18:05.087Z
              lastUpdatedAt: 2020-04-13T19:18:05.087Z
              lastUpdatedBy: viuser
              detail: Sample comment<br />
          attachmentsCount: 2
    enrichedDocumentResourceCollectionExample:
      description: Example of a Resource Collection that contains Enriched Document objects.
      value:
        links:
          - method: POST
            rel: self
            href: /documents/person
            uri: /documents/person
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigation.data.enriched.document
            body:
              start: 0
              limit: 10
              includeDisplayLabel: true
              depth: "0"
              sortBy: id
              filter: eq(first_name, 'John')
          - method: GET
            rel: collection
            href: /documents/person
            uri: /documents/person
            type: application/vnd.sas.collection
        name: documents
        accept: application/vnd.sas.investigation.data.enriched.document+json
        start: 0
        count: 1
        items:
          - objectTypeName: person
            objectTypeId: 100924
            objectTypeVersion: 6
            id: uuid_100
            fieldValues:
              created_at_dttm: 2015-10-01T18:30:03.656Z
              created_by_user_id: unit_test
              first_name: John
              id: uuid_100
              last_name: Smith
              last_updated_at_dttm: 2015-10-01T18:30:03.656Z
              last_updated_by_user_id: unit_test
              version: 1
            fieldRestrictions:
              person:
                ssn:
                  masked:
                    currentUserIsAuthorizedToReveal: true
            displayLabel: John Smith
            createdAt: 2015-10-01T18:30:03.656Z
            lastUpdatedAt: 2015-10-01T18:30:03.656Z
            attachmentsCount: 0
        limit: 10
        version: 2
    documentAndLinkExample:
      description: Example of a Document and Link Bundle
      value:
        document:
          objectTypeName: person
          objectTypeId: 100515
          objectTypeVersion: 4
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          fieldValues:
            birthday: 2020-01-05T00:00:00Z
            created_at_dttm: 2020-04-13T19:17:47.84Z
            created_by_user_id: viuser
            first_name: John
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            last_name: Smith
            last_updated_at_dttm: 2020-04-13T19:31:37.097Z
            last_updated_by_user_id: viuser
            version: 4
          fieldRestrictions:
            person:
              ssn:
                masked:
                  currentUserIsAuthorizedToReveal: true
          createdAt: 2020-04-13T19:17:47.840Z
          lastUpdatedAt: 2020-04-13T19:31:37.097Z
          validFrom: 2020-01-05T00:00:00.000Z
          sheets:
            - id: 201
              type: WORKSHEET
              name: Workspace-1
              version: 2
              created: 2020-04-13T19:27:08.105Z
              createdBy: viuser
              lastModified: 2020-04-13T19:27:26.175Z
              lastModifiedBy: viuser
              tabOrder: 0
              uxState:
                commonToolPane:
                  expanded: true
                  width: 340
                filterPanel:
                  expanded: true
                  width: 200
              cells:
                - type: LIVE
                  id: 301
                  row: 0
                  position: 0
                  height: 0
                  width: 0
                  version: 1
                  documents:
                    - type: person
                      id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    - type: person
                      id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  visualizationType: Network
                  resultsPerPage: 0
                  networkData:
                    links: []
                    nodes:
                      person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                        id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                        transitionStart:
                          x: 667
                          y: 206.5
                        type: person
                        typeLabel: Person
                        x: 711.99394815911
                        y: 220.234232742122
                      person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                        id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                        transitionStart:
                          x: 339.81315560960843
                          y: 106.62745147130762
                        type: person
                        typeLabel: Person
                        x: 621.6305200034983
                        y: 192.65113758282533
                    numNodes: 2
                    options:
                      activeNodes: false
                      centralityType: null
                      displayableTransactionType: null
                      groupCtr: 1
                      layout:
                        charge: 25
                        linkDistance: 130
                        linkStrength: 0.4
                        velocityDecay: 0.45
                      nodeCtr: 1
                      scale: 2.0766116941529233
                      showLegend: true
                      showLinkLabels: false
                      showNodeAnnotation: true
                      showNodeLabels: true
                      showTimeline: false
                      showTransactionDetails: false
                      showTransactionLinks: false
                      toolsPane:
                        activeTool: Object Inspector
                        open: true
                      transactionTypeIndex: 0
                      translate:
                        - -872.0999999999999
                        - -222.32031484257868
          comments:
            - id: 1
              author:
                id: viuser
                name: Test viuser
              createDate: 2020-04-13T19:18:05.087Z
              lastUpdatedAt: 2020-04-13T19:18:05.087Z
              lastUpdatedBy: viuser
              detail: Sample comment<br />
          attachmentsCount: 2
        documentLink:
          relationshipTypeName: witnessed_by
          relationshipTypeVersion: 1
          relationshipTypeLabel: Witnessed by
          id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
          "@type": DocumentLink
          createdAt: 2015-10-01T18:30:03.656Z
          lastUpdatedAt: 2015-10-01T18:30:03.656Z
          displayLabel: Witnessed by
          fromObjectTypeName: intel_report
          fromObjectTypeVersion: 3
          fromObjectId: uuid_502
          fromObjectDisplayLabel: John Smith
          toObjectTypeName: person
          toObjectTypeVersion: 6
          toObjectId: uuid_102
          toObjectDisplayLabel: John Smith
          fieldValues:
            auto_generated_sk: e5343e0e-3d68-11e8-b467-0ed5f89f718b
            created_at_dttm: 2015-10-01T18:30:03.656Z
            created_by_user_id: unit_test
            intelReportId: uuid_502
            last_updated_at_dttm: 2015-10-01T18:30:03.656Z
            last_updated_by_user_id: unit_test
            personId: uuid_102
            version: 1
          qualifiedTypeName: intel_report__witnessed_by
    maskedDocumentAndLinkExample:
      description: Example of a Masked Document and Link Bundle.
      value:
        document:
          objectTypeName: person
          objectTypeId: 100515
          objectTypeVersion: 4
          id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
          fieldValues:
            birthday: 2020-01-05T00:00:00Z
            created_at_dttm: 2020-04-13T19:17:47.84Z
            created_by_user_id: viuser
            first_name: John
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            ssn: •••••••••
            last_name: Smith
            last_updated_at_dttm: 2020-04-13T19:31:37.097Z
            last_updated_by_user_id: viuser
            version: 4
          fieldRestrictions:
            person:
              ssn:
                masked:
                  currentUserIsAuthorizedToReveal: true
          createdAt: 2020-04-13T19:17:47.840Z
          lastUpdatedAt: 2020-04-13T19:31:37.097Z
          validFrom: 2020-01-05T00:00:00.000Z
          sheets:
            - id: 201
              type: WORKSHEET
              name: Workspace-1
              version: 2
              created: 2020-04-13T19:27:08.105Z
              createdBy: viuser
              lastModified: 2020-04-13T19:27:26.175Z
              lastModifiedBy: viuser
              tabOrder: 0
              uxState:
                commonToolPane:
                  expanded: true
                  width: 340
                filterPanel:
                  expanded: true
                  width: 200
              cells:
                - type: LIVE
                  id: 301
                  row: 0
                  position: 0
                  height: 0
                  width: 0
                  version: 1
                  documents:
                    - type: person
                      id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                      uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    - type: person
                      id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                      uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  visualizationType: Network
                  resultsPerPage: 0
                  networkData:
                    links: []
                    nodes:
                      person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                        id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                        transitionStart:
                          x: 667
                          y: 206.5
                        type: person
                        typeLabel: Person
                        x: 711.99394815911
                        y: 220.234232742122
                      person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                        id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                        transitionStart:
                          x: 339.81315560960843
                          y: 106.62745147130762
                        type: person
                        typeLabel: Person
                        x: 621.6305200034983
                        y: 192.65113758282533
                    numNodes: 2
                    options:
                      activeNodes: false
                      centralityType: null
                      displayableTransactionType: null
                      groupCtr: 1
                      layout:
                        charge: 25
                        linkDistance: 130
                        linkStrength: 0.4
                        velocityDecay: 0.45
                      nodeCtr: 1
                      scale: 2.0766116941529233
                      showLegend: true
                      showLinkLabels: false
                      showNodeAnnotation: true
                      showNodeLabels: true
                      showTimeline: false
                      showTransactionDetails: false
                      showTransactionLinks: false
                      toolsPane:
                        activeTool: Object Inspector
                        open: true
                      transactionTypeIndex: 0
                      translate:
                        - -872.0999999999999
                        - -222.32031484257868
          comments:
            - id: 1
              author:
                id: viuser
                name: Test viuser
              createDate: 2020-04-13T19:18:05.087Z
              lastUpdatedAt: 2020-04-13T19:18:05.087Z
              lastUpdatedBy: viuser
              detail: Sample comment<br />
          attachmentsCount: 2
        documentLink:
          relationshipTypeName: witnessed_by
          relationshipTypeVersion: 1
          relationshipTypeLabel: Witnessed by
          id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
          "@type": DocumentLink
          createdAt: 2015-10-01T18:30:03.656Z
          lastUpdatedAt: 2015-10-01T18:30:03.656Z
          displayLabel: Witnessed by
          fromObjectTypeName: intel_report
          fromObjectTypeVersion: 3
          fromObjectId: uuid_502
          fromObjectDisplayLabel: John Smith
          toObjectTypeName: person
          toObjectTypeVersion: 6
          toObjectId: uuid_102
          toObjectDisplayLabel: John Smith
          fieldValues:
            auto_generated_sk: e5343e0e-3d68-11e8-b467-0ed5f89f718b
            created_at_dttm: 2015-10-01T18:30:03.656Z
            created_by_user_id: unit_test
            intelReportId: uuid_502
            sensitive_field: •••••••••
            last_updated_at_dttm: 2015-10-01T18:30:03.656Z
            last_updated_by_user_id: unit_test
            personId: uuid_102
            version: 1
            restrictedFields:
              sensitive_field:
                masked:
                  currentUserIsAuthorizedToReveal: true
          qualifiedTypeName: intel_report__witnessed_by
    documentFilterRequestExample:
      description: Example of a Document Filter Request object.
      value:
        filter: eq(first_name, 'John')
        start: 0
        limit: 10
        includeDisplayLabel: true
        depth: "0"
        sortBy: id
    documentIdRequestExample:
      description: Example of a Document ID Request object.
      value:
        documentIds:
          - uuid_100
          - uuid_101
        start: 0
        limit: 10
        includeDisplayLabel: true
        depth: "0"
        sortBy: id
    plainDocumentResourceCollectionExample:
      description: Example of a Resource Collection that contains Document objects.
      value:
        links: []
        name: documents
        count: 1
        version: 2
        items:
          - objectTypeName: person
            objectTypeId: 100515
            objectTypeVersion: 4
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            fieldValues:
              birthday: 2020-01-05T00:00:00Z
              created_at_dttm: 2020-04-13T19:17:47.84Z
              created_by_user_id: viuser
              first_name: John
              id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
              last_name: Smith
              last_updated_at_dttm: 2020-04-13T19:31:37.097Z
              last_updated_by_user_id: viuser
              version: 4
            createdAt: 2020-04-13T19:17:47.840Z
            lastUpdatedAt: 2020-04-13T19:31:37.097Z
            validFrom: 2020-01-05T00:00:00.000Z
    maskedEnrichedDocumentResourceCollectionExample:
      description: Example of a Resource Collection that contains Masked Enriched Document objects.
      value:
        links:
          - method: POST
            rel: self
            href: /documents/person
            uri: /documents/person
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigation.data.enriched.document
            body:
              start: 0
              limit: 10
              includeDisplayLabel: true
              depth: "0"
              sortBy: id
              filter: eq(first_name, 'John')
          - method: GET
            rel: collection
            href: /documents/person
            uri: /documents/person
            type: application/vnd.sas.collection
        name: documents
        accept: application/vnd.sas.investigation.data.enriched.document+json
        start: 0
        count: 1
        items:
          - objectTypeName: person
            objectTypeId: 100924
            objectTypeVersion: 6
            id: uuid_100
            fieldValues:
              created_at_dttm: 2015-10-01T18:30:03.656Z
              created_by_user_id: unit_test
              first_name: John
              id: uuid_100
              last_name: Smith
              ssn: •••••••••
              last_updated_at_dttm: 2015-10-01T18:30:03.656Z
              last_updated_by_user_id: unit_test
              version: 1
            fieldRestrictions:
              person:
                ssn:
                  masked:
                    currentUserIsAuthorizedToReveal: true
            displayLabel: John Smith
            createdAt: 2015-10-01T18:30:03.656Z
            lastUpdatedAt: 2015-10-01T18:30:03.656Z
            attachmentsCount: 0
        limit: 10
        version: 2
    maskedDocumentResourceCollectionExample:
      description: Example of a Resource Collection that contains Masked Document objects.
      value:
        links: []
        name: documents
        count: 1
        version: 2
        items:
          - objectTypeName: person
            objectTypeId: 100515
            objectTypeVersion: 4
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            fieldValues:
              birthday: 2020-01-05T00:00:00Z
              created_at_dttm: 2020-04-13T19:17:47.84Z
              created_by_user_id: viuser
              first_name: John
              id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
              last_name: Smith
              ssn: •••••••••
              last_updated_at_dttm: 2020-04-13T19:31:37.097Z
              last_updated_by_user_id: viuser
              version: 4
            createdAt: 2020-04-13T19:17:47.840Z
            lastUpdatedAt: 2020-04-13T19:31:37.097Z
            validFrom: 2020-01-05T00:00:00.000Z
    minimallyMaskedDocumentResourceCollectionExample:
      description: Example of a Resource Collection that contains Minimally-Masked Document objects.
      value:
        links: []
        name: documents
        count: 1
        version: 2
        items:
          - objectTypeName: person
            objectTypeId: 100515
            objectTypeVersion: 4
            id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
            fieldValues:
              birthday: 2020-01-05T00:00:00Z
              created_at_dttm: 2020-04-13T19:17:47.84Z
              created_by_user_id: viuser
              first_name: John
              id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
              last_name: Smith
              ssn: "123456789"
              last_updated_at_dttm: 2020-04-13T19:31:37.097Z
              last_updated_by_user_id: viuser
              version: 4
            createdAt: 2020-04-13T19:17:47.840Z
            lastUpdatedAt: 2020-04-13T19:31:37.097Z
            validFrom: 2020-01-05T00:00:00.000Z
    historyinfoResourceCollectionExample:
      description: Example of a Resource Collection that contains Additional History Information objects.
      value:
        links:
          - method: GET
            rel: self
            href: /svi-datahub/documents/intel_report/uuid_502/versions/6/items?start=0&limit=40
            uri: /svi-datahub/documents/intel_report/uuid_502/versions/6/items?start=0&limit=40
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.datahub.history.info
          - method: GET
            rel: collection
            href: /svi-datahub/documents/intel_report/uuid_502/versions/6/items
            uri: /svi-datahub/documents/intel_report/uuid_502/versions/6/items
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.datahub.history.info
        name: owner
        accept: application/vnd.sas.datahub.history.info
        start: 0
        count: 1
        items:
          - historyInfoId: 501
            itemRefId: "50"
            itemType: Insight
            itemLabel: Insight-1
            operation: Added
            ownerType: intel_report
            ownerId: uuid_502
            ownerVersion: "6"
        limit: 40
        version: 2
    countLinksResultCollectionExample:
      description: Example response from a request to count the number of entities that are linked to a specific entity id
      value:
        links: []
        name: links
        count: 2
        items:
          - relationshipId: 101300
            relationshipName: customer_to_order
            relationshipLabel: Customer to Order
            relationshipQualifiedName: customer__customer_to_order
            relationshipReverseName: order_to_customer
            relationshipReverseLabel: Order to Customer
            fromEntityTypeName: customer
            fromEntityTypeLabel: Customer
            toEntityTypeName: order
            toEntityTypeLabel: Order
            linkCount: 4
          - relationshipId: 104200
            relationshipName: customer_to_address
            relationshipLabel: Customer to Address
            relationshipQualifiedName: customer__customer_to_address
            relationshipReverseName: address_to_customer
            relationshipReverseLabel: Address to Customer
            fromEntityTypeName: customer
            fromEntityTypeLabel: Customer
            toEntityTypeName: address
            toEntityTypeLabel: Address
            linkCount: 2
        version: 2
    sasErrorExample:
      description: Example of a SAS Error object.
      value:
        message: There was an error processing your request.
        id: DH9999
        errorCode: 9999
        httpStatusCode: 400
        details:
          - See the log for additional details.
        remediation: Please resolve the error and then resubmit the request.
    sheetExample:
      description: An example of a sheet.
      value:
        id: 201
        type: WORKSHEET
        name: Workspace-1
        version: 2
        created: 2020-04-13T19:27:08.105Z
        createdBy: viuser
        lastModified: 2020-04-13T19:27:26.175Z
        lastModifiedBy: viuser
        tabOrder: 0
        uxState:
          commonToolPane:
            expanded: true
            width: 340
          filterPanel:
            expanded: true
            width: 200
        cells:
          - type: LIVE
            id: 301
            row: 0
            position: 0
            height: 0
            width: 0
            version: 1
            documents:
              - type: person
                id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
              - type: person
                id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
            visualizationType: Network
            resultsPerPage: 0
            networkData:
              links: []
              nodes:
                person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                  id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                  transitionStart:
                    x: 667
                    y: 206.5
                  type: person
                  typeLabel: Person
                  x: 711.99394815911
                  y: 220.234232742122
                person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                  id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  transitionStart:
                    x: 339.81315560960843
                    y: 106.62745147130762
                  type: person
                  typeLabel: Person
                  x: 621.6305200034983
                  y: 192.65113758282533
              numNodes: 2
              options:
                activeNodes: false
                centralityType: null
                displayableTransactionType: null
                groupCtr: 1
                layout:
                  charge: 25
                  linkDistance: 130
                  linkStrength: 0.4
                  velocityDecay: 0.45
                nodeCtr: 1
                scale: 2.0766116941529233
                showLegend: true
                showLinkLabels: false
                showNodeAnnotation: true
                showNodeLabels: true
                showTimeline: false
                showTransactionDetails: false
                showTransactionLinks: false
                toolsPane:
                  activeTool: Object Inspector
                  open: true
                transactionTypeIndex: 0
                translate:
                  - -872.0999999999999
                  - -222.32031484257868
    sheetListExample:
      description: An example of a list of sheets.
      value:
        - id: 201
          type: WORKSHEET
          name: Workspace-1
          version: 2
          created: 2020-04-13T19:27:08.105Z
          createdBy: viuser
          lastModified: 2020-04-13T19:27:26.175Z
          lastModifiedBy: viuser
          tabOrder: 0
          uxState:
            commonToolPane:
              expanded: true
              width: 340
            filterPanel:
              expanded: true
              width: 200
          cells:
            - type: LIVE
              id: 301
              row: 0
              position: 0
              height: 0
              width: 0
              version: 1
              documents:
                - type: person
                  id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                  uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                - type: person
                  id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
              visualizationType: Network
              resultsPerPage: 0
              networkData:
                links: []
                nodes:
                  person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                    id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    transitionStart:
                      x: 667
                      y: 206.5
                    type: person
                    typeLabel: Person
                    x: 711.99394815911
                    y: 220.234232742122
                  person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                    id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                    transitionStart:
                      x: 339.81315560960843
                      y: 106.62745147130762
                    type: person
                    typeLabel: Person
                    x: 621.6305200034983
                    y: 192.65113758282533
                numNodes: 2
                options:
                  activeNodes: false
                  centralityType: null
                  displayableTransactionType: null
                  groupCtr: 1
                  layout:
                    charge: 25
                    linkDistance: 130
                    linkStrength: 0.4
                    velocityDecay: 0.45
                  nodeCtr: 1
                  scale: 2.0766116941529233
                  showLegend: true
                  showLinkLabels: false
                  showNodeAnnotation: true
                  showNodeLabels: true
                  showTimeline: false
                  showTransactionDetails: false
                  showTransactionLinks: false
                  toolsPane:
                    activeTool: Object Inspector
                    open: true
                  transactionTypeIndex: 0
                  translate:
                    - -872.0999999999999
                    - -222.32031484257868
        - id: 305
          type: WORKSHEET
          name: Workspace-2
          version: 2
          created: 2020-05-13T19:27:08.105Z
          createdBy: viuser
          lastModified: 2020-05-13T19:27:26.175Z
          lastModifiedBy: viuser
          tabOrder: 0
          uxState:
            commonToolPane:
              expanded: true
              width: 340
            filterPanel:
              expanded: true
              width: 200
          cells:
            - type: LIVE
              id: 401
              row: 0
              position: 0
              height: 0
              width: 0
              version: 1
              documents:
                - type: person
                  id: 2f21e644-089a-47d8-a503-bbdd4d8dac3d
                  uniqueId: person#2f21e644-089a-47d8-a503-bbdd4d8dac3d
                - type: person
                  id: ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                  uniqueId: person#ba0f8afd-b6e0-4763-91a8-9c6810d0156b
              visualizationType: Network
              resultsPerPage: 0
              networkData:
                links: []
                nodes:
                  person~2f21e644-089a-47d8-a503-bbdd4d8dac3d:
                    id: person~2f21e644-089a-47d8-a503-bbdd4d8dac3d
                    transitionStart:
                      x: 667
                      y: 206.5
                    type: person
                    typeLabel: Person
                    x: 711.99394815911
                    y: 220.234232742122
                  person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b:
                    id: person~ba0f8afd-b6e0-4763-91a8-9c6810d0156b
                    transitionStart:
                      x: 339.81315560960843
                      y: 106.62745147130762
                    type: person
                    typeLabel: Person
                    x: 621.6305200034983
                    y: 192.65113758282533
                numNodes: 2
                options:
                  activeNodes: false
                  centralityType: null
                  displayableTransactionType: null
                  groupCtr: 1
                  layout:
                    charge: 25
                    linkDistance: 130
                    linkStrength: 0.4
                    velocityDecay: 0.45
                  nodeCtr: 1
                  scale: 2.0766116941529233
                  showLegend: true
                  showLinkLabels: false
                  showNodeAnnotation: true
                  showNodeLabels: true
                  showTimeline: false
                  showTransactionDetails: false
                  showTransactionLinks: false
                  toolsPane:
                    activeTool: Object Inspector
                    open: true
                  transactionTypeIndex: 0
                  translate:
                    - -872.0999999999999
                    - -222.32031484257868
    sheetCopySelectionExample:
      description: An example of a sheet copy selection.
      value:
        objectTypeName: report
        objectId: id_500
        sheetIds:
          - 67
    jsonPatchExample:
      description: Example of a JSON Patch object.
      value:
        - op: add
          path: /foo
          value: bar
        - op: replace
          path: /foo
          value: baz
        - op: test
          path: /foo
          value: baz
        - op: remove
          path: /foo
        - op: copy
          from: /foo
          path: /bar
        - op: move
          from: /foo
          path: /bar
    iconExample:
      description: Example of an Icon object.
      value:
        - id: 1007
          name: Address16Brown
          imageType: SVG
          imageLocation: /svi-datahub/icons/Address16Brown/image
          solutionName: sas_visual_investigator_default
          solutionLabel: SAS Visual Investigator
          version: 1
    generalIndexingExample:
      description: The general format for an indexing job request or response
      value:
        version: 0
        id: string
        name: string
        description: string
        tags:
          - string
        status: pending
        message: string
        startedAt: 2023-08-08T10:33:54.614000Z
        endedAt: 2023-08-08T10:33:54.614000Z
        parameters:
          additionalProp1: string
          additionalProp2: string
          additionalProp3: string
        tasks:
          - version: 0
            id: string
            name: string
            description: string
            tags:
              - string
            status: pending
            message: string
            startedAt: 2023-08-08T10:33:54.614000Z
            endedAt: 2023-08-08T10:33:54.614000Z
            parameters:
              additionalProp1: string
              additionalProp2: string
              additionalProp3: string
            subTasks:
              - string
    fullIndexExample:
      description: A full indexing job reindexing all entities
      value:
        version: 1
        parameters:
          type: SEARCH_INDEX_LOADER
    incrementalIndexExample:
      description: An incremental indexing job for a single entity, relationship and transaction
      value:
        version: 1
        parameters:
          type: SEARCH_INDEX_LOADER
          filters:
            - type: incrementalLoad
              startTime: 2023-08-08T10:33:54.614000Z
        tasks:
          - version: 1
            parameters:
              type: LOAD_DOCUMENT
              name: entity
          - version: 1
            parameters:
              type: LOAD_LINK
              name: relationship
              fromObjectName: from_entity
          - version: 1
            parameters:
              type: LOAD_TRANSACTION
              name: transaction
    bulkIndexNoScopingExample:
      description: >
        A bulk index job including the indexAssociatedObjects parameter. This parameter, when set to false, will remove scoping and therefore only index  the data objects in the tasks. This parameter is set to true by default and does not apply on full and non-entity index jobs.
      value:
        version: 1
        parameters:
          type: SEARCH_INDEX_LOADER
          indexAssociatedObjects: false
        tasks:
          - version: 1
            parameters:
              type: LOAD_DOCUMENT
              name: entity
          - version: 1
            parameters:
              type: LOAD_LINK
              name: relationship
              fromObjectName: from_entity
          - version: 1
            parameters:
              type: LOAD_TRANSACTION
              name: transaction
    nodeDecoration:
      description: Example of a Node Decoration object.
      value:
        label: Officer Smith
        icons:
          - field: f1
            position: p1
          - field: f2
            position: p2
    referenceListExample:
      description: Example of a Reference List object.
      value:
        id: 100606
        createdBy: sasboot
        createdAt: 2023-06-23T20:46:52.571Z
        lastUpdatedBy: sasboot
        lastUpdatedAt: 2023-06-23T20:46:52.571Z
        label: Dispresn Insurance Domain
        localizedLabels:
          - id: 101663
            createdBy: sasboot
            createdAt: 2023-06-23T20:46:52.571Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:46:52.571Z
            label: Dispresn Insurance Domain
            version: 0
            localeCd: en-US
        name: DispResn_insurance_domain
        archived: false
        maxCodeLength: 20
        alphabeticalSort: false
        hierarchyLevel: 0
        referenceListType: LIST
        usedByField: false
        solutionName: sas_visual_investigator_default
        solutionLabel: SAS Visual Investigator
    referenceListSummaryResourceCollectionExample:
      description: Example of a Resource Collection that contains Reference List Summary objects.
      value:
        links:
          - method: GET
            rel: collection
            href: /svi-datahub/admin/lists
            uri: /svi-datahub/admin/lists
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.datahub.referencelist.summary
          - method: POST
            rel: create
            href: /svi-datahub/admin/lists
            uri: /svi-datahub/admin/lists
            type: application/json
            responseType: application/json
        name: reference list
        accept: application/vnd.sas.datahub.referencelist.summary
        start: 0
        count: 9
        items:
          - version: 2
            id: 100604
            name: AlertResolutionCodes
            label: Alert Resolution Codes
            maxCodeLength: 20
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=AlertResolutionCodes
                uri: /svi-datahub/admin/lists/?name=AlertResolutionCodes
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100604
                uri: /svi-datahub/admin/lists/100604
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=AlertResolutionCodes
                uri: /svi-datahub/admin/lists/?name=AlertResolutionCodes
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100600
            name: AlertStatusId
            label: Alert Status
            maxCodeLength: 36
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=AlertStatusId
                uri: /svi-datahub/admin/lists/?name=AlertStatusId
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100600
                uri: /svi-datahub/admin/lists/100600
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=AlertStatusId
                uri: /svi-datahub/admin/lists/?name=AlertStatusId
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100602
            name: AlertActionType
            label: Alert action type
            maxCodeLength: 20
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=AlertActionType
                uri: /svi-datahub/admin/lists/?name=AlertActionType
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100602
                uri: /svi-datahub/admin/lists/100602
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=AlertActionType
                uri: /svi-datahub/admin/lists/?name=AlertActionType
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100601
            name: AlertActionServiceType
            label: Alert service type
            maxCodeLength: 20
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=AlertActionServiceType
                uri: /svi-datahub/admin/lists/?name=AlertActionServiceType
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100601
                uri: /svi-datahub/admin/lists/100601
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=AlertActionServiceType
                uri: /svi-datahub/admin/lists/?name=AlertActionServiceType
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100603
            name: AlertTypes
            label: AlertTypes
            maxCodeLength: 20
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=AlertTypes
                uri: /svi-datahub/admin/lists/?name=AlertTypes
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100603
                uri: /svi-datahub/admin/lists/100603
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=AlertTypes
                uri: /svi-datahub/admin/lists/?name=AlertTypes
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100606
            name: DispResn_insurance_domain
            label: Dispresn Insurance Domain
            maxCodeLength: 20
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=DispResn_insurance_domain
                uri: /svi-datahub/admin/lists/?name=DispResn_insurance_domain
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100606
                uri: /svi-datahub/admin/lists/100606
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=DispResn_insurance_domain
                uri: /svi-datahub/admin/lists/?name=DispResn_insurance_domain
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100605
            name: DispResn_svidomain
            label: Dispresn Svidomain
            maxCodeLength: 20
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=DispResn_svidomain
                uri: /svi-datahub/admin/lists/?name=DispResn_svidomain
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100605
                uri: /svi-datahub/admin/lists/100605
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=DispResn_svidomain
                uri: /svi-datahub/admin/lists/?name=DispResn_svidomain
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100607
            name: Gender
            label: Gender
            maxCodeLength: 10
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=Gender
                uri: /svi-datahub/admin/lists/?name=Gender
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100607
                uri: /svi-datahub/admin/lists/100607
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=Gender
                uri: /svi-datahub/admin/lists/?name=Gender
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
          - version: 2
            id: 100608
            name: status
            label: Status
            maxCodeLength: 5
            archived: false
            links:
              - method: GET
                rel: self
                href: /svi-datahub/admin/lists/?name=status
                uri: /svi-datahub/admin/lists/?name=status
                responseType: application/json
              - method: PUT
                rel: update
                href: /svi-datahub/admin/lists/100608
                uri: /svi-datahub/admin/lists/100608
                type: application/json
                responseType: application/json
              - method: DELETE
                rel: delete
                href: /svi-datahub/admin/lists/?name=status
                uri: /svi-datahub/admin/lists/?name=status
            referenceListType: LIST
            hierarchyLevel: 0
            solutionName: sas_visual_investigator_default
            solutionLabel: SAS Visual Investigator
        limit: 10
        version: 2
    relationshipLinkExample:
      description: Example of a Relationship Link object.
      value:
        relationshipTypeName: witnessed_by
        relationshipTypeVersion: 1
        relationshipTypeLabel: Witnessed by
        id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
        "@type": DocumentLink
        createdAt: 2015-10-01T18:30:03.656Z
        lastUpdatedAt: 2015-10-01T18:30:03.656Z
        displayLabel: Witnessed by
        fromObjectTypeName: intel_report
        fromObjectTypeVersion: 3
        fromObjectId: uuid_502
        fromObjectDisplayLabel: John Smith
        toObjectTypeName: person
        toObjectTypeVersion: 6
        toObjectId: uuid_102
        toObjectDisplayLabel: John Smith
        fieldValues:
          auto_generated_sk: e5343e0e-3d68-11e8-b467-0ed5f89f718b
          created_at_dttm: 2015-10-01T18:30:03.656Z
          created_by_user_id: unit_test
          intelReportId: uuid_502
          last_updated_at_dttm: 2015-10-01T18:30:03.656Z
          last_updated_by_user_id: unit_test
          personId: uuid_102
          version: 1
        qualifiedTypeName: intel_report__witnessed_by
        restrictedFields:
          ssn:
            masked:
              currentUserIsAuthorizedToReveal: true
    maskedRelationshipLinkExample:
      description: Example of a Masked Relationship Link object.
      value:
        relationshipTypeName: witnessed_by
        relationshipTypeVersion: 1
        relationshipTypeLabel: Witnessed by
        id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
        "@type": DocumentLink
        createdAt: 2015-10-01T18:30:03.656Z
        lastUpdatedAt: 2015-10-01T18:30:03.656Z
        displayLabel: Witnessed by
        fromObjectTypeName: intel_report
        fromObjectTypeVersion: 3
        fromObjectId: uuid_502
        fromObjectDisplayLabel: John Smith
        toObjectTypeName: person
        toObjectTypeVersion: 6
        toObjectId: uuid_102
        toObjectDisplayLabel: John Smith
        fieldValues:
          auto_generated_sk: e5343e0e-3d68-11e8-b467-0ed5f89f718b
          created_at_dttm: 2015-10-01T18:30:03.656Z
          created_by_user_id: unit_test
          intelReportId: uuid_502
          ssn: •••••••••
          last_updated_at_dttm: 2015-10-01T18:30:03.656Z
          last_updated_by_user_id: unit_test
          personId: uuid_102
          version: 1
        qualifiedTypeName: intel_report__witnessed_by
        restrictedFields:
          ssn:
            masked:
              currentUserIsAuthorizedToReveal: true
    relationshipLinkResourceCollectionExample:
      description: Example of a Resource Collection that contains Relationship Link objects.
      value:
        links: []
        name: documentLinks
        items:
          - relationshipTypeName: witnessed_by
            relationshipTypeVersion: 1
            relationshipTypeLabel: Witnessed by
            id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            "@type": DocumentLink
            createdAt: 2015-10-01T18:30:03.656Z
            lastUpdatedAt: 2015-10-01T18:30:03.656Z
            displayLabel: Witnessed by
            fromObjectTypeName: intel_report
            fromObjectTypeVersion: 3
            fromObjectId: uuid_502
            fromObjectDisplayLabel: John Smith
            toObjectTypeName: person
            toObjectTypeVersion: 6
            toObjectId: uuid_102
            toObjectDisplayLabel: John Smith
            fieldValues:
              auto_generated_sk: e5343e0e-3d68-11e8-b467-0ed5f89f718b
              created_at_dttm: 2015-10-01T18:30:03.656Z
              created_by_user_id: unit_test
              intelReportId: uuid_502
              last_updated_at_dttm: 2015-10-01T18:30:03.656Z
              last_updated_by_user_id: unit_test
              personId: uuid_102
              version: 1
            qualifiedTypeName: intel_report__witnessed_by
            restrictedFields:
              ssn:
                masked:
                  currentUserIsAuthorizedToReveal: true
        version: 2
    maskedRelationshipLinkResourceCollectionExample:
      description: Example of a Resource Collection that contains Masked Relationship Link objects.
      value:
        links: []
        name: documentLinks
        items:
          - relationshipTypeName: witnessed_by
            relationshipTypeVersion: 1
            relationshipTypeLabel: Witnessed by
            id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            "@type": DocumentLink
            createdAt: 2015-10-01T18:30:03.656Z
            lastUpdatedAt: 2015-10-01T18:30:03.656Z
            displayLabel: Witnessed by
            fromObjectTypeName: intel_report
            fromObjectTypeVersion: 3
            fromObjectId: uuid_502
            fromObjectDisplayLabel: John Smith
            toObjectTypeName: person
            toObjectTypeVersion: 6
            toObjectId: uuid_102
            toObjectDisplayLabel: John Smith
            fieldValues:
              auto_generated_sk: e5343e0e-3d68-11e8-b467-0ed5f89f718b
              created_at_dttm: 2015-10-01T18:30:03.656Z
              created_by_user_id: unit_test
              intelReportId: uuid_502
              last_updated_at_dttm: 2015-10-01T18:30:03.656Z
              last_updated_by_user_id: unit_test
              personId: uuid_102
              ssn: •••••••••
              version: 1
            qualifiedTypeName: intel_report__witnessed_by
            restrictedFields:
              ssn:
                masked:
                  currentUserIsAuthorizedToReveal: true
        version: 2
    relationshipTypeExample:
      description: Example of a Relationship Type object.
      value:
        id: 101321
        createdBy: sasboot
        createdAt: 2023-06-23T20:47:08.039Z
        lastUpdatedBy: sasboot
        lastUpdatedAt: 2023-06-23T20:47:30.024Z
        label: Reported by
        localizedLabels:
          - id: 103196
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.042Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:08.042Z
            label: Reported by
            version: 0
            localeCd: en-US
        name: reported_by
        dataStoreName: DEFAULT_STORE
        dataStoreDefaultSchemaName: fdhdata
        tableName: reported_by
        systemReserved: false
        historyEnabled: false
        version: 1
        lastUpdatedAtTimeFieldName: last_updated_at_dttm
        createdAtTimeFieldName: created_at_dttm
        dataStoreAssignedTimeZone: Etc/UTC
        solutionName: sas_visual_investigator_default
        solutionLabel: SAS Visual Investigator
        historyTableName: reported_by
        lastUpdatedByUserIdFieldName: last_updated_by_user_id
        versionNumberFieldName: version
        createFlagHistoryColumnName: created_flg
        deleteFlagHistoryColumnName: archived_flg
        updateFlagHistoryColumnName: updated_flg
        reverseName: reported
        reverseLabel: Reported
        fromObjectName: intel_report
        fromObjectLabel: Intelligence Report
        toObjectName: person
        toObjectLabel: Person
        required: false
        cascadeType: NONE
        cardinality: MANY_TO_MANY
        type: LINK
        symmetric: false
        managed: true
        joinConditions:
          - type: Conditional
            leftOperand:
              type: FieldRef
              objectName: intel_report
              fieldName: id
            rightOperands:
              - type: FieldRef
                objectName: ^RELATION^
                fieldName: intelReportId
            operator: EQ
          - type: Conditional
            leftOperand:
              type: FieldRef
              objectName: ^RELATION^
              fieldName: personId
            rightOperands:
              - type: FieldRef
                objectName: person
                fieldName: id
            operator: EQ
        fields:
          - id: 101545
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.042Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.024Z
            label: Auto Generated Sk
            localizedLabels:
              - id: 103197
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.043Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.043Z
                label: Auto Generated Sk
                version: 0
                localeCd: en-US
            name: auto_generated_sk
            columnName: auto_generated_sk
            dataType: STRING
            length: 36
            required: true
            primaryKeyField: true
            unique: false
            autoGenerated: true
            systemReserved: true
            displayIndex: 0
            version: 1
            primaryKeySeqNo: 1
            readOnly: true
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
          - id: 101548
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.043Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.024Z
            label: Report Id
            localizedLabels:
              - id: 103200
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.043Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.043Z
                label: Report Id
                version: 0
                localeCd: en-US
            name: intelReportId
            columnName: intel_report_id
            dataType: STRING
            length: 36
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 1
            version: 1
            readOnly: false
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
          - id: 101551
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.044Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.025Z
            label: Person Id
            localizedLabels:
              - id: 103203
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.044Z
                label: Person Id
                version: 0
                localeCd: en-US
            name: personId
            columnName: person_id
            dataType: STRING
            length: 36
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 1
            version: 1
            readOnly: false
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
          - id: 101552
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.044Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.025Z
            label: Version
            localizedLabels:
              - id: 103204
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.044Z
                label: Version
                version: 0
                localeCd: en-US
            name: version
            columnName: version
            dataType: LONG
            required: true
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 4
            version: 1
            readOnly: true
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
          - id: 101547
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.043Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.025Z
            label: Created By User Id
            localizedLabels:
              - id: 103199
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.043Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.043Z
                label: Created By User Id
                version: 0
                localeCd: en-US
            name: created_by_user_id
            columnName: created_by_user_id
            dataType: STRING
            length: 255
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 5
            version: 1
            readOnly: true
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
          - id: 101546
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.043Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.025Z
            label: Created at Date/Time
            localizedLabels:
              - id: 103198
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.043Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.043Z
                label: Created at Date/Time
                version: 0
                localeCd: en-US
            name: created_at_dttm
            columnName: created_at_dttm
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 6
            version: 1
            readOnly: true
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
          - id: 101550
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.044Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.025Z
            label: Last Updated By User Id
            localizedLabels:
              - id: 103202
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.044Z
                label: Last Updated By User Id
                version: 0
                localeCd: en-US
            name: last_updated_by_user_id
            columnName: last_updated_by_user_id
            dataType: STRING
            length: 255
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 7
            version: 1
            readOnly: true
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
          - id: 101549
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.044Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:30.025Z
            label: Last Updated at Date/Time
            localizedLabels:
              - id: 103201
                createdBy: sasboot
                createdAt: 2023-06-23T20:47:08.044Z
                lastUpdatedBy: sasboot
                lastUpdatedAt: 2023-06-23T20:47:08.044Z
                label: Last Updated at Date/Time
                version: 0
                localeCd: en-US
            name: last_updated_at_dttm
            columnName: last_updated_at_dttm
            dataType: TIMESTAMP
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: true
            displayIndex: 8
            version: 1
            readOnly: true
            writeOnlyAtCreate: false
            indexedForSearch: false
            showTimeZone: false
            ownerName: intel_report.reported_by
            masked: false
            hidden: false
        localizedReverseLabels:
          - id: 103205
            createdBy: sasboot
            createdAt: 2023-06-23T20:47:08.044Z
            lastUpdatedBy: sasboot
            lastUpdatedAt: 2023-06-23T20:47:08.044Z
            label: Reported
            version: 0
            localeCd: en-US
        useCustomIndex: false
        color: "#c3c3c3"
        width: 1
        dashType: solid
        reindexRequired: false
        readOnly: false
        qualifiedName: intel_report__reported_by
    solutionPublishResultExample:
      description: Example of a Solution Publish Result object.
      value:
        solutionName: my_solution
        solutionLabel: My Solution
        successful: 2
        failed: 1
        results:
          - type: ENTITY_TYPE
            label: My Entity Type
            successful: 1
            failed: 0
            errors: []
          - type: PAGE_TEMPLATE
            label: My Page Template
            successful: 1
            failed: 0
            errors: []
          - type: ENTITY_TYPE
            label: Some Other Entity Type
            successful: 0
            failed: 1
            errors:
              - name: some_other_entity_type
                label: Some Other Entity Type
                message: Some error message describing the error encountered while attempting to publish Some Other Entity Type.
    transactionTypeExample:
      description: Example of a Transaction Type object.
      value:
        id: 103401
        createdBy: videmo
        createdAt: 2023-06-30T15:38:17.241Z
        lastUpdatedBy: videmo
        lastUpdatedAt: 2023-06-30T15:38:17.241Z
        label: Business Transactions
        localizedLabels:
          - id: 103618
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.246Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.246Z
            label: Business Transactions
            version: 0
            localeCd: en-US
        name: business_transactions
        dataStoreName: FINANCE_STORE
        dataStoreDefaultSchemaName: finance
        tableName: business_transactions
        systemReserved: false
        version: 0
        dataStoreAssignedTimeZone: Etc/UTC
        solutionName: sas_visual_investigator_default
        solutionLabel: SAS Visual Investigator
        fromObjectName: business_account
        toObjectName: business_customers
        fromObjJoinCondition:
          type: Conditional
          leftOperand:
            type: FieldRef
            objectName: business_account
            fieldName: primary_account_number
          rightOperands:
            - type: FieldRef
              objectName: ^RELATION^
              fieldName: primary_account_number
          operator: EQ
        toObjJoinCondition:
          type: Conditional
          leftOperand:
            type: FieldRef
            objectName: ^RELATION^
            fieldName: customer_id_number
          rightOperands:
            - type: FieldRef
              objectName: business_customers
              fieldName: customer_id_number
          operator: EQ
        fields:
          - id: 103533
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.248Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.248Z
            label: Transaction Id
            localizedLabels:
              - id: 103619
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.248Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.248Z
                label: Transaction Id
                version: 0
                localeCd: en-US
            name: transaction_id
            columnName: transaction_id
            dataType: STRING
            length: 14
            required: true
            primaryKeyField: true
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 0
            version: 0
            primaryKeySeqNo: 1
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
          - id: 103534
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.249Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.249Z
            label: Customer Id Number
            localizedLabels:
              - id: 103620
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.249Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.249Z
                label: Customer Id Number
                version: 0
                localeCd: en-US
            name: customer_id_number
            columnName: customer_id_number
            dataType: NUMERIC
            precision: 32
            scale: 0
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 1
            version: 0
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
          - id: 103535
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.249Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.249Z
            label: Primary Account Number
            localizedLabels:
              - id: 103621
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.249Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.249Z
                label: Primary Account Number
                version: 0
                localeCd: en-US
            name: primary_account_number
            columnName: primary_account_number
            dataType: NUMERIC
            precision: 32
            scale: 0
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 2
            version: 0
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
          - id: 103536
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.249Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.249Z
            label: Transaction Date
            localizedLabels:
              - id: 103622
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.249Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.249Z
                label: Transaction Date
                version: 0
                localeCd: en-US
            name: transaction_date
            columnName: transaction_date
            dataType: TIMESTAMP_WITH_TIME_ZONE
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 3
            version: 0
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
          - id: 103537
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.249Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.249Z
            label: Id
            localizedLabels:
              - id: 103623
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.249Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.249Z
                label: Id
                version: 0
                localeCd: en-US
            name: id
            columnName: id
            dataType: STRING
            length: 2
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 4
            version: 0
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
          - id: 103538
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.249Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.249Z
            label: Tran Desc
            localizedLabels:
              - id: 103624
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.249Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.249Z
                label: Tran Desc
                version: 0
                localeCd: en-US
            name: tran_desc
            columnName: tran_desc
            dataType: STRING
            length: 24
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 5
            version: 0
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
          - id: 103539
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.249Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.249Z
            label: Orig Tran Amt Cash
            localizedLabels:
              - id: 103625
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.249Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.249Z
                label: Orig Tran Amt Cash
                version: 0
                localeCd: en-US
            name: orig_tran_amt_cash
            columnName: orig_tran_amt_cash
            dataType: NUMERIC
            precision: 15
            scale: 2
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 6
            version: 0
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
          - id: 103540
            createdBy: videmo
            createdAt: 2023-06-30T15:38:17.249Z
            lastUpdatedBy: videmo
            lastUpdatedAt: 2023-06-30T15:38:17.249Z
            label: Tran Unique Id
            localizedLabels:
              - id: 103626
                createdBy: videmo
                createdAt: 2023-06-30T15:38:17.249Z
                lastUpdatedBy: videmo
                lastUpdatedAt: 2023-06-30T15:38:17.249Z
                label: Tran Unique Id
                version: 0
                localeCd: en-US
            name: tran_unique_id
            columnName: tran_unique_id
            dataType: STRING
            length: 25
            required: false
            primaryKeyField: false
            unique: false
            autoGenerated: false
            systemReserved: false
            displayIndex: 7
            version: 0
            readOnly: true
            indexedForSearch: true
            showTimeZone: false
            ownerName: business_transactions
            masked: false
        readOnly: true
        transactionDateFieldName: transaction_date
    transactionTypeArrayExample:
      description: Example of an array that contains Transaction Type objects.
      value:
        - id: 103401
          createdBy: videmo
          createdAt: 2023-06-30T15:38:17.241Z
          lastUpdatedBy: videmo
          lastUpdatedAt: 2023-06-30T15:38:17.241Z
          label: Business Transactions
          localizedLabels:
            - id: 103618
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.246Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.246Z
              label: Business Transactions
              version: 0
              localeCd: en-US
          name: business_transactions
          dataStoreName: FINANCE_STORE
          dataStoreDefaultSchemaName: finance
          tableName: business_transactions
          systemReserved: false
          version: 0
          dataStoreAssignedTimeZone: Etc/UTC
          solutionName: sas_visual_investigator_default
          solutionLabel: SAS Visual Investigator
          fromObjectName: business_account
          toObjectName: business_customers
          fromObjJoinCondition:
            type: Conditional
            leftOperand:
              type: FieldRef
              objectName: business_account
              fieldName: primary_account_number
            rightOperands:
              - type: FieldRef
                objectName: ^RELATION^
                fieldName: primary_account_number
            operator: EQ
          toObjJoinCondition:
            type: Conditional
            leftOperand:
              type: FieldRef
              objectName: ^RELATION^
              fieldName: customer_id_number
            rightOperands:
              - type: FieldRef
                objectName: business_customers
                fieldName: customer_id_number
            operator: EQ
          fields:
            - id: 103533
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.248Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.248Z
              label: Transaction Id
              localizedLabels:
                - id: 103619
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.248Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.248Z
                  label: Transaction Id
                  version: 0
                  localeCd: en-US
              name: transaction_id
              columnName: transaction_id
              dataType: STRING
              length: 14
              required: true
              primaryKeyField: true
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 0
              version: 0
              primaryKeySeqNo: 1
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
            - id: 103534
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.249Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.249Z
              label: Customer Id Number
              localizedLabels:
                - id: 103620
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.249Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.249Z
                  label: Customer Id Number
                  version: 0
                  localeCd: en-US
              name: customer_id_number
              columnName: customer_id_number
              dataType: NUMERIC
              precision: 32
              scale: 0
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 1
              version: 0
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
            - id: 103535
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.249Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.249Z
              label: Primary Account Number
              localizedLabels:
                - id: 103621
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.249Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.249Z
                  label: Primary Account Number
                  version: 0
                  localeCd: en-US
              name: primary_account_number
              columnName: primary_account_number
              dataType: NUMERIC
              precision: 32
              scale: 0
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 2
              version: 0
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
            - id: 103536
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.249Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.249Z
              label: Transaction Date
              localizedLabels:
                - id: 103622
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.249Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.249Z
                  label: Transaction Date
                  version: 0
                  localeCd: en-US
              name: transaction_date
              columnName: transaction_date
              dataType: TIMESTAMP_WITH_TIME_ZONE
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 3
              version: 0
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
            - id: 103537
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.249Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.249Z
              label: Id
              localizedLabels:
                - id: 103623
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.249Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.249Z
                  label: Id
                  version: 0
                  localeCd: en-US
              name: id
              columnName: id
              dataType: STRING
              length: 2
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 4
              version: 0
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
            - id: 103538
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.249Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.249Z
              label: Tran Desc
              localizedLabels:
                - id: 103624
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.249Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.249Z
                  label: Tran Desc
                  version: 0
                  localeCd: en-US
              name: tran_desc
              columnName: tran_desc
              dataType: STRING
              length: 24
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 5
              version: 0
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
            - id: 103539
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.249Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.249Z
              label: Orig Tran Amt Cash
              localizedLabels:
                - id: 103625
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.249Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.249Z
                  label: Orig Tran Amt Cash
                  version: 0
                  localeCd: en-US
              name: orig_tran_amt_cash
              columnName: orig_tran_amt_cash
              dataType: NUMERIC
              precision: 15
              scale: 2
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 6
              version: 0
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
            - id: 103540
              createdBy: videmo
              createdAt: 2023-06-30T15:38:17.249Z
              lastUpdatedBy: videmo
              lastUpdatedAt: 2023-06-30T15:38:17.249Z
              label: Tran Unique Id
              localizedLabels:
                - id: 103626
                  createdBy: videmo
                  createdAt: 2023-06-30T15:38:17.249Z
                  lastUpdatedBy: videmo
                  lastUpdatedAt: 2023-06-30T15:38:17.249Z
                  label: Tran Unique Id
                  version: 0
                  localeCd: en-US
              name: tran_unique_id
              columnName: tran_unique_id
              dataType: STRING
              length: 25
              required: false
              primaryKeyField: false
              unique: false
              autoGenerated: false
              systemReserved: false
              displayIndex: 7
              version: 0
              readOnly: true
              indexedForSearch: true
              showTimeZone: false
              ownerName: business_transactions
              masked: false
          readOnly: true
          transactionDateFieldName: transaction_date
    versionExample:
      description: Example of a Version object.
      value:
        typeName: person
        id: uuid_100
        version: "2"
        operation: update
        createdBy: videmo
        createdAt: 2023-06-28T19:28:42.948Z
        links:
          - method: GET
            rel: self
            href: /svi-datahub/documents/person/uuid_100/versions/2
            uri: /svi-datahub/documents/person/uuid_100/versions/2
            type: application/vnd.sas.investigate.version+json
        values:
          - name: created_at_dttm
            label: Created At
            value: 2015-10-01T18:30:03.656Z
            type: TIMESTAMP
            valueChanged: true
          - name: created_by_user_id
            label: Created By
            value: unit_test
            type: STRING
            valueChanged: true
          - name: first_name
            label: First Name
            value: John
            type: STRING
            valueChanged: true
          - name: last_name
            label: Last Name
            value: Smith
            type: STRING
            valueChanged: true
          - name: last_updated_at_dttm
            label: Last Updated At
            value: 2023-06-28T19:28:42.948Z
            type: TIMESTAMP
            valueChanged: true
          - name: last_updated_by_user_id
            label: Last Updated By
            value: videmo
            type: STRING
            valueChanged: true
          - name: id
            label: Person Id
            value: uuid_100
            type: STRING
            valueChanged: true
          - name: version
            label: Version
            value: 2
            type: LONG
            valueChanged: true
          - name: birthday
            label: Birthday
            type: TIMESTAMP
            valueChanged: false
          - name: gender
            label: Gender
            type: REFERENCE_DATA
            valueChanged: false
          - name: ps_inc
            label: Ps Inc
            type: NUMERIC
            valueChanged: false
    versionSummaryResourceCollectionExample:
      description: Example of a Resource Collection that contains Version Summary objects.
      value:
        links:
          - method: GET
            rel: collection
            href: /svi-datahub/documents/person/uuid_100/versions
            uri: /svi-datahub/documents/person/uuid_100/versions
            type: application/vnd.sas.collection
          - method: GET
            rel: next
            href: /svi-datahub/documents/person/uuid_100/versions?start=40&limit=40
            uri: /svi-datahub/documents/person/uuid_100/versions?start=40&limit=40
            type: application/vnd.sas.collection
          - method: GET
            rel: self
            href: /svi-datahub/documents/person/uuid_100/versions?start=0&limit=40
            uri: /svi-datahub/documents/person/uuid_100/versions?start=0&limit=40
            type: application/vnd.sas.collection
        name: versions
        start: 0
        count: 1
        items:
          - typeName: person
            id: uuid_100
            version: "2"
            operation: update
            createdBy: videmo
            createdAt: 2023-06-28T19:28:42.948Z
            links:
              - method: GET
                rel: self
                href: /svi-datahub/documents/person/uuid_100/versions/2
                uri: /svi-datahub/documents/person/uuid_100/versions/2
                type: application/vnd.sas.investigate.version+json
        limit: 40
        version: 2
    childVersionExample:
      description: Example of a Child Version object.
      value:
        typeName: intel_address
        id: ee0634fb-fb3c-48c8-a9e3-9233376f96d3
        version: "4"
        operation: update
        createdBy: videmo
        createdAt: 2023-06-28T20:45:01.643Z
        links:
          - method: GET
            rel: self
            href: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3
            uri: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3
            type: application/vnd.sas.investigate.childVersion+json
        parentTypeName: intel_report
        parentId: uuid_502
        parentVersion: "4"
        values:
          - name: city
            label: City
            value: some city
            type: STRING
            valueChanged: true
          - name: id
            label: Address Id
            previousVersionValue: ee0634fb-fb3c-48c8-a9e3-9233376f96d3
            value: ee0634fb-fb3c-48c8-a9e3-9233376f96d3
            type: STRING
            valueChanged: false
          - name: intel_report_id
            label: Report Id
            previousVersionValue: uuid_502
            value: uuid_502
            type: STRING
            valueChanged: false
          - name: state
            label: State
            type: STRING
            valueChanged: false
          - name: street
            label: Street
            previousVersionValue: some street
            value: some street
            type: STRING
            valueChanged: false
          - name: zip
            label: Zip code
            type: STRING
            valueChanged: false
    childVersionSummaryResourceCollectionExample:
      description: Example of a Resource Collection that contains Child Version Summary objects.
      value:
        links:
          - method: GET
            rel: collection
            href: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address
            uri: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address
            type: application/vnd.sas.collection
          - method: GET
            rel: next
            href: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=40&limit=40
            uri: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=40&limit=40
            type: application/vnd.sas.collection
          - method: GET
            rel: self
            href: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=0&limit=40
            uri: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address?start=0&limit=40
            type: application/vnd.sas.collection
        name: versions
        start: 0
        count: 1
        items:
          - typeName: intel_address
            id: ee0634fb-fb3c-48c8-a9e3-9233376f96d3
            version: "4"
            operation: update
            createdBy: videmo
            createdAt: 2023-06-28T20:45:01.643Z
            links:
              - method: GET
                rel: self
                href: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3
                uri: /svi-datahub/documents/intel_report/uuid_502/versions/4/children/intel_address/ee0634fb-fb3c-48c8-a9e3-9233376f96d3
                type: application/vnd.sas.investigate.childVersion+json
            parentTypeName: intel_report
            parentId: uuid_502
            parentVersion: "4"
        limit: 40
        version: 2
    relationshipLinkVersionExample:
      description: Example of a Relationship Link Version object.
      value:
        typeName: intel_report__witnessed_by
        id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
        version: "2"
        operation: update
        createdBy: videmo
        createdAt: 2023-06-29T22:17:51.061Z
        values:
          - name: auto_generated_sk
            label: Auto Generated Sk
            value: e5343e0e-3d68-11e8-b467-0ed5f89f718b
            type: STRING
            valueChanged: true
          - name: personId
            label: Person Id
            value: uuid_102
            type: STRING
            valueChanged: true
          - name: intelReportId
            label: Report Id
            value: uuid_502
            type: STRING
            valueChanged: true
          - name: description
            label: Description
            value: updated description
            type: STRING
            valueChanged: true
          - name: version
            label: Version
            value: 2
            type: LONG
            valueChanged: true
          - name: created_by_user_id
            label: Created By User Id
            value: unit_test
            type: STRING
            valueChanged: true
          - name: created_at_dttm
            label: Created at Date/Time
            value: 2015-10-01T18:30:03.656Z
            type: TIMESTAMP
            valueChanged: true
          - name: last_updated_by_user_id
            label: Last Updated By User Id
            value: videmo
            type: STRING
            valueChanged: true
          - name: last_updated_at_dttm
            label: Last Updated at Date/Time
            value: 2023-06-29T22:17:51.061Z
            type: TIMESTAMP
            valueChanged: true
    relationshipLinkVersionSummaryResourceCollectionExample:
      description: Example of a Resource Collection that contains Relationship Link Version Summary objects.
      value:
        links:
          - method: GET
            rel: self
            href: /svi-datahub/links/@item/versions?start=0&limit=40
            uri: /svi-datahub/links/@item/versions?start=0&limit=40
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigation.version.summary+json
          - method: GET
            rel: collection
            href: /svi-datahub/links/@item/versions
            uri: /svi-datahub/links/@item/versions
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.investigation.version.summary+json
        name: versions
        accept: application/json application/vnd.sas.collection+json
        count: 1
        items:
          - typeName: intel_report__witnessed_by
            id: witnessed_by|_|intel_report|_|person|_|e5343e0e-3d68-11e8-b467-0ed5f89f718b
            version: "2"
            operation: update
            createdBy: videmo
            createdAt: 2023-06-29T22:17:51.061Z
        version: 2
  parameters:
    relationshipLinkDelimitedId:
      in: query
      name: _id
      schema:
        type: string
      required: true
      description: >
        The ID for an individual link. A link ID uses the following format:

        `${relationshipName}|_|${fromEntityTypeName}|_|${toEntityTypeName}|_|${fromEntityId}|_|${toEntityId}`

        where `|_|` is the delimiter between link ID components.


        Link ID component details:

        * `relationshipName` - The relationship type name that defines the link.

        * `fromEntityTypeName` - The entity type name of the starting point for the link.

        * `fromEntityId` - The unique identifier of the entity that is the starting point for the link.

        * `toEntityTypeName` - The entity type name of the destination point for the link.

        * `toEntityId` - The unique identifier of the entity that is the destination point for the link.


        When submitting the request, the pipe character (`|`) must be percent-encoded as `%7C`. See below for

        an example of the pipe character properly encoded: 

        `${relationshipName}%7C_%7C${fromEntityTypeName}%7C_%7C${toEntityTypeName}%7C_%7C${fromEntityId}%7C_%7C${toEntityId}` 
