amazon-seller-mcp
Version:
Model Context Protocol (MCP) client for Amazon Selling Partner API
238 lines (237 loc) • 6.39 kB
TypeScript
/**
* Reports API client for Amazon Selling Partner API
*/
import { BaseApiClient } from './base-client.js';
import { AuthConfig } from '../types/auth.js';
/**
* Report processing status
*/
export type ReportProcessingStatus = 'CANCELLED' | 'DONE' | 'FATAL' | 'IN_PROGRESS' | 'IN_QUEUE';
/**
* Report type
*/
export type ReportType = 'GET_FLAT_FILE_OPEN_LISTINGS_DATA' | 'GET_MERCHANT_LISTINGS_ALL_DATA' | 'GET_MERCHANT_LISTINGS_DATA' | 'GET_MERCHANT_LISTINGS_INACTIVE_DATA' | 'GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT' | 'GET_MERCHANT_LISTINGS_DATA_LITE' | 'GET_MERCHANT_LISTINGS_DATA_LITER' | 'GET_MERCHANT_CANCELLED_LISTINGS_DATA' | 'GET_MERCHANT_LISTINGS_DEFECT_DATA' | 'GET_PAN_EU_OFFER_STATUS' | 'GET_FLAT_FILE_ORDERS_DATA' | 'GET_ORDERS_DATA' | 'GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE' | 'GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE' | 'GET_XML_ALL_ORDERS_DATA_BY_LAST_UPDATE' | 'GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE' | 'GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA' | 'GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA' | 'GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA' | 'GET_AFN_INVENTORY_DATA' | 'GET_AFN_INVENTORY_DATA_BY_COUNTRY' | 'GET_FBA_FULFILLMENT_CURRENT_INVENTORY_DATA' | 'GET_FBA_FULFILLMENT_MONTHLY_INVENTORY_DATA' | 'GET_FBA_FULFILLMENT_INVENTORY_RECEIPTS_DATA' | 'GET_RESERVED_INVENTORY_DATA' | 'GET_FBA_FULFILLMENT_INVENTORY_SUMMARY_DATA' | 'GET_FBA_FULFILLMENT_INVENTORY_ADJUSTMENTS_DATA' | 'GET_FBA_FULFILLMENT_INVENTORY_HEALTH_DATA' | 'GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA' | 'GET_FBA_MYI_ALL_INVENTORY_DATA' | 'GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT' | 'GET_SELLER_FEEDBACK_DATA' | 'GET_V1_SELLER_PERFORMANCE_REPORT' | 'GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE' | 'GET_V2_SETTLEMENT_REPORT_DATA_XML' | 'GET_AMAZON_FULFILLED_SHIPMENTS_DATA' | 'GET_FBA_INVENTORY_PLANNING_DATA' | 'GET_SALES_AND_TRAFFIC_REPORT';
/**
* Report
*/
export interface Report {
/**
* Report ID
*/
reportId: string;
/**
* Report type
*/
reportType: ReportType;
/**
* Processing status
*/
processingStatus: ReportProcessingStatus;
/**
* Marketplace IDs
*/
marketplaceIds?: string[];
/**
* Created time
*/
createdTime: string;
/**
* Processing start time
*/
processingStartTime?: string;
/**
* Processing end time
*/
processingEndTime?: string;
/**
* Report document ID
*/
reportDocumentId?: string;
/**
* Data start time
*/
dataStartTime?: string;
/**
* Data end time
*/
dataEndTime?: string;
}
/**
* Report document
*/
export interface ReportDocument {
/**
* Report document ID
*/
reportDocumentId: string;
/**
* URL to download the report
*/
url: string;
/**
* Compression algorithm
*/
compressionAlgorithm?: 'GZIP';
}
/**
* Parameters for creating a report
*/
export interface CreateReportParams {
/**
* Report type
*/
reportType: ReportType;
/**
* Marketplace IDs
*/
marketplaceIds: string[];
/**
* Data start time
*/
dataStartTime?: string;
/**
* Data end time
*/
dataEndTime?: string;
/**
* Report options
*/
reportOptions?: Record<string, string>;
}
/**
* Parameters for getting a report
*/
export interface GetReportParams {
/**
* Report ID
*/
reportId: string;
}
/**
* Parameters for getting a report document
*/
export interface GetReportDocumentParams {
/**
* Report document ID
*/
reportDocumentId: string;
}
/**
* Parameters for getting reports
*/
export interface GetReportsParams {
/**
* Report types
*/
reportTypes?: ReportType[];
/**
* Processing statuses
*/
processingStatuses?: ReportProcessingStatus[];
/**
* Marketplace IDs
*/
marketplaceIds?: string[];
/**
* Page size
*/
pageSize?: number;
/**
* Created since
*/
createdSince?: string;
/**
* Created until
*/
createdUntil?: string;
/**
* Next token for pagination
*/
nextToken?: string;
}
/**
* Create report result
*/
export interface CreateReportResult {
/**
* Report ID
*/
reportId: string;
}
/**
* Get reports result
*/
export interface GetReportsResult {
/**
* Reports
*/
reports: Report[];
/**
* Next token for pagination
*/
nextToken?: string;
}
/**
* Reports API client for Amazon Selling Partner API
*/
export declare class ReportsClient extends BaseApiClient {
/**
* API version
*/
private readonly apiVersion;
/**
* Create a new ReportsClient instance
*
* @param authConfig Authentication configuration
*/
constructor(authConfig: AuthConfig);
/**
* Create a report
*
* @param params Parameters for creating a report
* @returns Promise resolving to the create report result
*/
createReport(params: CreateReportParams): Promise<CreateReportResult>;
/**
* Get a report
*
* @param params Parameters for getting a report
* @returns Promise resolving to the report
*/
getReport(params: GetReportParams): Promise<Report>;
/**
* Get a report document
*
* @param params Parameters for getting a report document
* @returns Promise resolving to the report document
*/
getReportDocument(params: GetReportDocumentParams): Promise<ReportDocument>;
/**
* Get reports
*
* @param params Parameters for getting reports
* @returns Promise resolving to the get reports result
*/
getReports(params?: GetReportsParams): Promise<GetReportsResult>;
/**
* Cancel a report
*
* @param params Parameters for canceling a report
* @returns Promise resolving to void
*/
cancelReport(params: GetReportParams): Promise<void>;
/**
* Download a report document
*
* @param reportDocumentId Report document ID
* @returns Promise resolving to the report content
*/
downloadReportDocument(reportDocumentId: string): Promise<string>;
/**
* Validate create report parameters
*
* @param params Parameters to validate
* @throws Error if validation fails
*/
private validateCreateReportParams;
}