@rockcarver/frodo-lib
Version:
A library to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.
322 lines • 13 kB
TypeScript
import { type IdObjectSkeletonInterface } from '../api/ApiTypes';
import { CircleOfTrustSkeleton } from '../api/CirclesOfTrustApi';
import { type OAuth2ClientSkeleton } from '../api/OAuth2ClientApi';
import { Saml2ProviderSkeleton } from '../api/Saml2Api';
import { type ScriptSkeleton } from '../api/ScriptApi';
import { State } from '../shared/State';
import { ConnectorSkeleton } from './ConnectorOps';
import { MappingSkeleton } from './MappingOps';
import { type ExportMetaData } from './OpsTypes';
export type Application = {
/**
* Create an empty application export template
* @returns {ApplicationExportInterface} an empty application export template
*/
createApplicationExportTemplate(): ApplicationExportInterface;
/**
* Get application managed object type
* @returns {String} application managed object type in this realm
*/
getRealmManagedApplication(): string;
/**
* Create application
* @param {string} applicationId application id/name
* @param {ApplicationSkeleton} applicationData application data
* @returns {Promise<ApplicationSkeleton>} a promise that resolves to an application object
*/
createApplication(applicationId: string, applicationData: ApplicationSkeleton): Promise<ApplicationSkeleton>;
/**
* Read application
* @param {string} applicationId application uuid
* @returns {Promise<ApplicationSkeleton>} a promise that resolves to an application object
*/
readApplication(applicationId: string): Promise<ApplicationSkeleton>;
/**
* Read application by name
* @param {string} applicationName application name
* @returns {Promise<ApplicationSkeleton>} a promise that resolves to an application object
*/
readApplicationByName(applicationName: string): Promise<ApplicationSkeleton>;
/**
* Read all applications. Results are sorted aphabetically.
* @returns {Promise<ApplicationSkeleton[]>} a promise that resolves to an array of application objects
*/
readApplications(): Promise<ApplicationSkeleton[]>;
/**
* Update application
* @param {string} applicationId application uuid
* @param {ApplicationSkeleton} applicationData application data
* @returns {Promise<ApplicationSkeleton>} a promise that resolves to an application object
*/
updateApplication(applicationId: string, applicationData: ApplicationSkeleton): Promise<ApplicationSkeleton>;
/**
* Delete application
* @param {string} applicationId application uuid
* @param {boolean} deep deep delete (remove dependencies)
* @returns {Promise<ApplicationSkeleton>} a promise that resolves to an application object
*/
deleteApplication(applicationId: string, deep?: boolean): Promise<ApplicationSkeleton>;
/**
* Delete application by name
* @param {string} applicationName application name
* @param {boolean} deep deep delete (remove dependencies)
* @returns {Promise<ApplicationSkeleton>} a promise that resolves to an application object
*/
deleteApplicationByName(applicationName: string, deep?: boolean): Promise<ApplicationSkeleton>;
/**
* Delete all applications
* @param {boolean} deep deep delete (remove dependencies)
* @returns {Promise<ApplicationSkeleton[]>} a promise that resolves to an array of application objects
*/
deleteApplications(deep?: boolean): Promise<ApplicationSkeleton[]>;
/**
* Query applications
* @param filter CREST search filter
* @param fields array of fields to return
*/
queryApplications(filter: string, fields?: string[]): Promise<ApplicationSkeleton[]>;
/**
* Export application. The response can be saved to file as is.
* @param {string} applicationId application uuid
* @param {ApplicationExportOptions} options export options
* @returns {Promise<ApplicationExportInterface} Promise resolving to an ApplicationExportInterface object.
*/
exportApplication(applicationId: string, options: ApplicationExportOptions): Promise<ApplicationExportInterface>;
/**
* Export application by name. The response can be saved to file as is.
* @param {string} applicationName application name
* @param {ApplicationExportOptions} options export options
* @returns {Promise<ApplicationExportInterface} Promise resolving to an ApplicationExportInterface object.
*/
exportApplicationByName(applicationName: string, options: ApplicationExportOptions): Promise<ApplicationExportInterface>;
/**
* Export all applications. The response can be saved to file as is.
* @returns {Promise<ApplicationExportInterface>} Promise resolving to an ApplicationExportInterface object.
*/
exportApplications(options?: ApplicationExportOptions): Promise<ApplicationExportInterface>;
/**
* Import application. The import data is usually read from an application export file.
* @param {string} applicationId application uuid
* @param {ApplicationExportInterface} importData application import data.
* @returns {Promise<ApplicationSkeleton>} Promise resolving to an application object.
*/
importApplication(applicationId: string, importData: ApplicationExportInterface, options: ApplicationImportOptions): Promise<ApplicationSkeleton>;
/**
* Import application by name. The import data is usually read from an application export file.
* @param {string} applicationName application name
* @param {ApplicationExportInterface} importData application import data.
* @returns {Promise<ApplicationSkeleton>} Promise resolving to an application object.
*/
importApplicationByName(applicationName: string, importData: ApplicationExportInterface, options: ApplicationImportOptions): Promise<ApplicationSkeleton>;
/**
* Import first application. The import data is usually read from an application export file.
* @param {ApplicationExportInterface} importData application import data.
*/
importFirstApplication(importData: ApplicationExportInterface, options: ApplicationImportOptions): Promise<ApplicationSkeleton[]>;
/**
* Import applications. The import data is usually read from an application export file.
* @param {ApplicationExportInterface} importData application import data.
*/
importApplications(importData: ApplicationExportInterface, options: ApplicationImportOptions): Promise<ApplicationSkeleton[]>;
};
declare const _default: (state: State) => Application;
export default _default;
export type ApplicationSkeleton = IdObjectSkeletonInterface & {
authoritative: boolean;
connectorId: string;
description: string;
icon: string;
mappingNames: string[];
members: any;
name: string;
owners: any;
roles: any;
ssoEntities: {
idpLocation: string;
idpPrivateId: string;
spLocation: string;
spPrivate: string;
};
templateName: string;
templateVersion: string;
uiConfig: object;
url: string;
};
/**
* Export format for applications
*/
export interface ApplicationExportInterface {
/**
* Metadata
*/
meta?: ExportMetaData;
/**
* Managed applications
*/
managedApplication: Record<string, ApplicationSkeleton>;
/**
* Scripts
*/
script?: Record<string, ScriptSkeleton>;
/**
* OAuth2 clients
*/
application?: Record<string, OAuth2ClientSkeleton>;
/**
* Saml providers, circles of trust, and metadata
*/
saml?: {
hosted?: Record<string, Saml2ProviderSkeleton>;
remote?: Record<string, Saml2ProviderSkeleton>;
metadata?: Record<string, string[]>;
cot?: Record<string, CircleOfTrustSkeleton>;
};
/**
* connectors
*/
connector?: Record<string, ConnectorSkeleton>;
/**
* mappings
*/
mapping?: Record<string, MappingSkeleton>;
}
/**
* Application export options
*/
export type ApplicationExportOptions = {
/**
* Include any dependencies (scripts, oauth2 clients, saml providers, circles of trust, etc).
*/
deps: boolean;
/**
* Use string arrays to store multi-line text in scripts.
*/
useStringArrays: boolean;
};
/**
* Application export options
*/
export type ApplicationImportOptions = {
/**
* Import any dependencies (scripts).
*/
deps: boolean;
};
export declare function createApplicationExportTemplate({ state, }: {
state: State;
}): ApplicationExportInterface;
export declare function getRealmManagedApplication({ state }: {
state: State;
}): string;
export declare function createApplication({ applicationId, applicationData, state, }: {
applicationId: string;
applicationData: ApplicationSkeleton;
state: State;
}): Promise<ApplicationSkeleton>;
export declare function readApplication({ applicationId, fields, state, }: {
applicationId: string;
fields?: string[];
state: State;
}): Promise<ApplicationSkeleton>;
export declare function readApplicationByName({ applicationName, fields, state, }: {
applicationName: string;
fields?: string[];
state: State;
}): Promise<ApplicationSkeleton>;
export declare function readApplications({ fields, state, }: {
fields?: string[];
state: State;
}): Promise<ApplicationSkeleton[]>;
export declare function updateApplication({ applicationId, applicationData, state, }: {
applicationId: string;
applicationData: IdObjectSkeletonInterface;
state: State;
}): Promise<ApplicationSkeleton>;
export declare function deleteApplication({ applicationId, options, state, }: {
applicationId: string;
options?: {
deep: boolean;
};
state: State;
}): Promise<ApplicationSkeleton>;
export declare function deleteApplicationByName({ applicationName, options, state, }: {
applicationName: string;
options?: {
deep: boolean;
};
state: State;
}): Promise<ApplicationSkeleton>;
export declare function deleteApplications({ options, state, }: {
options?: {
deep: boolean;
};
state: State;
}): Promise<ApplicationSkeleton[]>;
export declare function queryApplications({ filter, fields, state, }: {
filter: string;
fields?: string[];
state: State;
}): Promise<ApplicationSkeleton[]>;
export declare function exportApplication({ applicationId, options, state, }: {
applicationId: string;
options: ApplicationExportOptions;
state: State;
}): Promise<ApplicationExportInterface>;
export declare function exportApplicationByName({ applicationName, options, state, }: {
applicationName: string;
options: ApplicationExportOptions;
state: State;
}): Promise<ApplicationExportInterface>;
export declare function exportApplications({ options, state, }: {
options: ApplicationExportOptions;
state: State;
}): Promise<ApplicationExportInterface>;
/**
* Import application
* @param {string} clientId client id
* @param {ApplicationExportInterface} importData import data
* @param {ApplicationImportOptions} options import options
* @returns {Promise<ApplicationSkeleton>} a promise resolving to an oauth2 client
*/
export declare function importApplication({ applicationId, importData, options, state, }: {
applicationId: string;
importData: ApplicationExportInterface;
options?: ApplicationImportOptions;
state: State;
}): Promise<ApplicationSkeleton>;
/**
* Import application
* @param {string} clientId client id
* @param {ApplicationExportInterface} importData import data
* @param {ApplicationImportOptions} options import options
* @returns {Promise<ApplicationSkeleton>} a promise resolving to an oauth2 client
*/
export declare function importApplicationByName({ applicationName: applicationName, importData, options, state, }: {
applicationName: string;
importData: ApplicationExportInterface;
options?: ApplicationImportOptions;
state: State;
}): Promise<ApplicationSkeleton>;
/**
* Import first application
* @param {ApplicationExportInterface} importData import data
* @param {ApplicationImportOptions} options import options
* @returns {Promise<ApplicationSkeleton[]>} a promise resolving to an array of oauth2 clients
*/
export declare function importFirstApplication({ importData, options, state, }: {
importData: ApplicationExportInterface;
options?: ApplicationImportOptions;
state: State;
}): Promise<ApplicationSkeleton>;
/**
* Import applications
* @param {ApplicationExportInterface} importData import data
* @param {ApplicationImportOptions} options import options
* @returns {Promise<ApplicationSkeleton[]>} a promise resolving to an array of oauth2 clients
*/
export declare function importApplications({ importData, options, state, }: {
importData: ApplicationExportInterface;
options?: ApplicationImportOptions;
state: State;
}): Promise<ApplicationSkeleton[]>;
//# sourceMappingURL=ApplicationOps.d.ts.map