Options
All
  • Public
  • Public/Protected
  • All
Menu

Class SASViyaApiClient

A client for interfacing with the SAS Viya REST API.

Hierarchy

  • SASViyaApiClient

Constructors

constructor

  • new SASViyaApiClient(serverUrl: string, rootFolderName: string, contextName: string, setCsrfToken: function): SASViyaApiClient

Accessors

debug

  • get debug(): boolean
  • set debug(value: boolean): void

Methods

createContext

  • createContext(contextName: string, launchContextName: string, sharedAccountId: string, autoExecLines: string[], accessToken?: undefined | string, authorizedUsers?: string[]): Promise<Context>
  • Creates a compute context on the given server.

    Parameters

    • contextName: string

      the name of the context to be created.

    • launchContextName: string

      the name of the launcher context used by the compute service.

    • sharedAccountId: string

      the ID of the account to run the servers for this context.

    • autoExecLines: string[]

      the lines of code to execute during session initialization.

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    • Optional authorizedUsers: string[]

      an optional list of authorized user IDs.

    Returns Promise<Context>

createFolder

  • createFolder(folderName: string, parentFolderPath?: undefined | string, parentFolderUri?: undefined | string, accessToken?: undefined | string, isForced?: undefined | false | true): Promise<Folder>
  • Creates a folder. Path to or URI of the parent folder is required.

    Parameters

    • folderName: string

      the name of the new folder.

    • Optional parentFolderPath: undefined | string

      the full path to the parent folder. If not provided, the parentFolderUri must be provided.

    • Optional parentFolderUri: undefined | string

      the URI (eg /folders/folders/UUID) of the parent folder. If not provided, the parentFolderPath must be provided.

    • Optional accessToken: undefined | string

      an access token for authorizing the request.

    • Optional isForced: undefined | false | true

      flag that indicates if target folder already exists, it and all subfolders have to be deleted.

    Returns Promise<Folder>

createJobDefinition

  • createJobDefinition(jobName: string, code: string, parentFolderPath?: undefined | string, parentFolderUri?: undefined | string, accessToken?: undefined | string): Promise<object>
  • Creates a Job in the specified folder (or folder uri).

    Parameters

    • jobName: string

      the name of the new job to be created.

    • code: string

      the SAS code for the new job.

    • Optional parentFolderPath: undefined | string

      the location of the new job.

    • Optional parentFolderUri: undefined | string

      the URI location of the new job. The function is a little faster if the folder URI is supplied instead of the path.

    • Optional accessToken: undefined | string

    Returns Promise<object>

createSession

  • createSession(contextName: string, accessToken?: undefined | string): Promise<Session>
  • Creates a session on the given context.

    Parameters

    • contextName: string

      the name of the context to create a session on.

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    Returns Promise<Session>

deleteClient

  • deleteClient(clientId: string, accessToken?: undefined | string): Promise<object>
  • Deletes the client representing the supplied ID.

    Parameters

    • clientId: string

      the client ID to authenticate with.

    • Optional accessToken: undefined | string

      an access token for authorizing the request.

    Returns Promise<object>

deleteContext

  • deleteContext(contextName: string, accessToken?: undefined | string): Promise<object>
  • Deletes a compute context on the given server.

    Parameters

    • contextName: string

      the name of the context to be deleted.

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    Returns Promise<object>

deleteFolder

  • deleteFolder(folderPath: string, accessToken: string): Promise<undefined | Folder>
  • For performance (and in case of accidental error) the deleteFolder function does not actually delete the folder (and all its content and subfolder content). Instead the folder is simply moved to the recycle bin. Deletion time will be added to the folder name.

    Parameters

    • folderPath: string

      the full path (eg /Public/example/deleteThis) of the folder to be deleted.

    • accessToken: string

      an access token for authorizing the request.

    Returns Promise<undefined | Folder>

editContext

  • editContext(contextName: string, editedContext: EditContextInput, accessToken?: undefined | string): Promise<object>
  • Updates a compute context on the given server.

    Parameters

    • contextName: string

      the original name of the context to be updated.

    • editedContext: EditContextInput

      an object with the properties to be updated.

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    Returns Promise<object>

executeComputeJob

  • executeComputeJob(sasJob: string, contextName: string, data?: any, accessToken?: undefined | string, waitForResult?: boolean): Promise<any>
  • Executes a job via the SAS Viya Compute API.

    Parameters

    • sasJob: string

      the relative path to the job.

    • contextName: string

      the name of the context where the job is to be executed.

    • Optional data: any

      any data to be passed in as input to the job.

    • Optional accessToken: undefined | string

      an optional access token for an authorized user.

    • Default value waitForResult: boolean = true

    Returns Promise<any>

executeJob

  • executeJob(sasJob: string, contextName: string, debug: boolean, data?: any, accessToken?: undefined | string): Promise<object>
  • Executes a job via the SAS Viya Job Execution API

    Parameters

    • sasJob: string

      the relative or absolute path to the job.

    • contextName: string

      the name of the context where the job is to be executed.

    • debug: boolean

      sets the _debug flag in the job arguments.

    • Optional data: any

      any data to be passed in as input to the job.

    • Optional accessToken: undefined | string

      an optional access token for an authorized user.

    Returns Promise<object>

executeScript

  • executeScript(jobPath: string, linesOfCode: string[], contextName: string, accessToken?: undefined | string, data?: null, expectWebout?: boolean, waitForResult?: boolean): Promise<any>
  • Executes code on the current SAS Viya server.

    Parameters

    • jobPath: string

      the path to the file being submitted for execution.

    • linesOfCode: string[]

      an array of code lines to execute.

    • contextName: string

      the context to execute the code in.

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    • Default value data: null = null

      execution data.

    • Default value expectWebout: boolean = false

      when set to true, the automatic _webout fileref will be checked for content, and that content returned. This fileref is used when the Job contains a SASjs web request (as opposed to executing arbitrary SAS code).

    • Default value waitForResult: boolean = true

    Returns Promise<any>

getAccessToken

  • getAccessToken(clientId: string, clientSecret: string, authCode: string): Promise<any>
  • Exchanges the auth code for an access token for the given client.

    Parameters

    • clientId: string

      the client ID to authenticate with.

    • clientSecret: string

      the client secret to authenticate with.

    • authCode: string

      the auth code received from the server.

    Returns Promise<any>

getAllContexts

  • getAllContexts(accessToken?: undefined | string): Promise<object[]>
  • Returns all available compute contexts on this server.

    Parameters

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    Returns Promise<object[]>

getAuthCode

  • getAuthCode(clientId: string): Promise<null | string>
  • Performs a login redirect and returns an auth code for the given client.

    Parameters

    • clientId: string

      the client ID to authenticate with.

    Returns Promise<null | string>

getComputeContextById

  • getComputeContextById(contextId: string, accessToken?: undefined | string): Promise<ContextAllAttributes>
  • Returns a JSON representation of a compute context.

    Parameters

    • contextId: string

      an id of the context to return.

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    Returns Promise<ContextAllAttributes>

getComputeContextByName

  • getComputeContextByName(contextName: string, accessToken?: undefined | string): Promise<Context>
  • Returns a JSON representation of a compute context.

    example:

    { "createdBy": "admin", "links": [...], "id": "ID", "version": 2, "name": "context1" }

    Parameters

    • contextName: string

      the name of the context to return.

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    Returns Promise<Context>

getConfig

  • getConfig(): object
  • Returns an object containing the server URL and root folder name.

    Returns object

    • rootFolderName: string
    • serverUrl: string

getExecutableContexts

  • getExecutableContexts(accessToken?: undefined | string): Promise<any[]>
  • Returns all compute contexts on this server that the user has access to.

    Parameters

    • Optional accessToken: undefined | string

      an access token for an authorized user.

    Returns Promise<any[]>

getJobsInFolder

  • getJobsInFolder(folderPath: string): Promise<undefined | Job[]>
  • Returns a list of jobs in the currently set root folder.

    Parameters

    • folderPath: string

    Returns Promise<undefined | Job[]>

moveFolder

  • moveFolder(sourceFolder: string, targetParentFolder: string, targetFolderName: string, accessToken: string): Promise<undefined | Folder>
  • Moves a Viya folder to a new location. The folder may be renamed at the same time.

    Parameters

    • sourceFolder: string

      the full path (eg /Public/example/myFolder) or URI of the source folder to be moved. Providing URI instead of path will save one extra request.

    • targetParentFolder: string

      the full path or URI of the parent folder to which the sourceFolder will be moved (eg /Public/newDestination). To move a folder, a user has to have write permissions in targetParentFolder. Providing URI instead of path will save one extra request.

    • targetFolderName: string

      the name of the "moved" folder. If left blank, the original folder name will be used (eg myFolder in /Public/newDestination/myFolder for the example above). Optional field.

    • accessToken: string

      an access token for authorizing the request.

    Returns Promise<undefined | Folder>

refreshTokens

  • refreshTokens(clientId: string, clientSecret: string, refreshToken: string): Promise<any>
  • Exchanges the refresh token for an access token for the given client.

    Parameters

    • clientId: string

      the client ID to authenticate with.

    • clientSecret: string

      the client secret to authenticate with.

    • refreshToken: string

    Returns Promise<any>

setConfig

  • setConfig(serverUrl: string, rootFolderName: string): void
  • Updates server URL and root folder name, if it was not set.

    Parameters

    • serverUrl: string

      the URL of the server.

    • rootFolderName: string

      the name for root folder.

    Returns void

setCsrfTokenLocal

  • setCsrfTokenLocal(csrfToken: CsrfToken): void

setFileUploadCsrfToken

  • setFileUploadCsrfToken(csrfToken: CsrfToken): void

Generated using TypeDoc