UNPKG

@rockcarver/frodo-lib

Version:

A library to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.

322 lines 13 kB
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