/**
 * Shell Card Management APIsLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import {
  array,
  lazy,
  number,
  object,
  optional,
  Schema,
  string,
} from '../schema';
import {
  CardGroupResponseCardGroupsItems,
  cardGroupResponseCardGroupsItemsSchema,
} from './cardGroupResponseCardGroupsItems';
import { ErrorStatus, errorStatusSchema } from './errorStatus';

export interface CardGroupResponse {
  cardGroups?: CardGroupResponseCardGroupsItems[];
  /** current page */
  currentPage?: number;
  /** number of records in current response */
  rowCount?: number;
  /** Total pages available */
  totalPages?: number;
  error?: ErrorStatus;
  /** API Request id */
  requestId?: string;
}

export const cardGroupResponseSchema: Schema<CardGroupResponse> = object({
  cardGroups: [
    'CardGroups',
    optional(array(lazy(() => cardGroupResponseCardGroupsItemsSchema))),
  ],
  currentPage: ['CurrentPage', optional(number())],
  rowCount: ['RowCount', optional(number())],
  totalPages: ['TotalPages', optional(number())],
  error: ['Error', optional(lazy(() => errorStatusSchema))],
  requestId: ['RequestId', optional(string())],
});
