import { Observable } from 'rxjs'; import { BatchConnection } from './batch-connection'; import { LifetimeData } from './lifetime-data'; import { NodeConnection } from './node-connection'; import { PowerShellCommand, PowerShellOptions, PowerShellSession, PowerShellSessionRequestOptions } from './powershell'; import { PowerShellBatchResponseItem, PowerShellBatchSession } from './powershell-batch'; /** * The PowerShell Connection class. */ export declare class PowerShellConnection { private lifetimeData; private nodeConnection; private batchConnection; /** * Initializes a new instance of the PowerShellConnection class. * * @param lifetimeService the lifetimeService class instance injected. * @param nodeConnection the nodeConnection class instance injected. * @param batchConnection the batchConnection class instance injected. */ constructor(lifetimeData: LifetimeData, nodeConnection: NodeConnection, batchConnection: BatchConnection); /** * @deprecated Deprecated in favor of {@link createAutomaticSession} * Create PowerShell Session. By default will recycle a session if one has been created recently. * * @param nodeName the name of the node to connect to. */ createSession(nodeName: string): PowerShellSession; /** * Create PowerShell Session object with persisted shared session by the key. * * @param nodeName the name of the node to connect to. * @param key the unique key to share the session. * @param requestOptions the options to apply to every request in this session */ createSession(nodeName: string, key: string): PowerShellSession; createSession(nodeName: string, key: string, requestOptions: PowerShellSessionRequestOptions): PowerShellSession; /** * Create PowerShell Session object with auto managed pool of PowerShell runspace sessions. * - PowerShellSession object isn't required to be disposed. You can call dispose(), but the function is noop call. * * @param nodeName the name of the node to connect to. * @param requestOptions the options to apply to every request in this session. */ createAutomaticSession(nodeName: string, requestOptions?: PowerShellSessionRequestOptions): PowerShellSession; /** * Runs the powershell command on the session. * * @param session the PowerShell session object. * @param scriptOrCommand the PowerShell command. */ run(session: PowerShellSession, scriptOrCommand: string | PowerShellCommand): Observable; /** * Runs the powershell command on the session. * * @param session the PowerShell session object. * @param command the PowerShell command. * @param options the PowerShell command options. */ run(session: PowerShellSession, scriptOrCommand: string | PowerShellCommand, options: PowerShellOptions): Observable; /** * Runs the powershell command on automatic session. * * @param nodeName the node name. * @param command the PowerShell command. * @param options the PowerShell command options. */ run(nodeName: string, scriptOrCommand: string | PowerShellCommand, options: PowerShellOptions): Observable; /** * Find existing PowerShellSession by the node name and key. * * @param nodeName the node name. * @param key the key string. * @return PowerShellSession the powershell session which is not disposable. */ find(nodeName: string, key: string): PowerShellSession; /** * Cancel the script run. * @param session the PowerShell session object. */ cancel(session: PowerShellSession): Observable; /********************************** * PowerShell Batch Section **********************************/ /** * Create PowerShell Batch Session object without persisted session. * * @param nodeNamesList the Nodes to run the batch commands against. */ createBatchSession(nodeNamesList: string[]): PowerShellBatchSession; /** * Create PowerShell Batch Session object with persisted shared session by the key. * * @param nodeNamesList the Nodes to run the batch commands against. * @param key the unique key to share the session. * @param requestOptions the options to apply to every request in this session */ createBatchSession(nodeNamesList: string[], key: string): PowerShellBatchSession; createBatchSession(nodeNamesList: string[], key: string, requestOptions: PowerShellSessionRequestOptions): PowerShellBatchSession; /** * Runs the powershell commands Batch on the session, with separate command provided for each Node. * * @param session the PowerShellBatch session object. * @param scriptOrCommandList the PowerShell script or command array, corresponding to nodeNamesList. */ runBatch(session: PowerShellBatchSession, scriptOrCommandList: string[] | PowerShellCommand[]): Observable; /** * Runs the powershell commands on the session, with separate command for each Node. * * @param session the PowerShellBatch session object. * @param scriptOrCommandList the PowerShell script or command array, corresponding to nodeNamesList. * @param options the PowerShell command options. */ runBatch(session: PowerShellBatchSession, scriptOrCommandList: string[] | PowerShellCommand[], options: PowerShellOptions): Observable; /** * Runs the same powershell command on a Batch of Nodes. * * @param session the PowerShellBatch session object. * @param scriptOrCommand the PowerShell command to run on all Nodes. */ runBatchSingleCommand(session: PowerShellBatchSession, scriptOrCommand: string | PowerShellCommand): Observable; /** * Runs the powershell command on the session. * * @param session the PowerShellBatch session object. * @param scriptOrCommand the PowerShell command to run on all Nodes. * @param options the PowerShell command options. */ runBatchSingleCommand(session: PowerShellBatchSession, scriptOrCommand: string | PowerShellCommand, options: PowerShellOptions): Observable; /** * Find existing PowerShellBatchSession by the node names list and key. * * @param nodeNames the node names list. * @param key the key string. * @return PowerShellBatchSession the powershell batch session which is not disposable. */ findBatchSession(nodeNamesList: string[], key: string): PowerShellBatchSession; }