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

import { lazy, number, object, optional, Schema, string } from '../schema';
import {
  DeliveryAddressUpdateReferences2,
  deliveryAddressUpdateReferences2Schema,
} from './deliveryAddressUpdateReferences2';
import { ErrorStatus, errorStatusSchema } from './errorStatus';

export interface DeliveryAddressUpdateResponse {
  /** Request ID to which was passed on the API request. */
  requestId?: string;
  /** Service reference number for tracking. */
  serviceReference?: number;
  deliveryAddressUpdateReferences?: DeliveryAddressUpdateReferences2;
  error?: ErrorStatus;
}

export const deliveryAddressUpdateResponseSchema: Schema<DeliveryAddressUpdateResponse> = object(
  {
    requestId: ['RequestId', optional(string())],
    serviceReference: ['ServiceReference', optional(number())],
    deliveryAddressUpdateReferences: [
      'DeliveryAddressUpdateReferences',
      optional(lazy(() => deliveryAddressUpdateReferences2Schema)),
    ],
    error: ['Error', optional(lazy(() => errorStatusSchema))],
  }
);
