/**
 * Account and Transaction API SpecificationLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import { boolean, lazy, object, optional, Schema } from '../schema';
import { Amount, amountSchema } from './amount';
import {
  CreditLineTypeEnum,
  creditLineTypeEnumSchema,
} from './creditLineTypeEnum';

export interface CreditLine {
  /** Indicates whether or not the credit line is included in the balance of the account. Usage: If not present, credit line is not included in the balance amount of the account. */
  included: boolean;
  /** Amount of money of the cash balance. */
  amount?: Amount;
  /** Limit type, in a coded form. */
  type?: CreditLineTypeEnum;
}

export const creditLineSchema: Schema<CreditLine> = object({
  included: ['Included', boolean()],
  amount: ['Amount', optional(lazy(() => amountSchema))],
  type: ['Type', optional(creditLineTypeEnumSchema)],
});
