openapi: 3.0.3
info:
  title: List Data
  description: This List Data API enables users to manage lookup lists across products and solutions.
  version: "6"
  contact:
    name: SAS Developers
    url: https://developer.sas.com
    email: devex@sas.com
tags:
  - name: Root
    description: This endpoint is associated with the operations for the root resource of the List Data API.
  - name: List Definition
    description: These endpoints are associated with a list's definition.
  - name: List State and Contents
    description: These endpoints are associated with a list's state and contents.
  - name: List Revisions
    description: These endpoints are associated with a list's revisions.
  - name: List Relations
    description: This endpoint is associated with a list's relationships with other objects that are managed by the Catalog service.
  - name: Asynchronous Content Loading
    description: These endpoints are associated with the asynchronous loading of a list's contents.
  - name: Clear List Contents
    description: These endpoints are associated with clearing and removing all of a list's contents.
  - name: Update List Content State
    description: These endpoints are associated with updating the deployed state of a list's rows.
servers:
  - url: http://mock-listData.apifirst.unx.sas.com/listData
    description: Kubernetes mock server
paths:
  /:
    get:
      tags:
        - Root
      operationId: root
      summary: Get a list of top-level links
      description: Returns a list of links to the top-level collections and actions that are provided by the List Data API.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/api"
              examples:
                json:
                  $ref: "#/components/examples/api"
            application/vnd.sas.api+json:
              schema:
                $ref: "#/components/schemas/api"
              examples:
                json:
                  $ref: "#/components/examples/api"
            application/vnd.sas.api+json;version=1:
              schema:
                $ref: "#/components/schemas/api"
              examples:
                json:
                  $ref: "#/components/examples/api"
        "406":
          $ref: "#/components/responses/NotAcceptable"
        "500":
          $ref: "#/components/responses/InternalServerError"
  /lists:
    post:
      tags:
        - List Definition
      operationId: createList
      summary: Create a list
      description: >
        Creates a new list definition.


        When you create a new list, you define the properties of a new tabular data set, but the list initially has no contents. List contents are loaded and managed by using other endpoints that are available with the List Data API.


        A list's properties describe the structure, functionality, and state of a list.  A list's contents, which are the list's data, is a sub-resource of the list.


        The structure of a list represents the data that you will import as the list contents. The list data description is represented by column information objects. The column objects map information about the source data (for example, column name, data type, and position) to the list's structure.


        When you create the list's structure, you need to identify at least one column as a key. This column is used to construct a lookup key for the record, which is used to retrieve the record from the contents data store. You can create complex lookup keys by identifying more than one column as a key.


        You must add lists to a folder. A list inherits the permissions of the folder of which it is a member. The default folder '/SAS Content/Products/List Data' provides public permissions. You can move lists to different folders and manage authorizations for a folder by using SAS Environment Manager.


        A list can be immutable, which means a client has only a single opportunity to load contents.

        Once an immutable list has contents, you cannot update the list. You can only delete it.


        The state of a list can be either deployed or developing.  You cannot delete a deployed list.


        A list can have an expiry that is associated only with the list's rows. This expiry value is a UNIX timestamp, which enables consumers of list data to choose whether to ignore expired list items. No action is taken by the service once the expiry is reached.


        The 'defaultExpiry' property is the time, in seconds, after which newly added rows are considered expired. When rows are added, an expiry property is also added, which is equal to the current UNIX Epoch time plus the default expiry value. Enforcement of the expiry is left to the consumer, and no action is taken by the service when the expiration time is reached.


        You can define a list that supports storing multiple records by using the same key value.

        This means that when a client retrieves a value by using a lookup key, more than one record could be returned.

        You need to identify this type of list when you create a new list. Once created, you cannot convert this list type to a standard list type.


        Creating a list also creates the first revision of that list, which you can see by using the GET /lists/{listId}/revisions endpoint.
      parameters:
        - in: query
          name: parentFolderUri
          required: false
          description: >
            The URI for the parent folder to which a list is added. For more information about folders, see [Folders](https://developer.sas.com/rest-apis/folders).
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/listResource"
            examples:
              json:
                $ref: "#/components/examples/createListResourceRequestBody"
          application/vnd.sas.listdata.list+json:
            schema:
              $ref: "#/components/schemas/listResource"
            examples:
              json:
                $ref: "#/components/examples/createListResourceRequestBody"
          application/vnd.sas.listdata.list+json;version=1:
            schema:
              $ref: "#/components/schemas/listResourceVersionOne"
            examples:
              json:
                $ref: "#/components/examples/createListResourceVersionOneRequestBody"
      responses:
        "201":
          description: A list was created.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            If-Match:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
                format: date-time
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "415":
          $ref: "#/components/responses/UnsupportedMediaType"
        "500":
          $ref: "#/components/responses/InternalServerError"
    get:
      tags:
        - List Definition
      operationId: getLists
      summary: Get a collection of lists
      description: Returns a collection of lists.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
        - $ref: "#/components/parameters/SortByCollectionQueryParam"
        - $ref: "#/components/parameters/FolderIdQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/listResourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/listResourceCollection"
            application/json:
              schema:
                $ref: "#/components/schemas/listResourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/listResourceCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}":
    parameters:
      - $ref: "#/components/parameters/ListId"
    head:
      tags:
        - List Definition
      operationId: headersForList
      summary: Check that a list exists
      description: >
        Checks for the existence of a list.


        A successful response (for example, 200 OK) indicates that the list exists. An unsuccessful response (for example, 404 Not Found) indicates that the list does not exist.
      parameters:
        - in: header
          name: Accept
          description: The desired response type.
          example: application/json
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.listdata.list+json
              - application/vnd.sas.listdata.list+json;version=1
              - application/vnd.sas.listdata.listdetails+json
              - application/vnd.sas.listdata.listdetails.consumers+json
              - application/vnd.sas.transfer.object+json
              - application/vnd.sas.summary+json
      responses:
        "200":
          description: The request succeeded.
          headers:
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
          content:
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListsResponse"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    get:
      tags:
        - List Definition
      operationId: getList
      summary: Get a list
      description: Returns a list.
      parameters:
        - in: header
          name: Accept
          description: The desired response type.
          example: application/json
          schema:
            type: string
            enum:
              - application/json
              - application/vnd.sas.listdata.list+json
              - application/vnd.sas.listdata.list+json;version=1
              - application/vnd.sas.listdata.listdetails+json
              - application/vnd.sas.listdata.listdetails.consumers+json
              - application/vnd.sas.transfer.object+json
              - application/vnd.sas.summary+json
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/vnd.sas.listdata.details+json:
              schema:
                $ref: "#/components/schemas/listDetails"
              examples:
                json:
                  $ref: "#/components/examples/listDetails"
            application/vnd.sas.listdata.details.consumers+json:
              schema:
                $ref: "#/components/schemas/listDetailsWithConsumers"
              examples:
                json:
                  $ref: "#/components/examples/listDetailsWithConsumers"
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/summary"
              examples:
                json:
                  $ref: "#/components/examples/summary"
            application/vnd.sas.transfer.object+json:
              schema:
                $ref: "#/components/schemas/transferObject"
              examples:
                json:
                  $ref: "#/components/examples/transferObject"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    put:
      tags:
        - List Definition
      operationId: updateList
      summary: Update a list's properties
      description: >
        Updates a list's properties.


        In some situations, you cannot edit properties that are not marked

        as Read-Only.


        __Restricted Updates When a List Contains Contents__


        Once a list has contents, you cannot update the following properties:

        * 'name'

        * 'isImmutable'

        * 'columns'

        * 'ColumnInfo' objects in 'columns'
          - 'name'
          - 'dataType'
          - 'position'
          - 'isKey'
          - 'keyPosition'
          - 'dataMask'

        __Administrative Editing Privileges__


        From the list above, only the 'dataMask' property for the 'ColumnInfo' object can be modified after a list has contents. A user with privileged authorization can create, update, and delete the 'dataMask' property for the 'ColumnInfo' object.


        See the endpoint [`/lists/{listId}/privilegedEdit`](#operations-List_Definition-updatePrivileged) for more details.
      requestBody:
        content:
          application/vnd.sas.listdata.list+json:
            schema:
              $ref: "#/components/schemas/listResource"
            examples:
              json:
                $ref: "#/components/examples/listResourceRepresentation"
          application/vnd.sas.listdata.list+json;version=1:
            schema:
              $ref: "#/components/schemas/listResourceVersionOne"
            examples:
              json:
                $ref: "#/components/examples/listResourceVersionOneRepresentation"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            If-Match:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
                format: date-time
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    delete:
      tags:
        - List Definition
      operationId: deleteList
      summary: Delete a list
      description: >
        Removes a list from the system.


        When you delete a list, the list's definition and any import or purge jobs that are associated with the list are removed.


        **IMPORTANT:** Deleting a list does not remove the list's contents.  If required, you should remove the list's contents before you delete the list.

        To clear the list's contents, you must create a purge job. See the [`/lists/{listId}/purgeJobs`](#operations-Clear_List_Contents-createPurgeJob) endpoint for details.

        This two-step process for clearing and deleting a list is due to the non-deterministic

        time it could take to clear the contents of a list.


        You only can delete a list when its 'state' property is set to 'developing' and the list is not part of a relationship that is registered in the Catalog service.


        A list's deletion fails if the list has any associated import or purge jobs that are running.

        If you believe that an import or purge job is incorrectly marked as running, you can force a list to delete. Doing so does not stop import or purge jobs that are running.

        You cannot force a list to delete when the 'state' property is set to 'deployed' or the list is involved in a relationship.
      parameters:
        - in: path
          name: listId
          description: A universally unique identifier for a list.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
          required: true
          schema:
            type: string
        - in: query
          name: force
          required: false
          description: An indicator for whether to force a list deletion when associated jobs are running. A forced deletion cannot occur when the list's 'state' property is set to 'deployed' or the list is involved in a relationship.
          schema:
            type: boolean
            default: false
            example: false
      responses:
        "204":
          description: The list was deleted.
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/privilegedDelete":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
      - in: query
        name: force
        required: false
        description: An indicator for whether to force a list deletion when associated jobs are running. A forced deletion cannot occur when the list's 'state' property is set to 'deployed' or the list is involved in a relationship.
        schema:
          type: boolean
          default: false
          example: false
    delete:
      tags:
        - List Definition
      operationId: deletePrivilegedList
      summary: Delete a list (privileged)
      description: >
        Removes a list from the system.


        When you delete a list, the list's definition and any import or purge jobs that are associated with the list are removed.


        **IMPORTANT:** Deleting a list does not remove the list's contents.  If required, you should remove the list's contents before you delete the list.

        To clear the list's contents, you must create a purge job. See the [`/lists/{listId}/purgeJobs`](#operations-Clear_List_Contents-createPurgeJob) endpoint for details.

        This two-step process for clearing and deleting a list is due to the non-deterministic

        time it could take to clear the contents of a list.


        There is an exception to the two-step process for clearing and deleting a list. When you delete an immutable list ('isImmutable' is set to 'true'), the contents and list are removed in a single synchronous call.

        This is due to the restriction that you cannot create a purge job for an immutable list. It is recommended that very large lists are not immutable.


        You only can delete a list when its 'state' property is set to 'developing' and the list is not part of a relationship that is registered in the Catalog service.


        A list's deletion fails if the list has any associated import or purge jobs that are running.

        If you believe that an import or purge job is incorrectly marked as running, you can force a list to delete. Doing so does not stop import or purge jobs that are running.

        You cannot force a list to delete when the 'state' property is set to 'deployed' or the list is involved in a relationship.
      responses:
        "204":
          description: The list was deleted.
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/privilegedEdit":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    put:
      tags:
        - List Definition
      operationId: updatePrivileged
      summary: Update a list's properties (privileged)
      description: >
        Updates a list's properties by a user who has privileged authorization.


        This operation enables you to perform standard updates to a list's properties and privileged updates, such as changing the data mask on columns in the list-content records.


        In some situations, you cannot edit properties that are not marked as Read-Only.


        __Restricted Updates When a List Contains Content__


        Once a list has contents, you cannot update the following properties:

        * 'name'

        * 'isImmutable'

        * 'columns'

        * 'ColumnInfo' objects in 'columns'
          - 'name'
          - 'dataType'
          - 'position'
          - 'isKey'
          - 'keyPosition'
          - 'dataMask'

        __Administrative Editing Privileges__


        From the list above, only the 'dataMask' property for the 'ColumnInfo' object can be modified after a list has contents. A user with privileged authorization can create, update, and delete the 'dataMask' property for the 'ColumnInfo' object.


        To enable a user to have access this endpoint, an authorization rule must be created for the URI `/lists/{listId}/privilegedEdit` that allows updates.
      requestBody:
        content:
          application/vnd.sas.listdata.list+json:
            schema:
              $ref: "#/components/schemas/listResource"
            examples:
              json:
                $ref: "#/components/examples/listResourceRepresentation"
          application/vnd.sas.listdata.list+json;version=1:
            schema:
              $ref: "#/components/schemas/listResourceVersionOne"
            examples:
              json:
                $ref: "#/components/examples/listResourceVersionOneRepresentation"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            If-Match:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
                format: date-time
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/state":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
    get:
      tags:
        - List State and Contents
      operationId: getListState
      summary: Get the state of a list
      description: Returns a value of 'deployed' or 'developing' for the list's 'state' property. A deployed list cannot be deleted.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            text/plain:
              schema:
                type: string
                description: A valid value for the 'state' property, which is either 'deployed' or 'developing'.
                example: developing
              examples:
                text:
                  value: developing
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    put:
      tags:
        - List State and Contents
      operationId: updateListState
      summary: Update the state of a list
      description: Updates the list's 'state' property value as either 'deployed' or 'developing'.
      parameters:
        - in: query
          name: value
          required: true
          description: A valid value for the 'state' property, which is either 'deployed' or 'developing'. A deployed list cannot be deleted.
          example: developing
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/contents":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    head:
      tags:
        - List State and Contents
      operationId: headersForListContents
      summary: Check that a list has contents
      description: >
        Checks the existence of a list's contents.


        A successful response (for example, 200 OK) indicates that the list has contents. An unsuccessful response (for example, 404 Not Found) indicates that the list does not have contents.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    get:
      tags:
        - List State and Contents
      operationId: getListContents
      summary: Get a list's contents
      description: >
        Returns a collection of the list's contents.


        The operation supports filtering of the contents based on values for columns that are marked as key columns

        (for example, 'isKey' set to 'true'). Only the following filtering functions are supported:


        - the functions `startsWith`, `endsWith`, `contains`, and `eq`.

        - the logical function `and(e1,e2,\[,..,eN\])` for grouping filters. This function cannot be nested or specified more than once within a filter string. The logical function `or()` is not supported.

        - a single function per key column. The example `and(startWith(key1,"ABC"),endsWith(key1,"123"))` is not supported.

        - filtering is not permitted on a key column if it has a data mask.


        See [Filtering in REST APIs](https://developer.sas.com/rest-apis/listData-v6/docs/getting-started/usage-notes#filtering) for more information about filtering collections.


        If a list includes data masking for any column, the value for that column is redacted.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
            application/vnd.sas.listdata.dataset+json:
              schema:
                $ref: "#/components/schemas/listDataSet"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsListDatasetExample"
            application/vnd.sas.listdata.dataset.details+json:
              schema:
                $ref: "#/components/schemas/listDataSetDetails"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsExample"
            application/vnd.sas.listdata.dataset.details+json;version=1:
              schema:
                $ref: "#/components/schemas/listDataSetDetailsVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsVersionOneExample"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    put:
      tags:
        - List State and Contents
      operationId: updateListContents
      summary: Update a list's contents
      description: >
        Update the contents of a list synchronously via a JSON request body. An update can include the removal of list records.


        A request body to update a list's contents must contain a collection of data record objects with key-value pairs that match the column definitions.

        To insert a record, all key and data column values are required. To update a record, all key column values are required and only the data column values that are provided are updated.

        To delete a record, all key column values are required.


        The contents of the list can be edited only if the most recent revision is the deployed revision.
      parameters:
        - in: path
          name: listId
          required: true
          description: A universally unique identifier for a list.
          schema:
            type: string
        - in: query
          name: op
          description: The operation type for the PUT method. Supported operations are 'upsert', which updates or inserts records, and 'delete', which deletes existing records.
          schema:
            type: string
            description: The specified operation.
            default: upsert
      requestBody:
        required: false
        content:
          application/vnd.sas.collection+json:
            schema:
              $ref: "#/components/schemas/resourceCollection"
            examples:
              json:
                $ref: "#/components/examples/addListContentEntriesRequestBody"
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/addListContentEntriesRequestBody"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            If-Match:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
                format: date-time
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/privilegedContents":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    get:
      tags:
        - List State and Contents
      operationId: getListPrivilegedContents
      summary: Get a list's unmasked contents
      description: >
        Returns a collection of the list's unmasked contents.


        When a list has columns with data masks, the standard method to return the list's contents is to redact the values for the masked columns. If you have Read-Only permission to this endpoint, you can return a list's contents with unmasked (non-redacted) values for the masked columns. Contact your administrator to create the appropriate authorization rule to view unmasked contents.


        This operation enables you to filter the contents based on values for columns that are marked as key columns

        (for example, 'isKey' set to 'true'). Only the following filtering functions are supported:

        - the functions `startsWith`, `endsWith`, `contains`, and `eq`.

        - the logical function `and(e1,e2,\[,..,eN\])` for grouping filters. The function `or()` is not supported.

        - a single function per key column. The example `and(startWith(key1,"ABC"),endsWith(key1,"123"))` is not supported.


        See [Filtering in REST APIs](https://developer.sas.com/rest-apis/listData-v6/docs/getting-started/usage-notes#filtering) for more information about filtering collections.
      parameters:
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
            application/vnd.sas.listdata.dataset+json:
              schema:
                $ref: "#/components/schemas/listDataSet"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsListDatasetExample"
            application/vnd.sas.listdata.dataset.details+json:
              schema:
                $ref: "#/components/schemas/listDataSetDetails"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsExample"
            application/vnd.sas.listdata.dataset.details+json;version=1:
              schema:
                $ref: "#/components/schemas/listDataSetDetailsVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsVersionOneExample"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/contents/expiry":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    put:
      tags:
        - List State and Contents
      operationId: updateListContentsExpiry
      summary: Update the expiry of a list's rows
      description: >
        Updates the expiry property of a list's rows synchronously via a JSON request body.


        A request body to update the expiry of rows in a list must contain a collection of data record objects with keys that match the column definitions.


        The expiry value of a row is represented as a UNIX timestamp, which is the number of seconds since the UNIX epoch (January 1, 1970).


        If the value for the 'exactExpiry' property is 'true', the value provided is taken to be a UNIX timestamp and is used directly. Otherwise, it is used as an offset, which is the number of seconds after now that the rows should expire.
      requestBody:
        required: false
        content:
          application/vnd.sas.collection+json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/updateListContentExpiry"
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/updateListContentExpiry"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            ETag:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
                format: date-time
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/contents/expiry/deletions":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    post:
      tags:
        - List State and Contents
      operationId: deleteListContentsExpiry
      summary: Delete the expiry of a list's rows
      description: >
        Deletes the expiry property of a list's rows synchronously via a JSON request body.


        A request body to delete the expiry of rows in a list must contain a collection of data record objects with keys that match the column definitions.
      requestBody:
        required: false
        content:
          application/vnd.sas.collection+json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/deleteListContentExpiry"
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/deleteListContentExpiry"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            ETag:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
                format: date-time
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/contents/export":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    get:
      tags:
        - List State and Contents
      operationId: exportListContents
      summary: Export a list's contents to a CSV file
      description: >
        Returns the contents of a list to a CSV file.


        The structure of the exported CSV file should match the expected structure for the imported list content.

         - The column names appear at the top of the file, in the order that is specified in the list resource description.
         - Each row of the list contents corresponds to a row in the CSV file beneath the column names.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            ETag:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
                format: date-time
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/importJobs":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    post:
      tags:
        - Asynchronous Content Loading
      operationId: createImportJob
      summary: Create an import job
      description: >
        Updates a list's contents asynchronously by uploading a file.


        You can create a new import job only if no other import jobs or purge jobs are running on the list.


        The Character Separated Values (CSV) data file must contain a header record as the first row. The header record must contain the name of the columns.

        An import job uploads the contents of a data file if the file that contains a header includes matching names and positions as defined in the list's 'columns' property.

        A column value can be empty if the column value is not a part of a key value or the column data type is not a number.


        The List Data API verifies that all the records are in the required format before it loads them into the data store.  Because a large number of records

        could contain errors, there is a threshold of the number of errors that can occur before the validation is terminated.

        No records are loaded if there are validation errors.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                dataFile:
                  type: string
                  description: A file that contains records (data) that are added to a list's contents.
                  format: binary
                  example: data.csv
                delimiter:
                  type: string
                  default: ","
                  example: ","
                  description: The character delimiter that is used in the CSV data file. The character delimiter is typically a comma. Newline characters (for example, \n or \r) cannot be used as a delimiter.
      responses:
        "202":
          description: The request has been accepted for processing, but the processing has not been completed.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.importjob+json:
              schema:
                $ref: "#/components/schemas/importJob"
              examples:
                json:
                  $ref: "#/components/examples/importJobExample"
            application/json:
              schema:
                $ref: "#/components/schemas/importJob"
              examples:
                json:
                  $ref: "#/components/examples/importJobExample"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
    get:
      tags:
        - Asynchronous Content Loading
      operationId: getImportJobs
      summary: Get a collection of import jobs
      description: Returns a collection of import jobs for a specific list.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
        - $ref: "#/components/parameters/SortByCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getImportJobsResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getImportJobsResponse"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/importJobs/{jobId}":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
      - in: path
        name: jobId
        description: A universally unique identifier for an import job.
        required: true
        schema:
          type: string
    get:
      tags:
        - Asynchronous Content Loading
      operationId: getImportJob
      summary: Get an import job
      description: >
        Gets an import job resource to asynchronously load a list's contents.


        When an import job is in progress, its state is 'running'. When an import job completes, its state is 'completed' or 'failed'.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.importjob+json:
              schema:
                $ref: "#/components/schemas/importJob"
              examples:
                json:
                  $ref: "#/components/examples/importJobExample"
            application/json:
              schema:
                $ref: "#/components/schemas/importJob"
              examples:
                json:
                  $ref: "#/components/examples/importJobExample"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/purgeJobs":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a purge job.
        required: true
        schema:
          type: string
    post:
      tags:
        - Clear List Contents
      operationId: createPurgeJob
      summary: Create a purge job
      description: >
        Removes the list's contents.


        A purge job does not remove the list or associated jobs. The list's contents are empty if the purge job is successful.


        You can create a new purge job only if there are no other import jobs or purge jobs running on that list.


        You cannot create a purge job for an immutable list. To reload an immutable list, you must delete the list and then re-create it.
      responses:
        "202":
          description: The request has been accepted for processing, but the processing has not been completed.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.purgejob+json:
              schema:
                $ref: "#/components/schemas/purgeJob"
              examples:
                json:
                  $ref: "#/components/examples/purgeJobExample"
            application/json:
              schema:
                $ref: "#/components/schemas/purgeJob"
              examples:
                json:
                  $ref: "#/components/examples/purgeJobExample"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
    get:
      tags:
        - Clear List Contents
      operationId: getPurgeJobs
      summary: Get a collection of purge jobs
      description: Returns a collection of purge jobs for a specific list. A purge job removes the list's contents.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
        - $ref: "#/components/parameters/SortByCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getPurgeJobsResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getImportJobsResponse"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/purgeJobs/{jobId}":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
      - in: path
        name: jobId
        description: A universally unique identifier for a purge job.
        required: true
        schema:
          type: string
    get:
      tags:
        - Clear List Contents
      operationId: getPurgeJob
      summary: Get a purge job
      description: Returns a purge job for a specific list. A purge job removes the list's contents.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.purgejob+json:
              schema:
                $ref: "#/components/schemas/purgeJob"
              examples:
                json:
                  $ref: "#/components/examples/purgeJobExample"
            application/json:
              schema:
                $ref: "#/components/schemas/purgeJob"
              examples:
                json:
                  $ref: "#/components/examples/purgeJobExample"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/contents/state":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
    put:
      tags:
        - Update List Content State
      operationId: updateListContentState
      summary: Update the state of a list's rows
      description: >
        Updates the state of a list's rows synchronously via a JSON request body.


        Optionally, you can update the expiry of the selected rows. When rows are deployed using this parameter, their expiries are also updated, even if the rows were already deployed.


        The expiry value of a row is represented as a UNIX timestamp, which is the number of seconds since the UNIX epoch (January 1, 1970).


        If the value for the 'exactExpiry' property is 'true', the value provided is taken to be a UNIX timestamp and is used directly. Otherwise, it is used as an offset, which is the number of seconds after now that the rows should expire.


        A request body to update the state of rows in a list must contain a collection of data record objects with keys that match the column definitions.


        The desired state (developing or deployed) must be specified in the body of the request.
      requestBody:
        required: false
        content:
          application/vnd.sas.collection+json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/updateListContentState"
          application/vnd.sas.listdata.dataset.details+json:
            schema:
              $ref: "#/components/schemas/listDataSetDetails"
            examples:
              json:
                $ref: "#/components/examples/updateListContentState"
          application/vnd.sas.listdata.dataset.details+json;version=1:
            schema:
              $ref: "#/components/schemas/listDataSetDetailsVersionOne"
            examples:
              json:
                $ref: "#/components/examples/updateListContentVersionOneState"
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/updateListContentState"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
            Location:
              description: The URI of the list.
              schema:
                type: string
                format: uri
            ETag:
              description: An ETag in the format of W/"_the-last-updated-timestamp-in-UNIX-nanosecond-time_".
              schema:
                type: string
          content:
            application/vnd.sas.listdata.list+json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
            application/vnd.sas.listdata.list+json;version=1:
              schema:
                $ref: "#/components/schemas/listResourceVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/listResourceVersionOneRepresentation"
            application/json:
              schema:
                $ref: "#/components/schemas/listResource"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/updateContentStateJobs":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a purge job.
        required: true
        schema:
          type: string
    get:
      tags:
        - Update List Content State
      operationId: getUpdateContentStateJobs
      summary: Get a collection of update content state jobs
      description: Returns a collection of update content state jobs for a specific list. An update content state job updates the state for each row in a list.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
        - $ref: "#/components/parameters/SortByCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.updatecontentstatejob+json:
              schema:
                $ref: "#/components/schemas/updateContentStateJob"
              examples:
                json:
                  $ref: "#/components/examples/getUpdateContentStateJobsResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getUpdateContentStateJobsResponse"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    post:
      tags:
        - Update List Content State
      operationId: createUpdateContentStateJob
      summary: Create an update content state job
      description: >
        Updates the state for every row in a list.


        Optionally, you can update the expiry of the selected rows when they are being deployed, if they were previously in developing. If an expiry is listed but the action is to move to developing, no expiries are changed.


        The expiry value of a row is represented as a UNIX timestamp, which is the number of seconds since the UNIX epoch (January 1, 1970).


        If the value for the 'exactExpiry' property is 'true', the value provided is taken to be a UNIX timestamp and is used directly. Otherwise, it is used as an offset, which is the number of seconds after now that the rows should expire.


        You can create a new update content state job only if there are no other jobs running on that list.


        You cannot create an update content state job for an immutable list.


        You must specify in the request body whether the rows are to be moved to deployed or moved to developing.
      requestBody:
        required: false
        content:
          application/vnd.sas.listdata.updatecontentstatejob+json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/updateListContentStateJob"
          application/vnd.sas.listdata.updatecontentstatejob+json;version=1:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/updateListContentStateJobVersionOne"
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
            examples:
              json:
                $ref: "#/components/examples/updateListContentStateJob"
      responses:
        "202":
          description: The request has been accepted for processing, but the processing has not been completed.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.updatecontentstatejob+json:
              schema:
                $ref: "#/components/schemas/updateContentStateJob"
              examples:
                json:
                  $ref: "#/components/examples/updateContentStateJobExample"
            application/json:
              schema:
                $ref: "#/components/schemas/updateContentStateJob"
              examples:
                json:
                  $ref: "#/components/examples/updateContentStateJobExample"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/updateContentStateJobs/{jobId}":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        required: true
        schema:
          type: string
      - in: path
        name: jobId
        description: A universally unique identifier for an update content state job.
        required: true
        schema:
          type: string
    get:
      tags:
        - Update List Content State
      operationId: getUpdateListContentStateJob
      summary: Get an update content state job
      description: Returns an update content state job for a specific list. An update content state job updates the state of every row in a list.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.updatecontentstatejob+json:
              schema:
                $ref: "#/components/schemas/updateContentStateJob"
              examples:
                json:
                  $ref: "#/components/examples/updateContentStateJobExample"
            application/json:
              schema:
                $ref: "#/components/schemas/updateContentStateJob"
              examples:
                json:
                  $ref: "#/components/examples/updateContentStateJobExample"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/revisions":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
    post:
      tags:
        - List Revisions
      operationId: createListRevision
      summary: Create a list revision
      description: >
        Creates a new revision for a list.


        Creating a new revision makes the previous revision immutable, meaning that its contents cannot be changed.


        If the previous revision was the deployed revision, the new revision becomes the deployed revision because it inherits its contents from the previous revision.


        If the list predates the addition of list revisions, revision 1 is created the first time this endpoint is called.
      responses:
        "201":
          description: A revision was created.
          content:
            application/vnd.sas.listdata.list.revision+json:
              schema:
                $ref: "#/components/schemas/listResourceRevision"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRevisionRepresentation"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
    get:
      tags:
        - List Revisions
      operationId: getListRevisions
      summary: Get a collection of list revisions
      description: Returns a collection of revisions for the specified list.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
        - $ref: "#/components/parameters/SortByCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/listResourceRevisionCollection"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRevisionCollection"
            application/json:
              schema:
                $ref: "#/components/schemas/listResourceRevisionCollection"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRevisionCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/revisions/{revisionId}":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
      - in: path
        name: revisionId
        description: A universally unique identifier for a list revision.
        example: 9b967566-6dcb-427f-93b3-8b9be1a945c9
        required: true
        schema:
          type: string
    get:
      tags:
        - List Revisions
      operationId: getListRevision
      summary: Get a list revision
      description: Returns a list revision.
      responses:
        "200":
          description: The request succeeded.
          content:
            application/vnd.sas.listdata.list.revision+json:
              schema:
                $ref: "#/components/schemas/listResourceRevision"
              examples:
                json:
                  $ref: "#/components/examples/listResourceRevisionRepresentation"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/revisions/contents":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
      - in: query
        name: revision
        description: The number of a revision in the specified list. At least two revisions should be specified.
        example: 2
        required: true
        schema:
          type: number
      - in: query
        name: diffs
        description: An indicator for whether to highlight only the differences.
        example: true
        required: true
        schema:
          type: boolean
    get:
      tags:
        - List Revisions
      operationId: getListRevisionsContent
      summary: Get a revision's contents
      description: >
        Returns a collection of the contents of one or more revisions of a list.


        If the `application/vnd.sas.listdata.dataset.comparison+json` media type is used, more than one revision can be specified by using 'revision' as the query parameter. The response is a comparison of these revisions' contents.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/RevisionNumberQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.dataset.comparison+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsComparisonSasCollection"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
            application/vnd.sas.listdata.dataset+json:
              schema:
                $ref: "#/components/schemas/listDataSet"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsListDatasetExample"
            application/vnd.sas.listdata.dataset.details+json:
              schema:
                $ref: "#/components/schemas/listDataSetDetails"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsExample"
            application/vnd.sas.listdata.dataset.details+json;version=1:
              schema:
                $ref: "#/components/schemas/listDataSetDetailsVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsVersionOneExample"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/revisions/{revisionId}/contents":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
      - in: path
        name: revisionId
        description: A universally unique identifier for a list revision.
        example: 9b967566-6dcb-427f-93b3-8b9be1a945c9
        required: true
        schema:
          type: string
    get:
      tags:
        - List Revisions
      operationId: getListRevisionContents
      summary: Get a list revision's contents
      description: Returns a collection of the list revision's contents.
      parameters:
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
            application/vnd.sas.listdata.dataset+json:
              schema:
                $ref: "#/components/schemas/listDataSet"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsListDatasetExample"
            application/vnd.sas.listdata.dataset.details+json:
              schema:
                $ref: "#/components/schemas/listDataSetDetails"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsExample"
            application/vnd.sas.listdata.dataset.details+json;version=1:
              schema:
                $ref: "#/components/schemas/listDataSetDetailsVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsVersionOneExample"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/revisions/{revisionId}/privilegedContents":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
      - in: path
        name: revisionId
        description: A universally unique identifier for a list revision.
        example: 9b967566-6dcb-427f-93b3-8b9be1a945c9
        required: true
        schema:
          type: string
    get:
      tags:
        - List Revisions
      operationId: getListRevisionPrivilegedContents
      summary: Get a list revision's unmasked contents
      description: Returns a collection of the list revision's unmasked contents.
      parameters:
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
            application/vnd.sas.listdata.dataset+json:
              schema:
                $ref: "#/components/schemas/listDataSet"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsListDatasetExample"
            application/vnd.sas.listdata.dataset.details+json:
              schema:
                $ref: "#/components/schemas/listDataSetDetails"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsExample"
            application/vnd.sas.listdata.dataset.details+json;version=1:
              schema:
                $ref: "#/components/schemas/listDataSetDetailsVersionOne"
              examples:
                json:
                  $ref: "#/components/examples/getListContentDetailsVersionOneExample"
            application/json:
              schema:
                $ref: "#/components/schemas/resourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/getListContentsSasCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/revisions/{revisionId}/deploy":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list.
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
      - in: path
        name: revisionId
        description: A universally unique identifier for a list revision.
        example: 9b967566-6dcb-427f-93b3-8b9be1a945c9
        required: true
        schema:
          type: string
    post:
      tags:
        - List Revisions
      operationId: deployListRevision
      summary: Deploy a list revision
      description: >
        Deploys the specified revision.


        For each list, only one revision is deployed at a time.


        Deploying a revision means that the run-time consumers of list data can access the contents of the revision for the specified list.
      responses:
        "200":
          description: The request succeeded.
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/lists/{listId}/consumers":
    parameters:
      - in: path
        name: listId
        description: A universally unique identifier for a list."
        example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        required: true
        schema:
          type: string
    get:
      tags:
        - List Relations
      operationId: getListConsumers
      summary: Get list consumers
      description: Gets the consumers of a list.
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.listdata.consumers+json:
              schema:
                $ref: "#/components/schemas/listConsumerList"
              examples:
                json:
                  $ref: "#/components/examples/listResourceConsumers"
            application/json:
              schema:
                $ref: "#/components/schemas/listConsumerList"
              examples:
                json:
                  $ref: "#/components/examples/listResourceConsumers"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "500":
          $ref: "#/components/responses/InternalServerError"
  "/folders/{folderId}/lists":
    get:
      tags:
        - List Definition
      operationId: getListsFilteredByFolder
      summary: Get a collection of lists from the specified folder
      description: Returns a collection of lists from the specified folder. This collection is paginated. A maximum of 1000 lists can be displayed.
      parameters:
        - $ref: "#/components/parameters/FolderIdPathParam"
        - $ref: "#/components/parameters/StartCollectionQueryParam"
        - $ref: "#/components/parameters/LimitCollectionQueryParam"
        - $ref: "#/components/parameters/FilterCollectionQueryParam"
        - $ref: "#/components/parameters/SortByCollectionQueryParam"
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              description: The media type for the body of the request or response.
              schema:
                type: string
                format: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/listResourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/listResourceCollection"
            application/json:
              schema:
                $ref: "#/components/schemas/listResourceCollection"
              examples:
                json:
                  $ref: "#/components/examples/listResourceCollection"
        "400":
          $ref: "#/components/responses/BadRequest"
        "500":
          $ref: "#/components/responses/InternalServerError"
components:
  responses:
    BadRequest:
      description: The request was invalid.
      content:
        application/vnd.sas.error+json:
          schema:
            $ref: "#/components/schemas/errorResponse"
          examples:
            json:
              $ref: "#/components/examples/badRequestErrorExample"
    NotFound:
      description: No item exists at the requested path.
      content:
        application/vnd.sas.error+json:
          schema:
            $ref: "#/components/schemas/errorResponse"
          examples:
            json:
              $ref: "#/components/examples/notFoundErrorExample"
    Forbidden:
      description: The user did not have the necessary permissions.
      content:
        application/vnd.sas.error+json:
          schema:
            $ref: "#/components/schemas/errorResponse"
          examples:
            json:
              $ref: "#/components/examples/forbiddenErrorExample"
    Conflict:
      description: The request could not be completed due to a conflict with an existing resource.
      content:
        application/vnd.sas.error+json:
          schema:
            $ref: "#/components/schemas/errorResponse"
          examples:
            json:
              $ref: "#/components/examples/conflictErrorExample"
    InternalServerError:
      description: The request could not be fulfilled because of an unexpected server error.
      content:
        application/vnd.sas.error+json:
          schema:
            $ref: "#/components/schemas/errorResponse"
          examples:
            json:
              $ref: "#/components/examples/internalServerErrorExample"
    NotAcceptable:
      description: The specified media type is not supported.
      content:
        application/vnd.sas.error+json:
          schema:
            $ref: "#/components/schemas/errorCommon"
          examples:
            json:
              $ref: "#/components/examples/notAcceptableErrorExample"
    UnsupportedMediaType:
      description: The requested media type is not supported.
      content:
        application/vnd.sas.error+json:
          schema:
            $ref: "#/components/schemas/errorCommon"
          examples:
            json:
              $ref: "#/components/examples/unsupportedMediaTypeErrorExample"
  schemas:
    resourceCollection:
      title: Resource Collection
      description: This schema defines a paginated collection of resources.
      properties:
        name:
          type: string
          description: The name of the collection.
          readOnly: true
        start:
          type: integer
          description: The zero-based index of the first item in the collection.
          readOnly: true
          default: 0
          example: 0
        limit:
          type: integer
          default: 10
          description: The number of items that can be requested for the collection.
          readOnly: true
          example: 10
        count:
          type: integer
          description: If populated, the number of items in the collection.
          readOnly: true
          format: int64
          example: 2
        accept:
          type: string
          description: A space-delimited list of media types from which an `Accept` header might be constructed.
          readOnly: true
          example: application/json
        items:
          type: array
          description: The items on this page of the collection. Each item in this list is of a type that is listed as acceptable.
          example:
            - x: "1"
              y: "1"
            - x: "2"
              y: "2"
          items:
            properties:
              object:
                type: object
                description: A resource entry.
        links:
          type: array
          description: The links that apply to the collection.
          readOnly: true
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the collection representation. This representation is version 2.
          readOnly: true
    listResourceVersionOne:
      title: List Properties Version One
      description: This schema defines the list version one properties.
      type: object
      required:
        - name
        - state
        - columns
      properties:
        id:
          type: string
          description: A unique identifier for the list.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
          readOnly: true
        version:
          type: integer
          readOnly: true
          description: The version number for this media type's schema.
          example: 1
        name:
          type: string
          description: The name of the list. The list name is not case-sensitive, must be unique within the system, and cannot be updated once it is created.
          example: list-a
          readOnly: false
        state:
          type: string
          description: An indicator for whether the list can be used by deployed artifacts. A list can be either deployed or developing. Only developing lists can be deleted.
          default: developing
          example: developing
        description:
          type: string
          description: A textual description of the list.
          nullable: true
          default: ""
        createdBy:
          type: string
          readOnly: true
          description: The name of the user that created the list.
          example: userA
        modifiedBy:
          type: string
          readOnly: true
          description: The name of the user that made the last update to the list.
          example: user2
        creationTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the list was created, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-02-25T20:35:44Z
        modifiedTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the list was last modified, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-02-25T20:35:44Z
        isImmutable:
          type: boolean
          description: An indicator for whether the list's contents can be altered after it is imported.
          default: false
        columns:
          type: array
          readOnly: false
          description: >
            Columns are a collection of 'ColumnInfo' objects that define the structure of the list's content. 'ColumnInfo' objects map

            properties such as name, position, and data type to the imported source data (for example, a CSV file). Columns also mark which values are used to construct lookup keys. Key properties are flagged as such and are assigned a position for where their values are placed

            in the lookup key.


            The number of columns in the data source's header must match the number of columns (that is, the number of 'ColumnInfo' objects) that are defined for a list. The value for the 'ColumnInfo' position's object must be a sequential set of positions such as 1..N,

            where N is the number of columns in the header. For example, if the input data has a 3-column header, there must be a 'ColumnInfo' object for each position 1, 2, and 3.
          items:
            $ref: "#/components/schemas/columnInfo"
          minItems: 1
          uniqueItems: true
        defaultExpiry:
          type: number
          readOnly: false
          description: The value that sets the expiration of newly added rows.
          example: 10000
        label:
          type: string
          nullable: true
          description: A short textual label, which is appropriate for client UIs.
        links:
          type: array
          readOnly: true
          description: The reference links that apply to this object.
          items:
            $ref: "#/components/schemas/link"
    listResource:
      title: List Properties
      description: This schema defines the list properties.
      type: object
      required:
        - name
        - state
        - columns
      properties:
        id:
          type: string
          description: A unique identifier for the list.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
          readOnly: true
        version:
          type: integer
          readOnly: true
          description: The version number for this media type's schema.
          example: 2
        name:
          type: string
          description: The name of the list. The list name is not case-sensitive, must be unique within the system, and cannot be updated once it is created.
          example: list-a
          readOnly: false
        state:
          type: string
          description: An indicator for whether the list can be used by deployed artifacts. A list can be either deployed or developing. Only lists in developing can be deleted.
          default: developing
          example: developing
        description:
          type: string
          description: A textual description of the list.
          nullable: true
          default: ""
        createdBy:
          type: string
          readOnly: true
          description: The name of the user that created the list.
          example: userA
        modifiedBy:
          type: string
          readOnly: true
          description: The name of the user that made the last update to the list.
          example: user2
        creationTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the list was created, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-02-25T20:35:44Z
        modifiedTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the list was last modified, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-02-25T20:35:44Z
        isImmutable:
          type: boolean
          description: An indicator for whether the list's contents can be altered after it is imported.
          default: false
        columns:
          type: array
          readOnly: false
          description: >
            Columns are a collection of 'ColumnInfo' objects that define the structure of the list's content. 'ColumnInfo' objects map

            properties such as name, position, and data type to the imported source data (for example, a CSV file). Columns also mark which values are used to construct lookup keys. Key properties are flagged as such and are assigned a position for where their values are placed

            in the lookup key.


            The number of columns in the data source's header must match the number of columns (that is, the number of 'ColumnInfo' objects) that are defined for a list. The value for the 'ColumnInfo' position's object must be a sequential set of positions such as 1..N,

            where N is the number of columns in the header. For example, if the input data has a 3-column header, there must be a 'ColumnInfo' object for each position 1, 2, and 3.
          items:
            $ref: "#/components/schemas/columnInfo"
          minItems: 1
          uniqueItems: true
        defaultExpiry:
          type: number
          readOnly: false
          description: The value that sets the expiration of newly added rows.
          example: 10000
        label:
          type: string
          nullable: true
          description: A short textual label, which is appropriate for client UIs.
        links:
          type: array
          readOnly: true
          description: The reference links that apply to this object.
          items:
            $ref: "#/components/schemas/link"
    listResourceCollection:
      title: List Resource Collection
      description: This schema describes a collection of list resources.
      allOf:
        - $ref: "#/components/schemas/resourceCollection"
      properties:
        items:
          type: array
          description: The items on this page of the collection. Each item in this list is of a type that is listed as acceptable.
          example: []
          items:
            $ref: "#/components/schemas/listResource"
    listDetails:
      title: List Details
      description: This schema defines the list details.
      type: object
      properties:
        id:
          type: string
          description: A unique identifier for the list.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
          readOnly: true
        version:
          type: integer
          readOnly: true
          description: The version number for this media type's schema.
          example: 1
        name:
          type: string
          description: The name of the list. The list name is not case-sensitive, must be unique within the system, and cannot be updated once it is created.
          example: list-a
          readOnly: false
        description:
          type: string
          description: A textual description of the list.
          nullable: true
          default: ""
        parentFolder:
          type: string
          description: The folder in which the list is stored.
          example: myFolder
          readOnly: true
        location:
          type: string
          description: The full path to the folder in which the list is stored.
          example: /public/myFolder
          readOnly: true
        keyPrefix:
          type: string
          description: The Redis key prefix that is used to access elements of the list.
          example: SAS|0|0|LIST|myList
          readOnly: true
        links:
          type: array
          readOnly: true
          description: The reference links that apply to this object.
          items:
            $ref: "#/components/schemas/link"
        revision:
          type: number
          readOnly: true
          description: The number of revisions that exist to this list.
          example: 2
        deployedRevision:
          type: number
          readOnly: true
          description: The number of the revision that is currently deployed.
          example: 3
    listConsumer:
      title: List Consumers
      description: This schema defines the list consumer details.
      type: object
      properties:
        relationshipId:
          type: string
          readOnly: true
          description: The relationship instance ID that is managed by the Catalog service.
          example: f59529c3-be3a-4f9e-9a23-d4443a30d3cf
        relationshipUri:
          type: string
          readOnly: true
          description: The URI to the relationship that is managed by the Catalog service.
          example: /catalog/instances/f59529c3-be3a-4f9e-9a23-d4443a30d3cf
        relationshipDefinitionId:
          type: string
          readOnly: true
          description: The ID of the Catalog service definition of the relationship.
          example: d56002e5-fd2e-437f-a45e-a1bf75e4a913
        consumerId:
          type: string
          readOnly: true
          description: The ID of the consuming entity.
          example: 3ce976dc-9e13-454f-a7e0-0505f2faaf0f
        consumerUri:
          type: string
          readOnly: true
          description: The URI to a Catalog service instance of the consuming entity.
          example: /catalog/instances/3ce976dc-9e13-454f-a7e0-0505f2faaf0f
    listDetailsWithConsumers:
      title: List Details with Consumers
      description: This schema defines the list details with consumers
      allOf:
        - $ref: "#/components/schemas/listDetails"
      properties:
        consumers:
          type: array
          items:
            $ref: "#/components/schemas/listConsumer"
    listConsumerList:
      title: List Resource Consumer List
      description: This schema defines the list consumers.
      properties:
        consumerCount:
          type: integer
          description: The number of consumers.
          readOnly: true
          example: 10
        consumers:
          type: array
          description: A list of list resource consumers.
          readOnly: true
          items:
            $ref: "#/components/schemas/listConsumer"
          example:
            - relationshipId: f59529c3-be3a-4f9e-9a23-d4443a30d3cf
              relationshipUri: /catalog/instances/f59529c3-be3a-4f9e-9a23-d4443a30d3cf
              relationshipDefinitionId: d56002e5-fd2e-437f-a45e-a1bf75e4a913
              consumerId: 3ce976dc-9e13-454f-a7e0-0505f2faaf0f
              consumerUri: /catalog/instances/3ce976dc-9e13-454f-a7e0-0505f2faaf0f
    summary:
      title: Summary Details
      description: This schema defines the summary details of a list that is required by the Catalog service.
      properties:
        creationTimeStamp:
          type: string
          format: date-time
        createdBy:
          type: string
        modifiedTimeStamp:
          type: string
          format: date-time
        modifiedBy:
          type: string
        version:
          type: string
        id:
          type: string
        name:
          type: string
        description:
          type: string
        type:
          type: string
        typeDefName:
          type: string
        iconUri:
          type: string
        links:
          type: array
          items:
            $ref: "#/components/schemas/link"
    transferObject:
      title: Transfer Object
      description: This schema defines the transfer object schema that is required by the Transfer service.
    columnInfo:
      title: Column Information
      description: This schema identifies the column information objects that define the properties for a list.
      type: object
      required:
        - name
        - dataType
        - position
      properties:
        id:
          type: string
          description: A unique identifier for a column.
          readOnly: true
          example: uuid
        name:
          type: string
          description: The name of the column in the input data files header.
          example: userId
        dataType:
          type: string
          description: >
            "The type of input data for the column. Valid values are 'number', 'string', 'datetime', 'currency' or 'currency_code'.""
          example: string
          enum:
            - number
            - string
            - datetime
            - currency
            - currency_code
        isKey:
          type: boolean
          description: An indicator that the column's value is used to create the key value for the key-value data store.
          default: false
          example: true
        keyPosition:
          type: integer
          description: A 1-based position index that specifies where a column's value is located in the record's key value. A '0' means not a key. Only positive values are valid. For all the key columns, the key positions must be contiguous and without duplicates. If 'isKey' is set to 'false', then 'keyPosition' is automatically set to '0' and user input for this value is ignored.
          example: 1
        position:
          type: integer
          description: The location of the column values in the delimited entry from the input data. Location is used when importing, storing, and retrieving values from the input data and the key-value data store. For the header 'userId,name,salary', the position of 'userId' is '1'.
          example: 1
        dataMask:
          $ref: "#/components/schemas/dataMask"
    dataMask:
      title: Data Mask
      type: object
      description: This schema defines the data mask for a column's value when retrieving a list's contents.
      required:
        - name
        - regex
        - replace
        - example
      properties:
        name:
          type: string
          description: The name of the data-masking action for previewing the list data.
          example: Mask Start
        regex:
          type: string
          description: The regular expression for the data mask where members of the group are displayed.
          example: .(....$)|.
        replace:
          type: string
          description: The replace expression for the groups that result from the 'regex' property. Only characters in 'regex' groups (for example, $1) are displayed. All other characters are masked.
          example: "*$1"
        example:
          type: string
          description: An example of the expected output of a redacted record.
          example: "****1234"
    importJob:
      title: Import Job
      type: object
      description: This schema defines the import job that loads a list's contents from a data file.
      properties:
        id:
          type: string
          readOnly: true
          description: A universally unique identifier for an import job.
          example: b791e348-984e-439d-bff4-5b4163d897af
        version:
          type: integer
          readOnly: true
          description: The version number for this media type's schema.
          example: 1
          default: 1
        state:
          type: string
          readOnly: true
          description: The job's state. The state can be either 'running', 'completed', or 'failed'.
          example: running
        fileName:
          type: string
          readOnly: true
          description: The name of the file that contains the records to import.
          example: data.csv
        sha256Sum:
          type: string
          readOnly: true
          description: The SHA256 hash of the file contents that is used to import the records.
          example: 69091e2c774812266d577dc83472a2ab81687efde1e276feb0aaa77d637df11c
        creationTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the job was created, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-05-31T14:31:57Z
        createdBy:
          type: string
          readOnly: true
          description: The ID of the user (the ID of the user object) who created the import job.
          example: userA
        completedTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the job was last modified, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-05-31T14:31:57Z
        listId:
          type: string
          readOnly: true
          description: The unique identifier of the list for which the import job was created.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        totalErrors:
          type: integer
          readOnly: true
          description: The total number of errors that occurred during the import job's validation process. Descriptive error objects are returned in the 'errors' array. However, there is a threshold to the number of error objects that are returned.
          example: 1001
        results:
          type: object
          readOnly: true
          properties:
            recordCount:
              type: integer
              description: The number of records that are imported as part of the import job.
              example: 100
          description: The result that is shown only when a job completes.
        errors:
          type: array
          readOnly: true
          items:
            $ref: "#/components/schemas/errorLeafNodeResponse"
          description: For a job that fails, an array of error types that occurred during validation.  There is a threshold to the number of errors that are returned.
        links:
          type: array
          description: The link relations that apply to the job.
          items:
            $ref: "#/components/schemas/link"
    listDataSet:
      title: List Data Set
      description: >
        "This schema defines the object that contains the metadata for a list's columns and content records that are stored in an array of rows."
      properties:
        listId:
          type: string
          readOnly: true
          description: A universally unique identifier for a list.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        name:
          type: string
          description: The name of the collection.
          readOnly: true
          example: list-a
        version:
          type: integer
          readOnly: true
          description: The version number for this media type's schema.
          example: 1
        createdBy:
          type: string
          readOnly: true
          description: The user that created the list.
          example: userA
        creationTimeStamp:
          type: string
          description: A timestamp for when the list was created, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-02-25T20:35:44Z
        modifiedBy:
          type: string
          readOnly: true
          description: The user that made the last update to the list.
          example: userA
        modifiedTimeStamp:
          type: string
          description: A timestamp for when the list was last updated, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-02-25T20:35:44Z
        columnCount:
          type: integer
          description: The number of columns in the data.
        columns:
          type: array
          description: The metadata about the columns of the data.
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the column in the input data file's header.
              dataType:
                type: string
                description: >
                  The type of input data for the column. Valid values are 'number', 'string', 'datetime', 'currency' or 'currency_code'."
                enum:
                  - number
                  - string
                  - datetime
                  - currency
                  - currency_code
              position:
                type: integer
                description: The location of the column values in the delimited entry from the input data. Location is used when you import, store, and retrieve values from the input data and the key-value data store. For the header, 'userId,name,salary', the position of 'userId' is '1'.
              isKey:
                type: boolean
                description: An indicator to use the column's value to create the key value for the key-value data store.
              keyPosition:
                type: integer
                description: A 1-based position index that specifies where a column's value is located in the record's key value. A '0' means not a key. Only positive values are valid. For all the key columns, the key positions must be contiguous and without duplicates. If 'isKey' is set to 'false', then 'keyPosition' is automatically set to '0' and user input for this value is ignored.
              dataMask:
                type: object
                description: A restriction or redaction on the presentation of a column's value when you retrieve a list's contents. See the [DataMask Schema](#model-dataMask) for more information.
                properties:
                  name:
                    type: string
                  regex:
                    type: string
                  replace:
                    type: string
                  example:
                    type: string
          example:
            - name: userId
              dataType: string
              position: 1
              isKey: true
              keyPosition: 1
            - name: firstName
              dataType: string
              position: 2
              isKey: false
              keyPosition: 0
            - name: lastName
              dataType: string
              position: 3
              isKey: false
              keyPosition: 0
            - name: salary
              datatype: number
              position: 4
              isKey: false
              keyPosition: 0
              dataMask:
                name: hide-all
                regex: .
                replace: "*"
                example: "*****"
        rowCount:
          type: integer
          readOnly: true
          description: The total number of rows in the data.
          example: 3
        rows:
          type: array
          readOnly: true
          description: A collection of objects that contains arrays of heterogeneous data from the list.
          example:
            - - 58b2a1a2
              - Aron
              - Denesik
              - 745072
            - - "6e107010"
              - Chery
              - Kunze
              - 935262
            - - 38c0e0c7
              - Letha
              - Goldner
              - 672002
    listDataSetDetailsVersionOne:
      title: List Data Set Details Version One
      description: >
        "This schema defines the object that contains a collection of row values and metadata."
      properties:
        name:
          type: string
          description: The name of the collection.
          readOnly: true
        start:
          type: integer
          description: The zero-based index of the first item in the collection.
          readOnly: true
          default: 0
          example: 0
        limit:
          type: integer
          default: 10
          description: The number of items that can be requested for the collection.
          readOnly: true
          example: 10
        count:
          type: integer
          description: If populated, the number of items in the collection.
          readOnly: true
          format: int64
          example: 2
        accept:
          type: string
          description: A space-delimited list of media types from which an `Accept` header might be constructed.
          readOnly: true
          example: application/json
        items:
          type: array
          description: The items on this page of the collection. Each item in this list is of a type that is listed as acceptable.
          example:
            - deployed: deployed
              expiry: "1685974424"
              values:
                x: "1"
                y: "1"
            - deployed: developing
              expiry: "1685974424"
              values:
                x: "2"
                y: "2"
          items:
            properties:
              object:
                type: object
                description: A resource entry.
        links:
          type: array
          description: The links that apply to the collection.
          readOnly: true
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the collection representation. This representation is version 1.
          readOnly: true
    listDataSetDetails:
      title: List Data Set Details
      description: >
        "This schema defines the object that contains a collection of row values and metadata."
      properties:
        name:
          type: string
          description: The name of the collection.
          readOnly: true
        start:
          type: integer
          description: The zero-based index of the first item in the collection.
          readOnly: true
          default: 0
          example: 0
        limit:
          type: integer
          default: 10
          description: The number of items that can be requested for the collection.
          readOnly: true
          example: 10
        count:
          type: integer
          description: If populated, the number of items in the collection.
          readOnly: true
          format: int64
          example: 2
        accept:
          type: string
          description: A space-delimited list of media types from which an `Accept` header might be constructed.
          readOnly: true
          example: application/json
        items:
          type: array
          description: The items on this page of the collection. Each item in this list is of a type that is listed as acceptable.
          example:
            - state: deployed
              expiry: "1685974424"
              values:
                x: "1"
                y: "1"
            - state: developing
              expiry: "1685974424"
              values:
                x: "2"
                y: "2"
          items:
            properties:
              object:
                type: object
                description: A resource entry.
        links:
          type: array
          description: The links that apply to the collection.
          readOnly: true
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the collection representation. This representation is version 2.
          readOnly: true
    purgeJob:
      title: Purge Job
      type: object
      description: This schema defines the resource that contains information about an asynchronous job that removes a list's contents.
      properties:
        id:
          type: string
          readOnly: true
          description: A universally unique identifier for a purge job.
          example: c796b3cd301e
        version:
          type: integer
          readOnly: true
          description: The version number for this media type's schema.
          example: 1
        state:
          type: string
          readOnly: true
          description: The job's state. Values are 'running','completed', and 'failed'.
          example: running
        listId:
          type: string
          readOnly: true
          description: The unique identifier of the list for which the purge job was created.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        creationTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the job was created, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-05-31T14:31:57Z
        createdBy:
          type: string
          readOnly: true
          description: The ID of the user (the ID of the user object) who created the job.
          example: userA
        completedTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the job was completed, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-05-31T14:31:57Z
        results:
          type: object
          readOnly: true
          properties:
            recordCount:
              type: integer
              description: The number of records that are removed as part of the job.
              example: 100
        errors:
          type: array
          readOnly: true
          items:
            $ref: "#/components/schemas/errorLeafNodeResponse"
          description: A description of the error condition for a failed job.
        links:
          type: array
          description: The links that apply to the error.
          items:
            $ref: "#/components/schemas/link"
    updateContentStateJob:
      title: Update Content State Job
      type: object
      description: This schema defines the resource that contains information about an asynchronous job that updates the state of each row in a list.
      properties:
        id:
          type: string
          readOnly: true
          description: A universally unique identifier for an update content state job.
          example: c796b3cd301e
        version:
          type: integer
          readOnly: true
          description: The version number for this media type's schema.
          example: 1
        state:
          type: string
          readOnly: true
          description: The job's state. Values are 'running','completed', and 'failed'.
          example: running
        listId:
          type: string
          readOnly: true
          description: The unique identifier of the list for which the update content state job was created.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        creationTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the job was created, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-05-31T14:31:57Z
        createdBy:
          type: string
          readOnly: true
          description: The ID of the user (the ID of the user object) who created the job.
          example: userA
        completedTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the job was completed, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-05-31T14:31:57Z
        results:
          type: object
          readOnly: true
          properties:
            recordCount:
              type: integer
              description: The number of records that are updated as part of the job.
              example: 100
        errors:
          type: array
          readOnly: true
          items:
            $ref: "#/components/schemas/errorLeafNodeResponse"
          description: A description of the error condition for a failed job.
        links:
          type: array
          description: The links that apply to the error.
          items:
            $ref: "#/components/schemas/link"
    errorCommon:
      title: Error Common
      description: This schema defines the common error properties.
      readOnly: true
      properties:
        version:
          type: integer
          description: The version number of the error representation. This representation is version 2.
          default: 2
          example: 2
        httpStatusCode:
          type: integer
          description: The HTTP status code for the error.
          example: 406
        message:
          type: string
          description: The error message.
          example: Not Acceptable
        details:
          type: array
          description: A list of strings with details.
          items:
            type: string
            example: "path: /listData/"
          example:
            - application/vnd.sas.api+json;version=1
            - application/vnd.sas.api+json
            - application/json
            - "path: /listData/"
            - "correlator: ae54a062-33d2-4b6a-a9af-97348a160947"
    errorResponse:
      title: Error
      description: This schema defines the representation of an error with additional errors.
      readOnly: true
      allOf:
        - $ref: "#/components/schemas/errorCommon"
      properties:
        id:
          type: string
          description: The string ID for the error.
        errorCode:
          type: integer
          description: The numeric ID for the error.
        remediation:
          type: string
          description: A message that describes how to resolve the error.
        errors:
          type: array
          description: Additional errors that occurred.
          items:
            $ref: "#/components/schemas/errorResponseItem"
        links:
          type: array
          description: The links that apply to the error.
          items:
            $ref: "#/components/schemas/link"
    errorResponseItem:
      title: Error Item
      description: This schema defines the representation of an error.
      readOnly: true
      allOf:
        - $ref: "#/components/schemas/errorCommon"
      properties:
        id:
          type: string
          description: The string ID for the error.
        errorCode:
          type: integer
          description: The numeric ID for the error.
        remediation:
          type: string
          description: A message that describes how to resolve the error.
        links:
          type: array
          description: The links that apply to the error.
          items:
            $ref: "#/components/schemas/link"
    errorLeafNodeResponse:
      title: Error Single Level
      description: This schema defines the representation of an error without another level of errors.
      required:
        - version
      properties:
        message:
          type: string
          description: The error message.
        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.
        version:
          type: integer
          description: The version number of the error representation. This representation is version 2.
          example: 2
          default: 2
    link:
      title: Link
      description: This schema defines a link to a related operation or resource.
      readOnly: true
      properties:
        method:
          type: string
          description: The HTTP method to invoke this endpoint.
        rel:
          type: string
          description: The relationship of this URL to the object.
        uri:
          type: string
          description: The relative URI of the REST endpoint.
        href:
          type: string
          description: The full URL of the REST endpoint.
        title:
          type: string
          description: The title for the link.
        type:
          type: string
          description: The media type that is consumed or produced.
        itemType:
          type: string
          description: If this link is to a container, the value is the media type or the 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.
    api:
      title: API
      description: This schema defines the list of top-level resources that are available from the root of the API.
      readOnly: true
      properties:
        version:
          type: integer
          description: The version number of the API representation. This is version 1.
          default: 1
          example: 1
        links:
          type: array
          description: The API's top-level links.
          items:
            $ref: "#/components/schemas/link"
    listResourceRevision:
      title: List Revision
      description: This schema defines the list revision properties.
      type: object
      properties:
        id:
          type: string
          description: A unique identifier for the list revision.
          example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
          readOnly: true
        listResourceId:
          type: string
          description: The unique identifier of the associated list.
          example: 9ec45a61-774c-488e-99a0-03dfde70b966
          readOnly: true
        revision:
          type: number
          description: An identifier for the order of the list revision.
          readOnly: true
          example: 2
        description:
          type: string
          description: A textual description of the list revision.
          readOnly: true
          nullable: true
          default: ""
        label:
          type: string
          nullable: true
          description: A short textual label, which is appropriate for client UIs.
          readOnly: true
        createdBy:
          type: string
          readOnly: true
          description: The name of the user that created the list.
          example: userA
        creationTimeStamp:
          type: string
          readOnly: true
          description: A timestamp for when the list was created, in the format of YYYY-MM-DDThh:mm:ss.sssZ.
          example: 2022-02-25T20:35:44Z
    listResourceRevisionCollection:
      title: List Resource Revision Collection
      description: This schema describes a collection of list resource revisions.
      allOf:
        - $ref: "#/components/schemas/resourceCollection"
      properties:
        items:
          type: array
          description: The items on this page of the collection. Each item in this list is of a type that is listed as acceptable.
          example: []
          items:
            $ref: "#/components/schemas/listResourceRevision"
  examples:
    api:
      summary: Get the API's top-level links
      description: Here is an example of using the GET request to retrieve the application/vnd.sas.api+json representation of the API's top-level links.
      value:
        version: 1
        links:
          - method: GET
            rel: lists
            href: /listData/lists
            uri: /listData/lists
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.listdata.list
          - method: POST
            rel: createList
            href: /listData/lists
            uri: /listData/lists
            type: application/vnd.sas.listdata.list
    listResourceCollection:
      summary: Get a collection of lists
      description: Here is an example response to a request to get a collection of lists.
      value:
        version: 2
        accept: application/vnd.sas.listdata.list
        count: 253
        start: 0
        limit: 2
        name: listResource
        items:
          - id: 9ec45a61-774c-488e-99a0-03dfde70b966
            version: 1
            creationTimeStamp: 2023-02-14T15:57:54.041280Z
            modifiedTimeStamp: 2023-02-14T17:29:57.210467Z
            createdBy: sasadm
            modifiedBy: sasadm
            name: userlist1
            description: desc
            state: developing
            isImmutable: false
            hasExpiry: false
            label: string
            columns:
              - name: userId
                dataType: string
                position: 1
                isKey: true
                keyPosition: 1
                dataMask:
                  name: Mask Start
                  example: "****1234"
                  regex: .(....$)|.
                  replace: "*$1"
              - name: firstName
                dataType: string
                position: 2
                isKey: false
                keyPosition: 0
              - name: lastName
                dataType: string
                position: 3
                isKey: false
                keyPosition: 0
              - name: salary
                dataType: number
                position: 4
                isKey: false
                keyPosition: 0
            links:
              - method: GET
                rel: up
                href: /listData/lists
                uri: /listData/lists
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.listdata.list
              - method: GET
                rel: self
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
                type: application/vnd.sas.listdata.list
              - method: PUT
                rel: update
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
                type: application/vnd.sas.listdata.list
                responseType: application/vnd.sas.listdata.list
              - method: GET
                rel: state
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/state
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/state
                type: text/plain
              - method: GET
                rel: contents
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/contents
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/contents
                type: application/vnd.sas.collection
                itemType: application/json
              - method: GET
                rel: contentsDataset
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/contents
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/contents
                type: application/vnd.sas.listdata.dataset
              - method: PUT
                rel: updateContents
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/contents
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/contents
                type: application/vnd.sas.collection
                responseType: application/vnd.sas.listdata.list
                itemType: application/json
              - method: POST
                rel: importContents
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/importJobs
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/importJobs
                type: multipart/form-data
                responseType: application/vnd.sas.listdata.importjob
              - method: POST
                rel: purgeContents
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/purgeJobs
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/purgeJobs
                responseType: application/vnd.sas.listdata.purgejob
              - method: DELETE
                rel: delete
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
              - method: GET
                rel: alternate
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
                type: application/vnd.sas.summary
              - method: GET
                rel: privilegedContents
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/privilegedContents
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/privilegedContents
                type: application/vnd.sas.listdata.list
              - method: PUT
                rel: privilegedEdit
                href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/privilegedEdit
                uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966/privilegedEdit
                type: application/vnd.sas.listdata.list
                responseType: application/vnd.sas.listdata.list
          - id: d4367763-5c04-40e1-9abd-fde1796bc83c
            version: 1
            creationTimeStamp: 2023-02-14T17:01:38.695035Z
            modifiedTimeStamp: 2023-02-14T19:52:46.714191Z
            createdBy: sasadm
            modifiedBy: anonymous
            name: userlist2
            description: desc
            state: developing
            isImmutable: false
            hasExpiry: true
            label: string
            columns:
              - name: userId
                dataType: string
                position: 1
                isKey: true
                keyPosition: 1
                dataMask:
                  name: Mask Start
                  example: "****1234"
                  regex: .(....$)|.
                  replace: "*$1"
              - name: firstName
                dataType: string
                position: 2
                isKey: false
                keyPosition: 0
              - name: lastName
                dataType: string
                position: 3
                isKey: false
                keyPosition: 0
              - name: salary
                dataType: number
                position: 4
                isKey: false
                keyPosition: 0
            links:
              - method: GET
                rel: up
                href: /listData/lists
                uri: /listData/lists
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.listdata.list
              - method: GET
                rel: self
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
                type: application/vnd.sas.listdata.list
              - method: PUT
                rel: update
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
                type: application/vnd.sas.listdata.list
                responseType: application/vnd.sas.listdata.list
              - method: GET
                rel: state
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/state
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/state
                type: text/plain
              - method: GET
                rel: contents
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/contents
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/contents
                type: application/vnd.sas.collection
                itemType: application/json
              - method: GET
                rel: contentsDataset
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/contents
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/contents
                type: application/vnd.sas.listdata.dataset
              - method: PUT
                rel: updateContents
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/contents
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/contents
                type: application/vnd.sas.collection
                responseType: application/vnd.sas.listdata.list
                itemType: application/json
              - method: POST
                rel: importContents
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/importJobs
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/importJobs
                type: multipart/form-data
                responseType: application/vnd.sas.listdata.importjob
              - method: POST
                rel: purgeContents
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/purgeJobs
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/purgeJobs
                responseType: application/vnd.sas.listdata.purgejob
              - method: DELETE
                rel: delete
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
              - method: GET
                rel: alternate
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c
                type: application/vnd.sas.summary
              - method: GET
                rel: privilegedContents
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/privilegedContents
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/privilegedContents
                type: application/vnd.sas.listdata.list
              - method: PUT
                rel: privilegedEdit
                href: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/privilegedEdit
                uri: /listData/lists/d4367763-5c04-40e1-9abd-fde1796bc83c/privilegedEdit
                type: application/vnd.sas.listdata.list
                responseType: application/vnd.sas.listdata.list
    getListsResponse:
      summary: Get a collection of lists
      description: Here is an example response to a request to get a collection of lists.
      value:
        version: 2
        accept: application/vnd.sas.listdata.list+json
        count: 1
        start: 0
        limit: 10
        name: lists
        items:
          - id: 3659ea38-2618-4474-aeac-0bf6cfd3c322
            name: list-a
            creationTimeStamp: 2022-03-01T20:18:32Z
            ...see listResource object...: ...
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    getPurgeJobsResponse:
      summary: Get a collection of purge jobs
      description: Here is an example response to a request to get a collection of purge jobs.
      value:
        version: 2
        accept: application/vnd.sas.listdata.purgejob+json
        count: 1
        start: 0
        limit: 10
        name: purgeJobs
        items:
          - id: purgeJobId
            state: running
            ...: see Purge Job Schema
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    getImportJobsResponse:
      summary: Get a collection of import jobs
      description: Here is an example response to a request to get a collection of import jobs.
      value:
        version: 2
        accept: application/vnd.sas.listdata.importjob+json
        count: 1
        start: 0
        limit: 10
        name: importJobs
        items:
          - id: importJobId
            state: running
            ...: see Import Job Schema
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    getUpdateContentStateJobsResponse:
      summary: Get a collection of update content state jobs
      description: Here is an example response to a request to get a collection of update content state jobs.
      value:
        version: 2
        accept: application/vnd.sas.listdata.updatecontentstatejob+json
        count: 1
        start: 0
        limit: 10
        name: updateContentStateJobs
        items:
          - id: updateContentStateJobId
            state: running
            ...: see Update Content State Job Schema
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    listDetails:
      summary: Get the details of a list
      description: Here is an example of a response to a  request to get a list's details.
      value:
        id: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        version: 1
        name: list-a
        description: The A-list users
        label: corporate marketing
        parentFolder: myFolder
        location: /public/myFolder
        keyPrefix: SAS|0|0|LIST|list-a
        revision: 3
        deployedRevision: 2
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    listDetailsWithConsumers:
      summary: Get list details and consumer information
      description: Here is an example of a response to a request to get a list's details and consumer information.
      value:
        creationTimeStamp: 2022-10-03T01:54:50.073000Z
        modifiedTimeStamp: 2022-10-03T21:58:29.809000Z
        id: 4ae3a5a4-517e-48e2-a732-91190e3b7e83
        instanceType: entity
        definitionId: afc7ccba-7312-45b5-80fd-f33214efcc6f
        name: masked list 32
        description: masked sales data
        type: advancedList
        anchor: advancedList|/listData/lists/c08e5023-c682-4c35-a535-09b4e734f416
        attributes:
          analysisTimeStamp: 2022-10-03T01:54:50.003000Z
          creator: sasadm
          dateCreated: 2022-10-03T01:54:49.713000Z
          dateModified: 2022-10-03T01:54:49.713000Z
          editor: sasadm
          source: SAS
        resourceId: /listData/lists/c08e5023-c682-4c35-a535-09b4e734f416
        consumers:
          - id: 1abeae1a-abed-453b-a74c-8fe9743ed1c1
            definitionId: 9b9145ce-e141-4635-a203-78ed5651e028
            uri: /catalog/instances/1abeae1a-abed-453b-a74c-8fe9743ed1c1
            endpointId: 9eb2d7ee-3165-446e-b3bc-1dbee1a6f2db
            endpointUri: /catalog/instances/9eb2d7ee-3165-446e-b3bc-1dbee1a6f2db
          - id: bfe0efb3-56c6-4951-ab3b-fcb549503874
            definitionId: 4267b494-7d4c-47a0-8aba-c04c809fc9a6
            uri: /catalog/instances/bfe0efb3-56c6-4951-ab3b-fcb549503874
            endpointId: 32db1a1b-5326-4a0e-bd35-9ec82000a5b7
            endpointUri: /catalog/instances/32db1a1b-5326-4a0e-bd35-9ec82000a5b7
    summary:
      summary: Get a list summary
      description: Here is an example of a response to a request to get a list summary.
      value:
        creationTimeStamp: 2023-02-14T17:29:57.210467Z
        createdBy: sasadm
        modifiedTimeStamp: 2023-02-14T17:29:57.210467Z
        modifiedBy: sasadm
        version: "2"
        id: 9ec45a61-774c-488e-99a0-03dfde70b966
        name: userlist1
        description: desc
        type: advancedList
        links:
          - method: GET
            rel: self
            href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
            uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
            type: application/vnd.sas.listdata.list
          - method: GET
            rel: alternate
            href: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
            uri: /listData/lists/9ec45a61-774c-488e-99a0-03dfde70b966
            type: application/vnd.sas.summary
    transferObject:
      summary: Get a list transfer object
      description: Here is an example of a response to a request to get a transfer object, which is required by the Transfer service.
      value: null
    listResourceVersionOneRepresentation:
      summary: Get a list definition
      description: Here is an example of a response to a request to get a list.
      value:
        id: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        version: 1
        creationTimeStamp: 2022-03-01T20:18:32Z
        modifiedTimeStamp: 2022-03-01T20:18:32Z
        createdBy: appUser1
        modifiedBy: appUser1
        name: list-a
        description: The A-list users
        state: developing
        columns:
          - name: userId
            dataType: string
            position: 1
            isKey: true
            keyPosition: 1
          - name: firstName
            dataType: string
            position: 2
            isKey: false
            keyPosition: 0
          - name: lastName
            dataType: string
            position: 3
            isKey: false
            keyPosition: 0
          - name: salary
            dataType: number
            position: 4
            isKey: false
            keyPosition: 0
            dataMask:
              name: MaskStart
              regex: .(....$)|.
              replace: "*$1"
              example: "****1234"
        label: corporate marketing
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    listResourceRepresentation:
      summary: Get a list definition
      description: Here is an example of a response to a request to get a list.
      value:
        id: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        version: 1
        creationTimeStamp: 2022-03-01T20:18:32Z
        modifiedTimeStamp: 2022-03-01T20:18:32Z
        createdBy: appUser1
        modifiedBy: appUser1
        name: list-a
        description: The A-list users
        state: developing
        columns:
          - name: userId
            dataType: string
            position: 1
            isKey: true
            keyPosition: 1
          - name: firstName
            dataType: string
            position: 2
            isKey: false
            keyPosition: 0
          - name: lastName
            dataType: string
            position: 3
            isKey: false
            keyPosition: 0
          - name: salary
            dataType: number
            position: 4
            isKey: false
            keyPosition: 0
            dataMask:
              name: MaskStart
              regex: .(....$)|.
              replace: "*$1"
              example: "****1234"
        label: corporate marketing
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    listResourceConsumers:
      summary: Get a list's consumers
      description: Here is an example of a response to a request to get a list's consumers.
      value:
        consumerCount: 3
        consumers:
          - relationshipId: 00eda357-74bf-4ff3-b8ce-791b282ba4b2,
            relationshipUri: /catalog/instances/00eda357-74bf-4ff3-b8ce-791b282ba4b2,
            relationshipDefinitionId: c525acd7-5c99-4929-ae1e-f75733034b8c,
            consumerId: 04ecad55-b9c1-4d63-8cfa-f72782798b0c,
            consumerUri: /catalog/instances/04ecad55-b9c1-4d63-8cfa-f72782798b0c
          - relationshipId: 5832f54b-4117-4793-81f7-3c4a507528d1,
            relationshipUri: /catalog/instances/5832f54b-4117-4793-81f7-3c4a507528d1,
            relationshipDefinitionId: c525acd7-5c99-4929-ae1e-f75733034b8c,
            consumerId: 9de13858-6bed-49e4-aae7-7298e819a4cb,
            consumerUri: /catalog/instances/9de13858-6bed-49e4-aae7-7298e819a4cb
          - relationshipId: 51eedf3f-7306-4956-af99-5d05fa6fdd37
            relationshipUri: /catalog/instances/51eedf3f-7306-4956-af99-5d05fa6fdd37
            relationshipDefinitionId: 2eb6ed06-25b3-467b-b92e-6f18e9dd0627
            consumerId: 01991936-cec2-42e7-8b73-a0c3d777631f,
            consumerUri: /catalog/instances/01991936-cec2-42e7-8b73-a0c3d777631f
        links:
          - method: GET,
            rel: self,
            href: /listData/lists/2c22d72a-b30b-453a-aa05-c9a77f0a7747/consumers
            uri: /listData/lists/2c22d72a-b30b-453a-aa05-c9a77f0a7747/consumers
            responseType: application/vnd.sas.listdata.consumers+json
    createListResourceVersionOneRequestBody:
      summary: Create a list
      description: Here is an example of a response to a request to create a list.
      value:
        name: list-a
        description: The A-list users
        state: developing
        label: marketing
        columns:
          - name: userId
            dataType: string
            position: 1
            isKey: true
            keyPosition: 1
          - name: firstName
            dataType: string
            position: 2
            isKey: false
            keyPosition: 0
          - name: lastName
            dataType: string
            position: 2
            isKey: false
            keyPosition: 0
          - name: salary
            dataType: number
            position: 3
            isKey: false
            keyPosition: 0
            dataMask:
              name: MaskStart
              regex: .(....$)|.
              replace: "*$1"
              example: "****1234"
        defaultExpiry: 10000
        hasExpiry: true
    createListResourceRequestBody:
      summary: Create a list
      description: Here is an example of a response to a request to create a list.
      value:
        name: list-a
        description: The A-list users
        state: developing
        label: marketing
        columns:
          - name: userId
            dataType: string
            position: 1
            isKey: true
            keyPosition: 1
          - name: firstName
            dataType: string
            position: 2
            isKey: false
            keyPosition: 0
          - name: lastName
            dataType: string
            position: 2
            isKey: false
            keyPosition: 0
          - name: salary
            dataType: number
            position: 3
            isKey: false
            keyPosition: 0
            dataMask:
              name: MaskStart
              regex: .(....$)|.
              replace: "*$1"
              example: "****1234"
        defaultExpiry: 10000
        hasExpiry: true
    addListContentEntriesRequestBody:
      summary: Add items to a list
      description: Here is an example of a request body to synchronously add records to a list's contents.
      value:
        items:
          - userId: 58b2a1a2
            firstName: Aron
            lastName: Denesik
            salary: 745072
          - userId: null
            firstName: Chery
            lastName: Kunze
            salary: 935262
          - userId: 38c0e0c7
            firstName: Letha
            lastName: Goldner
            salary: 672002
          - userId: 4cef6486
            firstName: Jeane
            lastName: Kutch
            salary: 380766
          - userId: 61f7592f
            firstName: Beth
            lastName: West
            salary: 994209
    getListContentsSasCollection:
      summary: Get a collection of a list's contents
      description: Here is an example of a response to a request to get a list's contents.
      value:
        name: listContents
        version: 2
        accept: application/json
        start: 0
        limit: 10
        count: 2
        items:
          - x: "1"
            y: "1"
          - x: "2"
            y: "2"
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    getListContentsComparisonSasCollection:
      summary: Get a collection of the contents of a list's revisions for comparison
      description: Here is an example of a response to a request to get the contents of a list's revisions for comparison.
      value:
        name: listContentsComparison
        version: 1
        accept: application/json
        start: 0
        limit: 10
        count: 2
        items:
          - keys:
              x: "1"
            values:
              - x: "1"
                y: "1"
              - x: "1"
                y: "2"
          - keys:
              x: "2"
            values:
              - x: "2"
                y: "1"
              - x: "2"
                y: "2"
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    getListContentDetailsVersionOneExample:
      summary: Get a collection of a list's content details
      description: Here is an example of a response to a request to get a list's content details.
      value:
        name: listContents
        version: 2
        accept: application/json
        start: 0
        limit: 10
        count: 2
        items:
          - deployed: deployed
            expiry: "1685974424"
            values:
              x: "1"
              y: "1"
          - deployed: developing
            expiry: "1685974424"
            values:
              x: "2"
              y: "2"
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    getListContentDetailsExample:
      summary: Get a collection of a list's content details
      description: Here is an example of a response to a request to get a list's content details.
      value:
        name: listContents
        version: 2
        accept: application/json
        start: 0
        limit: 10
        count: 2
        items:
          - state: deployed
            expiry: "1685974424"
            values:
              x: "1"
              y: "1"
          - state: developing
            expiry: "1685974424"
            values:
              x: "2"
              y: "2"
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    updateListContentExpiry:
      summary: Update list content expiry
      description: Here is an example of a request to synchronously update the expiry for list rows.
      value:
        expiry: 1691052647
        exactExpiry: true
        items:
          - userId: 58b2a1a2
            firstName: Aron
            lastName: Denesik
            salary: 745072
          - userId: null
            firstName: Chery
            lastName: Kunze
            salary: 935262
          - userId: 38c0e0c7
            firstName: Letha
            lastName: Goldner
            salary: 672002
          - userId: 4cef6486
            firstName: Jeane
            lastName: Kutch
            salary: 380766
          - userId: 61f7592f
            firstName: Beth
            lastName: West
            salary: 994209
    updateListContentVersionOneState:
      summary: Update the list content state
      description: Here is an example of a request to synchronously update the state of specific list rows.
      value:
        op: deploy
        expiry: 10000
        exactExpiry: false
        items:
          - userId: 58b2a1a2
            firstName: Aron
            lastName: Denesik
            salary: 745072
          - userId: null
            firstName: Chery
            lastName: Kunze
            salary: 935262
          - userId: 38c0e0c7
            firstName: Letha
            lastName: Goldner
            salary: 672002
          - userId: 4cef6486
            firstName: Jeane
            lastName: Kutch
            salary: 380766
          - userId: 61f7592f
            firstName: Beth
            lastName: West
            salary: 994209
    deleteListContentExpiry:
      summary: Delete list content expiry
      description: Here is an example of a request to synchronously delete the expiry for list rows.
      value:
        items:
          - userId: 58b2a1a2
            firstName: Aron
            lastName: Denesik
            salary: 745072
          - userId: null
            firstName: Chery
            lastName: Kunze
            salary: 935262
          - userId: 38c0e0c7
            firstName: Letha
            lastName: Goldner
            salary: 672002
          - userId: 4cef6486
            firstName: Jeane
            lastName: Kutch
            salary: 380766
          - userId: 61f7592f
            firstName: Beth
            lastName: West
            salary: 994209
    updateListContentState:
      summary: Update the list content state
      description: Here is an example of a request to synchronously update the state of specific list rows.
      value:
        state: deployed
        expiry: 10000
        exactExpiry: false
        items:
          - userId: 58b2a1a2
            firstName: Aron
            lastName: Denesik
            salary: 745072
          - userId: null
            firstName: Chery
            lastName: Kunze
            salary: 935262
          - userId: 38c0e0c7
            firstName: Letha
            lastName: Goldner
            salary: 672002
          - userId: 4cef6486
            firstName: Jeane
            lastName: Kutch
            salary: 380766
          - userId: 61f7592f
            firstName: Beth
            lastName: West
            salary: 994209
    updateListContentStateJobVersionOne:
      summary: Update the state for all content in a list
      description: Here is an example of a request to asynchronously update the state of list rows.
      value:
        op: deploy
        expiry: 10000
        exactExpiry: false
    updateListContentStateJob:
      summary: Update the state for all content in a list
      description: Here is an example of a request to asynchronously update the state of list rows.
      value:
        state: deployed
        expiry: 10000
        exactExpiry: false
    getListContentsListDatasetExample:
      summary: Get list contents as a data set
      description: Here is an example of a response to a request to get the contents of a list as a data set.
      value:
        name: list-a
        listId: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        version: 1
        createdBy: userA
        creationTimeStamp: 2022-02-25T20:35:44Z
        modifiedBy: userA
        modifiedTimeStamp: 2022-02-25T20:35:44Z
        columnCount: 4
        columns:
          - name: userId
            dataType: string
            position: 1
            isKey: true
            keyPosition: 1
          - name: firstName
            dataType: string
            position: 2
            isKey: false
            keyPosition: 0
          - name: lastName
            dataType: string
            position: 3
            isKey: false
            keyPosition: 0
          - name: salary
            dataType: number
            position: 4
            isKey: false
            keyPosition: 0
            dataMask:
              name: hide-all
              regex: .
              replace: "*"
              example: "*****"
        rowCount: 3
        rows:
          - - 58b2a1a2
            - Aron
            - Denesik
            - 745072
          - - "6e107010"
            - Chery
            - Kunze
            - 935262
          - - 38c0e0c7
            - Letha
            - Goldner
            - 672002
    badRequestErrorExample:
      summary: A Bad Request error
      description: Here is an example of an error response when the request was invalid.
      value:
        httpStatusCode: 400
        version: 2
        id: 04840005-74d3-458b-bbe1-1209d3a739ac
        errorCode: 123456789
        details:
          - bad request reason
        remediation: The remediation action to fix a Bad Request error.
        errors:
          - optional nested errors: ...
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    conflictErrorExample:
      summary: A Conflict error
      description: Here is an example of an error response when the request could not be completed due to a conflict with an existing resource.
      value:
        httpStatusCode: 409
        version: 2
        id: 04840005-74d3-458b-bbe1-1209d3a739ac
        errorCode: 123456789
        details:
          - conflict reason
        remediation: The remediation action to fix a Conflict error.
        errors:
          - optional nested errors: ...
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    forbiddenErrorExample:
      summary: A Forbidden error
      description: Here is an example of an error response when the user did not have the necessary permissions.
      value:
        httpStatusCode: 403
        version: 2
        id: 04840005-74d3-458b-bbe1-1209d3a739ac
        errorCode: 123456789
        details:
          - forbidden
        remediation: The remediation action to fix a Forbidden error.
        errors: []
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    notFoundErrorExample:
      summary: A Not Found error
      description: Here is an example of an error response when no item exists at the requested path.
      value:
        httpStatusCode: 404
        version: 2
        id: 04840005-74d3-458b-bbe1-1209d3a739ac
        errorCode: 123456789
        details:
          - not found
        remediation: The remediation action to fix a Not Found error.
        errors: []
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    internalServerErrorExample:
      summary: An Internal Server error
      description: Here is an example of an error response when the request could not be fulfilled because of an unexpected server error.
      value:
        httpStatusCode: 500
        version: 2
        id: 04840005-74d3-458b-bbe1-1209d3a739ac
        errorCode: 123456789
        details:
          - displayable details of server error
        remediation: The remediation action to fix an Internal Server Error.
        errors:
          - optional nested errors: ...
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    notAcceptableErrorExample:
      summary: A Not Acceptable error
      description: Here is an example of an error response when the specified media type is not supported.
      value:
        httpStatusCode: 406
        version: 2
        message: Not Acceptable
        details:
          - application/vnd.sas.api+json;version=1
          - application/vnd.sas.api+json
          - application/json
          - "path: /listData/"
          - "correlator: 8a3337b3-a390-4912-91bf-049b52823bef"
    unsupportedMediaTypeErrorExample:
      summary: An Unsupported Media Type error
      description: Here is an example of an error response when the requested media type is not supported.
      value:
        httpStatusCode: 415
        version: 2
        message: Unsupported Media Type
        details:
          - application/vnd.sas.listdata.list+json
          - application/vnd.sas.listdata.list+json;version=1
          - application/json
          - "path: /listData/lists"
          - "correlator: 6362355c-9cfa-4929-b19b-56a07a9b37e9"
    importJobExample:
      summary: Create an import job
      description: Here is an example of a response to a request to create an import job.
      value:
        id: b791e348-984e-439d-bff4-5b4163d897af
        version: 1
        state: completed
        fileName: data.csv
        sha256Sum: 69091e2c774812266d577dc83472a2ab81687efde1e276feb0aaa77d637df11c
        creationTimeStamp: 2022-05-31T14:31:57Z
        createdBy: userA
        completedTimeStamp: 2022-05-31T14:32:57Z
        listId: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        totalErrors: 1
        results:
          recordCount: 100
        errors:
          - message: string
            id: string
            errorCode: 0
            httpStatusCode: 0
            details:
              - string
            remediation: string
            version: 2
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    purgeJobExample:
      summary: Create a purge job
      description: Here is an example of a response to a request to create a purge job.
      value:
        id: b791e348-984e-439d-bff4-5b4163d897af
        version: 1
        state: completed
        creationTimeStamp: 2022-05-31T14:31:57Z
        createdBy: userA
        completedTimeStamp: 2022-05-31T14:32:57Z
        listId: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        totalErrors: 1
        results:
          recordCount: 100
        errors:
          - message: string
            id: string
            errorCode: 0
            httpStatusCode: 0
            details:
              - string
            remediation: string
            version: 2
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    updateContentStateJobExample:
      summary: Update the content state job
      description: Here is an example of a response to a request to update the content state job.
      value:
        id: b791e348-984e-439d-bff4-5b4163d897af
        version: 1
        state: completed
        creationTimeStamp: 2022-05-31T14:31:57Z
        createdBy: userA
        completedTimeStamp: 2022-05-31T14:32:57Z
        listId: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        totalErrors: 1
        results:
          recordCount: 100
        errors:
          - message: string
            id: string
            errorCode: 0
            httpStatusCode: 0
            details:
              - string
            remediation: string
            version: 2
        links:
          - href: ...
            method: ...
            rel: ...
            uri: ...
    listResourceRevisionRepresentation:
      summary: Get a list revision definition
      description: Here is an example of a response to a request to get a list revision.
      value:
        id: 3659ea38-2618-4474-aeac-0bf6cfd3c322
        listResourceId: 9ec45a61-774c-488e-99a0-03dfde70b966
        creationTimeStamp: 2022-03-01T20:18:32Z
        createdBy: appUser1
        description: The A-list users
        label: corporate marketing
        revision: 1
    listResourceRevisionCollection:
      summary: Get a collection of list revisions
      description: Here is an example of a response to a request to get a collection of revisions for a list.
      value:
        count: 5
        start: 0
        limit: 2
        items:
          - id: 3659ea38-2618-4474-aeac-0bf6cfd3c322
            listResourceId: 9ec45a61-774c-488e-99a0-03dfde70b966
            creationTimeStamp: 2022-03-01T20:18:32Z
            createdBy: appUser1
            description: The A-list users
            label: corporate marketing
            revision: 1
          - id: 9b967566-6dcb-427f-93b3-8b9be1a945c9
            listResourceId: 9ec45a61-774c-488e-99a0-03dfde70b966
            creationTimeStamp: 2022-03-02T20:18:32Z
            createdBy: appUser1
            description: The A-list users V2
            label: corporate marketing V2
            revision: 2
  parameters:
    ListId:
      name: listId
      in: path
      description: A universally unique identifier for a list.
      example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
      required: true
      schema:
        type: string
    StartCollectionQueryParam:
      name: start
      in: query
      description: A zero-based offset of the first item to return. The default value is '0'.
      example: 0
      schema:
        type: integer
    LimitCollectionQueryParam:
      name: limit
      in: query
      description: The maximum number of items to return. The default value is '20'.
      example: 100
      schema:
        type: integer
    FilterCollectionQueryParam:
      name: filter
      in: query
      description: The filter criteria for returned items. See [Filtering in REST APIs](https://developer.sas.com/rest-apis/listData-v6/docs/getting-started/usage-notes#filtering).
      schema:
        type: string
        format: filter-criteria
    SortByCollectionQueryParam:
      name: sortBy
      in: query
      description: A sort of the returned items. See [Sorting in REST APIs](https://developer.sas.com/rest-apis/listData-v6/docs/getting-started/usage-notes#sorting).
      schema:
        type: string
        format: sort-criteria
    FolderIdQueryParam:
      name: folderId
      in: query
      description: A universally unique identifier for a folder. The maximum number of lists that can be returned from a folder is 100000.
      example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
      required: false
      schema:
        type: string
    FolderIdPathParam:
      name: folderId
      in: path
      description: A universally unique identifier for a folder. The maximum number of lists that can be returned from a folder is 100000.
      example: 3659ea38-2618-4474-aeac-0bf6cfd3c322
      required: true
      schema:
        type: string
    RevisionNumberQueryParam:
      name: revision
      in: query
      description: The number of the revision of a list.
      example: 2
      required: false
      schema:
        type: number
