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

import { lazy, nullable, object, optional, Schema, string } from '../schema';
import { ErrorStatus, errorStatusSchema } from './errorStatus';

export interface UpdateBundleResponse {
  /** Request Id of the API call */
  requestId?: string | null;
  requestActionStatus?: ErrorStatus;
  dayTimeRestrictionStatus?: ErrorStatus;
  locationRestrictionStatus?: ErrorStatus;
  productRestrictionStatus?: ErrorStatus;
  usageRestrictionStatus?: ErrorStatus;
  error?: ErrorStatus;
}

export const updateBundleResponseSchema: Schema<UpdateBundleResponse> = object({
  requestId: ['RequestId', optional(nullable(string()))],
  requestActionStatus: [
    'RequestActionStatus',
    optional(lazy(() => errorStatusSchema)),
  ],
  dayTimeRestrictionStatus: [
    'DayTimeRestrictionStatus',
    optional(lazy(() => errorStatusSchema)),
  ],
  locationRestrictionStatus: [
    'LocationRestrictionStatus',
    optional(lazy(() => errorStatusSchema)),
  ],
  productRestrictionStatus: [
    'ProductRestrictionStatus',
    optional(lazy(() => errorStatusSchema)),
  ],
  usageRestrictionStatus: [
    'UsageRestrictionStatus',
    optional(lazy(() => errorStatusSchema)),
  ],
  error: ['Error', optional(lazy(() => errorStatusSchema))],
});
