/** * 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 { InheritableUserConfig } from './inheritableUserConfig'; import { UserAttribute } from './userAttribute'; import { UserIdentity } from './userIdentity'; import { UpstreamUserIdentity } from './upstreamUserIdentity'; import { UserAttributes } from './userAttributes'; import { UserStatusEnum } from './userStatusEnum'; export interface _User { /** * List of groups that the user is a member of */ member_of?: Array; /** * Unique identifier */ readonly id?: string; /** * External unique identifier */ external_id?: string | null; /** * Indicates if the user is enabled or disabled. This field is managed by the backend based on the users configured status, along with the disabled_at_time property if that is set. */ readonly enabled?: boolean; status?: UserStatusEnum; /** * User\'s first name */ first_name?: string; /** * User\'s last name */ last_name?: string; /** * User\'s full name, combination of first and last name */ full_name?: string; /** * User\'s email address */ email?: string; /** * A suitable, simplified name of the user that can be used to identify a user. For users of type \"user\", this would be the users email. For other user types (group), the first_name would be used as the display_name. This does introduce the possiblity that multiple users may have identical display names. In this situation, it would be up to the consumer of this to de-duplicate the users (such as also display the users email alongside). examples: display_name: user@example.com display_name: all_users_group */ readonly display_name?: string; /** * Upstream IdP name */ provider?: string | null; /** * An associative array mapping an application to a list of roles */ roles?: { [key: string]: Array | undefined; }; /** * Unique identifier */ org_id?: string; /** * Type of user */ readonly type?: User.TypeEnum; /** * Creation time */ readonly created?: Date; /** * Update time */ readonly updated?: Date; /** * Whether the user was automatically created as part of another process such as logging in. On creation, this flag being true serves to trigger any behaviour tied to automatically created users, such as addition to special groups. On read, it can serve to indicate whether the user was automatically created. On update it will ensure that the automatically triggered behaviour still holds true. */ auto_created?: boolean; /** * System users are controlled by the Agilicus infrastructure as part of providing service. Typically administrators and end users will not interact directly with them, so they should be hidden from display, unless explicitly toggled on. */ is_system_user?: boolean; /** * The upstream identities this user can use to log in to the system. When a user logs in, their identity in this system will be determined by matching against this list. Note that this implies that entries in this list are globally unique. */ readonly upstream_user_identities?: Array; /** * Whether the user will be added to sub organisations automatically. When set for a user that is a member of a particular organisation, subsequent creations of sub organisations will add this user to that suborgansation. */ cascade?: boolean; configured_attributes?: UserAttributes; /** * The live attributes of the user, as determined from all sources of attributes. A user\'s attributes flow from all of their upstream_user_identities as well as the `configured_attributes` field. Attributes are merged by name. If two sources of attributes have an attribute with the same name, that attribute will be merged. For cases where a merge is not possible -- e.g. two attributes with different types -- the oldest source of identity will be used. The `configured_attributes` field is always considered the oldest, so it has priority. Further, the resulting items will be sorted in ascending order of name. For example, considering a user with following two sources of attributes: ``` older_upstream: - name: manager value: best-manager - name: groups value: [\"A\", \"B\"] newer_upstream: - name: manager value: other-manager - name: groups value: [\"C\"] - name: age value 32 ``` The resulting attributes will be: ``` attributes: - name: age value 32 - name: groups value: [\"A\", \"B\", \"C\"] - name: manager value: best-manager ``` */ readonly attributes?: Array; inheritable_config?: InheritableUserConfig; inheritable_status?: InheritableUserConfig; /** * Optionally configure a user to be automatically disabled at a specific point in time. Any retrieval of the user object record past the disabled_at_time will result in the enabled property be set to false. */ disabled_at_time?: Date | null; } export interface User extends _User { _builtin_original?: _User; _remove_builtin_extensions?: () => void; } export declare class UserImpl implements _User { _builtin_original?: _User; member_of: Array | undefined; readonly id: string | undefined; external_id: string | null | undefined; readonly enabled: boolean | undefined; status: UserStatusEnum | undefined; first_name: string | undefined; last_name: string | undefined; full_name: string | undefined; email: string | undefined; readonly display_name: string | undefined; provider: string | null | undefined; roles: { [key: string]: Array | undefined; } | undefined; org_id: string | undefined; readonly type: User.TypeEnum | undefined; readonly created: Date | undefined; readonly updated: Date | undefined; auto_created: boolean | undefined; is_system_user: boolean | undefined; readonly upstream_user_identities: Array | undefined; cascade: boolean | undefined; configured_attributes: UserAttributes | undefined; readonly attributes: Array | undefined; inheritable_config: InheritableUserConfig | undefined; inheritable_status: InheritableUserConfig | undefined; disabled_at_time: Date | null | undefined; constructor(base: _User); _remove_builtin_extensions(): void; } export declare namespace User { type TypeEnum = 'user' | 'group' | 'sysgroup' | 'bigroup' | 'service_account' | 'support_user'; const TypeEnum: { user: TypeEnum; group: TypeEnum; sysgroup: TypeEnum; bigroup: TypeEnum; service_account: TypeEnum; support_user: TypeEnum; }; } export declare function newUserImpl(base: _User): UserImpl;