/**
 * An array of up to 20 strings containing specific event names. The list will be
 * filtered to include only events with a matching event property. You may pass
 * either type or types, but not both.
 */
export interface GetEventsParameters {
  created?: string;

  ending_before?: string;

  starting_after?: string;

  limit?: number;

  type?: string;

  types?: string;
}

export interface Metadata {
  [key: string]: any;
}

export interface Event_data {
  id: string;

  created: string;

  currency: string;

  customer: string;

  amount: number;

  amount_refunded: number;

  application: string;

  captured: any;

  live: any;

  order: string;

  refunded: any;

  source: string;

  state: string;

  has_more?: any;

  total_count?: number;

  metadata?: Metadata;
}

export interface Request {
  id: string;

  idempotency_key: string;
}

export interface Event {
  id: string;

  created: string;

  data: Event_data;

  live: any;

  pending_webhooks: number;

  request?: Request;

  type: string;
}

/**
 * OK. A dictionary with a data property that contains an array of up to limit
 * events, starting after event starting_after. Each entry in the array is a
 * separate event object. If no more events are available, the resulting array will
 * be empty. This request should never return an error.
 */
export type GetEvents_response200 = Array<Event>;

/**
 * Bad request.
 */
export type GetEvents_response400 = any;

/**
 * Authorization information is missing or invalid
 */
export type GetEvents_response401 = any;

export interface GetEventsHeaders_response401 {
  WWW_Authenticate?: any;
}

/**
 * Unexpected error.
 */
export type GetEvents_response5XX = any;

/**
 * Event ID
 */
export interface GetEventsIdParameters {
  id: string;
}

/**
 * OK. Returns an event object if a valid identifier was provided. All events share
 * a common structure. The only property that will differ is the data property. The
 * data dictionary's values will be the same as retrieving the same object directly
 * from the API. For example, a charge.created event will have the same information
 * as retrieving the relevant charge would.
 */
export type GetEventsId_response200 = Array<Event>;

/**
 * Bad request. Event ID must be string.
 */
export type GetEventsId_response400 = any;

/**
 * Authorization information is missing or invalid
 */
export type GetEventsId_response401 = any;

export interface GetEventsIdHeaders_response401 {
  WWW_Authenticate?: any;
}

/**
 * An event with the specified ID was not found
 */
export type GetEventsId_response404 = any;

/**
 * Unexpected error.
 */
export type GetEventsId_response5XX = any;
