/** * Apimatic APILib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { array, lazy, optional, Schema, string, typedExpandoObject, unknown, } from '../schema.js'; import { AuthScope, authScopeSchema } from './authScope.js'; /** This Structure encapsulates all details of API authentication. */ export interface Authentication { /** Auth Id */ id: string; /** Auth Type */ authType: string; /** Scope */ scopes: AuthScope[]; /** Auth Params */ parameters: string[]; /** Auth Scopes */ authScopes: string[]; /** Auth Grant Types */ authGrantTypes: string[]; /** Paramater Formats */ paramFormats?: unknown; additionalProperties?: Record; } export const authenticationSchema: Schema = lazy(() => typedExpandoObject( { id: ['id', string()], authType: ['authType', string()], scopes: ['scopes', array(authScopeSchema)], parameters: ['parameters', array(string())], authScopes: ['authScopes', array(string())], authGrantTypes: ['authGrantTypes', array(string())], paramFormats: ['paramFormats', optional(unknown())], }, 'additionalProperties', optional(unknown()) ) );