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

import { lazy, object, Schema } from '../schema';
import {
  AccountAccessConsentResponseModel,
  accountAccessConsentResponseModelSchema,
} from './accountAccessConsentResponseModel';
import { Links, linksSchema } from './links';
import { Meta, metaSchema } from './meta';
import { Risk, riskSchema } from './risk';

export interface AccountAccessConsentResponse {
  data: AccountAccessConsentResponseModel;
  /** The Risk section is sent by the initiating party to the API Provider. It is used to specify additional details for risk scoring. */
  risk: Risk;
  /** Links relevant to the payload */
  links: Links;
  meta: Meta;
}

export const accountAccessConsentResponseSchema: Schema<AccountAccessConsentResponse> = object(
  {
    data: ['Data', lazy(() => accountAccessConsentResponseModelSchema)],
    risk: ['Risk', lazy(() => riskSchema)],
    links: ['Links', lazy(() => linksSchema)],
    meta: ['Meta', lazy(() => metaSchema)],
  }
);
