/** * Agilicus API * Agilicus is API-first. Modern software is controlled by other software, is open, is available for you to use the way you want, securely, simply. The OpenAPI Specification in YAML format is available on [www](https://www.agilicus.com/www/api/agilicus-openapi.yaml) for importing to other tools. A rendered, online viewable and usable version of this specification is available at [api](https://www.agilicus.com/api). You may try the API inline directly in the web page. To do so, first obtain an Authentication Token (the simplest way is to install the Python SDK, and then run `agilicus-cli --issuer https://MYISSUER get-token`). You will need an org-id for most calls (and can obtain from `agilicus-cli --issuer https://MYISSUER list-orgs`). The `MYISSUER` will typically be `auth.MYDOMAIN`, and you will see it as you sign-in to the administrative UI. This API releases on Bearer-Token authentication. To obtain a valid bearer token you will need to Authenticate to an Issuer with OpenID Connect (a superset of OAUTH2). Your \"issuer\" will look like https://auth.MYDOMAIN. For example, when you signed-up, if you said \"use my own domain name\" and assigned a CNAME of cloud.example.com, then your issuer would be https://auth.cloud.example.com. If you selected \"use an Agilicus supplied domain name\", your issuer would look like https://auth.myorg.agilicus.cloud. For test purposes you can use our [Python SDK](https://pypi.org/project/agilicus/) and run `agilicus-cli --issuer https://auth.MYDOMAIN get-token`. This API may be used in any language runtime that supports OpenAPI 3.0, or, you may use our [Python SDK](https://pypi.org/project/agilicus/), our [Typescript SDK](https://www.npmjs.com/package/@agilicus/angular), or our [Golang SDK](https://git.agilicus.com/pub/sdk-go). 100% of the activities in our system our API-driven, from our web-admin, through our progressive web applications, to all internals: there is nothing that is not accessible. For more information, see [developer resources](https://www.agilicus.com/developer). * * The version of the OpenAPI document: 2025.12.16 * Contact: dev@agilicus.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { AdminStatus } from './adminStatus'; import { AutoCreateStatus } from './autoCreateStatus'; import { OperationalStatus } from './operationalStatus'; export interface _OIDCUpstreamIdentityProvider { /** * A name used to uniquely refer to the upstream identity provider configuration. This is the text that will be displayed when presenting the upstream identity for login. */ name: string; /** * The icon file to be used, limited to: numbers, letters, underscores, hyphens and periods. It is part of a css class (with the periods replaced by underscores). To use a custom icon than the provided default you will need to add the icon the static/img folder and update the static css file to add a new css button like below ```json .dex-btn-icon-- { background-image: url(../static/img/); } ``` To use a default icon simply enter an icon name from the pre-provided defaults found in the static/img folder The default icons are - bitbucket - coreos - email - github - gitlab - google - ldap - linkedin - microsoft - oidc - saml */ icon?: string; /** * The upstream issuer uri. This is the URI which identifies the issuer against which users selecting this OIDCUpstreamIdentityProvider will authenticate. The issuer must support the OpenID Connect discovery document described here: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig. */ issuer: string; /** * The client ID for the upstream identity provider */ client_id: string; /** * The secret presented to the upstream during any workflows which require authentication */ client_secret?: string; /** * A proxy standing in for the main issuer host. Use this if fronting the upstream through the Agilicus infrastructure */ issuer_external_host?: string; /** * Allows changing the key in the OIDC response claims used to determine the full name of the user. If not present, defaults to the standard name */ username_key?: string; /** * Allows changing the key in the OIDC response claims used to determine the email address of the user. If not present, defaults to the standard email */ email_key?: string; /** * Controls whether email verification is required for this OIDC provider. Some OIDC providers do not take steps to verify the email address of users, or may not do so in all cases. Setting this value to true will reject any successful upstream logins for users which have not had their email address verified. */ email_verification_required?: boolean; /** * Controls whether the system will retrieve extra information about the user from the provider\'s user_info endpoint. This can be useful if the initial OIDC response does not contain sufficient information to determine the email address or user\'s name. Setting this value to true will cause extra requests to be generated to the upstream every time a user logs in to it. */ request_user_info?: boolean; /** * Changes the key used to determine the id of the user in this upstream. The key will be used to retrieve the user id from the id token claims returned from the upstream when the user logs in. This user id is in turn used to link the user to its identity within the system. If not present, the system will fall back on the default, which is `sub`. */ user_id_key?: string; auto_create_status?: AutoCreateStatus; /** * Controls how the issuer sets the \'prompt\' field of the request to the upstream identity provider. It can take the following values: - `auto`: Determine whether to set the prompt field based on other criteria of the request, such as whether offline mode is requested. - `disabled`: Never set the prompt field. */ prompt_mode?: OIDCUpstreamIdentityProvider.PromptModeEnum; /** * Controls the type/flavor of the upstream OIDC provider. Some providers have specific functionality that differs from standard oidc. For example, Microsoft utilizes the Graph API for group management. For example, if the upstream issuer is microsoft, setting this flavor to microsoft will query the groups by name so that Agilicus will reconcile all groups by the name, rather than its guid. */ oidc_flavor?: OIDCUpstreamIdentityProvider.OidcFlavorEnum; /** * supports values: \'\' or null/not set: client_secret authorization is used \'federated-credential\': Supports Microsoft federated credential. In side the Microsoft Application Registration, in \"Certificates & Secrets\" section, choose \'Federated credentials\'. Choose \"Other Issuer\", and specify the URL of the issuer (ie. https://auth.). Choose Explicit subject identifier, and enter the client ID of the Microsoft Application. */ client_authorization_type?: string | null; admin_status?: AdminStatus; /** * Inidicates whether traps (notifications) should be disabled for this entity. A true state indicates notifications will not be sent on transition. */ trap_disabled?: boolean; operational_status?: OperationalStatus; } export interface OIDCUpstreamIdentityProvider extends _OIDCUpstreamIdentityProvider { _builtin_original?: _OIDCUpstreamIdentityProvider; _remove_builtin_extensions?: () => void; } export declare class OIDCUpstreamIdentityProviderImpl implements _OIDCUpstreamIdentityProvider { _builtin_original?: _OIDCUpstreamIdentityProvider; name: string; icon: string | undefined; issuer: string; client_id: string; client_secret: string | undefined; issuer_external_host: string | undefined; username_key: string | undefined; email_key: string | undefined; email_verification_required: boolean | undefined; request_user_info: boolean | undefined; user_id_key: string | undefined; auto_create_status: AutoCreateStatus | undefined; prompt_mode: OIDCUpstreamIdentityProvider.PromptModeEnum | undefined; oidc_flavor: OIDCUpstreamIdentityProvider.OidcFlavorEnum | undefined; client_authorization_type: string | null | undefined; admin_status: AdminStatus | undefined; trap_disabled: boolean | undefined; operational_status: OperationalStatus | undefined; constructor(base: _OIDCUpstreamIdentityProvider); _remove_builtin_extensions(): void; } export declare namespace OIDCUpstreamIdentityProvider { type PromptModeEnum = 'auto' | 'disabled'; const PromptModeEnum: { auto: PromptModeEnum; disabled: PromptModeEnum; }; type OidcFlavorEnum = 'oidc' | 'microsoft'; const OidcFlavorEnum: { oidc: OidcFlavorEnum; microsoft: OidcFlavorEnum; }; } export declare function newOIDCUpstreamIdentityProviderImpl(base: _OIDCUpstreamIdentityProvider): OIDCUpstreamIdentityProviderImpl;