import { Admin } from '../ops/AdminOps'; import { Agent } from '../ops/AgentOps'; import { ApiFactory } from '../ops/ApiFactoryOps'; import { Application } from '../ops/ApplicationOps'; import { Authenticate } from '../ops/AuthenticateOps'; import { AuthenticationSettings } from '../ops/AuthenticationSettingsOps'; import { CirclesOfTrust } from '../ops/CirclesOfTrustOps'; import { AdminFederation } from '../ops/cloud/AdminFederationOps'; import { EnvCertificate } from '../ops/cloud/EnvCertificatesOps'; import { EnvContentSecurityPolicy } from '../ops/cloud/EnvContentSecurityPolicyOps'; import { EnvCookieDomains } from '../ops/cloud/EnvCookieDomainsOps'; import { EnvCSR } from '../ops/cloud/EnvCSRsOps'; import { EnvCustomDomains } from '../ops/cloud/EnvCustomDomainsOps'; import { EnvFederationEnforcement } from '../ops/cloud/EnvFederationEnforcementOps'; import { EnvPromotion } from '../ops/cloud/EnvPromotionOps'; import { EnvRelease } from '../ops/cloud/EnvReleaseOps'; import { EnvSSOCookieConfig } from '../ops/cloud/EnvSSOCookieConfigOps'; import { EsvCount } from '../ops/cloud/EsvCountOps'; import { Feature } from '../ops/cloud/FeatureOps'; import { Log } from '../ops/cloud/LogOps'; import { Secret } from '../ops/cloud/SecretsOps'; import { ServiceAccount } from '../ops/cloud/ServiceAccountOps'; import { Startup } from '../ops/cloud/StartupOps'; import { Variable } from '../ops/cloud/VariablesOps'; import { Config } from '../ops/ConfigOps'; import { ConnectionProfile } from '../ops/ConnectionProfileOps'; import { Connector } from '../ops/ConnectorOps'; import { EmailTemplate } from '../ops/EmailTemplateOps'; import { IdmConfig } from '../ops/IdmConfigOps'; import { IdmCrypto } from '../ops/IdmCryptoOps'; import { IdmScript } from '../ops/IdmScriptOps'; import { IdmSystem } from '../ops/IdmSystemOps'; import { Idp } from '../ops/IdpOps'; import { Info } from '../ops/InfoOps'; import { Jose } from '../ops/JoseOps'; import { Journey } from '../ops/JourneyOps'; import { ManagedObject } from '../ops/ManagedObjectOps'; import { Mapping } from '../ops/MappingOps'; import { Node } from '../ops/NodeOps'; import { OAuth2Client } from '../ops/OAuth2ClientOps'; import { OAuth2Oidc } from '../ops/OAuth2OidcOps'; import { OAuth2Provider } from '../ops/OAuth2ProviderOps'; import { OAuth2TrustedJwtIssuer } from '../ops/OAuth2TrustedJwtIssuerOps'; import { Organization } from '../ops/OrganizationOps'; import { Policy } from '../ops/PolicyOps'; import { PolicySet } from '../ops/PolicySetOps'; import { Realm } from '../ops/RealmOps'; import { Recon } from '../ops/ReconOps'; import { ResourceType } from '../ops/ResourceTypeOps'; import { Saml2 } from '../ops/Saml2Ops'; import { Script } from '../ops/ScriptOps'; import { Service } from '../ops/ServiceOps'; import { Session } from '../ops/SessionOps'; import { Theme } from '../ops/ThemeOps'; import { TokenCache } from '../ops/TokenCacheOps'; import { Version } from '../ops/VersionUtils'; import { Constants } from '../shared/Constants'; import { State, StateInterface } from '../shared/State'; import { Base64 } from '../utils/Base64Utils'; import { ExportImport } from '../utils/ExportImportUtils'; import { FRUtils } from '../utils/ForgeRockUtils'; import { Json } from '../utils/JsonUtils'; import { ScriptValidation } from '../utils/ScriptValidationUtils'; /** * Frodo Library */ export type Frodo = { state: State; admin: Admin; agent: Agent; app: Application; authn: { journey: Journey; node: Node; settings: AuthenticationSettings; }; authz: { policy: Policy; policySet: PolicySet; resourceType: ResourceType; }; cloud: EsvCount & { adminFed: AdminFederation; env: EnvContentSecurityPolicy & EnvCookieDomains & EnvCustomDomains & EnvFederationEnforcement & EnvRelease & EnvSSOCookieConfig & { cert: EnvCertificate; csr: EnvCSR; promotion: EnvPromotion; }; /** * @deprecated since v2.0.4 use {@link frodo.cloud.getEsvCount | frodo.cloud.getEsvCount} instead */ esvCount: EsvCount; feature: Feature; log: Log; secret: Secret; serviceAccount: ServiceAccount; startup: Startup; variable: Variable; }; config: Config; conn: ConnectionProfile; cache: TokenCache; email: { template: EmailTemplate; }; factory: ApiFactory; idm: { config: IdmConfig; connector: Connector; crypto: IdmCrypto; managed: ManagedObject; mapping: Mapping; organization: Organization; recon: Recon; script: IdmScript; system: IdmSystem; }; info: Info; login: Authenticate; oauth2oidc: { client: OAuth2Client; endpoint: OAuth2Oidc; external: Idp; provider: OAuth2Provider; issuer: OAuth2TrustedJwtIssuer; }; realm: Realm; saml2: { circlesOfTrust: CirclesOfTrust; entityProvider: Saml2; }; script: Script; service: Service; session: Session; theme: Theme; utils: FRUtils & ScriptValidation & ExportImport & Base64 & { constants: Constants; jose: Jose; json: Json; version: Version; }; /** * Create a new frodo instance * @param {StateInterface} config Initial state configuration to use with the new instance * @returns {Frodo} frodo instance */ createInstance(config: StateInterface): Frodo; /** * Factory helper to create a frodo instance ready for logging in with an admin user account * @param {string} host host base URL, e.g. 'https://openam-my-tenant.forgeblocks.com/am' * @param {string} username admin account username * @param {string} password admin account password * @param {string} realm (optional) override default realm * @param {string} deploymentType (optional) override deployment type ('cloud', 'forgeops', or 'classic') * @param {boolean} allowInsecureConnection (optional) allow insecure connection * @param {boolean} debug (optional) enable debug output * @param {boolean} curlirize (optional) enable output of all library REST calls as curl commands * @returns {Frodo} frodo instance */ createInstanceWithAdminAccount(host: string, username: string, password: string, realm?: string, deploymentType?: string, allowInsecureConnection?: boolean, debug?: boolean, curlirize?: boolean): Frodo; /** * Factory helper to create a frodo instance ready for logging in with a service account * @param {string} host host base URL, e.g. 'https://openam-my-tenant.forgeblocks.com/am' * @param {string} serviceAccountId service account uuid * @param {string} serviceAccountJwkStr service account JWK as stringified JSON * @param {string} realm (optional) override default realm * @param {string} deploymentType (optional) override deployment type ('cloud', 'forgeops', or 'classic') * @param {boolean} allowInsecureConnection (optional) allow insecure connection * @param {boolean} debug (optional) enable debug output * @param {boolean} curlirize (optional) enable output of all library REST calls as curl commands * @returns {Frodo} frodo instance */ createInstanceWithServiceAccount(host: string, serviceAccountId: string, serviceAccountJwkStr: string, realm?: string, deploymentType?: string, allowInsecureConnection?: boolean, debug?: boolean, curlirize?: boolean): Frodo; }; /** * Create a new frodo instance * @param {StateInterface} config Initial state configuration to use with the new instance * @returns {Frodo} frodo instance */ declare const FrodoLib: (config?: StateInterface) => Frodo; /** * Default frodo instance * * @remarks * * If your application requires a single connection to a ForgeRock Identity Platform * instance at a time, then this default instance is all you need: * * In order to use the default {@link Frodo | frodo} instance, you must populate its {@link State | state} with the * minimum required information to login to your ForgeRock Identity Platform instance: * * ```javascript * // configure the state before invoking any library functions that require credentials * state.setHost('https://instance0/am'); * state.setUsername('admin'); * state.setPassword('p@ssw0rd!'); * * // now the library can login * frodo.login.getTokens(); * * // and perform operations * frodo.authn.journey.exportJourney('Login'); * ``` * * If your application needs to connect to multiple ForgeRock Identity Platform instances * simultaneously, then you will want to create additional frodo instances using any of * the available factory methods accessible from the default instance: * * {@link frodo.createInstance} * ```javascript * // use factory method to create a new Frodo instance * const instance1 = frodo.createInstance({ * host: 'https://instance1/am', * username: 'admin', * password: 'p@ssw0rd!', * }); * * // now the instance can login * instance1.login.getTokens(); * * // and perform operations * instance1.authn.journey.exportJourney('Login'); * ``` * * {@link frodo.createInstanceWithAdminAccount} * ```javascript * // use factory method to create a new Frodo instance ready to login with an admin user account * const instance2 = frodo.createInstanceWithAdminAccount( * 'https://instance2/am', * 'admin', * 'p@ssw0rd!' * ); * * // now the instance can login * instance2.login.getTokens(); * * // and perform operations * instance2.authn.journey.exportJourney('Login'); * ``` * * {@link frodo.createInstanceWithServiceAccount} * ```javascript * // use factory method to create a new Frodo instance ready to login with a service account * const instance3 = frodo.createInstanceWithServiceAccount( * 'https://instance3/am', * 'serviceAccount', * '{"k":"jwk"}' * ); * * // now the instance can login * instance3.login.getTokens(); * * // and perform operations * instance3.authn.journey.exportJourney('Login'); * ``` */ declare const frodo: Frodo; /** * Default state instance * * @remarks * * {@link Frodo} maintains a {@link State | state} for each instance. The state is where Frodo gets configuration * information from like host to connecto to, username and password to use, whether to * allow insecure connections or not, etc. As the library operates, it updates its state. * * The default frodo instance contains an empty state instance by default. In order to * use the default frodo instance, you must populate its state with the minimum required * information to login to your ForgeRock Identity Platform instance: * * ```javascript * // configure the state before invoking any library functions that require credentials * state.setHost('https://instance0/am'); * state.setUsername('admin'); * state.setPassword('p@ssw0rd!'); * * // now the library can login * frodo.login.getTokens(); * * // and perform operations * frodo.authn.journey.exportJourney('Login'); * ``` */ declare const state: State; export { frodo, FrodoLib, state }; export default FrodoLib; //# sourceMappingURL=FrodoLib.d.ts.map