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

import { array, lazy, object, optional, Schema, string } from '../schema';
import { DataRetrieve, dataRetrieveSchema } from './dataRetrieve';
import {
  GetChargeSessionRetrieveResponse200JsonStatusEnum,
  getChargeSessionRetrieveResponse200JsonStatusEnumSchema,
} from './getChargeSessionRetrieveResponse200JsonStatusEnum';

export interface GetChargeSessionRetrieveResponse200Json {
  /** Mandatory UUID (according to RFC 4122 standards) for requests and responses. This will be played back in the response from the request. */
  requestId: string;
  status: GetChargeSessionRetrieveResponse200JsonStatusEnum;
  data?: DataRetrieve[];
}

export const getChargeSessionRetrieveResponse200JsonSchema: Schema<GetChargeSessionRetrieveResponse200Json> = object(
  {
    requestId: ['requestId', string()],
    status: ['status', getChargeSessionRetrieveResponse200JsonStatusEnumSchema],
    data: ['data', optional(array(lazy(() => dataRetrieveSchema)))],
  }
);
