openapi: 3.0.3
info:
  version: "4"
  title: CAS REST
  description: The CAS REST API provides REST access to CAS functionality and server information, including CAS session management, running actions, and uploading data to the CAS server.
  contact:
    name: SAS Developers
    url: https://developer.sas.com
    email: devex@sas.com
  license:
    name: sas
    url: http://developer.sas.com
x-documentation-title: "SAS Cloud Analytic Services: REST API Version 4 Reference"
security:
  - Basic_Credentials: []
  - CAS_OAuth: []
servers:
  - url: http://mock-cas.apifirst.unx.sas.com/cas
    description: This is an example base URL.
tags:
  - name: Actions
    description: Action information and execution.
  - name: Cas
    description: CAS information.
  - name: Sessions
    description: Session information and management.
  - name: System
    description: System information.
  - name: Grid
    description: Grid information.
  - name: Deprecated
    description: Being removed in a future release.
paths:
  /cas:
    get:
      tags:
        - Cas
      operationId: getCASInformation
      description: >
        Get information about the CAS servers.
      summary: Get grid information
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASServer"
              examples:
                objectExample:
                  $ref: "#/components/examples/CASServer"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/CASServer"
              examples:
                objectExample:
                  $ref: "#/components/examples/CASServer"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASServer"
              examples:
                objectExample:
                  $ref: "#/components/examples/CASServer"
    delete:
      tags:
        - Cas
      description: Shut down the CAS servers.
      summary: Shut down the CAS servers
      operationId: shutdownCAS
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
        "403":
          description: The user is not a CAS Administrator.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  /cas/configuration:
    get:
      tags:
        - Cas
      operationId: getCASConfiguration
      description: Configuration settings for the server.
      summary: Configuration settings for the server
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASConfigurationValue"
              examples:
                values:
                  $ref: "#/components/examples/CASConfigurationValue"
            application/vnd.sas.cas.direct.configuration.value:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASConfigurationValue"
              examples:
                values:
                  $ref: "#/components/examples/CASConfigurationValue"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASConfigurationValue"
              examples:
                values:
                  $ref: "#/components/examples/CASConfigurationValue"
  /cas/type:
    get:
      tags:
        - Cas
      description: Server type.
      summary: Server type
      operationId: getCASServerType
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    $ref: "#/components/schemas/CASServerType"
              example:
                value: $ref '#/components/examples/CASServerType'
            application/vnd.sas.cas.direct.server.type:
              schema:
                type: object
                properties:
                  type:
                    $ref: "#/components/schemas/CASServerType"
              example:
                value: $ref '#/components/examples/CASServerType'
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  type:
                    $ref: "#/components/schemas/CASServerType"
              example:
                value: $ref '#/components/examples/CASServerType'
  /cas/state:
    get:
      tags:
        - Cas
      operationId: getCASState
      description: >
        Get the state of the CAS server.
      summary: CAS server state
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  state:
                    $ref: "#/components/schemas/CASServerState"
              example:
                value: $ref '#/components/examples/CASServerType'
            application/vnd.sas.cas.direct.server.state:
              schema:
                type: object
                properties:
                  state:
                    $ref: "#/components/schemas/CASServerState"
              example:
                value: $ref '#/components/examples/CASServerType'
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  state:
                    $ref: "#/components/schemas/CASServerState"
              example:
                value: $ref '#/components/examples/CASServerType'
  /cas/nodeNames:
    get:
      tags:
        - Cas
      operationId: getCASNodeNames
      description: Get a list of connected node names for the CAS grid.
      summary: List connected nodes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
                - Node1
                - Node2
            application/vnd.sas.cas.direct.node.name.list:
              schema:
                type: array
                items:
                  type: string
              example:
                - Node1
                - Node2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  type: string
              example:
                - Node1
                - Node2
  /cas/nodeCount:
    get:
      tags:
        - Cas
      operationId: getCASNodeCount
      description: Get a count of connected nodes.
      summary: Connected node count
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: integer
              example: 2
            application/vnd.sas.cas.direct.node.count:
              schema:
                type: integer
              example: 2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: integer
              example: 2
  /cas/nodes:
    get:
      tags:
        - Cas
      operationId: getCASNodes
      description: List of CAS nodes.
      summary: Node List
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.node.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
    put:
      operationId: updateCASNodes
      tags:
        - Cas
      description: Add one or more nodes to the grid.
      summary: Add nodes
      parameters:
        - name: node
          description: >
            One or more node names to add. They should be in the grid nodes configuration file.

            When using a body of application/x-www-form-urlencoded, only one node will be added, even if multiple node parameters are specified in the form.
          required: true
          in: query
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
        - name: role
          description: Role for node. Only "worker" is currently supported.
          required: true
          in: query
          schema:
            type: string
            enum:
              - worker
              - controller
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.results-table:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
    delete:
      tags:
        - Cas
      description: Remove one or more nodes from the grid. Parameters should be in the request body in JSON format. Directly calls the removeNode CAS action to remove the node from the grid.
      summary: Remove nodes
      operationId: removeNode
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
            example:
              - worker99.mycompany.com
              - worker100.mycompany.com
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
            example:
              - worker99.mycompany.com
              - worker100.mycompany.com
          application/x-www-form-urlencoded:
            schema:
              type: array
              items:
                type: string
            example:
              - worker99.mycompany.com
              - worker100.mycompany.com
        description: One or more node names to remove.
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  "/cas/nodes/{nodeName}":
    parameters:
      - name: nodeName
        in: path
        description: Name of node
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      description: Get information about the specified node.
      summary: Get node information
      operationId: getNodeInfo
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.node:
              schema:
                $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
  "/cas/nodes/{nodeName}/metrics":
    parameters:
      - name: nodeName
        in: path
        description: Name of node
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      operationId: getNodeMetrics
      description: Get metrics for the specified node.
      summary: Get node metrics
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASNodeMetrics"
              example:
                value:
                  $ref: "#/components/examples/CASNodeMetrics"
            application/vnd.sas.cas.direct.node.metrics:
              schema:
                $ref: "#/components/schemas/CASNodeMetrics"
              example:
                value:
                  $ref: "#/components/examples/CASNodeMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASNodeMetrics"
              example:
                value:
                  $ref: "#/components/examples/CASNodeMetrics"
  "/cas/nodes/{nodeName}/sessionProcesses":
    parameters:
      - name: nodeName
        in: path
        description: Name of node
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      operationId: getNodeSessionProcesses
      description: Returns a list of process identifiers for all session processes running on a node.
      summary: Get process identfiers for session processes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: integer
              example:
                - 1
                - 2
                - 3
            application/vnd.sas.cas.direct.node.process.identifier.list:
              schema:
                type: array
                items:
                  type: integer
              example:
                - 1
                - 2
                - 3
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  type: integer
              example:
                - 1
                - 2
                - 3
  "/cas/nodes/{nodeName}/sessionProcessesForUser":
    parameters:
      - name: nodeName
        in: path
        description: Name of node
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      operationId: getNodeSessionProcessesForUser
      description: Returns a list of process identifiers for all session processes for the specified user.
      summary: Get process identifiers for a user's session processes
      parameters:
        - name: userName
          in: query
          required: true
          description: Name of user.
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: integer
              example:
                - 1
                - 2
                - 3
            application/vnd.sas.cas.direct.node.process.identifier.list:
              schema:
                type: array
                items:
                  type: integer
              example:
                - 1
                - 2
                - 3
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  type: integer
              example:
                - 1
                - 2
                - 3
  /cas/nodes/metrics:
    get:
      tags:
        - Cas
      operationId: getMetricsForCASNodes
      description: >
        List of nodes running CAS servers, including cpuLoad of the

        system running the CAS server. Retrieving the load information

        requires extra communication with the grid nodes. /cas/nodes

        is provided for cases where performance is of the essence and

        CPU load information is not needed.
      summary: List of CAS nodes with CPU load
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: ArrayOfNodesWithCPULoad
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeMetrics"
              examples:
                value:
                  $ref: "#/components/examples/CASNodeMetrics"
            application/vnd.sas.cas.direct.node.metrics.list:
              schema:
                title: ArrayOfNodesWithCPULoad
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeMetrics"
              examples:
                value:
                  $ref: "#/components/examples/CASNodeMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                title: ArrayOfNodesWithCPULoad
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeMetrics"
              examples:
                value:
                  $ref: "#/components/examples/CASNodeMetrics"
  /cas/nodes/processCPUTimes:
    get:
      tags:
        - Cas
      operationId: getProcessCPUTimesForCASNodes
      description: Returns node status and CPU time for all nodes.
      summary: Node status and CPU time for all nodes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: ArrayOfNodesWithCPUTimes
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeCPUTime"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeCPUTime"
            application/vnd.sas.cas.direct.node.cputime.list:
              schema:
                title: ArrayOfNodesWithCPUTimes
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeCPUTime"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeCPUTime"
            application/vnd.sas.cas.direct.error.response:
              schema:
                title: ArrayOfNodesWithCPUTimes
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeCPUTime"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeCPUTime"
  /cas/nodes/memoryMetrics:
    get:
      tags:
        - Cas
      operationId: getMemoryMetricsForCASNodes
      description: Returns node status and memory utilization for all nodes.
      summary: Node status and memory utilization for all nodes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: ArrayOfNodesWithMemoryMetrics
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeMemoryMetrics"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeMemoryMetrics"
            application/vnd.sas.cas.direct.node.memory.metrics.list:
              schema:
                title: ArrayOfNodesWithMemoryMetrics
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeMemoryMetrics"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeMemoryMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                title: ArrayOfNodesWithMemoryMetrics
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeMemoryMetrics"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeMemoryMetrics"
  /cas/nodes/processMetrics:
    get:
      tags:
        - Cas
      operationId: getProcessMetricsForCASNodes
      description: Returns node information and main process metrics for all nodes.
      summary: Node information and main process metrics for all nodes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: ArrayOfNodesWithProcessMetrics
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeProcessMetrics"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeProcessMetrics"
            application/vnd.sas.cas.direct.node.process.metrics.list:
              schema:
                title: ArrayOfNodesWithProcessMetrics
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeProcessMetrics"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeProcessMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                title: ArrayOfNodesWithProcessMetrics
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeProcessMetrics"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeProcessMetrics"
  /cas/nodes/cpuTime:
    get:
      tags:
        - Cas
      operationId: getCPUTimeForCASNodes
      description: Returns CPU times with node type for all nodes.
      summary: CPU times for all nodes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeCPUTimeWithType"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeCPUTimeWithType"
            application/vnd.sas.cas.direct.node.cputime-with-type.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeCPUTimeWithType"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeCPUTimeWithType"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNodeCPUTimeWithType"
              examples:
                values:
                  $ref: "#/components/examples/CASNodeCPUTimeWithType"
  /cas/process:
    get:
      tags:
        - Cas
      operationId: getCASProcessInformation
      description: Information about the CAS process.
      summary: CAS process information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASProcess"
              example:
                $ref: "#/components/examples/CASProcess"
            application/vnd.sas.cas.direct.server.process:
              schema:
                $ref: "#/components/schemas/CASProcess"
              example:
                $ref: "#/components/examples/CASProcess"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASProcess"
              example:
                $ref: "#/components/examples/CASProcess"
  /cas/ports:
    get:
      tags:
        - Cas
      operationId: getCASPorts
      description: Listening ports.
      summary: CAS port information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  client:
                    description: Client port number.
                    type: integer
                  control:
                    description: Control port number, used internally for grid communication.
                    type: integer
              example:
                client: 8080
                control: 7070
            application/vnd.sas.cas.direct.ports:
              schema:
                type: object
                properties:
                  client:
                    description: Client port number.
                    type: integer
                  control:
                    description: Control port number, used internally for grid communication.
                    type: integer
              example:
                client: 8080
                control: 7070
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  client:
                    description: Client port number.
                    type: integer
                  control:
                    description: Control port number, used internally for grid communication.
                    type: integer
              example:
                client: 8080
                control: 7070
  /cas/actions:
    get:
      tags:
        - Actions
      operationId: getCASActionDefinitions
      description: Get parameter definitions for actions in JSON form.
      summary: Get parameter definitions for actions
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  actionSets:
                    description: >
                      List of action sets available to the system, including

                      action sets that have not been loaded.
                    type: array
                    items:
                      $ref: "#/components/schemas/ActionSet"
                  actionGroups:
                    description: >
                      List of composite action sets (aggregations of other action sets)

                      available to the system, including composite action sets that

                      have not been loaded.
                    type: array
                    items:
                      $ref: "#/components/schemas/ActionSetGroup"
              examples:
                actionSets:
                  value:
                    $ref: "#/components/examples/ActionSet"
            application/vnd.sas.cas.direct.action.list:
              schema:
                type: object
                properties:
                  actionSets:
                    description: >
                      List of action sets available to the system, including

                      action sets that have not been loaded.
                    type: array
                    items:
                      $ref: "#/components/schemas/ActionSet"
                  actionGroups:
                    description: >
                      List of composite action sets (aggregations of other action sets)

                      available to the system, including composite action sets that

                      have not been loaded.
                    type: array
                    items:
                      $ref: "#/components/schemas/ActionSetGroup"
              examples:
                actionSets:
                  value:
                    $ref: "#/components/examples/ActionSet"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  actionSets:
                    description: >
                      List of action sets available to the system, including

                      action sets that have not been loaded.
                    type: array
                    items:
                      $ref: "#/components/schemas/ActionSet"
                  actionGroups:
                    description: >
                      List of composite action sets (aggregations of other action sets)

                      available to the system, including composite action sets that

                      have not been loaded.
                    type: array
                    items:
                      $ref: "#/components/schemas/ActionSetGroup"
              examples:
                actionSets:
                  value:
                    $ref: "#/components/examples/ActionSet"
  "/cas/actions/{actionName}":
    parameters:
      - name: actionName
        in: path
        description: >
          Name of action. Can be expressed as actionSet.action to

          specify an action in a specific actionSet.
        required: true
        schema:
          type: string
    get:
      tags:
        - Actions
      operationId: getDefinitionForAction
      description: >
        Get parameter definitions for the specified action. If an action set is

        not specified as part of the name, a list of

        actions from all action sets with the matching name is returned.
      summary: Get parameter defintions for an action
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ActionDefinition"
              example:
                $ref: "#/components/schemas/ActionDefinition"
            application/vnd.sas.cas.direct.action.definition.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ActionDefinition"
              example:
                $ref: "#/components/schemas/ActionDefinition"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ActionDefinition"
              example:
                $ref: "#/components/schemas/ActionDefinition"
        "404":
          description: The action name is an unknown action.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.definition.list:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    post:
      tags:
        - Actions
      operationId: runActionInTransientSession
      summary: Run action
      description: >
        Run the specified action in a transient session.

        Action parameters are

        passed as POST data and converted to a CASValueList.

        A session is created, the action

        is executed, and the session is destroyed.


        Values in the CASValueList that are CAS result tables

        have an attribute named "_ctb" whose value is TRUE.


        **NOTE:** The table.addTable action is not supported by the REST API.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  /cas/sessions:
    get:
      tags:
        - Sessions
      operationId: getCASSessions
      description: Active CAS sessions.
      summary: CAS sessions information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Session"
              examples:
                objectExample:
                  $ref: "#/components/examples/Session"
            application/vnd.sas.cas.direct.session.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Session"
              examples:
                objectExample:
                  $ref: "#/components/examples/Session"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Session"
              examples:
                objectExample:
                  $ref: "#/components/examples/Session"
    post:
      tags:
        - Sessions
      operationId: createSession
      description: >-
        Create a new session. The user identity for the session is provided by HTTP authentication and the locale for the session is taken from the request locale.<p>

        Does not support the creation of a session with a subset of CAS nodes.<p>

        After the session is created, use the `setSessOpt` action to set options for the session.
      summary: Create a new session
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  session:
                    description: Session identifier (UUID).
                    type: string
              example:
                value:
                  session: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
            application/vnd.sas.cas.direct.session.id:
              schema:
                type: object
                properties:
                  session:
                    description: Session identifier (UUID).
                    type: string
              example:
                value:
                  session: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  session:
                    description: Session identifier (UUID).
                    type: string
              example:
                value:
                  session: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
  /cas/sessions/terminate:
    post:
      tags:
        - Sessions
      operationId: terminateCASSession
      summary: Terminate all user sessions
      description: >
        Terminates all user sessions by performing kill -9 on the session

        processes.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
  "/cas/sessions/{sessionId}":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getSessionInfo
      summary: Get session information
      description: >
        Get information about the specified session.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Session"
              examples:
                objectExample:
                  $ref: "#/components/examples/Session"
            application/vnd.sas.cas.direct.session:
              schema:
                $ref: "#/components/schemas/Session"
              examples:
                objectExample:
                  $ref: "#/components/examples/Session"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Session"
              examples:
                objectExample:
                  $ref: "#/components/examples/Session"
        "404":
          description: Session not found in the server's session list.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.session:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
        "410":
          description: Unknown or expired session. The session is still in the server's session list, but the session is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.session:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    delete:
      parameters:
        - name: command
          in: query
          description: Select the method used to end the session.
          required: true
          schema:
            type: string
            enum:
              - endSession
              - cancel
              - terminate
      tags:
        - Sessions
      operationId: destroySession
      summary: Destroy a session
      description: >
        Destroy a session. The method used to end the session is determined by

        the value of the "command" option. For "endSession", the session is ended

        using the endSession action, and no output is returned upon success.

        For "cancel", the session is eonded using the

        cancelSession action (run in a transient session), and an empty JSON object

        is returned upon success. For "terminate", the

        session's processes are terminated on all of the CAS nodes and an empty

        JSON object is returned upon success.
      responses:
        "200":
          description: OK
        "404":
          description: Unknown session.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/cas/sessions/{sessionId}/actions":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    delete:
      tags:
        - Actions
      operationId: cancelSessionAction
      summary: Cancel the action running in the session
      description: >
        Cancels the currently running action by sending a cancelAction action.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  "/cas/sessions/{sessionId}/actions/{actionName}":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
      - name: actionName
        in: path
        description: >
          Name of action. Can be expressed as actionSet.action to

          specify an action in a specific actionSet.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getSessionActionDefinition
      summary: Get parameter definitions for an action
      description: >
        Get parameter definitions for the specified action. If an action set is

        not specified as part of the name, a list of

        actions from all action sets with the matching name is returned.


        This is the same output as /cas/actions/{actionName}.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ActionDefinition"
              example:
                $ref: "#/components/schemas/ActionDefinition"
            application/vnd.sas.cas.direct.action.definition:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ActionDefinition"
              example:
                $ref: "#/components/schemas/ActionDefinition"
            application/vnd.sas.cas.direct.action.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ActionDefinition"
              example:
                $ref: "#/components/schemas/ActionDefinition"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ActionDefinition"
              example:
                $ref: "#/components/schemas/ActionDefinition"
        "404":
          description: The action name is an unknown action.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.definition:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.list:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
      x-internal: true
    put:
      operationId: updateCASSessionActionName
      tags:
        - Sessions
      parameters:
        - name: JSON-Parameters
          in: header
          description: Action parameters in JSON format.
          schema:
            type: string
      summary: Upload a table
      description: >
        Use with the table.upload action to upload tables. Action parameters

        are specified in the JSON-Parameters HTTP header in JSON format. Data

        for the table is sent as the HTTP request data, and should match the format

        specified in the fileType parameter of the action.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
        "404":
          description: Session not found in the server's session list.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
        "410":
          description: Unknown or expired session. The session is still in the server's session list, but the session is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    post:
      tags:
        - Sessions
      operationId: runAction
      summary: Run action
      description: >
        Run the specified action. Action parameters can be specified either

        as URL query parameters or as POST data (either in form data or JSON format).

        For example, the echo action:





        POST /cas/sessions/{sessionId}/actions/echo?a=1&b=2&c=true





        When parameters are specified as part of the URL or in form data, all

        values are interpreted as strings. Use JSON format to specify action

        parameters whose data types are not strings. A POST of the following JSON

        to /cas/sessions/{sessionId}/actions/echo will retain the data types of

        the parameters.





        { "a": 1,"b": 2,"c": true }





        When running the table.upload action, use the PUT method.





        **NOTE:** The table.addTable action is not supported by the REST API.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
        "404":
          description: Session not found in the server's session list.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
        "410":
          description: Unknown or expired session. The session is still in the server's session list, but the session is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/cas/sessions/{sessionId}/isIdle":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getSessionIsIdle
      description: >
        Reports if the session is idle, meaning it is not currently

        running an action.
      summary: Report if session is idle
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  isIdle:
                    description: >
                      Idle flag. If true, session is idle, meaning that it

                      is not currently executing an action.
                    type: boolean
              example:
                value:
                  isIdle: true
            application/vnd.sas.cas.direct.session.idle:
              schema:
                type: object
                properties:
                  isIdle:
                    description: >
                      Idle flag. If true, session is idle, meaning that it

                      is not currently executing an action.
                    type: boolean
              example:
                value:
                  isIdle: true
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  isIdle:
                    description: >
                      Idle flag. If true, session is idle, meaning that it

                      is not currently executing an action.
                    type: boolean
              example:
                value:
                  isIdle: true
  "/cas/sessions/{sessionId}/nodes":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getSessionNodes
      summary: Get session nodes
      description: Get a list of nodes being used by the session.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.node:
              schema:
                $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASNode"
              examples:
                value:
                  $ref: "#/components/examples/CASNode"
        "404":
          description: Unknown session.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.node:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/cas/sessions/{sessionId}/nodes/metrics":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getMetricsForSessionNodes
      summary: Get session nodes with performance metrics
      description: Get a list of nodes being used by the session.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASNodeMetrics"
              example:
                $ref: "#/components/examples/CASNodeMetrics"
            application/vnd.sas.cas.direct.node.metrics:
              schema:
                $ref: "#/components/schemas/CASNodeMetrics"
              example:
                $ref: "#/components/examples/CASNodeMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASNodeMetrics"
              example:
                $ref: "#/components/examples/CASNodeMetrics"
        "404":
          description: Unknown session.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.node.metrics:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/cas/sessions/{sessionId}/idleTime":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getSessionIdleTime
      summary: Get session idle time
      description: Get the number of hours/minutes/seconds since the last time an action was executed by the session.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  hours:
                    type: integer
                  minutes:
                    type: integer
                  seconds:
                    type: integer
              example:
                value:
                  hours: 0
                  minutes: 1
                  seconds: 2
            application/vnd.sas.cas.direct.time:
              schema:
                type: object
                properties:
                  hours:
                    type: integer
                  minutes:
                    type: integer
                  seconds:
                    type: integer
              example:
                value:
                  hours: 0
                  minutes: 1
                  seconds: 2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  hours:
                    type: integer
                  minutes:
                    type: integer
                  seconds:
                    type: integer
              example:
                value:
                  hours: 0
                  minutes: 1
                  seconds: 2
        "404":
          description: Unknown session.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.time:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/cas/sessions/{sessionId}/idleSeconds":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getSessionIdleSeconds
      summary: Get number of seconds a session has been idle
      description: Get the number of seconds since the last time an action was executed by the session.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  seconds:
                    type: integer
              example:
                value:
                  seconds: 2
            application/vnd.sas.cas.direct.seconds:
              schema:
                type: object
                properties:
                  seconds:
                    type: integer
              example:
                value:
                  seconds: 2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  seconds:
                    type: integer
              example:
                value:
                  seconds: 2
        "404":
          description: Unknown session.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.seconds:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/cas/sessions/{sessionId}/terminate":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    post:
      tags:
        - Sessions
      operationId: terminateSession
      description: >
        Ends the specified session by performing a kill -9 on all of the session's

        processes.
      summary: Terminate a session
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
  "/cas/sessions/{sessionId}/cancel":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    post:
      tags:
        - Sessions
      operationId: cancelSession
      description: >
        Ends the specified session using a cancelSession action.
      summary: End the session
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  "/cas/sessions/{sessionId}/cancelAction":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    post:
      tags:
        - Deprecated
      operationId: cancelAction
      description: >
        Cancels the currently running action by sending a cancelAction action.

        Deprecated. Use DELETE /cas/sessions/{sessionId}/actions instead.
      summary: Cancel an action
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  "/cas/sessions/{sessionId}/user":
    parameters:
      - name: sessionId
        in: path
        description: sessionId (UUID) of session.
        required: true
        schema:
          type: string
    get:
      tags:
        - Sessions
      operationId: getSessionOwner
      description: >
        Returns the name of the user that owns the session.
      summary: Get session owner
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionOwner"
              example:
                $ref: "#/components/examples/SessionOwner"
            application/vnd.sas.cas.direct.session.owner:
              schema:
                $ref: "#/components/schemas/SessionOwner"
              example:
                $ref: "#/components/examples/SessionOwner"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/SessionOwner"
              example:
                $ref: "#/components/examples/SessionOwner"
  /cas/caslibs:
    get:
      tags:
        - Cas
      operationId: getCaslibs
      description: >
        Get a list of global caslibs from the controller. Returns a CTB

        containing global caslib information.
      summary: Get global caslibs
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResultsTable"
              example:
                $ref: "#/components/examples/ResultsTable"
            application/vnd.sas.cas.direct.results-table:
              schema:
                $ref: "#/components/schemas/ResultsTable"
              example:
                $ref: "#/components/examples/ResultsTable"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ResultsTable"
              example:
                $ref: "#/components/examples/ResultsTable"
    put:
      tags:
        - Cas
      operationId: addCaslib
      description: Add a global caslib to the controller using the table.addCaslib action. Parameters must be submitted as JSON in the request body using the parameters for the addCaslib CAS action. Parameter processing is handled by the action, so errors may be returned as action results (and HTTP 200 result code) rather than vnd.sas.cas.direct.error.response.
      summary: Add a global caslib
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.results-table:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
    delete:
      tags:
        - Cas
      operationId: deleteCaslib
      description: Removes a global caslib from the controller. Use this endpoint when the name of the caslib is not URL safe.
      summary: Remove a global caslib
      parameters:
        - name: caslibName
          in: query
          description: Name of global caslib.
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.results-table:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  "/cas/caslibs/{caslibName}":
    parameters:
      - name: caslibName
        in: path
        description: The name of a global caslib.
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      operationId: getCaslibInfo
      summary: Get global caslib information
      description: Get information about the specified global caslib.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Caslib"
              example:
                $ref: "#/components/examples/Caslib"
            application/vnd.sas.cas.direct.caslib:
              schema:
                $ref: "#/components/schemas/Caslib"
              example:
                $ref: "#/components/examples/Caslib"
            application/vnd.sas.cas.direct.results-table:
              schema:
                $ref: "#/components/schemas/Caslib"
              example:
                $ref: "#/components/examples/Caslib"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Caslib"
              example:
                $ref: "#/components/examples/Caslib"
    delete:
      tags:
        - Cas
      summary: Drop a global caslib
      description: >
        Drops the specified global caslib.
      operationId: dropCaslib
      parameters:
        - name: caslibName
          in: path
          description: Name of global caslib.
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.results-table:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  /cas/administrators:
    get:
      tags:
        - Cas
      operationId: getCASAdministrators
      description: >
        List the CAS server's administrators, both server administrators and data administrators.
      summary: List administrators
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASAdministrator"
              examples:
                objectExample:
                  $ref: "#/components/examples/CASAdministrator"
            application/vnd.sas.cas.direct.administrator.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASAdministrator"
              examples:
                objectExample:
                  $ref: "#/components/examples/CASAdministrator"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASAdministrator"
              examples:
                objectExample:
                  $ref: "#/components/examples/CASAdministrator"
    put:
      operationId: updateCASAdministrators
      tags:
        - Cas
      description: >
        Create an administrator. Use for administrators with names that do not conform

        to URL format.
      summary: Create administrator
      parameters:
        - name: adminName
          in: query
          required: true
          description: The name for the administrator.
          schema:
            type: string
        - name: nameType
          in: query
          required: true
          description: Indicates if the name identifies a user or group.
          schema:
            type: string
            enum:
              - user
              - group
        - name: adminType
          in: query
          required: true
          description: The type of administrator being added.
          schema:
            type: string
            enum:
              - cas
              - data
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                adminName:
                  description: The name for the administrator.
                  type: string
                nameType:
                  description: Indicates if the name identifies a user or group.
                  type: string
                  enum:
                    - user
                    - group
                adminType:
                  description: The type of administrator being added.
                  type: string
                  enum:
                    - cas
                    - data
              required:
                - adminName
                - nameType
                - adminType
            example:
              adminName: joeuser
              nameType: user
              adminType: cas
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
        "400":
          description: Bad Request
    post:
      tags:
        - Cas
      description: >
        Change information about an administrator.
      summary: Change administrator
      operationId: changeAdministrator
      parameters:
        - name: adminName
          in: query
          required: true
          description: Administrator to change.
          schema:
            type: string
        - name: itemName
          in: query
          required: false
          description: Item name for administrator to change. Item name is returned when listing adminstrators.
          schema:
            type: string
        - name: nameType
          in: query
          required: false
          description: Name type.
          schema:
            type: string
            enum:
              - user
              - group
        - name: adminType
          in: query
          required: false
          description: New administrator type for user.
          schema:
            type: string
            enum:
              - cas
              - data
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                adminName:
                  description: The name for the administrator.
                  type: string
                itemName:
                  description: Item name for administrator to change. Item name is returned when listing adminstrators.
                  type: string
                nameType:
                  description: Indicates if the name identifies a user or group.
                  type: string
                  enum:
                    - user
                    - group
                adminType:
                  description: The type of administrator being added.
                  type: string
                  enum:
                    - cas
                    - data
              required:
                - adminName
                - nameType
                - adminType
            example:
              adminName: joeuser
              itemName: joeuser-user
              nameType: user
              adminType: cas
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
        "400":
          description: Bad Request
        "404":
          description: The specified administrator does not exist.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    delete:
      tags:
        - Cas
      description: >
        Remove the specified administrator.
      summary: Remove administrator
      operationId: removeAdministrator
      parameters:
        - name: adminName
          description: Item name for the administrator to remove.
          in: query
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
        "404":
          description: The specified administrator does not exist.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/cas/administrators/{adminName}":
    parameters:
      - name: adminName
        in: path
        description: Name of administrator. When deleting, use the item name.
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      operationId: getInfoForAdministrator
      description: >
        Get information about the specified administrator.
      summary: Get administrator information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASAdministrator"
              example:
                value:
                  $ref: "#/components/examples/CASAdministrator"
            application/vnd.sas.cas.direct.administrator:
              schema:
                $ref: "#/components/schemas/CASAdministrator"
              example:
                value:
                  $ref: "#/components/examples/CASAdministrator"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASAdministrator"
              example:
                value:
                  $ref: "#/components/examples/CASAdministrator"
        "404":
          description: The specified administrator does not exist.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.administrator:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    post:
      tags:
        - Cas
      description: >
        Change information about the administrator.
      summary: Change administrator information
      operationId: changeAdministratorByName
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                itemName:
                  type: string
                nameType:
                  type: string
                  enum:
                    - user
                    - group
                adminType:
                  type: string
                  enum:
                    - cas
                    - data
              required:
                - itemName
                - nameType
                - adminType
            example:
              itemName: joeuser-user
              nameType: user
              adminType: cas
          application/json:
            schema:
              type: object
              properties:
                itemName:
                  type: string
                nameType:
                  type: string
                  enum:
                    - user
                    - group
                adminType:
                  type: string
                  enum:
                    - cas
                    - data
              required:
                - itemName
                - nameType
                - adminType
            example:
              adminName: joeuser
              itemName: joeuser-user
              nameType: user
              adminType: cas
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
        "404":
          description: The specified administrator does not exist.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    delete:
      tags:
        - Cas
      description: >
        Remove the specified administrator.
      summary: Remove administrator
      operationId: removeAdministratorByName
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/APIResult"
              example:
                objectExample:
                  $ref: "#/components/examples/APIResult"
        "404":
          description: The specified administrator does not exist.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.api-result:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  /cas/shutdown:
    post:
      tags:
        - Deprecated
      operationId: deprecatedShutdownCAS
      description: >
        Shutdown the CAS server. Can only be executed by a CAS Administrator.

        Deprecated. Use DELETE /cas instead.
      summary: Shutdown CAS Server
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
        "403":
          description: The user is not a CAS Administrator.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  /cas/messages:
    parameters:
      - name: startTime
        description: >
          Start of time period in which to find messages. Obtained from a preceeding

          call to /cas/messages.
        in: query
        required: false
        schema:
          type: integer
    get:
      tags:
        - Cas
      operationId: getCASMessages
      summary: Get server notifications
      description: >
        Get a list of server notifications, starting from an optional specific

        start time, through the current time. Returns the last time checked, which

        can be used on subsequent calls as the new starting time.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CASNotifications"
              example:
                $ref: "#/components/examples/CASNotifications"
            application/vnd.sas.cas.direct.notifications:
              schema:
                $ref: "#/components/schemas/CASNotifications"
              example:
                $ref: "#/components/examples/CASNotifications"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CASNotifications"
              example:
                $ref: "#/components/examples/CASNotifications"
  /cas/addNode:
    parameters:
      - name: node
        description: >
          One or more node names to add. They should be in the grid nodes configuration

          file.
        required: true
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: role
        description: Role for node. Only "worker" is currently supported.
        required: true
        in: query
        schema:
          type: string
          enum:
            - worker
            - controller
    post:
      tags:
        - Deprecated
      operationId: addCASNode
      description: Add one or more nodes to the grid. Deprecated. Use PUT /cas/nodes instead.
      summary: Add one or more nodes to the grid
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  /cas/removeNode:
    parameters:
      - name: node
        description: >
          One or more node names to remove.
        in: query
        required: true
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
    post:
      tags:
        - Deprecated
      operationId: removeCASNode
      summary: Remove one or more nodes from the grid
      description: Remove one or more nodes from the grid. Deprecated. Use DELETE /cas/nodes instead.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.action.results:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ActionResults"
              examples:
                objectExample:
                  $ref: "#/components/examples/ActionResults"
  /cas/loggers:
    get:
      tags:
        - Cas
      operationId: getCASLoggers
      summary: Get a list of loggers
      description: >
        Get a list of loggers.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Logger"
              examples:
                value:
                  $ref: "#/components/examples/Logger"
            application/vnd.sas.cas.direct.logger.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Logger"
              examples:
                value:
                  $ref: "#/components/examples/Logger"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Logger"
              examples:
                value:
                  $ref: "#/components/examples/Logger"
  "/cas/loggers/{loggerName}":
    parameters:
      - name: loggerName
        description: >
          Name of logger. Use \"\_ROOT\_\" to specify the root logger.
        in: path
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      operationId: getLoggerInfo
      description: >
        Get information about the specified logger.
      summary: Get logger information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Logger"
              example:
                value:
                  $ref: "#/components/examples/Logger"
            application/vnd.sas.cas.direct.logger:
              schema:
                $ref: "#/components/schemas/Logger"
              example:
                value:
                  $ref: "#/components/examples/Logger"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Logger"
              example:
                value:
                  $ref: "#/components/examples/Logger"
    post:
      tags:
        - Cas
      description: Adds a new logger to the logging system using the specified level and appender. Can only be performed by a CAS Administrator. The appender associated with the logger must have already been created.
      summary: Add a new logger to the logging system
      operationId: addLogger
      parameters:
        - name: appender
          in: query
          required: false
          description: >
            Name of one or more appenders to use to write log messages, separated by commas or as an array when using JSON.
          schema:
            type: string
        - name: level
          in: query
          required: true
          description: New logging level to be used for the logger, one of "null", "all", "trace", "debug", "info", "warn", "error", "fatal", "off".
          schema:
            type: string
            enum:
              - "null"
              - all
              - trace
              - debug
              - info
              - warn
              - error
              - fatal
              - off
      responses:
        "201":
          description: Created
    put:
      tags:
        - Cas
      description: >
        Change the logging level of the specified logger. Can only be performed by a CAS Administrator.
      summary: Change logging level
      operationId: changeLoggingLevel
      requestBody:
        required: false
        content:
          application/json:
            example:
              level: debug
              appender: ""
            schema:
              type: object
              properties:
                appender:
                  description: >
                    Name of one or more appenders to use to write log messages, separated by commas or as an array when using JSON.
                  type: string
                level:
                  description: New logging level to be used for the logger.
                  type: string
                  enum:
                    - "null"
                    - all
                    - trace
                    - debug
                    - info
                    - warn
                    - error
                    - fatal
                    - off
              required:
                - level
      parameters:
        - name: appender
          in: query
          required: false
          description: >
            Name of one or more appenders to use to write log messages, separated by commas or as an array when using JSON.
          schema:
            type: string
        - name: level
          in: query
          required: true
          description: New logging level to be used for the logger.
          schema:
            type: string
            enum:
              - "null"
              - all
              - trace
              - debug
              - info
              - warn
              - error
              - fatal
              - off
      responses:
        "200":
          description: OK
  /cas/appenders:
    get:
      tags:
        - Cas
      operationId: getCASAppenders
      description: >
        Get a list of appenders.
      summary: Get a list of appenders
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Appender"
              examples:
                values:
                  $ref: "#/components/examples/Appender"
            application/vnd.sas.cas.direct.appender.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Appender"
              examples:
                values:
                  $ref: "#/components/examples/Appender"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Appender"
              examples:
                values:
                  $ref: "#/components/examples/Appender"
  "/cas/appenders/{appenderName}":
    parameters:
      - name: appenderName
        description: Get an appender by name.
        in: path
        required: true
        schema:
          type: string
    get:
      tags:
        - Cas
      operationId: getAppenderInfo
      description: Get information about a particular appender.
      summary: Get appender information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Appender"
              example:
                $ref: "#/components/examples/Appender"
            application/vnd.sas.cas.direct.appender:
              schema:
                $ref: "#/components/schemas/Appender"
              example:
                $ref: "#/components/examples/Appender"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Appender"
              example:
                $ref: "#/components/examples/Appender"
    put:
      tags:
        - Cas
      operationId: updateCASAppenderName
      description: Add a new appender to the system, either a console appender or a file appender. Some parameters are specific to the file appender and, although marked as required, are not required for the console appender.
      summary: Add a new appender
      parameters:
        - name: type
          description: The type of appender being added, either "file" or "console".
          in: query
          required: true
          schema:
            type: string
            enum:
              - file
              - console
        - name: flush
          description: Immediately flushes output instead of buffering.
          in: query
          required: true
          schema:
            type: boolean
        - name: append
          description: When type=="file", causes the appender to append to existing content in the file instead of truncating it.
          in: query
          required: true
          schema:
            type: boolean
        - name: path
          description: When type=="file", the path where the file will reside.
          in: query
          required: true
          schema:
            type: string
        - name: namePrefix
          description: When type == "file", prefix used for filenames of log files. Helpful when using routing several groups of loggers to different appenders.
          in: query
          required: true
          schema:
            type: string
      requestBody:
        required: false
        content:
          application/json:
            example:
              type: file
              flush: true
              append: true
              path: /path/of/file/dir
              namePrefix: mycaslog
            schema:
              type: object
              properties:
                type:
                  description: The type of appender being added, either "file" or "console".
                  type: string
                  enum:
                    - file
                    - console
                flush:
                  description: Immediately flushes output instead of buffering.
                  type: boolean
                append:
                  description: When type=="file", causes the appender to append to existing content in the file instead of truncating it.
                  type: boolean
                path:
                  description: When type=="file", the path where the file will reside.
                  type: string
                namePrefix:
                  description: When type == "file", prefix used for filenames of log files. Helpful when using routing several groups of loggers to different appenders.
                  type: string
              required:
                - type
                - flush
                - append
                - path
                - namePrefix
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
  /cas/sessionList:
    get:
      tags:
        - Cas
      operationId: getCASSessionList
      description: >
        Get a list of active sessions. Does not return information that requires connecting to the sessions for retrieval.
      summary: Get a list of active sessions
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SessionSummary"
              examples:
                values:
                  $ref: "#/components/examples/SessionSummary"
            application/vnd.sas.cas.direct.session.summary.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SessionSummary"
              examples:
                values:
                  $ref: "#/components/examples/SessionSummary"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SessionSummary"
              examples:
                values:
                  $ref: "#/components/examples/SessionSummary"
  /cas/metrics:
    get:
      tags:
        - Cas
      operationId: getCASMetrics
      description: Get the 1 minute CPU load average for the system.
      summary: Get system CPU load average
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  cpuLoad:
                    description: One minute CPU load. CAS servers running on Windows return 0.
                    type: integer
              example:
                value: 0
            application/vnd.sas.cas.direct.cpu.load:
              schema:
                type: object
                properties:
                  cpuLoad:
                    description: One minute CPU load. CAS servers running on Windows return 0.
                    type: integer
              example:
                value: 0
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  cpuLoad:
                    description: One minute CPU load. CAS servers running on Windows return 0.
                    type: integer
              example:
                value: 0
  /cas/uptimeSeconds:
    get:
      tags:
        - Cas
      operationId: getCASUptimeSeconds
      description: Number of seconds the CAS server process has been running.
      summary: Server uptime in seconds
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  uptimeSeconds:
                    description: Number of seconds process has been running.
                    type: integer
              example:
                value: 0
            application/vnd.sas.cas.direct.uptime.seconds:
              schema:
                type: object
                properties:
                  uptimeSeconds:
                    description: Number of seconds process has been running.
                    type: integer
              example:
                value: 0
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  uptimeSeconds:
                    description: Number of seconds process has been running.
                    type: integer
              example:
                value: 0
  /system:
    get:
      tags:
        - System
      operationId: getSystemInfo
      description: >
        Get information about node's hardware.
      summary: Get system information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemInformation"
              example:
                $ref: "#/components/examples/SystemInformation"
            application/vnd.sas.cas.direct.system.information:
              schema:
                $ref: "#/components/schemas/SystemInformation"
              example:
                $ref: "#/components/examples/SystemInformation"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/SystemInformation"
              example:
                $ref: "#/components/examples/SystemInformation"
  /system/processes:
    get:
      tags:
        - System
      operationId: getProcesses
      description: >
        Get a list of running processes on the node.
      summary: List running processes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: ArrayOfProcesses
                type: array
                items:
                  $ref: "#/components/schemas/Process"
              examples:
                values:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.process.list:
              schema:
                title: ArrayOfProcesses
                type: array
                items:
                  $ref: "#/components/schemas/Process"
              examples:
                values:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.error.response:
              schema:
                title: ArrayOfProcesses
                type: array
                items:
                  $ref: "#/components/schemas/Process"
              examples:
                values:
                  $ref: "#/components/examples/Process"
  "/system/processes/{processId}":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - System
      operationId: getProcessInfo
      description: Get information about the specified process.
      summary: Get process information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Process"
              example:
                value:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.process:
              schema:
                $ref: "#/components/schemas/Process"
              example:
                value:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Process"
              example:
                value:
                  $ref: "#/components/examples/Process"
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.process:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    delete:
      tags:
        - System
      operationId: terminateProcess
      description: >
        Terminates the specified process using the SIGKILL signal.

        User must be a CAS administrator or "own" the process by virtue

        of having created the session that uses the process.


        Responses are only provided in JSON format.
      summary: Terminate a process
      responses:
        "200":
          description: Signal sent to process.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Error Description
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Error Description
            application/vnd.sas.cas.direct.error:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Error Description
        "403":
          description: User does not have permission.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
        "404":
          description: Unknown process.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/system/processes/{processId}/commandLine":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - System
      operationId: getProcessCommandLine
      description: Get command line for the specified process.
      summary: Get command line
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              examples:
                values:
                  value:
                    - Commandline1
                    - Commandline2
            application/vnd.sas.cas.direct.command-line:
              schema:
                type: array
                items:
                  type: string
              examples:
                values:
                  value:
                    - Commandline1
                    - Commandline2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  type: string
              examples:
                values:
                  value:
                    - Commandline1
                    - Commandline2
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.command-line:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/system/processes/{processId}/cpuTime":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - System
      operationId: getProcessCPUTime
      description: Get CPU times for the specified process.
      summary: Get process CPU times
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CPUTime"
              example:
                $ref: "#/components/examples/CPUTime"
            application/vnd.sas.cas.direct.cpu.time:
              schema:
                $ref: "#/components/schemas/CPUTime"
              example:
                $ref: "#/components/examples/CPUTime"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CPUTime"
              example:
                $ref: "#/components/examples/CPUTime"
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.cpu.time:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/system/processes/{processId}/environment":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - System
      operationId: getProcessEnvironment
      description: >
        Returns the environment variables for the specified process, if permitted

        by the operating system.
      summary: Get process environment variables
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessEnvironment"
              examples:
                values:
                  $ref: "#/components/examples/ProcessEnvironment"
            application/vnd.sas.cas.direct.process.environment:
              schema:
                $ref: "#/components/schemas/ProcessEnvironment"
              examples:
                values:
                  $ref: "#/components/examples/ProcessEnvironment"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ProcessEnvironment"
              examples:
                values:
                  $ref: "#/components/examples/ProcessEnvironment"
        "404":
          description: Unknown process.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.process.environment:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/system/processes/{processId}/terminate":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    put:
      tags:
        - Deprecated
      operationId: deprecatedTerminateProcess
      summary: Terminate process
      description: >
        Terminates the specified process using the SIGKILL signal.

        User must be a CAS administrator or "own" the process by virtue

        of having created the session that uses the process.


        Responses are only provided in JSON format.


        Deprecated. Use DELETE /system/processes/{processId}.
      responses:
        "200":
          description: Signal sent to process.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Error Message
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Error Message
            application/vnd.sas.cas.direct.error:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Error Message
        "403":
          description: User does not have permission.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
        "404":
          description: Unknown process.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/system/processes/{processId}/threads":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - System
      operationId: getProcessThreads
      summary: List process threads
      description: Get list of threads for the specified process.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Thread"
              examples:
                values:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Thread"
              examples:
                values:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.thread.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Thread"
              examples:
                values:
                  $ref: "#/components/examples/Thread"
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.thread.list:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/system/processes/{processId}/threads/{threadId}":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
      - name: threadId
        in: path
        description: Thread identifier.
        required: true
        schema:
          type: integer
    get:
      tags:
        - System
      operationId: getThreadInfo
      description: Get information about the specified thread.
      summary: Get thread information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Thread"
              example:
                value:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Thread"
              example:
                value:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.thread:
              schema:
                $ref: "#/components/schemas/Thread"
              example:
                value:
                  $ref: "#/components/examples/Thread"
        "404":
          description: The thread or process no longer exists.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.thread:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/system/processes/{processId}/threads/{threadId}/stack":
    parameters:
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
      - name: threadId
        in: path
        description: Thread identifier.
        required: true
        schema:
          type: integer
    get:
      tags:
        - System
      operationId: getThreadStack
      description: Get a stack trace the specified thread.
      summary: Get thread stack trace
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
                - Thread Stack Trace 1
                - Thread Stack Trace 2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  type: string
              example:
                - Thread Stack Trace 1
                - Thread Stack Trace 2
            application/vnd.sas.cas.direct.stack:
              schema:
                type: array
                items:
                  type: string
              example:
                - Thread Stack Trace 1
                - Thread Stack Trace 2
        "404":
          description: The thread or process no longer exists.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.stack:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  /system/top:
    get:
      tags:
        - System
      operationId: getSystemMetricsInTopFormat
      description: >
        Returns a collection of system metrics, similar to the information

        gathered and displayed by the <tt>top</tt> utility for UNIX/Linux.
      summary: Get system metrics
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.top-system-metrics:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
  "/system/top/{user}":
    parameters:
      - name: user
        in: path
        description: Name of user for which process list is provided.
        required: true
        schema:
          type: string
    get:
      tags:
        - System
      operationId: getSystemMetricsInTopFormatForUser
      description: >
        Returns a collection of system metrics, similar to the information

        gathered and displayed by the <tt>top</tt> utility for UNIX/Linux, for

        the specified user. If the user is not an administrator, then the processes

        returned include processes created for the specified user, e.g. processes

        for sessions owned by the user.
      summary: Get system metrics for user
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.top-system-metrics:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
  /grid:
    get:
      tags:
        - Grid
      operationId: getGridInformation
      description: Information about the hardware running the CAS grid.
      summary: Get system information for grid nodes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNode"
              examples:
                values:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.node.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNode"
              examples:
                values:
                  $ref: "#/components/examples/CASNode"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CASNode"
              examples:
                values:
                  $ref: "#/components/examples/CASNode"
  "/grid/{name}":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
    get:
      tags:
        - Grid
      operationId: getGridNodeInformation
      description: Information about a specific node on the grid.
      summary: Get grid node information
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemInformation"
              example:
                $ref: "#/components/examples/SystemInformation"
            application/vnd.sas.cas.direct.node:
              schema:
                $ref: "#/components/schemas/SystemInformation"
              example:
                $ref: "#/components/examples/SystemInformation"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/SystemInformation"
              example:
                $ref: "#/components/examples/SystemInformation"
  "/grid/{name}/processes":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
    get:
      tags:
        - Grid
      operationId: getGridNodeProcesses
      summary: Get grid node processes
      description: Running processes on a specific node on the grid.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Process"
              examples:
                values:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.process.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Process"
              examples:
                values:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Process"
              examples:
                values:
                  $ref: "#/components/examples/Process"
  "/grid/{name}/processes/{processId}":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - Grid
      operationId: getGridNodeInformationForProcess
      description: Get information about the specified process on the specified node.
      summary: Get process information from a node
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Process"
              example:
                value:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Process"
              example:
                value:
                  $ref: "#/components/examples/Process"
            application/vnd.sas.cas.direct.process:
              schema:
                $ref: "#/components/schemas/Process"
              example:
                value:
                  $ref: "#/components/examples/Process"
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.process:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
    delete:
      tags:
        - Grid
      operationId: terminateGridNodeProcess
      description: >
        Terminates the specified process on the specified host

        using the SIGKILL signal.

        User must be a CAS administrator or "own" the process by virtue

        of having created the session that uses the process.


        Responses are only provided in JSON format.
      summary: Terminate a process on a grid node
      responses:
        "200":
          description: Signal sent to process.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Some Error
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Some Error
            application/vnd.sas.cas.direct.error:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Some Error
        "403":
          description: User does not have permission.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
        "404":
          description: Unknown process.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/processes/{processId}/commandLine":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - Grid
      operationId: getCommandLineForGridNodeProcess
      description: Get command line for the specified process on the specified node.
      summary: Get the command line for a process on a grid node
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
                - Command Line Process 1
                - Command Line Process 2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  type: string
              example:
                - Command Line Process 1
                - Command Line Process 2
            application/vnd.sas.cas.direct.command-line:
              schema:
                type: array
                items:
                  type: string
              example:
                - Command Line Process 1
                - Command Line Process 2
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.command-line:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/processes/{processId}/cpuTime":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - Grid
      operationId: getCPUTimeForGridNodeProcess
      description: Get CPU times for the specified process on the specified node.
      summary: Get CPU times for a process on a grid node
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CPUTime"
              example:
                $ref: "#/components/examples/CPUTime"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/CPUTime"
              example:
                $ref: "#/components/examples/CPUTime"
            application/vnd.sas.cas.direct.cpu.time:
              schema:
                $ref: "#/components/schemas/CPUTime"
              example:
                $ref: "#/components/examples/CPUTime"
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.cpu.time:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/processes/{processId}/environment":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - Grid
      operationId: getEnvironmentForGridNodeProcess
      summary: Get the environment variables for a process on a grid node
      description: >
        Returns the environment variables for the specified process on the

        specified node.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessEnvironment"
              examples:
                values:
                  $ref: "#/components/examples/ProcessEnvironment"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ProcessEnvironment"
              examples:
                values:
                  $ref: "#/components/examples/ProcessEnvironment"
            application/vnd.sas.cas.direct.process.environment:
              schema:
                $ref: "#/components/schemas/ProcessEnvironment"
              examples:
                values:
                  $ref: "#/components/examples/ProcessEnvironment"
        "404":
          description: Unknown processId.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.process.environment:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/processes/{processId}/terminate":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    post:
      tags:
        - Deprecated
      operationId: deprecatedTerminateGridNodeProcess
      description: >
        Terminates the specified process on the specified host

        using the SIGKILL signal.

        User must be a CAS administrator or "own" the process by virtue

        of having created the session that uses the process.


        Responses are only provided in JSON format.


        This end point will be removed in future releases and replaced by

        DELETE /system/processes/{processId}.
      summary: Terminate a process on a grid node
      responses:
        "200":
          description: Signal sent to process.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Some Error
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Some Error
            application/vnd.sas.cas.direct.error:
              schema:
                type: object
                properties:
                  error:
                    description: >
                      Only included in response if an error occurs. Error

                      message from signal send.
                    type: string
              example:
                value:
                  error: Some Error
        "403":
          description: User does not have permission.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
        "404":
          description: Unknown process.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/processes/{processId}/threads":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
    get:
      tags:
        - Grid
      operationId: getThreadsForGridNodeProcess
      description: Get list of threads for the specified process on the specified node.
      summary: Get a thread list for a process on a grid node
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Thread"
              examples:
                values:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Thread"
              examples:
                values:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.thread.list:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Thread"
              examples:
                values:
                  $ref: "#/components/examples/Thread"
        "404":
          description: Process is no longer running.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.thread.list:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/processes/{processId}/threads/{threadId}":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
      - name: threadId
        in: path
        description: Thread identifier.
        required: true
        schema:
          type: integer
    get:
      tags:
        - Grid
      operationId: getThreadIdForGridNodeThread
      description: Get information about the specified thread.
      summary: Get thread information on a grid node
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Thread"
              example:
                value:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/Thread"
              example:
                value:
                  $ref: "#/components/examples/Thread"
            application/vnd.sas.cas.direct.thread:
              schema:
                $ref: "#/components/schemas/Thread"
              example:
                value:
                  $ref: "#/components/examples/Thread"
        "404":
          description: The thread or process no longer exists.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.thread:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/processes/{processId}/threads/{threadId}/stack":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: processId
        in: path
        description: PID of process.
        required: true
        schema:
          type: integer
      - name: threadId
        in: path
        description: Thread identifier.
        required: true
        schema:
          type: integer
    get:
      tags:
        - Grid
      operationId: getStackForGridNodeThread
      summary: Get a stack trace on a grid node
      description: Get a stack trace the specified thread.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
                - Grid Stack Trace 1
                - Grid Stack Trace 2
            application/vnd.sas.cas.direct.error.response:
              schema:
                type: array
                items:
                  type: string
              example:
                - Grid Stack Trace 1
                - Grid Stack Trace 2
            application/vnd.sas.cas.direct.stack:
              schema:
                type: array
                items:
                  type: string
              example:
                - Grid Stack Trace 1
                - Grid Stack Trace 2
        "404":
          description: The thread or process no longer exists.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
            application/vnd.sas.cas.direct.stack:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                objectExample:
                  $ref: "#/components/examples/ErrorResponse"
  "/grid/{name}/top":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
    get:
      tags:
        - Grid
      operationId: getMetricsInTopFormatForGridNode
      description: >
        Returns a collection of system metrics for the specified host,

        similar to the information

        gathered and displayed by the <tt>top</tt> utility for UNIX/Linux.
      summary: Get system metrics on a grid node
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.top-system-metrics:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
  "/grid/{name}/top/{user}":
    parameters:
      - name: name
        in: path
        description: Name of node.
        required: true
        schema:
          type: string
      - name: user
        in: path
        description: Name of user for which process list is provided.
        required: true
        schema:
          type: string
    get:
      tags:
        - Grid
      operationId: getMetricsForUserInTopFormatForGridNode
      description: >
        Returns a collection of system metrics, similar to the information

        gathered and displayed by the <tt>top</tt> utility for UNIX/Linux, for

        the specified user. If the user is not an administrator, then the processes

        returned include processes created for the specified user, e.g. processes

        for sessions owned by the user.
      summary: Get system metrics for a user on a grid node
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.top-system-metrics:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
            application/vnd.sas.cas.direct.error.response:
              schema:
                $ref: "#/components/schemas/TopSystemMetrics"
              example:
                $ref: "#/components/examples/TopSystemMetrics"
components:
  securitySchemes:
    Basic_Credentials:
      type: http
      description: HTTP basic authentication. Use only with SSL enabled.
      scheme: basic
    CAS_OAuth:
      type: oauth2
      description: CAS OAuth2 authentication. OAuth scopes are only used for group memberships.
      flows:
        implicit:
          authorizationUrl: https://site-specific-url
          scopes: {}
  schemas:
    CASNode:
      title: CAS Node Information
      description: CAS Node Information
      properties:
        name:
          description: The name of the node. May or may not match the actual hostname of the node depending on the name used in the grid hosts file.
          type: string
        port:
          description: The port number being used by the CAS protocol listener.
          type: integer
        type:
          $ref: "#/components/schemas/CASServerType"
        connected:
          description: True if the node is currently connected to the grid.
          type: boolean
        pid:
          description: The process ID of the CAS server process.
          type: integer
        httpPort:
          description: Port being used by HTTP listener.
          type: integer
        httpProtocol:
          description: Protocol being used by HTTP listener.
          type: string
          enum:
            - http
            - https
        uuid:
          description: Unique identifier for the node.
          type: string
    CASNodeMetrics:
      title: CAS Node Metrics
      description: CAS Node Metrics
      properties:
        name:
          description: The name of the node. May or may not match the actual hostname of the node depending on the name used in the grid hosts file.
          type: string
        port:
          description: The port number being used by the CAS protocol listener.
          type: integer
        type:
          $ref: "#/components/schemas/CASServerType"
        connected:
          description: Indicates if the server is running and connected to the grid.
          type: boolean
        pid:
          description: The process ID of the CAS server process.
          type: integer
        httpPort:
          description: Port being used by HTTP listener.
          type: integer
        httpProtocol:
          description: Protocol being used by HTTP listener.
          type: string
          enum:
            - http
            - https
        uuid:
          description: Unique identifier for the node.
          type: string
        cpuLoad:
          description: CPU load on the system.  CAS servers running on Windows return 0.
          type: number
          format: double
    CASNodeCPUTime:
      title: CAS Node CPU Time
      description: CASNodeCPUTime
      properties:
        name:
          description: The name of the node. May or may not match the actual hostname of the node depending on the name used in the grid hosts file.
          type: string
        pid:
          description: The process ID of the CAS server process.
          type: string
        connected:
          description: Indicates if the server is running and connected to the grid.
          type: boolean
        type:
          $ref: "#/components/schemas/CASServerType"
        cpuTime:
          $ref: "#/components/schemas/CPUTime"
    CASNodeCPUTimeWithType:
      title: CAS Node CPU Time With Node Type
      description: >
        The time properties will be omitted from the object if the CPU times cannot be

        retrieved from the grid node. Existence only needs to be checked for one of the

        CPU time fields: if one is omitted, all are omitted.
      properties:
        name:
          description: The name of the node. May or may not match the actual hostname of the node depending on the name used in the grid hosts file.
          type: string
        type:
          $ref: "#/components/schemas/CASServerType"
        pid:
          description: The process ID of the CAS server process.
          type: string
        connected:
          description: Indicates if the server is running and connected to the grid.
          type: boolean
        userTimeHz:
          description: Amount of time spent by the CPU executing in user space, in hertz/cycles. This property will be omitted if the value cannot be retrieved from the grid node.
          type: integer
        systemTimeHz:
          description: Amount of time spent by the CPU executing in system space, in hertz/cycles. This property will be omitted if the value cannot be retrieved from the grid node.
          type: integer
        idleTimeHz:
          description: Amount of time spent by the CPU executing in system space, in hertz/cycles. This property will be omitted if the value cannot be retrieved from the grid node.
          type: integer
        iowaitTimeHz:
          description: Amount of time spent by the CPU waiting for IO to complete, in hertz/cycles. This property will be omitted if the value cannot be retrieved from the grid node.
          type: integer
        irqTimeHz:
          description: Amount of time spent by the CPU processing IRQs, in hertz/cycles. This property will be omitted if the value cannot be retrieved from the grid node.
          type: integer
        softirqTimeHz:
          description: Amount of time spent by the CPU processing soft IRQs, in hertz/cycles. This property will be omitted if the value cannot be retrieved from the grid node.
          type: integer
    CASNodeMemoryMetrics:
      title: CAS Node Memory Metrics
      description: CAS Node Memory Metrics
      properties:
        name:
          type: string
          description: The name of the node. May or may not match the actual hostname of the node depending on the name used in the grid hosts file.
        pid:
          description: The process ID of the CAS server process.
          type: string
        connected:
          description: Indicates if the server is running and connected to the grid.
          type: boolean
        type:
          $ref: "#/components/schemas/CASServerType"
        MemTotal_kB:
          description: Total physical memory available ot the system, in kilobytes.
          type: integer
        MemFree_kB:
          description: Amount of free physical memory, in kilobytes.
          type: integer
        SwapTotal_kB:
          description: Total amount of swap space available to the system, in kilobytes.
          type: integer
        SwapFree_kB:
          description: Amount of free swap space, in kilobytes.
          type: integer
        VmallocTotal_kB:
          description: Total amount of virtual memory, in kilobytes.
          type: integer
        VmallocUsed_kB:
          description: Amount of virtual memory used in the system in kilobytes.
          type: integer
    CASNodeProcessMetrics:
      title: CAS Node Process Metrics
      description: CAS Node Process Metrics
      properties:
        name:
          type: string
          description: Node name.
        pid:
          type: string
          description: Process identifier of the server process.
        connected:
          type: boolean
          description: Indicates if the server is running and connected to the grid.
        type:
          $ref: "#/components/schemas/CASServerType"
        metrics:
          description: List of metrics.
          type: array
          items:
            $ref: "#/components/schemas/Process"
    CASServer:
      title: CAS Server Information
      description: CAS Server Information
      properties:
        type:
          $ref: "#/components/schemas/CASServerType"
        state:
          $ref: "#/components/schemas/CASServerState"
        client:
          description: Client port.
          type: integer
          example: 5570
        control:
          description: Control port.
          type: integer
          example: 5571
        idleTime:
          description: Amount of time in seconds since the last session create/destroy or node create/destroy.
          type: integer
          example: 315619314
        process:
          $ref: "#/components/schemas/CASProcess"
        maxSessions:
          description: The maximum number of sessions allowed to run on the server at the same time.
          type: integer
          example: 5000
        sessionCount:
          description: Number of sessions currently running.
          type: integer
          example: 1
        createdSessionsCount:
          description: Number of sessions created since the server started.
          type: integer
          example: 1727
        lastSessionActivity:
          description: The last session life cycle event (created or destroyed) that occured on the server.
          type: object
          properties:
            uuid:
              description: The unique identifier of the session that last had a lifecycle event.
              type: string
              example: fb6ded1b-3e23-2446-becb-899709060a0f
            gmtTime:
              description: The GMT POSIX time that the event occurred.
              type: integer
              example: 2306676112
            event:
              description: The event that occurred. "startup" indicates server startup and session has not yet been created.
              type: string
              enum:
                - startup
                - create
                - destroy
              example: destroy
        license:
          description: License information for the CAS server.
          type: object
          properties:
            gracePeriod:
              description: Number of days after license expiration the license continues working with warning messages printed to execution logs.
              type: integer
              example: 45
            licenseExpires:
              description: Date and time of license expiration in the form 'ddmmmyyyy:HH:MM:ss'.
              type: string
              example: 02May2023:00:00:00
            licensePath:
              description: Path of the license file in the installation.
              type: string
              example: /cas/license/license.sas
            maxCPUs:
              description: Maximum number of CPUs licensed for use across the entire grid. Value is null if no maximum is set.
              type: integer
              example: 1
            maxSessions:
              description: Deprecated. Will be removed in a future release.
              type: integer
              example: 5000
            sessionCount:
              description: Deprecated. Will be removed in a future release.
              type: integer
              example: 1
            siteName:
              description: Your site name.
              type: string
              example: SCI...
            siteNumber:
              description: Your site number.
              type: integer
              example: 70180938
            startCPU:
              description: First CPU to license, indexed from 0. Value is null if not set.
              type: integer
              example: 1
            unusedSessions:
              description: Deprecated. Will be removed in a future release.
              type: integer
              example: 4999
            warningPeriod:
              description: Number of days after the grace period when the license will continue to work but with a stronger log message. After the warning period expires, the license is no longer valid and the software will stop running.
              type: integer
              example: 46
    Session:
      title: Session Information
      description: Session Information
      properties:
        id:
          description: The identifier for the session.
          type: string
          example: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
        uuid:
          description: The unique identifier for the session, same as id. Provided for backward compatibility.
          type: string
          example: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
        name:
          description: The displayed name for the session.
          type: string
        state:
          description: The state of the session. Usually 'connected' or 'disconnected'.
          type: string
          example: connected
        httpPort:
          description: The port used by the HTTP listener.
          type: integer
        httpProtocol:
          description: The protocol used by the HTTP listener.
          type: string
          enum:
            - http
            - https
        user:
          description: The username of the owner of the session.
          type: string
        owner:
          description: Synonym for user.
          type: string
        provider:
          description: The authentication provider used when authenticating the creater of the session.
          type: string
        idleTime:
          description: The amount of time the session has been idle in seconds. A session is considered idle when it not executing an action.
          type: object
          properties:
            hours:
              description: Number of hours.
              type: integer
            minutes:
              description: Number of minutes.
              type: integer
            seconds:
              description: Number of seconds.
              type: integer
        actionCount:
          description: Total number of actions executed.
          type: integer
        activeAction:
          description: The action currently being executed (or last executed if idle).
          type: string
        isIdle:
          description: TRUE if the session is idle, meaning it not currently executing an action.
          type: boolean
          example: false
        clientCount:
          description: Number of clients connected to the session.
          type: integer
    CPU:
      title: CPU Information
      description: CPU information
      properties:
        processor:
          description: Processor number in the system. Processors in the system are numbered starting at 0.
          type: integer
        vendor_id:
          description: The CPU manufacturer.
          type: string
        cpu_family:
          description: CPU family. Linux does not document what values match which families.
          type: integer
        model:
          description: CPU model.
          type: integer
        model_name:
          description: Name of the CPU model
          type: string
        stepping:
          description: The stepping (revision number) of the CPU.
          type: integer
        cpu_MHz:
          description: Speed of the CPU in MHz.
          type: number
          format: double
        cache_size:
          type: string
          description: Value with units.
        physical_id:
          description: Physical identifier of the CPU.
          type: integer
        siblings:
          description: Not documented by Linux.
          type: integer
        core_id:
          description: The ID of the core for these attributes.
          type: integer
        cpu_cores:
          description: Number of cores in the CPU.
          type: integer
        apicid:
          description: The advanced programmer interrupt controller ID number. Assigned by the firmware.
          type: integer
        initial_apicid:
          description: The initial APIC identifier.
          type: integer
        fpu:
          description: Inidicates if the CPU has a FPU unit.
          type: string
          enum:
            - yes
            - no
        fpu_exception:
          description: Indicates that the FPU has exception handling.
          type: string
          enum:
            - yes
            - no
        cpuid_level:
          description: The CPUID value for the processor. For Intel processors, describes features of the CPU. See [CPUID](https://en.wikipedia.org/wiki/CPUID) for more information.
          type: integer
        wp:
          description: Not documented by Linux.
          type: string
          enum:
            - yes
            - no
        flags:
          description: CPU flags.
          type: array
          items:
            type: string
        bogomips:
          description: A Linux measurement of CPU speed. Can be used to compare several systems and determine if their performance is similar.
          type: number
          format: double
        clflush_size:
          description: Size of a cache line, as in the amount of cache flushed by the CLFLUSH instruction on Intel processors.
          type: integer
        cache_alignment:
          description: The memory alignment of a cache line, in bytes.
          type: integer
        address_sizes:
          description: Describes the address sizes supported by the CPU, in human readable form.
          type: string
        power_management:
          type: string
          description: Power management information. May be null if no information available.
    CPUMetrics:
      title: CPU Metrics
      description: CPU Metrics
      properties:
        cpu:
          type: integer
          description: Element 0 is of type string, value "all".
        userTimeHz:
          description: Amount of time spent by the CPU executing in user space, in hertz/cycles.
          type: integer
        systemTimeHz:
          description: Amount of time spent by the CPU executing in system space, in hertz/cycles.
          type: integer
        idleTimeHz:
          description: Amount of time spent by the CPU executing in system space, in hertz/cycles.
          type: integer
        iowaitTimeHz:
          description: Amount of time spent by the CPU waiting for IO to complete, in hertz/cycles.
          type: integer
        irqTimeHz:
          description: Amount of time spent by the CPU processing IRQs, in hertz/cycles.
          type: integer
        softirqTimeHz:
          description: Amount of time spent by the CPU processing soft IRQs, in hertz/cycles.
          type: integer
    MemoryMetrics:
      title: Memory Metrics
      description: Memory Metrics
      properties:
        MemTotal_kB:
          description: Total mount of physical memory, in kilobytes.
          type: integer
        MemFree_kB:
          description: Amount of free physical memory, in kilobytes.
          type: integer
        MemAvailable_kB:
          description: When provided by the operating system (some Linux platforms), value is an estimate of how much memory is available without swapping. Otherwise the value is calculated based on virtual memory information returned by the OS. Value is in kilobytes.
          type: integer
        Buffers_kB:
          description: Amount of memory used for raw disk blocks, in kilobytes.
          type: integer
        Cached_kB:
          description: Size of the in-memory cache for files read from disk, not including the amount of swap cached memory, in kilobytes.
          type: integer
        SwapCached_kB:
          description: Size of memory that has been swapped out but also resides in swap space, in kilobytes. Linux tracks this so that it can avoid swapping out pages that are already on disk, saving IO.
          type: integer
        Active_kB:
          description: Memory that has been used more recently, in kilobytes. Linux will avoid reclaiming this to increase performance.
          type: integer
        Inactive_kB:
          description: Memory that has not been recently used, in kilobytes.
          type: integer
        Active(anon)_kB:
          description: Value meaning not documented by Linux.
          type: integer
        Inactive(anon)_kB:
          description: Value meaning not documented by Linux.
          type: integer
        Active(file)_kB:
          description: Value meaning not documented by Linux.
          type: integer
        Inactive(file)_kB:
          description: Value meaning not documented by Linux.
          type: integer
        Unevictable_kB:
          description: Unevictable memory, in kilobytes. The unevictable-lru infrastructure is an additional LRU (last recently used) list that was implemented to address performance issues in large memory systems. See Documentation/vm/unevictable-lru.txt in the Linux sources for more information.
          type: integer
        Mlocked_kB:
          description: Locked memory, in kilobytes, as used by the unevictable LRU (last recently used) infrastructure.  The unevictable-lru infrastructure is an additional LRU list that was implemented to address performance issues in large memory systems. See Documentation/vm/unevictable-lru.txt in the Linux sources for more information.
          type: integer
        SwapTotal_kB:
          description: Total amount of swap space available, in kilobytes.
          type: integer
        SwapFree_kB:
          description: Amount of swap space free, in kilobytes.
          type: integer
        Dirty_kB:
          description: Memory waiting to be written back to disk, in kilobytes.
          type: integer
        Writeback_kB:
          description: Memory actively being written back to disk, in kilobytes.
          type: integer
        AnonPages_kB:
          description: Pages mapped into user-space that are not from files.
          type: integer
        Mapped_kB:
          description: Memory used for mapping files, in kilobytes.
          type: integer
        Shmem_kB:
          description: Value meaning not documented by Linux.
          type: integer
        Slab_kB:
          description: In-kernel data structures cache.
          type: integer
        SReclaimable_kB:
          description: Size of the 'slab' portion that might be reclaimed.
          type: integer
        SUnreclaim_kB:
          description: Size of the 'slab' portion that cannot be reclaimed.
          type: integer
        KernelStack_kB:
          description: Amount of memory used by kernel stacks in kilobytes.
          type: integer
        PageTables_kB:
          description: Amount of memory used by the lowest level of page tables, in kilobytes.
          type: integer
        NFS_Unstable_kB:
          description: Amount of pages that have been sent to an NFS server but have not yet been written to stable storage, in kilobytes.
          type: integer
        Bounce_kB:
          description: Memory used for bounce buffers for block devices.
          type: integer
        WritebackTmp_kB:
          description: Amount of FUSE memory used for writeback buffers.
          type: integer
        CommitLimit_kB:
          description: Amount of memory available to the system, with the overcommit ratio factored in. Only used if overcommit accounting is enabled.
          type: integer
        Committed_AS_kB:
          description: Amount of memory currently allocated by the system, including memory allocated by processes but not used.
          type: integer
        VmallocTotal_kB:
          description: Amount of memory available for vmalloc.
          type: integer
        VmallocUsed_kB:
          description: Amount of memory allocated via vmalloc.
          type: integer
        VmallocChunk_kB:
          description: Largest block of free vmalloc memory.
          type: integer
        HardwareCorrupted_kB:
          description: Value meaning not documented by Linux.
          type: integer
        CmaTotal_kB:
          description: Total contiguous memory reserved for use by the kernel. Value is not provided by all Linux distributions. When the value is not provided, the attribute is omitted.
          type: integer
        CmaFree_kB:
          description: Continguous memory area that is free to use by the kernel. Value is not provided by all Linux distributions. When the value is not provided, the attribute is omitted.
          type: integer
        AnonHugePages_kB:
          description: Huge pages mapped into user space that are not from files.
          type: integer
        HugePages_Total:
          description: Size of the pool of huge pages.
          type: integer
        HugePages_Free:
          description: Number of free huge pages.
          type: integer
        HugePages_Rsvd:
          description: Number of reserved huge pages. Reserved huge pages are used by Linux to guarantee that application can allocate a huge page when a fault occurs.
          type: integer
        HugePages_Surp:
          description: Number of surplus (overcommit)  huge pages.
          type: integer
        Hugepagesize_kB:
          description: The size of a huge page in kilobytes.
          type: integer
        DirectMap4k_kB:
          description: Amount of 4k blocks that are direct mapped, in kilobytes.
          type: integer
        DirectMap2M_kB:
          description: Amount of 2 megabyte blocks that are direct mapped, in kilobytes.
          type: integer
        DirectMap1G_kB:
          description: Amount if 1 gigabyte blocks that are direct mapped, in kilobytes.
          type: integer
    SystemInformation:
      title: System Information
      description: System Information
      properties:
        clockTicksPerSecond:
          description: Number of CPU clock ticks per second. Use this value to convert CPU metrics in hertz/cycles to seconds.
          type: number
          format: double
        pageSize:
          description: Page size ing bytes.
          type: integer
        version:
          description: Version of the system.
          type: string
        maxSystemThreads:
          description: Maximum number of threads that can be created by the system.
          type: integer
        bootCommand:
          description: The command used to boot the system.
          type: string
        oneMinLoadAvg:
          description: The one minute load average for the system.
          type: number
          format: double
        fiveMinLoadAvg:
          description: The five minute load average for the system.
          type: number
          format: double
        fifteenMinLoadAvg:
          description: The fifteen minute load average for the system. Can also be 'null' if no value available from OS.
          type: number
          format: double
        openFiles:
          description: Number of open files for all processes in the system.
          type: integer
        freeFiles:
          description: Number of free files for all processes in the system.
          type: integer
        maxFiles:
          description: Maximum number of open files across all processes in the system.
          type: integer
        inodes:
          description: Maximum number of inodes for the system.
          type: integer
        freeInodes:
          description: Number of free inodes in the system.
          type: integer
        uptimeSeconds:
          description: Number of seconds the system has been running.
          type: number
          format: double
        idleSeconds:
          description: Number of seconds spent in the idle process.
          type: number
          format: double
        memory:
          $ref: "#/components/schemas/MemoryMetrics"
        cpus:
          title: ArrayOfCPUs
          type: array
          items:
            $ref: "#/components/schemas/CPU"
        cpuMetrics:
          description: >
            Array of metrics information for CPUs on the system. Element

            0 of list contains metrics for all CPUs.
          type: array
          items:
            $ref: "#/components/schemas/CPUMetrics"
    Process:
      title: Process
      description: Process
      properties:
        pid:
          description: Process identifier.
          type: string
        id:
          type: string
          description: Same value as PID.
        userId:
          type: string
          description: UID of process owner.
        username:
          type: string
          description: >
            If username cannot be determined from UID, contains

            string representation of UID.
        command:
          description: Command used to start the process, including command line parameters.
          type: string
        state:
          description: The current state of the process.
          type: string
          enum:
            - Running
            - Sleeping
            - Disk Wait
            - Zombie
            - Traced
            - Paging
        userCPUTime:
          description: Amount of time spent executing in user space, in hertz/cycles.
          type: number
          format: double
        systemCPUTime:
          description: Amount of time spent executing in system space, in hertz/cycles.
          type: number
          format: double
        totalCPUTime:
          description: Total CPU usage, in hertz/cycles.
          type: number
          format: double
        clockTicksPerSecond:
          description: Number of clock ticks (cycles) per second. Use to convert CPU times to seconds.
          type: number
          format: double
        nice:
          description: Priority of the process.
          type: integer
        threads:
          description: Number of threads being used by the process.
          type: integer
          example: 1
        vmSize:
          description: Virtual memory size of the process, in bytes.
          type: string
        rss:
          description: Resident set size (physical memory usage) for the process, in bytes.
          type: string
        cpu:
          type: string
          description: Number of CPU running the process.
          example: "12"
        commandLine:
          description: The command used to start the process.
          type: array
          items:
            type: string
    CPUTime:
      title: CPU Time
      description: CPUTime
      properties:
        userCPUTime:
          type: number
          format: double
        systemCPUTime:
          description: Time in HZ.
          type: number
          format: double
        totalCPUTime:
          description: Time in HZ.
          type: number
          format: double
        clockTicksPerSecond:
          description: Use to convert HZ to seconds.
          type: integer
    Thread:
      title: Thread
      description: Thread
      properties:
        pid:
          description: The process ID of the owner process.
          type: string
        id:
          type: string
          description: Thread identifier.
        userId:
          type: string
          description: UID of process owner.
        username:
          type: string
          description: >
            If username cannot be determined from UID, contains

            string representation of UID.
        command:
          description: Command used to start the process.
          type: string
        state:
          description: State of the thread.
          type: string
          enum:
            - Running
            - Sleeping
            - Disk Wait
            - Zombie
            - Traced
            - Paging
        userCPUTime:
          description: Amount of time the thread has executed in user space, in hertz/cycles.
          type: number
          format: double
        systemCPUTime:
          description: Amount of time the thread has executed in user space, in hertz/cycles.
          type: number
          format: double
        totalCPUTime:
          description: Amount of time the thread has executed in user space, in hertz/cycles.
          type: number
          format: double
        clockTicksPerSecond:
          description: Number of clock ticks (cycles) per second. Use to convert CPU times to seconds.
          type: number
          format: double
        nice:
          description: The priority of the thread.
          type: integer
        vmSize:
          description: Virtual memory size, in bytes.
          type: string
        rss:
          description: Resident set size, in bytes.
          type: string
        cpu:
          type: string
          description: Number of CPU running the thread.
        stackTrace:
          description: The contents of the thread's current execution stack.
          type: array
          items:
            type: string
    CASServerType:
      title: CAS Server Type
      description: CAS Server type. 'BackupController' and 'Backup' are synonyms. Compare for both values to determine if server is a backup controller.
      type: string
      enum:
        - Controller
        - Worker
        - BackupController
        - Backup
    CASServerState:
      title: CAS Server State
      description: CAS Server State
      type: string
      enum:
        - Starting Up
        - Running
        - Shutting Down
    CASProcess:
      title: CAS Process
      description: CAS Process
      properties:
        id:
          description: Process ID.
          type: string
        owner:
          description: User that owns the CAS process.
          type: string
        uptime:
          description: Time that the server has been running, in seconds.
          type: number
          format: double
        userCPU:
          description: User CPU time for the process.
          type: number
          format: double
        sysCPU:
          description: System CPU time for the process.
          type: number
          format: double
        memoryUsed:
          description: Memory currently used by the process, in bytes.
          type: integer
        maxMemoryUsed:
          description: Maximum memory used by the process, in bytes.
          type: integer
        threadCount:
          description: Number of threads being run by the process.
          type: integer
        maxThreadCount:
          description: Maximum number of threads being run by the process.
          type: integer
        ioCount:
          description: IO count, in bytes.
          type: integer
        os:
          type: object
          description: Operating system information.
          properties:
            name:
              description: Operating system name.
              type: string
            version:
              description: Operating system version.
              type: string
            release:
              description: Operating system release.
              type: string
        system:
          type: object
          description: System information.
          properties:
            type:
              description: System type.
              type: string
            name:
              description: System name.
              type: string
        casVersion:
          type: object
          description: Version information.
          properties:
            version:
              type: string
              description: Version of the CAS server.
            buildDate:
              type: string
              description: Build date of the CAS server.
            buildTime:
              type: string
              description: Build time of the CAS server.
    ActionResults:
      title: Action Results
      description: Action Results
      type: object
      properties:
        status:
          description: Always returns 0. Use disposition.statusCode instead.
          type: integer
        log:
          description: Concatenation of log entries into a single string.
          type: string
        results:
          $ref: "#/components/schemas/ResultsTable"
        logEntries:
          description: >
            A list of log messages generated by the action. These are the same as the

            log attribute, but include log level so that they can be filtered for display

            (e.g. display only errors).
          type: array
          items:
            $ref: "#/components/schemas/LogEntry"
        disposition:
          $ref: "#/components/schemas/Disposition"
        changedResources:
          description: >
            A list of enumerated strings that represents state changes in the

            server that occurred while running the action. Clients can use these

            flags to distinguish what local resources must be refreshed (e.g.

            lists of caslibs) to reflect the current state of the server.
          type: array
          items:
            $ref: "#/components/schemas/ChangedResources"
        metrics:
          $ref: "#/components/schemas/ActionResultsMetrics"
    LogEntry:
      title: Log Entry
      description: Log Entry
      type: object
      properties:
        level:
          description: Level of the log entry.
          type: string
          enum:
            - all
            - trace
            - info
            - warn
            - error
            - fatal
            - none
        message:
          description: The text of the log entry.
          type: string
    Disposition:
      title: Action Disposition
      description: Disposition
      type: object
      properties:
        severity:
          description: Severity of the error.
          type: string
          enum:
            - Normal
            - Warning
            - Error
        reason:
          description: Reason for the error.
          type: string
          enum:
            - OK
            - Authorization
            - Network
            - Memory
            - Authentication
            - Exception
            - Abort
        statusCode:
          description: Status of the execution. 0 = success.
          type: integer
        formattedStatus:
          description: A formatted representation of the statusCode. May be null.
          type: string
        debugInfo:
          description: Additional debugging information. May be null.
          type: string
        changedResources:
          description: A list of server resources that were changed by the action. Applications can use this value to determine what local copies of server information must be updated to match the new state of the server.
          type: array
          items:
            $ref: "#/components/schemas/CASResource"
        metrics:
          $ref: "#/components/schemas/ActionMetrics"
    CASResource:
      title: CAS Resource
      description: CAS Resource
      type: string
      enum:
        - caslibs
        - tables
        - actionsets
        - datasources
        - caslibPermissions
        - actionPermissions
        - administrators
        - BWList
    ActionMetrics:
      title: Action Metrics
      description: Action Metrics
      properties:
        elapsedTime:
          description: Real time consumed by the action, in seconds
          type: number
          format: double
        cpuUserTime:
          description: User CPU time used by the action on all nodes.
          type: number
          format: double
        cpuSystemTime:
          description: System CPU time used by the action on all nodes.
          type: number
          format: double
        systemTotalMemory:
          description: Total memory available to the system in bytes.
          type: integer
        systemNodes:
          description: Total nodes in the session.
          type: integer
        systemCores:
          description: Number of cores in the session.
          type: integer
        memory:
          description: Memory used by the action on all nodes in bytes.
          type: integer
        osMemory:
          description: OS memory used by the action on all nodes in bytes.
          type: integer
        systemMemory:
          description: System memory used by the action in bytes.
          type: integer
        memoryQuota:
          description: Memory quota.
          type: integer
        ioPageReclaims:
          description: Page reclaims.
          type: integer
        ioPageFaults:
          description: Page faults.
          type: integer
        ioReadFaults:
          description: Read faults.
          type: integer
        ioReadBlocks:
          description: Block input operations.
          type: integer
        ioReadCalls:
          description: Number of read requests.
          type: integer
        ioWriteCalls:
          description: Number of write requests.
          type: integer
        ioReadBytes:
          description: Bytes read.
          type: integer
        ioWriteBytes:
          description: Bytes written.
          type: integer
        ioWriteBytesCancelled:
          description: Bytes written but cancelled.
          type: integer
        voluntaryContextSwitches:
          description: Number of voluntary context switches.
          type: integer
        involuntaryContextSwitches:
          description: Number of involuntary context switches.
          type: integer
    ResultsTable:
      title: Results Table
      description: Results Table
      properties:
        _ctb:
          type: boolean
          description: Always true. Indicates that the JSON object is a ResultsTable.
        label:
          description: Label for the table.
          type: string
        title:
          description: Title for the table.
          type: string
        name:
          description: Name of the table.
          type: string
        schema:
          type: array
          description: >
            Describes the data in each column, including data types.
          items:
            $ref: "#/components/schemas/ResultsTableColumn"
        attributes:
          type: object
          description: Attributes defined for the table. No formal schema is used for table attributes.
        rows:
          description: >
            Table data, array of column data. Column data objects match the

            type specified in the schema attribute.
          type: array
          items:
            type: object
    ResultsTableColumn:
      title: Results Table Column
      description: Results Table Column
      properties:
        name:
          description: The name of the column.
          type: string
        label:
          description: The label for the column.
          type: string
          example: Some column label
        format:
          description: The format used to display the data.
          type: string
        type:
          description: The column's data type.
          type: string
          enum:
            - int
            - double
            - string
            - decsext
          example: int
        width:
          description: The width of the column.
          type: integer
        attributes:
          description: Attributes for the table. No formal schema exists for column attributes.
          type: object
    CASAdministrator:
      title: CAS Administrator
      description: CAS Administrator
      type: object
      properties:
        name:
          description: The name for the administrator.
          type: string
          example: SAS Administrators
        id:
          description: The unique identifier for the administrator. Not a UUID.
          type: string
          example: "1"
        isGroup:
          type: boolean
          description: If true, name field is a group name rather than a user name.
          example: true
        type:
          description: Administrator type. A data administrator can only administer caslibs and tables. A CAS administrator can administer data as well as server lifecycle, including node addition and removal.
          type: string
          enum:
            - cas
            - data
          example: cas
    APIResult:
      title: API Result
      description: API Result
      type: object
      properties:
        result:
          type: string
          description: >
            The result of the call. "Success" indicates that the call was successful.

            Other values are a description of the failure.
          example: Success
    CASNotifications:
      title: CAS Notifications
      description: CAS Notifications
      type: object
      properties:
        list:
          description: >
            List of messages for the specified time period. The timeStamp field

            can be used to order the messages.
          type: array
          items:
            $ref: "#/components/schemas/CASMessage"
        timeStamp:
          description: The time that the returned list was generated. Send this back to the server on subsequent calls to get messages after this was generated.
          type: integer
        state:
          description: The current state of the CAS server.
          type: string
          enum:
            - Shutting Down
            - Starting Up
            - Running
    CASMessage:
      title: CAS Message
      description: CAS Message
      type: object
      properties:
        text:
          description: The text of the message.
          type: string
        severity:
          description: The severity of the message. 0 = all, 1 = trace, 2 = debug, 3 = informational, 4 = warning, 5 = error, 6 = fatal.
          type: integer
        timeStamp:
          description: The time the message was generated, in POSIX seconds.
          type: integer
    ProcessEnvironment:
      title: Process Environment
      description: Process Environment
      type: array
      items:
        $ref: "#/components/schemas/EnvironmentVariable"
    EnvironmentVariable:
      title: Environment Variable
      description: Environment Variable
      type: object
      properties:
        name:
          description: The name of the environment variable.
          type: string
        value:
          description: The value of the environment variable.
          type: string
    TopSystemMetrics:
      title: Top System Metrics
      description: Top System Metrics
      type: object
      properties:
        cpuLoad:
          description: >
            System CPU load, which is orders of magnitude of

            system load. 1.0 = normal, higher numbers indicate more load.

            CAS servers running on Windows return 0.
          type: number
          format: double
        system:
          $ref: "#/components/schemas/SystemInformation"
        processes:
          title: ArrayOfProcesses
          type: array
          items:
            $ref: "#/components/schemas/Process"
    SessionOwner:
      title: Session Owner
      description: Session Owner
      type: object
      properties:
        user:
          description: The name of the user that owns the session.
          type: string
        owner:
          description: Synonym for user.
          type: string
    ErrorCode:
      title: Error Code
      description: An identifier for the failure that occurred.
      type: string
      enum:
        - ActionFailed
        - ActionInsufficientCredentials
        - ActionParmsBadType
        - ActionParseError
        - ActionSendFailed
        - ActionSetUnknown
        - ActionUnknown
        - AdminExists
        - AdminRequired
        - AdminUnknown
        - AuthRequired
        - AuthTypeNotSupported
        - BadJSONType
        - BadMethod
        - ConnectFailed
        - ExceptionOccurred
        - IncorrectParameterValue
        - InsufficientPermissions
        - JSONParseError
        - LoggerExists
        - NoActionDefinitions
        - NodeDisconnected
        - NodeUnknown
        - PathNotFound
        - ParameterEmpty
        - ParameterInvalidValue
        - ParameterMissing
        - ParameterWrongType
        - ProcessIdentifierNotNumber
        - ProcessOrThreadUnknown
        - ProcessUnknown
        - RoleNotAssumed
        - SessionDoesNotRespond
        - SessionNoId
        - SessionNoNodes
        - SessionReturnedError
        - SessionUnknown
        - ThreadUnknown
        - UnsupportedForOutputType
    ErrorResponse:
      title: Error Response
      description: Error Response
      type: object
      properties:
        error:
          description: >
            Describes the error that occurred.
          type: string
        code:
          $ref: "#/components/schemas/ErrorCode"
        details:
          description: >
            Additional information about the error, usually the object/entity

            involved in the failure. For example, a 404 response with the SessionUnknown

            code would provide the session id as details.





            Value is null if there is no additional information.
          type: string
        disposition:
          $ref: "#/components/schemas/Disposition"
    ChangedResources:
      title: Changed Resources
      description: Changed Resources
      type: string
      enum:
        - caslibs
        - tables
        - actionsets
        - datasource
        - caslibPermissions
        - actionPermissions
        - administrators
        - BWList
    ActionResultsMetrics:
      title: Action Results Metrics
      description: Action Results Metrics
      type: object
      properties:
        elapsedTime:
          description: Elapsed time on all nodes while running the action, in seconds.
          type: number
          format: double
        cpuUserTime:
          description: User CPU time used on all nodes while running the action, in seconds.
          type: number
          format: double
        cpuSystemTime:
          description: Systen CPU time used on all nodes while running the action, in seconds.
          type: number
          format: double
        systemTotalMemory:
          description: Total memory available to the system, in bytes.
          type: integer
        systemNodes:
          description: Number of nodes (machines).
          type: integer
        systemCores:
          description: Number of cores in the session.
          type: integer
        memory:
          description: Memory used by the action on all nodes in bytes.
          type: integer
        osMemory:
          description: OS memory used by the action on all nodes in bytes.
          type: integer
        systemMemory:
          description: System memory used by the action in bytes.
          type: integer
        memoryQuota:
          description: Memory quota in bytes.
          type: integer
        ioPageReclaims:
          description: Page reclaims.
          type: integer
        ioPageFaults:
          description: Page faults.
          type: integer
        ioReadFaults:
          description: Read faults.
          type: integer
        ioReadBlocks:
          description: Block input operations.
          type: integer
        ioReadCalls:
          description: Number of read requests.
          type: integer
        ioWriteCalls:
          description: Number of write requests.
          type: integer
        ioReadBytes:
          description: Bytes read.
          type: integer
        ioWriteBytes:
          description: Bytes written.
          type: integer
        ioWriteBytesCancelled:
          description: Bytes written but cancelled.
          type: integer
        voluntaryContextSwitches:
          description: Number of voluntary context switches.
          type: integer
        involuntaryContextSwitches:
          description: Number of involuntary context switches.
          type: integer
        dataMovementBytes:
          description: >
            Total number of bytes of data moved between nodes on the grid

            while running the action.
          type: integer
    ActionDefinition:
      title: Action Definition
      description: Action Definition
      type: object
      properties:
        actionSet:
          description: >
            Action set that contains the action.
          type: string
        description:
          description: >
            Description of the action.
          type: object
          properties:
            text:
              type: string
        label:
          description: >
            Label for the action for user interfaces.
          type: object
          properties:
            text:
              type: string
        name:
          description: >
            Name of the action.
          type: string
        parameters:
          description: >
            Array of parameters for the action.
          type: array
          items:
            $ref: "#/components/schemas/ActionParameter"
        results:
          description: >
            List of results returned by the action. Not all actions provide this

            information. If not provided, refer to the action documentation, which can be found

            at:

            <ul>

            <li style="list-style-type:none;"><a target="_blank" href="http://documentation.sas.com/#/?cdcId=vdmmlcdc&cdcVersion=8.1&docsetId=caspg&docsetTarget=titlepage.htm">System Programming Guide</a></li>

            <li style="list-style-type:none;"><a target="_blank" href="http://documentation.sas.com/#/?cdcId=vdmmlcdc&cdcVersion=8.1&docsetId=casanpg&docsetTarget=titlepage.htm">Analytics Programming Guide</a></li>

            <li style="list-style-type:none;"><a target="_blank" href="http://documentation.sas.com/#/?cdcId=vdmmlcdc&cdcVersion=8.1&docsetId=casactstat&docsetTarget=titlepage.htm">Statistics Programming Guide</a></li>

            <li style="list-style-type:none;"><a target="_blank" href="http://documentation.sas.com/#/?cdcId=vdmmlcdc&cdcVersion=8.1&docsetId=casactml&docsetTarget=titlepage.htm">Data Mining and Machine Learning Programming Guide</a></li>

            </ul>
          type: array
          items:
            $ref: "#/components/schemas/ActionResultValue"
        entry:
          description: Entry point for the action. Used internally.
          type: string
        id:
          description: Unique identifier for this definition. Not a UUID.
          type: string
        jsonObjectType:
          description: The type of this object. Value is always "action" for this schema.
          type: string
    ActionParameter:
      title: Action Parameter
      type: object
      description: >
        Defines an action parameter.
      properties:
        description:
          description: >
            Description of the parameter.
          type: string
        name:
          description: Parameter name.
          type: string
        alias:
          description: >
            List of alternative, equivalent names for the parameter. Used to provide

            shorter names or alternative spellings for a parameter.


            For example, a parameter could have a primary name in camelcase and

            underscore format. The name could be "caseSensitive" and have an

            alias of "case_sensitive".
          type: array
          items:
            $ref: "#/components/schemas/Alias"
        type:
          description: Data type of parameter value.
          type: string
          enum:
            - Boolean
            - Blob
            - Date
            - DateTime
            - Double
            - Int32
            - Int64
            - Items
            - List
            - NilList
            - String
            - Table
            - Time
            - BooleanList
            - BlobList
            - DateList
            - DateTimeList
            - DoubleList
            - Int32List
            - Int64List
            - ItemsList
            - StringList
            - TableList
            - TimeList
            - enumlist
            - enum
            - ParamArray
            - ParamList
            - Alternatives
        paramlistName:
          description: >
            When the parameter is of type ParamList, an optional name for the

            parameter list.
          type: string
        subparameters:
          description: List of parameters describing the parameters in the ParamList.
          type: array
          items:
            $ref: "#/components/schemas/ActionParameter"
        constants:
          description: >
            When parameter is of type enum, this list defines the values for the enum.
          type: array
          items:
            $ref: "#/components/schemas/EnumValue"
        default:
          description: >
            Default value for this parameter. Data type matches the type of the parameter.
        informat:
          description: >
            Name of a SAS informat to use on strings that are supplied as parameter

            values. If an informat is supplied, then any string provided as a parameter

            value will be formatted using the informat, and the result (whether

            string or numeric) will be used as the value instead.
          type: string
        exclmax:
          description: >
            The (numeric) parameter, or list item count, must be less than, but

            not equal to, the specified value.
          type: number
        exclmin:
          description: >
            The (numeric) parameter, or list item count, must be greater than,

            but not equal to, the specified value.
          type: number
        minvalue:
          description: >
            The (numeric) parameter must be greater than or equal to the specified value.
          type: number
        maxvalue:
          description: >
            The (numeric) parameter must be less than or equal to the specified value.
          type: number
        flagKeyedlist:
          description: >
            When set on a list parameter, the list should contain keys. For JSON,

            this means that the list should be a JSON object rather than a JSON

            array.
          type: boolean
        flagRequired:
          description: >
            When true, a value for this parameter is required.
          type: boolean
        flagNotblank:
          description: >
            When set on a string, the string cannot be null, nor empty, nor all blanks.
          type: boolean
        flagNotnull:
          description: >
            Value cannot be null.
          type: boolean
        flagBytemeasure:
          description: >
            When set on an int32 or int64 parameter, the value can be specified as a

            string instead with a byte unit suffix of 'b' for bytes (ignored), 'k'

            for kilobytes, 'm' for megabytes, 'g' for gigabytes, and 't' for terabytes.





            For these memory units, 1 kilobytes = 1024 bytes.
          type: boolean
        flagHidden:
          description: >
            Parameter is not shown to the user. Usually set on parameters reserved

            for internal use.
          type: boolean
        flagHidedefault:
          description: >
            If set, the default value is not shown to the user. Used in cases

            where default values are not significant, e.g. setting a double

            to DOUBLE_MAX.
          type: boolean
        flagIscompvar:
          description: >
            When set on a string list parameter, the list contains computed column

            names. User interfaces can check this flag and generate the appropriate interface.
          type: boolean
        flagIsgroupby:
          description: >
            When set on a string parameter, the parameter is a group by clause.

            User interfaces can check this flag and generate the appropriate interface.
          type: boolean
        flagIsorderby:
          description: >
            When set on a string parameter, the parameter is an order by clause.

            User interfaces can check this flag and generate the appropriate interface.
          type: boolean
        flagIspassword:
          description: >
            When set on a string parameter, the parameter is a password, and the value

            should be protected (e.g. obscured in user interfaces).
          type: boolean
        flagIsunique:
          description: >
            When set on a list of any type, the list must contain unique values.

            Only lists of type boolean, int32, int64, double, date, datetime, and string

            are validated for uniqueness when the parameters are processed before

            running the action.
          type: boolean
        flagIsusername:
          description: >
            When set on a string parameter, value is a user name.
          type: boolean
        flagIsvar:
          description: >
            When set on a string or stringlist parameter, the value(s) are

            variable names. User interfaces can check this flag and generate the

            appropriate interface.
          type: boolean
        flagIswhere:
          description: >
            When set on a string parameter, the parameter is a where clause. User

            interfaces can check this flag and generate an interface specific to where

            clauses.
          type: boolean
        flagNopreload:
          description: >
            When set on a table parameter, CAS does not preload the specified table

            before the action is started, allowing the action itself to determine

            if the table should be opened.
          type: boolean
        id:
          description: Unique identifier for this definition. Not a UUID.
          type: string
        jsonObjectType:
          description: The type of this object. Value is always "param" for this schema.
          type: string
        label:
          description: Label for the parameter.
          type: object
          properties:
            text:
              description: The text of the label.
              type: string
        minitems:
          description: Minimum items.
          type: string
    Alias:
      title: Alias
      type: object
      description: Alias Object
      properties:
        name:
          type: string
          description: >
            List of alternative, equivalent names for an item, providing shorter

            names or alternative spellings. For example, an alias could provide

            the underscore form of a camelcase name.
        hidden:
          description: >
            If true, alias is not displayed by clients and not documented to users.





            This attribute might not included in the object when value is false.
          type: boolean
    EnumValue:
      title: Enumeration Value
      description: Enumeration Value
      type: object
      properties:
        name:
          description: Name for this value.
          type: string
        description:
          description: Description of this value.
          type: object
          properties:
            text:
              type: string
        value:
          description: Enumeration value.
          type: string
    ActionResultValue:
      title: Action Result Value
      description: Action Result Value
      type: object
      properties:
        name:
          description: Name for the value.
          type: string
        description:
          description: Description of the returned value.
          type: object
          properties:
            text:
              type: string
        type:
          description: Data type for the value.
          type: string
          enum:
            - Boolean
            - Blob
            - Date
            - DateTime
            - Double
            - Int32
            - Int64
            - Items
            - List
            - String
            - Table
            - Time
            - BooleanList
            - BlobList
            - DateList
            - DateTimeList
            - DoubleList
            - Int32List
            - Int64List
            - ItemsList
            - StringList
            - TableList
            - TimeList
            - enumlist
            - enum
            - ParamArray
            - ParamList
    ActionSet:
      title: Action Set
      description: Action Set
      type: object
      properties:
        name:
          description: Name of the action set.
          type: string
        loadname:
          description: >
            Load module name of the action set. Used to construct action groups.
          type: string
        label:
          description: Text label for user interfaces.
          type: object
          properties:
            text:
              type: string
        description:
          description: Description of the action set.
          type: object
          properties:
            text:
              type: string
        actions:
          description: List of actions in the set.
          type: array
          items:
            $ref: "#/components/schemas/ActionDefinition"
    ActionSetGroup:
      title: Action Set Group
      description: >
        An action set group is a group of action sets that have been aggregated

        into a set. The entire group can be loaded by calling loadActionSet with

        the name of the action set group.
      type: object
      properties:
        name:
          description: Name of the action set group.
          type: string
        extensions:
          description: >
            List of action sets included in the group. Each entry matches the

            internal name of an action set.
          type: array
          items:
            type: string
    Logger:
      title: Logger
      description: Logger
      type: object
      properties:
        name:
          description: The name of the appender.
          type: string
        level:
          $ref: "#/components/schemas/LoggingLevel"
        appenders:
          description: A list of appenders to which the logger has been added and output will be written.
          type: array
          items:
            type: string
    Appender:
      title: Appender
      description: Appender
      type: object
      properties:
        name:
          description: The name of the appender.
          type: string
        class:
          description: The class of the appender.
          type: string
    SessionSummary:
      title: Session Summary
      description: Session Summary
      type: object
      properties:
        id:
          description: The identifier for the session.
          type: string
        uuid:
          description: The unique identifier for the session, same as id. Provided for backward compatibility.
          type: string
        name:
          description: The name of the session.
          type: string
        user:
          description: The user that created the session.
          type: string
        owner:
          description: Synonym for user.
          type: string
        state:
          description: The state of the session. Usually 'connected' or 'disconnected'.
          type: string
          enum:
            - default
            - unknown
            - inactive
            - connected
            - disconnected
            - exception
            - terminate
            - removed
    LoggingLevel:
      title: Logging Level
      description: The level of messages that are output by a logger.
      type: string
      enum:
        - ""
        - all
        - All
        - trace
        - Trace
        - debug
        - Debug
        - info
        - Info
        - warn
        - Warn
        - error
        - Error
        - fatal
        - Fatal
        - off
        - Off
    CASConfigurationValue:
      title: CAS Configuration Value
      description: A name/value pair that specifies a configuration option.
      type: object
      properties:
        name:
          description: The name of the option.
          type: string
        value:
          description: The value of the option as a string. If the value is sensitive data for security reasons, the value is a string of asterisks.
          type: string
        isPassword:
          description: When TRUE, value is obscured and not provided, even for administrators.
          type: boolean
        source:
          description: The original source of the option value. "External" sources include things like Consul.
          type: string
          enum:
            - File
            - Command Line
            - Environment
            - External
            - Internal/Computed
            - Set
            - default
    Caslib:
      title: Caslib - CAS Library
      description: Defines the information needed to access data from a particular data storage system/data provider.
      type: object
      properties:
        Name:
          description: caslib name.
          type: string
        Type:
          description: caslib source type.
          type: string
        Description:
          description: Description of the caslib.
          type: string
        Path:
          description: Path to the caslib files, for data sources that use path-based storage.
          type: string
        Definition:
          description: Name/value pairs that define parameters for accessing data. If there are multiple definitions, then multiple objects are created with the same name. The first entry contains valid data for all attributes, and subsequent objects only use the Definition field.
          type: string
        Subdirs:
          description: If non-zero, subdirectories are valid.
          type: number
          format: double
        Local:
          description: Local flag. 0=false, 1=true.
          type: number
          format: double
        Active:
          description: caslib is active for use. 0=false, 1=true.
          type: number
          format: double
        Personal:
          description: If true, caslib is created for a specific user (e.g. CASUSER). 0=false, 1=true.
          type: number
          format: double
        Hidden:
          description: caslib is hidden from user interfaces. 0=false, 1=true.
          type: number
          format: double
        Transient:
          description: caslib is a temporary caslib created for a particular unit of work and may be when the work is completed.  0=false, 1=true.
          type: number
          format: double
  examples:
    APIResult:
      description: APIResult examples
      value:
        result: Success
    CASServer:
      description: CASServer examples
      value:
        type: Controller
        state: Running
        client: 5570
        control: 5571
        idleTime: 315619314
        process:
          $ref: "#/components/examples/CASProcess"
        maxSessions: 5000
        sessionCount: 1
        createdSessionsCount: 1727
        lastSessionActivity:
          value:
            uuid: fb6ded1b-3e23-2446-becb-899709060a0f
            gmtTime: 2306676112
            event: destroy
        license:
          value:
            gracePeriod: 45
            licenseExpires: 02May2023:00:00:00
            licensePath: /cas/license/license.sas
            maxCPUs: 1
            maxSessions: 5000
            sessionCount: 1
            siteName: SCI...
            siteNumber: 10180938
            startCPU: 1
            unusedSessions: 4999
            warningPeriod: 46
    CASProcess:
      description: CASProcess examples
      value:
        id: "2031"
        owner: sas
        uptime: 36164.293
        userCPU: 316.25
        sysCPU: 298.85
        memoryUsed: 27713536
        maxMemoryUsed: 326660096
        threadCount: 27
        maxThreadCount: 40
        ioCount: 1208
        os:
          value:
            name: Linux
            version: "#1 SMP ..."
            release: 3.10...
        system:
          value:
            type: " "
            name: X86...
        casVersion:
          value:
            version: V.04...
            buildDate: Jan 1 2000
            buildTime: 12:11:22
    CASNodeProcessMetrics:
      description: CAS Node Process Metrics
      value:
        - name: Node name
        - pid: "53421"
        - connected: true
        - type: Controller
        - metrics:
            - pid: "1"
              id: "1"
              userId: userId
              username: userName
              command: tini
              state: Running
              userCPUTime: 1.19
              systemCPUTime: 2.89
              totalCPUTime: 164789257.05
              clockTicksPerSecond: 100
              nice: 0
              threads: 1
              vmSize: "4538368"
              rss: "503808"
              cpu: "12"
              commandLine:
                - /usr/local/bin/tini
                - --
                - /opt/sas/viya/home/bin/sas-cas-server-entrypoint.sh
                - ""
    CASResource:
      description: CASResource examples
      value: caslibs
    CASConfigurationValue:
      description: A name/value pair that specifies a configuration option.
      value:
        - name: Configuration name
        - value: Configuration value
        - isPassword: false
        - source: default
    ActionMetrics:
      description: ActionMetrics examples
      value:
        elapsedTime: 36164.293
        cpuUserTime: 316.25
        cpuSystemTime: 298.85
        systemTotalMemory: 2389088
        systemNodes: 2
        systemCores: 4
        memory: 2389088
        osMemory: 2389088
        systemMemory: 2389088
        memoryQuota: 2389088
        ioPageReclaims: 2389088
        ioPageFaults: 4
        ioReadFaults: 4
        ioReadBlocks: 4
        ioReadCalls: 4
        ioWriteCalls: 4
        ioReadBytes: 4
        ioWriteBytes: 4
        ioWriteBytesCancelled: 4
        voluntaryContextSwitches: 4
        involuntaryContextSwitches: 4
    ActionResults:
      description: ActionResults examples
      value:
        status: 0
        log: Some log entry that is returned
        results:
          value:
            _ctb: true
            label: Cas Table Label
            title: Cas Table Title
            name: Cas Table Name
            schema:
              value:
                name: Some column name
                label: Some column label
                format: Some format
                type: int
                width: 7
                attributes:
                  ? Some Attributes
          logEntries:
            value:
              level: all
              message: Logging entry
        disposition:
          value:
            severity: Normal
            reason: OK
            statusCode: 0
            formattedStatus: "null"
            debugInfo: "null"
            changedResources:
              value:
                $ref: "#/components/examples/CASResource"
          metrics:
            value:
              $ref: "#/components/examples/ActionMetrics"
    ActionSet:
      description: ActionSet examples
      value:
        name: SomeAction
        loadname: someAction
        label:
          value:
            text: Some Action Label
        description:
          value:
            text: Some Action Description
        actions:
          value:
            $ref: "#/components/examples/ActionDefinition"
    ActionDefinition:
      description: ActionDefinition examples
      value:
        actionSet: Some ActionSet Definition
        description:
          value:
            text: Some ActionSet Definition Description
        label:
          value:
            text: Some ActionSet Definition Label
        name: someActionDefinition
        parameters: []
        results: []
        entry: action_someActionDefinition
        id: cas.someAction.someActionDefinition
        jsonObjectType: action
    Session:
      description: Session examples
      value:
        - id: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
        - uuid: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
        - name: SessionName
        - state: connected
        - httpPort: 8080
        - httpProtocol: https
        - user: User
        - owner: Owner
        - provider: User
        - idleTime:
            hours: 0
            minutes: 1
            seconds: 2
        - actionCount: 2
        - activeAction: getCASSessions
        - isIdle: false
        - clientCount: 2
    ResultsTable:
      description: Results Table description
      value:
        _ctb: true
        label: Cas Table Label
        title: Cas Table Title
        name: Cas Table Name
        schema:
          $ref: "#/components/examples/ResultsTableColumn"
        rows:
          - ? Row1
          - ? Row2
    ResultsTableColumn:
      description: ResultsTableColumn description
      value:
        name: Some format
        type: int
        width: 10
        attributes:
          ? Some Attributes
    CASNode:
      description: CAS Node Information
      value:
        - name: nodeName
        - port: 443
        - type: Controller
        - connected: true
        - pid: 32768
        - httpPort: 8080
        - httpProtocol: https
        - uuid: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
    CASAdministrator:
      description: CAS Administrator
      value:
        - name: SAS Administrators
        - id: "1"
        - isGroup: true
        - type: cas
    CASNodeMetrics:
      description: CAS Node Metrics
      value:
        - name: nodeName
        - port: 8080
        - type: Controller
        - connected: true
        - pid: 32768
        - httpPort: 7070
        - httpProtocol: https
        - uuid: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
        - cpuLoad: 0
    Caslib:
      description: Defines the information needed to access data from a particular data storage system/data provider.
      value:
        Name: Samples
        Type: PATH
        Description: Stores Sample data, supplied by SAS.
        Path: /cas/data/...
        Definition: null
        Subdirs: 0
        Local: 0
        Active: 0
        Personal: 0
        Hidden: 0
        Transient: 0
    CASNotifications:
      description: CAS Notifications
      value:
        list:
          value:
            $ref: "#/components/schemas/CASMessage"
        timeStamp: 20221115
        state:
          value: Running
    Logger:
      description: Logger
      value:
        - name: casAppender
        - level: all
        - appenders:
            - Appender1
            - Appender2
    Appender:
      description: Appender
      value:
        - name: AppenderName
        - class: AppenderClass
    CASNodeMemoryMetrics:
      description: CAS Node Memory Metrics
      value:
        - name: nodeName
        - pid: "32768"
        - connected: true
        - type: Controller
        - MemTotal_kB: 99000432
        - MemFree_kB: 9803628
        - SwapTotal_kB: 0
        - SwapFree_kB: 0
        - VmallocTotal_kB: 34359738367
        - VmallocUsed_kB: 555848
    CASNodeCPUTimeWithType:
      description: >
        The time properties will be omitted from the object if the CPU times cannot be

        retrieved from the grid node. Existence only needs to be checked for one of the

        CPU time fields: if one is omitted, all are omitted.
      value:
        - name: Node Name
        - type: Controller
        - pid: "53421"
        - connected: true
        - userTimeHz: 1240021603
        - systemTimeHz: 4372870
        - idleTimeHz: 565066508
        - iowaitTimeHz: 14616610373
        - irqTimeHz: 24950651
        - softirqTimeHz: 0
    CASNodeCPUTime:
      description: CASNodeCPUTime
      value:
        - name: CasNodeName
        - pid: "5543"
        - connected: true
        - type: Controller
        - cpuTime:
            userCPUTime: 0.47
            systemCPUTime: 2.18
            totalCPUTime: 164789257.08
            clockTicksPerSecond: 100
    SystemInformation:
      description: System Information
      value:
        clockTicksPerSecond: 100
        pageSize: 4096
        version: Linux version 3.1...
        maxSystemThreads: 772811
        bootCommand: BOOT_IMAGE=kernel/vde15...
        oneMinLoadAvg: 2.47
        fiveMinLoadAvg: 3.44
        fifteenMinLoadAvg: 3.54
        openFiles: 20960
        freeFiles: 0
        maxFiles: 9801690
        inodes: 752815
        freeInodes: 311500
        uptimeSeconds: 10391187.98
        idleSeconds: 147455940.07
        memory:
          value:
            $ref: "#/components/examples/MemoryMetrics"
        cpus:
          value:
            $ref: "#/components/examples/CPU"
        CPUMetrics:
          value:
            $ref: "#/components/examples/CPUMetrics"
    TopSystemMetrics:
      description: Top System Metrics
      value:
        cpuLoad: 1
        system:
          $ref: "#/components/examples/SystemInformation"
        processes:
          items:
            $ref: "#/components/examples/Process"
    CPU:
      description: CPU information
      value:
        processor: 1
        vendor_id:
          description: The CPU manufacturer.
          type: string
          example: GenuineIntel
        cpu_family: 6
        model: 85
        model_name: Intel(R) ...
        stepping: 4
        cpu_MHz: 2394.374
        cache_size: 16384 KB
        physical_id: 0
        siblings:
          description: Not documented by Linux.
          type: integer
          example: 8
        core_id: 0
        cpu_cores: 8
        apicid: 0
        initial_apicid: 0
        fpu: yes
        fpu_exception: yes
        cpuid_level: 22
        wp: yes
        flags:
          - fpu
          - vme
          - ...
        bogomips: 4788.74
        clflush_size: 64
        cache_alignment: 64
        address_sizes: 46 bit physical, 48 bits virtual
        power_management: "null"
    CPUMetrics:
      description: CPU Metrics
      value:
        cpu: 0
        userTimeHz: 1240021603
        systemTimeHz: 4372870
        idleTimeHz: 565066508
        iowaitTimeHz: 14616610373
        irqTimeHz: 24950651
        softirqTimeHz: 0
    CPUTime:
      description: CPUTime
      value:
        userCPUTime: 0.47
        systemCPUTime: 2.18
        totalCPUTime: 164789257.08
        clockTicksPerSecond: 100
    MemoryMetrics:
      description: Memory Metrics description
      value:
        MemTotal_kB: 99000432
        MemFree_kB: 9803628
        MemAvailable_kB: 58467792
        Buffers_kB: 482040
        Cached_kB: 64562112
        SwapCached_kB: 0
        Active_kB: 55531224
        Inactive_kB: 28925896
        Active(anon)_kB: 23247608
        Inactive(anon)_kB: 3637860
        Active(file)_kB: 32283616
        Inactive(file)_kB: 25288036
        Unevictable_kB: 77596
        Mlocked_kB: 77596
        SwapTotal_kB: 0
        SwapFree_kB: 0
        Dirty_kB: 564
        Writeback_kB: 0
        AnonPages_kB: 19490656
        Mapped_kB: 3924828
        Shmem_kB: 7468808
        Slab_kB: 3321448
        SReclaimable_kB: 2897440
        SUnreclaim_kB: 424008
        KernelStack_kB: 96688
        PageTables_kB: 214708
        NFS_Unstable_kB: 136
        Bounce_kB: 0
        WritebackTmp_kB: 0
        CommitLimit_kB: 49500216
        Committed_AS_kB: 65373248
        VmallocTotal_kB: 34359738367
        VmallocUsed_kB: 551708
        VmallocChunk_kB: 34358876156
        HardwareCorrupted_kB: 0
        AnonHugePages_kB: 0
        CmaTotal_kB: 0,
        CmaFree_kB: 0,
        HugePages_Total: 0
        HugePages_Free: 0
        HugePages_Rsvd: 0
        HugePages_Surp: 0
        Hugepagesize_kB: 2048
        DirectMap4k_kB: 192356
        DirectMap2M_kB: 11341824
        DirectMap1G_kB: 91226112
    SessionSummary:
      description: Session Summary
      value:
        - id: SessionId
        - uuid: 4092f24d-15f1-4c2e-8a06-9cb616c1a392
        - name: SessionName
        - user: SessionUser
        - owner: SessionOwner
        - state: default
    SessionOwner:
      description: Session Owner
      value:
        user: user
        owner: owner
    Process:
      description: Process
      value:
        - pid: "1"
        - id: "1"
        - userId: userId
        - username: userName
        - command: tini
        - state: Running
        - userCPUTime: 1.19
        - systemCPUTime: 2.89
        - totalCPUTime: 164789257.05
        - clockTicksPerSecond: 100
        - nice: 0
        - threads: 1
        - vmSize: "4538368"
        - rss: "503808"
        - cpu: "12"
        - commandLine:
            - /usr/local/bin/tini
            - --
            - /opt/sas/viya/home/bin/sas-cas-server-entrypoint.sh
            - ""
    ProcessEnvironment:
      description: Environment Variable
      value:
        - name: EnvironmentVariable
          value: EnvironmentValue
    Thread:
      description: Thread
      value:
        - pid: "2032"
        - id: "2032"
        - userId: "1001"
        - username: user
        - command: launchsvcs
        - state: Sleeping
        - userCPUTime: 0.47
        - systemCPUTime: 2.18
        - totalCPUTime: 164789257.08
        - clockTicksPerSecond: 100
        - nice: 20901888
        - rss: "1785856"
        - cpu: "14"
        - stackTrace:
            - /opt/sas/viya/home/SASFoundation/utilities/bin/launchsvcs
            - ""
    ErrorResponse:
      description: ErrorResponse description
      value:
        error: Some Error
        code: ActionFailed
        details: Details on Error
        disposition:
          value:
            severity: Normal
            reason: OK
            statusCode: 0
            formattedStatus: null
            debugInfo: null
            changedResources:
              value:
                $ref: "#/components/examples/CASResource"
            metrics:
              value:
                $ref: "#/components/examples/ActionMetrics"
