@rockcarver/frodo-lib
Version:
A library to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.
333 lines • 12.8 kB
TypeScript
import { type ScriptSkeleton } from '../api/ScriptApi';
import { type ExportMetaData } from '../ops/OpsTypes';
import { State } from '../shared/State';
export type Script = {
/**
* Create an empty script export template
* @returns {ScriptExportInterface} an empty script export template
*/
createScriptExportTemplate(): ScriptExportInterface;
/**
* Read all scripts
* @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects
*/
readScripts(): Promise<ScriptSkeleton[]>;
/**
* Get the names of library scripts required by the input script object
*
* @param {ScriptSkeleton} scriptObj the script object
* @returns an array of required library script names
*/
getLibraryScriptNames(scriptObj: ScriptSkeleton): string[];
/**
* Read script
* @param {string} scriptId script id
* @returns {Promise<ScriptSkeleton>} promise that resolves to a script object
*/
readScript(scriptId: string): Promise<ScriptSkeleton>;
/**
* Read script by name
* @param {string} scriptName name of the script
* @returns {Promise<ScriptSkeleton>} promise that resolves to a script object
*/
readScriptByName(scriptName: string): Promise<ScriptSkeleton>;
/**
* Create script
* @param {string} scriptId script id
* @param {string} scriptName name of the script
* @param {ScriptSkeleton} scriptData script object
* @returns {Promise<ScriptSkeleton>} a status object
*/
createScript(scriptId: string, scriptName: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>;
/**
* Create or update script
* @param {string} scriptId script id
* @param {ScriptSkeleton} scriptData script object
* @returns {Promise<ScriptSkeleton>} a status object
*/
updateScript(scriptId: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>;
/**
* Delete script
* @param {string} scriptId script id
* @returns {Promise<ScriptSkeleton>} promise that resolves to a script object
*/
deleteScript(scriptId: string): Promise<ScriptSkeleton>;
/**
* Delete script by name
* @param {String} scriptName script name
* @returns {Promise<ScriptSkeleton>} a promise that resolves to a script object
*/
deleteScriptByName(scriptName: string): Promise<ScriptSkeleton>;
/**
* Delete all non-default scripts
* @returns {Promise<ScriptSkeleton[]>>} a promise that resolves to an array of script objects
*/
deleteScripts(): Promise<ScriptSkeleton[]>;
/**
* Export all scripts
* @param {ScriptExportOptions} options script export options
* @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object
*/
exportScripts(options?: ScriptExportOptions): Promise<ScriptExportInterface>;
/**
* Export script by id
* @param {string} scriptId script uuid
* @param {ScriptExportOptions} options script export options
* @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object
*/
exportScript(scriptId: string, options?: ScriptExportOptions): Promise<ScriptExportInterface>;
/**
* Export script by name
* @param {string} scriptName script name
* @param {ScriptExportOptions} options script export options
* @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object
*/
exportScriptByName(scriptName: string, options?: ScriptExportOptions): Promise<ScriptExportInterface>;
/**
* Import scripts
* @param {string} scriptId Optional id of script. If supplied, only the script of that id is imported. Takes priority over scriptName if both are provided.
* @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported
* @param {ScriptExportInterface} importData Script import data
* @param {ScriptImportOptions} options Script import options
* @param {boolean} validate If true, validates Javascript scripts to ensure no errors exist in them. Default: false
* @returns {Promise<ScriptSkeleton[]>} the imported scripts
*/
importScripts(scriptId: string, scriptName: string, importData: ScriptExportInterface, options?: ScriptImportOptions, validate?: boolean): Promise<ScriptSkeleton[]>;
/**
* Get all scripts
* @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects
* @deprecated since v2.0.0 use {@link Script.readScripts | readScripts} instead
* ```javascript
* readScripts(): Promise<ScriptSkeleton[]>
* ```
* @group Deprecated
*/
getScripts(): Promise<ScriptSkeleton[]>;
/**
* Get script
* @param {string} scriptId script id
* @returns {Promise<ScriptSkeleton>} promise that resolves to a script object
* @deprecated since v2.0.0 use {@link Script.readScript | readScript} instead
* ```javascript
* readScript(scriptName: string): Promise<ScriptSkeleton>
* ```
* @group Deprecated
*/
getScript(scriptId: string): Promise<ScriptSkeleton>;
/**
* Get script by name
* @param {string} scriptName name of the script
* @returns {Promise<ScriptSkeleton>} promise that resolves to a script object
* @deprecated since v2.0.0 use {@link Script.readScriptByName | readScriptByName} instead
* ```javascript
* readScriptByName(scriptName: string): Promise<ScriptSkeleton>
* ```
* @group Deprecated
*/
getScriptByName(scriptName: string): Promise<ScriptSkeleton>;
/**
* Create or update script
* @param {string} scriptId script uuid
* @param {ScriptSkeleton} scriptData script object
* @returns {Promise<ScriptSkeleton>} a status object
* @deprecated since v2.0.0 use {@link Script.updateScript | updateScript} or {@link Script.createScript | createScript} instead
* ```javascript
* updateScript(scriptId: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>
* createScript(scriptId: string, scriptName: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>
* ```
* @group Deprecated
*/
putScript(scriptId: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>;
};
declare const _default: (state: State) => Script;
export default _default;
export interface ScriptExportInterface {
meta?: ExportMetaData;
script: Record<string, ScriptSkeleton>;
}
/**
* Script import options
*/
export interface ScriptImportOptions {
/**
* Include dependency (library) scripts in export
*/
deps: boolean;
/**
* Generate new UUIDs for all scripts during import.
*/
reUuid: boolean;
/**
* Include default scripts in import if true
*/
includeDefault: boolean;
}
/**
* Script export options
*/
export interface ScriptExportOptions {
/**
* Include dependency (library) scripts in export
*/
deps: boolean;
/**
* Include default scripts in export if true
*/
includeDefault: boolean;
/**
* Use string arrays to store script code
*/
useStringArrays: boolean;
}
/**
* Create an empty script export template
* @returns {ScriptExportInterface} an empty script export template
*/
export declare function createScriptExportTemplate({ state, }: {
state: State;
}): ScriptExportInterface;
/**
* Get all scripts
* @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects
*/
export declare function readScripts({ state, }: {
state: State;
}): Promise<ScriptSkeleton[]>;
/**
* Get the names of library scripts required by the input script object
*
* @param {ScriptSkeleton} scriptObj the script object
* @returns {string[]} an array of required library script names
*/
export declare function getLibraryScriptNames(scriptObj: ScriptSkeleton): string[];
/**
* Gets all library scripts for a given script recursively
*
* @param {ScriptSkeleton} scriptData the script object
* @returns {ScriptSkeleton[]} all the library scripts needed for the given script
*/
export declare function getLibraryScripts({ scriptData, state, }: {
scriptData: ScriptSkeleton;
state: State;
}): Promise<ScriptSkeleton[]>;
/**
* Get script
*
* @param {string} scriptId the script id
* @returns {Promise<ScriptSkeleton>} a promise that resolves to an array of script objects
*/
export declare function readScript({ scriptId, state, }: {
scriptId: string;
state: State;
}): Promise<ScriptSkeleton>;
/**
* Get script by name
* @param {string} scriptName name of the script
* @returns {Promise<ScriptSkeleton>} promise that resolves to a script object
*/
export declare function readScriptByName({ scriptName, state, }: {
scriptName: string;
state: State;
}): Promise<ScriptSkeleton>;
/**
* Create script
* @param {string} scriptId the script id
* @param {string} scriptName the script name
* @param {ScriptSkeleton} scriptData script object
* @returns {Promise<ScriptSkeleton>} a promise resolving to a script object
*/
export declare function createScript({ scriptId, scriptName, scriptData, state, }: {
scriptId: string;
scriptName: string;
scriptData: ScriptSkeleton;
state: State;
}): Promise<ScriptSkeleton>;
/**
* Create or update script
* @param {string} scriptId script uuid
* @param {ScriptSkeleton} scriptData script object
* @returns {Promise<ScriptSkeleton>} a status object
*/
export declare function updateScript({ scriptId, scriptData, state, }: {
scriptId: string;
scriptData: ScriptSkeleton;
state: State;
}): Promise<ScriptSkeleton>;
/**
* Delete script
* @param {string} scriptId script uuid
* @returns {Promise<ScriptSkeleton>} a promise resolving to a script object
*/
export declare function deleteScript({ scriptId, state, }: {
scriptId: string;
state: State;
}): Promise<ScriptSkeleton>;
/**
* Delete script by name
* @param {String} scriptName script name
* @returns {Promise<ScriptSkeleton>} a promise that resolves to a script object
*/
export declare function deleteScriptByName({ scriptName, state, }: {
scriptName: string;
state: State;
}): Promise<ScriptSkeleton>;
/**
* Delete all non-default scripts
* @returns {Promise<ScriptSkeleton[]>>} a promise that resolves to an array of script objects
*/
export declare function deleteScripts({ state, }: {
state: State;
}): Promise<ScriptSkeleton[]>;
/**
* Export script by id
*
* @param {string} scriptId script uuid
* @param {ScriptExportOptions} options script export options
* @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object
*/
export declare function exportScript({ scriptId, options, state, }: {
scriptId: string;
options?: ScriptExportOptions;
state: State;
}): Promise<ScriptExportInterface>;
/**
* Export script by name
*
* @param {string} scriptName script name
* @param {ScriptExportOptions} options script export options
* @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object
*/
export declare function exportScriptByName({ scriptName, options, state, }: {
scriptName: string;
options?: ScriptExportOptions;
state: State;
}): Promise<ScriptExportInterface>;
/**
* Export all scripts
*
* @param {ScriptExportOptions} options script export options
* @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object
*/
export declare function exportScripts({ options, state, }: {
options?: ScriptExportOptions;
state: State;
}): Promise<ScriptExportInterface>;
/**
* Import scripts
* @param {object} params Params object.
* @param {string} params.scriptId Optional id of script. If supplied, only the script of that id is imported. Takes priority over scriptName if both are provided.
* @param {string} params.scriptName Optional name of script. If supplied, only the script of that name is imported
* @param {ScriptExportInterface} params.importData Script import data
* @param {ScriptImportOptions} params.options Script import options
* @param {boolean} params.validate If true, validates Javascript scripts to ensure no errors exist in them. Default: false
* @returns {Promise<ScriptSkeleton[]>} the imported scripts
*/
export declare function importScripts({ scriptId, scriptName, importData, options, validate, state, }: {
scriptId?: string;
scriptName?: string;
importData: ScriptExportInterface;
options?: ScriptImportOptions;
validate?: boolean;
state: State;
}): Promise<ScriptSkeleton[]>;
//# sourceMappingURL=ScriptOps.d.ts.map