/**
 * 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.js';
import {
  AutoRenewCardResponseDataItems,
  autoRenewCardResponseDataItemsSchema,
} from './autoRenewCardResponseDataItems.js';

export interface AutoRenewCardResponse {
  /**
   * Main reference number for tracking.
   * Example: 123455
   */
  mainReference?: number;
  /** API */
  requestId?: string;
  /** Indicates overall status of the request. Allowed values: SUCCES, FAILED, PARTIAL_SUCCESS */
  status?: string;
  /** List of Auto Renew reference entity. The fields of this entity are described below. */
  data?: AutoRenewCardResponseDataItems[];
}

export const autoRenewCardResponseSchema: Schema<AutoRenewCardResponse> = lazy(
  () =>
    object({
      mainReference: ['MainReference', optional(number())],
      requestId: ['RequestId', optional(string())],
      status: ['Status', optional(string())],
      data: ['Data', optional(array(autoRenewCardResponseDataItemsSchema))],
    })
);
