openapi: 3.0.3
info:
  version: "7"
  title: Folders
  contact:
    name: SAS Developers
    url: https://developer.sas.com
    email: devex@sas.com
  description: >
    The Folders API provides an organizational structure for SAS and external content. It can also be used for favorites folders or a history of objects accessed. The resources that are stored in folders (members) use a URI to point back to those resources. <H4><strong>Terminology:</strong></H4> <H4>folder</H4>
      <p> A virtual container for other folders, or any resource that can be represented
    with a URI.</p> <H4>member</H4>
      <p> A resource contained in a folder. A member can itself be a folder, creating
    a hierarchical structure for folders and subfolders. Members have two types: child and reference. A child member inherits authorizations from its container, and a given resource can be a child only in a single folder. Reference members do not inherit authorizations, and a resource can have many references in many different folders.
servers:
  - url: http://example.com/folders
    description: This is an example base URL.
tags:
  - name: Root
    description: Contains the operations for the root resource.
  - name: Folder
    description: Contains the operations for the folder resource.
  - name: Member
    description: Contains the operations for the folder member resource.
  - name: Metainfo
    description: Contains the operations that retrieve information about folders (such as ancestors, types, and so on).
paths:
  /:
    get:
      tags:
        - Root
      summary: Get a list of top-level links
      description: Returns a list of links to the top-level collections surfaced through this API. These top-level links include /folders and /ancestors.
      operationId: root
      responses:
        "200":
          description: The request succeeded.
          content:
            application/vnd.sas.api+json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersResponse"
  /rootFolders:
    get:
      tags:
        - Folder
      summary: Get a list of root folders
      description: Returns a list of root folders. Standard paging, filtering, and sorting options are provided.
      operationId: getRootFolders
      parameters:
        - name: start
          in: query
          description: 0-based offset of first folder to return. The default value is 0.
          schema:
            type: integer
        - name: limit
          in: query
          description: Maximum number of folders to return. The default value is 20.
          schema:
            type: integer
        - name: filter
          in: query
          description: "Filter criteria for returned folders. See [Filtering in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#filtering). <br>Any member of the Folder object can be used to filter the results: id, name, description, createdBy, modifiedBy, properties, type, or parent. Date fields currently cannot be used to filter results."
          schema:
            type: string
            format: filter-criteria
        - name: sortBy
          in: query
          description: Sort returned folder. See [Sorting in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#sorting).<br> The default sort order is name:ascending. Other valid sorting options are <li><code>added</code> the timestamp when the item was added to the folder</li> <li><code>name</code> the folder name </ul>
          schema:
            type: string
            format: sort-criteria
      responses:
        "200":
          description: The request succeeded.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersPagination"
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersPagination"
            application/json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersPagination"
        "400":
          description: The request was invalid. An invalid filter or combination of request parameters was provided.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  /folders:
    get:
      tags:
        - Folder
      summary: Get a list of folders
      description: Returns a list of folders. Standard paging, filtering, and sorting options are provided.
      operationId: getFolders
      parameters:
        - name: start
          in: query
          description: 0-based offset of first folder to return. The default value is 0.
          schema:
            type: integer
        - name: limit
          in: query
          description: Maximum number of folders to return. The default value is 20.
          schema:
            type: integer
        - name: filter
          in: query
          description: "Filter criteria for returned folders. See [Filtering in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#filtering). <br>Any member of the Folder object can be used to filter the results: id, name, description, createdBy, modifiedBy, properties, type, or parent. Date fields currently cannot be used to filter results. <br>Sample queries<br> <ul> <li>Get Root Folders: `/folders?filter=isNull(parent)`</li> <li>Get folders by name: `/folders?filter=contains(name, 'Sample')`</li> <li>Get folders by type: `/folders?filter=in(type, 'history', 'favorites')`</li> </ul>"
          schema:
            type: string
            format: filter-criteria
        - name: sortBy
          in: query
          description: Sort returned folder. See [Sorting in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#sorting).<br> The default sort order is name:ascending. Other valid sorting options are <ul><li><code>orderNum</code> the order specified by the user</li> <li><code>added</code> the timestamp when the item was added to the folder</li> <li><code>name</code> the folder name </ul>
          schema:
            type: string
            format: sort-criteria
        - name: childUri
          in: query
          description: Return only folders containing a child member with the specified URI. For now, childUri, referenceUri, memberUri, and filter are mutually exclusive. The childUri has special semantics, because it should return only a single item. The URL form `/folders/.?childUri={resourceUri}` can be used to return a single item.
          schema:
            type: string
            format: relative URI
        - name: referenceUri
          in: query
          description: Return only folders containing a reference member with the specified URI. For now, childUri, referenceUri, memberUri, and filter are mutually exclusive.
          schema:
            type: string
            format: relative URI
        - name: memberUri
          in: query
          description: Return only folders containing any member with the specified URI. For now, childUri, referenceUri, memberUri, and filter are mutually exclusive.
          schema:
            type: string
            format: relative URI
        - name: Accept-Language
          in: header
          description: Enumerates the languages that the client prefers to use for the response. This can be used to provide localized data where available.
          schema:
            type: string
        - name: Accept-Item
          in: header
          description: If provided, this should be an alternative media type that the service recognizes. If the media type is not one that the service can provide, a 406 response is returned.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersPagination"
            application/json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersPagination"
        "400":
          description: The request was invalid. An invalid filter or combination of request parameters was provided.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    post:
      tags:
        - Folder
      summary: Create a new folder
      description: Creates a new empty folder. Members can be added to the folder using the `/folders/{folderId}/members` endpoint. This service maintains name uniqueness at any given level in the folder structure. In other words, if you try to create a root folder named "newRootFolder", and a root folder with that name exists, the operation fails with a 409 status. If you try to create a subfolder using the `?parentFolderUri` parameter, and the parent already has a subfolder with the same name, the operation fails with a 409 status.
      operationId: createFolder
      parameters:
        - name: parentFolderUri
          in: query
          required: true
          description: URI of folder to add new folder as a child. This parameter is required. An explicit value of "none" indicates that the client wants to create a root folder.
          schema:
            type: string
            format: relative URI
      requestBody:
        $ref: "#/components/requestBodies/folderIncoming"
      responses:
        "201":
          description: A folder was created.
          headers:
            Location:
              description: The URI of the newly created folder.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/createFolder"
            application/json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/createFolder"
        "400":
          description: The request was invalid. The parentFolderUri is not a valid folder, or does not exist. A malformed request body also returns this status.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  /folders/@item:
    patch:
      tags:
        - Folder
      summary: Move the child member for a resource to a folder specified by the parentFolderUri
      description: Move the child member for the resource specified by childUri to the folder specified by parentFolderUri.
      operationId: patchMoveFolderItem
      parameters:
        - name: childUri
          in: query
          description: The URI of a resource whose parent folder is to be changed.
          schema:
            type: string
        - name: parentFolderUri
          in: query
          description: The URI of the target folder to move the resource to.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The resource was moved to the new target folder and the new parent returned.
          headers:
            Last-Modified:
              description: the ISO8601 date string representing the timestamp of the last update to this folder.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
            application/json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
        "400":
          description: The request was invalid. Either no path or childUri was provided in the request, or the request was not formatted correctly.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No resource with the given childUri was found as a child of any folder.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    get:
      tags:
        - Folder
      summary: Get a folder with a path or a child URI
      description: Get a folder with a resource wildcard. Either a path or a child URI is required. The result must be exactly one matching folder. If the childUri parameter is provided, the parent folder of the member with the matching URI is returned, if it exists. If the path is provided, it must be a slash-delimited path to the desired folder.
      operationId: getFolderItem
      parameters:
        - name: childUri
          in: query
          description: The URI of a resource whose parent folder you want to return. This can be a folder or non-folder resource.
          schema:
            type: string
        - name: path
          in: query
          description: The slash-delimited path to a folder. For example, `/root/child/grandchild/greatgrandchild` would return the folder greatgrandchild.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The folder was found and returned.
          headers:
            Last-Modified:
              description: the ISO8601 date string representing the timestamp of the last update to this folder.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
            application/json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
        "400":
          description: The request was invalid. Either no path or childUri was provided in the request, or the request was not formatted correctly.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path. No folder that matches the criteria exists.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  "/folders/{folderId}":
    get:
      tags:
        - Folder
      summary: Get a folder
      description: Returns the specified folder.
      operationId: getFolder
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder or one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: Accept-Language
          in: header
          description: Enumerates the languages that the client prefers to use for the response. This can be used to provide localized data where available.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The folder was returned.
          headers:
            Last-Modified:
              description: The RFC 1123 date string representing the timestamp of the last update to this folder.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
            application/json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
        "400":
          description: The request was invalid. An invalid delegate string was specified.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    head:
      tags:
        - Folder
      summary: Get a folder
      description: Returns the specified folder.
      operationId: headersForFolder
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder or one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: Accept-Language
          in: header
          description: Enumerates the languages that the client prefers to use for the response. This can be used to provide localized data where available.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The folder was returned.
          headers:
            Last-Modified:
              description: The RFC 1123 date string representing the timestamp of the last update to this folder.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
        "400":
          description: The request was invalid. An invalid delegate string was specified.
        "404":
          description: No folder exists at the requested path.
    delete:
      tags:
        - Folder
      summary: Delete a folder
      description: >
        The specified folder is deleted. If the folder is not empty, a recursive option can be specified to indicate a recursive delete. If the folder is not empty and no recursive option is present, an error response is returned. Any non-folder content is not deleted.
      operationId: deleteFolder
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder or one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: recursive
          in: query
          description: do a recursive delete of the folder
          schema:
            type: boolean
      responses:
        "204":
          description: The folder was deleted.
        "400":
          description: The request was invalid. The folder was not empty, and recursive=true was not specified.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "409":
          description: The request could not be completed due to a conflict with the current state of the resource. The folder has children, and recursive=true was not specified, or the folder contains non-folder children.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    put:
      tags:
        - Folder
      summary: Update a folder
      description: >
        Replaces an existing folder.
      operationId: updateFolder
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: If-Match
          in: header
          description: The ETag that was returned from a GET, POST, or PUT of this folder.
          schema:
            type: string
        - name: If-Unmodified-Since
          in: header
          description: The value of the lastModified date of the folder. If the folder has been updated since this time, the update fails.
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/folderIncoming"
      responses:
        "200":
          description: The request succeeded. The folder was updated.
          headers:
            Last-Modified:
              description: The ISO8601 date string representing the timestamp of the last update to this folder.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
            application/json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
        "400":
          description: The request was invalid.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "412":
          description: The `If-Match` request header did not match the resource's entity tag, or the `If-Unmodified-Since` request header did not match the resource's last modified timestamp.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    patch:
      tags:
        - Folder
      summary: Make a partial update to a folder
      description: >
        Updates the provided fields of a folder. The client can provide a sparsely populated object, and only the non-null fields contribute to the updates. A body such as { "name": "NewFolderName" } causes the folder to have its name changed, but no other field is affected. The full resulting object is returned in the response.
      operationId: patchFolder
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: If-Match
          in: header
          description: The ETag that was returned from a GET, POST, or PUT of this folder.
          schema:
            type: string
        - name: If-Unmodified-Since
          in: header
          description: The value of the lastModified date of the folder. If the folder has been updated since this time, the update fails.
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/folderIncoming"
      responses:
        "200":
          description: The request succeeded. The folder was updated.
          headers:
            Last-Modified:
              description: The RFC 1123 date string representing the timestamp of the last update to this folder.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
            application/json:
              schema:
                $ref: "#/components/schemas/folder"
              examples:
                json:
                  $ref: "#/components/examples/getSingleFolder"
        "400":
          description: The request was invalid. The JSON was malformed, or invalid for the request.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "409":
          description: The request could not be completed due to a conflict with the current state of the resource. Changing the name as requested would cause a naming conflict.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "412":
          description: The `If-Match` request header did not match the resource's entity tag, or the `If-Unmodified-Since` request header did not match the resource's last modified timestamp.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "422":
          description: The request cannot be processed. One or more elements of the body are invalid.
          content:
            application/vnd.sas.content.folder+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  "/folders/{folderId}/members":
    get:
      tags:
        - Member
      summary: Get a list of folder members
      description: >
        Returns a list of folder members. Standard paging, filtering, and sorting options are available. The media type of the returned collection items is application/vnd.sas.content.folder.member. Default sorting for this collection is name:ascending, unless the folder is of the history folder type. Default sorting for history folders is added:descending, which orders the elements starting with the most recently added.
      operationId: getFolderMembers
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: start
          in: query
          description: Offset of first member to return. The default value is 0.
          schema:
            type: integer
            format: int64
        - name: limit
          in: query
          description: Maximum number of members to return. The default value is 20.
          schema:
            type: integer
            format: int64
        - name: filter
          in: query
          description: "Filter criteria for returned members. See [Filtering in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#filtering). For example, you can filter for a member with a given name as a way to test if a folder already has a member with that name: <code>?filter=eq(name, 'bobsyouruncle')</code>"
          schema:
            type: string
        - name: sortBy
          in: query
          description: Sort returned collection of members. See [Sorting in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#sorting). The member collection can be sorted by folders first by using sortBy=eq(contentType,'folder'):descending Use :ascending to soft by folders last. Specifying sortBy=eq(contentType,'folder'):descending,name:ascending,type:ascending sorts by folders first, then by name, then by type.
          schema:
            type: string
        - name: recursive
          in: query
          description: If true, the members of the requested folder, plus all of its descendants, are returned in a flat list (no order is guaranteed). Reference members that refer to folders are not followed unless the followReferences parameter is true. The default value of this parameter is false.
          schema:
            type: boolean
        - name: followReferences
          in: query
          description: If true, references to other folders are followed when returning the recursive list of members. If recursive is false, then the value of this parameter is meaningless. The default value of this parameter is false.
          schema:
            type: boolean
        - name: Accept-Item
          in: header
          description: If provided, this should be an alternative media type that the service recognizes. If the media type is not one that the service can provide, a 406 response is returned. Valid media types for the member collection are application/vnd.sas.content.folder.member+json (default), application/vnd.sas.content.folder.member.summary+json (an abbreviated format that provides fewer links, but better performance), and application/vnd.sas.summary+json (a standard summary representation).
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: Enumerates the languages that the client prefers to use for the response. This can be used to provide localized data where available.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. A list of folder members was returned.
          headers:
            Content-Type:
              description: The content type of the response (application/vnd.sas.collection+json)
              schema:
                type: string
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/memberCollection"
              examples:
                json:
                  $ref: "#/components/examples/memberCollection"
            application/json:
              schema:
                $ref: "#/components/schemas/memberCollection"
              examples:
                json:
                  $ref: "#/components/examples/memberCollection"
        "400":
          description: The request was invalid. An invalid filter or combination of request parameters was provided.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    head:
      tags:
        - Member
      summary: Get a list of folder members
      description: >
        Returns a list of folder members. Standard paging, filtering, and sorting options are available. The media type of the returned collection items is application/vnd.sas.content.folder.member. Default sorting for this collection is name:ascending, unless the folder is of the history folder type. Default sorting for history folders is added:descending, which orders the elements starting with the most recently added.
      operationId: headersForFolderMembers
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: start
          in: query
          description: Offset of first member to return. The default value is 0.
          schema:
            type: integer
            format: int64
        - name: limit
          in: query
          description: Maximum number of members to return. The default value is 20.
          schema:
            type: integer
            format: int64
        - name: filter
          in: query
          description: "Filter criteria for returned members. See [Filtering in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#filtering). For example, you can filter for a member with a given name as a way to test if a folder already has a member with that name: <code>?filter=eq(name, 'bobsyouruncle')</code>"
          schema:
            type: string
        - name: sortBy
          in: query
          description: Sort returned collection of members. See [Sorting in REST APIs](https://developer.sas.com/rest-apis/folders-v6/docs/getting-started/usage-notes#sorting). The member collection can be sorted by folders first by using sortBy=eq(contentType,'folder'):descending Use :ascending to soft by folders last. Specifying sortBy=eq(contentType,'folder'):descending,name:ascending,type:ascending sorts by folders first, then by name, then by type.
          schema:
            type: string
        - name: recursive
          in: query
          description: If true, the members of the requested folder, plus all of its descendants, are returned in a flat list (no order is guaranteed). Reference members that refer to folders are not followed unless the followReferences parameter is true. The default value of this parameter is false.
          schema:
            type: boolean
        - name: followReferences
          in: query
          description: If true, references to other folders are followed when returning the recursive list of members. If recursive is false, then the value of this parameter is meaningless. The default value of this parameter is false.
          schema:
            type: boolean
        - name: Accept-Item
          in: header
          description: If provided, this should be an alternative media type that the service recognizes. If the media type is not one that the service can provide, a 406 response is returned. Valid media types for the member collection are application/vnd.sas.content.folder.member+json (default), application/vnd.sas.content.folder.member.summary+json (an abbreviated format that provides fewer links, but better performance), and application/vnd.sas.summary+json (a standard summary representation).
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: Enumerates the languages that the client prefers to use for the response. This can be used to provide localized data where available.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. A list of folder members was returned.
          headers:
            Content-Type:
              description: The content type of the response (application/vnd.sas.collection+json)
              schema:
                type: string
        "400":
          description: The request was invalid. An invalid filter or combination of request parameters was provided.
        "404":
          description: No folder exists at the requested path.
    post:
      tags:
        - Member
      summary: Add a member to a folder
      description: >
        Adds a new member to the folder. If the member type is 'child' and the object referenced is already a member of any folder (including the specified parent), this operation fails with a 409 status (conflict). If the object being added is a folder, this method checks that the name is unique (among other members that are of the same type). If a name collision occurs, a 409 status is returned.

        For SAS managed objects, certain member attributes stored in the folder (such as name and description) are synchronized with the attributes of the object identified by the member's URI, provided that the URI is accessible. As a result, the name stored for the member will be the name of the object at the URI, regardless of the name value supplied in the request body. Name uniqueness checks are based on the synchronized name, not the name in the request. If the URI is not accessible or does not reference a SAS managed object, the name and other attributes from the request body are used as provided.
      operationId: createFolderMember
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: abortOnMetadataFailure
          in: query
          description: If true, the member creation is aborted if the GET to retrieve the member metadata fails. If false, the member creation succeeds regardless of the metadata retrieval status. The default value is false.
          schema:
            type: boolean
        - name: forceMove
          in: query
          description: If true, if this is a creation of a child member and if the URI in the member already exists in another folder, the member is moved to the requested folder. If it is already a member of the requested folder, the request succeeds. The default value is false.
          schema:
            type: boolean
      requestBody:
        $ref: "#/components/requestBodies/memberIn"
      responses:
        "200":
          description: The request succeeded. The member was updated.
          headers:
            Location:
              description: The URI to the newly created object.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/createFolderMember"
            application/json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/createFolderMember"
        "201":
          description: A member was created.
          headers:
            Location:
              description: The URI of the newly created member.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
        "400":
          description: The request was invalid. There was an attempt to make a folder its own parent.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "409":
          description: The request could not be completed due to a conflict with the current state of the resource. The URI already exists as a child in this folder or another folder.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "422":
          description: History creation failed because the metadata retrieval failed.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  "/folders/{folderId}/members/{memberId}":
    get:
      tags:
        - Member
      summary: Get a folder member
      description: Returns the specified member.
      operationId: getFolderMember
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: memberId
          in: path
          description: Member id.
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The folder member was returned.
          headers:
            Last-Modified:
              description: The ISO8601 timestamp representing the last time this member was updated.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
            application/vnd.sas.content.folder.member.summary+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberRepSummary"
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberSummary"
            application/json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
        "404":
          description: No member exists at the requested path.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.content.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    head:
      tags:
        - Member
      summary: Get a folder member
      description: Returns the specified member.
      operationId: headersForFolderMember
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: memberId
          in: path
          description: Member id.
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded. The folder member was returned.
          headers:
            Last-Modified:
              description: The ISO8601 timestamp representing the last time this member was updated.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
        "404":
          description: No member exists at the requested path.
    delete:
      tags:
        - Member
      summary: Remove a member from a folder
      description: >
        Removes the specified member from the folder. <b>This does not delete the target resource.</b> The proper way to delete a resource is to use the resource's persistence service to delete it. Using that service generates an event that causes the folders service to clean up any members that have that target resource's URI.
      operationId: deleteFolderMember
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: memberId
          in: path
          description: Member id.
          required: true
          schema:
            type: string
      responses:
        "204":
          description: The member was deleted.
        "404":
          description: No member exists at the requested path.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    put:
      tags:
        - Member
      summary: Update a folder member
      description: >
        Replaces an existing folder member. Changing the parentUri affects a move operation. Neither the URI or the type of the member can be changed.
      operationId: updateFolderMember
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: memberId
          in: path
          description: Member id.
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: The ETag that was returned from a GET, POST, or PUT of this folder.
          schema:
            type: string
        - name: If-Unmodified-Since
          in: header
          description: The value of the lastModified date of the folder. If the folder has been updated since this time, the update fails.
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/memberIn"
      responses:
        "200":
          description: The request succeeded. The member was updated.
          headers:
            Last-Modified:
              description: The ISO8601 date string representing the timestamp of the last update to this member.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
        "400":
          description: The request was invalid. The JSON or some other element was malformed.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No member exists at the requested path.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "412":
          description: The `If-Match` request header did not match the resource's entity tag, or the `If-Unmodified-Since` request header did not match the resource's last modified timestamp. The ETag provided does not match the current version of the object, or the last modified date does not match.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    patch:
      tags:
        - Member
      summary: Make a partial update to a folder member
      description: >
        Updates the provided fields of a member. The client can provide a sparsely populated object, and only the non-null fields contribute to the updates. So, a body like { "name": "NewMemberName" } causes the member to have its name changed, but no other field is affected. The full resulting object is returned in the response.
      operationId: patchFolderMember
      parameters:
        - name: folderId
          in: path
          description: The identifier of a specific folder, or of one of the delegate strings @myFolder, @appDataFolder, @myHistory, @myFavorites, or @public.
          required: true
          schema:
            type: string
            format: object-id
        - name: memberId
          in: path
          description: Member id.
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: The ETag that was returned from a GET, POST, or PUT of this folder.
          schema:
            type: string
        - name: If-Unmodified-Since
          in: header
          description: The value of the lastModified date of the folder. If the folder has been updated since this time, the update fails.
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/memberIn"
      responses:
        "200":
          description: The request succeeded. The member was updated.
          headers:
            Last-Modified:
              description: The RFC 1123 date string representing the timestamp of the last update to this member.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
        "400":
          description: The request was invalid. The JSON or some other element was malformed.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No member exists at the requested path.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "409":
          description: The request could not be completed due to a conflict with the current state of the resource. The name change requested would create a naming conflict.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "412":
          description: The `If-Match` request header did not match the resource's entity tag, or the `If-Unmodified-Since` request header did not match the resource's last modified timestamp.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "422":
          description: One or more elements of the body is invalid.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  "/folders/{folderId}/histories":
    post:
      tags:
        - Member
      summary: Update the modification date for a history member
      description: >
        Updates the modification date for a history member. If the object URI exists as a reference in the history folder, the information including the added field is updated. If it does not exist, a new member is added, and an eviction is performed if the folder is already at the maximum members threshold.
      operationId: createHistory
      parameters:
        - name: folderId
          in: path
          description: "The identifier of a specific history folder, or the delegate string: @myHistory."
          required: true
          schema:
            type: string
            format: object-id
        - name: abortOnMetadataFailure
          in: query
          description: If true, if the GET to retrieve the member metadata fails, abort the member creation. If false, the member creation succeeds regardless of the metadata retrieval status. The default value is false.
          schema:
            type: boolean
      requestBody:
        $ref: "#/components/requestBodies/memberIn"
      responses:
        "200":
          description: The member was updated.
          headers:
            Location:
              description: The URI of the created or updated object.
              schema:
                type: string
            Last-Modified:
              description: The RFC 1123 timestamp representing the last time this member was updated.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
            application/vnd.sas.content.summary+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberSummary"
            application/json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
        "201":
          description: A member was created.
          headers:
            Location:
              description: The URI of the created or updated object.
              schema:
                type: string
            Last-Modified:
              description: The ISO8601 timestamp that represents the last time this member was updated.
              schema:
                type: string
            Etag:
              description: A tag that identifies this revision of this object.
              schema:
                type: string
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
            application/vnd.sas.content.summary+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberSummary"
            application/json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                json:
                  $ref: "#/components/examples/folderMemberResponse"
        "400":
          description: The request was invalid. A folder type other than a history folder was referenced, or the body does not contain valid JSON.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.content.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No folder exists at the requested path.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.content.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "422":
          description: History creation failed because the metadata retrieval failed.
          content:
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.content.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  /ancestors:
    post:
      tags:
        - Metainfo
      summary: Get ancestors for a list of resource URIs
      description: Get the ancestors of a set of URIs. Each URI is represented in the result as an Ancestor object.
      operationId: createBulkAncestors
      parameters:
        - name: allowPartialPath
          in: query
          description: Allow a partial path from the item if the user does not have access to all the folders in the path.
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
            examples:
              json:
                $ref: "#/components/examples/ancestorsRequestBody"
        description: The list of URIs for which to retrieve ancestry.
        required: true
      responses:
        "200":
          description: The ancestors for each URI was returned.
          content:
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/ancestorCollection"
              examples:
                json:
                  $ref: "#/components/examples/ancestorsResponseBody"
            application/json:
              schema:
                $ref: "#/components/schemas/ancestorCollection"
              examples:
                json:
                  $ref: "#/components/examples/ancestorsResponseBody"
        "400":
          description: The request was invalid. The body was malformed or is missing.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
    get:
      tags:
        - Metainfo
      summary: Get a resource's ancestors
      description: Get the ancestors of a resource by URI as a flat list, ordered starting with the parent folder of the resource, and continuing up to the root folder.
      operationId: getAncestors
      parameters:
        - name: childUri
          in: query
          description: The URI of the target resource whose ancestry is desired.
          required: true
          schema:
            type: string
        - name: allowPartialPath
          in: query
          description: Allow a partial path from the item if the user does not have access to all the folders in the path.
          schema:
            type: boolean
      responses:
        "200":
          description: The member was found and the ancestry was returned. In the case of a root folder, a 200 HTTP status code and an empty list of ancestors is returned.
          content:
            application/vnd.sas.content.folder.ancestor+json:
              schema:
                $ref: "#/components/schemas/ancestor"
              examples:
                json:
                  $ref: "#/components/examples/ancestorsSingleResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/ancestor"
              examples:
                json:
                  $ref: "#/components/examples/ancestorsSingleResponse"
        "204":
          description: No ancestors were found for the URI.
        "400":
          description: No childUri parameter was provided.
          content:
            application/vnd.sas.content.folder.ancestor+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  /folderTypes:
    get:
      tags:
        - Metainfo
      summary: Get a list of acceptable folder types
      description: Retrieves the list of folder types that are recognized by the folders service. Returns a collection of application/vnd.sas.content.folder.type+json objects.
      operationId: getFolderTypes
      responses:
        "200":
          description: The request succeeded.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/folderTypeCollection"
              examples:
                json:
                  $ref: "#/components/examples/folderTypesResponse"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/folderTypeCollection"
              examples:
                json:
                  $ref: "#/components/examples/folderTypesResponse"
  /delegateInfo:
    get:
      tags:
        - Metainfo
      summary: Get a list of known delegate-represented folders
      description: Returns the set of delegates known to the folders service.
      operationId: getDelegateInfo
      responses:
        "200":
          description: The request succeeded.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/delegateCollection"
              examples:
                json:
                  $ref: "#/components/examples/delegateInfoResponse"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/delegateCollection"
              examples:
                json:
                  $ref: "#/components/examples/delegateInfoResponse"
  /delegateFolders:
    get:
      tags:
        - Folder
      summary: Get the folders for a given set of delegate names
      description: Returns the folders for the given set of delegate names, or all delegate folders if no names are provided.
      operationId: getDelegateFolders
      parameters:
        - name: name
          in: query
          description: The name of the delegate (including the leading '@') desired. Multiple values of the name parameter can be provided.
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersPagination"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/folderCollection"
              examples:
                json:
                  $ref: "#/components/examples/getFoldersPagination"
  /paths:
    post:
      tags:
        - Folder
      summary: Find an object by path
      description: Find an object, if it exists, by path. The client provides an ordered list of parent folder names, the object name, and the object content type and, if needed, the matching object type definition name (typeDefName). By default, returns a common summary representation of the object, but the client can request the full member representation of a subfolder or member object by using an appropriate Accept header.
      operationId: findByPath
      requestBody:
        content:
          application/vnd.sas.content.folder.path+json:
            schema:
              $ref: "#/components/schemas/path"
            examples:
              subfolder:
                $ref: "#/components/examples/findByPathSubfolderRequest"
              member:
                $ref: "#/components/examples/findByPathNonFolderMemberRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/path"
            examples:
              subfolder:
                $ref: "#/components/examples/findByPathSubfolderRequest"
              member:
                $ref: "#/components/examples/findByPathNonFolderMemberRequest"
        description: >
          The set of parent names, the object name, the object content type, and optionally,

          the object type definition name.
        required: true
      responses:
        "200":
          description: The object was found and returned in the requested representation.
          content:
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/summary"
              examples:
                subfolder:
                  $ref: "#/components/examples/folderSummary"
                member:
                  $ref: "#/components/examples/folderMemberSummary"
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/member"
              examples:
                subfolder:
                  $ref: "#/components/examples/subfolderAsMemberRep"
                member:
                  $ref: "#/components/examples/nonFolderMemberAsMemberRep"
            application/json:
              schema:
                $ref: "#/components/schemas/summary"
              examples:
                subfolder:
                  $ref: "#/components/examples/folderSummary"
                member:
                  $ref: "#/components/examples/folderMemberSummary"
        "400":
          description: The request was invalid. The request body was malformed or is absent.
          content:
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "404":
          description: No object with the specified type exists at the requested path.
          content:
            application/vnd.sas.summary+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/vnd.sas.content.folder.member+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
  "/commons/catalog/folders/{folderId}":
    get:
      tags:
        - Folder
      summary: Return a metadata archive for the requested folder
      description: >
        This endpoint is used by the catalog service to retrieve information from a folder so that the members can be searched and displayed.
      operationId: getCatalogFolder
      parameters:
        - name: folderId
          in: path
          description: The identifier of the folder to catalog.
          schema:
            type: string
          required: true
      responses:
        "200":
          description: The request was successfully processed. The body contains the resulting metadata archive.
          content:
            application/vnd.sas.metadata.archive+json:
              schema:
                $ref: "#/components/schemas/metadataArchive"
              examples:
                json:
                  $ref: "#/components/examples/metadataArchiveResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/metadataArchive"
              examples:
                json:
                  $ref: "#/components/examples/metadataArchiveResponse"
  "/commons/validations/folders/{folderId}/members/{memberId}/name":
    put:
      tags:
        - Member
      summary: Validate that a member can be named or renamed to the given value without creating a conflict
      description: >
        This endpoint can be used by a client to test whether creating or renaming a member would create a naming conflict before actually attempting the operation. When creating a new member, a memberId of @new indicates that the attempted operation would create a new member, where a folderId of @root is a placeholder representing the root level of the folder hierarchy. For example,<br> PUT /commons/validations/folders/@root/members/@new/name?value=TestFolder1&type=folder<br> would check if one could successfully create a root folder named TestFolder1 and respond appropriately.<br> PUT /commons/validations/folders/@myFolder/members/@new/name?value=TestReport1&type=report<br> would check whether a new member named TestReport1 of type report could be added to the user's My Folder.
      operationId: validateMemberName
      parameters:
        - name: folderId
          in: path
          description: The identifier of the folder whose members are to be checked. A value of @root indicates checking a root-level folder, and type must be folder.
          required: true
          schema:
            type: string
        - name: memberId
          in: path
          description: If a rename is being attempted, the identifier of the member being renamed. If a new member is being created, the @new placeholder is used.
          required: true
          schema:
            type: string
        - name: value
          in: query
          description: The name to be tested.
          required: true
          schema:
            type: string
        - name: type
          in: query
          description: The type of the member to be tested. Members of the same type have to be named uniquely, so both the new name and type are required. The value of the type parameter should be the same as the type attribute returned in the summary representation of the underlying resource object.
          required: true
          schema:
            type: string
        - name: typeDefName
          in: query
          description: The Type definition name to test against. This must match exactly with the desired value. A null value is compared with null values in the repository. If the underlying reource object returns a typeDefName in the summary representation, that value should be provided.
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request was successfully processed. The body contains the result, whether the name/type is acceptable.
          content:
            application/vnd.sas.validation+json:
              schema:
                $ref: "#/components/schemas/validation"
              examples:
                json:
                  $ref: "#/components/examples/validationTypeSuccessResponse"
        "204":
          description: The name is acceptable. The Accept header was application/json, so no further data is returned.
        "400":
          description: The request was invalid.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
        "409":
          description: The supplied name would create a conflict
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/errorResponse"
              examples:
                json:
                  $ref: "#/components/examples/errorResponse"
components:
  requestBodies:
    folderIncoming:
      content:
        application/vnd.sas.content.folder+json:
          schema:
            $ref: "#/components/schemas/folderIn"
          examples:
            json:
              $ref: "#/components/examples/folderBody"
        application/json:
          schema:
            $ref: "#/components/schemas/folderIn"
          examples:
            json:
              $ref: "#/components/examples/folderBody"
      description: Folder
    memberIn:
      content:
        application/vnd.sas.content.folder.member+json:
          schema:
            $ref: "#/components/schemas/memberIn"
          examples:
            json:
              $ref: "#/components/examples/folderMemberBody"
        application/json:
          schema:
            $ref: "#/components/schemas/memberIn"
          examples:
            json:
              $ref: "#/components/examples/folderMemberBody"
      description: Member
  schemas:
    baseCollection:
      description: This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2)
      properties:
        name:
          type: string
          description: The name of the collection.
        start:
          type: integer
          description: The zero-based index of the first item in the collection.
        limit:
          type: integer
          description: The number of items that were requested for the collection.
        count:
          type: integer
          description: If populated indicates the number of items in the collection.
          format: int64
        accept:
          type: string
          description: A space-delimited list of media types from which an `Accept` header can be constructed.
        links:
          type: array
          description: The links that apply to the collection.
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the collection representation. This representation is version 2.
    errorResponse:
      title: Error
      description: The representation of an error.
      type: object
      required:
        - httpStatusCode
        - 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.
        errors:
          type: array
          description: Any additional errors that occurred
          items:
            $ref: "#/components/schemas/errorResponse"
        links:
          type: array
          description: The links that apply to the error.
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the error representation. This representation is version 2.
    link:
      title: Link
      description: A link to a related operation or resource.
      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.
        type:
          type: string
          description: The media type consumed/produced.
    summary:
      title: Resource Summary
      description: The summarized representation of a resource. Often used in collection responses when more specific details are not needed.
      required:
        - id
        - links
        - version
      properties:
        id:
          type: string
          description: The unique identifier for the resource.
        name:
          type: string
          description: The name of the resource.
        type:
          type: string
          description: The type of the resource.
        description:
          type: string
          description: The description of the resource.
        createdBy:
          type: string
          description: The user who created the resource.
        creationTimeStamp:
          type: string
          format: date-time
          description: The timestamp in YYYY-MM-DDThh:mm:ss.sssZ format when the resource was created.
        modifiedBy:
          type: string
          description: The user who most recently modified the resource.
        modifiedTimeStamp:
          type: string
          format: date-time
          description: The timestamp in YYYY-MM-DDThh:mm:ss.sssZ format when the resource was last modified.
        links:
          type: array
          description: The links that apply to the resource.
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the resource. This representation is version 1.
    validation:
      title: Validation Response
      description: The response from a pre-flight validation request. For APIs that support validation, the client can run operations (typically on resources in the `/commons/validation`) with `application/vnd.sas.validation+json` as the requested response type (via the `Accept:` request header). The service validates the request but does not execute the request, and returns this response to indicate whether the request was valid at the time it was made.
      required:
        - version
        - valid
      properties:
        version:
          description: This media type's schema version number. This representation is version 1.
          type: integer
        valid:
          description: "`true` if and only if the validation was successful."
          type: boolean
        error:
          $ref: "#/components/schemas/errorResponse"
        links:
          type: array
          description: An array of links to related resources and actions.
          items:
            $ref: "#/components/schemas/link"
    folderIn:
      title: Folder Schema
      description: The schema for creating a new folder.
      required:
        - name
      properties:
        name:
          type: string
          description: Localizable folder name.
        description:
          type: string
          description: Localizable folder description.
        type:
          type: string
          description: Specialized subtype for this folder. The default value is 'folder'.
          default: folder
        parentFolderUri:
          type: string
          description: >
            The URI of this folder's parent folder. This is writable by the client. In order to perform a move, PUT this folder with an updated parentFolderUri pointing to the new parent. It is valid for this field to be null, which indicates a root folder.
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
      example:
        name: Test Folder 1
        description: A Test Folder
        type: folder
    folder:
      title: Folder
      description: The full representation of a folder object.
      properties:
        id:
          type: string
          format: object-id
          description: Folder id.
        name:
          type: string
          description: Localizable folder name.
        description:
          type: string
          description: Folder description.
        parentFolderUri:
          type: string
          description: >
            The URI of this folder's parent folder. This is writable by the client. In order to perform a move, PUT this folder with an updated parentFolderUri pointing to the new parent. It is valid for this field to be null, which indicates a root folder.
        creationTimeStamp:
          type: string
          format: date-time
          description: Timestamp of folder creation.
        modifiedTimeStamp:
          type: string
          format: date-time
          description: Timestamp of last folder modification.
        createdBy:
          type: string
          description: The name of the user who created this folder.
        modifiedBy:
          type: string
          description: The name of the last user who modified this object.
        type:
          type: string
          description: >
            The folder type.
        iconUri:
          type: string
          format: relative URI
          description: The folder icon URI.
        memberCount:
          type: integer
          description: The number of members in the folder.
        links:
          type: array
          description: Links that apply to this object. Includes "self", "members", and "delete".
          items:
            $ref: "#/components/schemas/link"
        properties:
          type: object
          description: A collection of name/value pairs that help describe the folder.
          additionalProperties:
            type: string
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
    memberIn:
      title: Member Schema
      description: The schema for creating a new folder member.
      required:
        - name
        - uri
        - type
      properties:
        uri:
          type: string
          format: relative URI
          description: >
            The URI of the item that the member represents. The service does not make any attempt to validate this field, so it can be anything. However, if this is a folder, it MUST be the folder's URI. It should come from the folder's "self" link, and not be assembled from pieces.
        type:
          type: string
          description: >
            Must be "child" or "reference". Child members are deleted when the parent folder is deleted. Child members that rely on SAS authorization checking inherit authorization settings from the parent folder. An object can be a child of one and only one folder. Reference members have no such restrictions. Any member object can be referenced from an unrestricted number of containers.
        parentFolderUri:
          type: string
          description: >
            The URI of this member's parent folder. This is writable by the client. In order to perform a move, PUT this member with an updated parentFolderUri pointing to the new parent.
        name:
          type: string
          description: >
            Localizable name of the member object. This attribute is persisted with the folder for performance reasons. For SAS managed objects, this value is synchronized with the name attribute of the object at the specified URI when the URI is accessible. In that case, the value supplied in the request is overridden, so callers should supply the actual name of the object without modification. If the URI is not accessible or does not reference a SAS managed object, the name value from the request is used as provided.
        description:
          type: string
          description: >
            Localizable description of the member object. Member attribute is synchronized with attribute of member object for SAS managed objects.
        creationTimeStamp:
          type: string
          format: date-time
          description: >
            Timestamp of member object creation. Member attribute is synchronized with attribute of member object for SAS managed objects.
        modifiedTimeStamp:
          type: string
          format: date-time
          description: >
            Timestamp of last member object modification. Member attribute is synchronized with attribute of member object for SAS managed objects.
        contentType:
          type: string
          description: >
            Member object type. Member attribute is synchronized with attribute of member object for SAS managed objects.
        typeDefName:
          type: string
          description: >
            (version 2) If the resource has a subtype that applies, the client can specify it when creating the member. This gives the client navigating the members more information for filtering, sorting, or searching for matching members.
        iconUri:
          type: string
          format: relative URI
          description: >
            Member object icon URI. Member attribute is synchronized with attribute of member object for SAS managed objects.
        orderNum:
          type: integer
          description: >
            Optional ordering specifier to provide user ordering of members. When retrieving members, if no other ordering is specified, members are ordered by this field in ascending order. The values do not have to be sequential; the results are ordered according to the values provided. The values also do not have to be unique. However, duplicates result in arbitrary ordering of records with duplicate values.
        version:
          type: integer
          description: This media type's schema version number. This representation is version 2.
      example:
        name: Test Object
        type: child
        uri: /objekts/e8cdb3af-30d8-423d-92a1-6f3bf1dffbb9
        contentType: objekt
    member:
      title: Member
      description: The full representation of a folder member.
      properties:
        id:
          type: string
          format: object-id
          description: Member id.
        uri:
          type: string
          format: relative URI
          description: >
            The URI of the item that the member represents. The service does not make any attempt to validate this field, so it can be anything. However, if this is a folder, it MUST be the folder's URI. It should come from the folder's "self" link, and not be assembled from pieces.
        added:
          type: string
          format: date-time
          description: Timestamp when member was last added to folder.
        type:
          type: string
          description: >
            Must be "child" or "reference". Child members are deleted when the  parent folder is deleted. Child members that rely on SAS authorization checking inherit authorization settings from the parent folder. An object can be a child of one and only one folder. Reference members have no such restrictions. Any member object can be referenced from an unrestricted number of containers.
        parentFolderUri:
          type: string
          description: >
            The URI of this member's parent folder. This is writable by the client. In order to perform a move, PUT this member with an updated parentFolderUri pointing to the new parent.
        name:
          type: string
          description: >
            Localizable name of the member object. This attribute is persisted with the folder for performance reasons. For SAS managed objects, this value is synchronized with the name attribute of the object at the specified URI when the URI is accessible. In that case, the value supplied in the request is overridden, so callers should supply the actual name of the object without modification. If the URI is not accessible or does not reference a SAS managed object, the name value from the request is used as provided.
        description:
          type: string
          description: >
            Localizable description of the member object. Member attribute is synchronized with attribute of member object for SAS managed objects.
        createdBy:
          type: string
          description: >
            The user name of the user who created the object represented by this member.
        creationTimeStamp:
          type: string
          format: date-time
          description: >
            Timestamp of member object creation. Member attribute is synchronized with attribute of member object for SAS managed objects.
        modifiedBy:
          type: string
          description: >
            The user name of the user who last modified the object represented by this member.
        modifiedTimeStamp:
          type: string
          format: date-time
          description: >
            Timestamp of last member object modification. Member attribute is synchronized with attribute of member object for SAS managed objects.
        contentType:
          type: string
          description: >
            Member object type. Member attribute is synchronized with attribute of member object for SAS managed objects.
        typeDefName:
          type: string
          description: >
            (version 2) If the resource has a subtype that applies, the client can specify it when creating the member. This gives the client navigating the members more information for filtering, sorting, or searching for matching members.
        iconUri:
          type: string
          format: relative URI
          description: >
            Member object icon URI. Member attribute is synchronized with attribute of member object for SAS managed objects.
        orderNum:
          type: integer
          description: >
            Optional ordering specifier to provide user ordering of members. When retrieving members, if no other ordering is specified, members are ordered by this field in ascending order. The values do not have to be sequential; the results are ordered according to the values provided. They also do not have to be unique. However, duplicates result in arbitrary ordering of records with duplicate values.
        links:
          type: array
          description: Links that apply to this object. Links for members include "self" and "delete".
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: This media type's schema version number. This representation is version 2.
    folderCollection:
      title: Folder Collection
      description: A collection of folders.
      allOf:
        - $ref: "#/components/schemas/baseCollection"
        - type: object
          properties:
            items:
              type: array
              description: The actual results of a query.
              items:
                $ref: "#/components/schemas/folder"
    memberCollection:
      title: Member Collection
      description: A collection of folder members.
      allOf:
        - $ref: "#/components/schemas/baseCollection"
        - type: object
          properties:
            items:
              type: array
              description: The actual results of a query.
              items:
                $ref: "#/components/schemas/member"
    ancestor:
      title: Ancestor Type
      description: An ancestor entry that is returned from an ancestor's request.
      properties:
        childUri:
          type: string
          description: The URI whose ancestry was requested.
        ancestors:
          type: array
          description: An ordered list of the folders that parent the URI, starting with the immediate parent.
          items:
            $ref: "#/components/schemas/folder"
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
    ancestorCollection:
      title: Ancestor Collection
      description: A collection of ancestor entries that are returned from an ancestors request.
      allOf:
        - $ref: "#/components/schemas/baseCollection"
        - type: object
          properties:
            items:
              type: array
              description: The collection of ancestor results.
              items:
                $ref: "#/components/schemas/ancestor"
    folderType:
      title: Folder Type
      description: A representation of a folder type.
      properties:
        name:
          type: string
          description: The name of the folder type. This is the value that goes in the type field of a folder.
        label:
          type: string
          description: The localizable label that can be presented to a user.
        userAssignable:
          type: boolean
          description: True if the type is acceptable to use in a folder being created by a client.
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
    folderTypeCollection:
      title: Folder Type Collection
      description: A collection of folder types.
      allOf:
        - $ref: "#/components/schemas/baseCollection"
        - type: object
          properties:
            items:
              type: array
              description: The collection of folder types.
              items:
                $ref: "#/components/schemas/folderType"
    delegate:
      title: Delegate
      description: A representation of a delegate identifier that is recognized by the Folders API.
      properties:
        name:
          type: string
          description: The delegate name, always starting with '@'.
        folderName:
          type: string
          description: The folder name of the delegate, for example, for @myFolder, My Folder.
        folderType:
          type: string
          description: The value of the type field for this delegate. For example, for @myFolder, myFolder.
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
    delegateCollection:
      title: Delegate Collection
      description: A collection of delegate objects.
      allOf:
        - $ref: "#/components/schemas/baseCollection"
        - type: object
          properties:
            items:
              type: array
              description: The collection of delegate definitions.
              items:
                $ref: "#/components/schemas/delegate"
    path:
      title: Path
      description: A representation of a path request.
      required:
        - items
        - contentType
      properties:
        items:
          type: array
          description: An ordered list of parent folder names, with the desired object's name at the end of the list. Required.
          items:
            type: string
        contentType:
          type: string
          description: The content type of the object to return. Must match the persisted content type of the Member entry. This is usually not a media type. Use "folder" when requesting root or subfolders. Required.
        typeDefName:
          type: string
          description: The type definition name of the member being requested. Must match the persisted type definition name (if any) of the Member entry. Omit for folders and members that do not have a type definition name.
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
    metadataArchive:
      title: A metadata archive
      description: A collection of data sufficient to catalog a set of entities and relationships.
      properties:
        anchor:
          type: object
          description: The anchor object for the archive. Any entity that does not override it uses this as an anchor.
          properties:
            uri:
              type: string
              description: The resource URI of the anchor object.
            instanceId:
              type: string
              description: The unique identifier for the instance of the anchor object.
        entities:
          type: array
          description: The entities being cataloged.
          items:
            type: object
            properties:
              creationTimeStamp:
                type: string
                description: The timestamp when the resource was created.
              modifiedTimeStamp:
                type: string
                description: The timestamp when the resource was last updated.
              instanceId:
                type: string
                description: The unique identifier of the resource.
              name:
                type: string
                description: The name of the resource.
              type:
                type: string
                description: The type of the resource.
              uri:
                type: string
                description: The resource URI of the resource being cataloged.
        relationships:
          type: array
          description: The relationships between the entities being cataloged.
          items:
            type: object
            properties:
              creationTimeStamp:
                type: string
                description: The timestamp when the resource was created.
              modifiedTimeStamp:
                type: string
                description: The timestamp when the resource was last modified.
              type:
                type: string
                description: The type of relationship between the resources.
              endpoint1Uri:
                type: string
                description: The resource URI of the first object in the relationship.
              endpoint2Uri:
                type: string
                description: The resource URI of the second object in the relationship.
        version:
          type: integer
          description: The version of the archive representation.
  examples:
    getFoldersResponse:
      summary: Response to GET folders API root links.
      description: Here is an example of using the GET request to retrieve the application/vnd.sas.api+json representation of the APIs top-level links.
      value:
        version: 1
        links:
          - method: GET
            rel: folders
            href: /folders/folders
            uri: /folders/folders
            type: application/vnd.sas.collection
          - method: POST
            rel: createFolder
            href: /folders/folders
            uri: /folders/folders
            type: application/vnd.sas.content.folder
          - method: GET
            rel: rootFolders
            href: /folders/rootFolders
            uri: /folders/rootFolders
            type: application/vnd.sas.collection
          - method: GET
            rel: folderTypes
            href: /folders/folderTypes
            uri: /folders/folderTypes
            type: application/vnd.sas.collection
          - method: GET
            rel: delegateInfo
            href: /folders/delegateInfo
            uri: /folders/delegateInfo
            type: application/vnd.sas.collection
          - method: GET
            rel: delegateFolders
            href: /folders/delegateFolders
            uri: /folders/delegateFolders
            type: application/vnd.sas.collection
          - method: PUT
            rel: validateRootFolderName
            href: /folders/commons/validations/folders/@root/members/@new/name?value={newname}&type=folder
            uri: /folders/commons/validations/folders/@root/members/@new/name?value={newname}&type=folder
            type: application/vnd.sas.validation
          - method: GET
            rel: ancestors
            href: /folders/ancestors?childUri={resourceUri}
            uri: /folders/ancestors?childUri={resourceUri}
            type: application/vnd.sas.content.folder.ancestor
          - method: GET
            rel: myFolder
            href: /folders/folders/@myFolder
            uri: /folders/folders/@myFolder
            type: application/vnd.sas.content.folder
            title: My Folder for Current User
          - method: GET
            rel: myHistory
            href: /folders/folders/@myHistory
            uri: /folders/folders/@myHistory
            type: application/vnd.sas.content.folder
            title: My History Folder for Current User
          - method: GET
            rel: myFavorites
            href: /folders/folders/@myFavorites
            uri: /folders/folders/@myFavorites
            type: application/vnd.sas.content.folder
            title: My Favorites Folder for Current User
          - method: GET
            rel: appData
            href: /folders/folders/@appDataFolder
            uri: /folders/folders/@appDataFolder
            type: application/vnd.sas.content.folder
            title: Application Data Folder for Current User
          - method: GET
            rel: recycleBin
            href: /folders/folders/@myRecycleBin
            uri: /folders/folders/@myRecycleBin
            type: application/vnd.sas.content.folder
            title: Recycle Bin Folder for Current User
          - method: GET
            rel: public
            href: /folders/folders/@public
            uri: /folders/folders/@public
            type: application/vnd.sas.content.folder
            title: Public Folder
          - method: GET
            rel: products
            href: /folders/folders/@products
            uri: /folders/folders/@products
            type: application/vnd.sas.content.folder
            title: Products Folder
          - method: PUT
            rel: validateName
            href: /folders/commons/validations/folders/@new/name?value={newname}&parentFolderUri={parentFolderUri}
            uri: /folders/commons/validations/folders/@new/name?value={newname}&parentFolderUri={parentFolderUri}
            type: application/vnd.sas.content.folder
            title: Validate New Folder Name
          - method: POST
            rel: createSubfolder
            href: /folders/folders?parentFolderUri=/folders/folders/{parentId}
            uri: /folders/folders?parentFolderUri=/folders/folders/{parentId}
            type: application/vnd.sas.content.folder
    getFoldersPagination:
      summary: Response to GET folders.
      description: An example of a resource collection containing folders.
      value:
        links:
          - method: GET
            rel: collection
            href: /folders/folders
            uri: /folders/folders
            type: application/vnd.sas.collection
          - method: GET
            rel: self
            href: /folders/folders?start=0&limit=20
            uri: /folders/folders?start=0&limit=20
            type: application/vnd.sas.collection
          - method: POST
            rel: createFolder
            href: /folders/folders
            uri: /folders/folders
            type: application/vnd.sas.content.folder
            responseType: application/vnd.sas.content.folder
        name: folders
        accept: application/vnd.sas.content.folder
        start: 0
        items:
          - creationTimeStamp: 2020-10-27T16:26:54.618197Z
            createdBy: omitest
            modifiedTimeStamp: 2020-10-27T16:26:54.618198Z
            modifiedBy: omitest
            version: 1
            id: b156020a-83f1-41c2-9d63-fe49780526dc
            name: Samples
            parentFolderUri: /folders/folders/804ea126-e12b-42ee-b9c4-40cb79db222b
            type: folder
            memberCount: 7
            links:
              - method: GET
                rel: self
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                type: application/vnd.sas.content.folder
              - method: PUT
                rel: update
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                type: application/vnd.sas.content.folder
                responseType: application/vnd.sas.content.folder
              - method: DELETE
                rel: delete
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
              - method: DELETE
                rel: deleteRecursively
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc?recursive=true
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc?recursive=true
              - method: GET
                rel: members
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc/members
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc/members
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.content.folder
              - method: POST
                rel: addMember
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc/members
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc/members
                type: application/vnd.sas.content.folder.member
                responseType: application/vnd.sas.content.folder.member
              - method: GET
                rel: up
                href: /folders/folders/804ea126-e12b-42ee-b9c4-40cb79db222b
                uri: /folders/folders/804ea126-e12b-42ee-b9c4-40cb79db222b
                type: application/vnd.sas.content.folder
              - method: GET
                rel: ancestors
                href: /folders/ancestors?childUri=/folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                uri: /folders/ancestors?childUri=/folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                type: application/vnd.sas.content.folder.ancestor
              - method: POST
                rel: createChild
                href: /folders/folders?parentFolderUri=/folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                uri: /folders/folders?parentFolderUri=/folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                type: application/vnd.sas.content.folder
              - method: PUT
                rel: validateRename
                href: /folders/commons/validations/folders/804ea126-e12b-42ee-b9c4-40cb79db222b/members/0ab9120e-2cbc-4de8-8b6e-e8d81b60d982/name?value={newname}&type=folder
                uri: /folders/commons/validations/folders/804ea126-e12b-42ee-b9c4-40cb79db222b/members/0ab9120e-2cbc-4de8-8b6e-e8d81b60d982/name?value={newname}&type=folder
                type: application/vnd.sas.validation
              - method: PUT
                rel: validateNewMemberName
                href: /folders/commons/validations/folders/b156020a-83f1-41c2-9d63-fe49780526dc/members/@new/name?value={newname}&type={newtype}
                uri: /folders/commons/validations/folders/b156020a-83f1-41c2-9d63-fe49780526dc/members/@new/name?value={newname}&type={newtype}
                type: application/vnd.sas.validation
              - method: GET
                rel: transferExport
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                responseType: application/vnd.sas.transfer.object
              - method: PUT
                rel: transferImportUpdate
                href: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                uri: /folders/folders/b156020a-83f1-41c2-9d63-fe49780526dc
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
              - method: POST
                rel: transferImport
                href: /folders/folders
                uri: /folders/folders
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
          - ? <item 2>
          - ? <item 3>
          - ? etc. to item 20
        limit: 20
        version: 2
    getSingleFolder:
      summary: Response with a single folder
      description: Here is an example of using a GET request for a folder.
      value:
        creationTimeStamp: 2019-08-08T12:53:51.309Z
        modifiedTimeStamp: 2019-08-08T12:53:51.309Z
        createdBy: testuser
        modifiedBy: testuser
        id: 6e6aa6e9-7c6a-4491-84fd-84051031a44d
        name: My Folder
        parentFolderUri: /folders/folders/f210f767-7f3a-4109-849b-f1b7d1c5d11a
        description: My Folder for testuser
        type: myFolder
        memberCount: 0
        properties:
          allowMove: "false"
        links:
          - method: GET
            rel: self
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            type: application/vnd.sas.content.folder
          - method: GET
            rel: up
            href: /folders/folders/f210f767-7f3a-4109-849b-f1b7d1c5d11a
            uri: /folders/folders/f210f767-7f3a-4109-849b-f1b7d1c5d11a
            type: application/vnd.sas.content.folder
          - method: PUT
            rel: validateNewMemberName
            href: /folders/commons/validations/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/@new/name?value={newname}&type={newtype}
            uri: /folders/commons/validations/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/@new/name?value={newname}&type={newtype}
          - method: GET
            rel: ancestors
            href: /folders/ancestors?childUri=/folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            uri: /folders/ancestors?childUri=/folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            type: application/vnd.sas.content.folder.ancestor
          - method: DELETE
            rel: delete
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
          - method: DELETE
            rel: deleteRecursively
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d?recursive=true
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d?recursive=true
          - method: GET
            rel: members
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.content.folder.member
          - method: POST
            rel: addMember
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members
            type: application/vnd.sas.content.folder.member
          - method: POST
            rel: createChild
            href: /folders/folders?parentFolderUri=/folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            uri: /folders/folders?parentFolderUri=/folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            type: application/vnd.sas.content.folder
          - method: GET
            rel: transferExport
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            responseType: application/vnd.sas.transfer.object
          - method: PUT
            rel: transferImportUpdate
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
        version: 1
    folderSummary:
      summary: summary representation of a folder
      description: A briefer version of the folder representation
      value:
        creationTimeStamp: 2022-06-17T16:37:34.817185Z
        createdBy: sas.themes
        modifiedTimeStamp: 2022-06-17T16:37:34.817186Z
        modifiedBy: sas.themes
        version: 2
        id: 6d252540-07d7-49ef-b508-b3b7d9a505f1
        name: SAS Theme Designer
        description: SAS Theme Designer folder
        type: folder
        links:
          - method: GET
            rel: self
            href: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            uri: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            type: application/vnd.sas.content.folder
          - method: GET
            rel: alternate
            href: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            uri: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            type: application/vnd.sas.summary
    createFolder:
      summary: Response to POST /folders/folders?parentFolderUri=/folders/folders/@myFolder
      description: Here is an example of using a POST request to create a new folder in the parentFolder @myFolder
      value:
        creationTimeStamp: 2019-08-08T12:55:20.420Z
        modifiedTimeStamp: 2019-08-08T12:55:20.420Z
        createdBy: testuser
        modifiedBy: testuser
        id: f3277e88-01f2-4f2f-9ce2-cb575e849238
        name: Test Folder 1
        parentFolderUri: /folders/folders/c0e8ccf9-ac43-4303-a1ce-40d7ffbd7450
        type: folder
        memberCount: 0
        links:
          - method: GET
            rel: self
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            type: application/vnd.sas.content.folder
          - method: GET
            rel: up
            href: /folders/folders/c0e8ccf9-ac43-4303-a1ce-40d7ffbd7450
            uri: /folders/folders/c0e8ccf9-ac43-4303-a1ce-40d7ffbd7450
            type: application/vnd.sas.content.folder
          - method: PUT
            rel: validateRename
            href: /folders/commons/validations/folders/c0e8ccf9-ac43-4303-a1ce-40d7ffbd7450/members/35def691-e932-4bf2-a38a-9f38e906eb5e/name?value={newname}&type=folder
            uri: /folders/commons/validations/folders/c0e8ccf9-ac43-4303-a1ce-40d7ffbd7450/members/35def691-e932-4bf2-a38a-9f38e906eb5e/name?value={newname}&type=folder
          - method: PUT
            rel: validateNewMemberName
            href: /folders/commons/validations/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238/members/@new/name?value={newname}&type={newtype}
            uri: /folders/commons/validations/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238/members/@new/name?value={newname}&type={newtype}
          - method: GET
            rel: ancestors
            href: /folders/ancestors?childUri=/folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            uri: /folders/ancestors?childUri=/folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            type: application/vnd.sas.content.folder.ancestor
          - method: PUT
            rel: update
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            type: application/vnd.sas.content.folder
            responseType: application/vnd.sas.content.folder
          - method: DELETE
            rel: delete
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
          - method: DELETE
            rel: deleteRecursively
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238?recursive=true
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238?recursive=true
          - method: GET
            rel: members
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238/members
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238/members
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.content.folder.member
          - method: POST
            rel: addMember
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238/members
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238/members
            type: application/vnd.sas.content.folder.member
          - method: POST
            rel: createChild
            href: /folders/folders?parentFolderUri=/folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            uri: /folders/folders?parentFolderUri=/folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            type: application/vnd.sas.content.folder
          - method: GET
            rel: transferExport
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            responseType: application/vnd.sas.transfer.object
          - method: PUT
            rel: transferImportUpdate
            href: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            uri: /folders/folders/f3277e88-01f2-4f2f-9ce2-cb575e849238
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
          - method: POST
            rel: transferImport
            href: /folders/folders
            uri: /folders/folders
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
        version: 1
    folderBody:
      summary: Body to create folder
      description: Sample body when creating new folder.
      value:
        name: A new folder
    memberCollection:
      summary: collection of members
      description: Sample resource collection of folder members
      value:
        version: 2
        accept: application/json
        count: 3
        start: 0
        limit: 20
        name: members
        items:
          - creationTimeStamp: 2022-06-20T18:19:13.92Z
            createdBy: stpweb1
            modifiedTimeStamp: 2022-06-20T18:19:13.92Z
            modifiedBy: stpweb1
            version: 2
            id: a73fd398-8969-415a-b0e2-3b423cf95849
            name: Folders_Spike.png
            added: 2022-06-20T18:19:13.947099Z
            parentFolderUri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            type: child
            contentType: file
            typeDefName: file_png
            links:
              - method: GET
                rel: self
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                type: application/vnd.sas.content.folder.member
              - method: GET
                rel: up
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                type: application/vnd.sas.content.folder
              - method: GET
                rel: getResource
                href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
                uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
                type: application/vnd.sas.summary
              - method: PUT
                rel: putResource
                href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
                uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
              - method: DELETE
                rel: deleteResource
                href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
                uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
              - method: GET
                rel: ancestors
                href: /folders/ancestors?childUri=/files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
                uri: /folders/ancestors?childUri=/files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
                type: application/vnd.sas.content.folder.ancestor
              - method: PUT
                rel: update
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                type: application/vnd.sas.content.folder.member
              - method: DELETE
                rel: delete
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
              - method: PUT
                rel: validateRename
                href: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849/name?value={newname}&type={newtype}
                uri: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849/name?value={newname}&type={newtype}
                type: application/vnd.sas.validation
              - method: GET
                rel: transferExport
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                type: application/vnd.sas.transfer.object
              - method: PUT
                rel: transferImportUpdate
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
              - method: POST
                rel: transferImport
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
          - creationTimeStamp: 2022-06-20T18:17:36.830648Z
            createdBy: stpweb1
            modifiedTimeStamp: 2022-06-20T18:17:36.830649Z
            modifiedBy: stpweb1
            version: 2
            id: 4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            name: New Folder
            added: 2022-06-20T18:17:36.837359Z
            parentFolderUri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            uri: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
            type: child
            contentType: folder
            links:
              - method: GET
                rel: self
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                type: application/vnd.sas.content.folder.member
              - method: GET
                rel: up
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                type: application/vnd.sas.content.folder
              - method: GET
                rel: getResource
                href: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                uri: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                type: application/vnd.sas.summary
              - method: PUT
                rel: putResource
                href: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                uri: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
              - method: DELETE
                rel: deleteResource
                href: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                uri: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
              - method: GET
                rel: ancestors
                href: /folders/ancestors?childUri=/folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                uri: /folders/ancestors?childUri=/folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                type: application/vnd.sas.content.folder.ancestor
              - method: PUT
                rel: update
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                type: application/vnd.sas.content.folder.member
              - method: DELETE
                rel: delete
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
              - method: PUT
                rel: validateRename
                href: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61/name?value={newname}&type={newtype}
                uri: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61/name?value={newname}&type={newtype}
                type: application/vnd.sas.validation
              - method: GET
                rel: transferExport
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                type: application/vnd.sas.transfer.object
              - method: PUT
                rel: transferImportUpdate
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
              - method: POST
                rel: transferImport
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
              - method: POST
                rel: addMember
                href: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db/members
                uri: /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db/members
                type: application/vnd.sas.content.folder.member
              - method: PUT
                rel: validateNewMemberName
                href: /folders/commons/validations/folders/e78521ad-5442-4eef-a0e4-a27773b380db/members/@new/name?value={newname}&type=folder
                uri: /folders/commons/validations/folders/e78521ad-5442-4eef-a0e4-a27773b380db/members/@new/name?value={newname}&type=folder
                type: application/vnd.sas.validation
              - method: POST
                rel: createChild
                href: /folders/folders?parentFolderUri=/folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                uri: /folders/folders?parentFolderUri=/folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
                type: application/vnd.sas.content.folder
          - creationTimeStamp: 2022-06-20T18:17:19.550286Z
            createdBy: stpweb1
            modifiedTimeStamp: 2022-06-20T18:17:19.550288Z
            modifiedBy: stpweb1
            version: 2
            id: 9586f4b2-24b9-4517-8249-2206d7b50306
            name: SAS Videos
            added: 2022-06-20T18:17:19.566851Z
            parentFolderUri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            uri: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
            type: child
            contentType: folder
            links:
              - method: GET
                rel: self
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                type: application/vnd.sas.content.folder.member
              - method: GET
                rel: up
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                type: application/vnd.sas.content.folder
              - method: GET
                rel: getResource
                href: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                uri: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                type: application/vnd.sas.summary
              - method: PUT
                rel: putResource
                href: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                uri: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
              - method: DELETE
                rel: deleteResource
                href: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                uri: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
              - method: GET
                rel: ancestors
                href: /folders/ancestors?childUri=/folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                uri: /folders/ancestors?childUri=/folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                type: application/vnd.sas.content.folder.ancestor
              - method: PUT
                rel: update
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                type: application/vnd.sas.content.folder.member
              - method: DELETE
                rel: delete
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
              - method: PUT
                rel: validateRename
                href: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306/name?value={newname}&type={newtype}
                uri: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306/name?value={newname}&type={newtype}
                type: application/vnd.sas.validation
              - method: GET
                rel: transferExport
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                type: application/vnd.sas.transfer.object
              - method: PUT
                rel: transferImportUpdate
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/9586f4b2-24b9-4517-8249-2206d7b50306
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
              - method: POST
                rel: transferImport
                href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
              - method: POST
                rel: addMember
                href: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e/members
                uri: /folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e/members
                type: application/vnd.sas.content.folder.member
              - method: PUT
                rel: validateNewMemberName
                href: /folders/commons/validations/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e/members/@new/name?value={newname}&type=folder
                uri: /folders/commons/validations/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e/members/@new/name?value={newname}&type=folder
                type: application/vnd.sas.validation
              - method: POST
                rel: createChild
                href: /folders/folders?parentFolderUri=/folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                uri: /folders/folders?parentFolderUri=/folders/folders/9a0bbb95-d7f0-43ac-b90f-a6c5fd546f1e
                type: application/vnd.sas.content.folder
        links:
          - method: GET
            rel: self
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members?start=0&limit=20
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members?start=0&limit=20
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.content.folder
          - method: POST
            rel: createMember
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            type: application/vnd.sas.content.folder.member
            responseType: application/vnd.sas.content.folder.member
    findByPathSubfolderRequest:
      summary: Find by path request for subfolder
      description: Sample request body to find a subfolder by path and content type.
      value:
        items:
          - Products
          - SAS Theme Designer
        contentType: folder
    findByPathNonFolderMemberRequest:
      summary: Find by path request for non-folder member
      description: >
        Sample request body to find a non-folder member by path, content type,

        and type definition name.
      value:
        items:
          - Products
          - SAS Theme Designer
          - Folder_spike.png
        contentType: file
        typeDefName: file_png
    subfolderAsMemberRep:
      summary: Subfolder as member representation
      description: Sample response body showing how a subfolder is represented as a child member of a parent folder.
      value:
        creationTimeStamp: 2022-06-20T18:17:36.830648Z
        createdBy: sas.themes
        modifiedTimeStamp: 2022-06-20T18:17:36.830649Z
        modifiedBy: sas.themes
        version: 2
        id: 4f0241d9-7953-4967-8afb-cbc5ddeb6c61
        name: SAS Theme Designer
        added: 2022-06-20T18:17:36.837359Z
        parentFolderUri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
        uri: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
        type: child
        contentType: folder
        links:
          - method: GET
            rel: self
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            type: application/vnd.sas.content.folder.member
          - method: GET
            rel: up
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            type: application/vnd.sas.content.folder
          - method: GET
            rel: getResource
            href: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            uri: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            type: application/vnd.sas.summary
          - method: PUT
            rel: putResource
            href: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            uri: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
          - method: DELETE
            rel: deleteResource
            href: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            uri: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
          - method: GET
            rel: ancestors
            href: /folders/ancestors?childUri=/folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            uri: /folders/ancestors?childUri=/folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            type: application/vnd.sas.content.folder.ancestor
          - method: PUT
            rel: update
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            type: application/vnd.sas.content.folder.member
          - method: DELETE
            rel: delete
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
          - method: PUT
            rel: validateRename
            href: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61/name?value={newname}&type={newtype}
            uri: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61/name?value={newname}&type={newtype}
            type: application/vnd.sas.validation
          - method: GET
            rel: transferExport
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            type: application/vnd.sas.transfer.object
          - method: PUT
            rel: transferImportUpdate
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/4f0241d9-7953-4967-8afb-cbc5ddeb6c61
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
          - method: POST
            rel: transferImport
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
          - method: POST
            rel: addMember
            href: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1/members
            uri: /folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1/members
            type: application/vnd.sas.content.folder.member
          - method: PUT
            rel: validateNewMemberName
            href: /folders/commons/validations/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1/members/@new/name?value={newname}&type=folder
            uri: /folders/commons/validations/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1/members/@new/name?value={newname}&type=folder
            type: application/vnd.sas.validation
          - method: POST
            rel: createChild
            href: /folders/folders?parentFolderUri=/folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            uri: /folders/folders?parentFolderUri=/folders/folders/6d252540-07d7-49ef-b508-b3b7d9a505f1
            type: application/vnd.sas.content.folder
    nonFolderMemberAsMemberRep:
      summary: Non-Folder member as member representation
      description: Sample response body with a non-folder child member.
      value:
        creationTimeStamp: 2022-06-20T18:19:13.92Z
        createdBy: stpweb1
        modifiedTimeStamp: 2022-06-20T18:19:13.92Z
        modifiedBy: stpweb1
        version: 2
        id: a73fd398-8969-415a-b0e2-3b423cf95849
        name: Folders_Spike.png
        added: 2022-06-20T18:19:13.947099Z
        parentFolderUri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
        uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
        type: child
        contentType: file
        typeDefName: file_png
        links:
          - method: GET
            rel: self
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.content.folder.member
          - method: GET
            rel: up
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            type: application/vnd.sas.content.folder
          - method: GET
            rel: getResource
            href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            type: application/vnd.sas.summary
          - method: PUT
            rel: putResource
            href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
          - method: DELETE
            rel: deleteResource
            href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
          - method: GET
            rel: ancestors
            href: /folders/ancestors?childUri=/files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /folders/ancestors?childUri=/files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            type: application/vnd.sas.content.folder.ancestor
          - method: PUT
            rel: update
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.content.folder.member
          - method: DELETE
            rel: delete
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
          - method: PUT
            rel: validateRename
            href: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849/name?value={newname}&type={newtype}
            uri: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849/name?value={newname}&type={newtype}
            type: application/vnd.sas.validation
          - method: GET
            rel: transferExport
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.transfer.object
          - method: PUT
            rel: transferImportUpdate
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
          - method: POST
            rel: transferImport
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
    folderMemberResponse:
      summary: Body with one member
      description: Sample body with a single folder member
      value:
        creationTimeStamp: 2022-06-20T18:19:13.92Z
        createdBy: stpweb1
        modifiedTimeStamp: 2022-06-20T18:19:13.92Z
        modifiedBy: stpweb1
        version: 2
        id: a73fd398-8969-415a-b0e2-3b423cf95849
        name: Folders_Spike.png
        added: 2022-06-20T18:19:13.947099Z
        parentFolderUri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
        uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
        type: child
        contentType: file
        typeDefName: file_png
        links:
          - method: GET
            rel: self
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.content.folder.member
          - method: GET
            rel: up
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
            type: application/vnd.sas.content.folder
          - method: GET
            rel: getResource
            href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            type: application/vnd.sas.summary
          - method: PUT
            rel: putResource
            href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
          - method: DELETE
            rel: deleteResource
            href: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
          - method: GET
            rel: ancestors
            href: /folders/ancestors?childUri=/files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            uri: /folders/ancestors?childUri=/files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            type: application/vnd.sas.content.folder.ancestor
          - method: PUT
            rel: update
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.content.folder.member
          - method: DELETE
            rel: delete
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
          - method: PUT
            rel: validateRename
            href: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849/name?value={newname}&type={newtype}
            uri: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849/name?value={newname}&type={newtype}
            type: application/vnd.sas.validation
          - method: GET
            rel: transferExport
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.transfer.object
          - method: PUT
            rel: transferImportUpdate
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
          - method: POST
            rel: transferImport
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
    folderMemberRepSummary:
      summary: Abbreviated representation of a folder member.
      description: Member representation with fewer links, some fields omitted to improve performance of retrieving large numbers of members from a folder.
      value:
        creationTimeStamp: 2023-03-22T18:23:51.248Z
        createdBy: sasboot
        modifiedTimeStamp: 2023-03-22T19:02:38.349Z
        modifiedBy: sasboot
        version: 2
        id: 0926beb2-f9a8-4974-a290-8ecf6da85cb0
        name: Retail_LIz
        added: 2023-03-22T18:23:51.317012Z
        parentFolderUri: /folders/folders/5ab36548-93a7-4eec-8cf2-b07c76907ab6
        uri: /reports/reports/4e160ad6-d243-457a-82b6-0554757fabef
        type: child
        contentType: report
        iconUri: /reports/icons/report.gif
        links:
          - method: GET
            rel: self
            href: /folders/folders/5ab36548-93a7-4eec-8cf2-b07c76907ab6/members/0926beb2-f9a8-4974-a290-8ecf6da85cb0
            uri: /folders/folders/5ab36548-93a7-4eec-8cf2-b07c76907ab6/members/0926beb2-f9a8-4974-a290-8ecf6da85cb0
            type: application/vnd.sas.content.folder.member
          - method: GET
            rel: alternate
            href: /folders/folders/5ab36548-93a7-4eec-8cf2-b07c76907ab6/members/0926beb2-f9a8-4974-a290-8ecf6da85cb0
            uri: /folders/folders/5ab36548-93a7-4eec-8cf2-b07c76907ab6/members/0926beb2-f9a8-4974-a290-8ecf6da85cb0
            type: application/vnd.sas.content.folder.member.summary
          - method: GET
            rel: getResource
            href: /reports/reports/4e160ad6-d243-457a-82b6-0554757fabef
            uri: /reports/reports/4e160ad6-d243-457a-82b6-0554757fabef
            type: application/vnd.sas.summary
          - method: PUT
            rel: putResource
            href: /reports/reports/4e160ad6-d243-457a-82b6-0554757fabef
            uri: /reports/reports/4e160ad6-d243-457a-82b6-0554757fabef
          - method: DELETE
            rel: deleteResource
            href: /reports/reports/4e160ad6-d243-457a-82b6-0554757fabef
            uri: /reports/reports/4e160ad6-d243-457a-82b6-0554757fabef
    folderMemberSummary:
      summary: Summary member representation
      description: Summary representation of a folder member
      value:
        creationTimeStamp: 2022-06-20T18:19:13.92Z
        createdBy: stpweb1
        modifiedTimeStamp: 2022-06-20T18:19:13.92Z
        modifiedBy: stpweb1
        version: 2
        id: a73fd398-8969-415a-b0e2-3b423cf95849
        name: Folders_Spike.png
        type: member
        typeDefName: file_png
        links:
          - method: GET
            rel: self
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.content.folder.member
          - method: GET
            rel: alternate
            href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/a73fd398-8969-415a-b0e2-3b423cf95849
            type: application/vnd.sas.summary
    folderMemberBody:
      summary: Body to create a folder member
      description: Sample body when creating a folder member.
      value:
        name: Test Report
        uri: /reports/reports/1234567890
        type: CHILD
        contentType: report
    ancestorsRequestBody:
      summary: Body of bulk ancestors request
      description: The body of a POST request for multiple ancestors
      value:
        - /files/files/1230193209132
        - /reports/reports/aldjkslkjflskfjskf
        - /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
    ancestorsSingleResponse:
      summary: Ancestors for a single URI
      description: A sample of an ancestors response for a single URI
      value:
        childUri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
        ancestors:
          - creationTimeStamp: 2022-06-17T18:33:22.626045Z
            createdBy: stpweb1
            modifiedTimeStamp: 2022-06-17T18:33:22.626048Z
            modifiedBy: stpweb1
            version: 1
            id: c18ba574-76d3-4104-b9b3-9332b6106453
            name: stpweb1
            parentFolderUri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
            description: The user folder for stpweb1
            type: userFolder
            memberCount: 5
            properties:
              allowMove: "false"
              hidden: "true"
            links:
              - method: GET
                rel: self
                href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                type: application/vnd.sas.content.folder
              - method: DELETE
                rel: delete
                href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
              - method: DELETE
                rel: deleteRecursively
                href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453?recursive=true
                uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453?recursive=true
              - method: GET
                rel: members
                href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.content.folder
              - method: POST
                rel: addMember
                href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                type: application/vnd.sas.content.folder.member
                responseType: application/vnd.sas.content.folder.member
              - method: GET
                rel: up
                href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                type: application/vnd.sas.content.folder
              - method: GET
                rel: ancestors
                href: /folders/ancestors?childUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                uri: /folders/ancestors?childUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                type: application/vnd.sas.content.folder.ancestor
              - method: POST
                rel: createChild
                href: /folders/folders?parentFolderUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                uri: /folders/folders?parentFolderUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                type: application/vnd.sas.content.folder
              - method: PUT
                rel: validateNewMemberName
                href: /folders/commons/validations/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members/@new/name?value={newname}&type={newtype}
                uri: /folders/commons/validations/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members/@new/name?value={newname}&type={newtype}
                type: application/vnd.sas.validation
              - method: GET
                rel: transferExport
                href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                responseType: application/vnd.sas.transfer.object
              - method: PUT
                rel: transferImportUpdate
                href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                type: application/vnd.sas.transfer.object
                responseType: application/vnd.sas.summary
          - creationTimeStamp: 2022-06-17T16:33:36.212131Z
            createdBy: anonymous
            modifiedTimeStamp: 2022-06-17T16:33:36.212133Z
            modifiedBy: anonymous
            version: 1
            id: 329d3711-3c38-4391-8920-c35478e2456b
            name: Users
            description: Base Folder for all user folders.
            type: userRoot
            memberCount: 6
            properties:
              allowMove: "false"
              uuid: e911697e-fe53-497c-a27c-909c757ba04a
            links:
              - method: GET
                rel: self
                href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                type: application/vnd.sas.content.folder
              - method: GET
                rel: members
                href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b/members
                uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b/members
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.content.folder
              - method: GET
                rel: ancestors
                href: /folders/ancestors?childUri=/folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                uri: /folders/ancestors?childUri=/folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                type: application/vnd.sas.content.folder.ancestor
              - method: PUT
                rel: validateNewMemberName
                href: /folders/commons/validations/folders/329d3711-3c38-4391-8920-c35478e2456b/members/@new/name?value={newname}&type={newtype}
                uri: /folders/commons/validations/folders/329d3711-3c38-4391-8920-c35478e2456b/members/@new/name?value={newname}&type={newtype}
                type: application/vnd.sas.validation
              - method: GET
                rel: transferExport
                href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                responseType: application/vnd.sas.transfer.object
        version: 1
    ancestorsResponseBody:
      summary: Bulk ancestors response
      description: A sample of a response to a bulk ancestors request
      value:
        version: 2
        accept: application/vnd.sas.content.folder.ancestor
        count: 3
        start: 0
        limit: 10
        name: folders
        items:
          - childUri: /files/files/1230193209132
            ancestors: []
            version: 1
          - childUri: /reports/reports/aldjkslkjflskfjskf
            ancestors: []
            version: 1
          - childUri: /files/files/016cf2b0-ef36-4344-9896-0439a027d8ab
            ancestors:
              - creationTimeStamp: 2022-06-17T18:33:22.711019Z
                createdBy: stpweb1
                modifiedTimeStamp: 2022-06-17T18:33:22.71102Z
                modifiedBy: stpweb1
                version: 1
                id: f4300a6d-407e-46fc-9c8a-e8142bd5d172
                name: My Folder
                parentFolderUri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                description: My Folder for stpweb1
                type: myFolder
                memberCount: 3
                properties:
                  allowMove: "false"
                links:
                  - method: GET
                    rel: self
                    href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    type: application/vnd.sas.content.folder
                  - method: DELETE
                    rel: delete
                    href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                  - method: DELETE
                    rel: deleteRecursively
                    href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172?recursive=true
                    uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172?recursive=true
                  - method: GET
                    rel: members
                    href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                    uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                    type: application/vnd.sas.collection
                    itemType: application/vnd.sas.content.folder
                  - method: POST
                    rel: addMember
                    href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                    uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members
                    type: application/vnd.sas.content.folder.member
                    responseType: application/vnd.sas.content.folder.member
                  - method: GET
                    rel: up
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    type: application/vnd.sas.content.folder
                  - method: GET
                    rel: ancestors
                    href: /folders/ancestors?childUri=/folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    uri: /folders/ancestors?childUri=/folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    type: application/vnd.sas.content.folder.ancestor
                  - method: POST
                    rel: createChild
                    href: /folders/folders?parentFolderUri=/folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    uri: /folders/folders?parentFolderUri=/folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    type: application/vnd.sas.content.folder
                  - method: PUT
                    rel: validateNewMemberName
                    href: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/@new/name?value={newname}&type={newtype}
                    uri: /folders/commons/validations/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172/members/@new/name?value={newname}&type={newtype}
                    type: application/vnd.sas.validation
                  - method: GET
                    rel: transferExport
                    href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    responseType: application/vnd.sas.transfer.object
                  - method: PUT
                    rel: transferImportUpdate
                    href: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    uri: /folders/folders/f4300a6d-407e-46fc-9c8a-e8142bd5d172
                    type: application/vnd.sas.transfer.object
                    responseType: application/vnd.sas.summary
                  - method: POST
                    rel: transferImport
                    href: /folders/folders
                    uri: /folders/folders
                    type: application/vnd.sas.transfer.object
                    responseType: application/vnd.sas.summary
              - creationTimeStamp: 2022-06-17T18:33:22.626045Z
                createdBy: stpweb1
                modifiedTimeStamp: 2022-06-17T18:33:22.626048Z
                modifiedBy: stpweb1
                version: 1
                id: c18ba574-76d3-4104-b9b3-9332b6106453
                name: stpweb1
                parentFolderUri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                description: The user folder for stpweb1
                type: userFolder
                memberCount: 5
                properties:
                  allowMove: "false"
                  hidden: "true"
                links:
                  - method: GET
                    rel: self
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    type: application/vnd.sas.content.folder
                  - method: DELETE
                    rel: delete
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                  - method: DELETE
                    rel: deleteRecursively
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453?recursive=true
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453?recursive=true
                  - method: GET
                    rel: members
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                    type: application/vnd.sas.collection
                    itemType: application/vnd.sas.content.folder
                  - method: POST
                    rel: addMember
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members
                    type: application/vnd.sas.content.folder.member
                    responseType: application/vnd.sas.content.folder.member
                  - method: GET
                    rel: up
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    type: application/vnd.sas.content.folder
                  - method: GET
                    rel: ancestors
                    href: /folders/ancestors?childUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    uri: /folders/ancestors?childUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    type: application/vnd.sas.content.folder.ancestor
                  - method: POST
                    rel: createChild
                    href: /folders/folders?parentFolderUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    uri: /folders/folders?parentFolderUri=/folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    type: application/vnd.sas.content.folder
                  - method: PUT
                    rel: validateNewMemberName
                    href: /folders/commons/validations/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members/@new/name?value={newname}&type={newtype}
                    uri: /folders/commons/validations/folders/c18ba574-76d3-4104-b9b3-9332b6106453/members/@new/name?value={newname}&type={newtype}
                    type: application/vnd.sas.validation
                  - method: GET
                    rel: transferExport
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    responseType: application/vnd.sas.transfer.object
                  - method: PUT
                    rel: transferImportUpdate
                    href: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    uri: /folders/folders/c18ba574-76d3-4104-b9b3-9332b6106453
                    type: application/vnd.sas.transfer.object
                    responseType: application/vnd.sas.summary
                  - method: POST
                    rel: transferImport
                    href: /folders/folders
                    uri: /folders/folders
                    type: application/vnd.sas.transfer.object
                    responseType: application/vnd.sas.summary
              - creationTimeStamp: 2022-06-17T16:33:36.212131Z
                createdBy: anonymous
                modifiedTimeStamp: 2022-06-17T16:33:36.212133Z
                modifiedBy: anonymous
                version: 1
                id: 329d3711-3c38-4391-8920-c35478e2456b
                name: Users
                description: Base Folder for all user folders.
                type: userRoot
                memberCount: 6
                properties:
                  allowMove: "false"
                  uuid: e911697e-fe53-497c-a27c-909c757ba04a
                links:
                  - method: GET
                    rel: self
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    type: application/vnd.sas.content.folder
                  - method: DELETE
                    rel: delete
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                  - method: DELETE
                    rel: deleteRecursively
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b?recursive=true
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b?recursive=true
                  - method: GET
                    rel: members
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b/members
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b/members
                    type: application/vnd.sas.collection
                    itemType: application/vnd.sas.content.folder
                  - method: POST
                    rel: addMember
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b/members
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b/members
                    type: application/vnd.sas.content.folder.member
                    responseType: application/vnd.sas.content.folder.member
                  - method: GET
                    rel: ancestors
                    href: /folders/ancestors?childUri=/folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    uri: /folders/ancestors?childUri=/folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    type: application/vnd.sas.content.folder.ancestor
                  - method: POST
                    rel: createChild
                    href: /folders/folders?parentFolderUri=/folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    uri: /folders/folders?parentFolderUri=/folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    type: application/vnd.sas.content.folder
                  - method: PUT
                    rel: validateNewMemberName
                    href: /folders/commons/validations/folders/329d3711-3c38-4391-8920-c35478e2456b/members/@new/name?value={newname}&type={newtype}
                    uri: /folders/commons/validations/folders/329d3711-3c38-4391-8920-c35478e2456b/members/@new/name?value={newname}&type={newtype}
                    type: application/vnd.sas.validation
                  - method: GET
                    rel: transferExport
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    responseType: application/vnd.sas.transfer.object
                  - method: PUT
                    rel: transferImportUpdate
                    href: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    uri: /folders/folders/329d3711-3c38-4391-8920-c35478e2456b
                    type: application/vnd.sas.transfer.object
                    responseType: application/vnd.sas.summary
                  - method: POST
                    rel: transferImport
                    href: /folders/folders
                    uri: /folders/folders
                    type: application/vnd.sas.transfer.object
                    responseType: application/vnd.sas.summary
            version: 1
        links:
          - method: GET
            rel: self
            href: /folders/folders?start=0&limit=10
            uri: /folders/folders?start=0&limit=10
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.content.folder.ancestor
          - method: POST
            rel: create
            href: /folders/folders
            uri: /folders/folders
            type: application/vnd.sas.content.folder.ancestor
            responseType: application/vnd.sas.content.folder.ancestor
    errorResponse:
      summary: Sample error response
      description: Example of an error response from the service
      value:
        version: 2
        httpStatusCode: 400
        errorCode: 1020
        message: Field blah is invalid for the target type.
        details:
          - "path: /folders/rootFolders"
          - "correlator: 103aed3e-d183-459e-8c8f-f0c57013995f"
    folderTypesResponse:
      summary: Response to folder types request
      description: A sample response to a folders/folderTypes request
      value:
        version: 2
        accept: application/vnd.sas.content.folder.type
        count: 9
        start: 0
        limit: 0
        name: folderTypes
        items:
          - name: applicationDataFolder
            label: Application Data Folder
            userAssignable: false
            version: 1
          - name: folder
            label: Folder
            userAssignable: true
            version: 1
          - name: favoritesFolder
            label: Favorites Folder
            userAssignable: true
            version: 1
          - name: historyFolder
            label: History Folder
            userAssignable: true
            version: 1
          - name: myFolder
            label: Personal Folder
            userAssignable: false
            version: 1
          - name: userFolder
            label: User Home Folder
            userAssignable: false
            version: 1
          - name: userRoot
            label: Users Root folder
            userAssignable: false
            version: 1
          - name: trashFolder
            label: Recycle Bin Folder
            userAssignable: false
            version: 1
          - name: hiddenFolder
            label: Hidden Folder
            userAssignable: true
            version: 1
        links:
          - method: GET
            rel: collection
            href: /folders/folderTypes
            uri: /folders/folderTypes
            type: application/vnd.sas.collection
          - method: GET
            rel: self
            href: /folders/folderTypes
            uri: /folders/folderTypes
            type: application/vnd.sas.collection
    validationTypeSuccessResponse:
      summary: Successful Validation Response
      description: Sample validation response with a good status
      value:
        valid: true
        version: 1
    validationTypeErrorResponse:
      summary: Validation type response
      description: Sample validation response in validation media type
      value:
        error:
          version: 2
          httpStatusCode: 409
          errorCode: 11552
          message: An item named "New Folder" of type "folder" already exists in the folder "My Folder".
          details:
            - "Folder already exists: "
            - /folders/folders/e78521ad-5442-4eef-a0e4-a27773b380db
            - "Suggestion: New Folder (1)"
        valid: false
        version: 1
    delegateInfoResponse:
      summary: delegateInfo response body
      description: Sample response to the delegateInfo request
      value:
        version: 2
        accept: application/vnd.sas.content.folder.delegate
        count: 5
        start: 0
        limit: 0
        name: delegates
        items:
          - name: "@myFolder"
            folderName: My Folder
            folderType: myFolder
            version: 1
          - name: "@myFavorites"
            folderName: My Favorites
            folderType: favoritesFolder
            version: 1
          - name: "@myHistory"
            folderName: My History
            folderType: historyFolder
            version: 1
          - name: "@appDataFolder"
            folderName: Application Data
            folderType: applicationDataFolder
            version: 1
          - name: "@myRecycleBin"
            folderName: Recycle Bin
            folderType: trashFolder
            version: 1
        links:
          - method: GET
            rel: collection
            href: /folders/delegateInfo
            uri: /folders/delegateInfo
            type: application/vnd.sas.collection
          - method: GET
            rel: self
            href: /folders/delegateInfo
            uri: /folders/delegateInfo
            type: application/vnd.sas.collection
    metadataArchiveResponse:
      summary: Response to /commons/catalog/folders/{folderId}
      description: A metadata archive used to catalog folders and members
      value:
        anchor:
          uri: /folders/folders/0c7ebcc1-b1b9-41b9-967d-a345bda1edaf
        entities:
          - creationTimeStamp: 0001-01-01T00:00:00Z
            modifiedTimeStamp: 0001-01-01T00:00:00Z
            instanceId: 0c7ebcc1-b1b9-41b9-967d-a345bda1edaf
            name: My Folder
            type: folder
            uri: /folders/folders/0c7ebcc1-b1b9-41b9-967d-a345bda1edaf
          - creationTimeStamp: 0001-01-01T00:00:00Z
            modifiedTimeStamp: 0001-01-01T00:00:00Z
            anchor:
              uri: /files/files/a3906381-17d0-48ba-bbd6-9664cb97898d
            name: fiddle1.jpg
            type: file
            uri: /files/files/a3906381-17d0-48ba-bbd6-9664cb97898d
        relationships:
          - creationTimeStamp: 0001-01-01T00:00:00Z
            modifiedTimeStamp: 0001-01-01T00:00:00Z
            type: itemFolder
            endpoint1Uri: /folders/folders/0c7ebcc1-b1b9-41b9-967d-a345bda1edaf
            endpoint2Uri: /files/files/a3906381-17d0-48ba-bbd6-9664cb97898d
        version: 1
    createFolderMember:
      summary: Create a Member in My Folder
      description: Here is an example of using the POST method to create a member in My Folder.
      value:
        id: 2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
        uri: /reports/reports/1234567890
        added: 2019-08-08T12:59:08.775Z
        type: child
        name: Test Report
        parentFolderUri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
        contentType: report
        links:
          - method: GET
            rel: self
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            type: application/vnd.sas.content.folder.member
          - method: GET
            rel: up
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d
            type: application/vnd.sas.content.folder
          - method: GET
            rel: getResource
            href: /reports/reports/1234567890
            uri: /reports/reports/1234567890
            type: application/vnd.sas.summary
          - method: PUT
            rel: putResource
            href: /reports/reports/1234567890
            uri: /reports/reports/1234567890
          - method: DELETE
            rel: deleteResource
            href: /reports/reports/1234567890
            uri: /reports/reports/1234567890
          - method: GET
            rel: ancestors
            href: /folders/ancestors?childUri=/reports/reports/1234567890
            uri: /folders/ancestors?childUri=/reports/reports/1234567890
            type: application/vnd.sas.content.folder.ancestor
          - method: PUT
            rel: update
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            type: application/vnd.sas.content.folder.member
          - method: DELETE
            rel: delete
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
          - method: PUT
            rel: validateRename
            href: /folders/commons/validations/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f/name?value={newname}&type={newtype}
            uri: /folders/commons/validations/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f/name?value={newname}&type={newtype}
            type: application/vnd.sas.validation
          - method: GET
            rel: transferExport
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            responseType: application/vnd.sas.transfer.object
          - method: PUT
            rel: transferImportUpdate
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members/2ec3501d-4201-4e7d-8de6-0e2c4a7a022f
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
          - method: POST
            rel: transferImport
            href: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members
            uri: /folders/folders/6e6aa6e9-7c6a-4491-84fd-84051031a44d/members
            type: application/vnd.sas.transfer.object
            responseType: application/vnd.sas.summary
        version: 1
