/* tslint:disable */ /* eslint-disable */ /** * authentik * Making authentication simple. * * The version of the OpenAPI document: 2026.8.0-rc7 * Contact: hello@goauthentik.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime'; import type { PolicyEngineMode } from './PolicyEngineMode'; import { PolicyEngineModeFromJSON, PolicyEngineModeFromJSONTyped, PolicyEngineModeToJSON, PolicyEngineModeToJSONTyped, } from './PolicyEngineMode'; import type { RelatedTarget } from './RelatedTarget'; import { RelatedTargetFromJSON, RelatedTargetFromJSONTyped, RelatedTargetToJSON, RelatedTargetToJSONTyped, } from './RelatedTarget'; import type { RequestRule } from './RequestRule'; import { RequestRuleFromJSON, RequestRuleFromJSONTyped, RequestRuleToJSON, RequestRuleToJSONTyped, } from './RequestRule'; /** * Mixin to validate that a valid enterprise license * exists before allowing to save the object * @export * @interface RequestRuleBinding */ export interface RequestRuleBinding { /** * * @type {string} * @memberof RequestRuleBinding */ uuid?: string; /** * * @type {string} * @memberof RequestRuleBinding */ readonly pbmUuid: string; /** * * @type {PolicyEngineMode} * @memberof RequestRuleBinding */ policyEngineMode?: PolicyEngineMode; /** * * @type {string} * @memberof RequestRuleBinding */ rule: string; /** * * @type {RequestRule} * @memberof RequestRuleBinding */ readonly ruleObj: RequestRule; /** * * @type {string} * @memberof RequestRuleBinding */ target: string; /** * * @type {Array} * @memberof RequestRuleBinding */ readonly related: Array; /** * * @type {Array} * @memberof RequestRuleBinding */ readonly relatedObj: Array; /** * How long a request against this binding stays pending before it automatically lapses if not approved or denied. * @type {string} * @memberof RequestRuleBinding */ expiryPending?: string; /** * The maximum duration a grant approved against this binding can last. * @type {string} * @memberof RequestRuleBinding */ expiryGrantedMax?: string; } /** * Check if a given object implements the RequestRuleBinding interface. */ export function instanceOfRequestRuleBinding(value: object): value is RequestRuleBinding { if (!('pbmUuid' in value) || value['pbmUuid'] === undefined) return false; if (!('rule' in value) || value['rule'] === undefined) return false; if (!('ruleObj' in value) || value['ruleObj'] === undefined) return false; if (!('target' in value) || value['target'] === undefined) return false; if (!('related' in value) || value['related'] === undefined) return false; if (!('relatedObj' in value) || value['relatedObj'] === undefined) return false; return true; } export function RequestRuleBindingFromJSON(json: any): RequestRuleBinding { return RequestRuleBindingFromJSONTyped(json, false); } export function RequestRuleBindingFromJSONTyped(json: any, ignoreDiscriminator: boolean): RequestRuleBinding { if (json == null) { return json; } return { 'uuid': json['uuid'] == null ? undefined : json['uuid'], 'pbmUuid': json['pbm_uuid'], 'policyEngineMode': json['policy_engine_mode'] == null ? undefined : PolicyEngineModeFromJSON(json['policy_engine_mode']), 'rule': json['rule'], 'ruleObj': RequestRuleFromJSON(json['rule_obj']), 'target': json['target'], 'related': json['related'], 'relatedObj': ((json['related_obj'] as Array).map(RelatedTargetFromJSON)), 'expiryPending': json['expiry_pending'] == null ? undefined : json['expiry_pending'], 'expiryGrantedMax': json['expiry_granted_max'] == null ? undefined : json['expiry_granted_max'], }; } export function RequestRuleBindingToJSON(json: any): RequestRuleBinding { return RequestRuleBindingToJSONTyped(json, false); } export function RequestRuleBindingToJSONTyped(value?: Omit | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'uuid': value['uuid'], 'policy_engine_mode': PolicyEngineModeToJSON(value['policyEngineMode']), 'rule': value['rule'], 'target': value['target'], 'expiry_pending': value['expiryPending'], 'expiry_granted_max': value['expiryGrantedMax'], }; }