import { Logger } from 'winston'; import { IPermitConfig } from '../config'; import { IConditionSetRulesApi } from './condition-set-rules'; import { IConditionSetsApi } from './condition-sets'; import { ApiContextLevel, ApiKeyLevel } from './context'; import { DeprecatedApiClient, IDeprecatedPermitApi } from './deprecated'; import { IEnvironmentsApi } from './environments'; import { IProjectsApi } from './projects'; import { IRelationshipTuplesApi } from './relationship-tuples'; import { IResourceActionGroupsApi } from './resource-action-groups'; import { IResourceActionsApi } from './resource-actions'; import { IResourceAttributesApi } from './resource-attributes'; import { IResourceInstancesApi } from './resource-instances'; import { IResourceRelationsApi } from './resource-relations'; import { IResourceRolesApi } from './resource-roles'; import { IResourcesApi } from './resources'; import { IRoleAssignmentsApi } from './role-assignments'; import { IRolesApi } from './roles'; import { ITenantsApi } from './tenants'; import { IUsersApi } from './users'; export interface IPermitApi extends IDeprecatedPermitApi { /** * API for managing condition set rules. * @see {@link https://api.permit.io/v2/redoc#tag/Condition-Set-Rules} */ conditionSetRules: IConditionSetRulesApi; /** * API for managing condition sets. * @see {@link https://api.permit.io/v2/redoc#tag/Condition-Sets} */ conditionSets: IConditionSetsApi; /** * API for managing projects. * @see {@link https://api.permit.io/v2/redoc#tag/Projects} */ projects: IProjectsApi; /** * API for managing environments. * @see {@link https://api.permit.io/v2/redoc#tag/Environments} */ environments: IEnvironmentsApi; /** * API for managing resource action groups. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Action-Groups} */ actionGroups: IResourceActionGroupsApi; /** * API for managing resource actions. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Actions} */ resourceActions: IResourceActionsApi; /** * API for managing resource attributes. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Attributes} */ resourceAttributes: IResourceAttributesApi; /** * API for managing resource roles. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Roles} */ resourceRoles: IResourceRolesApi; /** * API for managing resource relations. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Relations} */ resourceRelations: IResourceRelationsApi; /** * API for managing resource instances. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Instances} */ resourceInstances: IResourceInstancesApi; /** * API for managing resources. * @see {@link https://api.permit.io/v2/redoc#tag/Resources} */ resources: IResourcesApi; /** * API for managing role assignments. * @see {@link https://api.permit.io/v2/redoc#tag/Role-Assignments} */ roleAssignments: IRoleAssignmentsApi; /** * API for managing relationship tuples. * @see {@link https://api.permit.io/v2/redoc#tag/Relationship-Tuples} */ relationshipTuples: IRelationshipTuplesApi; /** * API for managing roles. * @see {@link https://api.permit.io/v2/redoc#tag/Roles} */ roles: IRolesApi; /** * API for managing tenants. * @see {@link https://api.permit.io/v2/redoc#tag/Tenants} */ tenants: ITenantsApi; /** * API for managing users. * @see {@link https://api.permit.io/v2/redoc#tag/Users} */ users: IUsersApi; /** * Ensure that the API Key has the necessary permissions to successfully call the API endpoint. * Note that this check is not foolproof, and the API may still throw 401. * @param requiredAccessLevel The required API Key Access level for the endpoint. * @throws PermitContextError If the currently set API key access level does not match the required access level. */ ensureAccessLevel(requiredAccessLevel: ApiKeyLevel): Promise; /** * Ensure that the API context matches the required endpoint context. * @param requiredContext The required API context level for the endpoint. * @throws PermitContextError If the currently set API context level does not match the required context level. */ ensureContext(requiredContext: ApiContextLevel): Promise; } export declare class ApiClient extends DeprecatedApiClient implements IPermitApi { /** * API for managing condition set rules. * @see {@link https://api.permit.io/v2/redoc#tag/Condition-Set-Rules} */ readonly conditionSetRules: IConditionSetRulesApi; /** * API for managing condition sets. * @see {@link https://api.permit.io/v2/redoc#tag/Condition-Sets} */ readonly conditionSets: IConditionSetsApi; /** * API for managing projects. * @see {@link https://api.permit.io/v2/redoc#tag/Projects} */ readonly projects: IProjectsApi; /** * API for managing environments. * @see {@link https://api.permit.io/v2/redoc#tag/Environments} */ readonly environments: IEnvironmentsApi; /** * API for managing resource action groups. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Action-Groups} */ readonly actionGroups: IResourceActionGroupsApi; /** * API for managing resource actions. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Actions} */ readonly resourceActions: IResourceActionsApi; /** * API for managing resource attributes. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Attributes} */ readonly resourceAttributes: IResourceAttributesApi; /** * API for managing resource roles. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Roles} */ readonly resourceRoles: IResourceRolesApi; /** * API for managing resource relations. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Relations} */ readonly resourceRelations: IResourceRelationsApi; /** * API for managing resource instances. * @see {@link https://api.permit.io/v2/redoc#tag/Resource-Instances} */ readonly resourceInstances: IResourceInstancesApi; /** * API for managing resources. * @see {@link https://api.permit.io/v2/redoc#tag/Resources} */ readonly resources: IResourcesApi; /** * API for managing role assignments. * @see {@link https://api.permit.io/v2/redoc#tag/Role-Assignments} */ readonly roleAssignments: IRoleAssignmentsApi; /** * API for managing relationship tuples. * @see {@link https://api.permit.io/v2/redoc#tag/Relationship-Tuples} */ readonly relationshipTuples: IRelationshipTuplesApi; /** * API for managing roles. * @see {@link https://api.permit.io/v2/redoc#tag/Roles} */ readonly roles: IRolesApi; /** * API for managing tenants. * @see {@link https://api.permit.io/v2/redoc#tag/Tenants} */ readonly tenants: ITenantsApi; /** * API for managing users. * @see {@link https://api.permit.io/v2/redoc#tag/Users} */ readonly users: IUsersApi; /** * Constructs a new instance of the ApiClient class with the specified configuration and logger. * * @param config - The configuration for the Permit API client. * @param logger - The logger instance. */ constructor(config: IPermitConfig, logger: Logger); }