import type { Storable, JacksonOption, IdentityFederationApp, Records, GetByProductParams, AppRequestParams, Index } from '../../typings'; type NewAppParams = Pick & { logoUrl?: string; faviconUrl?: string; primaryColor?: string; }; export declare class App { protected store: Storable; private opts; constructor({ store, opts }: { store: Storable; opts: JacksonOption; }); /** * @openapi * components: * schemas: * IdentityFederationAppCreate: * type: object * properties: * tenant: * type: string * description: Tenant * product: * type: string * description: Product * name: * type: string * description: Name * acsUrl: * type: string * description: ACS URL * entityId: * type: string * description: Entity ID * logoUrl: * type: string * description: Logo URL * faviconUrl: * type: string * description: Favicon URL * primaryColor: * type: string * description: Primary color * tenants: * type: array * items: * type: string * description: Mapping of tenants whose connections will be grouped under this Identity Federation app * mappings: * type: array * items: * $ref: "#/components/schemas/AttributeMapping" * description: Mapping of attributes from the IdP to SP * type: * type: array * items: * type: string * description: If creating an OIDC app, this should be set to 'oidc' otherwise it defaults to 'saml' * redirectUrl: * type: array * items: * type: string * description: If creating an OIDC app, provide the redirect URL * samlAudienceOverride: * type: string * description: Override the SAML Audience on a per app basis * includeOidcTokensInAssertion: * type: boolean * description: Include OIDC tokens in the SAML assertion * ttlInMinutes: * type: number * description: Time-to-live in minutes for the SAML assertion, does not apply to OIDC flows * IdentityFederationApp: * allOf: * - $ref: "#/components/schemas/IdentityFederationAppCreate" * - type: object * required: * - id * properties: * id: * type: string * description: App ID * AttributeMapping: * type: object * properties: * key: * type: string * description: SP attribute * value: * type: string * description: IdP attribute * IdentityFederationResponse: * type: object * properties: * data: * $ref: "#/components/schemas/IdentityFederationApp" * error: * $ref: "#/components/schemas/IdentityFederationError" * IdentityFederationError: * type: object * properties: * message: * type: string * */ /** * @openapi * /api/v1/identity-federation: * post: * tags: * - Identity Federation * summary: Create an Identity Federation app * requestBody: * content: * application/json: * schema: * $ref: "#/components/schemas/IdentityFederationAppCreate" * required: * - name * - product * - tenant * required: true * responses: * 200: * description: Success * content: * application/json: * schema: * $ref: "#/components/schemas/IdentityFederationResponse" * x-ory-ratelimit-bucket: polis-public-medium */ create({ name, type, redirectUrl, tenant, product, acsUrl, entityId, logoUrl, faviconUrl, primaryColor, tenants, mappings, samlAudienceOverride, includeOidcTokensInAssertion, ttlInMinutes, }: NewAppParams): Promise; /** * @openapi * /api/v1/identity-federation: * get: * tags: * - Identity Federation * summary: Get an Identity Federation app * parameters: * - name: id * in: query * description: App ID * required: true * schema: * type: string * - name: tenant * in: query * description: Tenant * schema: * type: string * - name: product * in: query * description: Product * schema: * type: string * responses: * 200: * description: Success * content: * application/json: * schema: * $ref: "#/components/schemas/IdentityFederationResponse" * x-ory-ratelimit-bucket: polis-public-low */ get(params: AppRequestParams): Promise; /** * @openapi * /api/v1/identity-federation/product: * get: * tags: * - Identity Federation * summary: Get Identity Federation apps by product * parameters: * - name: product * in: query * description: Product * required: true * schema: * type: string * - $ref: '#/components/parameters/pageOffset' * - $ref: '#/components/parameters/pageLimit' * - $ref: '#/components/parameters/pageToken' * responses: * 200: * description: Success * content: * application/json: * schema: * type: object * properties: * data: * type: array * items: * $ref: '#/components/schemas/IdentityFederationApp' * error: * $ref: '#/components/schemas/IdentityFederationError' * pageToken: * type: string * description: token for pagination * x-ory-ratelimit-bucket: polis-public-low */ getByProduct({ product, pageOffset, pageLimit, pageToken }: GetByProductParams): Promise>; getByEntityId(entityId: string): Promise; /** * @openapi * /api/v1/identity-federation: * patch: * tags: * - Identity Federation * summary: Update an Identity Federation app * requestBody: * content: * application/json: * schema: * $ref: "#/components/schemas/IdentityFederationApp" * required: * - id * required: true * responses: * 200: * description: Success * content: * application/json: * schema: * $ref: "#/components/schemas/IdentityFederationResponse" * x-ory-ratelimit-bucket: polis-public-medium */ update(params: Partial): Promise<{ id: string; type?: string; clientID?: string; clientSecret?: string; redirectUrl?: string[] | string; name: string; tenant: string; product: string; acsUrl: string; entityId: string; logoUrl: string | null; faviconUrl: string | null; primaryColor: string | null; tenants?: string[]; mappings?: import("./types").AttributeMapping[] | null; samlAudienceOverride?: string | null; includeOidcTokensInAssertion?: boolean; ttlInMinutes?: number | null; }>; getAll({ pageOffset, pageLimit, pageToken, }: { pageOffset?: number; pageLimit?: number; pageToken?: string; }): Promise>; /** * @openapi * /api/v1/identity-federation: * delete: * tags: * - Identity Federation * summary: Delete an Identity Federation app * parameters: * - name: id * in: query * description: App ID * required: true * schema: * type: string * - name: tenant * in: query * description: Tenant * schema: * type: string * - name: product * in: query * description: Product * schema: * type: string * responses: * 200: * description: Success * content: * application/json: * schema: * type: object * properties: * error: * $ref: "#/components/schemas/IdentityFederationError" * x-ory-ratelimit-bucket: polis-public-medium */ delete(params: AppRequestParams): Promise; getMetadata(samlAudienceOverride?: string): Promise<{ xml: string; entityId: string; ssoUrl: string; x509cert: string; }>; getCount(idx?: Index): Promise; } export {};