/**
 * Paypal Server SDKLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import { lazy, object, optional, Schema } from '../schema';
import {
  AuthorizationStatus,
  authorizationStatusSchema,
} from './authorizationStatus';
import {
  AuthorizationStatusDetails,
  authorizationStatusDetailsSchema,
} from './authorizationStatusDetails';

/** The status fields and status details for an authorized payment. */
export interface AuthorizationStatusWithDetails {
  /** The status for the authorized payment. */
  status?: AuthorizationStatus;
  /** The details of the authorized payment status. */
  statusDetails?: AuthorizationStatusDetails;
}

export const authorizationStatusWithDetailsSchema: Schema<AuthorizationStatusWithDetails> = object(
  {
    status: ['status', optional(authorizationStatusSchema)],
    statusDetails: [
      'status_details',
      optional(lazy(() => authorizationStatusDetailsSchema)),
    ],
  }
);
