@vendasta/billing 8.1.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/_generated/host.service.mjs +25 -0
- package/esm2020/lib/_generated/index.mjs +2 -0
- package/esm2020/lib/_internal/bank-reconciliation.api.service.mjs +46 -0
- package/esm2020/lib/_internal/billing.api.service.mjs +216 -0
- package/esm2020/lib/_internal/bundle.api.service.mjs +50 -0
- package/esm2020/lib/_internal/contract-document.api.service.mjs +45 -0
- package/esm2020/lib/_internal/contract.api.service.mjs +55 -0
- package/esm2020/lib/_internal/credit.api.service.mjs +45 -0
- package/esm2020/lib/_internal/discount.api.service.mjs +53 -0
- package/esm2020/lib/_internal/enums/applied-discount.enum.mjs +14 -0
- package/esm2020/lib/_internal/enums/card.enum.mjs +17 -0
- package/esm2020/lib/_internal/enums/contract.enum.mjs +14 -0
- package/esm2020/lib/_internal/enums/currency.enum.mjs +35 -0
- package/esm2020/lib/_internal/enums/frequency.enum.mjs +14 -0
- package/esm2020/lib/_internal/enums/index.mjs +31 -0
- package/esm2020/lib/_internal/enums/invoice.enum.mjs +18 -0
- package/esm2020/lib/_internal/enums/merchant-report.enum.mjs +13 -0
- package/{esm2015/lib/_internal/enums/merchant.enum.js → esm2020/lib/_internal/enums/merchant.enum.mjs} +1 -1
- package/esm2020/lib/_internal/enums/month.enum.mjs +23 -0
- package/esm2020/lib/_internal/enums/payment-card.enum.mjs +24 -0
- package/esm2020/lib/_internal/enums/payment-processor.enum.mjs +13 -0
- package/{esm2015/lib/_internal/enums/payment.enum.js → esm2020/lib/_internal/enums/payment.enum.mjs} +1 -1
- package/esm2020/lib/_internal/enums/payout.enum.mjs +22 -0
- package/esm2020/lib/_internal/enums/pricing-plan.enum.mjs +22 -0
- package/{esm2015/lib/_internal/enums/product-summary.enum.js → esm2020/lib/_internal/enums/product-summary.enum.mjs} +1 -1
- package/esm2020/lib/_internal/enums/product.enum.mjs +17 -0
- package/esm2020/lib/_internal/enums/purchase.enum.mjs +27 -0
- package/esm2020/lib/_internal/enums/recurring-invoice.enum.mjs +29 -0
- package/esm2020/lib/_internal/enums/refund.enum.mjs +25 -0
- package/esm2020/lib/_internal/enums/sales-credit-note.enum.mjs +14 -0
- package/{esm2015/lib/_internal/enums/sales-invoice.enum.js → esm2020/lib/_internal/enums/sales-invoice.enum.mjs} +1 -1
- package/esm2020/lib/_internal/enums/sort-direction.enum.mjs +12 -0
- package/{esm2015/lib/_internal/enums/subscribe-validation.enum.js → esm2020/lib/_internal/enums/subscribe-validation.enum.mjs} +1 -1
- package/esm2020/lib/_internal/enums/subscription.enum.mjs +12 -0
- package/esm2020/lib/_internal/index.mjs +33 -0
- package/esm2020/lib/_internal/interfaces/api.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/applied-bundle.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/applied-discount.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/applied-tax-rate.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/balance.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/billable-item.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/bundle.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/card.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/commitment.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/common.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/contract-document.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/contract.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/credit.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/currency.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/customer-summary.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/date-range.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/discount.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/external-account.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/field-mask.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/frequency.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/index.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/invoice-template.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/invoice.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/merchant-report.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/merchant.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/metered-component.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/month.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/payment-card.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/payment-processor.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/payment.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/payout.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/pricing-plan-product.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/pricing-plan.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/product-pricing.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/product-summary.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/product.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/purchase.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/recurring-invoice.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/refund.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/retail-customer-configuration.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/sales-credit-note.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/sales-invoice.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/sort-direction.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/subscribe-validation.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/subscription.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/tax-rate.interface.mjs +2 -0
- package/esm2020/lib/_internal/invoice-template.api.service.mjs +85 -0
- package/esm2020/lib/_internal/invoice.api.service.mjs +116 -0
- package/esm2020/lib/_internal/merchant.api.service.mjs +159 -0
- package/esm2020/lib/_internal/objects/api.mjs +841 -0
- package/esm2020/lib/_internal/objects/applied-bundle.mjs +77 -0
- package/esm2020/lib/_internal/objects/applied-discount.mjs +46 -0
- package/esm2020/lib/_internal/objects/applied-tax-rate.mjs +39 -0
- package/esm2020/lib/_internal/objects/balance.mjs +45 -0
- package/esm2020/lib/_internal/objects/billable-item.mjs +562 -0
- package/esm2020/lib/_internal/objects/bundle.mjs +390 -0
- package/esm2020/lib/_internal/objects/card.mjs +7 -0
- package/esm2020/lib/_internal/objects/commitment.mjs +36 -0
- package/esm2020/lib/_internal/objects/common.mjs +56 -0
- package/esm2020/lib/_internal/objects/contract-document.mjs +141 -0
- package/esm2020/lib/_internal/objects/contract.mjs +474 -0
- package/esm2020/lib/_internal/objects/credit.mjs +114 -0
- package/esm2020/lib/_internal/objects/currency.mjs +7 -0
- package/esm2020/lib/_internal/objects/customer-summary.mjs +104 -0
- package/esm2020/lib/_internal/objects/date-range.mjs +36 -0
- package/esm2020/lib/_internal/objects/discount.mjs +299 -0
- package/esm2020/lib/_internal/objects/external-account.mjs +160 -0
- package/esm2020/lib/_internal/objects/field-mask.mjs +27 -0
- package/esm2020/lib/_internal/objects/frequency.mjs +7 -0
- package/esm2020/lib/_internal/objects/index.mjs +46 -0
- package/esm2020/lib/_internal/objects/invoice-template.mjs +707 -0
- package/esm2020/lib/_internal/objects/invoice.mjs +1117 -0
- package/esm2020/lib/_internal/objects/merchant-report.mjs +108 -0
- package/esm2020/lib/_internal/objects/merchant.mjs +991 -0
- package/esm2020/lib/_internal/objects/metered-component.mjs +97 -0
- package/esm2020/lib/_internal/objects/month.mjs +7 -0
- package/esm2020/lib/_internal/objects/payment-card.mjs +211 -0
- package/esm2020/lib/_internal/objects/payment-processor.mjs +7 -0
- package/esm2020/lib/_internal/objects/payment.mjs +1219 -0
- package/esm2020/lib/_internal/objects/payout.mjs +258 -0
- package/esm2020/lib/_internal/objects/pricing-plan-product.mjs +565 -0
- package/esm2020/lib/_internal/objects/pricing-plan.mjs +290 -0
- package/esm2020/lib/_internal/objects/product-pricing.mjs +107 -0
- package/esm2020/lib/_internal/objects/product-summary.mjs +538 -0
- package/esm2020/lib/_internal/objects/product.mjs +302 -0
- package/esm2020/lib/_internal/objects/purchase.mjs +524 -0
- package/esm2020/lib/_internal/objects/recurring-invoice.mjs +327 -0
- package/esm2020/lib/_internal/objects/refund.mjs +181 -0
- package/esm2020/lib/_internal/objects/retail-customer-configuration.mjs +159 -0
- package/esm2020/lib/_internal/objects/sales-credit-note.mjs +211 -0
- package/esm2020/lib/_internal/objects/sales-invoice.mjs +300 -0
- package/esm2020/lib/_internal/objects/sort-direction.mjs +7 -0
- package/esm2020/lib/_internal/objects/subscribe-validation.mjs +31 -0
- package/esm2020/lib/_internal/objects/subscription.mjs +555 -0
- package/esm2020/lib/_internal/objects/tax-rate.mjs +342 -0
- package/esm2020/lib/_internal/payment-method.api.service.mjs +49 -0
- package/esm2020/lib/_internal/payment.api.service.mjs +102 -0
- package/esm2020/lib/_internal/pricing.api.service.mjs +76 -0
- package/esm2020/lib/_internal/product-summary.api.service.mjs +46 -0
- package/esm2020/lib/_internal/product.api.service.mjs +47 -0
- package/esm2020/lib/_internal/purchase.api.service.mjs +59 -0
- package/esm2020/lib/_internal/recurring-invoice.api.service.mjs +60 -0
- package/esm2020/lib/_internal/refund.api.service.mjs +45 -0
- package/esm2020/lib/_internal/retail-customer-configuration.api.service.mjs +45 -0
- package/esm2020/lib/_internal/sales-credit-note.api.service.mjs +45 -0
- package/esm2020/lib/_internal/sales-invoice.api.service.mjs +50 -0
- package/esm2020/lib/_internal/tax.api.service.mjs +63 -0
- package/esm2020/lib/_internal/vendor.api.service.mjs +46 -0
- package/esm2020/lib/index.mjs +3 -0
- package/esm2020/public_api.mjs +2 -0
- package/esm2020/vendasta-billing.mjs +5 -0
- package/fesm2015/{vendasta-billing.js → vendasta-billing.mjs} +1091 -4973
- package/fesm2015/vendasta-billing.mjs.map +1 -0
- package/fesm2020/vendasta-billing.mjs +14371 -0
- package/fesm2020/vendasta-billing.mjs.map +1 -0
- package/lib/_generated/host.service.d.ts +5 -9
- package/lib/_internal/bank-reconciliation.api.service.d.ts +4 -0
- package/lib/_internal/billing.api.service.d.ts +4 -0
- package/lib/_internal/bundle.api.service.d.ts +4 -0
- package/lib/_internal/contract-document.api.service.d.ts +4 -0
- package/lib/_internal/contract.api.service.d.ts +4 -0
- package/lib/_internal/credit.api.service.d.ts +4 -0
- package/lib/_internal/discount.api.service.d.ts +4 -0
- package/lib/_internal/enums/index.d.ts +2 -0
- package/lib/_internal/enums/payment-processor.enum.d.ts +5 -0
- package/lib/_internal/enums/recurring-invoice.enum.d.ts +19 -0
- package/lib/_internal/index.d.ts +1 -0
- package/lib/_internal/interfaces/index.d.ts +2 -0
- package/lib/_internal/interfaces/payment-processor.interface.d.ts +1 -0
- package/lib/_internal/interfaces/recurring-invoice.interface.d.ts +55 -0
- package/lib/_internal/invoice-template.api.service.d.ts +4 -0
- package/lib/_internal/invoice.api.service.d.ts +4 -0
- package/lib/_internal/merchant.api.service.d.ts +4 -0
- package/lib/_internal/objects/index.d.ts +2 -0
- package/lib/_internal/objects/payment-processor.d.ts +1 -0
- package/lib/_internal/objects/recurring-invoice.d.ts +84 -0
- package/lib/_internal/payment-method.api.service.d.ts +4 -0
- package/lib/_internal/payment.api.service.d.ts +4 -0
- package/lib/_internal/pricing.api.service.d.ts +4 -0
- package/lib/_internal/product-summary.api.service.d.ts +4 -0
- package/lib/_internal/product.api.service.d.ts +4 -0
- package/lib/_internal/purchase.api.service.d.ts +4 -0
- package/lib/_internal/recurring-invoice.api.service.d.ts +20 -0
- package/lib/_internal/refund.api.service.d.ts +4 -0
- package/lib/_internal/retail-customer-configuration.api.service.d.ts +4 -0
- package/lib/_internal/sales-credit-note.api.service.d.ts +4 -0
- package/lib/_internal/sales-invoice.api.service.d.ts +4 -0
- package/lib/_internal/tax.api.service.d.ts +4 -0
- package/lib/_internal/vendor.api.service.d.ts +4 -0
- package/lib/index.d.ts +2 -36
- package/package.json +26 -15
- package/src/README.md +1 -0
- package/vendasta-billing.d.ts +1 -0
- package/bundles/vendasta-billing.umd.js +0 -19170
- package/bundles/vendasta-billing.umd.js.map +0 -1
- package/bundles/vendasta-billing.umd.min.js +0 -16
- package/bundles/vendasta-billing.umd.min.js.map +0 -1
- package/esm2015/lib/_generated/host.service.js +0 -65
- package/esm2015/lib/_generated/index.js +0 -2
- package/esm2015/lib/_internal/bank-reconciliation.api.service.js +0 -47
- package/esm2015/lib/_internal/billing.api.service.js +0 -217
- package/esm2015/lib/_internal/bundle.api.service.js +0 -51
- package/esm2015/lib/_internal/contract-document.api.service.js +0 -46
- package/esm2015/lib/_internal/contract.api.service.js +0 -56
- package/esm2015/lib/_internal/credit.api.service.js +0 -46
- package/esm2015/lib/_internal/discount.api.service.js +0 -54
- package/esm2015/lib/_internal/enums/applied-discount.enum.js +0 -14
- package/esm2015/lib/_internal/enums/card.enum.js +0 -17
- package/esm2015/lib/_internal/enums/contract.enum.js +0 -14
- package/esm2015/lib/_internal/enums/currency.enum.js +0 -35
- package/esm2015/lib/_internal/enums/frequency.enum.js +0 -14
- package/esm2015/lib/_internal/enums/index.js +0 -29
- package/esm2015/lib/_internal/enums/invoice.enum.js +0 -18
- package/esm2015/lib/_internal/enums/merchant-report.enum.js +0 -13
- package/esm2015/lib/_internal/enums/month.enum.js +0 -23
- package/esm2015/lib/_internal/enums/payment-card.enum.js +0 -24
- package/esm2015/lib/_internal/enums/payout.enum.js +0 -22
- package/esm2015/lib/_internal/enums/pricing-plan.enum.js +0 -22
- package/esm2015/lib/_internal/enums/product.enum.js +0 -17
- package/esm2015/lib/_internal/enums/purchase.enum.js +0 -27
- package/esm2015/lib/_internal/enums/refund.enum.js +0 -25
- package/esm2015/lib/_internal/enums/sales-credit-note.enum.js +0 -14
- package/esm2015/lib/_internal/enums/sort-direction.enum.js +0 -12
- package/esm2015/lib/_internal/enums/subscription.enum.js +0 -12
- package/esm2015/lib/_internal/index.js +0 -32
- package/esm2015/lib/_internal/interfaces/api.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/applied-bundle.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/applied-discount.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/applied-tax-rate.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/balance.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/billable-item.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/bundle.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/card.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/commitment.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/common.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/contract-document.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/contract.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/credit.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/currency.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/customer-summary.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/date-range.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/discount.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/external-account.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/field-mask.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/frequency.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/index.js +0 -2
- package/esm2015/lib/_internal/interfaces/invoice-template.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/invoice.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/merchant-report.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/merchant.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/metered-component.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/month.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/payment-card.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/payment.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/payout.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/pricing-plan-product.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/pricing-plan.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/product-pricing.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/product-summary.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/product.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/purchase.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/refund.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/retail-customer-configuration.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/sales-credit-note.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/sales-invoice.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/sort-direction.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/subscribe-validation.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/subscription.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/tax-rate.interface.js +0 -2
- package/esm2015/lib/_internal/invoice-template.api.service.js +0 -86
- package/esm2015/lib/_internal/invoice.api.service.js +0 -117
- package/esm2015/lib/_internal/merchant.api.service.js +0 -160
- package/esm2015/lib/_internal/objects/api.js +0 -841
- package/esm2015/lib/_internal/objects/applied-bundle.js +0 -77
- package/esm2015/lib/_internal/objects/applied-discount.js +0 -46
- package/esm2015/lib/_internal/objects/applied-tax-rate.js +0 -39
- package/esm2015/lib/_internal/objects/balance.js +0 -45
- package/esm2015/lib/_internal/objects/billable-item.js +0 -562
- package/esm2015/lib/_internal/objects/bundle.js +0 -390
- package/esm2015/lib/_internal/objects/card.js +0 -7
- package/esm2015/lib/_internal/objects/commitment.js +0 -36
- package/esm2015/lib/_internal/objects/common.js +0 -56
- package/esm2015/lib/_internal/objects/contract-document.js +0 -141
- package/esm2015/lib/_internal/objects/contract.js +0 -474
- package/esm2015/lib/_internal/objects/credit.js +0 -114
- package/esm2015/lib/_internal/objects/currency.js +0 -7
- package/esm2015/lib/_internal/objects/customer-summary.js +0 -104
- package/esm2015/lib/_internal/objects/date-range.js +0 -36
- package/esm2015/lib/_internal/objects/discount.js +0 -299
- package/esm2015/lib/_internal/objects/external-account.js +0 -160
- package/esm2015/lib/_internal/objects/field-mask.js +0 -27
- package/esm2015/lib/_internal/objects/frequency.js +0 -7
- package/esm2015/lib/_internal/objects/index.js +0 -45
- package/esm2015/lib/_internal/objects/invoice-template.js +0 -707
- package/esm2015/lib/_internal/objects/invoice.js +0 -1117
- package/esm2015/lib/_internal/objects/merchant-report.js +0 -108
- package/esm2015/lib/_internal/objects/merchant.js +0 -991
- package/esm2015/lib/_internal/objects/metered-component.js +0 -97
- package/esm2015/lib/_internal/objects/month.js +0 -7
- package/esm2015/lib/_internal/objects/payment-card.js +0 -211
- package/esm2015/lib/_internal/objects/payment.js +0 -1219
- package/esm2015/lib/_internal/objects/payout.js +0 -258
- package/esm2015/lib/_internal/objects/pricing-plan-product.js +0 -565
- package/esm2015/lib/_internal/objects/pricing-plan.js +0 -290
- package/esm2015/lib/_internal/objects/product-pricing.js +0 -107
- package/esm2015/lib/_internal/objects/product-summary.js +0 -538
- package/esm2015/lib/_internal/objects/product.js +0 -302
- package/esm2015/lib/_internal/objects/purchase.js +0 -524
- package/esm2015/lib/_internal/objects/refund.js +0 -181
- package/esm2015/lib/_internal/objects/retail-customer-configuration.js +0 -159
- package/esm2015/lib/_internal/objects/sales-credit-note.js +0 -211
- package/esm2015/lib/_internal/objects/sales-invoice.js +0 -300
- package/esm2015/lib/_internal/objects/sort-direction.js +0 -7
- package/esm2015/lib/_internal/objects/subscribe-validation.js +0 -31
- package/esm2015/lib/_internal/objects/subscription.js +0 -555
- package/esm2015/lib/_internal/objects/tax-rate.js +0 -342
- package/esm2015/lib/_internal/payment-method.api.service.js +0 -50
- package/esm2015/lib/_internal/payment.api.service.js +0 -103
- package/esm2015/lib/_internal/pricing.api.service.js +0 -77
- package/esm2015/lib/_internal/product-summary.api.service.js +0 -47
- package/esm2015/lib/_internal/product.api.service.js +0 -48
- package/esm2015/lib/_internal/purchase.api.service.js +0 -60
- package/esm2015/lib/_internal/refund.api.service.js +0 -46
- package/esm2015/lib/_internal/retail-customer-configuration.api.service.js +0 -46
- package/esm2015/lib/_internal/sales-credit-note.api.service.js +0 -46
- package/esm2015/lib/_internal/sales-invoice.api.service.js +0 -51
- package/esm2015/lib/_internal/tax.api.service.js +0 -64
- package/esm2015/lib/_internal/vendor.api.service.js +0 -47
- package/esm2015/lib/applied_bundle/applied_bundle.js +0 -12
- package/esm2015/lib/applied_bundle/index.js +0 -2
- package/esm2015/lib/applied_discount/applied_discount.js +0 -48
- package/esm2015/lib/applied_discount/index.js +0 -2
- package/esm2015/lib/bank_account/bank-account.service.js +0 -38
- package/esm2015/lib/bank_account/bank_account.js +0 -13
- package/esm2015/lib/bank_account/index.js +0 -3
- package/esm2015/lib/bank_reconciliation/bank-reconciliation.service.js +0 -54
- package/esm2015/lib/bank_reconciliation/index.js +0 -3
- package/esm2015/lib/bank_reconciliation/payout.js +0 -53
- package/esm2015/lib/billable-item/billable-item.js +0 -40
- package/esm2015/lib/billable-item/billable-item.service.js +0 -31
- package/esm2015/lib/billable-item/index.js +0 -2
- package/esm2015/lib/billing-host.service.js +0 -41
- package/esm2015/lib/billing.service.js +0 -376
- package/esm2015/lib/bundle/bundle.js +0 -37
- package/esm2015/lib/bundle/bundle.service.js +0 -56
- package/esm2015/lib/bundle/index.js +0 -2
- package/esm2015/lib/contract/contract.js +0 -21
- package/esm2015/lib/contract/contract.service.js +0 -39
- package/esm2015/lib/contract/dimension.js +0 -21
- package/esm2015/lib/contract/index.js +0 -5
- package/esm2015/lib/contract/mutations.js +0 -11
- package/esm2015/lib/contract-document/contract-document.js +0 -9
- package/esm2015/lib/contract-document/contract-document.service.js +0 -68
- package/esm2015/lib/contract-document/index.js +0 -2
- package/esm2015/lib/contract-document/list-contract-document.js +0 -2
- package/esm2015/lib/core/index.js +0 -3
- package/esm2015/lib/core/paged-response.js +0 -8
- package/esm2015/lib/core/sort-direction.js +0 -6
- package/esm2015/lib/credit/credit.js +0 -8
- package/esm2015/lib/credit/credit.service.js +0 -33
- package/esm2015/lib/credit/index.js +0 -2
- package/esm2015/lib/customer_summary/customer-summary.js +0 -15
- package/esm2015/lib/discount/discount.js +0 -18
- package/esm2015/lib/discount/discount.service.js +0 -73
- package/esm2015/lib/discount/discount_type.js +0 -32
- package/esm2015/lib/discount/index.js +0 -3
- package/esm2015/lib/discount/list-discount.js +0 -2
- package/esm2015/lib/http-shared/error-handlers.js +0 -20
- package/esm2015/lib/index.js +0 -37
- package/esm2015/lib/invoice/index.js +0 -3
- package/esm2015/lib/invoice/invoice.js +0 -198
- package/esm2015/lib/invoice/invoice.service.js +0 -254
- package/esm2015/lib/invoice/list-invoice.js +0 -2
- package/esm2015/lib/invoice-template/index.js +0 -2
- package/esm2015/lib/invoice-template/invoice-template.js +0 -38
- package/esm2015/lib/invoice-template/invoice-template.service.js +0 -78
- package/esm2015/lib/merchant/balance.js +0 -2
- package/esm2015/lib/merchant/index.js +0 -5
- package/esm2015/lib/merchant/merchant.interface.js +0 -2
- package/esm2015/lib/merchant/merchant.js +0 -20
- package/esm2015/lib/merchant/merchant.service.js +0 -212
- package/esm2015/lib/merchant/payout-summary.js +0 -32
- package/esm2015/lib/merchant/retail-configuration.js +0 -57
- package/esm2015/lib/merchant-report/index.js +0 -2
- package/esm2015/lib/merchant-report/merchant-report-status.js +0 -2
- package/esm2015/lib/merchant-report/merchant-report.interfaces.js +0 -2
- package/esm2015/lib/merchant-report/merchant-report.js +0 -2
- package/esm2015/lib/merchant-report/merchant-report.service.js +0 -38
- package/esm2015/lib/payment/dispute.js +0 -92
- package/esm2015/lib/payment/index.js +0 -10
- package/esm2015/lib/payment/payment-allocation-type.js +0 -18
- package/esm2015/lib/payment/payment-source.js +0 -18
- package/esm2015/lib/payment/payment-status.js +0 -17
- package/esm2015/lib/payment/payment.js +0 -292
- package/esm2015/lib/payment/payment.service.js +0 -138
- package/esm2015/lib/payment/retail-payment.js +0 -70
- package/esm2015/lib/payment/retail-status.js +0 -50
- package/esm2015/lib/payment-card/index.js +0 -3
- package/esm2015/lib/payment-card/payment-card.js +0 -60
- package/esm2015/lib/payment-card/payment-card.service.js +0 -45
- package/esm2015/lib/payment-method/index.js +0 -2
- package/esm2015/lib/payment-method/payment-method.service.js +0 -43
- package/esm2015/lib/pricing/billing-strategy.js +0 -39
- package/esm2015/lib/pricing/commitment.js +0 -7
- package/esm2015/lib/pricing/currency.js +0 -86
- package/esm2015/lib/pricing/frequency.js +0 -42
- package/esm2015/lib/pricing/index.js +0 -12
- package/esm2015/lib/pricing/list-pricing-plan-product-filter.js +0 -2
- package/esm2015/lib/pricing/pricing-plan-product.js +0 -53
- package/esm2015/lib/pricing/pricing-plan.js +0 -14
- package/esm2015/lib/pricing/pricing-plan.service.js +0 -287
- package/esm2015/lib/pricing/product-pricing-rules.js +0 -10
- package/esm2015/lib/pricing/product-pricing-type.js +0 -31
- package/esm2015/lib/pricing/product-pricing.js +0 -44
- package/esm2015/lib/pricing/wholesale-pricing.service.js +0 -61
- package/esm2015/lib/product/index.js +0 -3
- package/esm2015/lib/product/list-products.js +0 -30
- package/esm2015/lib/product/product.js +0 -10
- package/esm2015/lib/product-summary/index.js +0 -3
- package/esm2015/lib/product-summary/product-summary.service.js +0 -42
- package/esm2015/lib/product-summary/subscription-retention.js +0 -19
- package/esm2015/lib/purchase/index.js +0 -4
- package/esm2015/lib/purchase/list-purchases.js +0 -17
- package/esm2015/lib/purchase/purchase.js +0 -79
- package/esm2015/lib/purchase/purchase.service.js +0 -31
- package/esm2015/lib/purchase/purchase_status.js +0 -26
- package/esm2015/lib/refund/index.js +0 -3
- package/esm2015/lib/refund/refund.js +0 -81
- package/esm2015/lib/refund/refund.service.js +0 -53
- package/esm2015/lib/retail-customer-configuration/index.js +0 -3
- package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.js +0 -44
- package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.service.js +0 -39
- package/esm2015/lib/revenue/index.js +0 -2
- package/esm2015/lib/revenue/revenue.interfaces.js +0 -2
- package/esm2015/lib/revenue/revenue.service.js +0 -34
- package/esm2015/lib/sales-credit-note/index.js +0 -3
- package/esm2015/lib/sales-credit-note/sales-credit-note.js +0 -53
- package/esm2015/lib/sales-credit-note/sales-credit-note.service.js +0 -72
- package/esm2015/lib/sales-invoice/index.js +0 -3
- package/esm2015/lib/sales-invoice/sales-invoice.js +0 -87
- package/esm2015/lib/sales-invoice/sales-invoice.service.js +0 -77
- package/esm2015/lib/sku.js +0 -4
- package/esm2015/lib/stripe-file/file.js +0 -2
- package/esm2015/lib/stripe-file/index.js +0 -3
- package/esm2015/lib/stripe-file/purpose.js +0 -13
- package/esm2015/lib/stripe-file/stripe-file.service.js +0 -35
- package/esm2015/lib/subscription/can-create-subscriptions-item.js +0 -2
- package/esm2015/lib/subscription/index.js +0 -2
- package/esm2015/lib/tax-rate/index.js +0 -2
- package/esm2015/lib/tax-rate/tax-rate.js +0 -13
- package/esm2015/lib/tax-rate/tax-rate.service.js +0 -86
- package/esm2015/public_api.js +0 -2
- package/esm2015/vendasta-billing.js +0 -5
- package/fesm2015/vendasta-billing.js.map +0 -1
- package/lib/applied_bundle/applied_bundle.d.ts +0 -15
- package/lib/applied_bundle/index.d.ts +0 -1
- package/lib/applied_discount/applied_discount.d.ts +0 -26
- package/lib/applied_discount/index.d.ts +0 -1
- package/lib/bank_account/bank-account.service.d.ts +0 -11
- package/lib/bank_account/bank_account.d.ts +0 -12
- package/lib/bank_account/index.d.ts +0 -3
- package/lib/bank_reconciliation/bank-reconciliation.service.d.ts +0 -10
- package/lib/bank_reconciliation/index.d.ts +0 -2
- package/lib/bank_reconciliation/payout.d.ts +0 -37
- package/lib/billable-item/billable-item.d.ts +0 -40
- package/lib/billable-item/billable-item.service.d.ts +0 -10
- package/lib/billable-item/index.d.ts +0 -2
- package/lib/billing-host.service.d.ts +0 -11
- package/lib/billing.service.d.ts +0 -88
- package/lib/bundle/bundle.d.ts +0 -26
- package/lib/bundle/bundle.service.d.ts +0 -14
- package/lib/bundle/index.d.ts +0 -2
- package/lib/contract/contract.d.ts +0 -20
- package/lib/contract/contract.service.d.ts +0 -23
- package/lib/contract/dimension.d.ts +0 -11
- package/lib/contract/index.d.ts +0 -5
- package/lib/contract/mutations.d.ts +0 -11
- package/lib/contract-document/contract-document.d.ts +0 -8
- package/lib/contract-document/contract-document.service.d.ts +0 -17
- package/lib/contract-document/index.d.ts +0 -3
- package/lib/contract-document/list-contract-document.d.ts +0 -3
- package/lib/core/index.d.ts +0 -2
- package/lib/core/paged-response.d.ts +0 -6
- package/lib/core/sort-direction.d.ts +0 -4
- package/lib/credit/credit.d.ts +0 -7
- package/lib/credit/credit.service.d.ts +0 -9
- package/lib/credit/index.d.ts +0 -2
- package/lib/customer_summary/customer-summary.d.ts +0 -9
- package/lib/discount/discount.d.ts +0 -17
- package/lib/discount/discount.service.d.ts +0 -15
- package/lib/discount/discount_type.d.ts +0 -9
- package/lib/discount/index.d.ts +0 -4
- package/lib/discount/list-discount.d.ts +0 -5
- package/lib/http-shared/error-handlers.d.ts +0 -4
- package/lib/invoice/index.d.ts +0 -3
- package/lib/invoice/invoice.d.ts +0 -86
- package/lib/invoice/invoice.service.d.ts +0 -40
- package/lib/invoice/list-invoice.d.ts +0 -15
- package/lib/invoice-template/index.d.ts +0 -2
- package/lib/invoice-template/invoice-template.d.ts +0 -35
- package/lib/invoice-template/invoice-template.service.d.ts +0 -14
- package/lib/merchant/balance.d.ts +0 -5
- package/lib/merchant/index.d.ts +0 -7
- package/lib/merchant/merchant.d.ts +0 -19
- package/lib/merchant/merchant.interface.d.ts +0 -3
- package/lib/merchant/merchant.service.d.ts +0 -59
- package/lib/merchant/payout-summary.d.ts +0 -19
- package/lib/merchant/retail-configuration.d.ts +0 -24
- package/lib/merchant-report/index.d.ts +0 -4
- package/lib/merchant-report/merchant-report-status.d.ts +0 -1
- package/lib/merchant-report/merchant-report.d.ts +0 -8
- package/lib/merchant-report/merchant-report.interfaces.d.ts +0 -5
- package/lib/merchant-report/merchant-report.service.d.ts +0 -12
- package/lib/payment/dispute.d.ts +0 -61
- package/lib/payment/index.d.ts +0 -9
- package/lib/payment/payment-allocation-type.d.ts +0 -7
- package/lib/payment/payment-source.d.ts +0 -7
- package/lib/payment/payment-status.d.ts +0 -7
- package/lib/payment/payment.d.ts +0 -42
- package/lib/payment/payment.service.d.ts +0 -24
- package/lib/payment/retail-payment.d.ts +0 -33
- package/lib/payment/retail-status.d.ts +0 -24
- package/lib/payment-card/index.d.ts +0 -2
- package/lib/payment-card/payment-card.d.ts +0 -41
- package/lib/payment-card/payment-card.service.d.ts +0 -13
- package/lib/payment-method/index.d.ts +0 -1
- package/lib/payment-method/payment-method.service.d.ts +0 -10
- package/lib/pricing/billing-strategy.d.ts +0 -11
- package/lib/pricing/commitment.d.ts +0 -6
- package/lib/pricing/currency.d.ts +0 -29
- package/lib/pricing/frequency.d.ts +0 -10
- package/lib/pricing/index.d.ts +0 -11
- package/lib/pricing/list-pricing-plan-product-filter.d.ts +0 -4
- package/lib/pricing/pricing-plan-product.d.ts +0 -34
- package/lib/pricing/pricing-plan.d.ts +0 -13
- package/lib/pricing/pricing-plan.service.d.ts +0 -17
- package/lib/pricing/product-pricing-rules.d.ts +0 -7
- package/lib/pricing/product-pricing-type.d.ts +0 -9
- package/lib/pricing/product-pricing.d.ts +0 -37
- package/lib/pricing/wholesale-pricing.service.d.ts +0 -19
- package/lib/product/index.d.ts +0 -2
- package/lib/product/list-products.d.ts +0 -16
- package/lib/product/product.d.ts +0 -9
- package/lib/product-summary/index.d.ts +0 -2
- package/lib/product-summary/product-summary.service.d.ts +0 -10
- package/lib/product-summary/subscription-retention.d.ts +0 -20
- package/lib/purchase/index.d.ts +0 -4
- package/lib/purchase/list-purchases.d.ts +0 -27
- package/lib/purchase/purchase.d.ts +0 -56
- package/lib/purchase/purchase.service.d.ts +0 -10
- package/lib/purchase/purchase_status.d.ts +0 -10
- package/lib/refund/index.d.ts +0 -2
- package/lib/refund/refund.d.ts +0 -36
- package/lib/refund/refund.service.d.ts +0 -11
- package/lib/retail-customer-configuration/index.d.ts +0 -2
- package/lib/retail-customer-configuration/retail-customer-configuration.d.ts +0 -20
- package/lib/retail-customer-configuration/retail-customer-configuration.service.d.ts +0 -9
- package/lib/revenue/index.d.ts +0 -2
- package/lib/revenue/revenue.interfaces.d.ts +0 -3
- package/lib/revenue/revenue.service.d.ts +0 -11
- package/lib/sales-credit-note/index.d.ts +0 -2
- package/lib/sales-credit-note/sales-credit-note.d.ts +0 -30
- package/lib/sales-credit-note/sales-credit-note.service.d.ts +0 -16
- package/lib/sales-invoice/index.d.ts +0 -2
- package/lib/sales-invoice/sales-invoice.d.ts +0 -42
- package/lib/sales-invoice/sales-invoice.service.d.ts +0 -16
- package/lib/sku.d.ts +0 -3
- package/lib/stripe-file/file.d.ts +0 -6
- package/lib/stripe-file/index.d.ts +0 -3
- package/lib/stripe-file/purpose.d.ts +0 -11
- package/lib/stripe-file/stripe-file.service.d.ts +0 -12
- package/lib/subscription/can-create-subscriptions-item.d.ts +0 -6
- package/lib/subscription/index.d.ts +0 -1
- package/lib/tax-rate/index.d.ts +0 -2
- package/lib/tax-rate/tax-rate.d.ts +0 -20
- package/lib/tax-rate/tax-rate.service.d.ts +0 -15
- package/vendasta-billing.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vendasta-billing.js","sources":["../../../billing_sdk/src/lib/applied_bundle/applied_bundle.ts","../../../billing_sdk/src/lib/_internal/enums/frequency.enum.ts","../../../billing_sdk/src/lib/_internal/enums/applied-discount.enum.ts","../../../billing_sdk/src/lib/_internal/enums/currency.enum.ts","../../../billing_sdk/src/lib/_internal/enums/contract.enum.ts","../../../billing_sdk/src/lib/_internal/enums/product-summary.enum.ts","../../../billing_sdk/src/lib/_internal/enums/invoice.enum.ts","../../../billing_sdk/src/lib/_internal/enums/payout.enum.ts","../../../billing_sdk/src/lib/_internal/enums/sort-direction.enum.ts","../../../billing_sdk/src/lib/_internal/enums/merchant.enum.ts","../../../billing_sdk/src/lib/_internal/enums/month.enum.ts","../../../billing_sdk/src/lib/_internal/enums/merchant-report.enum.ts","../../../billing_sdk/src/lib/_internal/enums/card.enum.ts","../../../billing_sdk/src/lib/_internal/enums/payment.enum.ts","../../../billing_sdk/src/lib/_internal/enums/payment-card.enum.ts","../../../billing_sdk/src/lib/_internal/enums/pricing-plan.enum.ts","../../../billing_sdk/src/lib/_internal/enums/product.enum.ts","../../../billing_sdk/src/lib/_internal/enums/purchase.enum.ts","../../../billing_sdk/src/lib/_internal/enums/refund.enum.ts","../../../billing_sdk/src/lib/_internal/enums/sales-credit-note.enum.ts","../../../billing_sdk/src/lib/_internal/enums/sales-invoice.enum.ts","../../../billing_sdk/src/lib/_internal/enums/subscribe-validation.enum.ts","../../../billing_sdk/src/lib/_internal/enums/subscription.enum.ts","../../../billing_sdk/src/lib/_internal/enums/index.ts","../../../billing_sdk/src/lib/_internal/objects/common.ts","../../../billing_sdk/src/lib/_internal/objects/billable-item.ts","../../../billing_sdk/src/lib/_internal/objects/applied-discount.ts","../../../billing_sdk/src/lib/_internal/objects/bundle.ts","../../../billing_sdk/src/lib/_internal/objects/commitment.ts","../../../billing_sdk/src/lib/_internal/objects/contract.ts","../../../billing_sdk/src/lib/_internal/objects/customer-summary.ts","../../../billing_sdk/src/lib/_internal/objects/external-account.ts","../../../billing_sdk/src/lib/_internal/objects/product-summary.ts","../../../billing_sdk/src/lib/_internal/objects/discount.ts","../../../billing_sdk/src/lib/_internal/objects/applied-tax-rate.ts","../../../billing_sdk/src/lib/_internal/objects/field-mask.ts","../../../billing_sdk/src/lib/_internal/objects/tax-rate.ts","../../../billing_sdk/src/lib/_internal/objects/applied-bundle.ts","../../../billing_sdk/src/lib/_internal/objects/invoice.ts","../../../billing_sdk/src/lib/_internal/objects/balance.ts","../../../billing_sdk/src/lib/_internal/objects/date-range.ts","../../../billing_sdk/src/lib/_internal/objects/payout.ts","../../../billing_sdk/src/lib/_internal/objects/merchant.ts","../../../billing_sdk/src/lib/_internal/objects/merchant-report.ts","../../../billing_sdk/src/lib/_internal/objects/metered-component.ts","../../../billing_sdk/src/lib/_internal/objects/payment.ts","../../../billing_sdk/src/lib/_internal/objects/payment-card.ts","../../../billing_sdk/src/lib/_internal/objects/pricing-plan.ts","../../../billing_sdk/src/lib/_internal/objects/pricing-plan-product.ts","../../../billing_sdk/src/lib/_internal/objects/product.ts","../../../billing_sdk/src/lib/_internal/objects/product-pricing.ts","../../../billing_sdk/src/lib/_internal/objects/purchase.ts","../../../billing_sdk/src/lib/_internal/objects/refund.ts","../../../billing_sdk/src/lib/_internal/objects/sales-credit-note.ts","../../../billing_sdk/src/lib/_internal/objects/sales-invoice.ts","../../../billing_sdk/src/lib/_internal/objects/subscribe-validation.ts","../../../billing_sdk/src/lib/_internal/objects/subscription.ts","../../../billing_sdk/src/lib/_internal/objects/contract-document.ts","../../../billing_sdk/src/lib/_internal/objects/retail-customer-configuration.ts","../../../billing_sdk/src/lib/_internal/objects/credit.ts","../../../billing_sdk/src/lib/_internal/objects/invoice-template.ts","../../../billing_sdk/src/lib/_internal/objects/api.ts","../../../billing_sdk/src/lib/_internal/objects/index.ts","../../../billing_sdk/src/lib/_generated/host.service.ts","../../../billing_sdk/src/lib/_internal/bank-reconciliation.api.service.ts","../../../billing_sdk/src/lib/_internal/billing.api.service.ts","../../../billing_sdk/src/lib/_internal/bundle.api.service.ts","../../../billing_sdk/src/lib/_internal/contract-document.api.service.ts","../../../billing_sdk/src/lib/_internal/contract.api.service.ts","../../../billing_sdk/src/lib/_internal/credit.api.service.ts","../../../billing_sdk/src/lib/_internal/discount.api.service.ts","../../../billing_sdk/src/lib/_internal/invoice.api.service.ts","../../../billing_sdk/src/lib/_internal/invoice-template.api.service.ts","../../../billing_sdk/src/lib/_internal/merchant.api.service.ts","../../../billing_sdk/src/lib/_internal/payment-method.api.service.ts","../../../billing_sdk/src/lib/_internal/payment.api.service.ts","../../../billing_sdk/src/lib/_internal/pricing.api.service.ts","../../../billing_sdk/src/lib/_internal/product.api.service.ts","../../../billing_sdk/src/lib/_internal/product-summary.api.service.ts","../../../billing_sdk/src/lib/_internal/purchase.api.service.ts","../../../billing_sdk/src/lib/_internal/refund.api.service.ts","../../../billing_sdk/src/lib/_internal/retail-customer-configuration.api.service.ts","../../../billing_sdk/src/lib/_internal/sales-credit-note.api.service.ts","../../../billing_sdk/src/lib/_internal/sales-invoice.api.service.ts","../../../billing_sdk/src/lib/_internal/tax.api.service.ts","../../../billing_sdk/src/lib/_internal/vendor.api.service.ts","../../../billing_sdk/src/lib/_internal/index.ts","../../../billing_sdk/src/lib/applied_discount/applied_discount.ts","../../../billing_sdk/src/lib/bank_account/bank_account.ts","../../../billing_sdk/src/lib/bank_account/bank-account.service.ts","../../../billing_sdk/src/lib/pricing/billing-strategy.ts","../../../billing_sdk/src/lib/pricing/currency.ts","../../../billing_sdk/src/lib/pricing/frequency.ts","../../../billing_sdk/src/lib/pricing/product-pricing-rules.ts","../../../billing_sdk/src/lib/pricing/product-pricing-type.ts","../../../billing_sdk/src/lib/pricing/commitment.ts","../../../billing_sdk/src/lib/pricing/product-pricing.ts","../../../billing_sdk/src/lib/pricing/pricing-plan-product.ts","../../../billing_sdk/src/lib/pricing/wholesale-pricing.service.ts","../../../billing_sdk/src/lib/pricing/pricing-plan.ts","../../../billing_sdk/src/lib/pricing/pricing-plan.service.ts","../../../billing_sdk/src/lib/bank_reconciliation/payout.ts","../../../billing_sdk/src/lib/core/sort-direction.ts","../../../billing_sdk/src/lib/core/paged-response.ts","../../../billing_sdk/src/lib/bank_reconciliation/bank-reconciliation.service.ts","../../../billing_sdk/src/lib/billable-item/billable-item.ts","../../../billing_sdk/src/lib/billable-item/billable-item.service.ts","../../../billing_sdk/src/lib/billing-host.service.ts","../../../billing_sdk/src/lib/http-shared/error-handlers.ts","../../../billing_sdk/src/lib/revenue/revenue.service.ts","../../../billing_sdk/src/lib/merchant-report/merchant-report.service.ts","../../../billing_sdk/src/lib/purchase/purchase_status.ts","../../../billing_sdk/src/lib/purchase/purchase.ts","../../../billing_sdk/src/lib/customer_summary/customer-summary.ts","../../../billing_sdk/src/lib/contract/dimension.ts","../../../billing_sdk/src/lib/contract/contract.ts","../../../billing_sdk/src/lib/contract/contract.service.ts","../../../billing_sdk/src/lib/contract/mutations.ts","../../../billing_sdk/src/lib/product/product.ts","../../../billing_sdk/src/lib/product/list-products.ts","../../../billing_sdk/src/lib/billing.service.ts","../../../billing_sdk/src/lib/discount/discount_type.ts","../../../billing_sdk/src/lib/bundle/bundle.ts","../../../billing_sdk/src/lib/bundle/bundle.service.ts","../../../billing_sdk/src/lib/contract-document/contract-document.ts","../../../billing_sdk/src/lib/contract-document/contract-document.service.ts","../../../billing_sdk/src/lib/credit/credit.ts","../../../billing_sdk/src/lib/credit/credit.service.ts","../../../billing_sdk/src/lib/discount/discount.ts","../../../billing_sdk/src/lib/discount/discount.service.ts","../../../billing_sdk/src/lib/retail-customer-configuration/retail-customer-configuration.ts","../../../billing_sdk/src/lib/retail-customer-configuration/retail-customer-configuration.service.ts","../../../billing_sdk/src/lib/invoice/invoice.ts","../../../billing_sdk/src/lib/invoice/invoice.service.ts","../../../billing_sdk/src/lib/invoice-template/invoice-template.ts","../../../billing_sdk/src/lib/invoice-template/invoice-template.service.ts","../../../billing_sdk/src/lib/merchant/merchant.ts","../../../billing_sdk/src/lib/merchant/payout-summary.ts","../../../billing_sdk/src/lib/merchant/retail-configuration.ts","../../../billing_sdk/src/lib/merchant/merchant.service.ts","../../../billing_sdk/src/lib/payment/dispute.ts","../../../billing_sdk/src/lib/payment/payment-source.ts","../../../billing_sdk/src/lib/payment/payment-status.ts","../../../billing_sdk/src/lib/payment/payment-allocation-type.ts","../../../billing_sdk/src/lib/payment/payment.ts","../../../billing_sdk/src/lib/payment-card/payment-card.ts","../../../billing_sdk/src/lib/payment-card/payment-card.service.ts","../../../billing_sdk/src/lib/payment/retail-payment.ts","../../../billing_sdk/src/lib/payment/retail-status.ts","../../../billing_sdk/src/lib/payment/payment.service.ts","../../../billing_sdk/src/lib/payment-method/payment-method.service.ts","../../../billing_sdk/src/lib/product-summary/subscription-retention.ts","../../../billing_sdk/src/lib/product-summary/product-summary.service.ts","../../../billing_sdk/src/lib/purchase/list-purchases.ts","../../../billing_sdk/src/lib/purchase/purchase.service.ts","../../../billing_sdk/src/lib/refund/refund.ts","../../../billing_sdk/src/lib/refund/refund.service.ts","../../../billing_sdk/src/lib/sales-credit-note/sales-credit-note.ts","../../../billing_sdk/src/lib/sales-credit-note/sales-credit-note.service.ts","../../../billing_sdk/src/lib/sales-invoice/sales-invoice.ts","../../../billing_sdk/src/lib/sales-invoice/sales-invoice.service.ts","../../../billing_sdk/src/lib/sku.ts","../../../billing_sdk/src/lib/stripe-file/stripe-file.service.ts","../../../billing_sdk/src/lib/stripe-file/purpose.ts","../../../billing_sdk/src/lib/tax-rate/tax-rate.ts","../../../billing_sdk/src/lib/tax-rate/tax-rate.service.ts","../../../billing_sdk/src/vendasta-billing.ts"],"sourcesContent":["import {AppliedBundle as ApiAppliedBundle} from '../_internal';\n\nexport interface AppliedBundle {\n bundleId?: string;\n bundleInstanceId?: string;\n name?: string;\n bundleItems?: AppliedBundleItem[];\n hideBundleItems?: boolean;\n}\n\nexport interface AppliedBundleItem {\n productId?: string;\n discountType?: string;\n discountAmount?: number;\n quantity?: number;\n}\n\nexport function convertApiAppliedBundle(ab: ApiAppliedBundle): AppliedBundle {\n if (!ab) {\n return null\n }\n\n return {\n bundleId: ab.bundleId,\n bundleInstanceId: ab.bundleInstanceId,\n name: ab.name,\n hideBundleItems: ab.hideBundleItems || false,\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum Frequency {\n INVALID = 0,\n MONTHLY = 1,\n YEARLY = 2,\n ONE_TIME = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum DiscountType {\n DISCOUNT_TYPE_FIXED_AMOUNT = 0,\n DISCOUNT_TYPE_PERCENT_AMOUNT = 1,\n DISCOUNT_TYPE_FIXED_NUMBER_OF_UNITS = 2,\n DISCOUNT_TYPE_FIXED_AMOUNT_PER_UNIT = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum Currency {\n USD = 0,\n CAD = 1,\n EUR = 2,\n AUD = 3,\n GBP = 4,\n NZD = 5,\n BRL = 6,\n CHF = 7,\n CNY = 8,\n CZK = 9,\n INR = 10,\n JPY = 11,\n KHR = 12,\n KRW = 13,\n MXN = 14,\n NOK = 15,\n RUB = 16,\n SEK = 17,\n SGD = 18,\n TRY = 19,\n ZAR = 20,\n DZD = 21,\n AWG = 22,\n FJD = 23,\n KYD = 24,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ContractSubscriptionStatus {\n CONTRACT_SUBSCRIPTION_STATUS_UNSET = 0,\n CONTRACT_SUBSCRIPTION_STATUS_PENDING = 1,\n CONTRACT_SUBSCRIPTION_STATUS_SUCCEEDED = 2,\n CONTRACT_SUBSCRIPTION_STATUS_FAILED = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ProductSummaryBillingStrategy {\n CHARGE_AT_END_OF_BILLING_PERIOD = 0,\n CHARGE_AT_START_OF_BILLING_PERIOD = 1,\n CHARGE_INSTANTLY = 2,\n CHARGE_AT_END_OF_DAY = 3,\n}\n\nexport enum ProductSummaryDiscountDiscountType {\n FIXED_AMOUNT = 0,\n PERCENT_AMOUNT = 1,\n FIXED_NUMBER_OF_UNITS = 2,\n FIXED_AMOUNT_PER_UNIT = 3,\n}\n\nexport enum ProductSummaryProductType {\n BUNDLE = 0,\n FEE = 1,\n PRODUCT = 2,\n SUBSCRIPTION = 3,\n VENDASTA_PRODUCT = 4,\n}\n\nexport enum PricingRuleType {\n STANDARD = 0,\n STAIRSTEP = 1,\n TIERED = 2,\n CUSTOM = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ListInvoicesRequestFiltersDateFilterDateField {\n CREATED = 0,\n}\n\nexport enum InvoiceStatus {\n DRAFT = 0,\n DUE = 1,\n PAID = 2,\n VOID = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum PayoutStatus {\n PAYOUT_STATUS_NOT_SET = 0,\n PAYOUT_STATUS_PAID = 1,\n PAYOUT_STATUS_PENDING = 2,\n PAYOUT_STATUS_IN_TRANSIT = 3,\n PAYOUT_STATUS_CANCELED = 4,\n PAYOUT_STATUS_FAILED = 5,\n}\n\nexport enum PayoutType {\n PAYOUT_TYPE_NOT_SET = 0,\n PAYOUT_TYPE_BANK_ACCOUNT = 1,\n PAYOUT_TYPE_CARD = 2,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum SortDirection {\n SORT_DIRECTION_ASCENDING = 0,\n SORT_DIRECTION_DESCENDING = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum SearchMerchantsRequestSortBy {\n SEARCH_MERCHANTS_REQUEST_SORT_BY_MERCHANT_ID = 0,\n SEARCH_MERCHANTS_REQUEST_SORT_BY_COMPANY_NAME = 1,\n SEARCH_MERCHANTS_REQUEST_SORT_BY_CONTACT_NAME = 2,\n SEARCH_MERCHANTS_REQUEST_SORT_BY_EMAIL_ADDRESS = 3,\n SEARCH_MERCHANTS_REQUEST_SORT_BY_COUNTRY = 4,\n SEARCH_MERCHANTS_REQUEST_SORT_BY_STATE = 5,\n SEARCH_MERCHANTS_REQUEST_SORT_BY_CREATED = 6,\n SEARCH_MERCHANTS_REQUEST_SORT_BY_UPDATED = 7,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum Month {\n INVALID_MONTH = 0,\n JANUARY = 1,\n FEBRUARY = 2,\n MARCH = 3,\n APRIL = 4,\n MAY = 5,\n JUNE = 6,\n JULY = 7,\n AUGUST = 8,\n SEPTEMBER = 9,\n OCTOBER = 10,\n NOVEMBER = 11,\n DECEMBER = 12,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum MerchantReportStatus {\n FAILED = 0,\n PENDING = 1,\n COMPLETED = 2,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum CardType {\n CARD_TYPE_UNKNOWN = 0,\n CARD_TYPE_VISA = 1,\n CARD_TYPE_MASTERCARD = 2,\n CARD_TYPE_AMEX = 3,\n CARD_TYPE_DISCOVER = 4,\n CARD_TYPE_JCB = 5,\n CARD_TYPE_DINERS_CLUB = 6,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum DisputeStatus {\n DISPUTE_STATUS_UNSET = 0,\n DISPUTE_STATUS_WARNING_NEEDS_RESPONSE = 1,\n DISPUTE_STATUS_WARNING_UNDER_REVIEW = 2,\n DISPUTE_STATUS_WARNING_CLOSED = 3,\n DISPUTE_STATUS_NEEDS_RESPONSE = 4,\n DISPUTE_STATUS_UNDER_REVIEW = 5,\n DISPUTE_STATUS_CHARGE_REFUNDED = 6,\n DISPUTE_STATUS_WON = 7,\n DISPUTE_STATUS_LOST = 8,\n}\n\nexport enum PaymentAllocationType {\n PAYMENT_ALLOCATION_TYPE_UNSET = 0,\n PAYMENT_ALLOCATION_TYPE_PURCHASE = 1,\n PAYMENT_ALLOCATION_TYPE_INVOICE = 2,\n}\n\nexport enum PaymentSource {\n PAYMENT_SOURCE_NONE = 0,\n PAYMENT_SOURCE_STRIPE = 1,\n PAYMENT_SOURCE_VCASH = 2,\n}\n\nexport enum PaymentStatus {\n PAYMENT_STATUS_UNSET = 0,\n PAYMENT_STATUS_SUCCEEDED = 1,\n PAYMENT_STATUS_FAILED = 2,\n PAYMENT_STATUS_REFUNDED = 3,\n PAYMENT_STATUS_PARTIALLY_REFUNDED = 4,\n}\n\nexport enum RetailPaymentReferenceType {\n RETAIL_PAYMENT_REFERENCE_TYPE_UNSET = 0,\n RETAIL_PAYMENT_REFERENCE_TYPE_INVOICE = 1,\n RETAIL_PAYMENT_REFERENCE_TYPE_SALES_ORDER = 2,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum PaymentCardCARD_TYPE {\n UNKNOWN = 0,\n VISA = 1,\n MASTERCARD = 2,\n AMEX = 3,\n DISCOVER = 4,\n JCB = 5,\n DINERS_CLUB = 6,\n}\n\nexport enum PaymentCardFUNDING_TYPE {\n FUNDING_TYPE_UNKNOWN = 0,\n FUNDING_TYPE_CREDIT = 1,\n FUNDING_TYPE_DEBIT = 2,\n FUNDING_TYPE_PREPAID = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum BillingStrategy {\n BILLING_STRATEGY_NONE = 0,\n BILLING_STRATEGY_END_OF_PERIOD = 1,\n BILLING_STRATEGY_START_OF_PERIOD = 2,\n BILLING_STRATEGY_INSTANTLY = 3,\n BILLING_STRATEGY_END_OF_DAY = 4,\n}\n\nexport enum ProductPricingType {\n PRODUCT_PRICING_TYPE_INVALID = 0,\n PRODUCT_PRICING_TYPE_STANDARD = 1,\n PRODUCT_PRICING_TYPE_STAIRSTEP = 2,\n PRODUCT_PRICING_TYPE_TIERED = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ProductType {\n PRODUCT_TYPE_INVALID = 0,\n PRODUCT_TYPE_STANDARD_PRODUCT = 1,\n PRODUCT_TYPE_VENDASTA_PRODUCT = 2,\n PRODUCT_TYPE_SUBSCRIPTION = 3,\n PRODUCT_TYPE_FEE = 4,\n PRODUCT_TYPE_PRIVATE_PRODUCT = 5,\n PRODUCT_TYPE_PARTNER_SUPPORT_SALES = 6,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum CreditType {\n CREDIT_TYPE_UNSET = 0,\n CREDIT_TYPE_CREDIT_NOTE = 1,\n CREDIT_TYPE_PROMOTIONAL = 2,\n}\n\nexport enum PurchaseStatus {\n PURCHASE_STATUS_UNSET = 0,\n PURCHASE_STATUS_PENDING = 1,\n PURCHASE_STATUS_DUE = 2,\n PURCHASE_STATUS_SUCCESS = 3,\n PURCHASE_STATUS_DUNNING = 4,\n PURCHASE_STATUS_FAILED = 5,\n}\n\nexport enum ListPurchaseRequestState {\n LIST_PURCHASE_REQUEST_STATE_ALL = 0,\n LIST_PURCHASE_REQUEST_STATE_OVERDUE = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ReferenceType {\n PURCHASE = 0,\n PURCHASE_ITEM = 1,\n INVOICE = 2,\n}\n\nexport enum RefundReason {\n REQUESTED_BY_CUSTOMER = 0,\n DUPLICATE = 1,\n FRAUDULENT = 2,\n}\n\nexport enum RefundStatus {\n SUCCEEDED = 0,\n FAILED = 1,\n PENDING = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum SalesCreditNoteStatus {\n SALES_CREDIT_NOTE_STATUS_IN_PROGRESS = 0,\n SALES_CREDIT_NOTE_STATUS_READY_TO_POST = 1,\n SALES_CREDIT_NOTE_STATUS_COMPLETE = 2,\n SALES_CREDIT_NOTE_STATUS_DISCARDED = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum PaymentStatuses {\n PAYMENT_STATUSES_NOT_SET = 0,\n PAYMENT_STATUSES_UNPAID = 1,\n PAYMENT_STATUSES_PAID = 2,\n PAYMENT_STATUSES_PART_PAID = 3,\n PAYMENT_STATUSES_NOT_APPLICABLE = 4,\n}\n\nexport enum SalesInvoiceStatus {\n SALES_INVOICE_STATUS_IN_PROGRESS = 0,\n SALES_INVOICE_STATUS_READY_TO_POST = 1,\n SALES_INVOICE_STATUS_COMPLETE = 2,\n SALES_INVOICE_STATUS_DISCARDED = 3,\n}\n\nexport enum SalesInvoiceType {\n SALES_INVOICE_TYPE_UNSET = 0,\n SALES_INVOICE_TYPE_INVOICED = 1,\n SALES_INVOICE_TYPE_INSTANT = 2,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum SubscribeValidationStatus {\n SUBSCRIBE_VALIDATION_STATUS_UNSET = 0,\n SUBSCRIBE_VALIDATION_STATUS_CANNOT_INSTANT_BILL = 1,\n SUBSCRIBE_VALIDATION_STATUS_MISSING_MERCHANT_INFO = 2,\n SUBSCRIBE_VALIDATION_STATUS_MISSING_PAYMENT_INFO = 3,\n SUBSCRIBE_VALIDATION_STATUS_WILL_CAUSE_FUTURE_CHARGES = 4,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum RenewalState {\n RENEWAL_STATE_IMMEDIATE = 0,\n RENEWAL_STATE_DELAYED = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\nexport {\n Frequency,\n} from './frequency.enum';\nexport {\n DiscountType,\n} from './applied-discount.enum';\nexport {\n Currency,\n} from './currency.enum';\nexport {\n ContractSubscriptionStatus,\n} from './contract.enum';\nexport {\n ProductSummaryBillingStrategy,\n ProductSummaryDiscountDiscountType,\n ProductSummaryProductType,\n PricingRuleType,\n} from './product-summary.enum';\nexport {\n ListInvoicesRequestFiltersDateFilterDateField,\n InvoiceStatus,\n} from './invoice.enum';\nexport {\n PayoutStatus,\n PayoutType,\n} from './payout.enum';\nexport {\n SortDirection,\n} from './sort-direction.enum';\nexport {\n SearchMerchantsRequestSortBy,\n} from './merchant.enum';\nexport {\n Month,\n} from './month.enum';\nexport {\n MerchantReportStatus,\n} from './merchant-report.enum';\nexport {\n CardType,\n} from './card.enum';\nexport {\n DisputeStatus,\n PaymentAllocationType,\n PaymentSource,\n PaymentStatus,\n RetailPaymentReferenceType,\n} from './payment.enum';\nexport {\n PaymentCardCARD_TYPE,\n PaymentCardFUNDING_TYPE,\n} from './payment-card.enum';\nexport {\n BillingStrategy,\n ProductPricingType,\n} from './pricing-plan.enum';\nexport {\n ProductType,\n} from './product.enum';\nexport {\n CreditType,\n PurchaseStatus,\n ListPurchaseRequestState,\n} from './purchase.enum';\nexport {\n ReferenceType,\n RefundReason,\n RefundStatus,\n} from './refund.enum';\nexport {\n SalesCreditNoteStatus,\n} from './sales-credit-note.enum';\nexport {\n PaymentStatuses,\n SalesInvoiceStatus,\n SalesInvoiceType,\n} from './sales-invoice.enum';\nexport {\n SubscribeValidationStatus,\n} from './subscribe-validation.enum';\nexport {\n RenewalState,\n} from './subscription.enum';\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class PagedRequestOptions implements i.PagedRequestOptionsInterface {\n cursor: string;\n pageSize: number;\n\n static fromProto(proto: any): PagedRequestOptions {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.PagedRequestOptionsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n return toReturn;\n }\n}\n\nexport class PagedResponseMetadata implements i.PagedResponseMetadataInterface {\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): PagedResponseMetadata {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PagedResponseMetadataInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class BillItemRequest implements i.BillItemRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n billingStart: Date;\n proratedTo: Date;\n\n static fromProto(proto: any): BillItemRequest {\n let m = new BillItemRequest();\n m = Object.assign(m, proto);\n if (proto.billingStart) {m.billingStart = new Date(proto.billingStart);}\n if (proto.proratedTo) {m.proratedTo = new Date(proto.proratedTo);}\n return m;\n }\n\n constructor(kwargs?: i.BillItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.billingStart !== 'undefined' && this.billingStart !== null) {toReturn['billingStart'] = 'toApiJson' in this.billingStart ? (this.billingStart as any).toApiJson() : this.billingStart;}\n if (typeof this.proratedTo !== 'undefined' && this.proratedTo !== null) {toReturn['proratedTo'] = 'toApiJson' in this.proratedTo ? (this.proratedTo as any).toApiJson() : this.proratedTo;}\n return toReturn;\n }\n}\n\nexport class BillMultipleItemsRequest implements i.BillMultipleItemsRequestInterface {\n merchantId: string;\n items: Item[];\n\n static fromProto(proto: any): BillMultipleItemsRequest {\n let m = new BillMultipleItemsRequest();\n m = Object.assign(m, proto);\n if (proto.items) {m.items = proto.items.map(Item.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.BillMultipleItemsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n return toReturn;\n }\n}\n\nexport class BillMultipleItemsResponse implements i.BillMultipleItemsResponseInterface {\n id: string;\n\n static fromProto(proto: any): BillMultipleItemsResponse {\n let m = new BillMultipleItemsResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.BillMultipleItemsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class BillableItem implements i.BillableItemInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n expiry: Date;\n billingStart: Date;\n created: Date;\n updated: Date;\n frequency: e.Frequency;\n nextRenewal: Date;\n customerName: string;\n productName: string;\n customerAddress: BillableItemCustomerAddress;\n customUnitPrice: number;\n retailFrequency: e.Frequency;\n nextRetailRenewal: Date;\n retailUnitPrice: number;\n\n static fromProto(proto: any): BillableItem {\n let m = new BillableItem();\n m = Object.assign(m, proto);\n if (proto.expiry) {m.expiry = new Date(proto.expiry);}\n if (proto.billingStart) {m.billingStart = new Date(proto.billingStart);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.nextRenewal) {m.nextRenewal = new Date(proto.nextRenewal);}\n if (proto.customerAddress) {m.customerAddress = BillableItemCustomerAddress.fromProto(proto.customerAddress);}\n if (proto.customUnitPrice) {m.customUnitPrice = parseInt(proto.customUnitPrice, 10);}\n if (proto.retailFrequency) {m.retailFrequency = enumStringToValue<e.Frequency>(e.Frequency, proto.retailFrequency);}\n if (proto.nextRetailRenewal) {m.nextRetailRenewal = new Date(proto.nextRetailRenewal);}\n if (proto.retailUnitPrice) {m.retailUnitPrice = parseInt(proto.retailUnitPrice, 10);}\n return m;\n }\n\n constructor(kwargs?: i.BillableItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.expiry !== 'undefined' && this.expiry !== null) {toReturn['expiry'] = 'toApiJson' in this.expiry ? (this.expiry as any).toApiJson() : this.expiry;}\n if (typeof this.billingStart !== 'undefined' && this.billingStart !== null) {toReturn['billingStart'] = 'toApiJson' in this.billingStart ? (this.billingStart as any).toApiJson() : this.billingStart;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.nextRenewal !== 'undefined' && this.nextRenewal !== null) {toReturn['nextRenewal'] = 'toApiJson' in this.nextRenewal ? (this.nextRenewal as any).toApiJson() : this.nextRenewal;}\n if (typeof this.customerName !== 'undefined') {toReturn['customerName'] = this.customerName;}\n if (typeof this.productName !== 'undefined') {toReturn['productName'] = this.productName;}\n if (typeof this.customerAddress !== 'undefined' && this.customerAddress !== null) {toReturn['customerAddress'] = 'toApiJson' in this.customerAddress ? (this.customerAddress as any).toApiJson() : this.customerAddress;}\n if (typeof this.customUnitPrice !== 'undefined') {toReturn['customUnitPrice'] = this.customUnitPrice;}\n if (typeof this.retailFrequency !== 'undefined') {toReturn['retailFrequency'] = this.retailFrequency;}\n if (typeof this.nextRetailRenewal !== 'undefined' && this.nextRetailRenewal !== null) {toReturn['nextRetailRenewal'] = 'toApiJson' in this.nextRetailRenewal ? (this.nextRetailRenewal as any).toApiJson() : this.nextRetailRenewal;}\n if (typeof this.retailUnitPrice !== 'undefined') {toReturn['retailUnitPrice'] = this.retailUnitPrice;}\n return toReturn;\n }\n}\n\nexport class CanBillItemRequest implements i.CanBillItemRequestInterface {\n merchantId: string;\n sku: string;\n\n static fromProto(proto: any): CanBillItemRequest {\n let m = new CanBillItemRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CanBillItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class BillableItemCustomerAddress implements i.BillableItemCustomerAddressInterface {\n address: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n\n static fromProto(proto: any): BillableItemCustomerAddress {\n let m = new BillableItemCustomerAddress();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.BillableItemCustomerAddressInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.address !== 'undefined') {toReturn['address'] = this.address;}\n if (typeof this.city !== 'undefined') {toReturn['city'] = this.city;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.zip !== 'undefined') {toReturn['zip'] = this.zip;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n return toReturn;\n }\n}\n\nexport class DeleteBillableItemRequest implements i.DeleteBillableItemRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n\n static fromProto(proto: any): DeleteBillableItemRequest {\n let m = new DeleteBillableItemRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteBillableItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n return toReturn;\n }\n}\n\nexport class ExpireBillableItemRequest implements i.ExpireBillableItemRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n expiry: Date;\n\n static fromProto(proto: any): ExpireBillableItemRequest {\n let m = new ExpireBillableItemRequest();\n m = Object.assign(m, proto);\n if (proto.expiry) {m.expiry = new Date(proto.expiry);}\n return m;\n }\n\n constructor(kwargs?: i.ExpireBillableItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.expiry !== 'undefined' && this.expiry !== null) {toReturn['expiry'] = 'toApiJson' in this.expiry ? (this.expiry as any).toApiJson() : this.expiry;}\n return toReturn;\n }\n}\n\nexport class ListBillableItemsRequestFilters implements i.ListBillableItemsRequestFiltersInterface {\n skus: string[];\n merchantId: string;\n customerId: string;\n\n static fromProto(proto: any): ListBillableItemsRequestFilters {\n let m = new ListBillableItemsRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListBillableItemsRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n return toReturn;\n }\n}\n\nexport class GetBillableItemRequest implements i.GetBillableItemRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n\n static fromProto(proto: any): GetBillableItemRequest {\n let m = new GetBillableItemRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetBillableItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n return toReturn;\n }\n}\n\nexport class GetBillableItemResponse implements i.GetBillableItemResponseInterface {\n item: BillableItem;\n\n static fromProto(proto: any): GetBillableItemResponse {\n let m = new GetBillableItemResponse();\n m = Object.assign(m, proto);\n if (proto.item) {m.item = BillableItem.fromProto(proto.item);}\n return m;\n }\n\n constructor(kwargs?: i.GetBillableItemResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.item !== 'undefined' && this.item !== null) {toReturn['item'] = 'toApiJson' in this.item ? (this.item as any).toApiJson() : this.item;}\n return toReturn;\n }\n}\n\nexport class GetMultiSubscriptionsRequest implements i.GetMultiSubscriptionsRequestInterface {\n subscriptionKeys: GetMultiSubscriptionsRequestKey[];\n\n static fromProto(proto: any): GetMultiSubscriptionsRequest {\n let m = new GetMultiSubscriptionsRequest();\n m = Object.assign(m, proto);\n if (proto.subscriptionKeys) {m.subscriptionKeys = proto.subscriptionKeys.map(GetMultiSubscriptionsRequestKey.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiSubscriptionsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subscriptionKeys !== 'undefined' && this.subscriptionKeys !== null) {toReturn['subscriptionKeys'] = 'toApiJson' in this.subscriptionKeys ? (this.subscriptionKeys as any).toApiJson() : this.subscriptionKeys;}\n return toReturn;\n }\n}\n\nexport class GetMultiSubscriptionsResponse implements i.GetMultiSubscriptionsResponseInterface {\n subscriptions: BillableItem[];\n\n static fromProto(proto: any): GetMultiSubscriptionsResponse {\n let m = new GetMultiSubscriptionsResponse();\n m = Object.assign(m, proto);\n if (proto.subscriptions) {m.subscriptions = proto.subscriptions.map(BillableItem.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiSubscriptionsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subscriptions !== 'undefined' && this.subscriptions !== null) {toReturn['subscriptions'] = 'toApiJson' in this.subscriptions ? (this.subscriptions as any).toApiJson() : this.subscriptions;}\n return toReturn;\n }\n}\n\nexport class Item implements i.ItemInterface {\n sku: string;\n customerId: string;\n orderId: string;\n billingStart: Date;\n\n static fromProto(proto: any): Item {\n let m = new Item();\n m = Object.assign(m, proto);\n if (proto.billingStart) {m.billingStart = new Date(proto.billingStart);}\n return m;\n }\n\n constructor(kwargs?: i.ItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.billingStart !== 'undefined' && this.billingStart !== null) {toReturn['billingStart'] = 'toApiJson' in this.billingStart ? (this.billingStart as any).toApiJson() : this.billingStart;}\n return toReturn;\n }\n}\n\nexport class GetMultiSubscriptionsRequestKey implements i.GetMultiSubscriptionsRequestKeyInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n\n static fromProto(proto: any): GetMultiSubscriptionsRequestKey {\n let m = new GetMultiSubscriptionsRequestKey();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiSubscriptionsRequestKeyInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n return toReturn;\n }\n}\n\nexport class ListBillableItemsRequest implements i.ListBillableItemsRequestInterface {\n filters: ListBillableItemsRequestFilters;\n pagingOptions: PagedRequestOptions;\n searchTerm: string;\n\n static fromProto(proto: any): ListBillableItemsRequest {\n let m = new ListBillableItemsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListBillableItemsRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListBillableItemsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n return toReturn;\n }\n}\n\nexport class ListBillableItemsResponse implements i.ListBillableItemsResponseInterface {\n items: BillableItem[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListBillableItemsResponse {\n let m = new ListBillableItemsResponse();\n m = Object.assign(m, proto);\n if (proto.items) {m.items = proto.items.map(BillableItem.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListBillableItemsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AppliedDiscount implements i.AppliedDiscountInterface {\n type: e.DiscountType;\n value: number;\n totalAmount: number;\n description: string;\n\n static fromProto(proto: any): AppliedDiscount {\n let m = new AppliedDiscount();\n m = Object.assign(m, proto);\n if (proto.type) {m.type = enumStringToValue<e.DiscountType>(e.DiscountType, proto.type);}\n if (proto.value) {m.value = parseInt(proto.value, 10);}\n if (proto.totalAmount) {m.totalAmount = parseInt(proto.totalAmount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.AppliedDiscountInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n if (typeof this.totalAmount !== 'undefined') {toReturn['totalAmount'] = this.totalAmount;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Bundle implements i.BundleInterface {\n merchantId: string;\n bundleId: string;\n name: string;\n items: BundleItem[];\n created: Date;\n updated: Date;\n hideBundleDetails: boolean;\n\n static fromProto(proto: any): Bundle {\n let m = new Bundle();\n m = Object.assign(m, proto);\n if (proto.items) {m.items = proto.items.map(BundleItem.fromProto);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n return m;\n }\n\n constructor(kwargs?: i.BundleInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.hideBundleDetails !== 'undefined') {toReturn['hideBundleDetails'] = this.hideBundleDetails;}\n return toReturn;\n }\n}\n\nexport class BundleItem implements i.BundleItemInterface {\n productId: string;\n discountType: e.DiscountType;\n discountAmount: number;\n quantity: number;\n defaultSku: string;\n price: BundleItemPrice;\n\n static fromProto(proto: any): BundleItem {\n let m = new BundleItem();\n m = Object.assign(m, proto);\n if (proto.discountType) {m.discountType = enumStringToValue<e.DiscountType>(e.DiscountType, proto.discountType);}\n if (proto.discountAmount) {m.discountAmount = parseInt(proto.discountAmount, 10);}\n if (proto.quantity) {m.quantity = parseInt(proto.quantity, 10);}\n if (proto.price) {m.price = BundleItemPrice.fromProto(proto.price);}\n return m;\n }\n\n constructor(kwargs?: i.BundleItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.productId !== 'undefined') {toReturn['productId'] = this.productId;}\n if (typeof this.discountType !== 'undefined') {toReturn['discountType'] = this.discountType;}\n if (typeof this.discountAmount !== 'undefined') {toReturn['discountAmount'] = this.discountAmount;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.defaultSku !== 'undefined') {toReturn['defaultSku'] = this.defaultSku;}\n if (typeof this.price !== 'undefined' && this.price !== null) {toReturn['price'] = 'toApiJson' in this.price ? (this.price as any).toApiJson() : this.price;}\n return toReturn;\n }\n}\n\nexport class BundlePricing implements i.BundlePricingInterface {\n bundleId: string;\n currency: string;\n prices: BundlePricingPriceAndFrequency[];\n\n static fromProto(proto: any): BundlePricing {\n let m = new BundlePricing();\n m = Object.assign(m, proto);\n if (proto.prices) {m.prices = proto.prices.map(BundlePricingPriceAndFrequency.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.BundlePricingInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.prices !== 'undefined' && this.prices !== null) {toReturn['prices'] = 'toApiJson' in this.prices ? (this.prices as any).toApiJson() : this.prices;}\n return toReturn;\n }\n}\n\nexport class GetMultiBundleResponseBundlesEntry implements i.GetMultiBundleResponseBundlesEntryInterface {\n key: string;\n value: Bundle;\n\n static fromProto(proto: any): GetMultiBundleResponseBundlesEntry {\n let m = new GetMultiBundleResponseBundlesEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = Bundle.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiBundleResponseBundlesEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class ListBundlesRequestFilters implements i.ListBundlesRequestFiltersInterface {\n merchantId: string;\n\n static fromProto(proto: any): ListBundlesRequestFilters {\n let m = new ListBundlesRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListBundlesRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetMultiBundleRequest implements i.GetMultiBundleRequestInterface {\n merchantId: string;\n bundleIds: string[];\n\n static fromProto(proto: any): GetMultiBundleRequest {\n let m = new GetMultiBundleRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiBundleRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.bundleIds !== 'undefined') {toReturn['bundleIds'] = this.bundleIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiBundleResponse implements i.GetMultiBundleResponseInterface {\n bundles: {[key: string]: Bundle};\n\n static fromProto(proto: any): GetMultiBundleResponse {\n let m = new GetMultiBundleResponse();\n m = Object.assign(m, proto);\n if (proto.bundles) {m.bundles = Object.keys(proto.bundles).reduce<any>((obj, k) => { obj[k] = Bundle.fromProto(proto.bundles[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiBundleResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.bundles !== 'undefined' && this.bundles !== null) {toReturn['bundles'] = 'toApiJson' in this.bundles ? (this.bundles as any).toApiJson() : this.bundles;}\n return toReturn;\n }\n}\n\nexport class ListBundlesRequest implements i.ListBundlesRequestInterface {\n filters: ListBundlesRequestFilters;\n searchTerm: string;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListBundlesRequest {\n let m = new ListBundlesRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListBundlesRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListBundlesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListBundlesResponse implements i.ListBundlesResponseInterface {\n bundles: Bundle[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListBundlesResponse {\n let m = new ListBundlesResponse();\n m = Object.assign(m, proto);\n if (proto.bundles) {m.bundles = proto.bundles.map(Bundle.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListBundlesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.bundles !== 'undefined' && this.bundles !== null) {toReturn['bundles'] = 'toApiJson' in this.bundles ? (this.bundles as any).toApiJson() : this.bundles;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class BundleItemPrice implements i.BundleItemPriceInterface {\n amount: number;\n setupFee: number;\n\n static fromProto(proto: any): BundleItemPrice {\n let m = new BundleItemPrice();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.setupFee) {m.setupFee = parseInt(proto.setupFee, 10);}\n return m;\n }\n\n constructor(kwargs?: i.BundleItemPriceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.setupFee !== 'undefined') {toReturn['setupFee'] = this.setupFee;}\n return toReturn;\n }\n}\n\nexport class BundlePricingPriceAndFrequency implements i.BundlePricingPriceAndFrequencyInterface {\n frequency: e.Frequency;\n effectivePrice: number;\n initialPrice: number;\n setupFee: number;\n\n static fromProto(proto: any): BundlePricingPriceAndFrequency {\n let m = new BundlePricingPriceAndFrequency();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.effectivePrice) {m.effectivePrice = parseInt(proto.effectivePrice, 10);}\n if (proto.initialPrice) {m.initialPrice = parseInt(proto.initialPrice, 10);}\n if (proto.setupFee) {m.setupFee = parseInt(proto.setupFee, 10);}\n return m;\n }\n\n constructor(kwargs?: i.BundlePricingPriceAndFrequencyInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.effectivePrice !== 'undefined') {toReturn['effectivePrice'] = this.effectivePrice;}\n if (typeof this.initialPrice !== 'undefined') {toReturn['initialPrice'] = this.initialPrice;}\n if (typeof this.setupFee !== 'undefined') {toReturn['setupFee'] = this.setupFee;}\n return toReturn;\n }\n}\n\nexport class UpsertBundleRequest implements i.UpsertBundleRequestInterface {\n merchantId: string;\n bundleId: string;\n name: string;\n items: BundleItem[];\n hideBundleDetails: boolean;\n\n static fromProto(proto: any): UpsertBundleRequest {\n let m = new UpsertBundleRequest();\n m = Object.assign(m, proto);\n if (proto.items) {m.items = proto.items.map(BundleItem.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertBundleRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n if (typeof this.hideBundleDetails !== 'undefined') {toReturn['hideBundleDetails'] = this.hideBundleDetails;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Commitment implements i.CommitmentInterface {\n initial: number;\n recurring: number;\n\n static fromProto(proto: any): Commitment {\n let m = new Commitment();\n m = Object.assign(m, proto);\n if (proto.initial) {m.initial = parseInt(proto.initial, 10);}\n if (proto.recurring) {m.recurring = parseInt(proto.recurring, 10);}\n return m;\n }\n\n constructor(kwargs?: i.CommitmentInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.initial !== 'undefined') {toReturn['initial'] = this.initial;}\n if (typeof this.recurring !== 'undefined') {toReturn['recurring'] = this.recurring;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Contract implements i.ContractInterface {\n merchantId: string;\n netD: number;\n created: Date;\n subscriptionId: string;\n currency: e.Currency;\n signed: Date;\n activated: Date;\n modified: Date;\n verified: Date;\n status: string;\n creditLimit: number;\n dimension: string;\n pricingPlanId: string;\n end: Date;\n subscriptionUpdateStatus: e.ContractSubscriptionStatus;\n\n static fromProto(proto: any): Contract {\n let m = new Contract();\n m = Object.assign(m, proto);\n if (proto.netD) {m.netD = parseInt(proto.netD, 10);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.signed) {m.signed = new Date(proto.signed);}\n if (proto.activated) {m.activated = new Date(proto.activated);}\n if (proto.modified) {m.modified = new Date(proto.modified);}\n if (proto.verified) {m.verified = new Date(proto.verified);}\n if (proto.creditLimit) {m.creditLimit = parseInt(proto.creditLimit, 10);}\n if (proto.end) {m.end = new Date(proto.end);}\n if (proto.subscriptionUpdateStatus) {m.subscriptionUpdateStatus = enumStringToValue<e.ContractSubscriptionStatus>(e.ContractSubscriptionStatus, proto.subscriptionUpdateStatus);}\n return m;\n }\n\n constructor(kwargs?: i.ContractInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.netD !== 'undefined') {toReturn['netD'] = this.netD;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.subscriptionId !== 'undefined') {toReturn['subscriptionId'] = this.subscriptionId;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.signed !== 'undefined' && this.signed !== null) {toReturn['signed'] = 'toApiJson' in this.signed ? (this.signed as any).toApiJson() : this.signed;}\n if (typeof this.activated !== 'undefined' && this.activated !== null) {toReturn['activated'] = 'toApiJson' in this.activated ? (this.activated as any).toApiJson() : this.activated;}\n if (typeof this.modified !== 'undefined' && this.modified !== null) {toReturn['modified'] = 'toApiJson' in this.modified ? (this.modified as any).toApiJson() : this.modified;}\n if (typeof this.verified !== 'undefined' && this.verified !== null) {toReturn['verified'] = 'toApiJson' in this.verified ? (this.verified as any).toApiJson() : this.verified;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.creditLimit !== 'undefined') {toReturn['creditLimit'] = this.creditLimit;}\n if (typeof this.dimension !== 'undefined') {toReturn['dimension'] = this.dimension;}\n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n if (typeof this.subscriptionUpdateStatus !== 'undefined') {toReturn['subscriptionUpdateStatus'] = this.subscriptionUpdateStatus;}\n return toReturn;\n }\n}\n\nexport class GetMultiContractsResponseContractsEntry implements i.GetMultiContractsResponseContractsEntryInterface {\n key: string;\n value: Contract;\n\n static fromProto(proto: any): GetMultiContractsResponseContractsEntry {\n let m = new GetMultiContractsResponseContractsEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = Contract.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiContractsResponseContractsEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class CreateContractRequest implements i.CreateContractRequestInterface {\n merchantId: string;\n currencyCode: string;\n\n static fromProto(proto: any): CreateContractRequest {\n let m = new CreateContractRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateContractRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n return toReturn;\n }\n}\n\nexport class CreateContractResponse implements i.CreateContractResponseInterface {\n contract: Contract;\n\n static fromProto(proto: any): CreateContractResponse {\n let m = new CreateContractResponse();\n m = Object.assign(m, proto);\n if (proto.contract) {m.contract = Contract.fromProto(proto.contract);}\n return m;\n }\n\n constructor(kwargs?: i.CreateContractResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.contract !== 'undefined' && this.contract !== null) {toReturn['contract'] = 'toApiJson' in this.contract ? (this.contract as any).toApiJson() : this.contract;}\n return toReturn;\n }\n}\n\nexport class GetContractRequest implements i.GetContractRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetContractRequest {\n let m = new GetContractRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetContractRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetContractResponse implements i.GetContractResponseInterface {\n contract: Contract;\n\n static fromProto(proto: any): GetContractResponse {\n let m = new GetContractResponse();\n m = Object.assign(m, proto);\n if (proto.contract) {m.contract = Contract.fromProto(proto.contract);}\n return m;\n }\n\n constructor(kwargs?: i.GetContractResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.contract !== 'undefined' && this.contract !== null) {toReturn['contract'] = 'toApiJson' in this.contract ? (this.contract as any).toApiJson() : this.contract;}\n return toReturn;\n }\n}\n\nexport class GetMultiContractsRequest implements i.GetMultiContractsRequestInterface {\n merchantIds: string[];\n\n static fromProto(proto: any): GetMultiContractsRequest {\n let m = new GetMultiContractsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiContractsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantIds !== 'undefined') {toReturn['merchantIds'] = this.merchantIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiContractsResponse implements i.GetMultiContractsResponseInterface {\n contracts: {[key: string]: Contract};\n\n static fromProto(proto: any): GetMultiContractsResponse {\n let m = new GetMultiContractsResponse();\n m = Object.assign(m, proto);\n if (proto.contracts) {m.contracts = Object.keys(proto.contracts).reduce<any>((obj, k) => { obj[k] = Contract.fromProto(proto.contracts[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiContractsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.contracts !== 'undefined' && this.contracts !== null) {toReturn['contracts'] = 'toApiJson' in this.contracts ? (this.contracts as any).toApiJson() : this.contracts;}\n return toReturn;\n }\n}\n\nexport class ListContractsRequest implements i.ListContractsRequestInterface {\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListContractsRequest {\n let m = new ListContractsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListContractsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListContractsResponse implements i.ListContractsResponseInterface {\n contracts: Contract[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListContractsResponse {\n let m = new ListContractsResponse();\n m = Object.assign(m, proto);\n if (proto.contracts) {m.contracts = proto.contracts.map(Contract.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListContractsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.contracts !== 'undefined' && this.contracts !== null) {toReturn['contracts'] = 'toApiJson' in this.contracts ? (this.contracts as any).toApiJson() : this.contracts;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class UpdateContractRequestMutation implements i.UpdateContractRequestMutationInterface {\n netD: number;\n currencyCode: string;\n status: string;\n dimension: string;\n signed: Date;\n activated: Date;\n end: Date;\n modified: Date;\n creditLimit: number;\n subscriptionId: string;\n\n static fromProto(proto: any): UpdateContractRequestMutation {\n let m = new UpdateContractRequestMutation();\n m = Object.assign(m, proto);\n if (proto.netD) {m.netD = parseInt(proto.netD, 10);}\n if (proto.signed) {m.signed = new Date(proto.signed);}\n if (proto.activated) {m.activated = new Date(proto.activated);}\n if (proto.end) {m.end = new Date(proto.end);}\n if (proto.modified) {m.modified = new Date(proto.modified);}\n if (proto.creditLimit) {m.creditLimit = parseInt(proto.creditLimit, 10);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateContractRequestMutationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.netD !== 'undefined') {toReturn['netD'] = this.netD;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.dimension !== 'undefined') {toReturn['dimension'] = this.dimension;}\n if (typeof this.signed !== 'undefined' && this.signed !== null) {toReturn['signed'] = 'toApiJson' in this.signed ? (this.signed as any).toApiJson() : this.signed;}\n if (typeof this.activated !== 'undefined' && this.activated !== null) {toReturn['activated'] = 'toApiJson' in this.activated ? (this.activated as any).toApiJson() : this.activated;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n if (typeof this.modified !== 'undefined' && this.modified !== null) {toReturn['modified'] = 'toApiJson' in this.modified ? (this.modified as any).toApiJson() : this.modified;}\n if (typeof this.creditLimit !== 'undefined') {toReturn['creditLimit'] = this.creditLimit;}\n if (typeof this.subscriptionId !== 'undefined') {toReturn['subscriptionId'] = this.subscriptionId;}\n return toReturn;\n }\n}\n\nexport class ResetContractPricingRequest implements i.ResetContractPricingRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): ResetContractPricingRequest {\n let m = new ResetContractPricingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ResetContractPricingRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class UpdateContractRequest implements i.UpdateContractRequestInterface {\n merchantId: string;\n mutations: UpdateContractRequestMutation[];\n\n static fromProto(proto: any): UpdateContractRequest {\n let m = new UpdateContractRequest();\n m = Object.assign(m, proto);\n if (proto.mutations) {m.mutations = proto.mutations.map(UpdateContractRequestMutation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateContractRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.mutations !== 'undefined' && this.mutations !== null) {toReturn['mutations'] = 'toApiJson' in this.mutations ? (this.mutations as any).toApiJson() : this.mutations;}\n return toReturn;\n }\n}\n\nexport class UpdateContractResponse implements i.UpdateContractResponseInterface {\n contract: Contract;\n\n static fromProto(proto: any): UpdateContractResponse {\n let m = new UpdateContractResponse();\n m = Object.assign(m, proto);\n if (proto.contract) {m.contract = Contract.fromProto(proto.contract);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateContractResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.contract !== 'undefined' && this.contract !== null) {toReturn['contract'] = 'toApiJson' in this.contract ? (this.contract as any).toApiJson() : this.contract;}\n return toReturn;\n }\n}\n\nexport class UpdateContractSubscriptionRequest implements i.UpdateContractSubscriptionRequestInterface {\n merchantId: string;\n subscriptionId: string;\n frequency: e.Frequency;\n\n static fromProto(proto: any): UpdateContractSubscriptionRequest {\n let m = new UpdateContractSubscriptionRequest();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateContractSubscriptionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.subscriptionId !== 'undefined') {toReturn['subscriptionId'] = this.subscriptionId;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CustomerSummary implements i.CustomerSummaryInterface {\n customerId: string;\n purchaseItemQuantity: number;\n purchaseItemTotal: number;\n currency: e.Currency;\n\n static fromProto(proto: any): CustomerSummary {\n let m = new CustomerSummary();\n m = Object.assign(m, proto);\n if (proto.purchaseItemQuantity) {m.purchaseItemQuantity = parseInt(proto.purchaseItemQuantity, 10);}\n if (proto.purchaseItemTotal) {m.purchaseItemTotal = parseInt(proto.purchaseItemTotal, 10);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n return m;\n }\n\n constructor(kwargs?: i.CustomerSummaryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.purchaseItemQuantity !== 'undefined') {toReturn['purchaseItemQuantity'] = this.purchaseItemQuantity;}\n if (typeof this.purchaseItemTotal !== 'undefined') {toReturn['purchaseItemTotal'] = this.purchaseItemTotal;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n return toReturn;\n }\n}\n\nexport class GetMultiCustomerSummariesRequest implements i.GetMultiCustomerSummariesRequestInterface {\n customerIds: string[];\n merchantId: string;\n periodStart: Date;\n periodEnd: Date;\n\n static fromProto(proto: any): GetMultiCustomerSummariesRequest {\n let m = new GetMultiCustomerSummariesRequest();\n m = Object.assign(m, proto);\n if (proto.periodStart) {m.periodStart = new Date(proto.periodStart);}\n if (proto.periodEnd) {m.periodEnd = new Date(proto.periodEnd);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiCustomerSummariesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerIds !== 'undefined') {toReturn['customerIds'] = this.customerIds;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.periodStart !== 'undefined' && this.periodStart !== null) {toReturn['periodStart'] = 'toApiJson' in this.periodStart ? (this.periodStart as any).toApiJson() : this.periodStart;}\n if (typeof this.periodEnd !== 'undefined' && this.periodEnd !== null) {toReturn['periodEnd'] = 'toApiJson' in this.periodEnd ? (this.periodEnd as any).toApiJson() : this.periodEnd;}\n return toReturn;\n }\n}\n\nexport class GetMultiCustomerSummariesResponse implements i.GetMultiCustomerSummariesResponseInterface {\n customerSummaries: CustomerSummary[];\n\n static fromProto(proto: any): GetMultiCustomerSummariesResponse {\n let m = new GetMultiCustomerSummariesResponse();\n m = Object.assign(m, proto);\n if (proto.customerSummaries) {m.customerSummaries = proto.customerSummaries.map(CustomerSummary.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiCustomerSummariesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerSummaries !== 'undefined' && this.customerSummaries !== null) {toReturn['customerSummaries'] = 'toApiJson' in this.customerSummaries ? (this.customerSummaries as any).toApiJson() : this.customerSummaries;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class BankAccount implements i.BankAccountInterface {\n id: string;\n accountHolderName: string;\n bankName: string;\n country: string;\n currency: string;\n routingNumber: string;\n last4: string;\n defaultForCurrency: boolean;\n\n static fromProto(proto: any): BankAccount {\n let m = new BankAccount();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.BankAccountInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.accountHolderName !== 'undefined') {toReturn['accountHolderName'] = this.accountHolderName;}\n if (typeof this.bankName !== 'undefined') {toReturn['bankName'] = this.bankName;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.routingNumber !== 'undefined') {toReturn['routingNumber'] = this.routingNumber;}\n if (typeof this.last4 !== 'undefined') {toReturn['last4'] = this.last4;}\n if (typeof this.defaultForCurrency !== 'undefined') {toReturn['defaultForCurrency'] = this.defaultForCurrency;}\n return toReturn;\n }\n}\n\nexport class CreateStripeExternalAccountRequest implements i.CreateStripeExternalAccountRequestInterface {\n merchantId: string;\n stripeToken: string;\n\n static fromProto(proto: any): CreateStripeExternalAccountRequest {\n let m = new CreateStripeExternalAccountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateStripeExternalAccountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.stripeToken !== 'undefined') {toReturn['stripeToken'] = this.stripeToken;}\n return toReturn;\n }\n}\n\nexport class DeleteBankAccountRequest implements i.DeleteBankAccountRequestInterface {\n merchantId: string;\n bankAccountId: string;\n\n static fromProto(proto: any): DeleteBankAccountRequest {\n let m = new DeleteBankAccountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteBankAccountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.bankAccountId !== 'undefined') {toReturn['bankAccountId'] = this.bankAccountId;}\n return toReturn;\n }\n}\n\nexport class ListBankAccountsRequest implements i.ListBankAccountsRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): ListBankAccountsRequest {\n let m = new ListBankAccountsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListBankAccountsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class ListBankAccountsResponse implements i.ListBankAccountsResponseInterface {\n bankAccount: BankAccount[];\n\n static fromProto(proto: any): ListBankAccountsResponse {\n let m = new ListBankAccountsResponse();\n m = Object.assign(m, proto);\n if (proto.bankAccount) {m.bankAccount = proto.bankAccount.map(BankAccount.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListBankAccountsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.bankAccount !== 'undefined' && this.bankAccount !== null) {toReturn['bankAccount'] = 'toApiJson' in this.bankAccount ? (this.bankAccount as any).toApiJson() : this.bankAccount;}\n return toReturn;\n }\n}\n\nexport class SetDefaultBankAccountRequest implements i.SetDefaultBankAccountRequestInterface {\n merchantId: string;\n bankAccountId: string;\n\n static fromProto(proto: any): SetDefaultBankAccountRequest {\n let m = new SetDefaultBankAccountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SetDefaultBankAccountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.bankAccountId !== 'undefined') {toReturn['bankAccountId'] = this.bankAccountId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedResponseMetadata, PagedRequestOptions } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ProductSummaryDiscount implements i.ProductSummaryDiscountInterface {\n type: e.ProductSummaryDiscountDiscountType;\n value: number;\n totalAmount: number;\n description: string;\n resetEachPeriod: boolean;\n\n static fromProto(proto: any): ProductSummaryDiscount {\n let m = new ProductSummaryDiscount();\n m = Object.assign(m, proto);\n if (proto.type) {m.type = enumStringToValue<e.ProductSummaryDiscountDiscountType>(e.ProductSummaryDiscountDiscountType, proto.type);}\n if (proto.value) {m.value = parseInt(proto.value, 10);}\n if (proto.totalAmount) {m.totalAmount = parseInt(proto.totalAmount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ProductSummaryDiscountInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n if (typeof this.totalAmount !== 'undefined') {toReturn['totalAmount'] = this.totalAmount;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.resetEachPeriod !== 'undefined') {toReturn['resetEachPeriod'] = this.resetEachPeriod;}\n return toReturn;\n }\n}\n\nexport class ListSubscriptionRetentionRequestFilters implements i.ListSubscriptionRetentionRequestFiltersInterface {\n start: Date;\n end: Date;\n\n static fromProto(proto: any): ListSubscriptionRetentionRequestFilters {\n let m = new ListSubscriptionRetentionRequestFilters();\n m = Object.assign(m, proto);\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n return m;\n }\n\n constructor(kwargs?: i.ListSubscriptionRetentionRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n return toReturn;\n }\n}\n\nexport class GetProductSummariesTotalRequest implements i.GetProductSummariesTotalRequestInterface {\n merchantId: string;\n startDate: Date;\n endDate: Date;\n\n static fromProto(proto: any): GetProductSummariesTotalRequest {\n let m = new GetProductSummariesTotalRequest();\n m = Object.assign(m, proto);\n if (proto.startDate) {m.startDate = new Date(proto.startDate);}\n if (proto.endDate) {m.endDate = new Date(proto.endDate);}\n return m;\n }\n\n constructor(kwargs?: i.GetProductSummariesTotalRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.startDate !== 'undefined' && this.startDate !== null) {toReturn['startDate'] = 'toApiJson' in this.startDate ? (this.startDate as any).toApiJson() : this.startDate;}\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {toReturn['endDate'] = 'toApiJson' in this.endDate ? (this.endDate as any).toApiJson() : this.endDate;}\n return toReturn;\n }\n}\n\nexport class GetProductSummariesTotalResponse implements i.GetProductSummariesTotalResponseInterface {\n totalAmount: number;\n\n static fromProto(proto: any): GetProductSummariesTotalResponse {\n let m = new GetProductSummariesTotalResponse();\n m = Object.assign(m, proto);\n if (proto.totalAmount) {m.totalAmount = parseInt(proto.totalAmount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.GetProductSummariesTotalResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.totalAmount !== 'undefined') {toReturn['totalAmount'] = this.totalAmount;}\n return toReturn;\n }\n}\n\nexport class ListProductSummariesRequest implements i.ListProductSummariesRequestInterface {\n merchantId: string;\n startDate: Date;\n endDate: Date;\n cursor: string;\n pageSize: number;\n skus: string[];\n\n static fromProto(proto: any): ListProductSummariesRequest {\n let m = new ListProductSummariesRequest();\n m = Object.assign(m, proto);\n if (proto.startDate) {m.startDate = new Date(proto.startDate);}\n if (proto.endDate) {m.endDate = new Date(proto.endDate);}\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListProductSummariesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.startDate !== 'undefined' && this.startDate !== null) {toReturn['startDate'] = 'toApiJson' in this.startDate ? (this.startDate as any).toApiJson() : this.startDate;}\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {toReturn['endDate'] = 'toApiJson' in this.endDate ? (this.endDate as any).toApiJson() : this.endDate;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n return toReturn;\n }\n}\n\nexport class ListProductSummariesResponse implements i.ListProductSummariesResponseInterface {\n results: ProductSummary[];\n nextCursor: string;\n hasMore: boolean;\n totalResults: number;\n\n static fromProto(proto: any): ListProductSummariesResponse {\n let m = new ListProductSummariesResponse();\n m = Object.assign(m, proto);\n if (proto.results) {m.results = proto.results.map(ProductSummary.fromProto);}\n if (proto.totalResults) {m.totalResults = parseInt(proto.totalResults, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListProductSummariesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.results !== 'undefined' && this.results !== null) {toReturn['results'] = 'toApiJson' in this.results ? (this.results as any).toApiJson() : this.results;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n if (typeof this.totalResults !== 'undefined') {toReturn['totalResults'] = this.totalResults;}\n return toReturn;\n }\n}\n\nexport class ListSubscriptionRetentionByGroupResponse implements i.ListSubscriptionRetentionByGroupResponseInterface {\n metricsByGroup: ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListSubscriptionRetentionByGroupResponse {\n let m = new ListSubscriptionRetentionByGroupResponse();\n m = Object.assign(m, proto);\n if (proto.metricsByGroup) {m.metricsByGroup = proto.metricsByGroup.map(ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListSubscriptionRetentionByGroupResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.metricsByGroup !== 'undefined' && this.metricsByGroup !== null) {toReturn['metricsByGroup'] = 'toApiJson' in this.metricsByGroup ? (this.metricsByGroup as any).toApiJson() : this.metricsByGroup;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class ListSubscriptionRetentionBySKUResponse implements i.ListSubscriptionRetentionBySKUResponseInterface {\n subscriptionMetrics: RetentionMetrics[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListSubscriptionRetentionBySKUResponse {\n let m = new ListSubscriptionRetentionBySKUResponse();\n m = Object.assign(m, proto);\n if (proto.subscriptionMetrics) {m.subscriptionMetrics = proto.subscriptionMetrics.map(RetentionMetrics.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListSubscriptionRetentionBySKUResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subscriptionMetrics !== 'undefined' && this.subscriptionMetrics !== null) {toReturn['subscriptionMetrics'] = 'toApiJson' in this.subscriptionMetrics ? (this.subscriptionMetrics as any).toApiJson() : this.subscriptionMetrics;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class ListSubscriptionRetentionRequest implements i.ListSubscriptionRetentionRequestInterface {\n merchantId: string;\n filters: ListSubscriptionRetentionRequestFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListSubscriptionRetentionRequest {\n let m = new ListSubscriptionRetentionRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListSubscriptionRetentionRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListSubscriptionRetentionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class Pricing implements i.PricingInterface {\n type: e.PricingRuleType;\n rules: PricingRule[];\n\n static fromProto(proto: any): Pricing {\n let m = new Pricing();\n m = Object.assign(m, proto);\n if (proto.type) {m.type = enumStringToValue<e.PricingRuleType>(e.PricingRuleType, proto.type);}\n if (proto.rules) {m.rules = proto.rules.map(PricingRule.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.PricingInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.rules !== 'undefined' && this.rules !== null) {toReturn['rules'] = 'toApiJson' in this.rules ? (this.rules as any).toApiJson() : this.rules;}\n return toReturn;\n }\n}\n\nexport class ProductSummary implements i.ProductSummaryInterface {\n sku: string;\n productName: string;\n totalQuantity: number;\n totalAmount: number;\n totalDiscount: number;\n pricing: Pricing;\n discounts: ProductSummaryDiscount[];\n billingStrategy: e.ProductSummaryBillingStrategy;\n productType: e.ProductSummaryProductType;\n frequency: e.Frequency;\n proratedPercent: number;\n volumeCommitment: number;\n setupFee: number;\n\n static fromProto(proto: any): ProductSummary {\n let m = new ProductSummary();\n m = Object.assign(m, proto);\n if (proto.totalQuantity) {m.totalQuantity = parseInt(proto.totalQuantity, 10);}\n if (proto.totalAmount) {m.totalAmount = parseInt(proto.totalAmount, 10);}\n if (proto.totalDiscount) {m.totalDiscount = parseInt(proto.totalDiscount, 10);}\n if (proto.pricing) {m.pricing = Pricing.fromProto(proto.pricing);}\n if (proto.discounts) {m.discounts = proto.discounts.map(ProductSummaryDiscount.fromProto);}\n if (proto.billingStrategy) {m.billingStrategy = enumStringToValue<e.ProductSummaryBillingStrategy>(e.ProductSummaryBillingStrategy, proto.billingStrategy);}\n if (proto.productType) {m.productType = enumStringToValue<e.ProductSummaryProductType>(e.ProductSummaryProductType, proto.productType);}\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.volumeCommitment) {m.volumeCommitment = parseInt(proto.volumeCommitment, 10);}\n if (proto.setupFee) {m.setupFee = parseInt(proto.setupFee, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ProductSummaryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.productName !== 'undefined') {toReturn['productName'] = this.productName;}\n if (typeof this.totalQuantity !== 'undefined') {toReturn['totalQuantity'] = this.totalQuantity;}\n if (typeof this.totalAmount !== 'undefined') {toReturn['totalAmount'] = this.totalAmount;}\n if (typeof this.totalDiscount !== 'undefined') {toReturn['totalDiscount'] = this.totalDiscount;}\n if (typeof this.pricing !== 'undefined' && this.pricing !== null) {toReturn['pricing'] = 'toApiJson' in this.pricing ? (this.pricing as any).toApiJson() : this.pricing;}\n if (typeof this.discounts !== 'undefined' && this.discounts !== null) {toReturn['discounts'] = 'toApiJson' in this.discounts ? (this.discounts as any).toApiJson() : this.discounts;}\n if (typeof this.billingStrategy !== 'undefined') {toReturn['billingStrategy'] = this.billingStrategy;}\n if (typeof this.productType !== 'undefined') {toReturn['productType'] = this.productType;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.proratedPercent !== 'undefined') {toReturn['proratedPercent'] = this.proratedPercent;}\n if (typeof this.volumeCommitment !== 'undefined') {toReturn['volumeCommitment'] = this.volumeCommitment;}\n if (typeof this.setupFee !== 'undefined') {toReturn['setupFee'] = this.setupFee;}\n return toReturn;\n }\n}\n\nexport class RetentionMetrics implements i.RetentionMetricsInterface {\n sku: string;\n productName: string;\n startingCount: number;\n activations: number;\n deactivations: number;\n churn: number;\n retention: number;\n\n static fromProto(proto: any): RetentionMetrics {\n let m = new RetentionMetrics();\n m = Object.assign(m, proto);\n if (proto.startingCount) {m.startingCount = parseInt(proto.startingCount, 10);}\n if (proto.activations) {m.activations = parseInt(proto.activations, 10);}\n if (proto.deactivations) {m.deactivations = parseInt(proto.deactivations, 10);}\n return m;\n }\n\n constructor(kwargs?: i.RetentionMetricsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.productName !== 'undefined') {toReturn['productName'] = this.productName;}\n if (typeof this.startingCount !== 'undefined') {toReturn['startingCount'] = this.startingCount;}\n if (typeof this.activations !== 'undefined') {toReturn['activations'] = this.activations;}\n if (typeof this.deactivations !== 'undefined') {toReturn['deactivations'] = this.deactivations;}\n if (typeof this.churn !== 'undefined') {toReturn['churn'] = this.churn;}\n if (typeof this.retention !== 'undefined') {toReturn['retention'] = this.retention;}\n return toReturn;\n }\n}\n\nexport class PricingRule implements i.PricingRuleInterface {\n min: number;\n max: number;\n units: number;\n unitPrice: number;\n totalAmount: number;\n\n static fromProto(proto: any): PricingRule {\n let m = new PricingRule();\n m = Object.assign(m, proto);\n if (proto.min) {m.min = parseInt(proto.min, 10);}\n if (proto.max) {m.max = parseInt(proto.max, 10);}\n if (proto.units) {m.units = parseInt(proto.units, 10);}\n if (proto.unitPrice) {m.unitPrice = parseInt(proto.unitPrice, 10);}\n if (proto.totalAmount) {m.totalAmount = parseInt(proto.totalAmount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.PricingRuleInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.min !== 'undefined') {toReturn['min'] = this.min;}\n if (typeof this.max !== 'undefined') {toReturn['max'] = this.max;}\n if (typeof this.units !== 'undefined') {toReturn['units'] = this.units;}\n if (typeof this.unitPrice !== 'undefined') {toReturn['unitPrice'] = this.unitPrice;}\n if (typeof this.totalAmount !== 'undefined') {toReturn['totalAmount'] = this.totalAmount;}\n return toReturn;\n }\n}\n\nexport class ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup implements i.ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroupInterface {\n groupId: string;\n subscriptionMetrics: RetentionMetrics[];\n\n static fromProto(proto: any): ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup {\n let m = new ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup();\n m = Object.assign(m, proto);\n if (proto.subscriptionMetrics) {m.subscriptionMetrics = proto.subscriptionMetrics.map(RetentionMetrics.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroupInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.groupId !== 'undefined') {toReturn['groupId'] = this.groupId;}\n if (typeof this.subscriptionMetrics !== 'undefined' && this.subscriptionMetrics !== null) {toReturn['subscriptionMetrics'] = 'toApiJson' in this.subscriptionMetrics ? (this.subscriptionMetrics as any).toApiJson() : this.subscriptionMetrics;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CreateDiscountRequest implements i.CreateDiscountRequestInterface {\n merchantId: string;\n sku: string;\n discountType: e.DiscountType;\n amount: number;\n start: Date;\n end: Date;\n resetEachPeriod: boolean;\n description: string;\n\n static fromProto(proto: any): CreateDiscountRequest {\n let m = new CreateDiscountRequest();\n m = Object.assign(m, proto);\n if (proto.discountType) {m.discountType = enumStringToValue<e.DiscountType>(e.DiscountType, proto.discountType);}\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n return m;\n }\n\n constructor(kwargs?: i.CreateDiscountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.discountType !== 'undefined') {toReturn['discountType'] = this.discountType;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n if (typeof this.resetEachPeriod !== 'undefined') {toReturn['resetEachPeriod'] = this.resetEachPeriod;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n return toReturn;\n }\n}\n\nexport class Discount implements i.DiscountInterface {\n discountId: number;\n discountType: e.DiscountType;\n amount: number;\n start: Date;\n end: Date;\n resetEachPeriod: boolean;\n merchantId: string;\n created: Date;\n updated: Date;\n sku: string;\n id: string;\n description: string;\n\n static fromProto(proto: any): Discount {\n let m = new Discount();\n m = Object.assign(m, proto);\n if (proto.discountId) {m.discountId = parseInt(proto.discountId, 10);}\n if (proto.discountType) {m.discountType = enumStringToValue<e.DiscountType>(e.DiscountType, proto.discountType);}\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n return m;\n }\n\n constructor(kwargs?: i.DiscountInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.discountId !== 'undefined') {toReturn['discountId'] = this.discountId;}\n if (typeof this.discountType !== 'undefined') {toReturn['discountType'] = this.discountType;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n if (typeof this.resetEachPeriod !== 'undefined') {toReturn['resetEachPeriod'] = this.resetEachPeriod;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n return toReturn;\n }\n}\n\nexport class ExpireDiscountRequest implements i.ExpireDiscountRequestInterface {\n merchantId: string;\n id: string;\n\n static fromProto(proto: any): ExpireDiscountRequest {\n let m = new ExpireDiscountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ExpireDiscountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class ListDiscountsRequestFilters implements i.ListDiscountsRequestFiltersInterface {\n merchantId: string;\n expiry: Date;\n skus: string[];\n\n static fromProto(proto: any): ListDiscountsRequestFilters {\n let m = new ListDiscountsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.expiry) {m.expiry = new Date(proto.expiry);}\n return m;\n }\n\n constructor(kwargs?: i.ListDiscountsRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.expiry !== 'undefined' && this.expiry !== null) {toReturn['expiry'] = 'toApiJson' in this.expiry ? (this.expiry as any).toApiJson() : this.expiry;}\n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n return toReturn;\n }\n}\n\nexport class ListDiscountsRequest implements i.ListDiscountsRequestInterface {\n filters: ListDiscountsRequestFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListDiscountsRequest {\n let m = new ListDiscountsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListDiscountsRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListDiscountsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListDiscountsResponse implements i.ListDiscountsResponseInterface {\n discounts: Discount[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListDiscountsResponse {\n let m = new ListDiscountsResponse();\n m = Object.assign(m, proto);\n if (proto.discounts) {m.discounts = proto.discounts.map(Discount.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListDiscountsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.discounts !== 'undefined' && this.discounts !== null) {toReturn['discounts'] = 'toApiJson' in this.discounts ? (this.discounts as any).toApiJson() : this.discounts;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class UpdateDiscountRequest implements i.UpdateDiscountRequestInterface {\n merchantId: string;\n id: string;\n discountType: e.DiscountType;\n amount: number;\n start: Date;\n end: Date;\n resetEachPeriod: boolean;\n description: string;\n\n static fromProto(proto: any): UpdateDiscountRequest {\n let m = new UpdateDiscountRequest();\n m = Object.assign(m, proto);\n if (proto.discountType) {m.discountType = enumStringToValue<e.DiscountType>(e.DiscountType, proto.discountType);}\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateDiscountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.discountType !== 'undefined') {toReturn['discountType'] = this.discountType;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n if (typeof this.resetEachPeriod !== 'undefined') {toReturn['resetEachPeriod'] = this.resetEachPeriod;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AppliedTaxRate implements i.AppliedTaxRateInterface {\n amount: number;\n taxRateId: string;\n name: string;\n percentage: number;\n\n static fromProto(proto: any): AppliedTaxRate {\n let m = new AppliedTaxRate();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.AppliedTaxRateInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.taxRateId !== 'undefined') {toReturn['taxRateId'] = this.taxRateId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.percentage !== 'undefined') {toReturn['percentage'] = this.percentage;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class FieldMask implements i.FieldMaskInterface {\n paths: string[];\n\n static fromProto(proto: any): FieldMask {\n let m = new FieldMask();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.FieldMaskInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.paths !== 'undefined') {toReturn['paths'] = this.paths;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ArchiveTaxRequest implements i.ArchiveTaxRequestInterface {\n merchantId: string;\n id: string;\n\n static fromProto(proto: any): ArchiveTaxRequest {\n let m = new ArchiveTaxRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ArchiveTaxRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class CalculateTaxRequest implements i.CalculateTaxRequestInterface {\n merchantId: string;\n customerId: string;\n amount: number;\n\n static fromProto(proto: any): CalculateTaxRequest {\n let m = new CalculateTaxRequest();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.CalculateTaxRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n return toReturn;\n }\n}\n\nexport class CalculateTaxResponse implements i.CalculateTaxResponseInterface {\n taxableAmount: number;\n taxRates: TaxRate[];\n\n static fromProto(proto: any): CalculateTaxResponse {\n let m = new CalculateTaxResponse();\n m = Object.assign(m, proto);\n if (proto.taxableAmount) {m.taxableAmount = parseInt(proto.taxableAmount, 10);}\n if (proto.taxRates) {m.taxRates = proto.taxRates.map(TaxRate.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.CalculateTaxResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.taxableAmount !== 'undefined') {toReturn['taxableAmount'] = this.taxableAmount;}\n if (typeof this.taxRates !== 'undefined' && this.taxRates !== null) {toReturn['taxRates'] = 'toApiJson' in this.taxRates ? (this.taxRates as any).toApiJson() : this.taxRates;}\n return toReturn;\n }\n}\n\nexport class CreateTaxRequest implements i.CreateTaxRequestInterface {\n merchantId: string;\n countryCode: string;\n stateCode: string;\n name: string;\n description: string;\n percentage: number;\n accountingSystemId: string;\n\n static fromProto(proto: any): CreateTaxRequest {\n let m = new CreateTaxRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateTaxRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.countryCode !== 'undefined') {toReturn['countryCode'] = this.countryCode;}\n if (typeof this.stateCode !== 'undefined') {toReturn['stateCode'] = this.stateCode;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.percentage !== 'undefined') {toReturn['percentage'] = this.percentage;}\n if (typeof this.accountingSystemId !== 'undefined') {toReturn['accountingSystemId'] = this.accountingSystemId;}\n return toReturn;\n }\n}\n\nexport class ListTaxRequestFilters implements i.ListTaxRequestFiltersInterface {\n merchantId: string;\n includeArchived: boolean;\n\n static fromProto(proto: any): ListTaxRequestFilters {\n let m = new ListTaxRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListTaxRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.includeArchived !== 'undefined') {toReturn['includeArchived'] = this.includeArchived;}\n return toReturn;\n }\n}\n\nexport class GetMultiTaxRequest implements i.GetMultiTaxRequestInterface {\n merchantId: string;\n ids: string[];\n\n static fromProto(proto: any): GetMultiTaxRequest {\n let m = new GetMultiTaxRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiTaxRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.ids !== 'undefined') {toReturn['ids'] = this.ids;}\n return toReturn;\n }\n}\n\nexport class GetMultiTaxResponse implements i.GetMultiTaxResponseInterface {\n taxRates: TaxRate[];\n\n static fromProto(proto: any): GetMultiTaxResponse {\n let m = new GetMultiTaxResponse();\n m = Object.assign(m, proto);\n if (proto.taxRates) {m.taxRates = proto.taxRates.map(TaxRate.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiTaxResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.taxRates !== 'undefined' && this.taxRates !== null) {toReturn['taxRates'] = 'toApiJson' in this.taxRates ? (this.taxRates as any).toApiJson() : this.taxRates;}\n return toReturn;\n }\n}\n\nexport class ListTaxRequest implements i.ListTaxRequestInterface {\n filters: ListTaxRequestFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListTaxRequest {\n let m = new ListTaxRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListTaxRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListTaxRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListTaxResponse implements i.ListTaxResponseInterface {\n taxRates: TaxRate[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListTaxResponse {\n let m = new ListTaxResponse();\n m = Object.assign(m, proto);\n if (proto.taxRates) {m.taxRates = proto.taxRates.map(TaxRate.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListTaxResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.taxRates !== 'undefined' && this.taxRates !== null) {toReturn['taxRates'] = 'toApiJson' in this.taxRates ? (this.taxRates as any).toApiJson() : this.taxRates;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class TaxRate implements i.TaxRateInterface {\n id: string;\n merchantId: string;\n countryCode: string;\n stateCode: string;\n name: string;\n description: string;\n percentage: number;\n accountingSystemId: string;\n archived: Date;\n\n static fromProto(proto: any): TaxRate {\n let m = new TaxRate();\n m = Object.assign(m, proto);\n if (proto.archived) {m.archived = new Date(proto.archived);}\n return m;\n }\n\n constructor(kwargs?: i.TaxRateInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.countryCode !== 'undefined') {toReturn['countryCode'] = this.countryCode;}\n if (typeof this.stateCode !== 'undefined') {toReturn['stateCode'] = this.stateCode;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.percentage !== 'undefined') {toReturn['percentage'] = this.percentage;}\n if (typeof this.accountingSystemId !== 'undefined') {toReturn['accountingSystemId'] = this.accountingSystemId;}\n if (typeof this.archived !== 'undefined' && this.archived !== null) {toReturn['archived'] = 'toApiJson' in this.archived ? (this.archived as any).toApiJson() : this.archived;}\n return toReturn;\n }\n}\n\nexport class UpdateTaxRequest implements i.UpdateTaxRequestInterface {\n merchantId: string;\n id: string;\n countryCode: string;\n stateCode: string;\n name: string;\n description: string;\n percentage: number;\n accountingSystemId: string;\n\n static fromProto(proto: any): UpdateTaxRequest {\n let m = new UpdateTaxRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateTaxRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.countryCode !== 'undefined') {toReturn['countryCode'] = this.countryCode;}\n if (typeof this.stateCode !== 'undefined') {toReturn['stateCode'] = this.stateCode;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.percentage !== 'undefined') {toReturn['percentage'] = this.percentage;}\n if (typeof this.accountingSystemId !== 'undefined') {toReturn['accountingSystemId'] = this.accountingSystemId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AppliedBundle implements i.AppliedBundleInterface {\n bundleId: string;\n name: string;\n bundleItems: AppliedBundleItem[];\n hideBundleItems: boolean;\n bundleInstanceId: string;\n\n static fromProto(proto: any): AppliedBundle {\n let m = new AppliedBundle();\n m = Object.assign(m, proto);\n if (proto.bundleItems) {m.bundleItems = proto.bundleItems.map(AppliedBundleItem.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.AppliedBundleInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.bundleItems !== 'undefined' && this.bundleItems !== null) {toReturn['bundleItems'] = 'toApiJson' in this.bundleItems ? (this.bundleItems as any).toApiJson() : this.bundleItems;}\n if (typeof this.hideBundleItems !== 'undefined') {toReturn['hideBundleItems'] = this.hideBundleItems;}\n if (typeof this.bundleInstanceId !== 'undefined') {toReturn['bundleInstanceId'] = this.bundleInstanceId;}\n return toReturn;\n }\n}\n\nexport class AppliedBundleItem implements i.AppliedBundleItemInterface {\n productId: string;\n discountType: string;\n discountAmount: number;\n quantity: number;\n\n static fromProto(proto: any): AppliedBundleItem {\n let m = new AppliedBundleItem();\n m = Object.assign(m, proto);\n if (proto.discountAmount) {m.discountAmount = parseInt(proto.discountAmount, 10);}\n if (proto.quantity) {m.quantity = parseInt(proto.quantity, 10);}\n return m;\n }\n\n constructor(kwargs?: i.AppliedBundleItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.productId !== 'undefined') {toReturn['productId'] = this.productId;}\n if (typeof this.discountType !== 'undefined') {toReturn['discountType'] = this.discountType;}\n if (typeof this.discountAmount !== 'undefined') {toReturn['discountAmount'] = this.discountAmount;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { AppliedBundle } from './applied-bundle';\nimport { AppliedDiscount } from './applied-discount';\nimport { AppliedTaxRate } from './applied-tax-rate';\nimport { FieldMask } from './field-mask';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport { TaxRate } from './tax-rate';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AddBundleRequest implements i.AddBundleRequestInterface {\n invoiceId: string;\n merchantId: string;\n bundleId: string;\n\n static fromProto(proto: any): AddBundleRequest {\n let m = new AddBundleRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AddBundleRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n return toReturn;\n }\n}\n\nexport class AddBundleResponse implements i.AddBundleResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): AddBundleResponse {\n let m = new AddBundleResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.AddBundleResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class AddLineItemRequest implements i.AddLineItemRequestInterface {\n merchantId: string;\n invoiceId: string;\n sku: string;\n amount: number;\n quantity: number;\n description: string;\n taxRates: string[];\n\n static fromProto(proto: any): AddLineItemRequest {\n let m = new AddLineItemRequest();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.AddLineItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.taxRates !== 'undefined') {toReturn['taxRates'] = this.taxRates;}\n return toReturn;\n }\n}\n\nexport class AddLineItemResponse implements i.AddLineItemResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): AddLineItemResponse {\n let m = new AddLineItemResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.AddLineItemResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class ChargeInvoiceRequest implements i.ChargeInvoiceRequestInterface {\n merchantId: string;\n customerId: string;\n invoiceId: string;\n paymentMethodId: string;\n\n static fromProto(proto: any): ChargeInvoiceRequest {\n let m = new ChargeInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ChargeInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.paymentMethodId !== 'undefined') {toReturn['paymentMethodId'] = this.paymentMethodId;}\n return toReturn;\n }\n}\n\nexport class CreateInvoiceRequest implements i.CreateInvoiceRequestInterface {\n merchantId: string;\n customerId: string;\n currencyCode: string;\n orderId: string;\n\n static fromProto(proto: any): CreateInvoiceRequest {\n let m = new CreateInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n return toReturn;\n }\n}\n\nexport class CreateInvoiceResponse implements i.CreateInvoiceResponseInterface {\n invoiceId: string;\n\n static fromProto(proto: any): CreateInvoiceResponse {\n let m = new CreateInvoiceResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateInvoiceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class InvoiceCustomerAddress implements i.InvoiceCustomerAddressInterface {\n address: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n address2: string;\n\n static fromProto(proto: any): InvoiceCustomerAddress {\n let m = new InvoiceCustomerAddress();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.InvoiceCustomerAddressInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.address !== 'undefined') {toReturn['address'] = this.address;}\n if (typeof this.city !== 'undefined') {toReturn['city'] = this.city;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.zip !== 'undefined') {toReturn['zip'] = this.zip;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n if (typeof this.address2 !== 'undefined') {toReturn['address2'] = this.address2;}\n return toReturn;\n }\n}\n\nexport class ListInvoicesRequestFiltersDateFilter implements i.ListInvoicesRequestFiltersDateFilterInterface {\n dateField: e.ListInvoicesRequestFiltersDateFilterDateField;\n dateLte: Date;\n dateGte: Date;\n\n static fromProto(proto: any): ListInvoicesRequestFiltersDateFilter {\n let m = new ListInvoicesRequestFiltersDateFilter();\n m = Object.assign(m, proto);\n if (proto.dateField) {m.dateField = enumStringToValue<e.ListInvoicesRequestFiltersDateFilterDateField>(e.ListInvoicesRequestFiltersDateFilterDateField, proto.dateField);}\n if (proto.dateLte) {m.dateLte = new Date(proto.dateLte);}\n if (proto.dateGte) {m.dateGte = new Date(proto.dateGte);}\n return m;\n }\n\n constructor(kwargs?: i.ListInvoicesRequestFiltersDateFilterInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.dateField !== 'undefined') {toReturn['dateField'] = this.dateField;}\n if (typeof this.dateLte !== 'undefined' && this.dateLte !== null) {toReturn['dateLte'] = 'toApiJson' in this.dateLte ? (this.dateLte as any).toApiJson() : this.dateLte;}\n if (typeof this.dateGte !== 'undefined' && this.dateGte !== null) {toReturn['dateGte'] = 'toApiJson' in this.dateGte ? (this.dateGte as any).toApiJson() : this.dateGte;}\n return toReturn;\n }\n}\n\nexport class DeleteInvoiceRequest implements i.DeleteInvoiceRequestInterface {\n merchantId: string;\n invoiceId: string;\n\n static fromProto(proto: any): DeleteInvoiceRequest {\n let m = new DeleteInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class DeleteLineItemRequest implements i.DeleteLineItemRequestInterface {\n merchantId: string;\n invoiceId: string;\n id: string;\n\n static fromProto(proto: any): DeleteLineItemRequest {\n let m = new DeleteLineItemRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteLineItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class DeleteLineItemResponse implements i.DeleteLineItemResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): DeleteLineItemResponse {\n let m = new DeleteLineItemResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.DeleteLineItemResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class DuplicateInvoiceRequest implements i.DuplicateInvoiceRequestInterface {\n merchantId: string;\n invoiceId: string;\n\n static fromProto(proto: any): DuplicateInvoiceRequest {\n let m = new DuplicateInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DuplicateInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class DuplicateInvoiceResponse implements i.DuplicateInvoiceResponseInterface {\n invoiceId: string;\n\n static fromProto(proto: any): DuplicateInvoiceResponse {\n let m = new DuplicateInvoiceResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DuplicateInvoiceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class ListInvoicesRequestFilters implements i.ListInvoicesRequestFiltersInterface {\n merchantId: string;\n customerId: string;\n statuses: e.InvoiceStatus[];\n pastDue: boolean;\n number: string;\n dateFilter: ListInvoicesRequestFiltersDateFilter;\n\n static fromProto(proto: any): ListInvoicesRequestFilters {\n let m = new ListInvoicesRequestFilters();\n m = Object.assign(m, proto);\n if (proto.statuses) {m.statuses = proto.statuses.map((v: string) => enumStringToValue<e.InvoiceStatus>(e.InvoiceStatus, v));}\n if (proto.dateFilter) {m.dateFilter = ListInvoicesRequestFiltersDateFilter.fromProto(proto.dateFilter);}\n return m;\n }\n\n constructor(kwargs?: i.ListInvoicesRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.statuses !== 'undefined') {toReturn['statuses'] = this.statuses;}\n if (typeof this.pastDue !== 'undefined') {toReturn['pastDue'] = this.pastDue;}\n if (typeof this.number !== 'undefined') {toReturn['number'] = this.number;}\n if (typeof this.dateFilter !== 'undefined' && this.dateFilter !== null) {toReturn['dateFilter'] = 'toApiJson' in this.dateFilter ? (this.dateFilter as any).toApiJson() : this.dateFilter;}\n return toReturn;\n }\n}\n\nexport class GetInvoiceRequest implements i.GetInvoiceRequestInterface {\n merchantId: string;\n invoiceId: string;\n\n static fromProto(proto: any): GetInvoiceRequest {\n let m = new GetInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class GetInvoiceResponse implements i.GetInvoiceResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): GetInvoiceResponse {\n let m = new GetInvoiceResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.GetInvoiceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class Invoice implements i.InvoiceInterface {\n merchantId: string;\n id: string;\n number: string;\n customerId: string;\n status: e.InvoiceStatus;\n subtotal: number;\n total: number;\n amountPaid: number;\n issued: Date;\n due: Date;\n created: Date;\n updated: Date;\n items: InvoiceItem[];\n currency: e.Currency;\n paid: Date;\n orderId: string;\n amountTax: number;\n appliedTaxes: AppliedTaxRate[];\n defaultTaxRates: TaxRate[];\n appliedBundles: AppliedBundle[];\n amountDiscount: number;\n customerName: string;\n origin: string;\n collectionMethod: string;\n contactId: string;\n memo: string;\n voided: Date;\n defaultPaymentMethod: string;\n customerAddress: InvoiceCustomerAddress;\n externalCustomerIdentifier: string;\n\n static fromProto(proto: any): Invoice {\n let m = new Invoice();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.InvoiceStatus>(e.InvoiceStatus, proto.status);}\n if (proto.subtotal) {m.subtotal = parseInt(proto.subtotal, 10);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.amountPaid) {m.amountPaid = parseInt(proto.amountPaid, 10);}\n if (proto.issued) {m.issued = new Date(proto.issued);}\n if (proto.due) {m.due = new Date(proto.due);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.items) {m.items = proto.items.map(InvoiceItem.fromProto);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.paid) {m.paid = new Date(proto.paid);}\n if (proto.amountTax) {m.amountTax = parseInt(proto.amountTax, 10);}\n if (proto.appliedTaxes) {m.appliedTaxes = proto.appliedTaxes.map(AppliedTaxRate.fromProto);}\n if (proto.defaultTaxRates) {m.defaultTaxRates = proto.defaultTaxRates.map(TaxRate.fromProto);}\n if (proto.appliedBundles) {m.appliedBundles = proto.appliedBundles.map(AppliedBundle.fromProto);}\n if (proto.amountDiscount) {m.amountDiscount = parseInt(proto.amountDiscount, 10);}\n if (proto.voided) {m.voided = new Date(proto.voided);}\n if (proto.customerAddress) {m.customerAddress = InvoiceCustomerAddress.fromProto(proto.customerAddress);}\n return m;\n }\n\n constructor(kwargs?: i.InvoiceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.number !== 'undefined') {toReturn['number'] = this.number;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.subtotal !== 'undefined') {toReturn['subtotal'] = this.subtotal;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.amountPaid !== 'undefined') {toReturn['amountPaid'] = this.amountPaid;}\n if (typeof this.issued !== 'undefined' && this.issued !== null) {toReturn['issued'] = 'toApiJson' in this.issued ? (this.issued as any).toApiJson() : this.issued;}\n if (typeof this.due !== 'undefined' && this.due !== null) {toReturn['due'] = 'toApiJson' in this.due ? (this.due as any).toApiJson() : this.due;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.paid !== 'undefined' && this.paid !== null) {toReturn['paid'] = 'toApiJson' in this.paid ? (this.paid as any).toApiJson() : this.paid;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.amountTax !== 'undefined') {toReturn['amountTax'] = this.amountTax;}\n if (typeof this.appliedTaxes !== 'undefined' && this.appliedTaxes !== null) {toReturn['appliedTaxes'] = 'toApiJson' in this.appliedTaxes ? (this.appliedTaxes as any).toApiJson() : this.appliedTaxes;}\n if (typeof this.defaultTaxRates !== 'undefined' && this.defaultTaxRates !== null) {toReturn['defaultTaxRates'] = 'toApiJson' in this.defaultTaxRates ? (this.defaultTaxRates as any).toApiJson() : this.defaultTaxRates;}\n if (typeof this.appliedBundles !== 'undefined' && this.appliedBundles !== null) {toReturn['appliedBundles'] = 'toApiJson' in this.appliedBundles ? (this.appliedBundles as any).toApiJson() : this.appliedBundles;}\n if (typeof this.amountDiscount !== 'undefined') {toReturn['amountDiscount'] = this.amountDiscount;}\n if (typeof this.customerName !== 'undefined') {toReturn['customerName'] = this.customerName;}\n if (typeof this.origin !== 'undefined') {toReturn['origin'] = this.origin;}\n if (typeof this.collectionMethod !== 'undefined') {toReturn['collectionMethod'] = this.collectionMethod;}\n if (typeof this.contactId !== 'undefined') {toReturn['contactId'] = this.contactId;}\n if (typeof this.memo !== 'undefined') {toReturn['memo'] = this.memo;}\n if (typeof this.voided !== 'undefined' && this.voided !== null) {toReturn['voided'] = 'toApiJson' in this.voided ? (this.voided as any).toApiJson() : this.voided;}\n if (typeof this.defaultPaymentMethod !== 'undefined') {toReturn['defaultPaymentMethod'] = this.defaultPaymentMethod;}\n if (typeof this.customerAddress !== 'undefined' && this.customerAddress !== null) {toReturn['customerAddress'] = 'toApiJson' in this.customerAddress ? (this.customerAddress as any).toApiJson() : this.customerAddress;}\n if (typeof this.externalCustomerIdentifier !== 'undefined') {toReturn['externalCustomerIdentifier'] = this.externalCustomerIdentifier;}\n return toReturn;\n }\n}\n\nexport class InvoiceItem implements i.InvoiceItemInterface {\n id: string;\n sku: string;\n amount: number;\n quantity: number;\n description: string;\n total: number;\n appliedTaxes: AppliedTaxRate[];\n taxRates: TaxRate[];\n bundleId: string;\n discounts: AppliedDiscount[];\n subtotal: number;\n bundleInstanceId: string;\n\n static fromProto(proto: any): InvoiceItem {\n let m = new InvoiceItem();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.appliedTaxes) {m.appliedTaxes = proto.appliedTaxes.map(AppliedTaxRate.fromProto);}\n if (proto.taxRates) {m.taxRates = proto.taxRates.map(TaxRate.fromProto);}\n if (proto.discounts) {m.discounts = proto.discounts.map(AppliedDiscount.fromProto);}\n if (proto.subtotal) {m.subtotal = parseInt(proto.subtotal, 10);}\n return m;\n }\n\n constructor(kwargs?: i.InvoiceItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.appliedTaxes !== 'undefined' && this.appliedTaxes !== null) {toReturn['appliedTaxes'] = 'toApiJson' in this.appliedTaxes ? (this.appliedTaxes as any).toApiJson() : this.appliedTaxes;}\n if (typeof this.taxRates !== 'undefined' && this.taxRates !== null) {toReturn['taxRates'] = 'toApiJson' in this.taxRates ? (this.taxRates as any).toApiJson() : this.taxRates;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.discounts !== 'undefined' && this.discounts !== null) {toReturn['discounts'] = 'toApiJson' in this.discounts ? (this.discounts as any).toApiJson() : this.discounts;}\n if (typeof this.subtotal !== 'undefined') {toReturn['subtotal'] = this.subtotal;}\n if (typeof this.bundleInstanceId !== 'undefined') {toReturn['bundleInstanceId'] = this.bundleInstanceId;}\n return toReturn;\n }\n}\n\nexport class ListInvoicesRequest implements i.ListInvoicesRequestInterface {\n filters: ListInvoicesRequestFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListInvoicesRequest {\n let m = new ListInvoicesRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListInvoicesRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListInvoicesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListInvoicesResponse implements i.ListInvoicesResponseInterface {\n invoices: Invoice[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListInvoicesResponse {\n let m = new ListInvoicesResponse();\n m = Object.assign(m, proto);\n if (proto.invoices) {m.invoices = proto.invoices.map(Invoice.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListInvoicesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoices !== 'undefined' && this.invoices !== null) {toReturn['invoices'] = 'toApiJson' in this.invoices ? (this.invoices as any).toApiJson() : this.invoices;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class PayInvoiceRequest implements i.PayInvoiceRequestInterface {\n merchantId: string;\n invoiceId: string;\n\n static fromProto(proto: any): PayInvoiceRequest {\n let m = new PayInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PayInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class RemoveBundleRequest implements i.RemoveBundleRequestInterface {\n invoiceId: string;\n merchantId: string;\n bundleId: string;\n bundleInstanceId: string;\n\n static fromProto(proto: any): RemoveBundleRequest {\n let m = new RemoveBundleRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RemoveBundleRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.bundleInstanceId !== 'undefined') {toReturn['bundleInstanceId'] = this.bundleInstanceId;}\n return toReturn;\n }\n}\n\nexport class RemoveBundleResponse implements i.RemoveBundleResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): RemoveBundleResponse {\n let m = new RemoveBundleResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.RemoveBundleResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class SendInvoiceRequest implements i.SendInvoiceRequestInterface {\n merchantId: string;\n invoiceId: string;\n emailAddresses: string[];\n languageCode: string;\n\n static fromProto(proto: any): SendInvoiceRequest {\n let m = new SendInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.emailAddresses !== 'undefined') {toReturn['emailAddresses'] = this.emailAddresses;}\n if (typeof this.languageCode !== 'undefined') {toReturn['languageCode'] = this.languageCode;}\n return toReturn;\n }\n}\n\nexport class UpdateBundleRequest implements i.UpdateBundleRequestInterface {\n merchantId: string;\n invoiceId: string;\n bundleId: string;\n hideBundleItems: boolean;\n bundleInstanceId: string;\n\n static fromProto(proto: any): UpdateBundleRequest {\n let m = new UpdateBundleRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateBundleRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.hideBundleItems !== 'undefined') {toReturn['hideBundleItems'] = this.hideBundleItems;}\n if (typeof this.bundleInstanceId !== 'undefined') {toReturn['bundleInstanceId'] = this.bundleInstanceId;}\n return toReturn;\n }\n}\n\nexport class UpdateBundleResponse implements i.UpdateBundleResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): UpdateBundleResponse {\n let m = new UpdateBundleResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateBundleResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class UpdateDefaultTaxRatesRequest implements i.UpdateDefaultTaxRatesRequestInterface {\n invoiceId: string;\n merchantId: string;\n taxRateIds: string[];\n\n static fromProto(proto: any): UpdateDefaultTaxRatesRequest {\n let m = new UpdateDefaultTaxRatesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateDefaultTaxRatesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.taxRateIds !== 'undefined') {toReturn['taxRateIds'] = this.taxRateIds;}\n return toReturn;\n }\n}\n\nexport class UpdateDefaultTaxRatesResponse implements i.UpdateDefaultTaxRatesResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): UpdateDefaultTaxRatesResponse {\n let m = new UpdateDefaultTaxRatesResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateDefaultTaxRatesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class UpdateInvoiceRequest implements i.UpdateInvoiceRequestInterface {\n invoice: Invoice;\n fieldMask: FieldMask;\n\n static fromProto(proto: any): UpdateInvoiceRequest {\n let m = new UpdateInvoiceRequest();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n return toReturn;\n }\n}\n\nexport class UpdateInvoiceResponse implements i.UpdateInvoiceResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): UpdateInvoiceResponse {\n let m = new UpdateInvoiceResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateInvoiceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class UpdateLineItemRequest implements i.UpdateLineItemRequestInterface {\n merchantId: string;\n invoiceId: string;\n id: string;\n sku: string;\n amount: number;\n quantity: number;\n description: string;\n taxRates: string[];\n\n static fromProto(proto: any): UpdateLineItemRequest {\n let m = new UpdateLineItemRequest();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateLineItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.taxRates !== 'undefined') {toReturn['taxRates'] = this.taxRates;}\n return toReturn;\n }\n}\n\nexport class UpdateLineItemResponse implements i.UpdateLineItemResponseInterface {\n invoice: Invoice;\n\n static fromProto(proto: any): UpdateLineItemResponse {\n let m = new UpdateLineItemResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = Invoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateLineItemResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class VoidInvoiceRequest implements i.VoidInvoiceRequestInterface {\n merchantId: string;\n invoiceId: string;\n\n static fromProto(proto: any): VoidInvoiceRequest {\n let m = new VoidInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.VoidInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Balance implements i.BalanceInterface {\n currencyCode: string;\n amount: number;\n futurePayouts: number;\n inTransit: number;\n\n static fromProto(proto: any): Balance {\n let m = new Balance();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.futurePayouts) {m.futurePayouts = parseInt(proto.futurePayouts, 10);}\n if (proto.inTransit) {m.inTransit = parseInt(proto.inTransit, 10);}\n return m;\n }\n\n constructor(kwargs?: i.BalanceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.futurePayouts !== 'undefined') {toReturn['futurePayouts'] = this.futurePayouts;}\n if (typeof this.inTransit !== 'undefined') {toReturn['inTransit'] = this.inTransit;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class DateRange implements i.DateRangeInterface {\n start: Date;\n end: Date;\n\n static fromProto(proto: any): DateRange {\n let m = new DateRange();\n m = Object.assign(m, proto);\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n return m;\n }\n\n constructor(kwargs?: i.DateRangeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { DateRange } from './date-range';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ListPayoutsRequestFilters implements i.ListPayoutsRequestFiltersInterface {\n arrivalDateRange: DateRange;\n\n static fromProto(proto: any): ListPayoutsRequestFilters {\n let m = new ListPayoutsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.arrivalDateRange) {m.arrivalDateRange = DateRange.fromProto(proto.arrivalDateRange);}\n return m;\n }\n\n constructor(kwargs?: i.ListPayoutsRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.arrivalDateRange !== 'undefined' && this.arrivalDateRange !== null) {toReturn['arrivalDateRange'] = 'toApiJson' in this.arrivalDateRange ? (this.arrivalDateRange as any).toApiJson() : this.arrivalDateRange;}\n return toReturn;\n }\n}\n\nexport class ListPayoutsRequest implements i.ListPayoutsRequestInterface {\n filters: ListPayoutsRequestFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListPayoutsRequest {\n let m = new ListPayoutsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListPayoutsRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListPayoutsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListPayoutsResponse implements i.ListPayoutsResponseInterface {\n payouts: Payout[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListPayoutsResponse {\n let m = new ListPayoutsResponse();\n m = Object.assign(m, proto);\n if (proto.payouts) {m.payouts = proto.payouts.map(Payout.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListPayoutsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.payouts !== 'undefined' && this.payouts !== null) {toReturn['payouts'] = 'toApiJson' in this.payouts ? (this.payouts as any).toApiJson() : this.payouts;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class Payout implements i.PayoutInterface {\n id: string;\n arrivalDate: Date;\n amount: number;\n currency: e.Currency;\n status: e.PayoutStatus;\n type: e.PayoutType;\n lastFourDigits: string;\n bankName: string;\n bankId: string;\n\n static fromProto(proto: any): Payout {\n let m = new Payout();\n m = Object.assign(m, proto);\n if (proto.arrivalDate) {m.arrivalDate = new Date(proto.arrivalDate);}\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.status) {m.status = enumStringToValue<e.PayoutStatus>(e.PayoutStatus, proto.status);}\n if (proto.type) {m.type = enumStringToValue<e.PayoutType>(e.PayoutType, proto.type);}\n return m;\n }\n\n constructor(kwargs?: i.PayoutInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.arrivalDate !== 'undefined' && this.arrivalDate !== null) {toReturn['arrivalDate'] = 'toApiJson' in this.arrivalDate ? (this.arrivalDate as any).toApiJson() : this.arrivalDate;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.lastFourDigits !== 'undefined') {toReturn['lastFourDigits'] = this.lastFourDigits;}\n if (typeof this.bankName !== 'undefined') {toReturn['bankName'] = this.bankName;}\n if (typeof this.bankId !== 'undefined') {toReturn['bankId'] = this.bankId;}\n return toReturn;\n }\n}\n\nexport class ReconcilePayoutRequest implements i.ReconcilePayoutRequestInterface {\n bankReconciliationId: string;\n payoutId: string;\n allowRetries: boolean;\n\n static fromProto(proto: any): ReconcilePayoutRequest {\n let m = new ReconcilePayoutRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ReconcilePayoutRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.bankReconciliationId !== 'undefined') {toReturn['bankReconciliationId'] = this.bankReconciliationId;}\n if (typeof this.payoutId !== 'undefined') {toReturn['payoutId'] = this.payoutId;}\n if (typeof this.allowRetries !== 'undefined') {toReturn['allowRetries'] = this.allowRetries;}\n return toReturn;\n }\n}\n\nexport class ReconcilePayoutResponse implements i.ReconcilePayoutResponseInterface {\n pipelineId: string;\n\n static fromProto(proto: any): ReconcilePayoutResponse {\n let m = new ReconcilePayoutResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ReconcilePayoutResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pipelineId !== 'undefined') {toReturn['pipelineId'] = this.pipelineId;}\n return toReturn;\n }\n}\n\nexport class RetailPayout implements i.RetailPayoutInterface {\n id: string;\n arrivalDate: Date;\n amount: number;\n currencyCode: string;\n status: e.PayoutStatus;\n type: e.PayoutType;\n lastFourDigits: string;\n bankName: string;\n bankId: string;\n failureCode: string;\n failureMessage: string;\n\n static fromProto(proto: any): RetailPayout {\n let m = new RetailPayout();\n m = Object.assign(m, proto);\n if (proto.arrivalDate) {m.arrivalDate = new Date(proto.arrivalDate);}\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.status) {m.status = enumStringToValue<e.PayoutStatus>(e.PayoutStatus, proto.status);}\n if (proto.type) {m.type = enumStringToValue<e.PayoutType>(e.PayoutType, proto.type);}\n return m;\n }\n\n constructor(kwargs?: i.RetailPayoutInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.arrivalDate !== 'undefined' && this.arrivalDate !== null) {toReturn['arrivalDate'] = 'toApiJson' in this.arrivalDate ? (this.arrivalDate as any).toApiJson() : this.arrivalDate;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.lastFourDigits !== 'undefined') {toReturn['lastFourDigits'] = this.lastFourDigits;}\n if (typeof this.bankName !== 'undefined') {toReturn['bankName'] = this.bankName;}\n if (typeof this.bankId !== 'undefined') {toReturn['bankId'] = this.bankId;}\n if (typeof this.failureCode !== 'undefined') {toReturn['failureCode'] = this.failureCode;}\n if (typeof this.failureMessage !== 'undefined') {toReturn['failureMessage'] = this.failureMessage;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Balance } from './balance';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport { RetailPayout } from './payout';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ChargeSalesInvoiceRequest implements i.ChargeSalesInvoiceRequestInterface {\n merchantId: string;\n invoiceId: string;\n amount: number;\n\n static fromProto(proto: any): ChargeSalesInvoiceRequest {\n let m = new ChargeSalesInvoiceRequest();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ChargeSalesInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n return toReturn;\n }\n}\n\nexport class ConnectStripeAccountRequest implements i.ConnectStripeAccountRequestInterface {\n countryCode: string;\n failureUrl: string;\n successUrl: string;\n merchantId: string;\n\n static fromProto(proto: any): ConnectStripeAccountRequest {\n let m = new ConnectStripeAccountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ConnectStripeAccountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.countryCode !== 'undefined') {toReturn['countryCode'] = this.countryCode;}\n if (typeof this.failureUrl !== 'undefined') {toReturn['failureUrl'] = this.failureUrl;}\n if (typeof this.successUrl !== 'undefined') {toReturn['successUrl'] = this.successUrl;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class ConnectStripeAccountResponse implements i.ConnectStripeAccountResponseInterface {\n stripeUrl: string;\n error: string;\n\n static fromProto(proto: any): ConnectStripeAccountResponse {\n let m = new ConnectStripeAccountResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ConnectStripeAccountResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.stripeUrl !== 'undefined') {toReturn['stripeUrl'] = this.stripeUrl;}\n if (typeof this.error !== 'undefined') {toReturn['error'] = this.error;}\n return toReturn;\n }\n}\n\nexport class CreateMerchantRequest implements i.CreateMerchantRequestInterface {\n merchantId: string;\n address: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n emailAddress: string;\n phoneNumber: string;\n contactName: string;\n companyName: string;\n additionalEmailAddresses: string[];\n includeInFinancialRecords: CreateMerchantRequestIncludeInFinancialRecords;\n hasAlternativePaymentMethod: boolean;\n\n static fromProto(proto: any): CreateMerchantRequest {\n let m = new CreateMerchantRequest();\n m = Object.assign(m, proto);\n if (proto.includeInFinancialRecords) {m.includeInFinancialRecords = CreateMerchantRequestIncludeInFinancialRecords.fromProto(proto.includeInFinancialRecords);}\n return m;\n }\n\n constructor(kwargs?: i.CreateMerchantRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.address !== 'undefined') {toReturn['address'] = this.address;}\n if (typeof this.city !== 'undefined') {toReturn['city'] = this.city;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n if (typeof this.zipCode !== 'undefined') {toReturn['zipCode'] = this.zipCode;}\n if (typeof this.emailAddress !== 'undefined') {toReturn['emailAddress'] = this.emailAddress;}\n if (typeof this.phoneNumber !== 'undefined') {toReturn['phoneNumber'] = this.phoneNumber;}\n if (typeof this.contactName !== 'undefined') {toReturn['contactName'] = this.contactName;}\n if (typeof this.companyName !== 'undefined') {toReturn['companyName'] = this.companyName;}\n if (typeof this.additionalEmailAddresses !== 'undefined') {toReturn['additionalEmailAddresses'] = this.additionalEmailAddresses;}\n if (typeof this.includeInFinancialRecords !== 'undefined' && this.includeInFinancialRecords !== null) {toReturn['includeInFinancialRecords'] = 'toApiJson' in this.includeInFinancialRecords ? (this.includeInFinancialRecords as any).toApiJson() : this.includeInFinancialRecords;}\n if (typeof this.hasAlternativePaymentMethod !== 'undefined') {toReturn['hasAlternativePaymentMethod'] = this.hasAlternativePaymentMethod;}\n return toReturn;\n }\n}\n\nexport class DefaultCustomerConfiguration implements i.DefaultCustomerConfigurationInterface {\n generateMethod: string;\n collectionMethod: string;\n invoiceDay: number;\n\n static fromProto(proto: any): DefaultCustomerConfiguration {\n let m = new DefaultCustomerConfiguration();\n m = Object.assign(m, proto);\n if (proto.invoiceDay) {m.invoiceDay = parseInt(proto.invoiceDay, 10);}\n return m;\n }\n\n constructor(kwargs?: i.DefaultCustomerConfigurationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.generateMethod !== 'undefined') {toReturn['generateMethod'] = this.generateMethod;}\n if (typeof this.collectionMethod !== 'undefined') {toReturn['collectionMethod'] = this.collectionMethod;}\n if (typeof this.invoiceDay !== 'undefined') {toReturn['invoiceDay'] = this.invoiceDay;}\n return toReturn;\n }\n}\n\nexport class GetMerchantRequest implements i.GetMerchantRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetMerchantRequest {\n let m = new GetMerchantRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMerchantRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetMerchantResponse implements i.GetMerchantResponseInterface {\n merchant: Merchant;\n\n static fromProto(proto: any): GetMerchantResponse {\n let m = new GetMerchantResponse();\n m = Object.assign(m, proto);\n if (proto.merchant) {m.merchant = Merchant.fromProto(proto.merchant);}\n return m;\n }\n\n constructor(kwargs?: i.GetMerchantResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchant !== 'undefined' && this.merchant !== null) {toReturn['merchant'] = 'toApiJson' in this.merchant ? (this.merchant as any).toApiJson() : this.merchant;}\n return toReturn;\n }\n}\n\nexport class GetMultiRetailConfigurationsRequest implements i.GetMultiRetailConfigurationsRequestInterface {\n merchantId: string;\n retailGroupIds: string[];\n\n static fromProto(proto: any): GetMultiRetailConfigurationsRequest {\n let m = new GetMultiRetailConfigurationsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiRetailConfigurationsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.retailGroupIds !== 'undefined') {toReturn['retailGroupIds'] = this.retailGroupIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiRetailConfigurationsResponse implements i.GetMultiRetailConfigurationsResponseInterface {\n retailConfigurations: {[key: string]: RetailConfiguration};\n\n static fromProto(proto: any): GetMultiRetailConfigurationsResponse {\n let m = new GetMultiRetailConfigurationsResponse();\n m = Object.assign(m, proto);\n if (proto.retailConfigurations) {m.retailConfigurations = Object.keys(proto.retailConfigurations).reduce<any>((obj, k) => { obj[k] = RetailConfiguration.fromProto(proto.retailConfigurations[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiRetailConfigurationsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.retailConfigurations !== 'undefined' && this.retailConfigurations !== null) {toReturn['retailConfigurations'] = 'toApiJson' in this.retailConfigurations ? (this.retailConfigurations as any).toApiJson() : this.retailConfigurations;}\n return toReturn;\n }\n}\n\nexport class GetOutstandingBalanceRequest implements i.GetOutstandingBalanceRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetOutstandingBalanceRequest {\n let m = new GetOutstandingBalanceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetOutstandingBalanceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetOutstandingBalanceResponse implements i.GetOutstandingBalanceResponseInterface {\n outstandingBalance: number;\n currency: e.Currency;\n\n static fromProto(proto: any): GetOutstandingBalanceResponse {\n let m = new GetOutstandingBalanceResponse();\n m = Object.assign(m, proto);\n if (proto.outstandingBalance) {m.outstandingBalance = parseInt(proto.outstandingBalance, 10);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n return m;\n }\n\n constructor(kwargs?: i.GetOutstandingBalanceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.outstandingBalance !== 'undefined') {toReturn['outstandingBalance'] = this.outstandingBalance;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n return toReturn;\n }\n}\n\nexport class GetPayoutSummaryRequest implements i.GetPayoutSummaryRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetPayoutSummaryRequest {\n let m = new GetPayoutSummaryRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetPayoutSummaryRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetPayoutSummaryResponse implements i.GetPayoutSummaryResponseInterface {\n balances: Balance[];\n nextInTransitPayoutExpectedDate: Date;\n payoutInterval: string;\n payoutDelayDays: number;\n\n static fromProto(proto: any): GetPayoutSummaryResponse {\n let m = new GetPayoutSummaryResponse();\n m = Object.assign(m, proto);\n if (proto.balances) {m.balances = proto.balances.map(Balance.fromProto);}\n if (proto.nextInTransitPayoutExpectedDate) {m.nextInTransitPayoutExpectedDate = new Date(proto.nextInTransitPayoutExpectedDate);}\n if (proto.payoutDelayDays) {m.payoutDelayDays = parseInt(proto.payoutDelayDays, 10);}\n return m;\n }\n\n constructor(kwargs?: i.GetPayoutSummaryResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.balances !== 'undefined' && this.balances !== null) {toReturn['balances'] = 'toApiJson' in this.balances ? (this.balances as any).toApiJson() : this.balances;}\n if (typeof this.nextInTransitPayoutExpectedDate !== 'undefined' && this.nextInTransitPayoutExpectedDate !== null) {toReturn['nextInTransitPayoutExpectedDate'] = 'toApiJson' in this.nextInTransitPayoutExpectedDate ? (this.nextInTransitPayoutExpectedDate as any).toApiJson() : this.nextInTransitPayoutExpectedDate;}\n if (typeof this.payoutInterval !== 'undefined') {toReturn['payoutInterval'] = this.payoutInterval;}\n if (typeof this.payoutDelayDays !== 'undefined') {toReturn['payoutDelayDays'] = this.payoutDelayDays;}\n return toReturn;\n }\n}\n\nexport class GetRetailBalanceRequest implements i.GetRetailBalanceRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetRetailBalanceRequest {\n let m = new GetRetailBalanceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetRetailBalanceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetRetailBalanceResponse implements i.GetRetailBalanceResponseInterface {\n balances: Balance[];\n\n static fromProto(proto: any): GetRetailBalanceResponse {\n let m = new GetRetailBalanceResponse();\n m = Object.assign(m, proto);\n if (proto.balances) {m.balances = proto.balances.map(Balance.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetRetailBalanceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.balances !== 'undefined' && this.balances !== null) {toReturn['balances'] = 'toApiJson' in this.balances ? (this.balances as any).toApiJson() : this.balances;}\n return toReturn;\n }\n}\n\nexport class GetRetailPayoutRequest implements i.GetRetailPayoutRequestInterface {\n merchantId: string;\n payoutId: string;\n\n static fromProto(proto: any): GetRetailPayoutRequest {\n let m = new GetRetailPayoutRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetRetailPayoutRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.payoutId !== 'undefined') {toReturn['payoutId'] = this.payoutId;}\n return toReturn;\n }\n}\n\nexport class GetRetailPayoutResponse implements i.GetRetailPayoutResponseInterface {\n payout: RetailPayout;\n\n static fromProto(proto: any): GetRetailPayoutResponse {\n let m = new GetRetailPayoutResponse();\n m = Object.assign(m, proto);\n if (proto.payout) {m.payout = RetailPayout.fromProto(proto.payout);}\n return m;\n }\n\n constructor(kwargs?: i.GetRetailPayoutResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.payout !== 'undefined' && this.payout !== null) {toReturn['payout'] = 'toApiJson' in this.payout ? (this.payout as any).toApiJson() : this.payout;}\n return toReturn;\n }\n}\n\nexport class UpdateMerchantRequestIncludeInFinancialRecords implements i.UpdateMerchantRequestIncludeInFinancialRecordsInterface {\n includeInFinancialRecords: boolean;\n\n static fromProto(proto: any): UpdateMerchantRequestIncludeInFinancialRecords {\n let m = new UpdateMerchantRequestIncludeInFinancialRecords();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateMerchantRequestIncludeInFinancialRecordsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.includeInFinancialRecords !== 'undefined') {toReturn['includeInFinancialRecords'] = this.includeInFinancialRecords;}\n return toReturn;\n }\n}\n\nexport class CreateMerchantRequestIncludeInFinancialRecords implements i.CreateMerchantRequestIncludeInFinancialRecordsInterface {\n includeInFinancialRecords: boolean;\n\n static fromProto(proto: any): CreateMerchantRequestIncludeInFinancialRecords {\n let m = new CreateMerchantRequestIncludeInFinancialRecords();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateMerchantRequestIncludeInFinancialRecordsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.includeInFinancialRecords !== 'undefined') {toReturn['includeInFinancialRecords'] = this.includeInFinancialRecords;}\n return toReturn;\n }\n}\n\nexport class ListRetailPayoutsRequest implements i.ListRetailPayoutsRequestInterface {\n merchantId: string;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListRetailPayoutsRequest {\n let m = new ListRetailPayoutsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListRetailPayoutsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListRetailPayoutsResponse implements i.ListRetailPayoutsResponseInterface {\n payouts: RetailPayout[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListRetailPayoutsResponse {\n let m = new ListRetailPayoutsResponse();\n m = Object.assign(m, proto);\n if (proto.payouts) {m.payouts = proto.payouts.map(RetailPayout.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListRetailPayoutsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.payouts !== 'undefined' && this.payouts !== null) {toReturn['payouts'] = 'toApiJson' in this.payouts ? (this.payouts as any).toApiJson() : this.payouts;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class Merchant implements i.MerchantInterface {\n merchantId: string;\n address: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n emailAddress: string;\n phoneNumber: string;\n contactName: string;\n companyName: string;\n autoPostInvoices: boolean;\n autoChargeInvoices: boolean;\n includeInFinancialRecords: boolean;\n additionalEmailAddresses: string[];\n hasAlternativePaymentMethod: boolean;\n stripeAccountId: string;\n\n static fromProto(proto: any): Merchant {\n let m = new Merchant();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.MerchantInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.address !== 'undefined') {toReturn['address'] = this.address;}\n if (typeof this.city !== 'undefined') {toReturn['city'] = this.city;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n if (typeof this.zipCode !== 'undefined') {toReturn['zipCode'] = this.zipCode;}\n if (typeof this.emailAddress !== 'undefined') {toReturn['emailAddress'] = this.emailAddress;}\n if (typeof this.phoneNumber !== 'undefined') {toReturn['phoneNumber'] = this.phoneNumber;}\n if (typeof this.contactName !== 'undefined') {toReturn['contactName'] = this.contactName;}\n if (typeof this.companyName !== 'undefined') {toReturn['companyName'] = this.companyName;}\n if (typeof this.autoPostInvoices !== 'undefined') {toReturn['autoPostInvoices'] = this.autoPostInvoices;}\n if (typeof this.autoChargeInvoices !== 'undefined') {toReturn['autoChargeInvoices'] = this.autoChargeInvoices;}\n if (typeof this.includeInFinancialRecords !== 'undefined') {toReturn['includeInFinancialRecords'] = this.includeInFinancialRecords;}\n if (typeof this.additionalEmailAddresses !== 'undefined') {toReturn['additionalEmailAddresses'] = this.additionalEmailAddresses;}\n if (typeof this.hasAlternativePaymentMethod !== 'undefined') {toReturn['hasAlternativePaymentMethod'] = this.hasAlternativePaymentMethod;}\n if (typeof this.stripeAccountId !== 'undefined') {toReturn['stripeAccountId'] = this.stripeAccountId;}\n return toReturn;\n }\n}\n\nexport class RetailConfiguration implements i.RetailConfigurationInterface {\n merchantId: string;\n retailGroupId: string;\n currencyCode: string;\n defaultCustomerConfiguration: DefaultCustomerConfiguration;\n currencyConversionRate: number;\n\n static fromProto(proto: any): RetailConfiguration {\n let m = new RetailConfiguration();\n m = Object.assign(m, proto);\n if (proto.defaultCustomerConfiguration) {m.defaultCustomerConfiguration = DefaultCustomerConfiguration.fromProto(proto.defaultCustomerConfiguration);}\n if (proto.currencyConversionRate) {m.currencyConversionRate = parseInt(proto.currencyConversionRate, 10);}\n return m;\n }\n\n constructor(kwargs?: i.RetailConfigurationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.retailGroupId !== 'undefined') {toReturn['retailGroupId'] = this.retailGroupId;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.defaultCustomerConfiguration !== 'undefined' && this.defaultCustomerConfiguration !== null) {toReturn['defaultCustomerConfiguration'] = 'toApiJson' in this.defaultCustomerConfiguration ? (this.defaultCustomerConfiguration as any).toApiJson() : this.defaultCustomerConfiguration;}\n if (typeof this.currencyConversionRate !== 'undefined') {toReturn['currencyConversionRate'] = this.currencyConversionRate;}\n return toReturn;\n }\n}\n\nexport class GetMultiRetailConfigurationsResponseRetailConfigurationsEntry implements i.GetMultiRetailConfigurationsResponseRetailConfigurationsEntryInterface {\n key: string;\n value: RetailConfiguration;\n\n static fromProto(proto: any): GetMultiRetailConfigurationsResponseRetailConfigurationsEntry {\n let m = new GetMultiRetailConfigurationsResponseRetailConfigurationsEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = RetailConfiguration.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiRetailConfigurationsResponseRetailConfigurationsEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class SearchMerchantsRequest implements i.SearchMerchantsRequestInterface {\n searchTerm: string;\n sortBy: e.SearchMerchantsRequestSortBy;\n sortDirection: e.SortDirection;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): SearchMerchantsRequest {\n let m = new SearchMerchantsRequest();\n m = Object.assign(m, proto);\n if (proto.sortBy) {m.sortBy = enumStringToValue<e.SearchMerchantsRequestSortBy>(e.SearchMerchantsRequestSortBy, proto.sortBy);}\n if (proto.sortDirection) {m.sortDirection = enumStringToValue<e.SortDirection>(e.SortDirection, proto.sortDirection);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.SearchMerchantsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n if (typeof this.sortBy !== 'undefined') {toReturn['sortBy'] = this.sortBy;}\n if (typeof this.sortDirection !== 'undefined') {toReturn['sortDirection'] = this.sortDirection;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class SearchMerchantsResponse implements i.SearchMerchantsResponseInterface {\n merchants: Merchant[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): SearchMerchantsResponse {\n let m = new SearchMerchantsResponse();\n m = Object.assign(m, proto);\n if (proto.merchants) {m.merchants = proto.merchants.map(Merchant.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.SearchMerchantsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchants !== 'undefined' && this.merchants !== null) {toReturn['merchants'] = 'toApiJson' in this.merchants ? (this.merchants as any).toApiJson() : this.merchants;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class SetAutoChargeInvoicesRequest implements i.SetAutoChargeInvoicesRequestInterface {\n merchantId: string;\n autoChargeInvoices: boolean;\n\n static fromProto(proto: any): SetAutoChargeInvoicesRequest {\n let m = new SetAutoChargeInvoicesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SetAutoChargeInvoicesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.autoChargeInvoices !== 'undefined') {toReturn['autoChargeInvoices'] = this.autoChargeInvoices;}\n return toReturn;\n }\n}\n\nexport class SetAutoPostInvoicesRequest implements i.SetAutoPostInvoicesRequestInterface {\n merchantId: string;\n shouldAutoPostInvoices: boolean;\n\n static fromProto(proto: any): SetAutoPostInvoicesRequest {\n let m = new SetAutoPostInvoicesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SetAutoPostInvoicesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.shouldAutoPostInvoices !== 'undefined') {toReturn['shouldAutoPostInvoices'] = this.shouldAutoPostInvoices;}\n return toReturn;\n }\n}\n\nexport class SetDefaultPaymentCardRequest implements i.SetDefaultPaymentCardRequestInterface {\n merchantId: string;\n cardId: string;\n\n static fromProto(proto: any): SetDefaultPaymentCardRequest {\n let m = new SetDefaultPaymentCardRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SetDefaultPaymentCardRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.cardId !== 'undefined') {toReturn['cardId'] = this.cardId;}\n return toReturn;\n }\n}\n\nexport class SetHasAlternativePaymentMethodRequest implements i.SetHasAlternativePaymentMethodRequestInterface {\n merchantId: string;\n hasAlternativePaymentMethod: boolean;\n\n static fromProto(proto: any): SetHasAlternativePaymentMethodRequest {\n let m = new SetHasAlternativePaymentMethodRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SetHasAlternativePaymentMethodRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.hasAlternativePaymentMethod !== 'undefined') {toReturn['hasAlternativePaymentMethod'] = this.hasAlternativePaymentMethod;}\n return toReturn;\n }\n}\n\nexport class SetIncludeInFinancialRecordsRequest implements i.SetIncludeInFinancialRecordsRequestInterface {\n merchantId: string;\n includeInFinancialRecords: boolean;\n\n static fromProto(proto: any): SetIncludeInFinancialRecordsRequest {\n let m = new SetIncludeInFinancialRecordsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SetIncludeInFinancialRecordsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.includeInFinancialRecords !== 'undefined') {toReturn['includeInFinancialRecords'] = this.includeInFinancialRecords;}\n return toReturn;\n }\n}\n\nexport class UpdateMerchantRequest implements i.UpdateMerchantRequestInterface {\n merchantId: string;\n address: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n emailAddress: string;\n phoneNumber: string;\n contactName: string;\n companyName: string;\n additionalEmailAddresses: string[];\n includeInFinancialRecords: UpdateMerchantRequestIncludeInFinancialRecords;\n hasAlternativePaymentMethod: boolean;\n\n static fromProto(proto: any): UpdateMerchantRequest {\n let m = new UpdateMerchantRequest();\n m = Object.assign(m, proto);\n if (proto.includeInFinancialRecords) {m.includeInFinancialRecords = UpdateMerchantRequestIncludeInFinancialRecords.fromProto(proto.includeInFinancialRecords);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateMerchantRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.address !== 'undefined') {toReturn['address'] = this.address;}\n if (typeof this.city !== 'undefined') {toReturn['city'] = this.city;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n if (typeof this.zipCode !== 'undefined') {toReturn['zipCode'] = this.zipCode;}\n if (typeof this.emailAddress !== 'undefined') {toReturn['emailAddress'] = this.emailAddress;}\n if (typeof this.phoneNumber !== 'undefined') {toReturn['phoneNumber'] = this.phoneNumber;}\n if (typeof this.contactName !== 'undefined') {toReturn['contactName'] = this.contactName;}\n if (typeof this.companyName !== 'undefined') {toReturn['companyName'] = this.companyName;}\n if (typeof this.additionalEmailAddresses !== 'undefined') {toReturn['additionalEmailAddresses'] = this.additionalEmailAddresses;}\n if (typeof this.includeInFinancialRecords !== 'undefined' && this.includeInFinancialRecords !== null) {toReturn['includeInFinancialRecords'] = 'toApiJson' in this.includeInFinancialRecords ? (this.includeInFinancialRecords as any).toApiJson() : this.includeInFinancialRecords;}\n if (typeof this.hasAlternativePaymentMethod !== 'undefined') {toReturn['hasAlternativePaymentMethod'] = this.hasAlternativePaymentMethod;}\n return toReturn;\n }\n}\n\nexport class UpsertDefaultRetailCustomerConfigurationRequest implements i.UpsertDefaultRetailCustomerConfigurationRequestInterface {\n merchantId: string;\n retailGroupId: string;\n defaultCustomerConfiguration: DefaultCustomerConfiguration;\n\n static fromProto(proto: any): UpsertDefaultRetailCustomerConfigurationRequest {\n let m = new UpsertDefaultRetailCustomerConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.defaultCustomerConfiguration) {m.defaultCustomerConfiguration = DefaultCustomerConfiguration.fromProto(proto.defaultCustomerConfiguration);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertDefaultRetailCustomerConfigurationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.retailGroupId !== 'undefined') {toReturn['retailGroupId'] = this.retailGroupId;}\n if (typeof this.defaultCustomerConfiguration !== 'undefined' && this.defaultCustomerConfiguration !== null) {toReturn['defaultCustomerConfiguration'] = 'toApiJson' in this.defaultCustomerConfiguration ? (this.defaultCustomerConfiguration as any).toApiJson() : this.defaultCustomerConfiguration;}\n return toReturn;\n }\n}\n\nexport class UpsertRetailConfigurationRequest implements i.UpsertRetailConfigurationRequestInterface {\n merchantId: string;\n retailGroupId: string;\n currencyCode: string;\n currencyConversionRate: number;\n\n static fromProto(proto: any): UpsertRetailConfigurationRequest {\n let m = new UpsertRetailConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.currencyConversionRate) {m.currencyConversionRate = parseInt(proto.currencyConversionRate, 10);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertRetailConfigurationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.retailGroupId !== 'undefined') {toReturn['retailGroupId'] = this.retailGroupId;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.currencyConversionRate !== 'undefined') {toReturn['currencyConversionRate'] = this.currencyConversionRate;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ListMerchantBillingReportsRequest implements i.ListMerchantBillingReportsRequestInterface {\n merchantId: string;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListMerchantBillingReportsRequest {\n let m = new ListMerchantBillingReportsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListMerchantBillingReportsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListMerchantBillingReportsResponse implements i.ListMerchantBillingReportsResponseInterface {\n reports: MerchantReport[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListMerchantBillingReportsResponse {\n let m = new ListMerchantBillingReportsResponse();\n m = Object.assign(m, proto);\n if (proto.reports) {m.reports = proto.reports.map(MerchantReport.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListMerchantBillingReportsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.reports !== 'undefined' && this.reports !== null) {toReturn['reports'] = 'toApiJson' in this.reports ? (this.reports as any).toApiJson() : this.reports;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class MerchantReport implements i.MerchantReportInterface {\n merchantId: string;\n year: number;\n month: e.Month;\n created: Date;\n status: e.MerchantReportStatus;\n\n static fromProto(proto: any): MerchantReport {\n let m = new MerchantReport();\n m = Object.assign(m, proto);\n if (proto.year) {m.year = parseInt(proto.year, 10);}\n if (proto.month) {m.month = enumStringToValue<e.Month>(e.Month, proto.month);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.status) {m.status = enumStringToValue<e.MerchantReportStatus>(e.MerchantReportStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.MerchantReportInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.year !== 'undefined') {toReturn['year'] = this.year;}\n if (typeof this.month !== 'undefined') {toReturn['month'] = this.month;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CreateMeteredComponentRequest implements i.CreateMeteredComponentRequestInterface {\n component: MeteredComponent;\n sku: string;\n\n static fromProto(proto: any): CreateMeteredComponentRequest {\n let m = new CreateMeteredComponentRequest();\n m = Object.assign(m, proto);\n if (proto.component) {m.component = MeteredComponent.fromProto(proto.component);}\n return m;\n }\n\n constructor(kwargs?: i.CreateMeteredComponentRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.component !== 'undefined' && this.component !== null) {toReturn['component'] = 'toApiJson' in this.component ? (this.component as any).toApiJson() : this.component;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class MeteredComponent implements i.MeteredComponentInterface {\n componentId: string;\n name: string;\n\n static fromProto(proto: any): MeteredComponent {\n let m = new MeteredComponent();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.MeteredComponentInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.componentId !== 'undefined') {toReturn['componentId'] = this.componentId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n return toReturn;\n }\n}\n\nexport class TickComponentUsageRequest implements i.TickComponentUsageRequestInterface {\n merchantId: string;\n customerId: string;\n componentId: string;\n orderId: string;\n sku: string;\n quantity: number;\n idempotencyKey: string;\n\n static fromProto(proto: any): TickComponentUsageRequest {\n let m = new TickComponentUsageRequest();\n m = Object.assign(m, proto);\n if (proto.quantity) {m.quantity = parseInt(proto.quantity, 10);}\n return m;\n }\n\n constructor(kwargs?: i.TickComponentUsageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.componentId !== 'undefined') {toReturn['componentId'] = this.componentId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.idempotencyKey !== 'undefined') {toReturn['idempotencyKey'] = this.idempotencyKey;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class RetailPaymentCardDetails implements i.RetailPaymentCardDetailsInterface {\n cardType: e.CardType;\n lastFourDigits: string;\n\n static fromProto(proto: any): RetailPaymentCardDetails {\n let m = new RetailPaymentCardDetails();\n m = Object.assign(m, proto);\n if (proto.cardType) {m.cardType = enumStringToValue<e.CardType>(e.CardType, proto.cardType);}\n return m;\n }\n\n constructor(kwargs?: i.RetailPaymentCardDetailsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.cardType !== 'undefined') {toReturn['cardType'] = this.cardType;}\n if (typeof this.lastFourDigits !== 'undefined') {toReturn['lastFourDigits'] = this.lastFourDigits;}\n return toReturn;\n }\n}\n\nexport class CloseRetailDisputeRequest implements i.CloseRetailDisputeRequestInterface {\n merchantId: string;\n disputeId: string;\n\n static fromProto(proto: any): CloseRetailDisputeRequest {\n let m = new CloseRetailDisputeRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CloseRetailDisputeRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.disputeId !== 'undefined') {toReturn['disputeId'] = this.disputeId;}\n return toReturn;\n }\n}\n\nexport class ConfigureRetailPaymentProviderRequest implements i.ConfigureRetailPaymentProviderRequestInterface {\n merchantId: string;\n failureUrl: string;\n successUrl: string;\n\n static fromProto(proto: any): ConfigureRetailPaymentProviderRequest {\n let m = new ConfigureRetailPaymentProviderRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ConfigureRetailPaymentProviderRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.failureUrl !== 'undefined') {toReturn['failureUrl'] = this.failureUrl;}\n if (typeof this.successUrl !== 'undefined') {toReturn['successUrl'] = this.successUrl;}\n return toReturn;\n }\n}\n\nexport class ConfigureRetailPaymentProviderResponse implements i.ConfigureRetailPaymentProviderResponseInterface {\n stripeUrl: string;\n error: string;\n\n static fromProto(proto: any): ConfigureRetailPaymentProviderResponse {\n let m = new ConfigureRetailPaymentProviderResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ConfigureRetailPaymentProviderResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.stripeUrl !== 'undefined') {toReturn['stripeUrl'] = this.stripeUrl;}\n if (typeof this.error !== 'undefined') {toReturn['error'] = this.error;}\n return toReturn;\n }\n}\n\nexport class ConfirmRetailPaymentRequest implements i.ConfirmRetailPaymentRequestInterface {\n merchantId: string;\n id: string;\n\n static fromProto(proto: any): ConfirmRetailPaymentRequest {\n let m = new ConfirmRetailPaymentRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ConfirmRetailPaymentRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class Dispute implements i.DisputeInterface {\n paymentId: string;\n status: e.DisputeStatus;\n id: string;\n amount: number;\n created: Date;\n currencyCode: string;\n evidence: DisputeEvidence;\n evidenceDetails: DisputeEvidenceDetails;\n isChargeRefundable: boolean;\n reason: string;\n fee: number;\n feeCurrencyCode: string;\n\n static fromProto(proto: any): Dispute {\n let m = new Dispute();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.DisputeStatus>(e.DisputeStatus, proto.status);}\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.evidence) {m.evidence = DisputeEvidence.fromProto(proto.evidence);}\n if (proto.evidenceDetails) {m.evidenceDetails = DisputeEvidenceDetails.fromProto(proto.evidenceDetails);}\n if (proto.fee) {m.fee = parseInt(proto.fee, 10);}\n return m;\n }\n\n constructor(kwargs?: i.DisputeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.paymentId !== 'undefined') {toReturn['paymentId'] = this.paymentId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.evidence !== 'undefined' && this.evidence !== null) {toReturn['evidence'] = 'toApiJson' in this.evidence ? (this.evidence as any).toApiJson() : this.evidence;}\n if (typeof this.evidenceDetails !== 'undefined' && this.evidenceDetails !== null) {toReturn['evidenceDetails'] = 'toApiJson' in this.evidenceDetails ? (this.evidenceDetails as any).toApiJson() : this.evidenceDetails;}\n if (typeof this.isChargeRefundable !== 'undefined') {toReturn['isChargeRefundable'] = this.isChargeRefundable;}\n if (typeof this.reason !== 'undefined') {toReturn['reason'] = this.reason;}\n if (typeof this.fee !== 'undefined') {toReturn['fee'] = this.fee;}\n if (typeof this.feeCurrencyCode !== 'undefined') {toReturn['feeCurrencyCode'] = this.feeCurrencyCode;}\n return toReturn;\n }\n}\n\nexport class DisputeEvidence implements i.DisputeEvidenceInterface {\n customerCommunication: File;\n customerSignature: File;\n shippingDocumentation: File;\n receipt: File;\n uncategorizedFile: File;\n billingAddress: string;\n customerEmailAddress: string;\n customerName: string;\n productDescription: string;\n\n static fromProto(proto: any): DisputeEvidence {\n let m = new DisputeEvidence();\n m = Object.assign(m, proto);\n if (proto.customerCommunication) {m.customerCommunication = File.fromProto(proto.customerCommunication);}\n if (proto.customerSignature) {m.customerSignature = File.fromProto(proto.customerSignature);}\n if (proto.shippingDocumentation) {m.shippingDocumentation = File.fromProto(proto.shippingDocumentation);}\n if (proto.receipt) {m.receipt = File.fromProto(proto.receipt);}\n if (proto.uncategorizedFile) {m.uncategorizedFile = File.fromProto(proto.uncategorizedFile);}\n return m;\n }\n\n constructor(kwargs?: i.DisputeEvidenceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerCommunication !== 'undefined' && this.customerCommunication !== null) {toReturn['customerCommunication'] = 'toApiJson' in this.customerCommunication ? (this.customerCommunication as any).toApiJson() : this.customerCommunication;}\n if (typeof this.customerSignature !== 'undefined' && this.customerSignature !== null) {toReturn['customerSignature'] = 'toApiJson' in this.customerSignature ? (this.customerSignature as any).toApiJson() : this.customerSignature;}\n if (typeof this.shippingDocumentation !== 'undefined' && this.shippingDocumentation !== null) {toReturn['shippingDocumentation'] = 'toApiJson' in this.shippingDocumentation ? (this.shippingDocumentation as any).toApiJson() : this.shippingDocumentation;}\n if (typeof this.receipt !== 'undefined' && this.receipt !== null) {toReturn['receipt'] = 'toApiJson' in this.receipt ? (this.receipt as any).toApiJson() : this.receipt;}\n if (typeof this.uncategorizedFile !== 'undefined' && this.uncategorizedFile !== null) {toReturn['uncategorizedFile'] = 'toApiJson' in this.uncategorizedFile ? (this.uncategorizedFile as any).toApiJson() : this.uncategorizedFile;}\n if (typeof this.billingAddress !== 'undefined') {toReturn['billingAddress'] = this.billingAddress;}\n if (typeof this.customerEmailAddress !== 'undefined') {toReturn['customerEmailAddress'] = this.customerEmailAddress;}\n if (typeof this.customerName !== 'undefined') {toReturn['customerName'] = this.customerName;}\n if (typeof this.productDescription !== 'undefined') {toReturn['productDescription'] = this.productDescription;}\n return toReturn;\n }\n}\n\nexport class SubmitEvidenceRequestDisputeEvidence implements i.SubmitEvidenceRequestDisputeEvidenceInterface {\n billingAddress: string;\n customerEmailAddress: string;\n customerName: string;\n productDescription: string;\n customerSignatureFileId: string;\n customerCommunicationFileId: string;\n receiptFileId: string;\n shippingDocumentationFileId: string;\n uncategorizedFileId: string;\n\n static fromProto(proto: any): SubmitEvidenceRequestDisputeEvidence {\n let m = new SubmitEvidenceRequestDisputeEvidence();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubmitEvidenceRequestDisputeEvidenceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.billingAddress !== 'undefined') {toReturn['billingAddress'] = this.billingAddress;}\n if (typeof this.customerEmailAddress !== 'undefined') {toReturn['customerEmailAddress'] = this.customerEmailAddress;}\n if (typeof this.customerName !== 'undefined') {toReturn['customerName'] = this.customerName;}\n if (typeof this.productDescription !== 'undefined') {toReturn['productDescription'] = this.productDescription;}\n if (typeof this.customerSignatureFileId !== 'undefined') {toReturn['customerSignatureFileId'] = this.customerSignatureFileId;}\n if (typeof this.customerCommunicationFileId !== 'undefined') {toReturn['customerCommunicationFileId'] = this.customerCommunicationFileId;}\n if (typeof this.receiptFileId !== 'undefined') {toReturn['receiptFileId'] = this.receiptFileId;}\n if (typeof this.shippingDocumentationFileId !== 'undefined') {toReturn['shippingDocumentationFileId'] = this.shippingDocumentationFileId;}\n if (typeof this.uncategorizedFileId !== 'undefined') {toReturn['uncategorizedFileId'] = this.uncategorizedFileId;}\n return toReturn;\n }\n}\n\nexport class DisputeEvidenceDetails implements i.DisputeEvidenceDetailsInterface {\n dueBy: Date;\n hasEvidence: boolean;\n pastDue: boolean;\n submissionCount: number;\n\n static fromProto(proto: any): DisputeEvidenceDetails {\n let m = new DisputeEvidenceDetails();\n m = Object.assign(m, proto);\n if (proto.dueBy) {m.dueBy = new Date(proto.dueBy);}\n if (proto.submissionCount) {m.submissionCount = parseInt(proto.submissionCount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.DisputeEvidenceDetailsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.dueBy !== 'undefined' && this.dueBy !== null) {toReturn['dueBy'] = 'toApiJson' in this.dueBy ? (this.dueBy as any).toApiJson() : this.dueBy;}\n if (typeof this.hasEvidence !== 'undefined') {toReturn['hasEvidence'] = this.hasEvidence;}\n if (typeof this.pastDue !== 'undefined') {toReturn['pastDue'] = this.pastDue;}\n if (typeof this.submissionCount !== 'undefined') {toReturn['submissionCount'] = this.submissionCount;}\n return toReturn;\n }\n}\n\nexport class File implements i.FileInterface {\n created: Date;\n id: string;\n filename: string;\n url: string;\n\n static fromProto(proto: any): File {\n let m = new File();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n return m;\n }\n\n constructor(kwargs?: i.FileInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.filename !== 'undefined') {toReturn['filename'] = this.filename;}\n if (typeof this.url !== 'undefined') {toReturn['url'] = this.url;}\n return toReturn;\n }\n}\n\nexport class GetRetailDisputeRequest implements i.GetRetailDisputeRequestInterface {\n merchantId: string;\n disputeId: string;\n\n static fromProto(proto: any): GetRetailDisputeRequest {\n let m = new GetRetailDisputeRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetRetailDisputeRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.disputeId !== 'undefined') {toReturn['disputeId'] = this.disputeId;}\n return toReturn;\n }\n}\n\nexport class GetRetailDisputeResponse implements i.GetRetailDisputeResponseInterface {\n dispute: Dispute;\n\n static fromProto(proto: any): GetRetailDisputeResponse {\n let m = new GetRetailDisputeResponse();\n m = Object.assign(m, proto);\n if (proto.dispute) {m.dispute = Dispute.fromProto(proto.dispute);}\n return m;\n }\n\n constructor(kwargs?: i.GetRetailDisputeResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.dispute !== 'undefined' && this.dispute !== null) {toReturn['dispute'] = 'toApiJson' in this.dispute ? (this.dispute as any).toApiJson() : this.dispute;}\n return toReturn;\n }\n}\n\nexport class GetRetailPaymentProviderRequest implements i.GetRetailPaymentProviderRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetRetailPaymentProviderRequest {\n let m = new GetRetailPaymentProviderRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetRetailPaymentProviderRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetRetailPaymentProviderResponse implements i.GetRetailPaymentProviderResponseInterface {\n statementDescriptor: string;\n stripeConnectId: string;\n\n static fromProto(proto: any): GetRetailPaymentProviderResponse {\n let m = new GetRetailPaymentProviderResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetRetailPaymentProviderResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.statementDescriptor !== 'undefined') {toReturn['statementDescriptor'] = this.statementDescriptor;}\n if (typeof this.stripeConnectId !== 'undefined') {toReturn['stripeConnectId'] = this.stripeConnectId;}\n return toReturn;\n }\n}\n\nexport class GetRetailPaymentRequest implements i.GetRetailPaymentRequestInterface {\n merchantId: string;\n paymentId: string;\n\n static fromProto(proto: any): GetRetailPaymentRequest {\n let m = new GetRetailPaymentRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetRetailPaymentRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.paymentId !== 'undefined') {toReturn['paymentId'] = this.paymentId;}\n return toReturn;\n }\n}\n\nexport class GetRetailPaymentResponse implements i.GetRetailPaymentResponseInterface {\n payment: RetailPayment;\n\n static fromProto(proto: any): GetRetailPaymentResponse {\n let m = new GetRetailPaymentResponse();\n m = Object.assign(m, proto);\n if (proto.payment) {m.payment = RetailPayment.fromProto(proto.payment);}\n return m;\n }\n\n constructor(kwargs?: i.GetRetailPaymentResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.payment !== 'undefined' && this.payment !== null) {toReturn['payment'] = 'toApiJson' in this.payment ? (this.payment as any).toApiJson() : this.payment;}\n return toReturn;\n }\n}\n\nexport class ListPaymentRequestListPaymentFilters implements i.ListPaymentRequestListPaymentFiltersInterface {\n merchantId: string;\n allocationIds: string[];\n start: Date;\n end: Date;\n\n static fromProto(proto: any): ListPaymentRequestListPaymentFilters {\n let m = new ListPaymentRequestListPaymentFilters();\n m = Object.assign(m, proto);\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n return m;\n }\n\n constructor(kwargs?: i.ListPaymentRequestListPaymentFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.allocationIds !== 'undefined') {toReturn['allocationIds'] = this.allocationIds;}\n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n return toReturn;\n }\n}\n\nexport class ListPaymentRequest implements i.ListPaymentRequestInterface {\n filters: ListPaymentRequestListPaymentFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListPaymentRequest {\n let m = new ListPaymentRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListPaymentRequestListPaymentFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListPaymentRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListPaymentResponse implements i.ListPaymentResponseInterface {\n payments: Payment[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListPaymentResponse {\n let m = new ListPaymentResponse();\n m = Object.assign(m, proto);\n if (proto.payments) {m.payments = proto.payments.map(Payment.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListPaymentResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.payments !== 'undefined' && this.payments !== null) {toReturn['payments'] = 'toApiJson' in this.payments ? (this.payments as any).toApiJson() : this.payments;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class ListRetailDisputesRequest implements i.ListRetailDisputesRequestInterface {\n merchantId: string;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListRetailDisputesRequest {\n let m = new ListRetailDisputesRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListRetailDisputesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListRetailDisputesResponse implements i.ListRetailDisputesResponseInterface {\n disputes: Dispute[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListRetailDisputesResponse {\n let m = new ListRetailDisputesResponse();\n m = Object.assign(m, proto);\n if (proto.disputes) {m.disputes = proto.disputes.map(Dispute.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListRetailDisputesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.disputes !== 'undefined' && this.disputes !== null) {toReturn['disputes'] = 'toApiJson' in this.disputes ? (this.disputes as any).toApiJson() : this.disputes;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class ListRetailPaymentsRequestListRetailPaymentsFilters implements i.ListRetailPaymentsRequestListRetailPaymentsFiltersInterface {\n payoutId: string;\n customerId: string;\n createdDateGte: Date;\n createdDateLte: Date;\n\n static fromProto(proto: any): ListRetailPaymentsRequestListRetailPaymentsFilters {\n let m = new ListRetailPaymentsRequestListRetailPaymentsFilters();\n m = Object.assign(m, proto);\n if (proto.createdDateGte) {m.createdDateGte = new Date(proto.createdDateGte);}\n if (proto.createdDateLte) {m.createdDateLte = new Date(proto.createdDateLte);}\n return m;\n }\n\n constructor(kwargs?: i.ListRetailPaymentsRequestListRetailPaymentsFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.payoutId !== 'undefined') {toReturn['payoutId'] = this.payoutId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.createdDateGte !== 'undefined' && this.createdDateGte !== null) {toReturn['createdDateGte'] = 'toApiJson' in this.createdDateGte ? (this.createdDateGte as any).toApiJson() : this.createdDateGte;}\n if (typeof this.createdDateLte !== 'undefined' && this.createdDateLte !== null) {toReturn['createdDateLte'] = 'toApiJson' in this.createdDateLte ? (this.createdDateLte as any).toApiJson() : this.createdDateLte;}\n return toReturn;\n }\n}\n\nexport class ListRetailPaymentsRequest implements i.ListRetailPaymentsRequestInterface {\n merchantId: string;\n pagingOptions: PagedRequestOptions;\n filters: ListRetailPaymentsRequestListRetailPaymentsFilters;\n\n static fromProto(proto: any): ListRetailPaymentsRequest {\n let m = new ListRetailPaymentsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n if (proto.filters) {m.filters = ListRetailPaymentsRequestListRetailPaymentsFilters.fromProto(proto.filters);}\n return m;\n }\n\n constructor(kwargs?: i.ListRetailPaymentsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n return toReturn;\n }\n}\n\nexport class ListRetailPaymentsResponse implements i.ListRetailPaymentsResponseInterface {\n payments: RetailPayment[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListRetailPaymentsResponse {\n let m = new ListRetailPaymentsResponse();\n m = Object.assign(m, proto);\n if (proto.payments) {m.payments = proto.payments.map(RetailPayment.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListRetailPaymentsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.payments !== 'undefined' && this.payments !== null) {toReturn['payments'] = 'toApiJson' in this.payments ? (this.payments as any).toApiJson() : this.payments;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class PrepareRetailPaymentRequestOrder implements i.PrepareRetailPaymentRequestOrderInterface {\n orderId: string;\n amount: number;\n currencyCode: string;\n paymentMethodId: string;\n\n static fromProto(proto: any): PrepareRetailPaymentRequestOrder {\n let m = new PrepareRetailPaymentRequestOrder();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.PrepareRetailPaymentRequestOrderInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.paymentMethodId !== 'undefined') {toReturn['paymentMethodId'] = this.paymentMethodId;}\n return toReturn;\n }\n}\n\nexport class Payment implements i.PaymentInterface {\n merchantId: string;\n created: Date;\n currency: e.Currency;\n paymentSource: e.PaymentSource;\n allocations: PaymentPaymentAllocation[];\n total: number;\n description: string;\n externalReferenceId: string;\n status: e.PaymentStatus;\n\n static fromProto(proto: any): Payment {\n let m = new Payment();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.paymentSource) {m.paymentSource = enumStringToValue<e.PaymentSource>(e.PaymentSource, proto.paymentSource);}\n if (proto.allocations) {m.allocations = proto.allocations.map(PaymentPaymentAllocation.fromProto);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.status) {m.status = enumStringToValue<e.PaymentStatus>(e.PaymentStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.PaymentInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.paymentSource !== 'undefined') {toReturn['paymentSource'] = this.paymentSource;}\n if (typeof this.allocations !== 'undefined' && this.allocations !== null) {toReturn['allocations'] = 'toApiJson' in this.allocations ? (this.allocations as any).toApiJson() : this.allocations;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.externalReferenceId !== 'undefined') {toReturn['externalReferenceId'] = this.externalReferenceId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n return toReturn;\n }\n}\n\nexport class PaymentPaymentAllocation implements i.PaymentPaymentAllocationInterface {\n referenceId: string;\n amount: number;\n type: e.PaymentAllocationType;\n\n static fromProto(proto: any): PaymentPaymentAllocation {\n let m = new PaymentPaymentAllocation();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.type) {m.type = enumStringToValue<e.PaymentAllocationType>(e.PaymentAllocationType, proto.type);}\n return m;\n }\n\n constructor(kwargs?: i.PaymentPaymentAllocationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.referenceId !== 'undefined') {toReturn['referenceId'] = this.referenceId;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n return toReturn;\n }\n}\n\nexport class PrepareRetailPaymentRequest implements i.PrepareRetailPaymentRequestInterface {\n merchantId: string;\n customerId: string;\n invoiceId: string;\n order: PrepareRetailPaymentRequestOrder;\n\n static fromProto(proto: any): PrepareRetailPaymentRequest {\n let m = new PrepareRetailPaymentRequest();\n m = Object.assign(m, proto);\n if (proto.order) {m.order = PrepareRetailPaymentRequestOrder.fromProto(proto.order);}\n return m;\n }\n\n constructor(kwargs?: i.PrepareRetailPaymentRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.order !== 'undefined' && this.order !== null) {toReturn['order'] = 'toApiJson' in this.order ? (this.order as any).toApiJson() : this.order;}\n return toReturn;\n }\n}\n\nexport class PrepareRetailPaymentResponse implements i.PrepareRetailPaymentResponseInterface {\n stripeClientSecret: string;\n intentId: string;\n\n static fromProto(proto: any): PrepareRetailPaymentResponse {\n let m = new PrepareRetailPaymentResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PrepareRetailPaymentResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.stripeClientSecret !== 'undefined') {toReturn['stripeClientSecret'] = this.stripeClientSecret;}\n if (typeof this.intentId !== 'undefined') {toReturn['intentId'] = this.intentId;}\n return toReturn;\n }\n}\n\nexport class RetailPayment implements i.RetailPaymentInterface {\n merchantId: string;\n created: Date;\n currencyCode: string;\n amount: number;\n referenceId: string;\n referenceType: e.RetailPaymentReferenceType;\n customerId: string;\n status: e.PaymentStatus;\n description: string;\n failureCode: string;\n failureMessage: string;\n applicationFee: number;\n disputed: boolean;\n id: string;\n dispute: Dispute;\n cardDetails: RetailPaymentCardDetails;\n\n static fromProto(proto: any): RetailPayment {\n let m = new RetailPayment();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.referenceType) {m.referenceType = enumStringToValue<e.RetailPaymentReferenceType>(e.RetailPaymentReferenceType, proto.referenceType);}\n if (proto.status) {m.status = enumStringToValue<e.PaymentStatus>(e.PaymentStatus, proto.status);}\n if (proto.applicationFee) {m.applicationFee = parseInt(proto.applicationFee, 10);}\n if (proto.dispute) {m.dispute = Dispute.fromProto(proto.dispute);}\n if (proto.cardDetails) {m.cardDetails = RetailPaymentCardDetails.fromProto(proto.cardDetails);}\n return m;\n }\n\n constructor(kwargs?: i.RetailPaymentInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.referenceId !== 'undefined') {toReturn['referenceId'] = this.referenceId;}\n if (typeof this.referenceType !== 'undefined') {toReturn['referenceType'] = this.referenceType;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.failureCode !== 'undefined') {toReturn['failureCode'] = this.failureCode;}\n if (typeof this.failureMessage !== 'undefined') {toReturn['failureMessage'] = this.failureMessage;}\n if (typeof this.applicationFee !== 'undefined') {toReturn['applicationFee'] = this.applicationFee;}\n if (typeof this.disputed !== 'undefined') {toReturn['disputed'] = this.disputed;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.dispute !== 'undefined' && this.dispute !== null) {toReturn['dispute'] = 'toApiJson' in this.dispute ? (this.dispute as any).toApiJson() : this.dispute;}\n if (typeof this.cardDetails !== 'undefined' && this.cardDetails !== null) {toReturn['cardDetails'] = 'toApiJson' in this.cardDetails ? (this.cardDetails as any).toApiJson() : this.cardDetails;}\n return toReturn;\n }\n}\n\nexport class RetailPaymentsEnabledRequest implements i.RetailPaymentsEnabledRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): RetailPaymentsEnabledRequest {\n let m = new RetailPaymentsEnabledRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RetailPaymentsEnabledRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class RetailPaymentsEnabledResponse implements i.RetailPaymentsEnabledResponseInterface {\n enabled: boolean;\n\n static fromProto(proto: any): RetailPaymentsEnabledResponse {\n let m = new RetailPaymentsEnabledResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RetailPaymentsEnabledResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.enabled !== 'undefined') {toReturn['enabled'] = this.enabled;}\n return toReturn;\n }\n}\n\nexport class RetailStatusRequest implements i.RetailStatusRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): RetailStatusRequest {\n let m = new RetailStatusRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RetailStatusRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class RetailStatusResponse implements i.RetailStatusResponseInterface {\n supportedRegion: boolean;\n canAcceptPayment: boolean;\n requirements: RetailStatusResponseVerificationRequirements;\n disabledReason: string;\n\n static fromProto(proto: any): RetailStatusResponse {\n let m = new RetailStatusResponse();\n m = Object.assign(m, proto);\n if (proto.requirements) {m.requirements = RetailStatusResponseVerificationRequirements.fromProto(proto.requirements);}\n return m;\n }\n\n constructor(kwargs?: i.RetailStatusResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.supportedRegion !== 'undefined') {toReturn['supportedRegion'] = this.supportedRegion;}\n if (typeof this.canAcceptPayment !== 'undefined') {toReturn['canAcceptPayment'] = this.canAcceptPayment;}\n if (typeof this.requirements !== 'undefined' && this.requirements !== null) {toReturn['requirements'] = 'toApiJson' in this.requirements ? (this.requirements as any).toApiJson() : this.requirements;}\n if (typeof this.disabledReason !== 'undefined') {toReturn['disabledReason'] = this.disabledReason;}\n return toReturn;\n }\n}\n\nexport class SubmitEvidenceRequest implements i.SubmitEvidenceRequestInterface {\n merchantId: string;\n disputeId: string;\n paymentId: string;\n evidence: SubmitEvidenceRequestDisputeEvidence;\n submit: boolean;\n\n static fromProto(proto: any): SubmitEvidenceRequest {\n let m = new SubmitEvidenceRequest();\n m = Object.assign(m, proto);\n if (proto.evidence) {m.evidence = SubmitEvidenceRequestDisputeEvidence.fromProto(proto.evidence);}\n return m;\n }\n\n constructor(kwargs?: i.SubmitEvidenceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.disputeId !== 'undefined') {toReturn['disputeId'] = this.disputeId;}\n if (typeof this.paymentId !== 'undefined') {toReturn['paymentId'] = this.paymentId;}\n if (typeof this.evidence !== 'undefined' && this.evidence !== null) {toReturn['evidence'] = 'toApiJson' in this.evidence ? (this.evidence as any).toApiJson() : this.evidence;}\n if (typeof this.submit !== 'undefined') {toReturn['submit'] = this.submit;}\n return toReturn;\n }\n}\n\nexport class UpdateRetailPaymentProviderRequest implements i.UpdateRetailPaymentProviderRequestInterface {\n merchantId: string;\n statementDescriptor: string;\n\n static fromProto(proto: any): UpdateRetailPaymentProviderRequest {\n let m = new UpdateRetailPaymentProviderRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateRetailPaymentProviderRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.statementDescriptor !== 'undefined') {toReturn['statementDescriptor'] = this.statementDescriptor;}\n return toReturn;\n }\n}\n\nexport class RetailStatusResponseVerificationError implements i.RetailStatusResponseVerificationErrorInterface {\n requirement: string;\n code: string;\n reason: string;\n\n static fromProto(proto: any): RetailStatusResponseVerificationError {\n let m = new RetailStatusResponseVerificationError();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RetailStatusResponseVerificationErrorInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.requirement !== 'undefined') {toReturn['requirement'] = this.requirement;}\n if (typeof this.code !== 'undefined') {toReturn['code'] = this.code;}\n if (typeof this.reason !== 'undefined') {toReturn['reason'] = this.reason;}\n return toReturn;\n }\n}\n\nexport class RetailStatusResponseVerificationRequirements implements i.RetailStatusResponseVerificationRequirementsInterface {\n due: string[];\n error: RetailStatusResponseVerificationError[];\n\n static fromProto(proto: any): RetailStatusResponseVerificationRequirements {\n let m = new RetailStatusResponseVerificationRequirements();\n m = Object.assign(m, proto);\n if (proto.error) {m.error = proto.error.map(RetailStatusResponseVerificationError.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.RetailStatusResponseVerificationRequirementsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.due !== 'undefined') {toReturn['due'] = this.due;}\n if (typeof this.error !== 'undefined' && this.error !== null) {toReturn['error'] = 'toApiJson' in this.error ? (this.error as any).toApiJson() : this.error;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CreatePaymentCardRequest implements i.CreatePaymentCardRequestInterface {\n merchantId: string;\n stripeToken: string;\n\n static fromProto(proto: any): CreatePaymentCardRequest {\n let m = new CreatePaymentCardRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreatePaymentCardRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.stripeToken !== 'undefined') {toReturn['stripeToken'] = this.stripeToken;}\n return toReturn;\n }\n}\n\nexport class DeletePaymentCardRequest implements i.DeletePaymentCardRequestInterface {\n merchantId: string;\n cardId: string;\n\n static fromProto(proto: any): DeletePaymentCardRequest {\n let m = new DeletePaymentCardRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeletePaymentCardRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.cardId !== 'undefined') {toReturn['cardId'] = this.cardId;}\n return toReturn;\n }\n}\n\nexport class ListPaymentCardsRequest implements i.ListPaymentCardsRequestInterface {\n merchantId: string;\n customerId: string;\n\n static fromProto(proto: any): ListPaymentCardsRequest {\n let m = new ListPaymentCardsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListPaymentCardsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n return toReturn;\n }\n}\n\nexport class ListPaymentCardsResponse implements i.ListPaymentCardsResponseInterface {\n paymentCard: PaymentCard[];\n\n static fromProto(proto: any): ListPaymentCardsResponse {\n let m = new ListPaymentCardsResponse();\n m = Object.assign(m, proto);\n if (proto.paymentCard) {m.paymentCard = proto.paymentCard.map(PaymentCard.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListPaymentCardsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.paymentCard !== 'undefined' && this.paymentCard !== null) {toReturn['paymentCard'] = 'toApiJson' in this.paymentCard ? (this.paymentCard as any).toApiJson() : this.paymentCard;}\n return toReturn;\n }\n}\n\nexport class PaymentCard implements i.PaymentCardInterface {\n lastFourDigits: string;\n cardType: e.PaymentCardCARD_TYPE;\n address: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n cardId: string;\n cardholderName: string;\n expiryMonth: number;\n expiryYear: number;\n fundingType: e.PaymentCardFUNDING_TYPE;\n default: boolean;\n\n static fromProto(proto: any): PaymentCard {\n let m = new PaymentCard();\n m = Object.assign(m, proto);\n if (proto.cardType) {m.cardType = enumStringToValue<e.PaymentCardCARD_TYPE>(e.PaymentCardCARD_TYPE, proto.cardType);}\n if (proto.fundingType) {m.fundingType = enumStringToValue<e.PaymentCardFUNDING_TYPE>(e.PaymentCardFUNDING_TYPE, proto.fundingType);}\n return m;\n }\n\n constructor(kwargs?: i.PaymentCardInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.lastFourDigits !== 'undefined') {toReturn['lastFourDigits'] = this.lastFourDigits;}\n if (typeof this.cardType !== 'undefined') {toReturn['cardType'] = this.cardType;}\n if (typeof this.address !== 'undefined') {toReturn['address'] = this.address;}\n if (typeof this.city !== 'undefined') {toReturn['city'] = this.city;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n if (typeof this.zipCode !== 'undefined') {toReturn['zipCode'] = this.zipCode;}\n if (typeof this.cardId !== 'undefined') {toReturn['cardId'] = this.cardId;}\n if (typeof this.cardholderName !== 'undefined') {toReturn['cardholderName'] = this.cardholderName;}\n if (typeof this.expiryMonth !== 'undefined') {toReturn['expiryMonth'] = this.expiryMonth;}\n if (typeof this.expiryYear !== 'undefined') {toReturn['expiryYear'] = this.expiryYear;}\n if (typeof this.fundingType !== 'undefined') {toReturn['fundingType'] = this.fundingType;}\n if (typeof this.default !== 'undefined') {toReturn['default'] = this.default;}\n return toReturn;\n }\n}\n\nexport class SetDefaultPaymentMethodRequest implements i.SetDefaultPaymentMethodRequestInterface {\n merchantId: string;\n customerId: string;\n paymentMethodId: string;\n\n static fromProto(proto: any): SetDefaultPaymentMethodRequest {\n let m = new SetDefaultPaymentMethodRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SetDefaultPaymentMethodRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.paymentMethodId !== 'undefined') {toReturn['paymentMethodId'] = this.paymentMethodId;}\n return toReturn;\n }\n}\n\nexport class UpdatePaymentCardRequest implements i.UpdatePaymentCardRequestInterface {\n merchantId: string;\n stripeToken: string;\n\n static fromProto(proto: any): UpdatePaymentCardRequest {\n let m = new UpdatePaymentCardRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdatePaymentCardRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.stripeToken !== 'undefined') {toReturn['stripeToken'] = this.stripeToken;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { FieldMask } from './field-mask';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ComponentPricing implements i.ComponentPricingInterface {\n componentId: string;\n unitPrice: number;\n\n static fromProto(proto: any): ComponentPricing {\n let m = new ComponentPricing();\n m = Object.assign(m, proto);\n if (proto.unitPrice) {m.unitPrice = parseInt(proto.unitPrice, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ComponentPricingInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.componentId !== 'undefined') {toReturn['componentId'] = this.componentId;}\n if (typeof this.unitPrice !== 'undefined') {toReturn['unitPrice'] = this.unitPrice;}\n return toReturn;\n }\n}\n\nexport class CreatePricingPlanRequest implements i.CreatePricingPlanRequestInterface {\n name: string;\n defaultBillingStrategy: e.BillingStrategy;\n\n static fromProto(proto: any): CreatePricingPlanRequest {\n let m = new CreatePricingPlanRequest();\n m = Object.assign(m, proto);\n if (proto.defaultBillingStrategy) {m.defaultBillingStrategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.defaultBillingStrategy);}\n return m;\n }\n\n constructor(kwargs?: i.CreatePricingPlanRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.defaultBillingStrategy !== 'undefined') {toReturn['defaultBillingStrategy'] = this.defaultBillingStrategy;}\n return toReturn;\n }\n}\n\nexport class CreatePricingPlanResponse implements i.CreatePricingPlanResponseInterface {\n id: string;\n\n static fromProto(proto: any): CreatePricingPlanResponse {\n let m = new CreatePricingPlanResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreatePricingPlanResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class GetMultiPricingPlanRequest implements i.GetMultiPricingPlanRequestInterface {\n pricingPlanIds: string[];\n\n static fromProto(proto: any): GetMultiPricingPlanRequest {\n let m = new GetMultiPricingPlanRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiPricingPlanRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanIds !== 'undefined') {toReturn['pricingPlanIds'] = this.pricingPlanIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiPricingPlanResponse implements i.GetMultiPricingPlanResponseInterface {\n plans: PricingPlan[];\n\n static fromProto(proto: any): GetMultiPricingPlanResponse {\n let m = new GetMultiPricingPlanResponse();\n m = Object.assign(m, proto);\n if (proto.plans) {m.plans = proto.plans.map(PricingPlan.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiPricingPlanResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.plans !== 'undefined' && this.plans !== null) {toReturn['plans'] = 'toApiJson' in this.plans ? (this.plans as any).toApiJson() : this.plans;}\n return toReturn;\n }\n}\n\nexport class PricingPlan implements i.PricingPlanInterface {\n id: string;\n name: string;\n defaultBillingStrategy: e.BillingStrategy;\n\n static fromProto(proto: any): PricingPlan {\n let m = new PricingPlan();\n m = Object.assign(m, proto);\n if (proto.defaultBillingStrategy) {m.defaultBillingStrategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.defaultBillingStrategy);}\n return m;\n }\n\n constructor(kwargs?: i.PricingPlanInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.defaultBillingStrategy !== 'undefined') {toReturn['defaultBillingStrategy'] = this.defaultBillingStrategy;}\n return toReturn;\n }\n}\n\nexport class PricingPlanProductPricing implements i.PricingPlanProductPricingInterface {\n type: e.ProductPricingType;\n rules: ProductPricingRule[];\n setupFee: number;\n frequency: e.Frequency;\n currencyCode: string;\n\n static fromProto(proto: any): PricingPlanProductPricing {\n let m = new PricingPlanProductPricing();\n m = Object.assign(m, proto);\n if (proto.type) {m.type = enumStringToValue<e.ProductPricingType>(e.ProductPricingType, proto.type);}\n if (proto.rules) {m.rules = proto.rules.map(ProductPricingRule.fromProto);}\n if (proto.setupFee) {m.setupFee = parseInt(proto.setupFee, 10);}\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n return m;\n }\n\n constructor(kwargs?: i.PricingPlanProductPricingInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.rules !== 'undefined' && this.rules !== null) {toReturn['rules'] = 'toApiJson' in this.rules ? (this.rules as any).toApiJson() : this.rules;}\n if (typeof this.setupFee !== 'undefined') {toReturn['setupFee'] = this.setupFee;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n return toReturn;\n }\n}\n\nexport class ProductPricingRule implements i.ProductPricingRuleInterface {\n price: number;\n minUnits: number;\n maxUnits: number;\n componentPricing: ComponentPricing[];\n\n static fromProto(proto: any): ProductPricingRule {\n let m = new ProductPricingRule();\n m = Object.assign(m, proto);\n if (proto.price) {m.price = parseInt(proto.price, 10);}\n if (proto.minUnits) {m.minUnits = parseInt(proto.minUnits, 10);}\n if (proto.maxUnits) {m.maxUnits = parseInt(proto.maxUnits, 10);}\n if (proto.componentPricing) {m.componentPricing = proto.componentPricing.map(ComponentPricing.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ProductPricingRuleInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.price !== 'undefined') {toReturn['price'] = this.price;}\n if (typeof this.minUnits !== 'undefined') {toReturn['minUnits'] = this.minUnits;}\n if (typeof this.maxUnits !== 'undefined') {toReturn['maxUnits'] = this.maxUnits;}\n if (typeof this.componentPricing !== 'undefined' && this.componentPricing !== null) {toReturn['componentPricing'] = 'toApiJson' in this.componentPricing ? (this.componentPricing as any).toApiJson() : this.componentPricing;}\n return toReturn;\n }\n}\n\nexport class UpdatePricingPlanRequest implements i.UpdatePricingPlanRequestInterface {\n id: string;\n fieldMask: FieldMask;\n name: string;\n defaultBillingStrategy: e.BillingStrategy;\n\n static fromProto(proto: any): UpdatePricingPlanRequest {\n let m = new UpdatePricingPlanRequest();\n m = Object.assign(m, proto);\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n if (proto.defaultBillingStrategy) {m.defaultBillingStrategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.defaultBillingStrategy);}\n return m;\n }\n\n constructor(kwargs?: i.UpdatePricingPlanRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.defaultBillingStrategy !== 'undefined') {toReturn['defaultBillingStrategy'] = this.defaultBillingStrategy;}\n return toReturn;\n }\n}\n\nexport class UpdatePricingPlanResponse implements i.UpdatePricingPlanResponseInterface {\n\n static fromProto(proto: any): UpdatePricingPlanResponse {\n let m = new UpdatePricingPlanResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdatePricingPlanResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Commitment } from './commitment';\nimport { FieldMask } from './field-mask';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport { PricingPlanProductPricing } from './pricing-plan';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CreatePricingPlanProductRequest implements i.CreatePricingPlanProductRequestInterface {\n pricingPlanId: string;\n sku: string;\n frequency: e.Frequency;\n pricing: {[key: string]: PricingPlanProductPricing};\n commitment: Commitment;\n strategy: e.BillingStrategy;\n volumeCommitment: number;\n\n static fromProto(proto: any): CreatePricingPlanProductRequest {\n let m = new CreatePricingPlanProductRequest();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.pricing) {m.pricing = Object.keys(proto.pricing).reduce<any>((obj, k) => { obj[k] = PricingPlanProductPricing.fromProto(proto.pricing[k]); return obj; }, {});}\n if (proto.commitment) {m.commitment = Commitment.fromProto(proto.commitment);}\n if (proto.strategy) {m.strategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.strategy);}\n if (proto.volumeCommitment) {m.volumeCommitment = parseInt(proto.volumeCommitment, 10);}\n return m;\n }\n\n constructor(kwargs?: i.CreatePricingPlanProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.pricing !== 'undefined' && this.pricing !== null) {toReturn['pricing'] = 'toApiJson' in this.pricing ? (this.pricing as any).toApiJson() : this.pricing;}\n if (typeof this.commitment !== 'undefined' && this.commitment !== null) {toReturn['commitment'] = 'toApiJson' in this.commitment ? (this.commitment as any).toApiJson() : this.commitment;}\n if (typeof this.strategy !== 'undefined') {toReturn['strategy'] = this.strategy;}\n if (typeof this.volumeCommitment !== 'undefined') {toReturn['volumeCommitment'] = this.volumeCommitment;}\n return toReturn;\n }\n}\n\nexport class CreatePricingPlanProductResponse implements i.CreatePricingPlanProductResponseInterface {\n pricingPlanId: string;\n sku: string;\n\n static fromProto(proto: any): CreatePricingPlanProductResponse {\n let m = new CreatePricingPlanProductResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreatePricingPlanProductResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class DeletePricingPlanProductRequest implements i.DeletePricingPlanProductRequestInterface {\n pricingPlanId: string;\n sku: string;\n\n static fromProto(proto: any): DeletePricingPlanProductRequest {\n let m = new DeletePricingPlanProductRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeletePricingPlanProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class GetMultiPricingPlanProductRequest implements i.GetMultiPricingPlanProductRequestInterface {\n pricingPlanId: string;\n skus: string[];\n\n static fromProto(proto: any): GetMultiPricingPlanProductRequest {\n let m = new GetMultiPricingPlanProductRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiPricingPlanProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n return toReturn;\n }\n}\n\nexport class GetMultiPricingPlanProductResponse implements i.GetMultiPricingPlanProductResponseInterface {\n pricingPlanProducts: PricingPlanProduct[];\n\n static fromProto(proto: any): GetMultiPricingPlanProductResponse {\n let m = new GetMultiPricingPlanProductResponse();\n m = Object.assign(m, proto);\n if (proto.pricingPlanProducts) {m.pricingPlanProducts = proto.pricingPlanProducts.map(PricingPlanProduct.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiPricingPlanProductResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanProducts !== 'undefined' && this.pricingPlanProducts !== null) {toReturn['pricingPlanProducts'] = 'toApiJson' in this.pricingPlanProducts ? (this.pricingPlanProducts as any).toApiJson() : this.pricingPlanProducts;}\n return toReturn;\n }\n}\n\nexport class GetPricingPlanProductRequest implements i.GetPricingPlanProductRequestInterface {\n pricingPlanId: string;\n sku: string;\n\n static fromProto(proto: any): GetPricingPlanProductRequest {\n let m = new GetPricingPlanProductRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetPricingPlanProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class GetPricingPlanProductResponse implements i.GetPricingPlanProductResponseInterface {\n pricingPlanProduct: PricingPlanProduct;\n pricingPlanDefaultStrategy: e.BillingStrategy;\n\n static fromProto(proto: any): GetPricingPlanProductResponse {\n let m = new GetPricingPlanProductResponse();\n m = Object.assign(m, proto);\n if (proto.pricingPlanProduct) {m.pricingPlanProduct = PricingPlanProduct.fromProto(proto.pricingPlanProduct);}\n if (proto.pricingPlanDefaultStrategy) {m.pricingPlanDefaultStrategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.pricingPlanDefaultStrategy);}\n return m;\n }\n\n constructor(kwargs?: i.GetPricingPlanProductResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanProduct !== 'undefined' && this.pricingPlanProduct !== null) {toReturn['pricingPlanProduct'] = 'toApiJson' in this.pricingPlanProduct ? (this.pricingPlanProduct as any).toApiJson() : this.pricingPlanProduct;}\n if (typeof this.pricingPlanDefaultStrategy !== 'undefined') {toReturn['pricingPlanDefaultStrategy'] = this.pricingPlanDefaultStrategy;}\n return toReturn;\n }\n}\n\nexport class ListPricingPlanProductsRequestListPricingPlanProductsFilters implements i.ListPricingPlanProductsRequestListPricingPlanProductsFiltersInterface {\n sku: string;\n pricingPlanIds: string[];\n\n static fromProto(proto: any): ListPricingPlanProductsRequestListPricingPlanProductsFilters {\n let m = new ListPricingPlanProductsRequestListPricingPlanProductsFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListPricingPlanProductsRequestListPricingPlanProductsFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.pricingPlanIds !== 'undefined') {toReturn['pricingPlanIds'] = this.pricingPlanIds;}\n return toReturn;\n }\n}\n\nexport class ListPricingPlanProductsRequest implements i.ListPricingPlanProductsRequestInterface {\n sku: string;\n pagingOptions: PagedRequestOptions;\n filters: ListPricingPlanProductsRequestListPricingPlanProductsFilters;\n\n static fromProto(proto: any): ListPricingPlanProductsRequest {\n let m = new ListPricingPlanProductsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n if (proto.filters) {m.filters = ListPricingPlanProductsRequestListPricingPlanProductsFilters.fromProto(proto.filters);}\n return m;\n }\n\n constructor(kwargs?: i.ListPricingPlanProductsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n return toReturn;\n }\n}\n\nexport class ListPricingPlanProductsResponse implements i.ListPricingPlanProductsResponseInterface {\n products: PricingPlanProduct[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListPricingPlanProductsResponse {\n let m = new ListPricingPlanProductsResponse();\n m = Object.assign(m, proto);\n if (proto.products) {m.products = proto.products.map(PricingPlanProduct.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListPricingPlanProductsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.products !== 'undefined' && this.products !== null) {toReturn['products'] = 'toApiJson' in this.products ? (this.products as any).toApiJson() : this.products;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class PricingPlanProductPricingEntry implements i.PricingPlanProductPricingEntryInterface {\n key: string;\n value: PricingPlanProductPricing;\n\n static fromProto(proto: any): PricingPlanProductPricingEntry {\n let m = new PricingPlanProductPricingEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = PricingPlanProductPricing.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.PricingPlanProductPricingEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class CreatePricingPlanProductRequestPricingEntry implements i.CreatePricingPlanProductRequestPricingEntryInterface {\n key: string;\n value: PricingPlanProductPricing;\n\n static fromProto(proto: any): CreatePricingPlanProductRequestPricingEntry {\n let m = new CreatePricingPlanProductRequestPricingEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = PricingPlanProductPricing.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.CreatePricingPlanProductRequestPricingEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class UpdatePricingPlanProductRequestPricingEntry implements i.UpdatePricingPlanProductRequestPricingEntryInterface {\n key: string;\n value: PricingPlanProductPricing;\n\n static fromProto(proto: any): UpdatePricingPlanProductRequestPricingEntry {\n let m = new UpdatePricingPlanProductRequestPricingEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = PricingPlanProductPricing.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.UpdatePricingPlanProductRequestPricingEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class PricingPlanProduct implements i.PricingPlanProductInterface {\n pricingPlanId: string;\n sku: string;\n frequency: e.Frequency;\n pricing: {[key: string]: PricingPlanProductPricing};\n commitment: Commitment;\n created: Date;\n modified: Date;\n strategy: e.BillingStrategy;\n volumeCommitment: number;\n pricingType: e.ProductPricingType;\n\n static fromProto(proto: any): PricingPlanProduct {\n let m = new PricingPlanProduct();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.pricing) {m.pricing = Object.keys(proto.pricing).reduce<any>((obj, k) => { obj[k] = PricingPlanProductPricing.fromProto(proto.pricing[k]); return obj; }, {});}\n if (proto.commitment) {m.commitment = Commitment.fromProto(proto.commitment);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.modified) {m.modified = new Date(proto.modified);}\n if (proto.strategy) {m.strategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.strategy);}\n if (proto.volumeCommitment) {m.volumeCommitment = parseInt(proto.volumeCommitment, 10);}\n if (proto.pricingType) {m.pricingType = enumStringToValue<e.ProductPricingType>(e.ProductPricingType, proto.pricingType);}\n return m;\n }\n\n constructor(kwargs?: i.PricingPlanProductInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.pricing !== 'undefined' && this.pricing !== null) {toReturn['pricing'] = 'toApiJson' in this.pricing ? (this.pricing as any).toApiJson() : this.pricing;}\n if (typeof this.commitment !== 'undefined' && this.commitment !== null) {toReturn['commitment'] = 'toApiJson' in this.commitment ? (this.commitment as any).toApiJson() : this.commitment;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.modified !== 'undefined' && this.modified !== null) {toReturn['modified'] = 'toApiJson' in this.modified ? (this.modified as any).toApiJson() : this.modified;}\n if (typeof this.strategy !== 'undefined') {toReturn['strategy'] = this.strategy;}\n if (typeof this.volumeCommitment !== 'undefined') {toReturn['volumeCommitment'] = this.volumeCommitment;}\n if (typeof this.pricingType !== 'undefined') {toReturn['pricingType'] = this.pricingType;}\n return toReturn;\n }\n}\n\nexport class UpdatePricingPlanProductRequest implements i.UpdatePricingPlanProductRequestInterface {\n pricingPlanId: string;\n sku: string;\n frequency: e.Frequency;\n pricing: {[key: string]: PricingPlanProductPricing};\n commitment: Commitment;\n fieldMask: FieldMask;\n strategy: e.BillingStrategy;\n volumeCommitment: number;\n\n static fromProto(proto: any): UpdatePricingPlanProductRequest {\n let m = new UpdatePricingPlanProductRequest();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.pricing) {m.pricing = Object.keys(proto.pricing).reduce<any>((obj, k) => { obj[k] = PricingPlanProductPricing.fromProto(proto.pricing[k]); return obj; }, {});}\n if (proto.commitment) {m.commitment = Commitment.fromProto(proto.commitment);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n if (proto.strategy) {m.strategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.strategy);}\n if (proto.volumeCommitment) {m.volumeCommitment = parseInt(proto.volumeCommitment, 10);}\n return m;\n }\n\n constructor(kwargs?: i.UpdatePricingPlanProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.pricing !== 'undefined' && this.pricing !== null) {toReturn['pricing'] = 'toApiJson' in this.pricing ? (this.pricing as any).toApiJson() : this.pricing;}\n if (typeof this.commitment !== 'undefined' && this.commitment !== null) {toReturn['commitment'] = 'toApiJson' in this.commitment ? (this.commitment as any).toApiJson() : this.commitment;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n if (typeof this.strategy !== 'undefined') {toReturn['strategy'] = this.strategy;}\n if (typeof this.volumeCommitment !== 'undefined') {toReturn['volumeCommitment'] = this.volumeCommitment;}\n return toReturn;\n }\n}\n\nexport class UpdatePricingPlanProductResponse implements i.UpdatePricingPlanProductResponseInterface {\n\n static fromProto(proto: any): UpdatePricingPlanProductResponse {\n let m = new UpdatePricingPlanProductResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdatePricingPlanProductResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n return toReturn;\n }\n}\n\nexport class UpsertWholesalePricingRequest implements i.UpsertWholesalePricingRequestInterface {\n pricingPlanId: string;\n sku: string;\n pricing: PricingPlanProductPricing[];\n termCommitment: Commitment;\n strategy: e.BillingStrategy;\n volumeCommitment: number;\n\n static fromProto(proto: any): UpsertWholesalePricingRequest {\n let m = new UpsertWholesalePricingRequest();\n m = Object.assign(m, proto);\n if (proto.pricing) {m.pricing = proto.pricing.map(PricingPlanProductPricing.fromProto);}\n if (proto.termCommitment) {m.termCommitment = Commitment.fromProto(proto.termCommitment);}\n if (proto.strategy) {m.strategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.strategy);}\n if (proto.volumeCommitment) {m.volumeCommitment = parseInt(proto.volumeCommitment, 10);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertWholesalePricingRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.pricing !== 'undefined' && this.pricing !== null) {toReturn['pricing'] = 'toApiJson' in this.pricing ? (this.pricing as any).toApiJson() : this.pricing;}\n if (typeof this.termCommitment !== 'undefined' && this.termCommitment !== null) {toReturn['termCommitment'] = 'toApiJson' in this.termCommitment ? (this.termCommitment as any).toApiJson() : this.termCommitment;}\n if (typeof this.strategy !== 'undefined') {toReturn['strategy'] = this.strategy;}\n if (typeof this.volumeCommitment !== 'undefined') {toReturn['volumeCommitment'] = this.volumeCommitment;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CreateProductRequest implements i.CreateProductRequestInterface {\n sku: string;\n productId: string;\n editionId: string;\n name: string;\n reportingCode: string;\n productType: e.ProductType;\n\n static fromProto(proto: any): CreateProductRequest {\n let m = new CreateProductRequest();\n m = Object.assign(m, proto);\n if (proto.productType) {m.productType = enumStringToValue<e.ProductType>(e.ProductType, proto.productType);}\n return m;\n }\n\n constructor(kwargs?: i.CreateProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.productId !== 'undefined') {toReturn['productId'] = this.productId;}\n if (typeof this.editionId !== 'undefined') {toReturn['editionId'] = this.editionId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.reportingCode !== 'undefined') {toReturn['reportingCode'] = this.reportingCode;}\n if (typeof this.productType !== 'undefined') {toReturn['productType'] = this.productType;}\n return toReturn;\n }\n}\n\nexport class DeleteProductRequest implements i.DeleteProductRequestInterface {\n sku: string;\n\n static fromProto(proto: any): DeleteProductRequest {\n let m = new DeleteProductRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class GetMultiProductRequest implements i.GetMultiProductRequestInterface {\n skus: string[];\n\n static fromProto(proto: any): GetMultiProductRequest {\n let m = new GetMultiProductRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n return toReturn;\n }\n}\n\nexport class GetMultiProductResponse implements i.GetMultiProductResponseInterface {\n products: {[key: string]: Product};\n\n static fromProto(proto: any): GetMultiProductResponse {\n let m = new GetMultiProductResponse();\n m = Object.assign(m, proto);\n if (proto.products) {m.products = Object.keys(proto.products).reduce<any>((obj, k) => { obj[k] = Product.fromProto(proto.products[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiProductResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.products !== 'undefined' && this.products !== null) {toReturn['products'] = 'toApiJson' in this.products ? (this.products as any).toApiJson() : this.products;}\n return toReturn;\n }\n}\n\nexport class ListProductsRequestListProductsFilters implements i.ListProductsRequestListProductsFiltersInterface {\n hasDiscount: boolean;\n hasPricingOverride: boolean;\n productType: e.ProductType[];\n skus: string[];\n\n static fromProto(proto: any): ListProductsRequestListProductsFilters {\n let m = new ListProductsRequestListProductsFilters();\n m = Object.assign(m, proto);\n if (proto.productType) {m.productType = proto.productType.map((v: string) => enumStringToValue<e.ProductType>(e.ProductType, v));}\n return m;\n }\n\n constructor(kwargs?: i.ListProductsRequestListProductsFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.hasDiscount !== 'undefined') {toReturn['hasDiscount'] = this.hasDiscount;}\n if (typeof this.hasPricingOverride !== 'undefined') {toReturn['hasPricingOverride'] = this.hasPricingOverride;}\n if (typeof this.productType !== 'undefined') {toReturn['productType'] = this.productType;}\n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n return toReturn;\n }\n}\n\nexport class ListProductsRequest implements i.ListProductsRequestInterface {\n merchantId: string;\n searchTerm: string;\n filters: ListProductsRequestListProductsFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListProductsRequest {\n let m = new ListProductsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListProductsRequestListProductsFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListProductsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListProductsResponse implements i.ListProductsResponseInterface {\n products: Product[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListProductsResponse {\n let m = new ListProductsResponse();\n m = Object.assign(m, proto);\n if (proto.products) {m.products = proto.products.map(Product.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListProductsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.products !== 'undefined' && this.products !== null) {toReturn['products'] = 'toApiJson' in this.products ? (this.products as any).toApiJson() : this.products;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class Product implements i.ProductInterface {\n name: string;\n sku: string;\n iconUrl: string;\n hasPricingOverride: boolean;\n hasDiscount: boolean;\n productType: e.ProductType;\n\n static fromProto(proto: any): Product {\n let m = new Product();\n m = Object.assign(m, proto);\n if (proto.productType) {m.productType = enumStringToValue<e.ProductType>(e.ProductType, proto.productType);}\n return m;\n }\n\n constructor(kwargs?: i.ProductInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.iconUrl !== 'undefined') {toReturn['iconUrl'] = this.iconUrl;}\n if (typeof this.hasPricingOverride !== 'undefined') {toReturn['hasPricingOverride'] = this.hasPricingOverride;}\n if (typeof this.hasDiscount !== 'undefined') {toReturn['hasDiscount'] = this.hasDiscount;}\n if (typeof this.productType !== 'undefined') {toReturn['productType'] = this.productType;}\n return toReturn;\n }\n}\n\nexport class GetMultiProductResponseProductsEntry implements i.GetMultiProductResponseProductsEntryInterface {\n key: string;\n value: Product;\n\n static fromProto(proto: any): GetMultiProductResponseProductsEntry {\n let m = new GetMultiProductResponseProductsEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = Product.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiProductResponseProductsEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class UpdateProductRequest implements i.UpdateProductRequestInterface {\n sku: string;\n name: string;\n reportingCode: string;\n productType: e.ProductType;\n\n static fromProto(proto: any): UpdateProductRequest {\n let m = new UpdateProductRequest();\n m = Object.assign(m, proto);\n if (proto.productType) {m.productType = enumStringToValue<e.ProductType>(e.ProductType, proto.productType);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateProductRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.reportingCode !== 'undefined') {toReturn['reportingCode'] = this.reportingCode;}\n if (typeof this.productType !== 'undefined') {toReturn['productType'] = this.productType;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Commitment } from './commitment';\nimport { ProductPricingRule } from './pricing-plan';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ProductPrices implements i.ProductPricesInterface {\n sku: string;\n prices: ProductPricing[];\n\n static fromProto(proto: any): ProductPrices {\n let m = new ProductPrices();\n m = Object.assign(m, proto);\n if (proto.prices) {m.prices = proto.prices.map(ProductPricing.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ProductPricesInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.prices !== 'undefined' && this.prices !== null) {toReturn['prices'] = 'toApiJson' in this.prices ? (this.prices as any).toApiJson() : this.prices;}\n return toReturn;\n }\n}\n\nexport class ProductPricing implements i.ProductPricingInterface {\n strategy: e.BillingStrategy;\n pricingType: e.ProductPricingType;\n currency: e.Currency;\n frequency: e.Frequency;\n pricingRules: ProductPricingRule[];\n commitment: Commitment;\n isStartingPrice: boolean;\n resolvedFrom: string;\n volumeCommitment: number;\n setupFee: number;\n\n static fromProto(proto: any): ProductPricing {\n let m = new ProductPricing();\n m = Object.assign(m, proto);\n if (proto.strategy) {m.strategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.strategy);}\n if (proto.pricingType) {m.pricingType = enumStringToValue<e.ProductPricingType>(e.ProductPricingType, proto.pricingType);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.pricingRules) {m.pricingRules = proto.pricingRules.map(ProductPricingRule.fromProto);}\n if (proto.commitment) {m.commitment = Commitment.fromProto(proto.commitment);}\n if (proto.volumeCommitment) {m.volumeCommitment = parseInt(proto.volumeCommitment, 10);}\n if (proto.setupFee) {m.setupFee = parseInt(proto.setupFee, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ProductPricingInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.strategy !== 'undefined') {toReturn['strategy'] = this.strategy;}\n if (typeof this.pricingType !== 'undefined') {toReturn['pricingType'] = this.pricingType;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.pricingRules !== 'undefined' && this.pricingRules !== null) {toReturn['pricingRules'] = 'toApiJson' in this.pricingRules ? (this.pricingRules as any).toApiJson() : this.pricingRules;}\n if (typeof this.commitment !== 'undefined' && this.commitment !== null) {toReturn['commitment'] = 'toApiJson' in this.commitment ? (this.commitment as any).toApiJson() : this.commitment;}\n if (typeof this.isStartingPrice !== 'undefined') {toReturn['isStartingPrice'] = this.isStartingPrice;}\n if (typeof this.resolvedFrom !== 'undefined') {toReturn['resolvedFrom'] = this.resolvedFrom;}\n if (typeof this.volumeCommitment !== 'undefined') {toReturn['volumeCommitment'] = this.volumeCommitment;}\n if (typeof this.setupFee !== 'undefined') {toReturn['setupFee'] = this.setupFee;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { AppliedDiscount } from './applied-discount';\nimport { AppliedTaxRate } from './applied-tax-rate';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AppliedCredit implements i.AppliedCreditInterface {\n appliedAmount: number;\n referenceId: string;\n referenceType: e.CreditType;\n\n static fromProto(proto: any): AppliedCredit {\n let m = new AppliedCredit();\n m = Object.assign(m, proto);\n if (proto.appliedAmount) {m.appliedAmount = parseInt(proto.appliedAmount, 10);}\n if (proto.referenceType) {m.referenceType = enumStringToValue<e.CreditType>(e.CreditType, proto.referenceType);}\n return m;\n }\n\n constructor(kwargs?: i.AppliedCreditInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.appliedAmount !== 'undefined') {toReturn['appliedAmount'] = this.appliedAmount;}\n if (typeof this.referenceId !== 'undefined') {toReturn['referenceId'] = this.referenceId;}\n if (typeof this.referenceType !== 'undefined') {toReturn['referenceType'] = this.referenceType;}\n return toReturn;\n }\n}\n\nexport class ListPurchaseRequestListPurchaseBillingStrategyFilter implements i.ListPurchaseRequestListPurchaseBillingStrategyFilterInterface {\n billingStrategy: e.BillingStrategy[];\n\n static fromProto(proto: any): ListPurchaseRequestListPurchaseBillingStrategyFilter {\n let m = new ListPurchaseRequestListPurchaseBillingStrategyFilter();\n m = Object.assign(m, proto);\n if (proto.billingStrategy) {m.billingStrategy = proto.billingStrategy.map((v: string) => enumStringToValue<e.BillingStrategy>(e.BillingStrategy, v));}\n return m;\n }\n\n constructor(kwargs?: i.ListPurchaseRequestListPurchaseBillingStrategyFilterInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.billingStrategy !== 'undefined') {toReturn['billingStrategy'] = this.billingStrategy;}\n return toReturn;\n }\n}\n\nexport class ListPurchaseRequestListPurchaseFilters implements i.ListPurchaseRequestListPurchaseFiltersInterface {\n merchantId: string;\n purchaseId: string;\n start: Date;\n end: Date;\n billingStrategyFilter: ListPurchaseRequestListPurchaseBillingStrategyFilter;\n state: e.ListPurchaseRequestState;\n minPrice: number;\n status: e.PurchaseStatus;\n includeVoided: boolean;\n\n static fromProto(proto: any): ListPurchaseRequestListPurchaseFilters {\n let m = new ListPurchaseRequestListPurchaseFilters();\n m = Object.assign(m, proto);\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n if (proto.billingStrategyFilter) {m.billingStrategyFilter = ListPurchaseRequestListPurchaseBillingStrategyFilter.fromProto(proto.billingStrategyFilter);}\n if (proto.state) {m.state = enumStringToValue<e.ListPurchaseRequestState>(e.ListPurchaseRequestState, proto.state);}\n if (proto.minPrice) {m.minPrice = parseInt(proto.minPrice, 10);}\n if (proto.status) {m.status = enumStringToValue<e.PurchaseStatus>(e.PurchaseStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.ListPurchaseRequestListPurchaseFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.purchaseId !== 'undefined') {toReturn['purchaseId'] = this.purchaseId;}\n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n if (typeof this.billingStrategyFilter !== 'undefined' && this.billingStrategyFilter !== null) {toReturn['billingStrategyFilter'] = 'toApiJson' in this.billingStrategyFilter ? (this.billingStrategyFilter as any).toApiJson() : this.billingStrategyFilter;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.minPrice !== 'undefined') {toReturn['minPrice'] = this.minPrice;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.includeVoided !== 'undefined') {toReturn['includeVoided'] = this.includeVoided;}\n return toReturn;\n }\n}\n\nexport class ListPurchaseItemsRequestListPurchaseItemsFilters implements i.ListPurchaseItemsRequestListPurchaseItemsFiltersInterface {\n merchantId: string;\n customerId: string;\n start: Date;\n end: Date;\n\n static fromProto(proto: any): ListPurchaseItemsRequestListPurchaseItemsFilters {\n let m = new ListPurchaseItemsRequestListPurchaseItemsFilters();\n m = Object.assign(m, proto);\n if (proto.start) {m.start = new Date(proto.start);}\n if (proto.end) {m.end = new Date(proto.end);}\n return m;\n }\n\n constructor(kwargs?: i.ListPurchaseItemsRequestListPurchaseItemsFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.start !== 'undefined' && this.start !== null) {toReturn['start'] = 'toApiJson' in this.start ? (this.start as any).toApiJson() : this.start;}\n if (typeof this.end !== 'undefined' && this.end !== null) {toReturn['end'] = 'toApiJson' in this.end ? (this.end as any).toApiJson() : this.end;}\n return toReturn;\n }\n}\n\nexport class ListPurchaseItemsRequest implements i.ListPurchaseItemsRequestInterface {\n filters: ListPurchaseItemsRequestListPurchaseItemsFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListPurchaseItemsRequest {\n let m = new ListPurchaseItemsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListPurchaseItemsRequestListPurchaseItemsFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListPurchaseItemsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListPurchaseItemsResponse implements i.ListPurchaseItemsResponseInterface {\n purchaseItems: PurchaseItem[];\n pagingMetadata: PagedResponseMetadata;\n currency: e.Currency;\n\n static fromProto(proto: any): ListPurchaseItemsResponse {\n let m = new ListPurchaseItemsResponse();\n m = Object.assign(m, proto);\n if (proto.purchaseItems) {m.purchaseItems = proto.purchaseItems.map(PurchaseItem.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n return m;\n }\n\n constructor(kwargs?: i.ListPurchaseItemsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.purchaseItems !== 'undefined' && this.purchaseItems !== null) {toReturn['purchaseItems'] = 'toApiJson' in this.purchaseItems ? (this.purchaseItems as any).toApiJson() : this.purchaseItems;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n return toReturn;\n }\n}\n\nexport class ListPurchaseRequest implements i.ListPurchaseRequestInterface {\n filters: ListPurchaseRequestListPurchaseFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListPurchaseRequest {\n let m = new ListPurchaseRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListPurchaseRequestListPurchaseFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListPurchaseRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListPurchaseResponse implements i.ListPurchaseResponseInterface {\n purchases: Purchase[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListPurchaseResponse {\n let m = new ListPurchaseResponse();\n m = Object.assign(m, proto);\n if (proto.purchases) {m.purchases = proto.purchases.map(Purchase.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListPurchaseResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.purchases !== 'undefined' && this.purchases !== null) {toReturn['purchases'] = 'toApiJson' in this.purchases ? (this.purchases as any).toApiJson() : this.purchases;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class Purchase implements i.PurchaseInterface {\n merchantId: string;\n timestamp: Date;\n purchaseId: string;\n total: number;\n currency: e.Currency;\n renewal: boolean;\n items: PurchaseItem[];\n billingStrategy: e.BillingStrategy;\n isDunning: boolean;\n dunningAttempt: number;\n voided: Date;\n paid: boolean;\n status: e.PurchaseStatus;\n creditAmount: number;\n appliedCredits: AppliedCredit[];\n taxAmount: number;\n appliedTaxRates: AppliedTaxRate[];\n\n static fromProto(proto: any): Purchase {\n let m = new Purchase();\n m = Object.assign(m, proto);\n if (proto.timestamp) {m.timestamp = new Date(proto.timestamp);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.items) {m.items = proto.items.map(PurchaseItem.fromProto);}\n if (proto.billingStrategy) {m.billingStrategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.billingStrategy);}\n if (proto.dunningAttempt) {m.dunningAttempt = parseInt(proto.dunningAttempt, 10);}\n if (proto.voided) {m.voided = new Date(proto.voided);}\n if (proto.status) {m.status = enumStringToValue<e.PurchaseStatus>(e.PurchaseStatus, proto.status);}\n if (proto.creditAmount) {m.creditAmount = parseInt(proto.creditAmount, 10);}\n if (proto.appliedCredits) {m.appliedCredits = proto.appliedCredits.map(AppliedCredit.fromProto);}\n if (proto.taxAmount) {m.taxAmount = parseInt(proto.taxAmount, 10);}\n if (proto.appliedTaxRates) {m.appliedTaxRates = proto.appliedTaxRates.map(AppliedTaxRate.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.PurchaseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {toReturn['timestamp'] = 'toApiJson' in this.timestamp ? (this.timestamp as any).toApiJson() : this.timestamp;}\n if (typeof this.purchaseId !== 'undefined') {toReturn['purchaseId'] = this.purchaseId;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.renewal !== 'undefined') {toReturn['renewal'] = this.renewal;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n if (typeof this.billingStrategy !== 'undefined') {toReturn['billingStrategy'] = this.billingStrategy;}\n if (typeof this.isDunning !== 'undefined') {toReturn['isDunning'] = this.isDunning;}\n if (typeof this.dunningAttempt !== 'undefined') {toReturn['dunningAttempt'] = this.dunningAttempt;}\n if (typeof this.voided !== 'undefined' && this.voided !== null) {toReturn['voided'] = 'toApiJson' in this.voided ? (this.voided as any).toApiJson() : this.voided;}\n if (typeof this.paid !== 'undefined') {toReturn['paid'] = this.paid;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.creditAmount !== 'undefined') {toReturn['creditAmount'] = this.creditAmount;}\n if (typeof this.appliedCredits !== 'undefined' && this.appliedCredits !== null) {toReturn['appliedCredits'] = 'toApiJson' in this.appliedCredits ? (this.appliedCredits as any).toApiJson() : this.appliedCredits;}\n if (typeof this.taxAmount !== 'undefined') {toReturn['taxAmount'] = this.taxAmount;}\n if (typeof this.appliedTaxRates !== 'undefined' && this.appliedTaxRates !== null) {toReturn['appliedTaxRates'] = 'toApiJson' in this.appliedTaxRates ? (this.appliedTaxRates as any).toApiJson() : this.appliedTaxRates;}\n return toReturn;\n }\n}\n\nexport class PurchaseItem implements i.PurchaseItemInterface {\n sku: string;\n amount: number;\n orderId: string;\n customerId: string;\n discountAmount: number;\n total: number;\n appliedDiscounts: AppliedDiscount[];\n merchantId: string;\n day: string;\n purchaseId: string;\n description: string;\n taxAmount: number;\n appliedTaxRates: AppliedTaxRate[];\n setupFee: number;\n\n static fromProto(proto: any): PurchaseItem {\n let m = new PurchaseItem();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.discountAmount) {m.discountAmount = parseInt(proto.discountAmount, 10);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.appliedDiscounts) {m.appliedDiscounts = proto.appliedDiscounts.map(AppliedDiscount.fromProto);}\n if (proto.taxAmount) {m.taxAmount = parseInt(proto.taxAmount, 10);}\n if (proto.appliedTaxRates) {m.appliedTaxRates = proto.appliedTaxRates.map(AppliedTaxRate.fromProto);}\n if (proto.setupFee) {m.setupFee = parseInt(proto.setupFee, 10);}\n return m;\n }\n\n constructor(kwargs?: i.PurchaseItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.discountAmount !== 'undefined') {toReturn['discountAmount'] = this.discountAmount;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.appliedDiscounts !== 'undefined' && this.appliedDiscounts !== null) {toReturn['appliedDiscounts'] = 'toApiJson' in this.appliedDiscounts ? (this.appliedDiscounts as any).toApiJson() : this.appliedDiscounts;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.day !== 'undefined') {toReturn['day'] = this.day;}\n if (typeof this.purchaseId !== 'undefined') {toReturn['purchaseId'] = this.purchaseId;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.taxAmount !== 'undefined') {toReturn['taxAmount'] = this.taxAmount;}\n if (typeof this.appliedTaxRates !== 'undefined' && this.appliedTaxRates !== null) {toReturn['appliedTaxRates'] = 'toApiJson' in this.appliedTaxRates ? (this.appliedTaxRates as any).toApiJson() : this.appliedTaxRates;}\n if (typeof this.setupFee !== 'undefined') {toReturn['setupFee'] = this.setupFee;}\n return toReturn;\n }\n}\n\nexport class RetryPurchaseRequest implements i.RetryPurchaseRequestInterface {\n purchaseId: string;\n merchantId: string;\n day: string;\n shouldEnterDunning: boolean;\n\n static fromProto(proto: any): RetryPurchaseRequest {\n let m = new RetryPurchaseRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RetryPurchaseRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.purchaseId !== 'undefined') {toReturn['purchaseId'] = this.purchaseId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.day !== 'undefined') {toReturn['day'] = this.day;}\n if (typeof this.shouldEnterDunning !== 'undefined') {toReturn['shouldEnterDunning'] = this.shouldEnterDunning;}\n return toReturn;\n }\n}\n\nexport class VoidPurchaseRequest implements i.VoidPurchaseRequestInterface {\n purchaseId: string;\n merchantId: string;\n day: string;\n\n static fromProto(proto: any): VoidPurchaseRequest {\n let m = new VoidPurchaseRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.VoidPurchaseRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.purchaseId !== 'undefined') {toReturn['purchaseId'] = this.purchaseId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.day !== 'undefined') {toReturn['day'] = this.day;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CreateRefundRequest implements i.CreateRefundRequestInterface {\n merchantId: string;\n paymentId: string;\n amount: number;\n reason: e.RefundReason;\n referenceType: e.ReferenceType;\n referenceId: string;\n\n static fromProto(proto: any): CreateRefundRequest {\n let m = new CreateRefundRequest();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.reason) {m.reason = enumStringToValue<e.RefundReason>(e.RefundReason, proto.reason);}\n if (proto.referenceType) {m.referenceType = enumStringToValue<e.ReferenceType>(e.ReferenceType, proto.referenceType);}\n return m;\n }\n\n constructor(kwargs?: i.CreateRefundRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.paymentId !== 'undefined') {toReturn['paymentId'] = this.paymentId;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.reason !== 'undefined') {toReturn['reason'] = this.reason;}\n if (typeof this.referenceType !== 'undefined') {toReturn['referenceType'] = this.referenceType;}\n if (typeof this.referenceId !== 'undefined') {toReturn['referenceId'] = this.referenceId;}\n return toReturn;\n }\n}\n\nexport class ListRefundsRequest implements i.ListRefundsRequestInterface {\n paymentIds: string[];\n cursor: string;\n pageSize: number;\n merchantId: string;\n\n static fromProto(proto: any): ListRefundsRequest {\n let m = new ListRefundsRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListRefundsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.paymentIds !== 'undefined') {toReturn['paymentIds'] = this.paymentIds;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class ListRefundsResponse implements i.ListRefundsResponseInterface {\n refunds: Refund[];\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): ListRefundsResponse {\n let m = new ListRefundsResponse();\n m = Object.assign(m, proto);\n if (proto.refunds) {m.refunds = proto.refunds.map(Refund.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListRefundsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.refunds !== 'undefined' && this.refunds !== null) {toReturn['refunds'] = 'toApiJson' in this.refunds ? (this.refunds as any).toApiJson() : this.refunds;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class Refund implements i.RefundInterface {\n merchantId: string;\n chargeId: string;\n refundId: string;\n amount: number;\n email: string;\n reason: e.RefundReason;\n status: e.RefundStatus;\n created: Date;\n updated: Date;\n referenceType: e.ReferenceType;\n referenceId: string;\n\n static fromProto(proto: any): Refund {\n let m = new Refund();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n if (proto.reason) {m.reason = enumStringToValue<e.RefundReason>(e.RefundReason, proto.reason);}\n if (proto.status) {m.status = enumStringToValue<e.RefundStatus>(e.RefundStatus, proto.status);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.referenceType) {m.referenceType = enumStringToValue<e.ReferenceType>(e.ReferenceType, proto.referenceType);}\n return m;\n }\n\n constructor(kwargs?: i.RefundInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.chargeId !== 'undefined') {toReturn['chargeId'] = this.chargeId;}\n if (typeof this.refundId !== 'undefined') {toReturn['refundId'] = this.refundId;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.reason !== 'undefined') {toReturn['reason'] = this.reason;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.referenceType !== 'undefined') {toReturn['referenceType'] = this.referenceType;}\n if (typeof this.referenceId !== 'undefined') {toReturn['referenceId'] = this.referenceId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class CreateSalesCreditNoteRequest implements i.CreateSalesCreditNoteRequestInterface {\n merchantId: string;\n creditNoteReason: string;\n creditNoteDate: Date;\n dueDate: Date;\n total: number;\n sku: string;\n\n static fromProto(proto: any): CreateSalesCreditNoteRequest {\n let m = new CreateSalesCreditNoteRequest();\n m = Object.assign(m, proto);\n if (proto.creditNoteDate) {m.creditNoteDate = new Date(proto.creditNoteDate);}\n if (proto.dueDate) {m.dueDate = new Date(proto.dueDate);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n return m;\n }\n\n constructor(kwargs?: i.CreateSalesCreditNoteRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.creditNoteReason !== 'undefined') {toReturn['creditNoteReason'] = this.creditNoteReason;}\n if (typeof this.creditNoteDate !== 'undefined' && this.creditNoteDate !== null) {toReturn['creditNoteDate'] = 'toApiJson' in this.creditNoteDate ? (this.creditNoteDate as any).toApiJson() : this.creditNoteDate;}\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {toReturn['dueDate'] = 'toApiJson' in this.dueDate ? (this.dueDate as any).toApiJson() : this.dueDate;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class ListSalesCreditNoteRequestListSalesCreditNoteFilters implements i.ListSalesCreditNoteRequestListSalesCreditNoteFiltersInterface {\n merchantId: string;\n statuses: e.SalesCreditNoteStatus[];\n\n static fromProto(proto: any): ListSalesCreditNoteRequestListSalesCreditNoteFilters {\n let m = new ListSalesCreditNoteRequestListSalesCreditNoteFilters();\n m = Object.assign(m, proto);\n if (proto.statuses) {m.statuses = proto.statuses.map((v: string) => enumStringToValue<e.SalesCreditNoteStatus>(e.SalesCreditNoteStatus, v));}\n return m;\n }\n\n constructor(kwargs?: i.ListSalesCreditNoteRequestListSalesCreditNoteFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.statuses !== 'undefined') {toReturn['statuses'] = this.statuses;}\n return toReturn;\n }\n}\n\nexport class ListSalesCreditNoteRequest implements i.ListSalesCreditNoteRequestInterface {\n filters: ListSalesCreditNoteRequestListSalesCreditNoteFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListSalesCreditNoteRequest {\n let m = new ListSalesCreditNoteRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListSalesCreditNoteRequestListSalesCreditNoteFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListSalesCreditNoteRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListSalesCreditNoteResponse implements i.ListSalesCreditNoteResponseInterface {\n creditNote: SalesCreditNote[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListSalesCreditNoteResponse {\n let m = new ListSalesCreditNoteResponse();\n m = Object.assign(m, proto);\n if (proto.creditNote) {m.creditNote = proto.creditNote.map(SalesCreditNote.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListSalesCreditNoteResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.creditNote !== 'undefined' && this.creditNote !== null) {toReturn['creditNote'] = 'toApiJson' in this.creditNote ? (this.creditNote as any).toApiJson() : this.creditNote;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class SalesCreditNote implements i.SalesCreditNoteInterface {\n creditNoteId: string;\n creditNoteNumber: string;\n merchantId: string;\n creditNoteReason: string;\n creditNoteDate: Date;\n dueDate: Date;\n currency: e.Currency;\n total: number;\n outstanding: number;\n invoiceId: string;\n invoiceNumber: string;\n status: e.SalesCreditNoteStatus;\n paymentStatus: string;\n\n static fromProto(proto: any): SalesCreditNote {\n let m = new SalesCreditNote();\n m = Object.assign(m, proto);\n if (proto.creditNoteDate) {m.creditNoteDate = new Date(proto.creditNoteDate);}\n if (proto.dueDate) {m.dueDate = new Date(proto.dueDate);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.outstanding) {m.outstanding = parseInt(proto.outstanding, 10);}\n if (proto.status) {m.status = enumStringToValue<e.SalesCreditNoteStatus>(e.SalesCreditNoteStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.SalesCreditNoteInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.creditNoteId !== 'undefined') {toReturn['creditNoteId'] = this.creditNoteId;}\n if (typeof this.creditNoteNumber !== 'undefined') {toReturn['creditNoteNumber'] = this.creditNoteNumber;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.creditNoteReason !== 'undefined') {toReturn['creditNoteReason'] = this.creditNoteReason;}\n if (typeof this.creditNoteDate !== 'undefined' && this.creditNoteDate !== null) {toReturn['creditNoteDate'] = 'toApiJson' in this.creditNoteDate ? (this.creditNoteDate as any).toApiJson() : this.creditNoteDate;}\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {toReturn['dueDate'] = 'toApiJson' in this.dueDate ? (this.dueDate as any).toApiJson() : this.dueDate;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.outstanding !== 'undefined') {toReturn['outstanding'] = this.outstanding;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.invoiceNumber !== 'undefined') {toReturn['invoiceNumber'] = this.invoiceNumber;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.paymentStatus !== 'undefined') {toReturn['paymentStatus'] = this.paymentStatus;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class GetSalesInvoiceRequest implements i.GetSalesInvoiceRequestInterface {\n invoiceId: string;\n merchantId: string;\n\n static fromProto(proto: any): GetSalesInvoiceRequest {\n let m = new GetSalesInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetSalesInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetSalesInvoiceResponse implements i.GetSalesInvoiceResponseInterface {\n invoice: SalesInvoice;\n\n static fromProto(proto: any): GetSalesInvoiceResponse {\n let m = new GetSalesInvoiceResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = SalesInvoice.fromProto(proto.invoice);}\n return m;\n }\n\n constructor(kwargs?: i.GetSalesInvoiceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n return toReturn;\n }\n}\n\nexport class ListSalesInvoiceRequestListSalesInvoiceFilters implements i.ListSalesInvoiceRequestListSalesInvoiceFiltersInterface {\n merchantId: string;\n statuses: e.SalesInvoiceStatus[];\n paymentStatuses: e.PaymentStatuses[];\n invoiceId: string[];\n\n static fromProto(proto: any): ListSalesInvoiceRequestListSalesInvoiceFilters {\n let m = new ListSalesInvoiceRequestListSalesInvoiceFilters();\n m = Object.assign(m, proto);\n if (proto.statuses) {m.statuses = proto.statuses.map((v: string) => enumStringToValue<e.SalesInvoiceStatus>(e.SalesInvoiceStatus, v));}\n if (proto.paymentStatuses) {m.paymentStatuses = proto.paymentStatuses.map((v: string) => enumStringToValue<e.PaymentStatuses>(e.PaymentStatuses, v));}\n return m;\n }\n\n constructor(kwargs?: i.ListSalesInvoiceRequestListSalesInvoiceFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.statuses !== 'undefined') {toReturn['statuses'] = this.statuses;}\n if (typeof this.paymentStatuses !== 'undefined') {toReturn['paymentStatuses'] = this.paymentStatuses;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class ListSalesInvoiceRequest implements i.ListSalesInvoiceRequestInterface {\n filters: ListSalesInvoiceRequestListSalesInvoiceFilters;\n pagingOptions: PagedRequestOptions;\n searchTerm: string;\n\n static fromProto(proto: any): ListSalesInvoiceRequest {\n let m = new ListSalesInvoiceRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListSalesInvoiceRequestListSalesInvoiceFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListSalesInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n return toReturn;\n }\n}\n\nexport class ListSalesInvoiceResponse implements i.ListSalesInvoiceResponseInterface {\n invoice: SalesInvoice[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListSalesInvoiceResponse {\n let m = new ListSalesInvoiceResponse();\n m = Object.assign(m, proto);\n if (proto.invoice) {m.invoice = proto.invoice.map(SalesInvoice.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListSalesInvoiceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoice !== 'undefined' && this.invoice !== null) {toReturn['invoice'] = 'toApiJson' in this.invoice ? (this.invoice as any).toApiJson() : this.invoice;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class PostSalesInvoiceRequest implements i.PostSalesInvoiceRequestInterface {\n invoiceId: string;\n\n static fromProto(proto: any): PostSalesInvoiceRequest {\n let m = new PostSalesInvoiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PostSalesInvoiceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class SalesInvoice implements i.SalesInvoiceInterface {\n invoiceId: string;\n invoiceNumber: string;\n merchantId: string;\n invoiceDate: Date;\n startDate: Date;\n endDate: Date;\n dueDate: Date;\n total: number;\n currency: e.Currency;\n status: e.SalesInvoiceStatus;\n paymentStatus: string;\n outstanding: number;\n type: e.SalesInvoiceType;\n\n static fromProto(proto: any): SalesInvoice {\n let m = new SalesInvoice();\n m = Object.assign(m, proto);\n if (proto.invoiceDate) {m.invoiceDate = new Date(proto.invoiceDate);}\n if (proto.startDate) {m.startDate = new Date(proto.startDate);}\n if (proto.endDate) {m.endDate = new Date(proto.endDate);}\n if (proto.dueDate) {m.dueDate = new Date(proto.dueDate);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.status) {m.status = enumStringToValue<e.SalesInvoiceStatus>(e.SalesInvoiceStatus, proto.status);}\n if (proto.outstanding) {m.outstanding = parseInt(proto.outstanding, 10);}\n if (proto.type) {m.type = enumStringToValue<e.SalesInvoiceType>(e.SalesInvoiceType, proto.type);}\n return m;\n }\n\n constructor(kwargs?: i.SalesInvoiceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n if (typeof this.invoiceNumber !== 'undefined') {toReturn['invoiceNumber'] = this.invoiceNumber;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceDate !== 'undefined' && this.invoiceDate !== null) {toReturn['invoiceDate'] = 'toApiJson' in this.invoiceDate ? (this.invoiceDate as any).toApiJson() : this.invoiceDate;}\n if (typeof this.startDate !== 'undefined' && this.startDate !== null) {toReturn['startDate'] = 'toApiJson' in this.startDate ? (this.startDate as any).toApiJson() : this.startDate;}\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {toReturn['endDate'] = 'toApiJson' in this.endDate ? (this.endDate as any).toApiJson() : this.endDate;}\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {toReturn['dueDate'] = 'toApiJson' in this.dueDate ? (this.dueDate as any).toApiJson() : this.dueDate;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.paymentStatus !== 'undefined') {toReturn['paymentStatus'] = this.paymentStatus;}\n if (typeof this.outstanding !== 'undefined') {toReturn['outstanding'] = this.outstanding;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n return toReturn;\n }\n}\n\nexport class SendSalesInvoiceEmailRequest implements i.SendSalesInvoiceEmailRequestInterface {\n merchantId: string;\n invoiceId: string;\n\n static fromProto(proto: any): SendSalesInvoiceEmailRequest {\n let m = new SendSalesInvoiceEmailRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendSalesInvoiceEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\nexport class SendSalesInvoiceReceiptEmailRequest implements i.SendSalesInvoiceReceiptEmailRequestInterface {\n merchantId: string;\n invoiceId: string;\n\n static fromProto(proto: any): SendSalesInvoiceReceiptEmailRequest {\n let m = new SendSalesInvoiceReceiptEmailRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendSalesInvoiceReceiptEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceId !== 'undefined') {toReturn['invoiceId'] = this.invoiceId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class SubscribeValidation implements i.SubscribeValidationInterface {\n status: e.SubscribeValidationStatus;\n\n static fromProto(proto: any): SubscribeValidation {\n let m = new SubscribeValidation();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.SubscribeValidationStatus>(e.SubscribeValidationStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.SubscribeValidationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { SubscribeValidation } from './subscribe-validation';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AlignmentSubscription implements i.AlignmentSubscriptionInterface {\n sku: string;\n customerId: string;\n orderId: string;\n\n static fromProto(proto: any): AlignmentSubscription {\n let m = new AlignmentSubscription();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AlignmentSubscriptionInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n return toReturn;\n }\n}\n\nexport class CanCreateSubscriptionsRequest implements i.CanCreateSubscriptionsRequestInterface {\n merchantId: string;\n skus: {[key: string]: number};\n items: CanCreateSubscriptionsRequestSubscriptionItem[];\n\n static fromProto(proto: any): CanCreateSubscriptionsRequest {\n let m = new CanCreateSubscriptionsRequest();\n m = Object.assign(m, proto);\n if (proto.skus) {m.skus = Object.keys(proto.skus).reduce<any>((obj, k) => { obj[k] = parseInt(proto.skus[k], 10); return obj; }, {});}\n if (proto.items) {m.items = proto.items.map(CanCreateSubscriptionsRequestSubscriptionItem.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.CanCreateSubscriptionsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.skus !== 'undefined' && this.skus !== null) {toReturn['skus'] = 'toApiJson' in this.skus ? (this.skus as any).toApiJson() : this.skus;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n return toReturn;\n }\n}\n\nexport class CanCreateSubscriptionsResponse implements i.CanCreateSubscriptionsResponseInterface {\n validationResponse: ValidateResponse[];\n\n static fromProto(proto: any): CanCreateSubscriptionsResponse {\n let m = new CanCreateSubscriptionsResponse();\n m = Object.assign(m, proto);\n if (proto.validationResponse) {m.validationResponse = proto.validationResponse.map(ValidateResponse.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.CanCreateSubscriptionsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.validationResponse !== 'undefined' && this.validationResponse !== null) {toReturn['validationResponse'] = 'toApiJson' in this.validationResponse ? (this.validationResponse as any).toApiJson() : this.validationResponse;}\n return toReturn;\n }\n}\n\nexport class ChangeCustomUnitPriceRequest implements i.ChangeCustomUnitPriceRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n customUnitPrice: number;\n\n static fromProto(proto: any): ChangeCustomUnitPriceRequest {\n let m = new ChangeCustomUnitPriceRequest();\n m = Object.assign(m, proto);\n if (proto.customUnitPrice) {m.customUnitPrice = parseInt(proto.customUnitPrice, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ChangeCustomUnitPriceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.customUnitPrice !== 'undefined') {toReturn['customUnitPrice'] = this.customUnitPrice;}\n return toReturn;\n }\n}\n\nexport class ChangeFrequencyRequest implements i.ChangeFrequencyRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n frequency: e.Frequency;\n\n static fromProto(proto: any): ChangeFrequencyRequest {\n let m = new ChangeFrequencyRequest();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n return m;\n }\n\n constructor(kwargs?: i.ChangeFrequencyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n return toReturn;\n }\n}\n\nexport class ChangeRenewalDateRequest implements i.ChangeRenewalDateRequestInterface {\n merchantId: string;\n customerId: string;\n sku: string;\n orderId: string;\n nextRenewalDate: Date;\n\n static fromProto(proto: any): ChangeRenewalDateRequest {\n let m = new ChangeRenewalDateRequest();\n m = Object.assign(m, proto);\n if (proto.nextRenewalDate) {m.nextRenewalDate = new Date(proto.nextRenewalDate);}\n return m;\n }\n\n constructor(kwargs?: i.ChangeRenewalDateRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.nextRenewalDate !== 'undefined' && this.nextRenewalDate !== null) {toReturn['nextRenewalDate'] = 'toApiJson' in this.nextRenewalDate ? (this.nextRenewalDate as any).toApiJson() : this.nextRenewalDate;}\n return toReturn;\n }\n}\n\nexport class CreateSubscriptionRequest implements i.CreateSubscriptionRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n billingStart: Date;\n proratedTo: Date;\n renewalState: e.RenewalState;\n retailBundleId: string;\n forResale: boolean;\n customUnitPrice: number;\n alignWith: AlignmentSubscription;\n frequency: e.Frequency;\n retailAmount: number;\n retailFrequency: e.Frequency;\n\n static fromProto(proto: any): CreateSubscriptionRequest {\n let m = new CreateSubscriptionRequest();\n m = Object.assign(m, proto);\n if (proto.billingStart) {m.billingStart = new Date(proto.billingStart);}\n if (proto.proratedTo) {m.proratedTo = new Date(proto.proratedTo);}\n if (proto.renewalState) {m.renewalState = enumStringToValue<e.RenewalState>(e.RenewalState, proto.renewalState);}\n if (proto.customUnitPrice) {m.customUnitPrice = parseInt(proto.customUnitPrice, 10);}\n if (proto.alignWith) {m.alignWith = AlignmentSubscription.fromProto(proto.alignWith);}\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.retailAmount) {m.retailAmount = parseInt(proto.retailAmount, 10);}\n if (proto.retailFrequency) {m.retailFrequency = enumStringToValue<e.Frequency>(e.Frequency, proto.retailFrequency);}\n return m;\n }\n\n constructor(kwargs?: i.CreateSubscriptionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.billingStart !== 'undefined' && this.billingStart !== null) {toReturn['billingStart'] = 'toApiJson' in this.billingStart ? (this.billingStart as any).toApiJson() : this.billingStart;}\n if (typeof this.proratedTo !== 'undefined' && this.proratedTo !== null) {toReturn['proratedTo'] = 'toApiJson' in this.proratedTo ? (this.proratedTo as any).toApiJson() : this.proratedTo;}\n if (typeof this.renewalState !== 'undefined') {toReturn['renewalState'] = this.renewalState;}\n if (typeof this.retailBundleId !== 'undefined') {toReturn['retailBundleId'] = this.retailBundleId;}\n if (typeof this.forResale !== 'undefined') {toReturn['forResale'] = this.forResale;}\n if (typeof this.customUnitPrice !== 'undefined') {toReturn['customUnitPrice'] = this.customUnitPrice;}\n if (typeof this.alignWith !== 'undefined' && this.alignWith !== null) {toReturn['alignWith'] = 'toApiJson' in this.alignWith ? (this.alignWith as any).toApiJson() : this.alignWith;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.retailAmount !== 'undefined') {toReturn['retailAmount'] = this.retailAmount;}\n if (typeof this.retailFrequency !== 'undefined') {toReturn['retailFrequency'] = this.retailFrequency;}\n return toReturn;\n }\n}\n\nexport class CreateSubscriptionsRequest implements i.CreateSubscriptionsRequestInterface {\n merchantId: string;\n subscriptions: Subscription[];\n\n static fromProto(proto: any): CreateSubscriptionsRequest {\n let m = new CreateSubscriptionsRequest();\n m = Object.assign(m, proto);\n if (proto.subscriptions) {m.subscriptions = proto.subscriptions.map(Subscription.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.CreateSubscriptionsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.subscriptions !== 'undefined' && this.subscriptions !== null) {toReturn['subscriptions'] = 'toApiJson' in this.subscriptions ? (this.subscriptions as any).toApiJson() : this.subscriptions;}\n return toReturn;\n }\n}\n\nexport class CreateSubscriptionsResponse implements i.CreateSubscriptionsResponseInterface {\n id: string;\n\n static fromProto(proto: any): CreateSubscriptionsResponse {\n let m = new CreateSubscriptionsResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateSubscriptionsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class ReverseSubscriptionRequest implements i.ReverseSubscriptionRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n\n static fromProto(proto: any): ReverseSubscriptionRequest {\n let m = new ReverseSubscriptionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ReverseSubscriptionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n return toReturn;\n }\n}\n\nexport class SetRenewalStartRequest implements i.SetRenewalStartRequestInterface {\n merchantId: string;\n sku: string;\n customerId: string;\n orderId: string;\n renewalStart: Date;\n\n static fromProto(proto: any): SetRenewalStartRequest {\n let m = new SetRenewalStartRequest();\n m = Object.assign(m, proto);\n if (proto.renewalStart) {m.renewalStart = new Date(proto.renewalStart);}\n return m;\n }\n\n constructor(kwargs?: i.SetRenewalStartRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.renewalStart !== 'undefined' && this.renewalStart !== null) {toReturn['renewalStart'] = 'toApiJson' in this.renewalStart ? (this.renewalStart as any).toApiJson() : this.renewalStart;}\n return toReturn;\n }\n}\n\nexport class CanCreateSubscriptionsRequestSkusEntry implements i.CanCreateSubscriptionsRequestSkusEntryInterface {\n key: string;\n value: number;\n\n static fromProto(proto: any): CanCreateSubscriptionsRequestSkusEntry {\n let m = new CanCreateSubscriptionsRequestSkusEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = parseInt(proto.value, 10);}\n return m;\n }\n\n constructor(kwargs?: i.CanCreateSubscriptionsRequestSkusEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class Subscription implements i.SubscriptionInterface {\n sku: string;\n customerId: string;\n orderId: string;\n billingStart: Date;\n renewalState: e.RenewalState;\n proratedTo: Date;\n retailBundleId: string;\n forResale: boolean;\n customUnitPrice: number;\n alignWith: AlignmentSubscription;\n bundleInstanceId: string;\n frequency: e.Frequency;\n retailAmount: number;\n retailFrequency: e.Frequency;\n\n static fromProto(proto: any): Subscription {\n let m = new Subscription();\n m = Object.assign(m, proto);\n if (proto.billingStart) {m.billingStart = new Date(proto.billingStart);}\n if (proto.renewalState) {m.renewalState = enumStringToValue<e.RenewalState>(e.RenewalState, proto.renewalState);}\n if (proto.proratedTo) {m.proratedTo = new Date(proto.proratedTo);}\n if (proto.customUnitPrice) {m.customUnitPrice = parseInt(proto.customUnitPrice, 10);}\n if (proto.alignWith) {m.alignWith = AlignmentSubscription.fromProto(proto.alignWith);}\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.retailAmount) {m.retailAmount = parseInt(proto.retailAmount, 10);}\n if (proto.retailFrequency) {m.retailFrequency = enumStringToValue<e.Frequency>(e.Frequency, proto.retailFrequency);}\n return m;\n }\n\n constructor(kwargs?: i.SubscriptionInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.orderId !== 'undefined') {toReturn['orderId'] = this.orderId;}\n if (typeof this.billingStart !== 'undefined' && this.billingStart !== null) {toReturn['billingStart'] = 'toApiJson' in this.billingStart ? (this.billingStart as any).toApiJson() : this.billingStart;}\n if (typeof this.renewalState !== 'undefined') {toReturn['renewalState'] = this.renewalState;}\n if (typeof this.proratedTo !== 'undefined' && this.proratedTo !== null) {toReturn['proratedTo'] = 'toApiJson' in this.proratedTo ? (this.proratedTo as any).toApiJson() : this.proratedTo;}\n if (typeof this.retailBundleId !== 'undefined') {toReturn['retailBundleId'] = this.retailBundleId;}\n if (typeof this.forResale !== 'undefined') {toReturn['forResale'] = this.forResale;}\n if (typeof this.customUnitPrice !== 'undefined') {toReturn['customUnitPrice'] = this.customUnitPrice;}\n if (typeof this.alignWith !== 'undefined' && this.alignWith !== null) {toReturn['alignWith'] = 'toApiJson' in this.alignWith ? (this.alignWith as any).toApiJson() : this.alignWith;}\n if (typeof this.bundleInstanceId !== 'undefined') {toReturn['bundleInstanceId'] = this.bundleInstanceId;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.retailAmount !== 'undefined') {toReturn['retailAmount'] = this.retailAmount;}\n if (typeof this.retailFrequency !== 'undefined') {toReturn['retailFrequency'] = this.retailFrequency;}\n return toReturn;\n }\n}\n\nexport class CanCreateSubscriptionsRequestSubscriptionItem implements i.CanCreateSubscriptionsRequestSubscriptionItemInterface {\n sku: string;\n frequency: e.Frequency;\n quantity: number;\n\n static fromProto(proto: any): CanCreateSubscriptionsRequestSubscriptionItem {\n let m = new CanCreateSubscriptionsRequestSubscriptionItem();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.quantity) {m.quantity = parseInt(proto.quantity, 10);}\n return m;\n }\n\n constructor(kwargs?: i.CanCreateSubscriptionsRequestSubscriptionItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n return toReturn;\n }\n}\n\nexport class ValidateResponse implements i.ValidateResponseInterface {\n sku: string;\n code: SubscribeValidation;\n\n static fromProto(proto: any): ValidateResponse {\n let m = new ValidateResponse();\n m = Object.assign(m, proto);\n if (proto.code) {m.code = SubscribeValidation.fromProto(proto.code);}\n return m;\n }\n\n constructor(kwargs?: i.ValidateResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.code !== 'undefined' && this.code !== null) {toReturn['code'] = 'toApiJson' in this.code ? (this.code as any).toApiJson() : this.code;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PagedRequestOptions, PagedResponseMetadata } from './common';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ContractDocument implements i.ContractDocumentInterface {\n merchantId: string;\n id: string;\n filename: string;\n created: Date;\n\n static fromProto(proto: any): ContractDocument {\n let m = new ContractDocument();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n return m;\n }\n\n constructor(kwargs?: i.ContractDocumentInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.filename !== 'undefined') {toReturn['filename'] = this.filename;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n return toReturn;\n }\n}\n\nexport class DeleteContractDocumentRequest implements i.DeleteContractDocumentRequestInterface {\n merchantId: string;\n id: string;\n\n static fromProto(proto: any): DeleteContractDocumentRequest {\n let m = new DeleteContractDocumentRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteContractDocumentRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class ListContractDocumentsRequestFilters implements i.ListContractDocumentsRequestFiltersInterface {\n merchantId: string;\n\n static fromProto(proto: any): ListContractDocumentsRequestFilters {\n let m = new ListContractDocumentsRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListContractDocumentsRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class ListContractDocumentsRequest implements i.ListContractDocumentsRequestInterface {\n filters: ListContractDocumentsRequestFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListContractDocumentsRequest {\n let m = new ListContractDocumentsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListContractDocumentsRequestFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListContractDocumentsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListContractDocumentsResponse implements i.ListContractDocumentsResponseInterface {\n contractDocuments: ContractDocument[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListContractDocumentsResponse {\n let m = new ListContractDocumentsResponse();\n m = Object.assign(m, proto);\n if (proto.contractDocuments) {m.contractDocuments = proto.contractDocuments.map(ContractDocument.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListContractDocumentsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.contractDocuments !== 'undefined' && this.contractDocuments !== null) {toReturn['contractDocuments'] = 'toApiJson' in this.contractDocuments ? (this.contractDocuments as any).toApiJson() : this.contractDocuments;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class GetRetailCustomerConfigurationRequest implements i.GetRetailCustomerConfigurationRequestInterface {\n customerId: string;\n merchantId: string;\n\n static fromProto(proto: any): GetRetailCustomerConfigurationRequest {\n let m = new GetRetailCustomerConfigurationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetRetailCustomerConfigurationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetRetailCustomerConfigurationResponse implements i.GetRetailCustomerConfigurationResponseInterface {\n configuration: RetailCustomerConfiguration;\n\n static fromProto(proto: any): GetRetailCustomerConfigurationResponse {\n let m = new GetRetailCustomerConfigurationResponse();\n m = Object.assign(m, proto);\n if (proto.configuration) {m.configuration = RetailCustomerConfiguration.fromProto(proto.configuration);}\n return m;\n }\n\n constructor(kwargs?: i.GetRetailCustomerConfigurationResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {toReturn['configuration'] = 'toApiJson' in this.configuration ? (this.configuration as any).toApiJson() : this.configuration;}\n return toReturn;\n }\n}\n\nexport class RetailCustomerConfiguration implements i.RetailCustomerConfigurationInterface {\n customerId: string;\n merchantId: string;\n invoiceDay: number;\n nextInvoiceDate: Date;\n autoPost: boolean;\n collectionMethod: string;\n netD: number;\n autoGenerate: boolean;\n contactId: string;\n useTemplateInvoice: boolean;\n\n static fromProto(proto: any): RetailCustomerConfiguration {\n let m = new RetailCustomerConfiguration();\n m = Object.assign(m, proto);\n if (proto.invoiceDay) {m.invoiceDay = parseInt(proto.invoiceDay, 10);}\n if (proto.nextInvoiceDate) {m.nextInvoiceDate = new Date(proto.nextInvoiceDate);}\n if (proto.netD) {m.netD = parseInt(proto.netD, 10);}\n return m;\n }\n\n constructor(kwargs?: i.RetailCustomerConfigurationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceDay !== 'undefined') {toReturn['invoiceDay'] = this.invoiceDay;}\n if (typeof this.nextInvoiceDate !== 'undefined' && this.nextInvoiceDate !== null) {toReturn['nextInvoiceDate'] = 'toApiJson' in this.nextInvoiceDate ? (this.nextInvoiceDate as any).toApiJson() : this.nextInvoiceDate;}\n if (typeof this.autoPost !== 'undefined') {toReturn['autoPost'] = this.autoPost;}\n if (typeof this.collectionMethod !== 'undefined') {toReturn['collectionMethod'] = this.collectionMethod;}\n if (typeof this.netD !== 'undefined') {toReturn['netD'] = this.netD;}\n if (typeof this.autoGenerate !== 'undefined') {toReturn['autoGenerate'] = this.autoGenerate;}\n if (typeof this.contactId !== 'undefined') {toReturn['contactId'] = this.contactId;}\n if (typeof this.useTemplateInvoice !== 'undefined') {toReturn['useTemplateInvoice'] = this.useTemplateInvoice;}\n return toReturn;\n }\n}\n\nexport class UpsertRetailCustomerConfigurationRequest implements i.UpsertRetailCustomerConfigurationRequestInterface {\n customerId: string;\n merchantId: string;\n invoiceDay: number;\n autoPost: boolean;\n netD: number;\n autoGenerate: boolean;\n contactId: string;\n collectionMethod: string;\n useTemplateInvoice: boolean;\n\n static fromProto(proto: any): UpsertRetailCustomerConfigurationRequest {\n let m = new UpsertRetailCustomerConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.invoiceDay) {m.invoiceDay = parseInt(proto.invoiceDay, 10);}\n if (proto.netD) {m.netD = parseInt(proto.netD, 10);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertRetailCustomerConfigurationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.invoiceDay !== 'undefined') {toReturn['invoiceDay'] = this.invoiceDay;}\n if (typeof this.autoPost !== 'undefined') {toReturn['autoPost'] = this.autoPost;}\n if (typeof this.netD !== 'undefined') {toReturn['netD'] = this.netD;}\n if (typeof this.autoGenerate !== 'undefined') {toReturn['autoGenerate'] = this.autoGenerate;}\n if (typeof this.contactId !== 'undefined') {toReturn['contactId'] = this.contactId;}\n if (typeof this.collectionMethod !== 'undefined') {toReturn['collectionMethod'] = this.collectionMethod;}\n if (typeof this.useTemplateInvoice !== 'undefined') {toReturn['useTemplateInvoice'] = this.useTemplateInvoice;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AddCreditRequest implements i.AddCreditRequestInterface {\n merchantId: string;\n currency: string;\n amount: number;\n idempotencyKey: string;\n reason: string;\n\n static fromProto(proto: any): AddCreditRequest {\n let m = new AddCreditRequest();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.AddCreditRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n if (typeof this.idempotencyKey !== 'undefined') {toReturn['idempotencyKey'] = this.idempotencyKey;}\n if (typeof this.reason !== 'undefined') {toReturn['reason'] = this.reason;}\n return toReturn;\n }\n}\n\nexport class CreditBalance implements i.CreditBalanceInterface {\n merchantId: string;\n currency: string;\n amount: number;\n\n static fromProto(proto: any): CreditBalance {\n let m = new CreditBalance();\n m = Object.assign(m, proto);\n if (proto.amount) {m.amount = parseInt(proto.amount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.CreditBalanceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.amount !== 'undefined') {toReturn['amount'] = this.amount;}\n return toReturn;\n }\n}\n\nexport class GetBalanceRequest implements i.GetBalanceRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetBalanceRequest {\n let m = new GetBalanceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetBalanceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetBalanceResponse implements i.GetBalanceResponseInterface {\n creditBalance: CreditBalance;\n\n static fromProto(proto: any): GetBalanceResponse {\n let m = new GetBalanceResponse();\n m = Object.assign(m, proto);\n if (proto.creditBalance) {m.creditBalance = CreditBalance.fromProto(proto.creditBalance);}\n return m;\n }\n\n constructor(kwargs?: i.GetBalanceResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.creditBalance !== 'undefined' && this.creditBalance !== null) {toReturn['creditBalance'] = 'toApiJson' in this.creditBalance ? (this.creditBalance as any).toApiJson() : this.creditBalance;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { AppliedBundle } from './applied-bundle';\nimport { AppliedDiscount } from './applied-discount';\nimport { AppliedTaxRate } from './applied-tax-rate';\nimport { TaxRate } from './tax-rate';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AddTemplateBundleRequest implements i.AddTemplateBundleRequestInterface {\n merchantId: string;\n customerId: string;\n bundleId: string;\n\n static fromProto(proto: any): AddTemplateBundleRequest {\n let m = new AddTemplateBundleRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AddTemplateBundleRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n return toReturn;\n }\n}\n\nexport class AddTemplateBundleResponse implements i.AddTemplateBundleResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): AddTemplateBundleResponse {\n let m = new AddTemplateBundleResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.AddTemplateBundleResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class AddTemplateLineItemRequest implements i.AddTemplateLineItemRequestInterface {\n merchantId: string;\n customerId: string;\n sku: string;\n unitPrice: number;\n quantity: number;\n description: string;\n taxRates: string[];\n\n static fromProto(proto: any): AddTemplateLineItemRequest {\n let m = new AddTemplateLineItemRequest();\n m = Object.assign(m, proto);\n if (proto.unitPrice) {m.unitPrice = parseInt(proto.unitPrice, 10);}\n return m;\n }\n\n constructor(kwargs?: i.AddTemplateLineItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.unitPrice !== 'undefined') {toReturn['unitPrice'] = this.unitPrice;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.taxRates !== 'undefined') {toReturn['taxRates'] = this.taxRates;}\n return toReturn;\n }\n}\n\nexport class AddTemplateLineItemResponse implements i.AddTemplateLineItemResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): AddTemplateLineItemResponse {\n let m = new AddTemplateLineItemResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.AddTemplateLineItemResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class CreateTemplateRequest implements i.CreateTemplateRequestInterface {\n merchantId: string;\n customerId: string;\n\n static fromProto(proto: any): CreateTemplateRequest {\n let m = new CreateTemplateRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateTemplateRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n return toReturn;\n }\n}\n\nexport class CreateTemplateResponse implements i.CreateTemplateResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): CreateTemplateResponse {\n let m = new CreateTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.CreateTemplateResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class DeleteInvoiceTemplateRequest implements i.DeleteInvoiceTemplateRequestInterface {\n merchantId: string;\n customerId: string;\n\n static fromProto(proto: any): DeleteInvoiceTemplateRequest {\n let m = new DeleteInvoiceTemplateRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteInvoiceTemplateRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n return toReturn;\n }\n}\n\nexport class DeleteTemplateLineItemRequest implements i.DeleteTemplateLineItemRequestInterface {\n merchantId: string;\n customerId: string;\n id: string;\n\n static fromProto(proto: any): DeleteTemplateLineItemRequest {\n let m = new DeleteTemplateLineItemRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteTemplateLineItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n return toReturn;\n }\n}\n\nexport class DeleteTemplateLineItemResponse implements i.DeleteTemplateLineItemResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): DeleteTemplateLineItemResponse {\n let m = new DeleteTemplateLineItemResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.DeleteTemplateLineItemResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class GetInvoiceTemplateRequest implements i.GetInvoiceTemplateRequestInterface {\n merchantId: string;\n customerId: string;\n\n static fromProto(proto: any): GetInvoiceTemplateRequest {\n let m = new GetInvoiceTemplateRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetInvoiceTemplateRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n return toReturn;\n }\n}\n\nexport class GetInvoiceTemplateResponse implements i.GetInvoiceTemplateResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): GetInvoiceTemplateResponse {\n let m = new GetInvoiceTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.GetInvoiceTemplateResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class InvoiceTemplate implements i.InvoiceTemplateInterface {\n merchantId: string;\n customerId: string;\n appliedTaxes: AppliedTaxRate[];\n items: InvoiceTemplateItem[];\n currency: e.Currency;\n total: number;\n subtotal: number;\n created: Date;\n updated: Date;\n defaultTaxRates: TaxRate[];\n appliedBundles: AppliedBundle[];\n amountDiscount: number;\n\n static fromProto(proto: any): InvoiceTemplate {\n let m = new InvoiceTemplate();\n m = Object.assign(m, proto);\n if (proto.appliedTaxes) {m.appliedTaxes = proto.appliedTaxes.map(AppliedTaxRate.fromProto);}\n if (proto.items) {m.items = proto.items.map(InvoiceTemplateItem.fromProto);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.subtotal) {m.subtotal = parseInt(proto.subtotal, 10);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.defaultTaxRates) {m.defaultTaxRates = proto.defaultTaxRates.map(TaxRate.fromProto);}\n if (proto.appliedBundles) {m.appliedBundles = proto.appliedBundles.map(AppliedBundle.fromProto);}\n if (proto.amountDiscount) {m.amountDiscount = parseInt(proto.amountDiscount, 10);}\n return m;\n }\n\n constructor(kwargs?: i.InvoiceTemplateInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.appliedTaxes !== 'undefined' && this.appliedTaxes !== null) {toReturn['appliedTaxes'] = 'toApiJson' in this.appliedTaxes ? (this.appliedTaxes as any).toApiJson() : this.appliedTaxes;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.subtotal !== 'undefined') {toReturn['subtotal'] = this.subtotal;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.defaultTaxRates !== 'undefined' && this.defaultTaxRates !== null) {toReturn['defaultTaxRates'] = 'toApiJson' in this.defaultTaxRates ? (this.defaultTaxRates as any).toApiJson() : this.defaultTaxRates;}\n if (typeof this.appliedBundles !== 'undefined' && this.appliedBundles !== null) {toReturn['appliedBundles'] = 'toApiJson' in this.appliedBundles ? (this.appliedBundles as any).toApiJson() : this.appliedBundles;}\n if (typeof this.amountDiscount !== 'undefined') {toReturn['amountDiscount'] = this.amountDiscount;}\n return toReturn;\n }\n}\n\nexport class InvoiceTemplateItem implements i.InvoiceTemplateItemInterface {\n sku: string;\n unitPrice: number;\n quantity: number;\n description: string;\n total: number;\n appliedTaxes: AppliedTaxRate[];\n taxRates: TaxRate[];\n subtotal: number;\n bundleId: string;\n discounts: AppliedDiscount[];\n\n static fromProto(proto: any): InvoiceTemplateItem {\n let m = new InvoiceTemplateItem();\n m = Object.assign(m, proto);\n if (proto.unitPrice) {m.unitPrice = parseInt(proto.unitPrice, 10);}\n if (proto.total) {m.total = parseInt(proto.total, 10);}\n if (proto.appliedTaxes) {m.appliedTaxes = proto.appliedTaxes.map(AppliedTaxRate.fromProto);}\n if (proto.taxRates) {m.taxRates = proto.taxRates.map(TaxRate.fromProto);}\n if (proto.subtotal) {m.subtotal = parseInt(proto.subtotal, 10);}\n if (proto.discounts) {m.discounts = proto.discounts.map(AppliedDiscount.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.InvoiceTemplateItemInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.unitPrice !== 'undefined') {toReturn['unitPrice'] = this.unitPrice;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.total !== 'undefined') {toReturn['total'] = this.total;}\n if (typeof this.appliedTaxes !== 'undefined' && this.appliedTaxes !== null) {toReturn['appliedTaxes'] = 'toApiJson' in this.appliedTaxes ? (this.appliedTaxes as any).toApiJson() : this.appliedTaxes;}\n if (typeof this.taxRates !== 'undefined' && this.taxRates !== null) {toReturn['taxRates'] = 'toApiJson' in this.taxRates ? (this.taxRates as any).toApiJson() : this.taxRates;}\n if (typeof this.subtotal !== 'undefined') {toReturn['subtotal'] = this.subtotal;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.discounts !== 'undefined' && this.discounts !== null) {toReturn['discounts'] = 'toApiJson' in this.discounts ? (this.discounts as any).toApiJson() : this.discounts;}\n return toReturn;\n }\n}\n\nexport class UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest implements i.UpsertInvoiceTemplateRequestInvoiceTemplateItemRequestInterface {\n sku: string;\n unitPrice: number;\n quantity: number;\n description: string;\n taxRates: string[];\n bundleId: string;\n appliedDiscounts: AppliedDiscount[];\n\n static fromProto(proto: any): UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest {\n let m = new UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest();\n m = Object.assign(m, proto);\n if (proto.unitPrice) {m.unitPrice = parseInt(proto.unitPrice, 10);}\n if (proto.appliedDiscounts) {m.appliedDiscounts = proto.appliedDiscounts.map(AppliedDiscount.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertInvoiceTemplateRequestInvoiceTemplateItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.unitPrice !== 'undefined') {toReturn['unitPrice'] = this.unitPrice;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.taxRates !== 'undefined') {toReturn['taxRates'] = this.taxRates;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.appliedDiscounts !== 'undefined' && this.appliedDiscounts !== null) {toReturn['appliedDiscounts'] = 'toApiJson' in this.appliedDiscounts ? (this.appliedDiscounts as any).toApiJson() : this.appliedDiscounts;}\n return toReturn;\n }\n}\n\nexport class UpdateTemplateBundleRequest implements i.UpdateTemplateBundleRequestInterface {\n merchantId: string;\n customerId: string;\n bundleId: string;\n hideBundleItems: boolean;\n\n static fromProto(proto: any): UpdateTemplateBundleRequest {\n let m = new UpdateTemplateBundleRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateTemplateBundleRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.bundleId !== 'undefined') {toReturn['bundleId'] = this.bundleId;}\n if (typeof this.hideBundleItems !== 'undefined') {toReturn['hideBundleItems'] = this.hideBundleItems;}\n return toReturn;\n }\n}\n\nexport class UpdateTemplateBundleResponse implements i.UpdateTemplateBundleResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): UpdateTemplateBundleResponse {\n let m = new UpdateTemplateBundleResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateTemplateBundleResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class UpdateTemplateDefaultTaxRatesRequest implements i.UpdateTemplateDefaultTaxRatesRequestInterface {\n customerId: string;\n merchantId: string;\n taxRateIds: string[];\n\n static fromProto(proto: any): UpdateTemplateDefaultTaxRatesRequest {\n let m = new UpdateTemplateDefaultTaxRatesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateTemplateDefaultTaxRatesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.taxRateIds !== 'undefined') {toReturn['taxRateIds'] = this.taxRateIds;}\n return toReturn;\n }\n}\n\nexport class UpdateTemplateDefaultTaxRatesResponse implements i.UpdateTemplateDefaultTaxRatesResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): UpdateTemplateDefaultTaxRatesResponse {\n let m = new UpdateTemplateDefaultTaxRatesResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateTemplateDefaultTaxRatesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class UpdateTemplateLineItemRequest implements i.UpdateTemplateLineItemRequestInterface {\n merchantId: string;\n customerId: string;\n id: string;\n sku: string;\n unitPrice: number;\n quantity: number;\n description: string;\n taxRates: string[];\n\n static fromProto(proto: any): UpdateTemplateLineItemRequest {\n let m = new UpdateTemplateLineItemRequest();\n m = Object.assign(m, proto);\n if (proto.unitPrice) {m.unitPrice = parseInt(proto.unitPrice, 10);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateTemplateLineItemRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.unitPrice !== 'undefined') {toReturn['unitPrice'] = this.unitPrice;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.taxRates !== 'undefined') {toReturn['taxRates'] = this.taxRates;}\n return toReturn;\n }\n}\n\nexport class UpdateTemplateLineItemResponse implements i.UpdateTemplateLineItemResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): UpdateTemplateLineItemResponse {\n let m = new UpdateTemplateLineItemResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateTemplateLineItemResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\nexport class UpsertInvoiceTemplateRequest implements i.UpsertInvoiceTemplateRequestInterface {\n merchantId: string;\n customerId: string;\n items: UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest[];\n defaultTaxRates: string[];\n currencyCode: string;\n\n static fromProto(proto: any): UpsertInvoiceTemplateRequest {\n let m = new UpsertInvoiceTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.items) {m.items = proto.items.map(UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertInvoiceTemplateRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.customerId !== 'undefined') {toReturn['customerId'] = this.customerId;}\n if (typeof this.items !== 'undefined' && this.items !== null) {toReturn['items'] = 'toApiJson' in this.items ? (this.items as any).toApiJson() : this.items;}\n if (typeof this.defaultTaxRates !== 'undefined') {toReturn['defaultTaxRates'] = this.defaultTaxRates;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n return toReturn;\n }\n}\n\nexport class UpsertInvoiceTemplateResponse implements i.UpsertInvoiceTemplateResponseInterface {\n invoiceTemplate: InvoiceTemplate;\n\n static fromProto(proto: any): UpsertInvoiceTemplateResponse {\n let m = new UpsertInvoiceTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.invoiceTemplate) {m.invoiceTemplate = InvoiceTemplate.fromProto(proto.invoiceTemplate);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertInvoiceTemplateResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.invoiceTemplate !== 'undefined' && this.invoiceTemplate !== null) {toReturn['invoiceTemplate'] = 'toApiJson' in this.invoiceTemplate ? (this.invoiceTemplate as any).toApiJson() : this.invoiceTemplate;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { BundlePricing } from './bundle';\nimport { Commitment } from './commitment';\nimport { PricingPlanProductPricing } from './pricing-plan';\nimport { ProductPrices, ProductPricing } from './product-pricing';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class DeleteRetailPricingRequest implements i.DeleteRetailPricingRequestInterface {\n merchantId: string;\n groupId: string;\n sku: string;\n\n static fromProto(proto: any): DeleteRetailPricingRequest {\n let m = new DeleteRetailPricingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteRetailPricingRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.groupId !== 'undefined') {toReturn['groupId'] = this.groupId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n return toReturn;\n }\n}\n\nexport class GenerateBillableItemsCSVRequest implements i.GenerateBillableItemsCSVRequestInterface {\n merchantId: string;\n periodStart: Date;\n periodEnd: Date;\n\n static fromProto(proto: any): GenerateBillableItemsCSVRequest {\n let m = new GenerateBillableItemsCSVRequest();\n m = Object.assign(m, proto);\n if (proto.periodStart) {m.periodStart = new Date(proto.periodStart);}\n if (proto.periodEnd) {m.periodEnd = new Date(proto.periodEnd);}\n return m;\n }\n\n constructor(kwargs?: i.GenerateBillableItemsCSVRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.periodStart !== 'undefined' && this.periodStart !== null) {toReturn['periodStart'] = 'toApiJson' in this.periodStart ? (this.periodStart as any).toApiJson() : this.periodStart;}\n if (typeof this.periodEnd !== 'undefined' && this.periodEnd !== null) {toReturn['periodEnd'] = 'toApiJson' in this.periodEnd ? (this.periodEnd as any).toApiJson() : this.periodEnd;}\n return toReturn;\n }\n}\n\nexport class GenerateBillableItemsCSVResponse implements i.GenerateBillableItemsCSVResponseInterface {\n url: string;\n\n static fromProto(proto: any): GenerateBillableItemsCSVResponse {\n let m = new GenerateBillableItemsCSVResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GenerateBillableItemsCSVResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.url !== 'undefined') {toReturn['url'] = this.url;}\n return toReturn;\n }\n}\n\nexport class GenerateVendorReportRequest implements i.GenerateVendorReportRequestInterface {\n skus: string[];\n periodStart: Date;\n periodEnd: Date;\n vendorName: string;\n markAsApproved: boolean;\n\n static fromProto(proto: any): GenerateVendorReportRequest {\n let m = new GenerateVendorReportRequest();\n m = Object.assign(m, proto);\n if (proto.periodStart) {m.periodStart = new Date(proto.periodStart);}\n if (proto.periodEnd) {m.periodEnd = new Date(proto.periodEnd);}\n return m;\n }\n\n constructor(kwargs?: i.GenerateVendorReportRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n if (typeof this.periodStart !== 'undefined' && this.periodStart !== null) {toReturn['periodStart'] = 'toApiJson' in this.periodStart ? (this.periodStart as any).toApiJson() : this.periodStart;}\n if (typeof this.periodEnd !== 'undefined' && this.periodEnd !== null) {toReturn['periodEnd'] = 'toApiJson' in this.periodEnd ? (this.periodEnd as any).toApiJson() : this.periodEnd;}\n if (typeof this.vendorName !== 'undefined') {toReturn['vendorName'] = this.vendorName;}\n if (typeof this.markAsApproved !== 'undefined') {toReturn['markAsApproved'] = this.markAsApproved;}\n return toReturn;\n }\n}\n\nexport class GenerateVendorReportResponse implements i.GenerateVendorReportResponseInterface {\n url: string;\n bucket: string;\n filename: string;\n\n static fromProto(proto: any): GenerateVendorReportResponse {\n let m = new GenerateVendorReportResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GenerateVendorReportResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.url !== 'undefined') {toReturn['url'] = this.url;}\n if (typeof this.bucket !== 'undefined') {toReturn['bucket'] = this.bucket;}\n if (typeof this.filename !== 'undefined') {toReturn['filename'] = this.filename;}\n return toReturn;\n }\n}\n\nexport class GetMultiBundleRetailPricingRequest implements i.GetMultiBundleRetailPricingRequestInterface {\n merchantId: string;\n storeId: string;\n bundleIds: string[];\n\n static fromProto(proto: any): GetMultiBundleRetailPricingRequest {\n let m = new GetMultiBundleRetailPricingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiBundleRetailPricingRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.storeId !== 'undefined') {toReturn['storeId'] = this.storeId;}\n if (typeof this.bundleIds !== 'undefined') {toReturn['bundleIds'] = this.bundleIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiBundleRetailPricingResponse implements i.GetMultiBundleRetailPricingResponseInterface {\n prices: {[key: string]: BundlePricing};\n\n static fromProto(proto: any): GetMultiBundleRetailPricingResponse {\n let m = new GetMultiBundleRetailPricingResponse();\n m = Object.assign(m, proto);\n if (proto.prices) {m.prices = Object.keys(proto.prices).reduce<any>((obj, k) => { obj[k] = BundlePricing.fromProto(proto.prices[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiBundleRetailPricingResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.prices !== 'undefined' && this.prices !== null) {toReturn['prices'] = 'toApiJson' in this.prices ? (this.prices as any).toApiJson() : this.prices;}\n return toReturn;\n }\n}\n\nexport class GetMultiProductPricingRequest implements i.GetMultiProductPricingRequestInterface {\n merchantId: string;\n skus: string[];\n pricingPlanId: string;\n\n static fromProto(proto: any): GetMultiProductPricingRequest {\n let m = new GetMultiProductPricingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiProductPricingRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n return toReturn;\n }\n}\n\nexport class GetMultiProductPricingResponse implements i.GetMultiProductPricingResponseInterface {\n productPrices: {[key: string]: ProductPricing};\n prices: ProductPrices[];\n\n static fromProto(proto: any): GetMultiProductPricingResponse {\n let m = new GetMultiProductPricingResponse();\n m = Object.assign(m, proto);\n if (proto.productPrices) {m.productPrices = Object.keys(proto.productPrices).reduce<any>((obj, k) => { obj[k] = ProductPricing.fromProto(proto.productPrices[k]); return obj; }, {});}\n if (proto.prices) {m.prices = proto.prices.map(ProductPrices.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiProductPricingResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.productPrices !== 'undefined' && this.productPrices !== null) {toReturn['productPrices'] = 'toApiJson' in this.productPrices ? (this.productPrices as any).toApiJson() : this.productPrices;}\n if (typeof this.prices !== 'undefined' && this.prices !== null) {toReturn['prices'] = 'toApiJson' in this.prices ? (this.prices as any).toApiJson() : this.prices;}\n return toReturn;\n }\n}\n\nexport class GetMultiRetailPricingRequest implements i.GetMultiRetailPricingRequestInterface {\n merchantId: string;\n currency: e.Currency;\n skus: string[];\n groupId: string;\n\n static fromProto(proto: any): GetMultiRetailPricingRequest {\n let m = new GetMultiRetailPricingRequest();\n m = Object.assign(m, proto);\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiRetailPricingRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n if (typeof this.groupId !== 'undefined') {toReturn['groupId'] = this.groupId;}\n return toReturn;\n }\n}\n\nexport class GetMultiRetailPricingResponse implements i.GetMultiRetailPricingResponseInterface {\n productPrices: {[key: string]: ProductPricing};\n prices: ProductPrices[];\n\n static fromProto(proto: any): GetMultiRetailPricingResponse {\n let m = new GetMultiRetailPricingResponse();\n m = Object.assign(m, proto);\n if (proto.productPrices) {m.productPrices = Object.keys(proto.productPrices).reduce<any>((obj, k) => { obj[k] = ProductPricing.fromProto(proto.productPrices[k]); return obj; }, {});}\n if (proto.prices) {m.prices = proto.prices.map(ProductPrices.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiRetailPricingResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.productPrices !== 'undefined' && this.productPrices !== null) {toReturn['productPrices'] = 'toApiJson' in this.productPrices ? (this.productPrices as any).toApiJson() : this.productPrices;}\n if (typeof this.prices !== 'undefined' && this.prices !== null) {toReturn['prices'] = 'toApiJson' in this.prices ? (this.prices as any).toApiJson() : this.prices;}\n return toReturn;\n }\n}\n\nexport class GetPurchaseCostRequest implements i.GetPurchaseCostRequestInterface {\n merchantId: string;\n sku: string;\n quantity: number;\n frequency: e.Frequency;\n\n static fromProto(proto: any): GetPurchaseCostRequest {\n let m = new GetPurchaseCostRequest();\n m = Object.assign(m, proto);\n if (proto.quantity) {m.quantity = parseInt(proto.quantity, 10);}\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n return m;\n }\n\n constructor(kwargs?: i.GetPurchaseCostRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.quantity !== 'undefined') {toReturn['quantity'] = this.quantity;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n return toReturn;\n }\n}\n\nexport class GetPurchaseCostResponse implements i.GetPurchaseCostResponseInterface {\n billingFrequency: string;\n totalCost: number;\n currency: e.Currency;\n strategy: e.BillingStrategy;\n commitment: Commitment;\n isStartingPrice: boolean;\n discountAmount: number;\n subtotalCost: number;\n setupFee: number;\n\n static fromProto(proto: any): GetPurchaseCostResponse {\n let m = new GetPurchaseCostResponse();\n m = Object.assign(m, proto);\n if (proto.totalCost) {m.totalCost = parseInt(proto.totalCost, 10);}\n if (proto.currency) {m.currency = enumStringToValue<e.Currency>(e.Currency, proto.currency);}\n if (proto.strategy) {m.strategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.strategy);}\n if (proto.commitment) {m.commitment = Commitment.fromProto(proto.commitment);}\n if (proto.discountAmount) {m.discountAmount = parseInt(proto.discountAmount, 10);}\n if (proto.subtotalCost) {m.subtotalCost = parseInt(proto.subtotalCost, 10);}\n if (proto.setupFee) {m.setupFee = parseInt(proto.setupFee, 10);}\n return m;\n }\n\n constructor(kwargs?: i.GetPurchaseCostResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.billingFrequency !== 'undefined') {toReturn['billingFrequency'] = this.billingFrequency;}\n if (typeof this.totalCost !== 'undefined') {toReturn['totalCost'] = this.totalCost;}\n if (typeof this.currency !== 'undefined') {toReturn['currency'] = this.currency;}\n if (typeof this.strategy !== 'undefined') {toReturn['strategy'] = this.strategy;}\n if (typeof this.commitment !== 'undefined' && this.commitment !== null) {toReturn['commitment'] = 'toApiJson' in this.commitment ? (this.commitment as any).toApiJson() : this.commitment;}\n if (typeof this.isStartingPrice !== 'undefined') {toReturn['isStartingPrice'] = this.isStartingPrice;}\n if (typeof this.discountAmount !== 'undefined') {toReturn['discountAmount'] = this.discountAmount;}\n if (typeof this.subtotalCost !== 'undefined') {toReturn['subtotalCost'] = this.subtotalCost;}\n if (typeof this.setupFee !== 'undefined') {toReturn['setupFee'] = this.setupFee;}\n return toReturn;\n }\n}\n\nexport class GetRevenueStatsRequest implements i.GetRevenueStatsRequestInterface {\n skus: string[];\n periodStart: Date;\n periodEnd: Date;\n\n static fromProto(proto: any): GetRevenueStatsRequest {\n let m = new GetRevenueStatsRequest();\n m = Object.assign(m, proto);\n if (proto.periodStart) {m.periodStart = new Date(proto.periodStart);}\n if (proto.periodEnd) {m.periodEnd = new Date(proto.periodEnd);}\n return m;\n }\n\n constructor(kwargs?: i.GetRevenueStatsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.skus !== 'undefined') {toReturn['skus'] = this.skus;}\n if (typeof this.periodStart !== 'undefined' && this.periodStart !== null) {toReturn['periodStart'] = 'toApiJson' in this.periodStart ? (this.periodStart as any).toApiJson() : this.periodStart;}\n if (typeof this.periodEnd !== 'undefined' && this.periodEnd !== null) {toReturn['periodEnd'] = 'toApiJson' in this.periodEnd ? (this.periodEnd as any).toApiJson() : this.periodEnd;}\n return toReturn;\n }\n}\n\nexport class GetRevenueStatsResponse implements i.GetRevenueStatsResponseInterface {\n totalRevenue: number;\n\n static fromProto(proto: any): GetRevenueStatsResponse {\n let m = new GetRevenueStatsResponse();\n m = Object.assign(m, proto);\n if (proto.totalRevenue) {m.totalRevenue = parseInt(proto.totalRevenue, 10);}\n return m;\n }\n\n constructor(kwargs?: i.GetRevenueStatsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.totalRevenue !== 'undefined') {toReturn['totalRevenue'] = this.totalRevenue;}\n return toReturn;\n }\n}\n\nexport class GetStatisticsRequest implements i.GetStatisticsRequestInterface {\n merchantId: string;\n\n static fromProto(proto: any): GetStatisticsRequest {\n let m = new GetStatisticsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetStatisticsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n return toReturn;\n }\n}\n\nexport class GetStatisticsResponse implements i.GetStatisticsResponseInterface {\n totalBillableCustomers: number;\n currentBasketSize: number;\n changeInBasketSize30Days: number;\n\n static fromProto(proto: any): GetStatisticsResponse {\n let m = new GetStatisticsResponse();\n m = Object.assign(m, proto);\n if (proto.totalBillableCustomers) {m.totalBillableCustomers = parseInt(proto.totalBillableCustomers, 10);}\n return m;\n }\n\n constructor(kwargs?: i.GetStatisticsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.totalBillableCustomers !== 'undefined') {toReturn['totalBillableCustomers'] = this.totalBillableCustomers;}\n if (typeof this.currentBasketSize !== 'undefined') {toReturn['currentBasketSize'] = this.currentBasketSize;}\n if (typeof this.changeInBasketSize30Days !== 'undefined') {toReturn['changeInBasketSize30Days'] = this.changeInBasketSize30Days;}\n return toReturn;\n }\n}\n\nexport class GetWholesaleComparisonRequestGetWholesaleComparisonFilters implements i.GetWholesaleComparisonRequestGetWholesaleComparisonFiltersInterface {\n sku: string[];\n currencyCode: string[];\n\n static fromProto(proto: any): GetWholesaleComparisonRequestGetWholesaleComparisonFilters {\n let m = new GetWholesaleComparisonRequestGetWholesaleComparisonFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetWholesaleComparisonRequestGetWholesaleComparisonFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.currencyCode !== 'undefined') {toReturn['currencyCode'] = this.currencyCode;}\n return toReturn;\n }\n}\n\nexport class GetWholesaleComparisonRequest implements i.GetWholesaleComparisonRequestInterface {\n pricingPlanId: string[];\n filter: GetWholesaleComparisonRequestGetWholesaleComparisonFilters;\n\n static fromProto(proto: any): GetWholesaleComparisonRequest {\n let m = new GetWholesaleComparisonRequest();\n m = Object.assign(m, proto);\n if (proto.filter) {m.filter = GetWholesaleComparisonRequestGetWholesaleComparisonFilters.fromProto(proto.filter);}\n return m;\n }\n\n constructor(kwargs?: i.GetWholesaleComparisonRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.filter !== 'undefined' && this.filter !== null) {toReturn['filter'] = 'toApiJson' in this.filter ? (this.filter as any).toApiJson() : this.filter;}\n return toReturn;\n }\n}\n\nexport class GetWholesaleComparisonResponse implements i.GetWholesaleComparisonResponseInterface {\n results: GetWholesaleComparisonResponseGetWholesaleComparisonResult[];\n\n static fromProto(proto: any): GetWholesaleComparisonResponse {\n let m = new GetWholesaleComparisonResponse();\n m = Object.assign(m, proto);\n if (proto.results) {m.results = proto.results.map(GetWholesaleComparisonResponseGetWholesaleComparisonResult.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetWholesaleComparisonResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.results !== 'undefined' && this.results !== null) {toReturn['results'] = 'toApiJson' in this.results ? (this.results as any).toApiJson() : this.results;}\n return toReturn;\n }\n}\n\nexport class GetWholesaleComparisonResponseGetWholesaleComparisonResult implements i.GetWholesaleComparisonResponseGetWholesaleComparisonResultInterface {\n pricingPlanId: string;\n sku: string;\n productPricing: ProductPricing;\n\n static fromProto(proto: any): GetWholesaleComparisonResponseGetWholesaleComparisonResult {\n let m = new GetWholesaleComparisonResponseGetWholesaleComparisonResult();\n m = Object.assign(m, proto);\n if (proto.productPricing) {m.productPricing = ProductPricing.fromProto(proto.productPricing);}\n return m;\n }\n\n constructor(kwargs?: i.GetWholesaleComparisonResponseGetWholesaleComparisonResultInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.pricingPlanId !== 'undefined') {toReturn['pricingPlanId'] = this.pricingPlanId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.productPricing !== 'undefined' && this.productPricing !== null) {toReturn['productPricing'] = 'toApiJson' in this.productPricing ? (this.productPricing as any).toApiJson() : this.productPricing;}\n return toReturn;\n }\n}\n\nexport class GetMultiBundleRetailPricingResponsePricesEntry implements i.GetMultiBundleRetailPricingResponsePricesEntryInterface {\n key: string;\n value: BundlePricing;\n\n static fromProto(proto: any): GetMultiBundleRetailPricingResponsePricesEntry {\n let m = new GetMultiBundleRetailPricingResponsePricesEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = BundlePricing.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiBundleRetailPricingResponsePricesEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class UpsertRetailPricingRequestPricingEntry implements i.UpsertRetailPricingRequestPricingEntryInterface {\n key: string;\n value: PricingPlanProductPricing;\n\n static fromProto(proto: any): UpsertRetailPricingRequestPricingEntry {\n let m = new UpsertRetailPricingRequestPricingEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = PricingPlanProductPricing.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.UpsertRetailPricingRequestPricingEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class GetMultiRetailPricingResponseProductPricesEntry implements i.GetMultiRetailPricingResponseProductPricesEntryInterface {\n key: string;\n value: ProductPricing;\n\n static fromProto(proto: any): GetMultiRetailPricingResponseProductPricesEntry {\n let m = new GetMultiRetailPricingResponseProductPricesEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = ProductPricing.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiRetailPricingResponseProductPricesEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class GetMultiProductPricingResponseProductPricesEntry implements i.GetMultiProductPricingResponseProductPricesEntryInterface {\n key: string;\n value: ProductPricing;\n\n static fromProto(proto: any): GetMultiProductPricingResponseProductPricesEntry {\n let m = new GetMultiProductPricingResponseProductPricesEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = ProductPricing.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiProductPricingResponseProductPricesEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class SetWholesaleProductStrategyRequest implements i.SetWholesaleProductStrategyRequestInterface {\n merchantId: string;\n sku: string;\n strategy: e.BillingStrategy;\n\n static fromProto(proto: any): SetWholesaleProductStrategyRequest {\n let m = new SetWholesaleProductStrategyRequest();\n m = Object.assign(m, proto);\n if (proto.strategy) {m.strategy = enumStringToValue<e.BillingStrategy>(e.BillingStrategy, proto.strategy);}\n return m;\n }\n\n constructor(kwargs?: i.SetWholesaleProductStrategyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.strategy !== 'undefined') {toReturn['strategy'] = this.strategy;}\n return toReturn;\n }\n}\n\nexport class SetWholesaleProductVolumeCommitmentRequest implements i.SetWholesaleProductVolumeCommitmentRequestInterface {\n merchantId: string;\n sku: string;\n volumeCommitment: number;\n\n static fromProto(proto: any): SetWholesaleProductVolumeCommitmentRequest {\n let m = new SetWholesaleProductVolumeCommitmentRequest();\n m = Object.assign(m, proto);\n if (proto.volumeCommitment) {m.volumeCommitment = parseInt(proto.volumeCommitment, 10);}\n return m;\n }\n\n constructor(kwargs?: i.SetWholesaleProductVolumeCommitmentRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.volumeCommitment !== 'undefined') {toReturn['volumeCommitment'] = this.volumeCommitment;}\n return toReturn;\n }\n}\n\nexport class StartRevRecTemplateBackfillRequest implements i.StartRevRecTemplateBackfillRequestInterface {\n\n static fromProto(proto: any): StartRevRecTemplateBackfillRequest {\n let m = new StartRevRecTemplateBackfillRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.StartRevRecTemplateBackfillRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n return toReturn;\n }\n}\n\nexport class UpsertRetailPricingRequest implements i.UpsertRetailPricingRequestInterface {\n merchantId: string;\n sku: string;\n frequency: e.Frequency;\n pricing: {[key: string]: PricingPlanProductPricing};\n groupId: string;\n\n static fromProto(proto: any): UpsertRetailPricingRequest {\n let m = new UpsertRetailPricingRequest();\n m = Object.assign(m, proto);\n if (proto.frequency) {m.frequency = enumStringToValue<e.Frequency>(e.Frequency, proto.frequency);}\n if (proto.pricing) {m.pricing = Object.keys(proto.pricing).reduce<any>((obj, k) => { obj[k] = PricingPlanProductPricing.fromProto(proto.pricing[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.UpsertRetailPricingRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.merchantId !== 'undefined') {toReturn['merchantId'] = this.merchantId;}\n if (typeof this.sku !== 'undefined') {toReturn['sku'] = this.sku;}\n if (typeof this.frequency !== 'undefined') {toReturn['frequency'] = this.frequency;}\n if (typeof this.pricing !== 'undefined' && this.pricing !== null) {toReturn['pricing'] = 'toApiJson' in this.pricing ? (this.pricing as any).toApiJson() : this.pricing;}\n if (typeof this.groupId !== 'undefined') {toReturn['groupId'] = this.groupId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\nexport {\n PagedRequestOptions,\n PagedResponseMetadata,\n} from './common';\n\nexport {\n} from './frequency';\n\nexport {\n BillItemRequest,\n BillMultipleItemsRequest,\n BillMultipleItemsResponse,\n BillableItem,\n CanBillItemRequest,\n BillableItemCustomerAddress,\n DeleteBillableItemRequest,\n ExpireBillableItemRequest,\n ListBillableItemsRequestFilters,\n GetBillableItemRequest,\n GetBillableItemResponse,\n GetMultiSubscriptionsRequest,\n GetMultiSubscriptionsResponse,\n Item,\n GetMultiSubscriptionsRequestKey,\n ListBillableItemsRequest,\n ListBillableItemsResponse,\n} from './billable-item';\n\nexport {\n AppliedDiscount,\n} from './applied-discount';\n\nexport {\n Bundle,\n BundleItem,\n BundlePricing,\n GetMultiBundleResponseBundlesEntry,\n ListBundlesRequestFilters,\n GetMultiBundleRequest,\n GetMultiBundleResponse,\n ListBundlesRequest,\n ListBundlesResponse,\n BundleItemPrice,\n BundlePricingPriceAndFrequency,\n UpsertBundleRequest,\n} from './bundle';\n\nexport {\n Commitment,\n} from './commitment';\n\nexport {\n} from './currency';\n\nexport {\n Contract,\n GetMultiContractsResponseContractsEntry,\n CreateContractRequest,\n CreateContractResponse,\n GetContractRequest,\n GetContractResponse,\n GetMultiContractsRequest,\n GetMultiContractsResponse,\n ListContractsRequest,\n ListContractsResponse,\n UpdateContractRequestMutation,\n ResetContractPricingRequest,\n UpdateContractRequest,\n UpdateContractResponse,\n UpdateContractSubscriptionRequest,\n} from './contract';\n\nexport {\n CustomerSummary,\n GetMultiCustomerSummariesRequest,\n GetMultiCustomerSummariesResponse,\n} from './customer-summary';\n\nexport {\n BankAccount,\n CreateStripeExternalAccountRequest,\n DeleteBankAccountRequest,\n ListBankAccountsRequest,\n ListBankAccountsResponse,\n SetDefaultBankAccountRequest,\n} from './external-account';\n\nexport {\n ProductSummaryDiscount,\n ListSubscriptionRetentionRequestFilters,\n GetProductSummariesTotalRequest,\n GetProductSummariesTotalResponse,\n ListProductSummariesRequest,\n ListProductSummariesResponse,\n ListSubscriptionRetentionByGroupResponse,\n ListSubscriptionRetentionBySKUResponse,\n ListSubscriptionRetentionRequest,\n Pricing,\n ProductSummary,\n RetentionMetrics,\n PricingRule,\n ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup,\n} from './product-summary';\n\nexport {\n CreateDiscountRequest,\n Discount,\n ExpireDiscountRequest,\n ListDiscountsRequestFilters,\n ListDiscountsRequest,\n ListDiscountsResponse,\n UpdateDiscountRequest,\n} from './discount';\n\nexport {\n AppliedTaxRate,\n} from './applied-tax-rate';\n\nexport {\n FieldMask,\n} from './field-mask';\n\nexport {\n ArchiveTaxRequest,\n CalculateTaxRequest,\n CalculateTaxResponse,\n CreateTaxRequest,\n ListTaxRequestFilters,\n GetMultiTaxRequest,\n GetMultiTaxResponse,\n ListTaxRequest,\n ListTaxResponse,\n TaxRate,\n UpdateTaxRequest,\n} from './tax-rate';\n\nexport {\n AppliedBundle,\n AppliedBundleItem,\n} from './applied-bundle';\n\nexport {\n AddBundleRequest,\n AddBundleResponse,\n AddLineItemRequest,\n AddLineItemResponse,\n ChargeInvoiceRequest,\n CreateInvoiceRequest,\n CreateInvoiceResponse,\n InvoiceCustomerAddress,\n ListInvoicesRequestFiltersDateFilter,\n DeleteInvoiceRequest,\n DeleteLineItemRequest,\n DeleteLineItemResponse,\n DuplicateInvoiceRequest,\n DuplicateInvoiceResponse,\n ListInvoicesRequestFilters,\n GetInvoiceRequest,\n GetInvoiceResponse,\n Invoice,\n InvoiceItem,\n ListInvoicesRequest,\n ListInvoicesResponse,\n PayInvoiceRequest,\n RemoveBundleRequest,\n RemoveBundleResponse,\n SendInvoiceRequest,\n UpdateBundleRequest,\n UpdateBundleResponse,\n UpdateDefaultTaxRatesRequest,\n UpdateDefaultTaxRatesResponse,\n UpdateInvoiceRequest,\n UpdateInvoiceResponse,\n UpdateLineItemRequest,\n UpdateLineItemResponse,\n VoidInvoiceRequest,\n} from './invoice';\n\nexport {\n Balance,\n} from './balance';\n\nexport {\n DateRange,\n} from './date-range';\n\nexport {\n ListPayoutsRequestFilters,\n ListPayoutsRequest,\n ListPayoutsResponse,\n Payout,\n ReconcilePayoutRequest,\n ReconcilePayoutResponse,\n RetailPayout,\n} from './payout';\n\nexport {\n} from './sort-direction';\n\nexport {\n ChargeSalesInvoiceRequest,\n ConnectStripeAccountRequest,\n ConnectStripeAccountResponse,\n CreateMerchantRequest,\n DefaultCustomerConfiguration,\n GetMerchantRequest,\n GetMerchantResponse,\n GetMultiRetailConfigurationsRequest,\n GetMultiRetailConfigurationsResponse,\n GetOutstandingBalanceRequest,\n GetOutstandingBalanceResponse,\n GetPayoutSummaryRequest,\n GetPayoutSummaryResponse,\n GetRetailBalanceRequest,\n GetRetailBalanceResponse,\n GetRetailPayoutRequest,\n GetRetailPayoutResponse,\n CreateMerchantRequestIncludeInFinancialRecords,\n UpdateMerchantRequestIncludeInFinancialRecords,\n ListRetailPayoutsRequest,\n ListRetailPayoutsResponse,\n Merchant,\n RetailConfiguration,\n GetMultiRetailConfigurationsResponseRetailConfigurationsEntry,\n SearchMerchantsRequest,\n SearchMerchantsResponse,\n SetAutoChargeInvoicesRequest,\n SetAutoPostInvoicesRequest,\n SetDefaultPaymentCardRequest,\n SetHasAlternativePaymentMethodRequest,\n SetIncludeInFinancialRecordsRequest,\n UpdateMerchantRequest,\n UpsertDefaultRetailCustomerConfigurationRequest,\n UpsertRetailConfigurationRequest,\n} from './merchant';\n\nexport {\n} from './month';\n\nexport {\n ListMerchantBillingReportsRequest,\n ListMerchantBillingReportsResponse,\n MerchantReport,\n} from './merchant-report';\n\nexport {\n CreateMeteredComponentRequest,\n MeteredComponent,\n TickComponentUsageRequest,\n} from './metered-component';\n\nexport {\n} from './card';\n\nexport {\n RetailPaymentCardDetails,\n CloseRetailDisputeRequest,\n ConfigureRetailPaymentProviderRequest,\n ConfigureRetailPaymentProviderResponse,\n ConfirmRetailPaymentRequest,\n Dispute,\n DisputeEvidence,\n SubmitEvidenceRequestDisputeEvidence,\n DisputeEvidenceDetails,\n File,\n GetRetailDisputeRequest,\n GetRetailDisputeResponse,\n GetRetailPaymentProviderRequest,\n GetRetailPaymentProviderResponse,\n GetRetailPaymentRequest,\n GetRetailPaymentResponse,\n ListPaymentRequestListPaymentFilters,\n ListPaymentRequest,\n ListPaymentResponse,\n ListRetailDisputesRequest,\n ListRetailDisputesResponse,\n ListRetailPaymentsRequestListRetailPaymentsFilters,\n ListRetailPaymentsRequest,\n ListRetailPaymentsResponse,\n PrepareRetailPaymentRequestOrder,\n Payment,\n PaymentPaymentAllocation,\n PrepareRetailPaymentRequest,\n PrepareRetailPaymentResponse,\n RetailPayment,\n RetailPaymentsEnabledRequest,\n RetailPaymentsEnabledResponse,\n RetailStatusRequest,\n RetailStatusResponse,\n SubmitEvidenceRequest,\n UpdateRetailPaymentProviderRequest,\n RetailStatusResponseVerificationError,\n RetailStatusResponseVerificationRequirements,\n} from './payment';\n\nexport {\n CreatePaymentCardRequest,\n DeletePaymentCardRequest,\n ListPaymentCardsRequest,\n ListPaymentCardsResponse,\n PaymentCard,\n SetDefaultPaymentMethodRequest,\n UpdatePaymentCardRequest,\n} from './payment-card';\n\nexport {\n ComponentPricing,\n CreatePricingPlanRequest,\n CreatePricingPlanResponse,\n GetMultiPricingPlanRequest,\n GetMultiPricingPlanResponse,\n PricingPlan,\n PricingPlanProductPricing,\n ProductPricingRule,\n UpdatePricingPlanRequest,\n UpdatePricingPlanResponse,\n} from './pricing-plan';\n\nexport {\n CreatePricingPlanProductRequest,\n CreatePricingPlanProductResponse,\n DeletePricingPlanProductRequest,\n GetMultiPricingPlanProductRequest,\n GetMultiPricingPlanProductResponse,\n GetPricingPlanProductRequest,\n GetPricingPlanProductResponse,\n ListPricingPlanProductsRequestListPricingPlanProductsFilters,\n ListPricingPlanProductsRequest,\n ListPricingPlanProductsResponse,\n PricingPlanProductPricingEntry,\n CreatePricingPlanProductRequestPricingEntry,\n UpdatePricingPlanProductRequestPricingEntry,\n PricingPlanProduct,\n UpdatePricingPlanProductRequest,\n UpdatePricingPlanProductResponse,\n UpsertWholesalePricingRequest,\n} from './pricing-plan-product';\n\nexport {\n CreateProductRequest,\n DeleteProductRequest,\n GetMultiProductRequest,\n GetMultiProductResponse,\n ListProductsRequestListProductsFilters,\n ListProductsRequest,\n ListProductsResponse,\n Product,\n GetMultiProductResponseProductsEntry,\n UpdateProductRequest,\n} from './product';\n\nexport {\n ProductPrices,\n ProductPricing,\n} from './product-pricing';\n\nexport {\n AppliedCredit,\n ListPurchaseRequestListPurchaseBillingStrategyFilter,\n ListPurchaseRequestListPurchaseFilters,\n ListPurchaseItemsRequestListPurchaseItemsFilters,\n ListPurchaseItemsRequest,\n ListPurchaseItemsResponse,\n ListPurchaseRequest,\n ListPurchaseResponse,\n Purchase,\n PurchaseItem,\n RetryPurchaseRequest,\n VoidPurchaseRequest,\n} from './purchase';\n\nexport {\n CreateRefundRequest,\n ListRefundsRequest,\n ListRefundsResponse,\n Refund,\n} from './refund';\n\nexport {\n CreateSalesCreditNoteRequest,\n ListSalesCreditNoteRequestListSalesCreditNoteFilters,\n ListSalesCreditNoteRequest,\n ListSalesCreditNoteResponse,\n SalesCreditNote,\n} from './sales-credit-note';\n\nexport {\n GetSalesInvoiceRequest,\n GetSalesInvoiceResponse,\n ListSalesInvoiceRequestListSalesInvoiceFilters,\n ListSalesInvoiceRequest,\n ListSalesInvoiceResponse,\n PostSalesInvoiceRequest,\n SalesInvoice,\n SendSalesInvoiceEmailRequest,\n SendSalesInvoiceReceiptEmailRequest,\n} from './sales-invoice';\n\nexport {\n SubscribeValidation,\n} from './subscribe-validation';\n\nexport {\n AlignmentSubscription,\n CanCreateSubscriptionsRequest,\n CanCreateSubscriptionsResponse,\n ChangeCustomUnitPriceRequest,\n ChangeFrequencyRequest,\n ChangeRenewalDateRequest,\n CreateSubscriptionRequest,\n CreateSubscriptionsRequest,\n CreateSubscriptionsResponse,\n ReverseSubscriptionRequest,\n SetRenewalStartRequest,\n CanCreateSubscriptionsRequestSkusEntry,\n Subscription,\n CanCreateSubscriptionsRequestSubscriptionItem,\n ValidateResponse,\n} from './subscription';\n\nexport {\n ContractDocument,\n DeleteContractDocumentRequest,\n ListContractDocumentsRequestFilters,\n ListContractDocumentsRequest,\n ListContractDocumentsResponse,\n} from './contract-document';\n\nexport {\n GetRetailCustomerConfigurationRequest,\n GetRetailCustomerConfigurationResponse,\n RetailCustomerConfiguration,\n UpsertRetailCustomerConfigurationRequest,\n} from './retail-customer-configuration';\n\nexport {\n AddCreditRequest,\n CreditBalance,\n GetBalanceRequest,\n GetBalanceResponse,\n} from './credit';\n\nexport {\n AddTemplateBundleRequest,\n AddTemplateBundleResponse,\n AddTemplateLineItemRequest,\n AddTemplateLineItemResponse,\n CreateTemplateRequest,\n CreateTemplateResponse,\n DeleteInvoiceTemplateRequest,\n DeleteTemplateLineItemRequest,\n DeleteTemplateLineItemResponse,\n GetInvoiceTemplateRequest,\n GetInvoiceTemplateResponse,\n InvoiceTemplate,\n InvoiceTemplateItem,\n UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest,\n UpdateTemplateBundleRequest,\n UpdateTemplateBundleResponse,\n UpdateTemplateDefaultTaxRatesRequest,\n UpdateTemplateDefaultTaxRatesResponse,\n UpdateTemplateLineItemRequest,\n UpdateTemplateLineItemResponse,\n UpsertInvoiceTemplateRequest,\n UpsertInvoiceTemplateResponse,\n} from './invoice-template';\n\nexport {\n DeleteRetailPricingRequest,\n GenerateBillableItemsCSVRequest,\n GenerateBillableItemsCSVResponse,\n GenerateVendorReportRequest,\n GenerateVendorReportResponse,\n GetMultiBundleRetailPricingRequest,\n GetMultiBundleRetailPricingResponse,\n GetMultiProductPricingRequest,\n GetMultiProductPricingResponse,\n GetMultiRetailPricingRequest,\n GetMultiRetailPricingResponse,\n GetPurchaseCostRequest,\n GetPurchaseCostResponse,\n GetRevenueStatsRequest,\n GetRevenueStatsResponse,\n GetStatisticsRequest,\n GetStatisticsResponse,\n GetWholesaleComparisonRequestGetWholesaleComparisonFilters,\n GetWholesaleComparisonRequest,\n GetWholesaleComparisonResponse,\n GetWholesaleComparisonResponseGetWholesaleComparisonResult,\n GetMultiBundleRetailPricingResponsePricesEntry,\n UpsertRetailPricingRequestPricingEntry,\n GetMultiRetailPricingResponseProductPricesEntry,\n GetMultiProductPricingResponseProductPricesEntry,\n SetWholesaleProductStrategyRequest,\n SetWholesaleProductVolumeCommitmentRequest,\n StartRevRecTemplateBackfillRequest,\n UpsertRetailPricingRequest,\n} from './api';\n\n","import { Injectable } from '@angular/core';\nimport { EnvironmentService, Environment } from '@vendasta/core';\n\n@Injectable({providedIn: 'root'})\nexport class HostService {\n private _host: string;\n private _httpsHost: string;\n\n constructor(private environmentService: EnvironmentService) {\n }\n\n host(): string {\n if (this._host) {\n return this._host;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._host = 'billing-api.vendasta-local.com';\n break;\n case Environment.TEST:\n this._host = '';\n break;\n case Environment.DEMO:\n this._host = 'billing-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._host = 'billing-prod.apigateway.co';\n break;\n }\n return this._host;\n }\n\n httpsHost(): string {\n if (this._httpsHost) {\n return this._httpsHost;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._httpsHost = 'billing.vendasta-local.com';\n break;\n case Environment.TEST:\n this._httpsHost = '';\n break;\n case Environment.DEMO:\n this._httpsHost = 'billing-api-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._httpsHost = 'billing-api-prod.apigateway.co';\n break;\n }\n return this._httpsHost;\n }\n\n hostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.host()\n }\n\n httpsHostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.httpsHost()\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n ListPayoutsRequest,\n ListPayoutsResponse,\n ReconcilePayoutRequest,\n ReconcilePayoutResponse,\n} from './objects/';\nimport {\n ListPayoutsRequestInterface,\n ListPayoutsResponseInterface,\n ReconcilePayoutRequestInterface,\n ReconcilePayoutResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class BankReconciliationApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n listPayouts(r: ListPayoutsRequest | ListPayoutsRequestInterface): Observable<ListPayoutsResponse> {\n const request = ((<ListPayoutsRequest>r).toApiJson) ? (<ListPayoutsRequest>r) : new ListPayoutsRequest(r);\n return this.http.post<ListPayoutsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.BankReconciliationService/ListPayouts\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPayoutsResponse.fromProto(resp)),\n share()\n );\n }\n reconcilePayout(r: ReconcilePayoutRequest | ReconcilePayoutRequestInterface): Observable<ReconcilePayoutResponse> {\n const request = ((<ReconcilePayoutRequest>r).toApiJson) ? (<ReconcilePayoutRequest>r) : new ReconcilePayoutRequest(r);\n return this.http.post<ReconcilePayoutResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.BankReconciliationService/ReconcilePayout\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ReconcilePayoutResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n BillItemRequest,\n BillMultipleItemsRequest,\n BillMultipleItemsResponse,\n CanBillItemRequest,\n CanCreateSubscriptionsRequest,\n CanCreateSubscriptionsResponse,\n ChangeCustomUnitPriceRequest,\n ChangeFrequencyRequest,\n ChangeRenewalDateRequest,\n CreateMeteredComponentRequest,\n CreatePricingPlanProductRequest,\n CreatePricingPlanProductResponse,\n CreatePricingPlanRequest,\n CreatePricingPlanResponse,\n CreateSubscriptionRequest,\n CreateSubscriptionsRequest,\n CreateSubscriptionsResponse,\n DeleteBillableItemRequest,\n DeletePricingPlanProductRequest,\n ExpireBillableItemRequest,\n GenerateBillableItemsCSVRequest,\n GenerateBillableItemsCSVResponse,\n GetBillableItemRequest,\n GetBillableItemResponse,\n GetMultiContractsRequest,\n GetMultiContractsResponse,\n GetMultiPricingPlanProductRequest,\n GetMultiPricingPlanProductResponse,\n GetMultiPricingPlanRequest,\n GetMultiPricingPlanResponse,\n GetMultiProductPricingRequest,\n GetMultiProductPricingResponse,\n GetMultiProductRequest,\n GetMultiProductResponse,\n GetMultiSubscriptionsRequest,\n GetMultiSubscriptionsResponse,\n GetPricingPlanProductRequest,\n GetPricingPlanProductResponse,\n GetProductSummariesTotalRequest,\n GetProductSummariesTotalResponse,\n GetPurchaseCostRequest,\n GetPurchaseCostResponse,\n ListBillableItemsRequest,\n ListBillableItemsResponse,\n ListContractsRequest,\n ListContractsResponse,\n ListMerchantBillingReportsRequest,\n ListMerchantBillingReportsResponse,\n ListPricingPlanProductsRequest,\n ListPricingPlanProductsResponse,\n ListProductSummariesRequest,\n ListProductSummariesResponse,\n ListProductsRequest,\n ListProductsResponse,\n ResetContractPricingRequest,\n ReverseSubscriptionRequest,\n SetRenewalStartRequest,\n StartRevRecTemplateBackfillRequest,\n TickComponentUsageRequest,\n UpdatePricingPlanProductRequest,\n UpdatePricingPlanProductResponse,\n UpdatePricingPlanRequest,\n UpdatePricingPlanResponse,\n} from './objects/';\nimport {\n BillItemRequestInterface,\n BillMultipleItemsRequestInterface,\n BillMultipleItemsResponseInterface,\n CanBillItemRequestInterface,\n CanCreateSubscriptionsRequestInterface,\n CanCreateSubscriptionsResponseInterface,\n ChangeCustomUnitPriceRequestInterface,\n ChangeFrequencyRequestInterface,\n ChangeRenewalDateRequestInterface,\n CreateMeteredComponentRequestInterface,\n CreatePricingPlanProductRequestInterface,\n CreatePricingPlanProductResponseInterface,\n CreatePricingPlanRequestInterface,\n CreatePricingPlanResponseInterface,\n CreateSubscriptionRequestInterface,\n CreateSubscriptionsRequestInterface,\n CreateSubscriptionsResponseInterface,\n DeleteBillableItemRequestInterface,\n DeletePricingPlanProductRequestInterface,\n ExpireBillableItemRequestInterface,\n GenerateBillableItemsCSVRequestInterface,\n GenerateBillableItemsCSVResponseInterface,\n GetBillableItemRequestInterface,\n GetBillableItemResponseInterface,\n GetMultiContractsRequestInterface,\n GetMultiContractsResponseInterface,\n GetMultiPricingPlanProductRequestInterface,\n GetMultiPricingPlanProductResponseInterface,\n GetMultiPricingPlanRequestInterface,\n GetMultiPricingPlanResponseInterface,\n GetMultiProductPricingRequestInterface,\n GetMultiProductPricingResponseInterface,\n GetMultiProductRequestInterface,\n GetMultiProductResponseInterface,\n GetMultiSubscriptionsRequestInterface,\n GetMultiSubscriptionsResponseInterface,\n GetPricingPlanProductRequestInterface,\n GetPricingPlanProductResponseInterface,\n GetProductSummariesTotalRequestInterface,\n GetProductSummariesTotalResponseInterface,\n GetPurchaseCostRequestInterface,\n GetPurchaseCostResponseInterface,\n ListBillableItemsRequestInterface,\n ListBillableItemsResponseInterface,\n ListContractsRequestInterface,\n ListContractsResponseInterface,\n ListMerchantBillingReportsRequestInterface,\n ListMerchantBillingReportsResponseInterface,\n ListPricingPlanProductsRequestInterface,\n ListPricingPlanProductsResponseInterface,\n ListProductSummariesRequestInterface,\n ListProductSummariesResponseInterface,\n ListProductsRequestInterface,\n ListProductsResponseInterface,\n ResetContractPricingRequestInterface,\n ReverseSubscriptionRequestInterface,\n SetRenewalStartRequestInterface,\n StartRevRecTemplateBackfillRequestInterface,\n TickComponentUsageRequestInterface,\n UpdatePricingPlanProductRequestInterface,\n UpdatePricingPlanProductResponseInterface,\n UpdatePricingPlanRequestInterface,\n UpdatePricingPlanResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class BillingApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n canBillItem(r: CanBillItemRequest | CanBillItemRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CanBillItemRequest>r).toApiJson) ? (<CanBillItemRequest>r) : new CanBillItemRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/CanBillItem\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n canCreateSubscriptions(r: CanCreateSubscriptionsRequest | CanCreateSubscriptionsRequestInterface): Observable<CanCreateSubscriptionsResponse> {\n const request = ((<CanCreateSubscriptionsRequest>r).toApiJson) ? (<CanCreateSubscriptionsRequest>r) : new CanCreateSubscriptionsRequest(r);\n return this.http.post<CanCreateSubscriptionsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/CanCreateSubscriptions\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CanCreateSubscriptionsResponse.fromProto(resp)),\n share()\n );\n }\n createSubscription(r: CreateSubscriptionRequest | CreateSubscriptionRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateSubscriptionRequest>r).toApiJson) ? (<CreateSubscriptionRequest>r) : new CreateSubscriptionRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/CreateSubscription\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n createSubscriptions(r: CreateSubscriptionsRequest | CreateSubscriptionsRequestInterface): Observable<CreateSubscriptionsResponse> {\n const request = ((<CreateSubscriptionsRequest>r).toApiJson) ? (<CreateSubscriptionsRequest>r) : new CreateSubscriptionsRequest(r);\n return this.http.post<CreateSubscriptionsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/CreateSubscriptions\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateSubscriptionsResponse.fromProto(resp)),\n share()\n );\n }\n reverseSubscription(r: ReverseSubscriptionRequest | ReverseSubscriptionRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ReverseSubscriptionRequest>r).toApiJson) ? (<ReverseSubscriptionRequest>r) : new ReverseSubscriptionRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ReverseSubscription\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n setRenewalStart(r: SetRenewalStartRequest | SetRenewalStartRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetRenewalStartRequest>r).toApiJson) ? (<SetRenewalStartRequest>r) : new SetRenewalStartRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/SetRenewalStart\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n billItem(r: BillItemRequest | BillItemRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<BillItemRequest>r).toApiJson) ? (<BillItemRequest>r) : new BillItemRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/BillItem\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n billMultipleItems(r: BillMultipleItemsRequest | BillMultipleItemsRequestInterface): Observable<BillMultipleItemsResponse> {\n const request = ((<BillMultipleItemsRequest>r).toApiJson) ? (<BillMultipleItemsRequest>r) : new BillMultipleItemsRequest(r);\n return this.http.post<BillMultipleItemsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/BillMultipleItems\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => BillMultipleItemsResponse.fromProto(resp)),\n share()\n );\n }\n getBillableItem(r: GetBillableItemRequest | GetBillableItemRequestInterface): Observable<GetBillableItemResponse> {\n const request = ((<GetBillableItemRequest>r).toApiJson) ? (<GetBillableItemRequest>r) : new GetBillableItemRequest(r);\n return this.http.post<GetBillableItemResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetBillableItem\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetBillableItemResponse.fromProto(resp)),\n share()\n );\n }\n getMultiSubscriptions(r: GetMultiSubscriptionsRequest | GetMultiSubscriptionsRequestInterface): Observable<GetMultiSubscriptionsResponse> {\n const request = ((<GetMultiSubscriptionsRequest>r).toApiJson) ? (<GetMultiSubscriptionsRequest>r) : new GetMultiSubscriptionsRequest(r);\n return this.http.post<GetMultiSubscriptionsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetMultiSubscriptions\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiSubscriptionsResponse.fromProto(resp)),\n share()\n );\n }\n listBillableItems(r: ListBillableItemsRequest | ListBillableItemsRequestInterface): Observable<ListBillableItemsResponse> {\n const request = ((<ListBillableItemsRequest>r).toApiJson) ? (<ListBillableItemsRequest>r) : new ListBillableItemsRequest(r);\n return this.http.post<ListBillableItemsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ListBillableItems\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListBillableItemsResponse.fromProto(resp)),\n share()\n );\n }\n expireBillableItem(r: ExpireBillableItemRequest | ExpireBillableItemRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ExpireBillableItemRequest>r).toApiJson) ? (<ExpireBillableItemRequest>r) : new ExpireBillableItemRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ExpireBillableItem\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteBillableItem(r: DeleteBillableItemRequest | DeleteBillableItemRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteBillableItemRequest>r).toApiJson) ? (<DeleteBillableItemRequest>r) : new DeleteBillableItemRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/DeleteBillableItem\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n listMerchantBillingReports(r: ListMerchantBillingReportsRequest | ListMerchantBillingReportsRequestInterface): Observable<ListMerchantBillingReportsResponse> {\n const request = ((<ListMerchantBillingReportsRequest>r).toApiJson) ? (<ListMerchantBillingReportsRequest>r) : new ListMerchantBillingReportsRequest(r);\n return this.http.post<ListMerchantBillingReportsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ListMerchantBillingReports\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListMerchantBillingReportsResponse.fromProto(resp)),\n share()\n );\n }\n listProductSummaries(r: ListProductSummariesRequest | ListProductSummariesRequestInterface): Observable<ListProductSummariesResponse> {\n const request = ((<ListProductSummariesRequest>r).toApiJson) ? (<ListProductSummariesRequest>r) : new ListProductSummariesRequest(r);\n return this.http.post<ListProductSummariesResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ListProductSummaries\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListProductSummariesResponse.fromProto(resp)),\n share()\n );\n }\n getProductSummariesTotal(r: GetProductSummariesTotalRequest | GetProductSummariesTotalRequestInterface): Observable<GetProductSummariesTotalResponse> {\n const request = ((<GetProductSummariesTotalRequest>r).toApiJson) ? (<GetProductSummariesTotalRequest>r) : new GetProductSummariesTotalRequest(r);\n return this.http.post<GetProductSummariesTotalResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetProductSummariesTotal\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetProductSummariesTotalResponse.fromProto(resp)),\n share()\n );\n }\n generateBillableItemsCsv(r: GenerateBillableItemsCSVRequest | GenerateBillableItemsCSVRequestInterface): Observable<GenerateBillableItemsCSVResponse> {\n const request = ((<GenerateBillableItemsCSVRequest>r).toApiJson) ? (<GenerateBillableItemsCSVRequest>r) : new GenerateBillableItemsCSVRequest(r);\n return this.http.post<GenerateBillableItemsCSVResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GenerateBillableItemsCSV\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GenerateBillableItemsCSVResponse.fromProto(resp)),\n share()\n );\n }\n createPricingPlan(r: CreatePricingPlanRequest | CreatePricingPlanRequestInterface): Observable<CreatePricingPlanResponse> {\n const request = ((<CreatePricingPlanRequest>r).toApiJson) ? (<CreatePricingPlanRequest>r) : new CreatePricingPlanRequest(r);\n return this.http.post<CreatePricingPlanResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/CreatePricingPlan\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreatePricingPlanResponse.fromProto(resp)),\n share()\n );\n }\n updatePricingPlan(r: UpdatePricingPlanRequest | UpdatePricingPlanRequestInterface): Observable<UpdatePricingPlanResponse> {\n const request = ((<UpdatePricingPlanRequest>r).toApiJson) ? (<UpdatePricingPlanRequest>r) : new UpdatePricingPlanRequest(r);\n return this.http.post<UpdatePricingPlanResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/UpdatePricingPlan\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdatePricingPlanResponse.fromProto(resp)),\n share()\n );\n }\n getMultiPricingPlan(r: GetMultiPricingPlanRequest | GetMultiPricingPlanRequestInterface): Observable<GetMultiPricingPlanResponse> {\n const request = ((<GetMultiPricingPlanRequest>r).toApiJson) ? (<GetMultiPricingPlanRequest>r) : new GetMultiPricingPlanRequest(r);\n return this.http.post<GetMultiPricingPlanResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetMultiPricingPlan\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiPricingPlanResponse.fromProto(resp)),\n share()\n );\n }\n createPricingPlanProduct(r: CreatePricingPlanProductRequest | CreatePricingPlanProductRequestInterface): Observable<CreatePricingPlanProductResponse> {\n const request = ((<CreatePricingPlanProductRequest>r).toApiJson) ? (<CreatePricingPlanProductRequest>r) : new CreatePricingPlanProductRequest(r);\n return this.http.post<CreatePricingPlanProductResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/CreatePricingPlanProduct\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreatePricingPlanProductResponse.fromProto(resp)),\n share()\n );\n }\n updatePricingPlanProduct(r: UpdatePricingPlanProductRequest | UpdatePricingPlanProductRequestInterface): Observable<UpdatePricingPlanProductResponse> {\n const request = ((<UpdatePricingPlanProductRequest>r).toApiJson) ? (<UpdatePricingPlanProductRequest>r) : new UpdatePricingPlanProductRequest(r);\n return this.http.post<UpdatePricingPlanProductResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/UpdatePricingPlanProduct\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdatePricingPlanProductResponse.fromProto(resp)),\n share()\n );\n }\n deletePricingPlanProduct(r: DeletePricingPlanProductRequest | DeletePricingPlanProductRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeletePricingPlanProductRequest>r).toApiJson) ? (<DeletePricingPlanProductRequest>r) : new DeletePricingPlanProductRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/DeletePricingPlanProduct\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n listPricingPlanProducts(r: ListPricingPlanProductsRequest | ListPricingPlanProductsRequestInterface): Observable<ListPricingPlanProductsResponse> {\n const request = ((<ListPricingPlanProductsRequest>r).toApiJson) ? (<ListPricingPlanProductsRequest>r) : new ListPricingPlanProductsRequest(r);\n return this.http.post<ListPricingPlanProductsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ListPricingPlanProducts\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPricingPlanProductsResponse.fromProto(resp)),\n share()\n );\n }\n getPricingPlanProduct(r: GetPricingPlanProductRequest | GetPricingPlanProductRequestInterface): Observable<GetPricingPlanProductResponse> {\n const request = ((<GetPricingPlanProductRequest>r).toApiJson) ? (<GetPricingPlanProductRequest>r) : new GetPricingPlanProductRequest(r);\n return this.http.post<GetPricingPlanProductResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetPricingPlanProduct\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetPricingPlanProductResponse.fromProto(resp)),\n share()\n );\n }\n getMultiPricingPlanProduct(r: GetMultiPricingPlanProductRequest | GetMultiPricingPlanProductRequestInterface): Observable<GetMultiPricingPlanProductResponse> {\n const request = ((<GetMultiPricingPlanProductRequest>r).toApiJson) ? (<GetMultiPricingPlanProductRequest>r) : new GetMultiPricingPlanProductRequest(r);\n return this.http.post<GetMultiPricingPlanProductResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetMultiPricingPlanProduct\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiPricingPlanProductResponse.fromProto(resp)),\n share()\n );\n }\n getMultiProductPricing(r: GetMultiProductPricingRequest | GetMultiProductPricingRequestInterface): Observable<GetMultiProductPricingResponse> {\n const request = ((<GetMultiProductPricingRequest>r).toApiJson) ? (<GetMultiProductPricingRequest>r) : new GetMultiProductPricingRequest(r);\n return this.http.post<GetMultiProductPricingResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetMultiProductPricing\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiProductPricingResponse.fromProto(resp)),\n share()\n );\n }\n tickComponentUsage(r: TickComponentUsageRequest | TickComponentUsageRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<TickComponentUsageRequest>r).toApiJson) ? (<TickComponentUsageRequest>r) : new TickComponentUsageRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/TickComponentUsage\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n createMeteredComponent(r: CreateMeteredComponentRequest | CreateMeteredComponentRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateMeteredComponentRequest>r).toApiJson) ? (<CreateMeteredComponentRequest>r) : new CreateMeteredComponentRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/CreateMeteredComponent\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n listContracts(r: ListContractsRequest | ListContractsRequestInterface): Observable<ListContractsResponse> {\n const request = ((<ListContractsRequest>r).toApiJson) ? (<ListContractsRequest>r) : new ListContractsRequest(r);\n return this.http.post<ListContractsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ListContracts\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListContractsResponse.fromProto(resp)),\n share()\n );\n }\n getMultiContract(r: GetMultiContractsRequest | GetMultiContractsRequestInterface): Observable<GetMultiContractsResponse> {\n const request = ((<GetMultiContractsRequest>r).toApiJson) ? (<GetMultiContractsRequest>r) : new GetMultiContractsRequest(r);\n return this.http.post<GetMultiContractsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetMultiContract\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiContractsResponse.fromProto(resp)),\n share()\n );\n }\n listProducts(r: ListProductsRequest | ListProductsRequestInterface): Observable<ListProductsResponse> {\n const request = ((<ListProductsRequest>r).toApiJson) ? (<ListProductsRequest>r) : new ListProductsRequest(r);\n return this.http.post<ListProductsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ListProducts\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListProductsResponse.fromProto(resp)),\n share()\n );\n }\n getMultiProduct(r: GetMultiProductRequest | GetMultiProductRequestInterface): Observable<GetMultiProductResponse> {\n const request = ((<GetMultiProductRequest>r).toApiJson) ? (<GetMultiProductRequest>r) : new GetMultiProductRequest(r);\n return this.http.post<GetMultiProductResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetMultiProduct\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiProductResponse.fromProto(resp)),\n share()\n );\n }\n resetContractPricing(r: ResetContractPricingRequest | ResetContractPricingRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ResetContractPricingRequest>r).toApiJson) ? (<ResetContractPricingRequest>r) : new ResetContractPricingRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ResetContractPricing\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getPurchaseCost(r: GetPurchaseCostRequest | GetPurchaseCostRequestInterface): Observable<GetPurchaseCostResponse> {\n const request = ((<GetPurchaseCostRequest>r).toApiJson) ? (<GetPurchaseCostRequest>r) : new GetPurchaseCostRequest(r);\n return this.http.post<GetPurchaseCostResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/GetPurchaseCost\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetPurchaseCostResponse.fromProto(resp)),\n share()\n );\n }\n changeFrequency(r: ChangeFrequencyRequest | ChangeFrequencyRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ChangeFrequencyRequest>r).toApiJson) ? (<ChangeFrequencyRequest>r) : new ChangeFrequencyRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ChangeFrequency\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n changeRenewalDate(r: ChangeRenewalDateRequest | ChangeRenewalDateRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ChangeRenewalDateRequest>r).toApiJson) ? (<ChangeRenewalDateRequest>r) : new ChangeRenewalDateRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ChangeRenewalDate\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n changeCustomUnitPrice(r: ChangeCustomUnitPriceRequest | ChangeCustomUnitPriceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ChangeCustomUnitPriceRequest>r).toApiJson) ? (<ChangeCustomUnitPriceRequest>r) : new ChangeCustomUnitPriceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/ChangeCustomUnitPrice\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n startRevRecTemplateBackfill(r: StartRevRecTemplateBackfillRequest | StartRevRecTemplateBackfillRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<StartRevRecTemplateBackfillRequest>r).toApiJson) ? (<StartRevRecTemplateBackfillRequest>r) : new StartRevRecTemplateBackfillRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.Billing/StartRevRecTemplateBackfill\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n GetMultiBundleRequest,\n GetMultiBundleResponse,\n ListBundlesRequest,\n ListBundlesResponse,\n UpsertBundleRequest,\n} from './objects/';\nimport {\n GetMultiBundleRequestInterface,\n GetMultiBundleResponseInterface,\n ListBundlesRequestInterface,\n ListBundlesResponseInterface,\n UpsertBundleRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class BundleApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n upsert(r: UpsertBundleRequest | UpsertBundleRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpsertBundleRequest>r).toApiJson) ? (<UpsertBundleRequest>r) : new UpsertBundleRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.BundleService/Upsert\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMulti(r: GetMultiBundleRequest | GetMultiBundleRequestInterface): Observable<GetMultiBundleResponse> {\n const request = ((<GetMultiBundleRequest>r).toApiJson) ? (<GetMultiBundleRequest>r) : new GetMultiBundleRequest(r);\n return this.http.post<GetMultiBundleResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.BundleService/GetMulti\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiBundleResponse.fromProto(resp)),\n share()\n );\n }\n list(r: ListBundlesRequest | ListBundlesRequestInterface): Observable<ListBundlesResponse> {\n const request = ((<ListBundlesRequest>r).toApiJson) ? (<ListBundlesRequest>r) : new ListBundlesRequest(r);\n return this.http.post<ListBundlesResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.BundleService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListBundlesResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n DeleteContractDocumentRequest,\n ListContractDocumentsRequest,\n ListContractDocumentsResponse,\n} from './objects/';\nimport {\n DeleteContractDocumentRequestInterface,\n ListContractDocumentsRequestInterface,\n ListContractDocumentsResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class ContractDocumentApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n list(r: ListContractDocumentsRequest | ListContractDocumentsRequestInterface): Observable<ListContractDocumentsResponse> {\n const request = ((<ListContractDocumentsRequest>r).toApiJson) ? (<ListContractDocumentsRequest>r) : new ListContractDocumentsRequest(r);\n return this.http.post<ListContractDocumentsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.ContractDocumentService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListContractDocumentsResponse.fromProto(resp)),\n share()\n );\n }\n delete(r: DeleteContractDocumentRequest | DeleteContractDocumentRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteContractDocumentRequest>r).toApiJson) ? (<DeleteContractDocumentRequest>r) : new DeleteContractDocumentRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.ContractDocumentService/Delete\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CreateContractRequest,\n CreateContractResponse,\n GetContractRequest,\n GetContractResponse,\n UpdateContractRequest,\n UpdateContractResponse,\n UpdateContractSubscriptionRequest,\n} from './objects/';\nimport {\n CreateContractRequestInterface,\n CreateContractResponseInterface,\n GetContractRequestInterface,\n GetContractResponseInterface,\n UpdateContractRequestInterface,\n UpdateContractResponseInterface,\n UpdateContractSubscriptionRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class ContractApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n get(r: GetContractRequest | GetContractRequestInterface): Observable<GetContractResponse> {\n const request = ((<GetContractRequest>r).toApiJson) ? (<GetContractRequest>r) : new GetContractRequest(r);\n return this.http.post<GetContractResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.ContractService/Get\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetContractResponse.fromProto(resp)),\n share()\n );\n }\n updateSubscription(r: UpdateContractSubscriptionRequest | UpdateContractSubscriptionRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateContractSubscriptionRequest>r).toApiJson) ? (<UpdateContractSubscriptionRequest>r) : new UpdateContractSubscriptionRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.ContractService/UpdateSubscription\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n create(r: CreateContractRequest | CreateContractRequestInterface): Observable<CreateContractResponse> {\n const request = ((<CreateContractRequest>r).toApiJson) ? (<CreateContractRequest>r) : new CreateContractRequest(r);\n return this.http.post<CreateContractResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.ContractService/Create\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateContractResponse.fromProto(resp)),\n share()\n );\n }\n update(r: UpdateContractRequest | UpdateContractRequestInterface): Observable<UpdateContractResponse> {\n const request = ((<UpdateContractRequest>r).toApiJson) ? (<UpdateContractRequest>r) : new UpdateContractRequest(r);\n return this.http.post<UpdateContractResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.ContractService/Update\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateContractResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n AddCreditRequest,\n GetBalanceRequest,\n GetBalanceResponse,\n} from './objects/';\nimport {\n AddCreditRequestInterface,\n GetBalanceRequestInterface,\n GetBalanceResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class CreditApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n add(r: AddCreditRequest | AddCreditRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<AddCreditRequest>r).toApiJson) ? (<AddCreditRequest>r) : new AddCreditRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.CreditService/Add\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getBalance(r: GetBalanceRequest | GetBalanceRequestInterface): Observable<GetBalanceResponse> {\n const request = ((<GetBalanceRequest>r).toApiJson) ? (<GetBalanceRequest>r) : new GetBalanceRequest(r);\n return this.http.post<GetBalanceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.CreditService/GetBalance\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetBalanceResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CreateDiscountRequest,\n ExpireDiscountRequest,\n ListDiscountsRequest,\n ListDiscountsResponse,\n UpdateDiscountRequest,\n} from './objects/';\nimport {\n CreateDiscountRequestInterface,\n ExpireDiscountRequestInterface,\n ListDiscountsRequestInterface,\n ListDiscountsResponseInterface,\n UpdateDiscountRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class DiscountApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n list(r: ListDiscountsRequest | ListDiscountsRequestInterface): Observable<ListDiscountsResponse> {\n const request = ((<ListDiscountsRequest>r).toApiJson) ? (<ListDiscountsRequest>r) : new ListDiscountsRequest(r);\n return this.http.post<ListDiscountsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.DiscountService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListDiscountsResponse.fromProto(resp)),\n share()\n );\n }\n create(r: CreateDiscountRequest | CreateDiscountRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateDiscountRequest>r).toApiJson) ? (<CreateDiscountRequest>r) : new CreateDiscountRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.DiscountService/Create\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n update(r: UpdateDiscountRequest | UpdateDiscountRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateDiscountRequest>r).toApiJson) ? (<UpdateDiscountRequest>r) : new UpdateDiscountRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.DiscountService/Update\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n expire(r: ExpireDiscountRequest | ExpireDiscountRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ExpireDiscountRequest>r).toApiJson) ? (<ExpireDiscountRequest>r) : new ExpireDiscountRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.DiscountService/Expire\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n AddBundleRequest,\n AddBundleResponse,\n AddLineItemRequest,\n AddLineItemResponse,\n ChargeInvoiceRequest,\n CreateInvoiceRequest,\n CreateInvoiceResponse,\n DeleteInvoiceRequest,\n DeleteLineItemRequest,\n DeleteLineItemResponse,\n DuplicateInvoiceRequest,\n DuplicateInvoiceResponse,\n GetInvoiceRequest,\n GetInvoiceResponse,\n ListInvoicesRequest,\n ListInvoicesResponse,\n PayInvoiceRequest,\n RemoveBundleRequest,\n RemoveBundleResponse,\n SendInvoiceRequest,\n UpdateBundleRequest,\n UpdateBundleResponse,\n UpdateDefaultTaxRatesRequest,\n UpdateDefaultTaxRatesResponse,\n UpdateInvoiceRequest,\n UpdateInvoiceResponse,\n UpdateLineItemRequest,\n UpdateLineItemResponse,\n VoidInvoiceRequest,\n} from './objects/';\nimport {\n AddBundleRequestInterface,\n AddBundleResponseInterface,\n AddLineItemRequestInterface,\n AddLineItemResponseInterface,\n ChargeInvoiceRequestInterface,\n CreateInvoiceRequestInterface,\n CreateInvoiceResponseInterface,\n DeleteInvoiceRequestInterface,\n DeleteLineItemRequestInterface,\n DeleteLineItemResponseInterface,\n DuplicateInvoiceRequestInterface,\n DuplicateInvoiceResponseInterface,\n GetInvoiceRequestInterface,\n GetInvoiceResponseInterface,\n ListInvoicesRequestInterface,\n ListInvoicesResponseInterface,\n PayInvoiceRequestInterface,\n RemoveBundleRequestInterface,\n RemoveBundleResponseInterface,\n SendInvoiceRequestInterface,\n UpdateBundleRequestInterface,\n UpdateBundleResponseInterface,\n UpdateDefaultTaxRatesRequestInterface,\n UpdateDefaultTaxRatesResponseInterface,\n UpdateInvoiceRequestInterface,\n UpdateInvoiceResponseInterface,\n UpdateLineItemRequestInterface,\n UpdateLineItemResponseInterface,\n VoidInvoiceRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n addBundle(r: AddBundleRequest | AddBundleRequestInterface): Observable<AddBundleResponse> {\n const request = ((<AddBundleRequest>r).toApiJson) ? (<AddBundleRequest>r) : new AddBundleRequest(r);\n return this.http.post<AddBundleResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/AddBundle\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => AddBundleResponse.fromProto(resp)),\n share()\n );\n }\n addLineItem(r: AddLineItemRequest | AddLineItemRequestInterface): Observable<AddLineItemResponse> {\n const request = ((<AddLineItemRequest>r).toApiJson) ? (<AddLineItemRequest>r) : new AddLineItemRequest(r);\n return this.http.post<AddLineItemResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/AddLineItem\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => AddLineItemResponse.fromProto(resp)),\n share()\n );\n }\n charge(r: ChargeInvoiceRequest | ChargeInvoiceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ChargeInvoiceRequest>r).toApiJson) ? (<ChargeInvoiceRequest>r) : new ChargeInvoiceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Charge\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n create(r: CreateInvoiceRequest | CreateInvoiceRequestInterface): Observable<CreateInvoiceResponse> {\n const request = ((<CreateInvoiceRequest>r).toApiJson) ? (<CreateInvoiceRequest>r) : new CreateInvoiceRequest(r);\n return this.http.post<CreateInvoiceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Create\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateInvoiceResponse.fromProto(resp)),\n share()\n );\n }\n delete(r: DeleteInvoiceRequest | DeleteInvoiceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteInvoiceRequest>r).toApiJson) ? (<DeleteInvoiceRequest>r) : new DeleteInvoiceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Delete\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteLineItem(r: DeleteLineItemRequest | DeleteLineItemRequestInterface): Observable<DeleteLineItemResponse> {\n const request = ((<DeleteLineItemRequest>r).toApiJson) ? (<DeleteLineItemRequest>r) : new DeleteLineItemRequest(r);\n return this.http.post<DeleteLineItemResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/DeleteLineItem\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => DeleteLineItemResponse.fromProto(resp)),\n share()\n );\n }\n get(r: GetInvoiceRequest | GetInvoiceRequestInterface): Observable<GetInvoiceResponse> {\n const request = ((<GetInvoiceRequest>r).toApiJson) ? (<GetInvoiceRequest>r) : new GetInvoiceRequest(r);\n return this.http.post<GetInvoiceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Get\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetInvoiceResponse.fromProto(resp)),\n share()\n );\n }\n removeBundle(r: RemoveBundleRequest | RemoveBundleRequestInterface): Observable<RemoveBundleResponse> {\n const request = ((<RemoveBundleRequest>r).toApiJson) ? (<RemoveBundleRequest>r) : new RemoveBundleRequest(r);\n return this.http.post<RemoveBundleResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/RemoveBundle\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => RemoveBundleResponse.fromProto(resp)),\n share()\n );\n }\n send(r: SendInvoiceRequest | SendInvoiceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SendInvoiceRequest>r).toApiJson) ? (<SendInvoiceRequest>r) : new SendInvoiceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Send\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n list(r: ListInvoicesRequest | ListInvoicesRequestInterface): Observable<ListInvoicesResponse> {\n const request = ((<ListInvoicesRequest>r).toApiJson) ? (<ListInvoicesRequest>r) : new ListInvoicesRequest(r);\n return this.http.post<ListInvoicesResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListInvoicesResponse.fromProto(resp)),\n share()\n );\n }\n update(r: UpdateInvoiceRequest | UpdateInvoiceRequestInterface): Observable<UpdateInvoiceResponse> {\n const request = ((<UpdateInvoiceRequest>r).toApiJson) ? (<UpdateInvoiceRequest>r) : new UpdateInvoiceRequest(r);\n return this.http.post<UpdateInvoiceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Update\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateInvoiceResponse.fromProto(resp)),\n share()\n );\n }\n pay(r: PayInvoiceRequest | PayInvoiceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<PayInvoiceRequest>r).toApiJson) ? (<PayInvoiceRequest>r) : new PayInvoiceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Pay\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n updateDefaultTaxRates(r: UpdateDefaultTaxRatesRequest | UpdateDefaultTaxRatesRequestInterface): Observable<UpdateDefaultTaxRatesResponse> {\n const request = ((<UpdateDefaultTaxRatesRequest>r).toApiJson) ? (<UpdateDefaultTaxRatesRequest>r) : new UpdateDefaultTaxRatesRequest(r);\n return this.http.post<UpdateDefaultTaxRatesResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/UpdateDefaultTaxRates\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateDefaultTaxRatesResponse.fromProto(resp)),\n share()\n );\n }\n updateLineItem(r: UpdateLineItemRequest | UpdateLineItemRequestInterface): Observable<UpdateLineItemResponse> {\n const request = ((<UpdateLineItemRequest>r).toApiJson) ? (<UpdateLineItemRequest>r) : new UpdateLineItemRequest(r);\n return this.http.post<UpdateLineItemResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/UpdateLineItem\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateLineItemResponse.fromProto(resp)),\n share()\n );\n }\n void(r: VoidInvoiceRequest | VoidInvoiceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<VoidInvoiceRequest>r).toApiJson) ? (<VoidInvoiceRequest>r) : new VoidInvoiceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Void\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n duplicate(r: DuplicateInvoiceRequest | DuplicateInvoiceRequestInterface): Observable<DuplicateInvoiceResponse> {\n const request = ((<DuplicateInvoiceRequest>r).toApiJson) ? (<DuplicateInvoiceRequest>r) : new DuplicateInvoiceRequest(r);\n return this.http.post<DuplicateInvoiceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/Duplicate\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => DuplicateInvoiceResponse.fromProto(resp)),\n share()\n );\n }\n updateBundle(r: UpdateBundleRequest | UpdateBundleRequestInterface): Observable<UpdateBundleResponse> {\n const request = ((<UpdateBundleRequest>r).toApiJson) ? (<UpdateBundleRequest>r) : new UpdateBundleRequest(r);\n return this.http.post<UpdateBundleResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceService/UpdateBundle\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateBundleResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n AddTemplateBundleRequest,\n AddTemplateBundleResponse,\n AddTemplateLineItemRequest,\n AddTemplateLineItemResponse,\n CreateTemplateRequest,\n CreateTemplateResponse,\n DeleteInvoiceTemplateRequest,\n DeleteTemplateLineItemRequest,\n DeleteTemplateLineItemResponse,\n GetInvoiceTemplateRequest,\n GetInvoiceTemplateResponse,\n UpdateTemplateBundleRequest,\n UpdateTemplateBundleResponse,\n UpdateTemplateDefaultTaxRatesRequest,\n UpdateTemplateDefaultTaxRatesResponse,\n UpdateTemplateLineItemRequest,\n UpdateTemplateLineItemResponse,\n UpsertInvoiceTemplateRequest,\n UpsertInvoiceTemplateResponse,\n} from './objects/';\nimport {\n AddTemplateBundleRequestInterface,\n AddTemplateBundleResponseInterface,\n AddTemplateLineItemRequestInterface,\n AddTemplateLineItemResponseInterface,\n CreateTemplateRequestInterface,\n CreateTemplateResponseInterface,\n DeleteInvoiceTemplateRequestInterface,\n DeleteTemplateLineItemRequestInterface,\n DeleteTemplateLineItemResponseInterface,\n GetInvoiceTemplateRequestInterface,\n GetInvoiceTemplateResponseInterface,\n UpdateTemplateBundleRequestInterface,\n UpdateTemplateBundleResponseInterface,\n UpdateTemplateDefaultTaxRatesRequestInterface,\n UpdateTemplateDefaultTaxRatesResponseInterface,\n UpdateTemplateLineItemRequestInterface,\n UpdateTemplateLineItemResponseInterface,\n UpsertInvoiceTemplateRequestInterface,\n UpsertInvoiceTemplateResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceTemplateApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n addBundle(r: AddTemplateBundleRequest | AddTemplateBundleRequestInterface): Observable<AddTemplateBundleResponse> {\n const request = ((<AddTemplateBundleRequest>r).toApiJson) ? (<AddTemplateBundleRequest>r) : new AddTemplateBundleRequest(r);\n return this.http.post<AddTemplateBundleResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/AddBundle\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => AddTemplateBundleResponse.fromProto(resp)),\n share()\n );\n }\n addLineItem(r: AddTemplateLineItemRequest | AddTemplateLineItemRequestInterface): Observable<AddTemplateLineItemResponse> {\n const request = ((<AddTemplateLineItemRequest>r).toApiJson) ? (<AddTemplateLineItemRequest>r) : new AddTemplateLineItemRequest(r);\n return this.http.post<AddTemplateLineItemResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/AddLineItem\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => AddTemplateLineItemResponse.fromProto(resp)),\n share()\n );\n }\n create(r: CreateTemplateRequest | CreateTemplateRequestInterface): Observable<CreateTemplateResponse> {\n const request = ((<CreateTemplateRequest>r).toApiJson) ? (<CreateTemplateRequest>r) : new CreateTemplateRequest(r);\n return this.http.post<CreateTemplateResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/Create\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateTemplateResponse.fromProto(resp)),\n share()\n );\n }\n upsert(r: UpsertInvoiceTemplateRequest | UpsertInvoiceTemplateRequestInterface): Observable<UpsertInvoiceTemplateResponse> {\n const request = ((<UpsertInvoiceTemplateRequest>r).toApiJson) ? (<UpsertInvoiceTemplateRequest>r) : new UpsertInvoiceTemplateRequest(r);\n return this.http.post<UpsertInvoiceTemplateResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/Upsert\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpsertInvoiceTemplateResponse.fromProto(resp)),\n share()\n );\n }\n get(r: GetInvoiceTemplateRequest | GetInvoiceTemplateRequestInterface): Observable<GetInvoiceTemplateResponse> {\n const request = ((<GetInvoiceTemplateRequest>r).toApiJson) ? (<GetInvoiceTemplateRequest>r) : new GetInvoiceTemplateRequest(r);\n return this.http.post<GetInvoiceTemplateResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/Get\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetInvoiceTemplateResponse.fromProto(resp)),\n share()\n );\n }\n delete(r: DeleteInvoiceTemplateRequest | DeleteInvoiceTemplateRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteInvoiceTemplateRequest>r).toApiJson) ? (<DeleteInvoiceTemplateRequest>r) : new DeleteInvoiceTemplateRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/Delete\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteLineItem(r: DeleteTemplateLineItemRequest | DeleteTemplateLineItemRequestInterface): Observable<DeleteTemplateLineItemResponse> {\n const request = ((<DeleteTemplateLineItemRequest>r).toApiJson) ? (<DeleteTemplateLineItemRequest>r) : new DeleteTemplateLineItemRequest(r);\n return this.http.post<DeleteTemplateLineItemResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/DeleteLineItem\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => DeleteTemplateLineItemResponse.fromProto(resp)),\n share()\n );\n }\n updateBundle(r: UpdateTemplateBundleRequest | UpdateTemplateBundleRequestInterface): Observable<UpdateTemplateBundleResponse> {\n const request = ((<UpdateTemplateBundleRequest>r).toApiJson) ? (<UpdateTemplateBundleRequest>r) : new UpdateTemplateBundleRequest(r);\n return this.http.post<UpdateTemplateBundleResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/UpdateBundle\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateTemplateBundleResponse.fromProto(resp)),\n share()\n );\n }\n updateLineItem(r: UpdateTemplateLineItemRequest | UpdateTemplateLineItemRequestInterface): Observable<UpdateTemplateLineItemResponse> {\n const request = ((<UpdateTemplateLineItemRequest>r).toApiJson) ? (<UpdateTemplateLineItemRequest>r) : new UpdateTemplateLineItemRequest(r);\n return this.http.post<UpdateTemplateLineItemResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/UpdateLineItem\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateTemplateLineItemResponse.fromProto(resp)),\n share()\n );\n }\n updateTemplateDefaultTaxRates(r: UpdateTemplateDefaultTaxRatesRequest | UpdateTemplateDefaultTaxRatesRequestInterface): Observable<UpdateTemplateDefaultTaxRatesResponse> {\n const request = ((<UpdateTemplateDefaultTaxRatesRequest>r).toApiJson) ? (<UpdateTemplateDefaultTaxRatesRequest>r) : new UpdateTemplateDefaultTaxRatesRequest(r);\n return this.http.post<UpdateTemplateDefaultTaxRatesResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.InvoiceTemplateService/UpdateTemplateDefaultTaxRates\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => UpdateTemplateDefaultTaxRatesResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n ChargeSalesInvoiceRequest,\n CreateMerchantRequest,\n CreatePaymentCardRequest,\n CreateStripeExternalAccountRequest,\n DeleteBankAccountRequest,\n GetMerchantRequest,\n GetMerchantResponse,\n GetMultiRetailConfigurationsRequest,\n GetMultiRetailConfigurationsResponse,\n GetOutstandingBalanceRequest,\n GetOutstandingBalanceResponse,\n GetPayoutSummaryRequest,\n GetPayoutSummaryResponse,\n GetRetailBalanceRequest,\n GetRetailBalanceResponse,\n GetRetailPayoutRequest,\n GetRetailPayoutResponse,\n GetStatisticsRequest,\n GetStatisticsResponse,\n ListBankAccountsRequest,\n ListBankAccountsResponse,\n ListPaymentCardsRequest,\n ListPaymentCardsResponse,\n ListRetailPayoutsRequest,\n ListRetailPayoutsResponse,\n SearchMerchantsRequest,\n SearchMerchantsResponse,\n SendSalesInvoiceEmailRequest,\n SendSalesInvoiceReceiptEmailRequest,\n SetAutoChargeInvoicesRequest,\n SetAutoPostInvoicesRequest,\n SetDefaultBankAccountRequest,\n SetDefaultPaymentCardRequest,\n SetHasAlternativePaymentMethodRequest,\n SetIncludeInFinancialRecordsRequest,\n UpdateMerchantRequest,\n UpdatePaymentCardRequest,\n UpsertDefaultRetailCustomerConfigurationRequest,\n UpsertRetailConfigurationRequest,\n} from './objects/';\nimport {\n ChargeSalesInvoiceRequestInterface,\n CreateMerchantRequestInterface,\n CreatePaymentCardRequestInterface,\n CreateStripeExternalAccountRequestInterface,\n DeleteBankAccountRequestInterface,\n GetMerchantRequestInterface,\n GetMerchantResponseInterface,\n GetMultiRetailConfigurationsRequestInterface,\n GetMultiRetailConfigurationsResponseInterface,\n GetOutstandingBalanceRequestInterface,\n GetOutstandingBalanceResponseInterface,\n GetPayoutSummaryRequestInterface,\n GetPayoutSummaryResponseInterface,\n GetRetailBalanceRequestInterface,\n GetRetailBalanceResponseInterface,\n GetRetailPayoutRequestInterface,\n GetRetailPayoutResponseInterface,\n GetStatisticsRequestInterface,\n GetStatisticsResponseInterface,\n ListBankAccountsRequestInterface,\n ListBankAccountsResponseInterface,\n ListPaymentCardsRequestInterface,\n ListPaymentCardsResponseInterface,\n ListRetailPayoutsRequestInterface,\n ListRetailPayoutsResponseInterface,\n SearchMerchantsRequestInterface,\n SearchMerchantsResponseInterface,\n SendSalesInvoiceEmailRequestInterface,\n SendSalesInvoiceReceiptEmailRequestInterface,\n SetAutoChargeInvoicesRequestInterface,\n SetAutoPostInvoicesRequestInterface,\n SetDefaultBankAccountRequestInterface,\n SetDefaultPaymentCardRequestInterface,\n SetHasAlternativePaymentMethodRequestInterface,\n SetIncludeInFinancialRecordsRequestInterface,\n UpdateMerchantRequestInterface,\n UpdatePaymentCardRequestInterface,\n UpsertDefaultRetailCustomerConfigurationRequestInterface,\n UpsertRetailConfigurationRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class MerchantApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n create(r: CreateMerchantRequest | CreateMerchantRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateMerchantRequest>r).toApiJson) ? (<CreateMerchantRequest>r) : new CreateMerchantRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/Create\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n get(r: GetMerchantRequest | GetMerchantRequestInterface): Observable<GetMerchantResponse> {\n const request = ((<GetMerchantRequest>r).toApiJson) ? (<GetMerchantRequest>r) : new GetMerchantRequest(r);\n return this.http.post<GetMerchantResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/Get\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMerchantResponse.fromProto(resp)),\n share()\n );\n }\n getOutstandingBalance(r: GetOutstandingBalanceRequest | GetOutstandingBalanceRequestInterface): Observable<GetOutstandingBalanceResponse> {\n const request = ((<GetOutstandingBalanceRequest>r).toApiJson) ? (<GetOutstandingBalanceRequest>r) : new GetOutstandingBalanceRequest(r);\n return this.http.post<GetOutstandingBalanceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/GetOutstandingBalance\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetOutstandingBalanceResponse.fromProto(resp)),\n share()\n );\n }\n update(r: UpdateMerchantRequest | UpdateMerchantRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateMerchantRequest>r).toApiJson) ? (<UpdateMerchantRequest>r) : new UpdateMerchantRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/Update\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n createPaymentCard(r: CreatePaymentCardRequest | CreatePaymentCardRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreatePaymentCardRequest>r).toApiJson) ? (<CreatePaymentCardRequest>r) : new CreatePaymentCardRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/CreatePaymentCard\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n setDefaultPaymentCard(r: SetDefaultPaymentCardRequest | SetDefaultPaymentCardRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetDefaultPaymentCardRequest>r).toApiJson) ? (<SetDefaultPaymentCardRequest>r) : new SetDefaultPaymentCardRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SetDefaultPaymentCard\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n listPaymentCards(r: ListPaymentCardsRequest | ListPaymentCardsRequestInterface): Observable<ListPaymentCardsResponse> {\n const request = ((<ListPaymentCardsRequest>r).toApiJson) ? (<ListPaymentCardsRequest>r) : new ListPaymentCardsRequest(r);\n return this.http.post<ListPaymentCardsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/ListPaymentCards\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPaymentCardsResponse.fromProto(resp)),\n share()\n );\n }\n updatePaymentCard(r: UpdatePaymentCardRequest | UpdatePaymentCardRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdatePaymentCardRequest>r).toApiJson) ? (<UpdatePaymentCardRequest>r) : new UpdatePaymentCardRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/UpdatePaymentCard\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getStatistics(r: GetStatisticsRequest | GetStatisticsRequestInterface): Observable<GetStatisticsResponse> {\n const request = ((<GetStatisticsRequest>r).toApiJson) ? (<GetStatisticsRequest>r) : new GetStatisticsRequest(r);\n return this.http.post<GetStatisticsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/GetStatistics\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetStatisticsResponse.fromProto(resp)),\n share()\n );\n }\n search(r: SearchMerchantsRequest | SearchMerchantsRequestInterface): Observable<SearchMerchantsResponse> {\n const request = ((<SearchMerchantsRequest>r).toApiJson) ? (<SearchMerchantsRequest>r) : new SearchMerchantsRequest(r);\n return this.http.post<SearchMerchantsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/Search\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SearchMerchantsResponse.fromProto(resp)),\n share()\n );\n }\n setAutoPostInvoices(r: SetAutoPostInvoicesRequest | SetAutoPostInvoicesRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetAutoPostInvoicesRequest>r).toApiJson) ? (<SetAutoPostInvoicesRequest>r) : new SetAutoPostInvoicesRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SetAutoPostInvoices\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n setAutoChargeInvoices(r: SetAutoChargeInvoicesRequest | SetAutoChargeInvoicesRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetAutoChargeInvoicesRequest>r).toApiJson) ? (<SetAutoChargeInvoicesRequest>r) : new SetAutoChargeInvoicesRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SetAutoChargeInvoices\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n setIncludeInFinancialRecords(r: SetIncludeInFinancialRecordsRequest | SetIncludeInFinancialRecordsRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetIncludeInFinancialRecordsRequest>r).toApiJson) ? (<SetIncludeInFinancialRecordsRequest>r) : new SetIncludeInFinancialRecordsRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SetIncludeInFinancialRecords\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n setHasAlternativePaymentMethod(r: SetHasAlternativePaymentMethodRequest | SetHasAlternativePaymentMethodRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetHasAlternativePaymentMethodRequest>r).toApiJson) ? (<SetHasAlternativePaymentMethodRequest>r) : new SetHasAlternativePaymentMethodRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SetHasAlternativePaymentMethod\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n sendSalesInvoiceEmail(r: SendSalesInvoiceEmailRequest | SendSalesInvoiceEmailRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SendSalesInvoiceEmailRequest>r).toApiJson) ? (<SendSalesInvoiceEmailRequest>r) : new SendSalesInvoiceEmailRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SendSalesInvoiceEmail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n chargeSalesInvoice(r: ChargeSalesInvoiceRequest | ChargeSalesInvoiceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ChargeSalesInvoiceRequest>r).toApiJson) ? (<ChargeSalesInvoiceRequest>r) : new ChargeSalesInvoiceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/ChargeSalesInvoice\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n sendSalesInvoiceReceiptEmail(r: SendSalesInvoiceReceiptEmailRequest | SendSalesInvoiceReceiptEmailRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SendSalesInvoiceReceiptEmailRequest>r).toApiJson) ? (<SendSalesInvoiceReceiptEmailRequest>r) : new SendSalesInvoiceReceiptEmailRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SendSalesInvoiceReceiptEmail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n createStripeExternalAccount(r: CreateStripeExternalAccountRequest | CreateStripeExternalAccountRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateStripeExternalAccountRequest>r).toApiJson) ? (<CreateStripeExternalAccountRequest>r) : new CreateStripeExternalAccountRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/CreateStripeExternalAccount\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n listBankAccounts(r: ListBankAccountsRequest | ListBankAccountsRequestInterface): Observable<ListBankAccountsResponse> {\n const request = ((<ListBankAccountsRequest>r).toApiJson) ? (<ListBankAccountsRequest>r) : new ListBankAccountsRequest(r);\n return this.http.post<ListBankAccountsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/ListBankAccounts\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListBankAccountsResponse.fromProto(resp)),\n share()\n );\n }\n setDefaultBankAccount(r: SetDefaultBankAccountRequest | SetDefaultBankAccountRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetDefaultBankAccountRequest>r).toApiJson) ? (<SetDefaultBankAccountRequest>r) : new SetDefaultBankAccountRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/SetDefaultBankAccount\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteBankAccount(r: DeleteBankAccountRequest | DeleteBankAccountRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteBankAccountRequest>r).toApiJson) ? (<DeleteBankAccountRequest>r) : new DeleteBankAccountRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/DeleteBankAccount\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiRetailConfigurations(r: GetMultiRetailConfigurationsRequest | GetMultiRetailConfigurationsRequestInterface): Observable<GetMultiRetailConfigurationsResponse> {\n const request = ((<GetMultiRetailConfigurationsRequest>r).toApiJson) ? (<GetMultiRetailConfigurationsRequest>r) : new GetMultiRetailConfigurationsRequest(r);\n return this.http.post<GetMultiRetailConfigurationsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/GetMultiRetailConfigurations\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiRetailConfigurationsResponse.fromProto(resp)),\n share()\n );\n }\n upsertRetailConfiguration(r: UpsertRetailConfigurationRequest | UpsertRetailConfigurationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpsertRetailConfigurationRequest>r).toApiJson) ? (<UpsertRetailConfigurationRequest>r) : new UpsertRetailConfigurationRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/UpsertRetailConfiguration\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n upsertDefaultRetailCustomerConfiguration(r: UpsertDefaultRetailCustomerConfigurationRequest | UpsertDefaultRetailCustomerConfigurationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpsertDefaultRetailCustomerConfigurationRequest>r).toApiJson) ? (<UpsertDefaultRetailCustomerConfigurationRequest>r) : new UpsertDefaultRetailCustomerConfigurationRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/UpsertDefaultRetailCustomerConfiguration\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getRetailBalance(r: GetRetailBalanceRequest | GetRetailBalanceRequestInterface): Observable<GetRetailBalanceResponse> {\n const request = ((<GetRetailBalanceRequest>r).toApiJson) ? (<GetRetailBalanceRequest>r) : new GetRetailBalanceRequest(r);\n return this.http.post<GetRetailBalanceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/GetRetailBalance\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetRetailBalanceResponse.fromProto(resp)),\n share()\n );\n }\n getPayoutSummary(r: GetPayoutSummaryRequest | GetPayoutSummaryRequestInterface): Observable<GetPayoutSummaryResponse> {\n const request = ((<GetPayoutSummaryRequest>r).toApiJson) ? (<GetPayoutSummaryRequest>r) : new GetPayoutSummaryRequest(r);\n return this.http.post<GetPayoutSummaryResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/GetPayoutSummary\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetPayoutSummaryResponse.fromProto(resp)),\n share()\n );\n }\n listRetailPayouts(r: ListRetailPayoutsRequest | ListRetailPayoutsRequestInterface): Observable<ListRetailPayoutsResponse> {\n const request = ((<ListRetailPayoutsRequest>r).toApiJson) ? (<ListRetailPayoutsRequest>r) : new ListRetailPayoutsRequest(r);\n return this.http.post<ListRetailPayoutsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/ListRetailPayouts\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListRetailPayoutsResponse.fromProto(resp)),\n share()\n );\n }\n getRetailPayout(r: GetRetailPayoutRequest | GetRetailPayoutRequestInterface): Observable<GetRetailPayoutResponse> {\n const request = ((<GetRetailPayoutRequest>r).toApiJson) ? (<GetRetailPayoutRequest>r) : new GetRetailPayoutRequest(r);\n return this.http.post<GetRetailPayoutResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.MerchantService/GetRetailPayout\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetRetailPayoutResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n DeletePaymentCardRequest,\n ListPaymentCardsRequest,\n ListPaymentCardsResponse,\n SetDefaultPaymentMethodRequest,\n} from './objects/';\nimport {\n DeletePaymentCardRequestInterface,\n ListPaymentCardsRequestInterface,\n ListPaymentCardsResponseInterface,\n SetDefaultPaymentMethodRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class PaymentMethodApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n listPaymentCards(r: ListPaymentCardsRequest | ListPaymentCardsRequestInterface): Observable<ListPaymentCardsResponse> {\n const request = ((<ListPaymentCardsRequest>r).toApiJson) ? (<ListPaymentCardsRequest>r) : new ListPaymentCardsRequest(r);\n return this.http.post<ListPaymentCardsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentMethodService/ListPaymentCards\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPaymentCardsResponse.fromProto(resp)),\n share()\n );\n }\n deletePaymentCard(r: DeletePaymentCardRequest | DeletePaymentCardRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeletePaymentCardRequest>r).toApiJson) ? (<DeletePaymentCardRequest>r) : new DeletePaymentCardRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentMethodService/DeletePaymentCard\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n setDefaultPaymentMethod(r: SetDefaultPaymentMethodRequest | SetDefaultPaymentMethodRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetDefaultPaymentMethodRequest>r).toApiJson) ? (<SetDefaultPaymentMethodRequest>r) : new SetDefaultPaymentMethodRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentMethodService/SetDefaultPaymentMethod\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CloseRetailDisputeRequest,\n ConfigureRetailPaymentProviderRequest,\n ConfigureRetailPaymentProviderResponse,\n ConfirmRetailPaymentRequest,\n GetRetailDisputeRequest,\n GetRetailDisputeResponse,\n GetRetailPaymentProviderRequest,\n GetRetailPaymentProviderResponse,\n GetRetailPaymentRequest,\n GetRetailPaymentResponse,\n ListPaymentRequest,\n ListPaymentResponse,\n ListRetailDisputesRequest,\n ListRetailDisputesResponse,\n ListRetailPaymentsRequest,\n ListRetailPaymentsResponse,\n PrepareRetailPaymentRequest,\n PrepareRetailPaymentResponse,\n RetailPaymentsEnabledRequest,\n RetailPaymentsEnabledResponse,\n RetailStatusRequest,\n RetailStatusResponse,\n SubmitEvidenceRequest,\n UpdateRetailPaymentProviderRequest,\n} from './objects/';\nimport {\n CloseRetailDisputeRequestInterface,\n ConfigureRetailPaymentProviderRequestInterface,\n ConfigureRetailPaymentProviderResponseInterface,\n ConfirmRetailPaymentRequestInterface,\n GetRetailDisputeRequestInterface,\n GetRetailDisputeResponseInterface,\n GetRetailPaymentProviderRequestInterface,\n GetRetailPaymentProviderResponseInterface,\n GetRetailPaymentRequestInterface,\n GetRetailPaymentResponseInterface,\n ListPaymentRequestInterface,\n ListPaymentResponseInterface,\n ListRetailDisputesRequestInterface,\n ListRetailDisputesResponseInterface,\n ListRetailPaymentsRequestInterface,\n ListRetailPaymentsResponseInterface,\n PrepareRetailPaymentRequestInterface,\n PrepareRetailPaymentResponseInterface,\n RetailPaymentsEnabledRequestInterface,\n RetailPaymentsEnabledResponseInterface,\n RetailStatusRequestInterface,\n RetailStatusResponseInterface,\n SubmitEvidenceRequestInterface,\n UpdateRetailPaymentProviderRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class PaymentApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n list(r: ListPaymentRequest | ListPaymentRequestInterface): Observable<ListPaymentResponse> {\n const request = ((<ListPaymentRequest>r).toApiJson) ? (<ListPaymentRequest>r) : new ListPaymentRequest(r);\n return this.http.post<ListPaymentResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPaymentResponse.fromProto(resp)),\n share()\n );\n }\n getRetail(r: GetRetailPaymentRequest | GetRetailPaymentRequestInterface): Observable<GetRetailPaymentResponse> {\n const request = ((<GetRetailPaymentRequest>r).toApiJson) ? (<GetRetailPaymentRequest>r) : new GetRetailPaymentRequest(r);\n return this.http.post<GetRetailPaymentResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/GetRetail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetRetailPaymentResponse.fromProto(resp)),\n share()\n );\n }\n listRetail(r: ListRetailPaymentsRequest | ListRetailPaymentsRequestInterface): Observable<ListRetailPaymentsResponse> {\n const request = ((<ListRetailPaymentsRequest>r).toApiJson) ? (<ListRetailPaymentsRequest>r) : new ListRetailPaymentsRequest(r);\n return this.http.post<ListRetailPaymentsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/ListRetail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListRetailPaymentsResponse.fromProto(resp)),\n share()\n );\n }\n listRetailDisputes(r: ListRetailDisputesRequest | ListRetailDisputesRequestInterface): Observable<ListRetailDisputesResponse> {\n const request = ((<ListRetailDisputesRequest>r).toApiJson) ? (<ListRetailDisputesRequest>r) : new ListRetailDisputesRequest(r);\n return this.http.post<ListRetailDisputesResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/ListRetailDisputes\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListRetailDisputesResponse.fromProto(resp)),\n share()\n );\n }\n getRetailDispute(r: GetRetailDisputeRequest | GetRetailDisputeRequestInterface): Observable<GetRetailDisputeResponse> {\n const request = ((<GetRetailDisputeRequest>r).toApiJson) ? (<GetRetailDisputeRequest>r) : new GetRetailDisputeRequest(r);\n return this.http.post<GetRetailDisputeResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/GetRetailDispute\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetRetailDisputeResponse.fromProto(resp)),\n share()\n );\n }\n closeRetailDispute(r: CloseRetailDisputeRequest | CloseRetailDisputeRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CloseRetailDisputeRequest>r).toApiJson) ? (<CloseRetailDisputeRequest>r) : new CloseRetailDisputeRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/CloseRetailDispute\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n prepareRetail(r: PrepareRetailPaymentRequest | PrepareRetailPaymentRequestInterface): Observable<PrepareRetailPaymentResponse> {\n const request = ((<PrepareRetailPaymentRequest>r).toApiJson) ? (<PrepareRetailPaymentRequest>r) : new PrepareRetailPaymentRequest(r);\n return this.http.post<PrepareRetailPaymentResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/PrepareRetail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => PrepareRetailPaymentResponse.fromProto(resp)),\n share()\n );\n }\n confirmRetail(r: ConfirmRetailPaymentRequest | ConfirmRetailPaymentRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ConfirmRetailPaymentRequest>r).toApiJson) ? (<ConfirmRetailPaymentRequest>r) : new ConfirmRetailPaymentRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/ConfirmRetail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n retailStatus(r: RetailStatusRequest | RetailStatusRequestInterface): Observable<RetailStatusResponse> {\n const request = ((<RetailStatusRequest>r).toApiJson) ? (<RetailStatusRequest>r) : new RetailStatusRequest(r);\n return this.http.post<RetailStatusResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/RetailStatus\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => RetailStatusResponse.fromProto(resp)),\n share()\n );\n }\n retailPaymentsEnabled(r: RetailPaymentsEnabledRequest | RetailPaymentsEnabledRequestInterface): Observable<RetailPaymentsEnabledResponse> {\n const request = ((<RetailPaymentsEnabledRequest>r).toApiJson) ? (<RetailPaymentsEnabledRequest>r) : new RetailPaymentsEnabledRequest(r);\n return this.http.post<RetailPaymentsEnabledResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/RetailPaymentsEnabled\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => RetailPaymentsEnabledResponse.fromProto(resp)),\n share()\n );\n }\n configureRetailProvider(r: ConfigureRetailPaymentProviderRequest | ConfigureRetailPaymentProviderRequestInterface): Observable<ConfigureRetailPaymentProviderResponse> {\n const request = ((<ConfigureRetailPaymentProviderRequest>r).toApiJson) ? (<ConfigureRetailPaymentProviderRequest>r) : new ConfigureRetailPaymentProviderRequest(r);\n return this.http.post<ConfigureRetailPaymentProviderResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/ConfigureRetailProvider\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ConfigureRetailPaymentProviderResponse.fromProto(resp)),\n share()\n );\n }\n updateRetailProvider(r: UpdateRetailPaymentProviderRequest | UpdateRetailPaymentProviderRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateRetailPaymentProviderRequest>r).toApiJson) ? (<UpdateRetailPaymentProviderRequest>r) : new UpdateRetailPaymentProviderRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/UpdateRetailProvider\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getRetailProvider(r: GetRetailPaymentProviderRequest | GetRetailPaymentProviderRequestInterface): Observable<GetRetailPaymentProviderResponse> {\n const request = ((<GetRetailPaymentProviderRequest>r).toApiJson) ? (<GetRetailPaymentProviderRequest>r) : new GetRetailPaymentProviderRequest(r);\n return this.http.post<GetRetailPaymentProviderResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/GetRetailProvider\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetRetailPaymentProviderResponse.fromProto(resp)),\n share()\n );\n }\n submitEvidence(r: SubmitEvidenceRequest | SubmitEvidenceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SubmitEvidenceRequest>r).toApiJson) ? (<SubmitEvidenceRequest>r) : new SubmitEvidenceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PaymentService/SubmitEvidence\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n DeleteRetailPricingRequest,\n GetMultiBundleRetailPricingRequest,\n GetMultiBundleRetailPricingResponse,\n GetMultiRetailPricingRequest,\n GetMultiRetailPricingResponse,\n GetPurchaseCostRequest,\n GetPurchaseCostResponse,\n GetWholesaleComparisonRequest,\n GetWholesaleComparisonResponse,\n SetWholesaleProductStrategyRequest,\n SetWholesaleProductVolumeCommitmentRequest,\n UpsertRetailPricingRequest,\n UpsertWholesalePricingRequest,\n} from './objects/';\nimport {\n DeleteRetailPricingRequestInterface,\n GetMultiBundleRetailPricingRequestInterface,\n GetMultiBundleRetailPricingResponseInterface,\n GetMultiRetailPricingRequestInterface,\n GetMultiRetailPricingResponseInterface,\n GetPurchaseCostRequestInterface,\n GetPurchaseCostResponseInterface,\n GetWholesaleComparisonRequestInterface,\n GetWholesaleComparisonResponseInterface,\n SetWholesaleProductStrategyRequestInterface,\n SetWholesaleProductVolumeCommitmentRequestInterface,\n UpsertRetailPricingRequestInterface,\n UpsertWholesalePricingRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class PricingApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n getMultiRetail(r: GetMultiRetailPricingRequest | GetMultiRetailPricingRequestInterface): Observable<GetMultiRetailPricingResponse> {\n const request = ((<GetMultiRetailPricingRequest>r).toApiJson) ? (<GetMultiRetailPricingRequest>r) : new GetMultiRetailPricingRequest(r);\n return this.http.post<GetMultiRetailPricingResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/GetMultiRetail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiRetailPricingResponse.fromProto(resp)),\n share()\n );\n }\n upsertRetail(r: UpsertRetailPricingRequest | UpsertRetailPricingRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpsertRetailPricingRequest>r).toApiJson) ? (<UpsertRetailPricingRequest>r) : new UpsertRetailPricingRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/UpsertRetail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteRetail(r: DeleteRetailPricingRequest | DeleteRetailPricingRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteRetailPricingRequest>r).toApiJson) ? (<DeleteRetailPricingRequest>r) : new DeleteRetailPricingRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/DeleteRetail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiBundleRetail(r: GetMultiBundleRetailPricingRequest | GetMultiBundleRetailPricingRequestInterface): Observable<GetMultiBundleRetailPricingResponse> {\n const request = ((<GetMultiBundleRetailPricingRequest>r).toApiJson) ? (<GetMultiBundleRetailPricingRequest>r) : new GetMultiBundleRetailPricingRequest(r);\n return this.http.post<GetMultiBundleRetailPricingResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/GetMultiBundleRetail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiBundleRetailPricingResponse.fromProto(resp)),\n share()\n );\n }\n getWholesaleComparison(r: GetWholesaleComparisonRequest | GetWholesaleComparisonRequestInterface): Observable<GetWholesaleComparisonResponse> {\n const request = ((<GetWholesaleComparisonRequest>r).toApiJson) ? (<GetWholesaleComparisonRequest>r) : new GetWholesaleComparisonRequest(r);\n return this.http.post<GetWholesaleComparisonResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/GetWholesaleComparison\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetWholesaleComparisonResponse.fromProto(resp)),\n share()\n );\n }\n setWholesaleProductStrategy(r: SetWholesaleProductStrategyRequest | SetWholesaleProductStrategyRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetWholesaleProductStrategyRequest>r).toApiJson) ? (<SetWholesaleProductStrategyRequest>r) : new SetWholesaleProductStrategyRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/SetWholesaleProductStrategy\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n setWholesaleProductVolumeCommitment(r: SetWholesaleProductVolumeCommitmentRequest | SetWholesaleProductVolumeCommitmentRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SetWholesaleProductVolumeCommitmentRequest>r).toApiJson) ? (<SetWholesaleProductVolumeCommitmentRequest>r) : new SetWholesaleProductVolumeCommitmentRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/SetWholesaleProductVolumeCommitment\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getPurchaseCost(r: GetPurchaseCostRequest | GetPurchaseCostRequestInterface): Observable<GetPurchaseCostResponse> {\n const request = ((<GetPurchaseCostRequest>r).toApiJson) ? (<GetPurchaseCostRequest>r) : new GetPurchaseCostRequest(r);\n return this.http.post<GetPurchaseCostResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/GetPurchaseCost\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetPurchaseCostResponse.fromProto(resp)),\n share()\n );\n }\n upsertWholesale(r: UpsertWholesalePricingRequest | UpsertWholesalePricingRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpsertWholesalePricingRequest>r).toApiJson) ? (<UpsertWholesalePricingRequest>r) : new UpsertWholesalePricingRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PricingService/UpsertWholesale\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CreateProductRequest,\n DeleteProductRequest,\n UpdateProductRequest,\n} from './objects/';\nimport {\n CreateProductRequestInterface,\n DeleteProductRequestInterface,\n UpdateProductRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class ProductApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n create(r: CreateProductRequest | CreateProductRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateProductRequest>r).toApiJson) ? (<CreateProductRequest>r) : new CreateProductRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.ProductService/Create\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n update(r: UpdateProductRequest | UpdateProductRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateProductRequest>r).toApiJson) ? (<UpdateProductRequest>r) : new UpdateProductRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.ProductService/Update\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n delete(r: DeleteProductRequest | DeleteProductRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteProductRequest>r).toApiJson) ? (<DeleteProductRequest>r) : new DeleteProductRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.ProductService/Delete\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n ListSubscriptionRetentionByGroupResponse,\n ListSubscriptionRetentionBySKUResponse,\n ListSubscriptionRetentionRequest,\n} from './objects/';\nimport {\n ListSubscriptionRetentionByGroupResponseInterface,\n ListSubscriptionRetentionBySKUResponseInterface,\n ListSubscriptionRetentionRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class ProductSummaryApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n listSubscriptionRetentionByGroup(r: ListSubscriptionRetentionRequest | ListSubscriptionRetentionRequestInterface): Observable<ListSubscriptionRetentionByGroupResponse> {\n const request = ((<ListSubscriptionRetentionRequest>r).toApiJson) ? (<ListSubscriptionRetentionRequest>r) : new ListSubscriptionRetentionRequest(r);\n return this.http.post<ListSubscriptionRetentionByGroupResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.ProductSummaryService/ListSubscriptionRetentionByGroup\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListSubscriptionRetentionByGroupResponse.fromProto(resp)),\n share()\n );\n }\n listSubscriptionRetentionBySku(r: ListSubscriptionRetentionRequest | ListSubscriptionRetentionRequestInterface): Observable<ListSubscriptionRetentionBySKUResponse> {\n const request = ((<ListSubscriptionRetentionRequest>r).toApiJson) ? (<ListSubscriptionRetentionRequest>r) : new ListSubscriptionRetentionRequest(r);\n return this.http.post<ListSubscriptionRetentionBySKUResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.ProductSummaryService/ListSubscriptionRetentionBySKU\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListSubscriptionRetentionBySKUResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n GetMultiCustomerSummariesRequest,\n GetMultiCustomerSummariesResponse,\n ListPurchaseItemsRequest,\n ListPurchaseItemsResponse,\n ListPurchaseRequest,\n ListPurchaseResponse,\n RetryPurchaseRequest,\n VoidPurchaseRequest,\n} from './objects/';\nimport {\n GetMultiCustomerSummariesRequestInterface,\n GetMultiCustomerSummariesResponseInterface,\n ListPurchaseItemsRequestInterface,\n ListPurchaseItemsResponseInterface,\n ListPurchaseRequestInterface,\n ListPurchaseResponseInterface,\n RetryPurchaseRequestInterface,\n VoidPurchaseRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class PurchaseApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n list(r: ListPurchaseRequest | ListPurchaseRequestInterface): Observable<ListPurchaseResponse> {\n const request = ((<ListPurchaseRequest>r).toApiJson) ? (<ListPurchaseRequest>r) : new ListPurchaseRequest(r);\n return this.http.post<ListPurchaseResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PurchaseService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPurchaseResponse.fromProto(resp)),\n share()\n );\n }\n getMultiCustomerSummaries(r: GetMultiCustomerSummariesRequest | GetMultiCustomerSummariesRequestInterface): Observable<GetMultiCustomerSummariesResponse> {\n const request = ((<GetMultiCustomerSummariesRequest>r).toApiJson) ? (<GetMultiCustomerSummariesRequest>r) : new GetMultiCustomerSummariesRequest(r);\n return this.http.post<GetMultiCustomerSummariesResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PurchaseService/GetMultiCustomerSummaries\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiCustomerSummariesResponse.fromProto(resp)),\n share()\n );\n }\n listPurchaseItems(r: ListPurchaseItemsRequest | ListPurchaseItemsRequestInterface): Observable<ListPurchaseItemsResponse> {\n const request = ((<ListPurchaseItemsRequest>r).toApiJson) ? (<ListPurchaseItemsRequest>r) : new ListPurchaseItemsRequest(r);\n return this.http.post<ListPurchaseItemsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.PurchaseService/ListPurchaseItems\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPurchaseItemsResponse.fromProto(resp)),\n share()\n );\n }\n retry(r: RetryPurchaseRequest | RetryPurchaseRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RetryPurchaseRequest>r).toApiJson) ? (<RetryPurchaseRequest>r) : new RetryPurchaseRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PurchaseService/Retry\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n void(r: VoidPurchaseRequest | VoidPurchaseRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<VoidPurchaseRequest>r).toApiJson) ? (<VoidPurchaseRequest>r) : new VoidPurchaseRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.PurchaseService/Void\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CreateRefundRequest,\n ListRefundsRequest,\n ListRefundsResponse,\n} from './objects/';\nimport {\n CreateRefundRequestInterface,\n ListRefundsRequestInterface,\n ListRefundsResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class RefundApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n create(r: CreateRefundRequest | CreateRefundRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateRefundRequest>r).toApiJson) ? (<CreateRefundRequest>r) : new CreateRefundRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.RefundService/Create\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n list(r: ListRefundsRequest | ListRefundsRequestInterface): Observable<ListRefundsResponse> {\n const request = ((<ListRefundsRequest>r).toApiJson) ? (<ListRefundsRequest>r) : new ListRefundsRequest(r);\n return this.http.post<ListRefundsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.RefundService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListRefundsResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n GetRetailCustomerConfigurationRequest,\n GetRetailCustomerConfigurationResponse,\n UpsertRetailCustomerConfigurationRequest,\n} from './objects/';\nimport {\n GetRetailCustomerConfigurationRequestInterface,\n GetRetailCustomerConfigurationResponseInterface,\n UpsertRetailCustomerConfigurationRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class RetailCustomerConfigurationApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n get(r: GetRetailCustomerConfigurationRequest | GetRetailCustomerConfigurationRequestInterface): Observable<GetRetailCustomerConfigurationResponse> {\n const request = ((<GetRetailCustomerConfigurationRequest>r).toApiJson) ? (<GetRetailCustomerConfigurationRequest>r) : new GetRetailCustomerConfigurationRequest(r);\n return this.http.post<GetRetailCustomerConfigurationResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.RetailCustomerConfigurationService/Get\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetRetailCustomerConfigurationResponse.fromProto(resp)),\n share()\n );\n }\n upsert(r: UpsertRetailCustomerConfigurationRequest | UpsertRetailCustomerConfigurationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpsertRetailCustomerConfigurationRequest>r).toApiJson) ? (<UpsertRetailCustomerConfigurationRequest>r) : new UpsertRetailCustomerConfigurationRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.RetailCustomerConfigurationService/Upsert\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CreateSalesCreditNoteRequest,\n ListSalesCreditNoteRequest,\n ListSalesCreditNoteResponse,\n} from './objects/';\nimport {\n CreateSalesCreditNoteRequestInterface,\n ListSalesCreditNoteRequestInterface,\n ListSalesCreditNoteResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class SalesCreditNoteApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n create(r: CreateSalesCreditNoteRequest | CreateSalesCreditNoteRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateSalesCreditNoteRequest>r).toApiJson) ? (<CreateSalesCreditNoteRequest>r) : new CreateSalesCreditNoteRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.SalesCreditNoteService/Create\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n list(r: ListSalesCreditNoteRequest | ListSalesCreditNoteRequestInterface): Observable<ListSalesCreditNoteResponse> {\n const request = ((<ListSalesCreditNoteRequest>r).toApiJson) ? (<ListSalesCreditNoteRequest>r) : new ListSalesCreditNoteRequest(r);\n return this.http.post<ListSalesCreditNoteResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.SalesCreditNoteService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListSalesCreditNoteResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n GetSalesInvoiceRequest,\n GetSalesInvoiceResponse,\n ListSalesInvoiceRequest,\n ListSalesInvoiceResponse,\n PostSalesInvoiceRequest,\n} from './objects/';\nimport {\n GetSalesInvoiceRequestInterface,\n GetSalesInvoiceResponseInterface,\n ListSalesInvoiceRequestInterface,\n ListSalesInvoiceResponseInterface,\n PostSalesInvoiceRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class SalesInvoiceApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n list(r: ListSalesInvoiceRequest | ListSalesInvoiceRequestInterface): Observable<ListSalesInvoiceResponse> {\n const request = ((<ListSalesInvoiceRequest>r).toApiJson) ? (<ListSalesInvoiceRequest>r) : new ListSalesInvoiceRequest(r);\n return this.http.post<ListSalesInvoiceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.SalesInvoiceService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListSalesInvoiceResponse.fromProto(resp)),\n share()\n );\n }\n post(r: PostSalesInvoiceRequest | PostSalesInvoiceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<PostSalesInvoiceRequest>r).toApiJson) ? (<PostSalesInvoiceRequest>r) : new PostSalesInvoiceRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.SalesInvoiceService/Post\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n get(r: GetSalesInvoiceRequest | GetSalesInvoiceRequestInterface): Observable<GetSalesInvoiceResponse> {\n const request = ((<GetSalesInvoiceRequest>r).toApiJson) ? (<GetSalesInvoiceRequest>r) : new GetSalesInvoiceRequest(r);\n return this.http.post<GetSalesInvoiceResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.SalesInvoiceService/Get\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSalesInvoiceResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n ArchiveTaxRequest,\n CalculateTaxRequest,\n CalculateTaxResponse,\n CreateTaxRequest,\n GetMultiTaxRequest,\n GetMultiTaxResponse,\n ListTaxRequest,\n ListTaxResponse,\n UpdateTaxRequest,\n} from './objects/';\nimport {\n ArchiveTaxRequestInterface,\n CalculateTaxRequestInterface,\n CalculateTaxResponseInterface,\n CreateTaxRequestInterface,\n GetMultiTaxRequestInterface,\n GetMultiTaxResponseInterface,\n ListTaxRequestInterface,\n ListTaxResponseInterface,\n UpdateTaxRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class TaxApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n calculate(r: CalculateTaxRequest | CalculateTaxRequestInterface): Observable<CalculateTaxResponse> {\n const request = ((<CalculateTaxRequest>r).toApiJson) ? (<CalculateTaxRequest>r) : new CalculateTaxRequest(r);\n return this.http.post<CalculateTaxResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.TaxService/Calculate\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CalculateTaxResponse.fromProto(resp)),\n share()\n );\n }\n create(r: CreateTaxRequest | CreateTaxRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateTaxRequest>r).toApiJson) ? (<CreateTaxRequest>r) : new CreateTaxRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.TaxService/Create\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMulti(r: GetMultiTaxRequest | GetMultiTaxRequestInterface): Observable<GetMultiTaxResponse> {\n const request = ((<GetMultiTaxRequest>r).toApiJson) ? (<GetMultiTaxRequest>r) : new GetMultiTaxRequest(r);\n return this.http.post<GetMultiTaxResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.TaxService/GetMulti\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiTaxResponse.fromProto(resp)),\n share()\n );\n }\n update(r: UpdateTaxRequest | UpdateTaxRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateTaxRequest>r).toApiJson) ? (<UpdateTaxRequest>r) : new UpdateTaxRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.TaxService/Update\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n list(r: ListTaxRequest | ListTaxRequestInterface): Observable<ListTaxResponse> {\n const request = ((<ListTaxRequest>r).toApiJson) ? (<ListTaxRequest>r) : new ListTaxRequest(r);\n return this.http.post<ListTaxResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.TaxService/List\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListTaxResponse.fromProto(resp)),\n share()\n );\n }\n archive(r: ArchiveTaxRequest | ArchiveTaxRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ArchiveTaxRequest>r).toApiJson) ? (<ArchiveTaxRequest>r) : new ArchiveTaxRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/billing.v1.TaxService/Archive\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n GenerateVendorReportRequest,\n GenerateVendorReportResponse,\n GetRevenueStatsRequest,\n GetRevenueStatsResponse,\n} from './objects/';\nimport {\n GenerateVendorReportRequestInterface,\n GenerateVendorReportResponseInterface,\n GetRevenueStatsRequestInterface,\n GetRevenueStatsResponseInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class VendorApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n generateReport(r: GenerateVendorReportRequest | GenerateVendorReportRequestInterface): Observable<GenerateVendorReportResponse> {\n const request = ((<GenerateVendorReportRequest>r).toApiJson) ? (<GenerateVendorReportRequest>r) : new GenerateVendorReportRequest(r);\n return this.http.post<GenerateVendorReportResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.VendorService/GenerateReport\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GenerateVendorReportResponse.fromProto(resp)),\n share()\n );\n }\n getRevenueStats(r: GetRevenueStatsRequest | GetRevenueStatsRequestInterface): Observable<GetRevenueStatsResponse> {\n const request = ((<GetRevenueStatsRequest>r).toApiJson) ? (<GetRevenueStatsRequest>r) : new GetRevenueStatsRequest(r);\n return this.http.post<GetRevenueStatsResponseInterface>(this.hostService.hostWithScheme() + \"/billing.v1.VendorService/GetRevenueStats\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetRevenueStatsResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\nexport * from './enums';\nexport * from './objects';\nexport * from './interfaces';\nexport { BankReconciliationApiService } from './bank-reconciliation.api.service';\nexport { BillingApiService } from './billing.api.service';\nexport { BundleApiService } from './bundle.api.service';\nexport { ContractDocumentApiService } from './contract-document.api.service';\nexport { ContractApiService } from './contract.api.service';\nexport { CreditApiService } from './credit.api.service';\nexport { DiscountApiService } from './discount.api.service';\nexport { InvoiceApiService } from './invoice.api.service';\nexport { InvoiceTemplateApiService } from './invoice-template.api.service';\nexport { MerchantApiService } from './merchant.api.service';\nexport { PaymentMethodApiService } from './payment-method.api.service';\nexport { PaymentApiService } from './payment.api.service';\nexport { PricingApiService } from './pricing.api.service';\nexport { ProductApiService } from './product.api.service';\nexport { ProductSummaryApiService } from './product-summary.api.service';\nexport { PurchaseApiService } from './purchase.api.service';\nexport { RefundApiService } from './refund.api.service';\nexport { RetailCustomerConfigurationApiService } from './retail-customer-configuration.api.service';\nexport { SalesCreditNoteApiService } from './sales-credit-note.api.service';\nexport { SalesInvoiceApiService } from './sales-invoice.api.service';\nexport { TaxApiService } from './tax.api.service';\nexport { VendorApiService } from './vendor.api.service';\n","import { AppliedDiscountInterface, DiscountType } from '../_internal';\n\nexport enum AppliedDiscountType {\n FIXED_AMOUNT = 'FIXED_AMOUNT',\n PERCENT_AMOUNT = 'PERCENT_AMOUNT',\n FIXED_NUMBER_OF_UNITS = 'FIXED_NUMBER_OF_UNITS',\n FIXED_AMOUNT_PER_UNIT = 'FIXED_AMOUNT_PER_UNIT',\n};\n\nexport function appliedDiscountTypeFromAPI(adt: DiscountType): AppliedDiscountType {\n switch (adt) {\n case DiscountType.DISCOUNT_TYPE_FIXED_AMOUNT_PER_UNIT:\n return AppliedDiscountType.FIXED_AMOUNT_PER_UNIT;\n case DiscountType.DISCOUNT_TYPE_FIXED_NUMBER_OF_UNITS:\n return AppliedDiscountType.FIXED_NUMBER_OF_UNITS;\n case DiscountType.DISCOUNT_TYPE_PERCENT_AMOUNT:\n return AppliedDiscountType.PERCENT_AMOUNT;\n }\n return AppliedDiscountType.FIXED_AMOUNT;\n}\n\nexport function appliedDiscountTypeToApi(adt: AppliedDiscountType): DiscountType {\n switch (adt) {\n case AppliedDiscountType.FIXED_AMOUNT_PER_UNIT:\n return DiscountType.DISCOUNT_TYPE_FIXED_AMOUNT_PER_UNIT;\n case AppliedDiscountType.FIXED_NUMBER_OF_UNITS:\n return DiscountType.DISCOUNT_TYPE_FIXED_NUMBER_OF_UNITS;\n case AppliedDiscountType.PERCENT_AMOUNT:\n return DiscountType.DISCOUNT_TYPE_PERCENT_AMOUNT;\n }\n return DiscountType.DISCOUNT_TYPE_FIXED_AMOUNT;\n}\n\nexport interface AppliedDiscount {\n type: AppliedDiscountType;\n value: number;\n totalAmount: number;\n description: string;\n}\n\nexport function appliedDiscountFromApi(ad: AppliedDiscountInterface): AppliedDiscount {\n return {\n type: appliedDiscountTypeFromAPI(ad.type),\n value: ad.value || 0,\n totalAmount: ad.totalAmount || 0,\n description: ad.description || '',\n }\n}\n\nexport function appliedDiscountToApi(ad: AppliedDiscount): AppliedDiscountInterface {\n return {\n type: appliedDiscountTypeToApi(ad.type),\n value: ad.value || 0,\n totalAmount: ad.totalAmount || 0,\n description: ad.description || '',\n }\n}\n\n/** @deprecated use Discount interface from billing/discount */\nexport interface Discount {\n value: number;\n type: string;\n startDate: Date;\n id?: number;\n endDate?: Date;\n total?: number;\n}\n","import {BankAccount as ApiBankAccount} from '../_internal';\n\nexport interface BankAccount {\n id: string;\n accountHolderName: string;\n bankName: string;\n country: string;\n currency: string;\n routingNumber: string;\n last4: string;\n defaultForCurrency: boolean;\n}\n\nexport function bankAccountFromApi(r: ApiBankAccount): BankAccount {\n return {\n id: r.id,\n accountHolderName: r.accountHolderName,\n bankName: r.bankName,\n country: r.country,\n currency: r.currency,\n routingNumber: r.routingNumber,\n last4: r.last4,\n defaultForCurrency: r.defaultForCurrency\n } as BankAccount;\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n BankAccount as ApiBankAccount,\n DeleteBankAccountRequest,\n ListBankAccountsRequest,\n ListBankAccountsResponse,\n MerchantApiService,\n SetDefaultBankAccountRequest,\n} from '../_internal';\nimport { BankAccount, bankAccountFromApi } from './bank_account';\n\n@Injectable({providedIn: 'root'})\nexport class BankAccountService {\n constructor(private merchantApi: MerchantApiService) {\n }\n\n listBankAccounts(merchantId: string): Observable<BankAccount[]> {\n return this.merchantApi.listBankAccounts(new ListBankAccountsRequest({\n merchantId\n })).pipe(\n map((res: ListBankAccountsResponse) => res && res.bankAccount ? res.bankAccount : []),\n map((bankAccounts: ApiBankAccount[]) => {\n return bankAccounts.map((ba: ApiBankAccount) => bankAccountFromApi(ba));\n }\n )\n )\n }\n\n setDefaultBankAccount(merchantId: string, bankAccountId: string): Observable<HttpResponse<null>> {\n const request = new SetDefaultBankAccountRequest({\n merchantId, bankAccountId\n })\n return this.merchantApi.setDefaultBankAccount(request)\n }\n\n deleteBankAccount(merchantId: string, bankAccountId: string): Observable<HttpResponse<null>> {\n const request = new DeleteBankAccountRequest({\n merchantId, bankAccountId\n })\n return this.merchantApi.deleteBankAccount(request)\n }\n}\n","import {BillingStrategy as PricingPlanBillingStrategy} from '../_internal';\n\nexport enum BillingStrategy {\n Invalid = 'INVALID',\n EndOfPeriod = 'END_OF_PERIOD',\n StartOfPeriod = 'START_OF_PERIOD',\n Instantly = 'INSTANTLY',\n EndOfDay = 'END_OF_DAY'\n}\n\nexport function isBillingStrategyInstant(strategy: BillingStrategy): boolean {\n return (strategy === BillingStrategy.Instantly || strategy === BillingStrategy.EndOfDay)\n}\n\nexport function billingStrategyFromAPI(bsAPI: PricingPlanBillingStrategy): BillingStrategy {\n switch (bsAPI) {\n case PricingPlanBillingStrategy.BILLING_STRATEGY_END_OF_PERIOD:\n return BillingStrategy.EndOfPeriod;\n case PricingPlanBillingStrategy.BILLING_STRATEGY_START_OF_PERIOD:\n return BillingStrategy.StartOfPeriod;\n case PricingPlanBillingStrategy.BILLING_STRATEGY_INSTANTLY:\n return BillingStrategy.Instantly;\n case PricingPlanBillingStrategy.BILLING_STRATEGY_END_OF_DAY:\n return BillingStrategy.EndOfDay;\n }\n return BillingStrategy.Invalid;\n}\n\nexport function billingStrategyToAPI(strategy: BillingStrategy): PricingPlanBillingStrategy {\n switch (strategy) {\n case BillingStrategy.EndOfPeriod:\n return PricingPlanBillingStrategy.BILLING_STRATEGY_END_OF_PERIOD;\n case BillingStrategy.StartOfPeriod:\n return PricingPlanBillingStrategy.BILLING_STRATEGY_START_OF_PERIOD;\n case BillingStrategy.Instantly:\n return PricingPlanBillingStrategy.BILLING_STRATEGY_INSTANTLY;\n case BillingStrategy.EndOfDay:\n return PricingPlanBillingStrategy.BILLING_STRATEGY_END_OF_DAY;\n }\n return PricingPlanBillingStrategy.BILLING_STRATEGY_NONE;\n}\n","import { Currency as CurrencyApi } from '../_internal';\n\nexport enum Currency {\n USD = 'USD',\n CAD = 'CAD',\n EUR = 'EUR',\n AUD = 'AUD',\n GBP = 'GBP',\n NZD = 'NZD',\n BRL = 'BRL',\n CHF = 'CHF',\n CNY = 'CNY',\n CZK = 'CZK',\n INR = 'INR',\n JPY = 'JPY',\n KHR = 'KHR',\n KRW = 'KRW',\n MXN = 'MXN',\n NOK = 'NOK',\n RUB = 'RUB',\n SEK = 'SEK',\n SGD = 'SGD',\n TRY = 'TRY',\n ZAR = 'ZAR',\n DZD = 'DZD',\n AWG = 'AWG',\n FJD = 'FJD',\n KYD = 'KYD',\n}\n\nexport function currencyFromApi(cApi: CurrencyApi): Currency {\n switch (cApi) {\n case CurrencyApi.USD:\n return Currency.USD;\n case CurrencyApi.CAD:\n return Currency.CAD;\n case CurrencyApi.EUR:\n return Currency.EUR;\n case CurrencyApi.AUD:\n return Currency.AUD;\n case CurrencyApi.GBP:\n return Currency.GBP;\n case CurrencyApi.NZD:\n return Currency.NZD;\n case CurrencyApi.BRL:\n return Currency.BRL\n case CurrencyApi.CHF:\n return Currency.CHF\n case CurrencyApi.CNY:\n return Currency.CNY\n case CurrencyApi.CZK:\n return Currency.CZK\n case CurrencyApi.INR:\n return Currency.INR\n case CurrencyApi.JPY:\n return Currency.JPY\n case CurrencyApi.KHR:\n return Currency.KHR\n case CurrencyApi.KRW:\n return Currency.KRW\n case CurrencyApi.MXN:\n return Currency.MXN\n case CurrencyApi.NOK:\n return Currency.NOK\n case CurrencyApi.RUB:\n return Currency.RUB\n case CurrencyApi.SEK:\n return Currency.SEK\n case CurrencyApi.SGD:\n return Currency.SGD\n case CurrencyApi.TRY:\n return Currency.TRY\n case CurrencyApi.ZAR:\n return Currency.ZAR\n case CurrencyApi.DZD:\n return Currency.DZD\n case CurrencyApi.AWG:\n return Currency.AWG\n case CurrencyApi.FJD:\n return Currency.FJD\n case CurrencyApi.KYD:\n return Currency.KYD\n default:\n return Currency.USD;\n }\n}\n","import {Frequency as FrequencyApi} from '../_internal';\n\nexport enum Frequency {\n Invalid = 'INVALID',\n Monthly = 'MONTHLY',\n Yearly = 'YEARLY',\n OneTime = 'ONE_TIME'\n}\n\nexport function frequencyFromLegacyApi(fApi: string): Frequency {\n switch (fApi) {\n case 'monthly':\n return Frequency.Monthly;\n case 'yearly':\n return Frequency.Yearly;\n case 'one_time':\n return Frequency.OneTime;\n }\n return Frequency.Invalid;\n}\n\nexport function frequencyFromApi(fApi: FrequencyApi): Frequency {\n switch (fApi) {\n case FrequencyApi.MONTHLY:\n return Frequency.Monthly;\n case FrequencyApi.YEARLY:\n return Frequency.Yearly;\n case FrequencyApi.ONE_TIME:\n return Frequency.OneTime;\n }\n return Frequency.Invalid;\n}\n\nexport function frequencyToApi(frequency: Frequency): FrequencyApi {\n switch (frequency) {\n case Frequency.Monthly:\n return FrequencyApi.MONTHLY;\n case Frequency.Yearly:\n return FrequencyApi.YEARLY;\n case Frequency.OneTime:\n return FrequencyApi.ONE_TIME;\n }\n return FrequencyApi.INVALID;\n}\n","import { ProductPricingRuleInterface } from '../_internal';\n\nexport interface ProductPricingRules {\n price: number;\n minUnits: number;\n maxUnits: number;\n}\n\nexport function productPricingRulesFromApi(pprApi: ProductPricingRuleInterface[]): ProductPricingRules[] {\n return !pprApi ? null : pprApi.map(r => {\n return {\n price: r.price || 0,\n minUnits: r.minUnits,\n maxUnits: r.maxUnits,\n };\n });\n}\n","import { ProductPricingType as ProductPricingTypeApi } from '../_internal';\n\nexport enum ProductPricingType {\n Invalid = 'INVALID',\n Standard = 'STANDARD',\n Stairstep = 'STAIRSTEP',\n Tiered = 'TIERED'\n}\n\nexport function productPricingTypeFromApi(pptApi: ProductPricingTypeApi): ProductPricingType {\n switch (pptApi) {\n case ProductPricingTypeApi.PRODUCT_PRICING_TYPE_STANDARD:\n return ProductPricingType.Standard;\n case ProductPricingTypeApi.PRODUCT_PRICING_TYPE_STAIRSTEP:\n return ProductPricingType.Stairstep;\n case ProductPricingTypeApi.PRODUCT_PRICING_TYPE_TIERED:\n return ProductPricingType.Tiered;\n }\n return ProductPricingType.Invalid;\n}\n\nexport function productPricingTypeToApi(ppt: ProductPricingType): ProductPricingTypeApi {\n switch (ppt) {\n case ProductPricingType.Standard:\n return ProductPricingTypeApi.PRODUCT_PRICING_TYPE_STANDARD;\n case ProductPricingType.Stairstep:\n return ProductPricingTypeApi.PRODUCT_PRICING_TYPE_STAIRSTEP;\n case ProductPricingType.Tiered:\n return ProductPricingTypeApi.PRODUCT_PRICING_TYPE_TIERED;\n }\n return ProductPricingTypeApi.PRODUCT_PRICING_TYPE_INVALID;\n}\n","import { CommitmentInterface } from '../_internal';\n\nexport interface Commitment {\n initial: number;\n recurring: number;\n}\n\nexport function commitmentFromAPI(comAPI: CommitmentInterface): Commitment {\n return {\n initial: comAPI.initial,\n recurring: comAPI.recurring\n };\n}\n","import {GetPurchaseCostResponse, ProductPricesInterface, ProductPricingInterface} from '../_internal';\nimport { BillingStrategy, billingStrategyFromAPI } from './billing-strategy';\nimport { Commitment, commitmentFromAPI } from './commitment';\nimport { Currency, currencyFromApi } from './currency';\nimport { Frequency, frequencyFromApi, frequencyFromLegacyApi } from './frequency';\nimport { ProductPricingRules, productPricingRulesFromApi } from './product-pricing-rules';\nimport { ProductPricingType, productPricingTypeFromApi } from './product-pricing-type';\n\nexport interface PurchaseCost {\n billingFrequency: Frequency;\n total: number;\n subtotal: number;\n currency: Currency;\n strategy: BillingStrategy;\n commitment: Commitment;\n isStartingPrice: boolean;\n discountTotal: number;\n setupFee: number;\n}\n\nexport interface ProductPricing {\n strategy: BillingStrategy;\n pricingType: ProductPricingType;\n currency: Currency;\n frequency: Frequency;\n pricingRules: ProductPricingRules[];\n commitment: Commitment;\n volumeCommitment: number;\n isStartingPrice: boolean;\n resolvedFrom?: string;\n setupFee: number;\n}\n\nexport interface ProductPrices {\n sku: string\n prices: ProductPricing[]\n}\n\nexport function purchaseCostFromAPI(pcApi: GetPurchaseCostResponse): PurchaseCost {\n const subtotal = pcApi.subtotalCost || 0\n const discountTotal = pcApi.discountAmount || 0\n const total = pcApi.totalCost || 0;\n const setupFee = pcApi.setupFee || 0;\n\n return {\n subtotal: subtotal,\n discountTotal: discountTotal,\n total: total,\n billingFrequency: frequencyFromLegacyApi(pcApi.billingFrequency),\n currency: currencyFromApi(pcApi.currency),\n strategy: billingStrategyFromAPI(pcApi.strategy),\n commitment: commitmentFromAPI(pcApi.commitment),\n isStartingPrice: pcApi.isStartingPrice,\n setupFee: setupFee\n }\n}\n\nexport function productPricingFromApi(pApi: ProductPricingInterface): ProductPricing {\n return {\n strategy: billingStrategyFromAPI(pApi.strategy),\n pricingType: productPricingTypeFromApi(pApi.pricingType),\n currency: currencyFromApi(pApi.currency),\n frequency: frequencyFromApi(pApi.frequency),\n pricingRules: productPricingRulesFromApi(pApi.pricingRules),\n commitment: commitmentFromAPI(pApi.commitment),\n volumeCommitment: pApi.volumeCommitment,\n isStartingPrice: pApi.isStartingPrice,\n resolvedFrom: pApi.resolvedFrom,\n setupFee: pApi.setupFee\n }\n}\n\nexport function pricesFromApi(pApi: ProductPricesInterface[]): ProductPrices[] {\n return pApi?.map(p => (p && {\n sku: p.sku,\n prices: p.prices.map(price => price && productPricingFromApi(price)),\n } as ProductPrices)\n );\n}\n","import {\n PricingPlanProduct as ApiPricingPlanProduct,\n PricingPlanProductPricing as ApiPricing,\n ProductPricingRule as ApiRule,\n} from '../_internal';\nimport { BillingStrategy, billingStrategyFromAPI } from './billing-strategy';\nimport { Commitment, commitmentFromAPI } from './commitment';\nimport { Currency } from './currency';\nimport { Frequency, frequencyFromApi, frequencyToApi } from './frequency';\nimport {\n ProductPricingRules,\n productPricingRulesFromApi,\n} from './product-pricing-rules';\nimport {\n ProductPricingType,\n productPricingTypeFromApi,\n productPricingTypeToApi,\n} from './product-pricing-type';\n\nexport interface CurrencyPricingMap {\n [key: string]: PricingPlanProductPricing;\n}\n\nexport interface PricingPlanProductPricing {\n type: ProductPricingType;\n rules: ProductPricingRules[];\n setupFee: number;\n frequency?: Frequency;\n currencyCode?: string;\n}\n\nexport interface PricingPlanProduct {\n pricingPlanId: string;\n sku: string;\n frequency?: Frequency;\n pricing: CurrencyPricingMap;\n commitment: Commitment;\n created: Date;\n modified: Date;\n strategy: BillingStrategy;\n volumeCommitment: number;\n defaultStrategy?: BillingStrategy;\n}\n\nexport function pricingPlanProductFromApi(apiProduct: ApiPricingPlanProduct): PricingPlanProduct {\n const pricingMap: CurrencyPricingMap = {};\n for (const apiCurrency in apiProduct.pricing) {\n if (!apiProduct.pricing.hasOwnProperty(apiCurrency)) {\n continue;\n }\n\n const pricingApi = apiProduct.pricing[apiCurrency];\n pricingMap[apiCurrency] = {\n type: productPricingTypeFromApi(pricingApi.type),\n rules: productPricingRulesFromApi(pricingApi.rules),\n setupFee: pricingApi.setupFee || 0\n }\n }\n\n return {\n pricingPlanId: apiProduct.pricingPlanId,\n sku: apiProduct.sku,\n frequency: frequencyFromApi(apiProduct.frequency),\n pricing: pricingMap,\n commitment: commitmentFromAPI(apiProduct.commitment),\n created: apiProduct.created,\n modified: apiProduct.modified,\n strategy: billingStrategyFromAPI(apiProduct.strategy),\n volumeCommitment: apiProduct.volumeCommitment\n };\n}\n\nexport function currencyPricingMapToApi(currencyPricingMap: CurrencyPricingMap): { [key: string]: ApiPricing } {\n return Object.keys(currencyPricingMap).\n filter(c => c in Currency).\n reduce((apiPricingMap: { [key: string]: ApiPricing }, c: string) => {\n apiPricingMap[c] = pricingPlanProductPricingToApi(currencyPricingMap[c]);\n return apiPricingMap;\n }, {})\n}\n\nexport function productPricingRulesToApi(rules: ProductPricingRules[]): ApiRule[] {\n return rules.map(rule => new ApiRule(rule));\n\n}\n\nexport function pricingPlanProductPricingToApi(pricing: PricingPlanProductPricing): ApiPricing {\n return new ApiPricing({\n type: productPricingTypeToApi(pricing.type),\n rules: productPricingRulesToApi(pricing.rules),\n setupFee: pricing.setupFee,\n frequency: frequencyToApi(pricing.frequency),\n currencyCode: pricing.currencyCode\n })\n}\n","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, mapTo, share } from 'rxjs/operators';\nimport { HostService } from '../_generated';\nimport {\n BillingApiService,\n Commitment,\n PricingApiService,\n UpsertWholesalePricingRequest\n} from '../_internal';\nimport { BillingStrategy, billingStrategyToAPI } from './billing-strategy';\nimport { PricingPlanProductPricing, pricingPlanProductPricingToApi } from './pricing-plan-product';\nimport { pricesFromApi, ProductPrices, PurchaseCost, purchaseCostFromAPI } from './product-pricing';\n\n\n@Injectable({providedIn: 'root'})\nexport class WholesalePricingService {\n\n constructor(\n private hostService: HostService,\n private http: HttpClient,\n private pricingService: PricingApiService,\n private billingApi: BillingApiService,\n ) {\n }\n\n setProductBillingStrategy(merchantId: string, sku: string, billingStrategy: BillingStrategy): Observable<null> {\n const strategy = billingStrategyToAPI(billingStrategy)\n return this.pricingService.setWholesaleProductStrategy({merchantId, sku, strategy}).pipe(map(() => null));\n }\n\n setProductVolumeCommitment(merchantId: string, sku: string, volumeCommitment: number): Observable<null> {\n return this.pricingService.setWholesaleProductVolumeCommitment({\n merchantId,\n sku,\n volumeCommitment\n }).pipe(map(() => null));\n }\n\n getPurchaseCost(merchantId: string, sku: string, quantity: number): Observable<PurchaseCost> {\n return this.pricingService.getPurchaseCost({merchantId, sku, quantity}).pipe(\n map(resp => purchaseCostFromAPI(resp))\n )\n }\n\n getMultiWholesalePrices(\n merchantId: string,\n skus: string[],\n pricingPlanId?: string,\n ): Observable<ProductPrices[]> {\n return this.billingApi.getMultiProductPricing({ merchantId, skus, pricingPlanId })\n .pipe(\n map(r => pricesFromApi(r.prices)\n ),\n );\n }\n\n upsertPricing(\n pricingPlanId: string,\n sku: string,\n pricing: PricingPlanProductPricing[],\n termCommitment: Commitment,\n strategy: BillingStrategy,\n volumeCommitment: number\n ): Observable<HttpResponse<null>> {\n const request = new UpsertWholesalePricingRequest({\n pricingPlanId,\n sku,\n pricing: (pricing || []).map(p => pricingPlanProductPricingToApi(p)),\n strategy: billingStrategyToAPI(strategy),\n termCommitment,\n volumeCommitment\n });\n return this.pricingService.upsertWholesale(request);\n }\n}\n","import {PricingPlanInterface as PricingPlanProto} from '../_internal';\nimport {BillingStrategy, billingStrategyFromAPI} from './billing-strategy';\n\nexport interface PricingPlan {\n id: string;\n name: string;\n subscriptionName?: string;\n defaultStrategy: BillingStrategy\n}\n\nexport enum Distribution {\n Retail = 'Retail',\n Wholesale = 'Wholesale',\n}\n\n\nexport function pricingPlanFromAPI(proto: PricingPlanProto): PricingPlan {\n return {\n id: proto.id,\n name: proto.name,\n defaultStrategy: billingStrategyFromAPI(proto.defaultBillingStrategy)\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {Environment, EnvironmentService} from '@vendasta/core';\nimport {Distribution, PricingPlan, pricingPlanFromAPI} from './pricing-plan';\nimport {BillingApiService, UpdatePricingPlanResponse} from '../_internal';\nimport {BillingStrategy, billingStrategyToAPI} from './billing-strategy';\n\n@Injectable({providedIn: 'root'})\nexport class PricingPlanService {\n\n constructor(\n private environmentService: EnvironmentService,\n private billingService: BillingApiService\n ) {\n }\n\n list(distribution?: Distribution): PricingPlan[] {\n const env = this.environmentService.getEnvironment();\n switch (distribution) {\n case Distribution.Retail:\n return retailPlans.get(env)\n case Distribution.Wholesale:\n return wholesalePlans.get(env)\n }\n return pricingPlans.get(env) || [];\n }\n\n isDefault(pricingPlanId: string): boolean {\n const defaultPlan = this.list().find(p => p.name === WholesalePricingPlanName.Default);\n return pricingPlanId === defaultPlan.id;\n }\n\n nameForId(pricingPlanId: string): string {\n const name = this.list().find(p => p.id === pricingPlanId).name;\n return name || null;\n }\n\n idForName(pricingPlanName: string): string {\n const pricingPlan = this.list().find(p => p.name === pricingPlanName);\n return pricingPlan ? pricingPlan.id : null;\n }\n\n idForSubscriptionName(subscriptionName: string): string {\n const pricingPlan = this.list().find(p => p.subscriptionName === subscriptionName);\n return pricingPlan ? pricingPlan.id : null;\n }\n\n setDefaultStrategy(pricingPlanId: string, strategy: BillingStrategy): Observable<UpdatePricingPlanResponse> {\n const request = {\n id: pricingPlanId,\n fieldMask: {\n paths: ['default_billing_strategy']\n },\n defaultBillingStrategy: billingStrategyToAPI(strategy),\n }\n return this.billingService.updatePricingPlan(request)\n }\n\n getMulti(pricingPlanIds: string[]): Observable<PricingPlan[]> {\n return this.billingService.getMultiPricingPlan({pricingPlanIds}).pipe(\n map(resp => resp.plans.map(p => pricingPlanFromAPI(p)))\n )\n }\n}\n\n\nenum RetailPricingPlanName {\n MSRP = 'MSRP'\n}\n\nconst demoRetailPricingPlans: PricingPlan[] = [\n {\n id: 'PP-5049b4b2-fe28-473f-96d6-84d4ea91ada9', name: RetailPricingPlanName.MSRP, subscriptionName: 'msrp',\n defaultStrategy: BillingStrategy.Invalid\n }\n];\n\n\nconst prodRetailPricingPlans: PricingPlan[] = [\n {\n id: 'PP-148b6d8c-6222-4fce-9cd2-f0587f0db563', name: RetailPricingPlanName.MSRP, subscriptionName: 'msrp',\n defaultStrategy: BillingStrategy.Invalid\n }\n];\n\nenum WholesalePricingPlanName {\n // Instant\n VBPFree = 'Free',\n VBPStarter = 'Starter',\n VBPBasic = 'Basic+',\n VBPProfessional = 'Professional+',\n VBPEnterprise = 'Enterprise+',\n VBPEnterprisePilot = 'Enterprise+ Pilot',\n VBP2Startup = 'Startup+',\n VBP2Essentials = 'Essentials+',\n VBP2Growth = 'Growth+',\n VBP2Scale = 'Scale+',\n\n // Invoiced\n BasicSubscription = 'Basic',\n ProfessionalSubscription = 'Professional',\n EnterpriseSubscription = 'Enterprise',\n EliteSubscription = 'Elite',\n PremiumSubscription = 'Premium (Legacy)',\n VBP2Premium = 'Premium',\n\n Default = 'Default'\n}\n\nconst demoWholesalePricingPlans: PricingPlan[] = [\n {\n id: 'PP-587f8f25-b278-4727-b7c4-3ce60e542c8b',\n name: WholesalePricingPlanName.VBPFree, subscriptionName: 'free_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-a5ad2825-8225-4bbe-a868-c1b2a7d2a2e3',\n name: WholesalePricingPlanName.VBPStarter, subscriptionName: 'starter_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-438ccc87-eaff-4180-ad79-f5d3d51e1bc0',\n name: WholesalePricingPlanName.VBPBasic, subscriptionName: 'vbp_basic_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-7201f892-3d44-44b8-b9db-4b23dd34d112',\n name: WholesalePricingPlanName.VBPProfessional, subscriptionName: 'vbp_professional_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-3cc1ec9f-17a8-46c8-9e79-b337e4ea651b',\n name: WholesalePricingPlanName.VBPEnterprise, subscriptionName: 'vbp_enterprise_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-7ffa4745-4ea1-4603-983b-81a1404faa3b',\n name: WholesalePricingPlanName.VBPEnterprisePilot, subscriptionName: 'vbp_enterprise_pilot_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-02895bb5-ff6b-4f37-ae1e-8473b895a59d',\n name: WholesalePricingPlanName.VBP2Startup, subscriptionName: 'vbp2_startup_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-c69f1724-d380-432f-8f50-5778da6ea250',\n name: WholesalePricingPlanName.VBP2Essentials, subscriptionName: 'vbp2_essentials_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-8abe2c53-be4a-43d5-bd2c-a8d9be1c82db',\n name: WholesalePricingPlanName.VBP2Growth, subscriptionName: 'vbp2_growth_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-0a872f89-e582-420a-90b0-c98e19b174a4',\n name: WholesalePricingPlanName.VBP2Scale, subscriptionName: 'vbp2_scale_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-7abd1cb2-317b-40d2-9fdc-d2b365d645b7',\n name: WholesalePricingPlanName.VBP2Premium, subscriptionName: 'vbp2_premium_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-a7eca7c3-84fd-4fc2-86a5-87a743f6c3d1',\n name: WholesalePricingPlanName.BasicSubscription, subscriptionName: 'basic_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-7d0053b8-fab4-407d-ae69-33c67d5314eb',\n name: WholesalePricingPlanName.ProfessionalSubscription, subscriptionName: 'professional_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-e85cdb56-2944-4fe0-9e78-a98520eb1489',\n name: WholesalePricingPlanName.EnterpriseSubscription, subscriptionName: 'enterprise_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-9a0d6430-5e73-41d2-bd3d-dc3645664bb9',\n name: WholesalePricingPlanName.EliteSubscription, subscriptionName: 'elite_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-a03a1c1e-d03e-4c77-8132-34908012a65c',\n name: WholesalePricingPlanName.PremiumSubscription, subscriptionName: 'premium_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-cf943a15-3eea-40cf-8d3e-e7ea5a5a9817',\n name: WholesalePricingPlanName.Default, subscriptionName: null,\n defaultStrategy: BillingStrategy.Invalid\n },\n];\n\nconst prodWholesalePricingPlans: PricingPlan[] = [\n {\n id: 'PP-77912c15-00af-4a56-bfc0-e8e6c27c7a53',\n name: WholesalePricingPlanName.VBPFree, subscriptionName: 'free_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-1cc75309-ddff-4d8b-aedf-88a7472e2b4e',\n name: WholesalePricingPlanName.VBPStarter, subscriptionName: 'starter_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-52f98211-bd1e-4112-88cd-e78040173198',\n name: WholesalePricingPlanName.VBPBasic, subscriptionName: 'vbp_basic_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-c278bcc6-bd5d-43e5-9ff5-a27e70b48ba9',\n name: WholesalePricingPlanName.VBPProfessional, subscriptionName: 'vbp_professional_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-4133fc94-a58a-4fcd-91cd-9ed111182e77',\n name: WholesalePricingPlanName.VBPEnterprise, subscriptionName: 'vbp_enterprise_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-dbbac61e-132f-468f-aa62-7a691b59bb74',\n name: WholesalePricingPlanName.VBPEnterprisePilot, subscriptionName: 'vbp_enterprise_pilot_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-45f8099f-d3f3-4302-83bf-bbf64f431e31',\n name: WholesalePricingPlanName.VBP2Startup, subscriptionName: 'vbp2_startup_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-d44c5a8b-f3b6-4b63-b203-8b7253060984',\n name: WholesalePricingPlanName.VBP2Essentials, subscriptionName: 'vbp2_essentials_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-c1761320-62df-41d7-8df3-008554a4b592',\n name: WholesalePricingPlanName.VBP2Growth, subscriptionName: 'vbp2_growth_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-b6607aae-606f-4fd5-84e4-c48f38b59892',\n name: WholesalePricingPlanName.VBP2Scale, subscriptionName: 'vbp2_scale_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-7375d567-8890-4cb1-930c-5673ea89acba',\n name: WholesalePricingPlanName.VBP2Premium, subscriptionName: 'vbp2_premium_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-38a06671-526b-4d28-b425-bbce3be34699',\n name: WholesalePricingPlanName.BasicSubscription, subscriptionName: 'basic_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-d9717300-f1c3-4471-8433-c3ac7baf003d',\n name: WholesalePricingPlanName.ProfessionalSubscription, subscriptionName: 'professional_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-f6a60130-878b-4a33-9a10-d5bdeac0cdef',\n name: WholesalePricingPlanName.EnterpriseSubscription, subscriptionName: 'enterprise_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-dff68124-2223-4c88-91dc-b638a3135fc5',\n name: WholesalePricingPlanName.EliteSubscription, subscriptionName: 'elite_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-15641015-560e-4cd7-977b-b1fc627b18d1',\n name: WholesalePricingPlanName.PremiumSubscription, subscriptionName: 'premium_subscription',\n defaultStrategy: BillingStrategy.Invalid\n },\n {\n id: 'PP-0e9ac148-a2d0-42d0-9250-8c42189bf432',\n name: WholesalePricingPlanName.Default, subscriptionName: null,\n defaultStrategy: BillingStrategy.Invalid\n },\n];\n\nconst pricingPlans = new Map<Environment, PricingPlan[]>([\n [Environment.DEMO, [...demoWholesalePricingPlans, ...demoRetailPricingPlans]],\n [Environment.PROD, [...prodWholesalePricingPlans, ...prodRetailPricingPlans]]\n]);\n\nconst wholesalePlans = new Map<Environment, PricingPlan[]>([\n [Environment.DEMO, [...demoWholesalePricingPlans]],\n [Environment.PROD, [...prodWholesalePricingPlans]]\n])\n\nconst retailPlans = new Map<Environment, PricingPlan[]>([\n [Environment.DEMO, [...demoRetailPricingPlans]],\n [Environment.PROD, [...prodRetailPricingPlans]]\n])\n","import { Currency, currencyFromApi } from '../pricing';\nimport { Payout as ApiPayout, PayoutStatus as ApiPayoutStatus, PayoutType as ApiPayoutType } from '../_internal';\n\nexport enum PayoutStatusType {\n NOT_SET = 0,\n PAID = 1,\n PENDING = 2,\n IN_TRANSIT = 3,\n CANCELED = 4,\n FAILED = 5,\n}\n\nexport interface PayoutStatusLabel {\n id: PayoutStatusType,\n value: string\n}\n\nconst payoutStatusLabelMap = new Map<ApiPayoutStatus, PayoutStatusLabel>([\n [ApiPayoutStatus.PAYOUT_STATUS_NOT_SET, {id: PayoutStatusType.NOT_SET, value: 'Unknown'}],\n [ApiPayoutStatus.PAYOUT_STATUS_PAID, {id: PayoutStatusType.PAID, value: 'Paid'}],\n [ApiPayoutStatus.PAYOUT_STATUS_PENDING, {id: PayoutStatusType.PENDING, value: 'Pending'}],\n [ApiPayoutStatus.PAYOUT_STATUS_IN_TRANSIT, {id: PayoutStatusType.IN_TRANSIT, value: 'In Transit'}],\n [ApiPayoutStatus.PAYOUT_STATUS_CANCELED, {id: PayoutStatusType.CANCELED, value: 'Canceled'}],\n [ApiPayoutStatus.PAYOUT_STATUS_FAILED, {id: PayoutStatusType.FAILED, value: 'Failed'}],\n]);\n\nexport function convertApiPayoutStatus(t: ApiPayoutStatus): PayoutStatusLabel {\n return payoutStatusLabelMap.get(t)\n}\n\nexport enum PayoutTypeType {\n NOT_SET = 0,\n BANK_ACCOUNT = 1,\n CARD = 2,\n}\n\nexport interface PayoutTypeLabel {\n id: PayoutTypeType,\n value: string,\n}\n\nconst payoutTypeLabelMap = new Map<ApiPayoutType, PayoutTypeLabel>([\n [ApiPayoutType.PAYOUT_TYPE_NOT_SET, {id: PayoutTypeType.NOT_SET, value: 'Unknown'}],\n [ApiPayoutType.PAYOUT_TYPE_BANK_ACCOUNT, {id: PayoutTypeType.BANK_ACCOUNT, value: 'Bank Account'}],\n [ApiPayoutType.PAYOUT_TYPE_CARD, {id: PayoutTypeType.CARD, value: 'Card'}],\n]);\n\nexport function convertApiPayoutType(t: ApiPayoutType): PayoutTypeLabel {\n return payoutTypeLabelMap.get(t)\n}\n\nexport interface Payout {\n id: string;\n arrivalDate: Date;\n amount: number;\n status: PayoutStatusLabel;\n type: PayoutTypeLabel;\n currency: Currency;\n lastFourDigits: string;\n bankName: string;\n bankId: string\n}\n\nexport function payoutFromApi(r: ApiPayout): Payout {\n return {\n id: r.id,\n arrivalDate: r.arrivalDate ? new Date(r.arrivalDate) : null,\n amount: r.amount,\n type: convertApiPayoutType(r.type),\n status: convertApiPayoutStatus(r.status),\n currency: currencyFromApi(r.currency),\n lastFourDigits: r.lastFourDigits,\n bankName: r.bankName,\n bankId: r.bankId,\n } as Payout;\n}\n\n","export enum SortDirection {\n Ascending = 0,\n Descending\n}\n","export class PagedResponse<T> {\n results: T[];\n nextCursor: string;\n hasMore: boolean;\n\n constructor(results: T[], nextCursor: string, hasMore: boolean) {\n this.results = results;\n this.nextCursor = nextCursor;\n this.hasMore = hasMore;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport {\n BankReconciliationApiService,\n DateRange,\n ListPayoutsRequest,\n ListPayoutsRequestFilters,\n ListPayoutsResponse,\n PagedRequestOptions,\n ReconcilePayoutRequest,\n ReconcilePayoutResponse,\n} from '../_internal';\nimport { Payout, payoutFromApi } from './payout';\n\n@Injectable({providedIn: 'root'})\nexport class BankReconciliationService {\n constructor( private apiService: BankReconciliationApiService ) { }\n\n reconcilePayout(bankReconciliationId: string, payoutId: string): Observable<string> {\n return this.apiService.reconcilePayout(new ReconcilePayoutRequest({\n payoutId: payoutId,\n bankReconciliationId: bankReconciliationId,\n })).pipe(\n map((resp: ReconcilePayoutResponse) => resp ? resp.pipelineId : '')\n )\n }\n\n listPayouts(arrivalDateStart: Date, arrivalDateEnd: Date, pageSize: number, cursor: string): Observable<PagedResponse<Payout>> {\n return this.apiService\n .listPayouts(new ListPayoutsRequest({\n filters: new ListPayoutsRequestFilters({\n arrivalDateRange: new DateRange ({\n start: arrivalDateStart,\n end: arrivalDateEnd,\n })\n }),\n pagingOptions: new PagedRequestOptions({\n cursor: cursor,\n pageSize: pageSize,\n })\n }))\n .pipe(\n map((resp: ListPayoutsResponse) => {\n if (!resp) {\n return new PagedResponse([], '', false);\n }\n const payouts = (resp.payouts || []).map((pbPayout) => payoutFromApi(pbPayout));\n\n let nextCursor = '';\n let hasMore = false;\n if (resp.pagingMetadata) {\n nextCursor = resp.pagingMetadata.nextCursor;\n hasMore = resp.pagingMetadata.hasMore;\n }\n return new PagedResponse(payouts, nextCursor, hasMore);\n }),\n )\n }\n}\n","import {BillableItemInterface, BillableItemCustomerAddressInterface} from '../_internal/interfaces';\nimport {Frequency, frequencyFromApi} from '../pricing';\n\nexport interface ListBillableItemsFilter {\n skus?: string[];\n merchantId?: string;\n customerId?: string;\n}\n\nexport interface ListSubscriptionsFilterHttp {\n skus?: string[];\n merchantId?: string;\n customerId?: string;\n}\n\nexport interface CustomerAddress {\n address?: string;\n city?: string;\n state?: string;\n zip?: string;\n country?: string;\n}\n\nexport interface BillableItem {\n merchantId: string;\n sku: string;\n productName: string;\n customerId: string;\n customerName: string;\n orderId: string;\n expiry: Date;\n billingStart: Date;\n created: Date;\n updated: Date;\n frequency: Frequency;\n retailFrequency: Frequency;\n nextRenewal: Date;\n nextRetailRenewal: Date;\n customerAddress: CustomerAddress;\n customUnitPrice: number;\n retailUnitPrice: number;\n}\n\nfunction customerAddressFromApi(apiAddress: BillableItemCustomerAddressInterface): CustomerAddress {\n return {\n address: apiAddress ? (apiAddress.address || '') : '',\n city: apiAddress ? (apiAddress.city || '') : '',\n state: apiAddress ? (apiAddress.state || '') : '',\n zip: apiAddress ? (apiAddress.zip || '') : '',\n country: apiAddress ? (apiAddress.country || '') : '',\n };\n}\n\nexport function billableItemFromApi(apiItem: BillableItemInterface): BillableItem {\n const zeroDate = new Date('0001-01-01T00:00:00Z').valueOf();\n\n return {\n merchantId: apiItem.merchantId || '',\n sku: apiItem.sku || '',\n productName: apiItem.productName || '',\n customerId: apiItem.customerId || '',\n customerName: apiItem.customerName || '',\n orderId: apiItem.orderId || '',\n expiry: apiItem.expiry.valueOf() !== zeroDate ? new Date(apiItem.expiry) : null,\n billingStart: apiItem.billingStart.valueOf() !== zeroDate ? new Date(apiItem.billingStart) : null,\n created: apiItem.created.valueOf() !== zeroDate ? new Date(apiItem.created) : null,\n updated: apiItem.updated.valueOf() !== zeroDate ? new Date(apiItem.updated) : null,\n frequency: frequencyFromApi(apiItem.frequency),\n retailFrequency: frequencyFromApi(apiItem.retailFrequency),\n nextRenewal: apiItem.nextRenewal.valueOf() !== zeroDate ? new Date(apiItem.nextRenewal) : null,\n nextRetailRenewal: apiItem.nextRetailRenewal.valueOf() !== zeroDate ? new Date(apiItem.nextRetailRenewal) : null,\n customerAddress: customerAddressFromApi(apiItem.customerAddress),\n customUnitPrice: apiItem.customUnitPrice || 0,\n retailUnitPrice: apiItem.retailUnitPrice || 0\n };\n}\n\n\nexport function listSubscriptionsFiltersToHTTPJson(filters: ListBillableItemsFilter): ListSubscriptionsFilterHttp {\n return {\n merchantId: filters.merchantId,\n customerId: filters.customerId,\n skus: filters.skus,\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { share } from 'rxjs/operators';\nimport { HostService } from '../_generated';\nimport { ListBillableItemsFilter, listSubscriptionsFiltersToHTTPJson } from './billable-item';\n\n@Injectable({providedIn: 'root'})\nexport class SubscriptionService {\n\n constructor(\n private hostService: HostService,\n private http: HttpClient\n ) {\n }\n\n exportCSV(filters: ListBillableItemsFilter): Observable<Blob> {\n const jsonFilters = listSubscriptionsFiltersToHTTPJson(filters)\n return this.http.post(\n `${this.hostService.httpsHostWithScheme()}/subscription/export-csv`, {filters: jsonFilters},\n {\n observe: 'body',\n responseType: 'blob',\n withCredentials: true,\n }\n ).pipe(\n share(),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EnvironmentService, Environment } from '@vendasta/core';\n\n@Injectable({providedIn: 'root'})\nexport class BillingHostService {\n\n private billingHosts: Map<Environment, string> = new Map([\n [Environment.LOCAL, 'http://localhost:8088'],\n [Environment.DEMO, 'https://vbilling-demo.appspot.com'],\n [Environment.PROD, 'https://vbilling-prod.appspot.com']\n ]);\n private microserviceHosts: Map<Environment, string> = new Map([\n [Environment.DEMO, 'https://billing-api-demo.vendasta-internal.com'],\n [Environment.PROD, 'https://billing-api-prod.vendasta-internal.com']\n ]);\n\n private env: Environment;\n\n constructor(private environment: EnvironmentService) {\n }\n\n get billingHost(): string {\n if (!this.env) {\n this.env = this.environment.getEnvironment();\n }\n\n return this.billingHosts.get(this.env);\n }\n\n get microserviceHost(): string {\n if (!this.env) {\n this.env = this.environment.getEnvironment();\n }\n\n return this.microserviceHosts.get(this.env);\n }\n\n get constructInvoiceRoute(): string {\n return `${this.billingHost}/internalApi/v1/invoice/construct/`;\n }\n}\n","import { throwError as observableThrowError, Observable } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nexport function handleCsvError(error: HttpErrorResponse): Observable<never> {\n if (error.error instanceof ErrorEvent) {\n console.error(`An error occurred:`, error.error.message);\n } else {\n console.error(\n `Server returned ${error.message}`\n );\n }\n\n return observableThrowError(`Unable to download csv`);\n}\n\nexport function handleFileUploadError(error: HttpErrorResponse): Observable<never> {\n if (error.error instanceof ErrorEvent) {\n console.error(`An error occurred:`, error.error.message);\n } else {\n console.error(\n `Server returned ${error.message}`\n );\n }\n\n return observableThrowError(`Unable to upload file`);\n}\n","/* Api service for billing's http endpoints */\n\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { share, catchError } from 'rxjs/operators';\nimport { HostService } from '../_generated';\nimport { DownloadCsvRequestInterface } from './revenue.interfaces';\nimport { handleCsvError } from '../http-shared/error-handlers';\n\n@Injectable({providedIn: 'root'})\nexport class RevenueApiService {\n constructor(private hostService: HostService, private http: HttpClient ) { }\n\n downloadCsv(r: DownloadCsvRequestInterface): Observable<Blob> {\n const queryParams = `?filename=${r.filename}`;\n return this.http.get(\n this.hostService.httpsHostWithScheme() + '/revenue-csv' + queryParams,\n this.apiOptions()\n ).pipe(\n share(),\n catchError(handleCsvError)\n );\n }\n\n private apiOptions(): { responseType: 'blob', withCredentials: boolean } {\n return {\n responseType: 'blob',\n withCredentials: true\n }\n }\n}\n","/* Api service for billing's http endpoints */\n\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { HostService } from '../_generated';\nimport { DownloadMerchantReportCsvRequest } from './merchant-report.interfaces';\nimport { Observable } from 'rxjs';\nimport { share, catchError } from 'rxjs/operators';\nimport { handleCsvError } from '../http-shared/error-handlers';\n\n@Injectable({providedIn: 'root'})\nexport class MerchantReportApiService {\n constructor(private hostService: HostService, private http: HttpClient ) { }\n\n downloadCsv(r: DownloadMerchantReportCsvRequest): Observable<Blob> {\n const queryParams = `?merchantID=${r.merchantId}&year=${r.year}&month=${r.month}`;\n return this.http.get(\n this.hostService.httpsHostWithScheme() + '/billing-report/get' + queryParams,\n this.apiOptions()\n ).pipe(\n share(),\n catchError(handleCsvError)\n );\n }\n\n generateCsv(r: DownloadMerchantReportCsvRequest): Observable<Blob> {\n const queryParams = `?merchantID=${r.merchantId}&year=${r.year}&month=${r.month}`;\n return this.http.get(\n this.hostService.httpsHostWithScheme() + '/billing-report/generate' + queryParams,\n this.apiOptions()\n ).pipe(\n share(),\n catchError(handleCsvError)\n );\n }\n\n private apiOptions(): { responseType: 'blob', withCredentials: boolean } {\n return {\n responseType: 'blob',\n withCredentials: true\n }\n }\n}\n","import { PurchaseStatus as PurchaseStatusApi } from '../_internal';\n\nexport enum PurchaseStatus {\n Unset = 'UNSET',\n Pending = 'PENDING',\n Due = 'DUE',\n Success = 'SUCCESS',\n Dunning = 'DUNNING',\n Failed = 'FAILED',\n}\n\n\n\nexport function purchaseStatusFromApi(psApi: PurchaseStatusApi): PurchaseStatus {\n switch (psApi) {\n case PurchaseStatusApi.PURCHASE_STATUS_PENDING:\n return PurchaseStatus.Pending;\n case PurchaseStatusApi.PURCHASE_STATUS_DUE:\n return PurchaseStatus.Due;\n case PurchaseStatusApi.PURCHASE_STATUS_SUCCESS:\n return PurchaseStatus.Success;\n case PurchaseStatusApi.PURCHASE_STATUS_DUNNING:\n return PurchaseStatus.Dunning;\n case PurchaseStatusApi.PURCHASE_STATUS_FAILED:\n return PurchaseStatus.Failed;\n }\n return PurchaseStatus.Unset\n}\n","import { AppliedDiscount, appliedDiscountFromApi } from '../applied_discount';\nimport { AppliedTaxRate } from '../invoice/invoice';\nimport {\n BillingStrategy,\n billingStrategyFromAPI,\n Currency,\n currencyFromApi,\n} from '../pricing';\nimport {\n AppliedCreditInterface,\n AppliedTaxRateInterface,\n CreditType,\n Currency as CurrencyApi,\n PurchaseInterface,\n PurchaseItemInterface,\n} from '../_internal';\nimport { PurchaseStatus, purchaseStatusFromApi } from './purchase_status';\n\nexport interface Purchase {\n merchantId: string;\n timestamp: Date;\n purchaseId: string;\n total: number;\n currency: Currency;\n renewal: boolean;\n items: PurchaseItem[];\n billingStrategy: BillingStrategy;\n isDunning: boolean;\n dunningAttempt: number;\n voided: Date;\n paid: boolean;\n status: PurchaseStatus;\n creditAmount: number;\n appliedCredits: AppliedCredit[];\n taxAmount: number;\n appliedTaxRates: AppliedTaxRate[];\n}\n\nexport enum AppliedCreditType {\n CREDIT_TYPE_CREDIT_NOTE = 'Credit note',\n CREDIT_TYPE_PROMOTIONAL = 'Promotional',\n CREDIT_TYPE_UNSET = '',\n}\n\nexport interface AppliedCredit {\n appliedAmount: number;\n referenceId: string;\n referenceType: AppliedCreditType;\n}\n\nexport interface PurchaseItem {\n sku: string;\n description: string;\n amount: number;\n orderId: string;\n customerId: string;\n discountAmount: number;\n total: number;\n currency?: Currency;\n appliedDiscounts: AppliedDiscount[];\n taxAmount: number;\n appliedTaxRates: AppliedTaxRate[];\n setupFee?: number;\n\n merchantId: string;\n purchaseDay: string;\n purchaseId: string;\n}\n\nexport function purchaseFromApi(pApi: PurchaseInterface): Purchase {\n return {\n merchantId: pApi.merchantId || '',\n timestamp: pApi.timestamp ? new Date(pApi.timestamp) : null,\n purchaseId: pApi.purchaseId || '',\n total: pApi.total || 0,\n currency: pApi.currency ? currencyFromApi(pApi.currency) : Currency.USD,\n renewal: pApi.renewal || false,\n items: pApi.items ? pApi.items.map(p => purchaseItemFromApi(p)) : [],\n billingStrategy: billingStrategyFromAPI(pApi.billingStrategy),\n isDunning: pApi.isDunning || false,\n dunningAttempt: pApi.dunningAttempt || 0,\n voided: pApi.voided ? new Date(pApi.voided) : null,\n paid: pApi.paid || false,\n status: purchaseStatusFromApi(pApi.status),\n creditAmount: pApi.creditAmount || 0,\n appliedCredits: pApi.appliedCredits ? pApi.appliedCredits.map(ac => appliedCreditFromAPI(ac)) : [],\n taxAmount: pApi.taxAmount || 0,\n appliedTaxRates: (pApi.appliedTaxRates || []).map((at) => appliedTaxRateFromAPI(at))\n }\n}\n\nexport function purchaseItemFromApi(pApi: PurchaseItemInterface, currencyApi?: CurrencyApi): PurchaseItem {\n let currency;\n if (currencyApi !== undefined) {\n currency = currencyFromApi(currencyApi);\n }\n return {\n sku: pApi.sku || '',\n description: pApi.description || null,\n amount: pApi.amount || 0,\n orderId: pApi.orderId || '',\n customerId: pApi.customerId || '',\n discountAmount: pApi.discountAmount || 0,\n total: pApi.total || 0,\n currency: currency || Currency.USD,\n appliedDiscounts: pApi.appliedDiscounts ? pApi.appliedDiscounts.map(p => appliedDiscountFromApi(p)) : [],\n merchantId: pApi.merchantId,\n purchaseDay: pApi.day,\n purchaseId: pApi.purchaseId,\n taxAmount: pApi.taxAmount || 0,\n appliedTaxRates: (pApi.appliedTaxRates || []).map((at) => appliedTaxRateFromAPI(at)),\n setupFee: pApi.setupFee || 0\n }\n}\n\nexport function appliedCreditFromAPI(ac: AppliedCreditInterface): AppliedCredit {\n return {\n appliedAmount: ac.appliedAmount,\n referenceId: ac.referenceId,\n referenceType: appliedCreditTypeFromAPI(ac.referenceType)\n }\n}\n\nexport function appliedCreditTypeFromAPI(adt: CreditType): AppliedCreditType {\n switch (adt) {\n case CreditType.CREDIT_TYPE_CREDIT_NOTE:\n return AppliedCreditType.CREDIT_TYPE_CREDIT_NOTE;\n case CreditType.CREDIT_TYPE_PROMOTIONAL:\n return AppliedCreditType.CREDIT_TYPE_PROMOTIONAL\n }\n return AppliedCreditType.CREDIT_TYPE_UNSET;\n}\n\nexport function appliedTaxRateFromAPI(at: AppliedTaxRateInterface): AppliedTaxRate {\n return {\n amount: at.amount || 0,\n name: at.name || '',\n percentage: at.percentage || 0,\n taxRateId: at.taxRateId || '',\n }\n}\n","import {CustomerSummaryInterface} from '../_internal/interfaces';\nimport {Currency, currencyFromApi} from '../pricing';\n\n\nexport interface CustomerSummary {\n customerId: string;\n purchaseItemQuantity: number;\n purchaseItemTotal: number;\n currency: Currency;\n}\n\n\nexport function customerSummaryFromApi(csApi: CustomerSummaryInterface): CustomerSummary {\n let currency;\n if (csApi.currency !== undefined) {\n currency = currencyFromApi(csApi.currency);\n }\n return {\n customerId: csApi.customerId || '',\n purchaseItemQuantity: csApi.purchaseItemQuantity || 0,\n purchaseItemTotal: csApi.purchaseItemTotal || 0,\n currency: currency || Currency.USD\n }\n};\n","export class Dimension {\n dimensionId: string;\n name: string;\n\n constructor(id: string) {\n this.dimensionId = id;\n this.name = DimensionNameFromId[id] || '';\n }\n}\n\nconst DimensionNameFromId: {[id: string]: string} = {\n 'existing_enterprise': 'Existing Enterprise',\n 'new_enterprise': 'New Enterprise',\n 'agency': 'Agency',\n 'CP_unassisted': 'Channel Partners, Unassisted (PLG)',\n 'CP_growth_MT': 'Channel Partners, Growth (Medium-Touch)',\n 'CP_growth_HT': 'Channel Partners, Growth (High-Touch)',\n};\n\nexport const Agency = new Dimension('agency');\nexport const NewEnterprise = new Dimension('new_enterprise');\nexport const ExistingEnterprise = new Dimension('existing_enterprise');\nexport const ChannelPartnersUnassistedPLG = new Dimension('CP_unassisted');\nexport const ChannelPartnersGrowthMediumTouch = new Dimension('CP_growth_MT');\nexport const ChannelPartnersGrowthHighTouch = new Dimension('CP_growth_HT');\n\n\n","import { ContractInterface } from '../_internal';\nimport { Currency, currencyFromApi } from '../pricing';\nimport { Dimension } from './dimension';\n\nexport interface Contract {\n merchantId: string;\n netD: number;\n created: Date;\n subscriptionId: string;\n dimension: Dimension;\n currency: Currency\n signed: Date;\n end: Date;\n activated: Date;\n modified: Date;\n verified: Date;\n status: string;\n creditLimit: number;\n pricingPlanId: string;\n}\n\nexport function contractFromApi(cApi: ContractInterface): Contract {\n return {\n merchantId: cApi.merchantId || '',\n netD: cApi.netD || 0,\n created: cApi.created || null,\n subscriptionId: cApi.subscriptionId || '',\n dimension: new Dimension(cApi.dimension),\n currency: currencyFromApi(cApi.currency),\n signed: cApi.signed || null,\n end: cApi.end || null,\n activated: cApi.activated || null,\n modified: cApi.modified || null,\n verified: cApi.verified || null,\n status: cApi.status || '',\n creditLimit: cApi.creditLimit || 0,\n pricingPlanId: cApi.pricingPlanId || '',\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {ContractApiService, UpdateContractRequestMutationInterface} from '../_internal';\nimport {Contract, contractFromApi} from './contract';\n\n@Injectable({providedIn: 'root'})\nexport class ContractService {\n constructor(private api: ContractApiService) {}\n\n /**\n * Get a contract by its identifier.\n *\n * @param merchantId is the unique identifier of the merchant.\n * @return An contract observable.\n */\n public get(merchantId: string): Observable<Contract> {\n return this.api.get({merchantId}).pipe(map(c => contractFromApi(c.contract)))\n }\n\n /**\n * Update a contract with a new value.\n *\n * @param merchantId is a string that identifies the contract to update.\n * @param mutations is a list of mutations to apply to the contract.\n * Each mutation object should only contain one value.\n * @return An observable of the update contract.\n */\n public update(merchantId: string, mutations: UpdateContractRequestMutationInterface[]): Observable<Contract> {\n return this.api.update({merchantId, mutations}).pipe(map(c => contractFromApi(c.contract)))\n }\n}\n","import {UpdateContractRequestMutationInterface} from '../_internal';\n\nexport const setNetD = (netD: number): UpdateContractRequestMutationInterface => ({netD});\nexport const setCurrencyCode = (currencyCode: string): UpdateContractRequestMutationInterface => ({currencyCode});\nexport const setStatus = (status: string): UpdateContractRequestMutationInterface => ({status});\nexport const setDimension = (dimension: string): UpdateContractRequestMutationInterface => ({dimension});\nexport const setSigned = (signed: Date): UpdateContractRequestMutationInterface => ({signed});\nexport const setActivated = (activated: Date): UpdateContractRequestMutationInterface => ({activated});\nexport const setEnd = (end: Date): UpdateContractRequestMutationInterface => ({end});\nexport const setModified = (modified: Date): UpdateContractRequestMutationInterface => ({modified});\nexport const setCreditLimit = (creditLimit: number): UpdateContractRequestMutationInterface => ({creditLimit});\nexport const setSubscriptionId = (subscriptionId: string): UpdateContractRequestMutationInterface => ({subscriptionId});\n","import { ProductInterface } from '../_internal';\n\nexport interface Product {\n name: string;\n sku: string;\n iconUrl: string;\n hasPricingOverride: boolean;\n hasDiscount: boolean;\n}\n\nexport function productFromApi(apiProduct: ProductInterface): Product {\n return {\n name: apiProduct.name || '',\n sku: apiProduct.sku || '',\n iconUrl: apiProduct.iconUrl || '',\n hasPricingOverride: apiProduct.hasPricingOverride || false,\n hasDiscount: apiProduct.hasDiscount || false\n };\n}\n","import { ListProductsRequestListProductsFiltersInterface, ProductType as ApiProductType } from '../_internal';\n\nexport interface ListProductsFilter {\n hasDiscount?: boolean;\n hasPricingOverride?: boolean;\n skus?: string[];\n productType?: ProductType[];\n}\n\nexport enum ProductType {\n Invalid,\n Standard,\n Vendasta,\n Subscription,\n Fee,\n PartnerSupportSales,\n};\n\nexport function listProductsFilterToApi(filter: ListProductsFilter): ListProductsRequestListProductsFiltersInterface {\n return {\n ...filter,\n productType: (filter.productType || []).map(pt => productTypeToApi(pt))\n }\n}\n\nfunction productTypeToApi(productType: ProductType): ApiProductType {\n switch (productType) {\n case ProductType.Standard:\n return ApiProductType.PRODUCT_TYPE_STANDARD_PRODUCT;\n case ProductType.Vendasta:\n return ApiProductType.PRODUCT_TYPE_VENDASTA_PRODUCT;\n case ProductType.Subscription:\n return ApiProductType.PRODUCT_TYPE_SUBSCRIPTION;\n case ProductType.Fee:\n return ApiProductType.PRODUCT_TYPE_FEE;\n case ProductType.PartnerSupportSales:\n return ApiProductType.PRODUCT_TYPE_PARTNER_SUPPORT_SALES;\n }\n return ApiProductType.PRODUCT_TYPE_INVALID;\n}\n","import { Injectable } from '@angular/core';\nimport { BillingApiService } from './_internal/billing.api.service';\nimport {\n GenerateVendorReportRequest,\n GetPurchaseCostRequest,\n GetPurchaseCostResponse,\n GetRevenueStatsRequest,\n} from './_internal/objects/api';\nimport {\n GetBillableItemRequest,\n ListBillableItemsRequest,\n} from './_internal/objects/billable-item';\nimport {\n PagedRequestOptions,\n} from './_internal/objects/common';\nimport {\n ListMerchantBillingReportsRequest,\n} from './_internal/objects/merchant-report';\nimport {\n ListContractsRequest,\n} from './_internal/objects/contract';\nimport {\n GetMultiCustomerSummariesRequest,\n} from './_internal/objects/customer-summary';\nimport {\n BillingStrategy,\n billingStrategyFromAPI,\n billingStrategyToAPI,\n ListPricingPlanProductFilter,\n PricingPlanProduct,\n pricingPlanProductFromApi,\n} from './pricing';\nimport {\n CreatePricingPlanProductRequest,\n DeletePricingPlanProductRequest,\n GetPricingPlanProductRequest,\n ListPricingPlanProductsRequest,\n UpdatePricingPlanProductRequest,\n} from './_internal/objects/pricing-plan-product';\nimport {\n GetMultiProductRequest,\n GetMultiProductResponse,\n ListProductsRequest\n} from './_internal/objects/product';\nimport {\n ListPurchaseItemsRequestListPurchaseItemsFilters,\n ListPurchaseRequest,\n RetryPurchaseRequest,\n VoidPurchaseRequest,\n} from './_internal/objects/purchase';\nimport {\n CanCreateSubscriptionsResponse,\n CanCreateSubscriptionsRequest,\n ChangeFrequencyRequest,\n ChangeRenewalDateRequest,\n ChangeCustomUnitPriceRequest,\n} from './_internal/objects/subscription'\nimport { MerchantReportStatus } from './_internal/enums/merchant-report.enum';\nimport { Observable } from 'rxjs';\nimport { map, mapTo } from 'rxjs/operators';\nimport { Currency } from './_internal/enums/currency.enum';\nimport { RevenueApiService } from './revenue/revenue.service';\nimport { MerchantReportApiService } from './merchant-report/merchant-report.service';\nimport { MerchantReport } from './merchant-report/merchant-report';\nimport {HttpResponse} from '@angular/common/http';\nimport {ProductPricing, productPricingFromApi} from './pricing/product-pricing';\nimport {PagedResponse} from './core/paged-response';\nimport { Frequency, frequencyToApi } from './pricing/frequency';\nimport { Commitment as CommitmentApi } from './_internal/objects/commitment';\nimport { Commitment } from './pricing/commitment';\nimport { CurrencyPricingMap, currencyPricingMapToApi } from './pricing/pricing-plan-product';\nimport { FieldMask } from './_internal/objects/field-mask';\nimport { PurchaseApiService } from './_internal/purchase.api.service';\nimport { Purchase, purchaseFromApi, PurchaseItem, purchaseItemFromApi } from './purchase/purchase';\nimport { ListPurchaseFilter } from './purchase/list-purchases';\nimport { VendorApiService } from './_internal/vendor.api.service';\nimport { CustomerSummary, customerSummaryFromApi } from './customer_summary/customer-summary';\nimport { Contract, contractFromApi } from './contract';\nimport { Product, productFromApi } from './product/product';\nimport { ListProductsFilter, listProductsFilterToApi } from './product/list-products';\nimport { BillableItem, billableItemFromApi, ListBillableItemsFilter } from './billable-item/billable-item';\nimport { PricingApiService } from './_internal/pricing.api.service';\nimport { CanCreateSubscriptionsItem } from './subscription';\n\n@Injectable({providedIn: 'root'})\nexport class BillingService {\n constructor(\n private billingApi: BillingApiService,\n private revenueApi: RevenueApiService,\n private merchantReportApi: MerchantReportApiService,\n private pricingApi: PricingApiService,\n private purchaseApi: PurchaseApiService,\n private vendorApi: VendorApiService,\n ) { }\n\n /** deprecated */\n getPurchaseCost(merchantId: string, sku: string, quantity: number): Observable<GetPurchaseCostResponse> {\n const req = new GetPurchaseCostRequest({\n merchantId: merchantId,\n sku: sku,\n quantity: quantity,\n });\n return this.billingApi.getPurchaseCost(req).pipe(\n map(response => {\n if (!response.currency) {\n response.currency = Currency.USD;\n }\n return response;\n }),\n );\n }\n\n /** deprecated: Use canCreateSubscriptionsWithFrequencies instead. */\n canCreateSubscriptions(\n merchantId: string,\n skus: { [sku: string]: number }\n ): Observable<CanCreateSubscriptionsResponse> {\n const req = new CanCreateSubscriptionsRequest({\n merchantId: merchantId,\n skus: skus,\n });\n return this.billingApi.canCreateSubscriptions(req);\n }\n\n canCreateSubscriptionsWithFrequencies(\n merchantId: string,\n items: CanCreateSubscriptionsItem[]\n ): Observable<CanCreateSubscriptionsResponse> {\n const req = new CanCreateSubscriptionsRequest({\n merchantId: merchantId,\n items: items && items.map(item => {\n if (!item) {\n return null;\n }\n return {\n sku: item.sku,\n frequency: frequencyToApi(item.frequency),\n quantity: item.quantity || 0,\n };\n }),\n });\n return this.billingApi.canCreateSubscriptions(req);\n }\n\n downloadRevenueCsv(filename: string): Observable<Blob> {\n return this.revenueApi.downloadCsv({ filename });\n }\n\n downloadBillingReportCsv(merchantId: string, year: number, month: number): Observable<Blob> {\n return this.merchantReportApi.downloadCsv({ merchantId, year, month });\n }\n\n generateBillingReportCsv(merchantId: string, year: number, month: number): Observable<Blob> {\n return this.merchantReportApi.generateCsv({ merchantId, year, month });\n }\n\n listMerchantBillingReports(\n merchantId: string,\n cursor: string,\n pageSize: number,\n ): Observable<PagedResponse<MerchantReport>> {\n const req = new ListMerchantBillingReportsRequest({\n merchantId: merchantId,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.billingApi.listMerchantBillingReports(req).pipe(\n map(resp => {\n const reports = (resp.reports || []).map(r => {\n return {\n merchantId: r.merchantId,\n year: r.year,\n month: r.month,\n created: r.created,\n status: MerchantReportStatus[r.status || 0],\n } as MerchantReport;\n });\n return new PagedResponse<MerchantReport>(reports, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);\n }),\n );\n }\n\n canBillCreateSnapshot(merchantId: string): Observable<HttpResponse<null>> {\n return this.billingApi.canBillItem({ merchantId: merchantId, sku: 'ST' });\n }\n\n canBillRefreshSnapshot(merchantId: string): Observable<HttpResponse<null>> {\n return this.billingApi.canBillItem({ merchantId: merchantId, sku: 'snapshotreportrefresh' });\n }\n\n canBillItem(merchantId: string, sku: string): Observable<boolean> {\n return this.billingApi.canBillItem({ merchantId: merchantId, sku: sku }).pipe(map(response => response.ok));\n }\n\n createPricingPlanProduct(\n pricingPlanId: string,\n sku: string,\n frequency: Frequency,\n pricing: CurrencyPricingMap,\n commitment: Commitment,\n strategy: BillingStrategy,\n volumeCommitment: number\n ): Observable<boolean> {\n const request = new CreatePricingPlanProductRequest({ pricingPlanId, sku, volumeCommitment });\n request.frequency = frequencyToApi(frequency);\n request.pricing = currencyPricingMapToApi(pricing);\n request.commitment = new CommitmentApi(commitment);\n request.strategy = billingStrategyToAPI(strategy);\n return this.billingApi.createPricingPlanProduct(request).pipe(mapTo(true));\n }\n\n updatePricingPlanProduct(\n pricingPlanId: string,\n sku: string,\n {\n frequency,\n pricing,\n commitment,\n strategy,\n volumeCommitment\n }: {\n frequency?: Frequency;\n pricing?: CurrencyPricingMap;\n commitment?: Commitment;\n strategy?: BillingStrategy;\n volumeCommitment?: number;\n },\n ): Observable<boolean> {\n const fieldMask = new FieldMask({ paths: [] });\n const request = new UpdatePricingPlanProductRequest({ pricingPlanId, sku });\n\n if (frequency !== null) {\n request.frequency = frequencyToApi(frequency);\n fieldMask.paths.push('frequency');\n }\n if (pricing !== null) {\n request.pricing = currencyPricingMapToApi(pricing);\n fieldMask.paths.push('pricing');\n }\n if (commitment !== null) {\n request.commitment = new CommitmentApi(commitment);\n fieldMask.paths.push('commitment');\n }\n if (strategy !== null) {\n request.strategy = billingStrategyToAPI(strategy);\n fieldMask.paths.push('strategy');\n }\n if (volumeCommitment !== null) {\n request.volumeCommitment = volumeCommitment;\n fieldMask.paths.push('volumeCommitment');\n }\n return this.billingApi.updatePricingPlanProduct(request).pipe(mapTo(true));\n }\n\n deletePricingPlanProduct(pricingPlanId: string, sku: string): Observable<boolean> {\n const request = new DeletePricingPlanProductRequest({ pricingPlanId, sku });\n return this.billingApi.deletePricingPlanProduct(request).pipe(mapTo(true));\n }\n\n /** deprecated - Use getMultiWholesalePrices from the WholesalePricingService */\n getMultiProductPricing(\n merchantId: string,\n skus: string[],\n pricingPlanId?: string,\n ): Observable<{ [sku: string]: ProductPricing }> {\n return this.billingApi.getMultiProductPricing({ merchantId, skus, pricingPlanId }).pipe(\n map(r => {\n const productPricesApi = r.productPrices || {};\n const productPricings = {};\n for (const k of Object.keys(productPricesApi)) {\n const productPricingResponse = productPricesApi[k];\n productPricings[k] = productPricingFromApi(productPricingResponse);\n }\n return productPricings;\n }),\n );\n }\n\n /** deprecated - Use getMultiRetailPrices from the RetailPricingService */\n getMultiRetailPricing(\n merchantId: string,\n currency: Currency,\n skus: string[],\n groupId?: string,\n ): Observable<{ [sku: string]: ProductPricing }> {\n const requestGroupId: string = groupId === undefined ? '' : groupId;\n return this.pricingApi.getMultiRetail({ merchantId, currency, skus, groupId: requestGroupId }).pipe(\n map(r => {\n const retailPricesApi = r.productPrices || {};\n const retailPricings = {};\n for (const k of Object.keys(retailPricesApi)) {\n const retailPricingResponse = retailPricesApi[k]\n retailPricings[k] = productPricingFromApi(retailPricingResponse)\n }\n return retailPricings;\n }),\n );\n }\n\n listPricingPlanProducts(\n filters: ListPricingPlanProductFilter,\n cursor: string,\n pageSize: number,\n ): Observable<PagedResponse<PricingPlanProduct>> {\n const req = new ListPricingPlanProductsRequest({\n filters: filters,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.billingApi.listPricingPlanProducts(req).pipe(\n map(response => {\n const products = (response.products || []).map(p => pricingPlanProductFromApi(p));\n return new PagedResponse(products, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n getPricingPlanProduct(pricingPlanId: string, sku: string): Observable<PricingPlanProduct> {\n const req = new GetPricingPlanProductRequest({ pricingPlanId, sku });\n return this.billingApi.getPricingPlanProduct(req).pipe(\n map(resp => {\n const ppp: PricingPlanProduct = pricingPlanProductFromApi(resp.pricingPlanProduct);\n ppp.defaultStrategy = billingStrategyFromAPI(resp.pricingPlanDefaultStrategy);\n return ppp;\n })\n );\n }\n\n listPurchases(filters: ListPurchaseFilter, cursor: string, pageSize: number): Observable<PagedResponse<Purchase>> {\n const req = new ListPurchaseRequest({\n filters: filters,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.purchaseApi.list(req).pipe(\n map(response => {\n const purchases = (response.purchases || []).map(purchase => purchaseFromApi(purchase));\n return new PagedResponse(purchases, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n voidPurchase(merchantId: string, purchaseId: string, day: string): Observable<boolean> {\n const req = new VoidPurchaseRequest({ purchaseId, merchantId, day });\n return this.purchaseApi.void(req).pipe(mapTo(true))\n }\n\n listPurchaseItems(\n filters: ListPurchaseItemsRequestListPurchaseItemsFilters,\n cursor: string,\n pageSize: number,\n ): Observable<PagedResponse<PurchaseItem>> {\n const req = new ListPurchaseRequest({\n filters: filters,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.purchaseApi.listPurchaseItems(req).pipe(\n map(response => {\n const purchaseItems = (response.purchaseItems || []).map(purchaseItem =>\n purchaseItemFromApi(purchaseItem, response.currency),\n );\n return new PagedResponse(purchaseItems, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n retryPurchase(merchantId: string, day: string, purchaseId: string): Observable<boolean> {\n const req = new RetryPurchaseRequest({\n merchantId: merchantId,\n day: day,\n purchaseId: purchaseId,\n });\n return this.purchaseApi.retry(req).pipe(map(() => true));\n }\n\n getMultiCustomerSummaries(\n merchantId: string,\n customerIds: string[],\n periodStart: Date,\n periodEnd: Date,\n ): Observable<CustomerSummary[]> {\n const req = new GetMultiCustomerSummariesRequest({\n customerIds: customerIds,\n merchantId: merchantId,\n periodStart: periodStart,\n periodEnd: periodEnd,\n });\n return this.purchaseApi.getMultiCustomerSummaries(req).pipe(\n map(response => {\n return (response.customerSummaries || []).map(customerSummary => customerSummaryFromApi(customerSummary));\n }),\n );\n }\n\n getMultiContract(merchantIds: string[]): Observable<{ [sku: string]: Contract }> {\n return this.billingApi.getMultiContract({ merchantIds: merchantIds }).pipe(\n map(resp => {\n const contractsAPI = resp.contracts || {};\n const contracts = {};\n for (const k of Object.keys(contractsAPI)) {\n const contractResponse = contractsAPI[k];\n contracts[k] = contractFromApi(contractResponse);\n }\n return contracts;\n }),\n );\n }\n\n generateVendorReport(\n skus: string[],\n periodStart: Date,\n periodEnd: Date,\n vendorName: string,\n markAsApproved: boolean\n ): Observable<string> {\n const req = new GenerateVendorReportRequest({\n skus: skus,\n periodStart: periodStart,\n periodEnd: periodEnd,\n vendorName: vendorName,\n markAsApproved: markAsApproved,\n });\n return this.vendorApi.generateReport(req).pipe(map(response => response.url));\n }\n\n getVendorStats(skus: string[], periodStart: Date, periodEnd: Date): Observable<number> {\n const req = new GetRevenueStatsRequest({\n skus: skus,\n periodStart: periodStart,\n periodEnd: periodEnd,\n });\n return this.vendorApi.getRevenueStats(req).pipe(map(response => response.totalRevenue || 0));\n }\n\n listContracts(cursor: string, pageSize: number): Observable<PagedResponse<Contract>> {\n const req = new ListContractsRequest({\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.billingApi.listContracts(req).pipe(\n map(response => {\n const contracts = (response.contracts || []).map(c => contractFromApi(c));\n return new PagedResponse(contracts, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n listProducts(\n merchantId: string,\n searchTerm: string,\n filters: ListProductsFilter,\n cursor: string,\n pageSize: number,\n ): Observable<PagedResponse<Product>> {\n const apiFilters = listProductsFilterToApi(filters);\n const req = new ListProductsRequest({\n merchantId,\n searchTerm,\n filters: apiFilters,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.billingApi.listProducts(req).pipe(\n map(response => {\n const products = (response.products || []).map(p => productFromApi(p));\n return new PagedResponse(products, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n getMultiProduct(\n skus: string[]\n ): Observable<Map<string, Product>> {\n const req = new GetMultiProductRequest({\n skus: skus\n });\n return this.billingApi.getMultiProduct(req).pipe(\n map((response: GetMultiProductResponse) => {\n const productsMap = new Map<string, Product>();\n skus.forEach(sku => {\n productsMap[sku] = productFromApi(response.products[sku])\n });\n return productsMap\n }),\n );\n }\n\n getBillableItem(merchantId: string, sku: string, customerId: string, orderId: string): Observable<BillableItem> {\n const req = new GetBillableItemRequest({\n merchantId: merchantId,\n sku: sku,\n customerId: customerId,\n orderId: orderId,\n });\n\n return this.billingApi.getBillableItem(req).pipe(map(response => billableItemFromApi(response.item)));\n }\n\n changeBillableItemFrequency(\n merchantId: string,\n sku: string,\n customerId: string,\n orderId: string,\n freq: Frequency): Observable<HttpResponse<null>> {\n const req = new ChangeFrequencyRequest({\n merchantId: merchantId,\n sku: sku,\n customerId: customerId,\n orderId: orderId,\n frequency: frequencyToApi(freq),\n });\n\n return this.billingApi.changeFrequency(req);\n }\n\n changeBillableItemNextRenewalDate(\n merchantId: string,\n sku: string,\n customerId: string,\n orderId: string,\n next: Date): Observable<HttpResponse<null>> {\n const req = new ChangeRenewalDateRequest({\n merchantId: merchantId,\n sku: sku,\n customerId: customerId,\n orderId: orderId,\n nextRenewalDate: next,\n });\n\n return this.billingApi.changeRenewalDate(req);\n }\n\n changeBillableItemCustomUnitPrice(\n merchantId: string,\n sku: string,\n customerId: string,\n orderId: string,\n amount: number): Observable<HttpResponse<null>> {\n const req = new ChangeCustomUnitPriceRequest({\n merchantId: merchantId,\n sku: sku,\n customerId: customerId,\n orderId: orderId,\n customUnitPrice: amount,\n });\n\n return this.billingApi.changeCustomUnitPrice(req);\n }\n\n listBillableItems(\n searchTerm: string,\n filters: ListBillableItemsFilter,\n cursor: string,\n pageSize: number\n ): Observable<PagedResponse<BillableItem>> {\n const req = new ListBillableItemsRequest({\n searchTerm: searchTerm,\n filters: filters,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n });\n return this.billingApi.listBillableItems(req).pipe(\n map(response => {\n const items = (response.items || []).map(item => billableItemFromApi(item));\n return new PagedResponse(items, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n startRevRecBackfillWorkflow(): Observable<HttpResponse<null>> {\n return this.billingApi.startRevRecTemplateBackfill({})\n }\n}\n","import { DiscountType as ApiDiscountType } from '../_internal';\n\nexport enum DiscountType {\n FIXED_AMOUNT = 'FIXED_AMOUNT',\n PERCENT_AMOUNT = 'PERCENT_AMOUNT',\n FIXED_NUMBER_OF_UNITS = 'FIXED_NUMBER_OF_UNITS',\n FIXED_AMOUNT_PER_UNIT = 'FIXED_AMOUNT_PER_UNIT',\n};\n\nexport function discountTypeFromApi(t: ApiDiscountType): DiscountType {\n switch (t) {\n case ApiDiscountType.DISCOUNT_TYPE_FIXED_AMOUNT_PER_UNIT:\n return DiscountType.FIXED_AMOUNT_PER_UNIT;\n case ApiDiscountType.DISCOUNT_TYPE_FIXED_NUMBER_OF_UNITS:\n return DiscountType.FIXED_NUMBER_OF_UNITS;\n case ApiDiscountType.DISCOUNT_TYPE_PERCENT_AMOUNT:\n return DiscountType.PERCENT_AMOUNT;\n }\n return DiscountType.FIXED_AMOUNT;\n}\n\nexport function discountTypeToApi(t: DiscountType): ApiDiscountType {\n switch (t) {\n case DiscountType.FIXED_AMOUNT_PER_UNIT:\n return ApiDiscountType.DISCOUNT_TYPE_FIXED_AMOUNT_PER_UNIT;\n case DiscountType.FIXED_NUMBER_OF_UNITS:\n return ApiDiscountType.DISCOUNT_TYPE_FIXED_NUMBER_OF_UNITS;\n case DiscountType.PERCENT_AMOUNT:\n return ApiDiscountType.DISCOUNT_TYPE_PERCENT_AMOUNT;\n }\n return ApiDiscountType.DISCOUNT_TYPE_FIXED_AMOUNT;\n}\n","import { DiscountType } from '../discount';\nimport { discountTypeFromApi, discountTypeToApi } from '../discount/discount_type';\nimport { Bundle as APIBundle, BundleItem as APIBundleItem } from '../_internal';\n\nexport interface Bundle {\n merchantId: string;\n bundleId: string;\n name: string;\n hideBundleDetails: boolean;\n items: BundleItem[];\n created: Date;\n updated: Date;\n}\n\nexport interface BundleItem {\n productId: string;\n discountType: DiscountType;\n discountAmount: number;\n quantity: number;\n defaultSku: string;\n price: Price;\n}\n\nexport interface Price {\n amount: number\n setupFee: number\n}\n\nexport function bundleFromApi(apiBundle: APIBundle): Bundle {\n if (!apiBundle) {\n return null;\n }\n const items = (apiBundle.items || []).map(item => bundleItemFromApi(item));\n return {\n merchantId: apiBundle.merchantId,\n bundleId: apiBundle.bundleId,\n name: apiBundle.name,\n hideBundleDetails: apiBundle.hideBundleDetails,\n items: items,\n created: apiBundle.created,\n updated: apiBundle.updated,\n } as Bundle\n}\n\nexport function bundleItemFromApi(apiBundleItem: APIBundleItem): BundleItem {\n return {\n productId: apiBundleItem.productId,\n discountType: discountTypeFromApi(apiBundleItem.discountType),\n discountAmount: apiBundleItem.discountAmount,\n quantity: apiBundleItem.quantity,\n defaultSku: apiBundleItem.defaultSku,\n price: apiBundleItem.price,\n } as BundleItem\n}\n\nexport function bundleItemToApi(bundleItem: BundleItem): APIBundleItem {\n return {\n productId: bundleItem.productId,\n discountType: discountTypeToApi(bundleItem.discountType),\n discountAmount: bundleItem.discountAmount,\n quantity: bundleItem.quantity,\n defaultSku: bundleItem.defaultSku,\n price: bundleItem.price,\n } as APIBundleItem\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, mapTo } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport {\n BundleApiService,\n GetMultiBundleRequest,\n GetMultiBundleResponse,\n ListBundlesRequest,\n ListBundlesResponse,\n PagedRequestOptions,\n UpsertBundleRequest,\n} from '../_internal';\nimport { Bundle, bundleFromApi, BundleItem, bundleItemToApi } from './bundle';\n\nexport interface ListBundleFilter {\n merchantId?: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class BundleService {\n constructor(private bundleApiService: BundleApiService) {\n }\n\n upsert(merchantId: string, bundleId: string, name: string, hideBundleDetails: boolean, items: BundleItem []): Observable<boolean> {\n const request = new UpsertBundleRequest({\n merchantId: merchantId,\n bundleId: bundleId,\n name: name,\n hideBundleDetails: hideBundleDetails,\n items: (items || []).map(item => bundleItemToApi(item))\n });\n return this.bundleApiService.upsert(request).pipe(mapTo(true));\n }\n\n getMulti(merchantId: string, bundleIds: string[]): Observable<Map<string, Bundle>> {\n const request = new GetMultiBundleRequest(\n {\n merchantId: merchantId,\n bundleIds: bundleIds\n }\n );\n return this.bundleApiService.getMulti(request).pipe(\n map((resp: GetMultiBundleResponse) => {\n const bundlesMap = new Map<string, Bundle>();\n if (resp && resp.bundles) {\n bundleIds.forEach(bundleId => {\n bundlesMap.set(bundleId, bundleFromApi(resp.bundles[bundleId]));\n });\n }\n return bundlesMap\n })\n )\n }\n\n list(filters: ListBundleFilter, searchTerm: string, cursor: string, pageSize: number): Observable<PagedResponse<Bundle>> {\n const request = new ListBundlesRequest({\n filters: filters,\n searchTerm: searchTerm,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n });\n return this.bundleApiService.list(request).pipe(\n map((resp: ListBundlesResponse) => {\n const bundles = (resp.bundles || []).map(bundle => bundleFromApi(bundle));\n return new PagedResponse<Bundle>(bundles, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore)\n })\n )\n }\n}\n\n","import { ContractDocumentInterface } from '../_internal';\n\nexport interface ContractDocument {\n id: string;\n merchantId: string;\n filename: string;\n created: Date;\n}\n\nexport function contractDocumentFromApi(apiContractDocument: ContractDocumentInterface): ContractDocument {\n return {\n id: apiContractDocument.id || '',\n merchantId: apiContractDocument.merchantId || '',\n filename: apiContractDocument.filename || '',\n created: apiContractDocument.created || null\n };\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, mapTo, share } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport { HostService } from '../_generated';\nimport { DeleteContractDocumentRequest, ListContractDocumentsRequest, PagedRequestOptions } from '../_internal';\nimport { ContractDocumentApiService } from '../_internal/contract-document.api.service';\nimport { ListContractDocumentsFilter } from './list-contract-document';\nimport { ContractDocument, contractDocumentFromApi } from './contract-document';\n\n@Injectable({providedIn: 'root'})\nexport class ContractDocumentService {\n constructor(\n private contractDocumentApi: ContractDocumentApiService,\n private hostService: HostService,\n private http: HttpClient\n ) { }\n\n upload(merchantId: string, file: File): Observable<boolean> {\n const url = `${this.hostService.httpsHostWithScheme()}/contract-document/upload`;\n return this.http.post(url, file, {\n headers: new HttpHeaders({\n 'Content-Type': 'application/pdf',\n 'Content-Disposition': `attachment; filename=${file.name}`\n }),\n observe: 'body',\n responseType: 'blob',\n withCredentials: true,\n params: {merchantId: merchantId}\n }).pipe(\n share(),\n mapTo(true)\n );\n }\n\n list(filters: ListContractDocumentsFilter, cursor: string, pageSize: number): Observable<PagedResponse<ContractDocument>> {\n const req = new ListContractDocumentsRequest({\n filters,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.contractDocumentApi.list(req).pipe(\n map(response => {\n const documents = (response.contractDocuments || []).map(doc => contractDocumentFromApi(doc));\n return new PagedResponse(documents, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n download(merchantId: string, id: string, filename: string): Observable<Blob> {\n const params = {merchant_id: merchantId, id: id, filename: filename};\n return this.http.get(\n `${this.hostService.httpsHostWithScheme()}/contract-document/download`,\n {\n observe: 'body',\n params: params,\n responseType: 'blob',\n withCredentials: true,\n }\n ).pipe(\n share(),\n );\n }\n\n delete(merchantId: string, id: string): Observable<boolean> {\n const req = new DeleteContractDocumentRequest({\n merchantId,\n id,\n });\n return this.contractDocumentApi.delete(req).pipe(mapTo(true));\n }\n}\n","import { CreditBalanceInterface } from '../_internal';\n\nexport interface CreditBalance {\n merchantId: string;\n currency: string;\n amount: number;\n}\n\nexport function creditBalanceFromApi(apiCreditBalance: CreditBalanceInterface): CreditBalance {\n return {\n merchantId: apiCreditBalance.merchantId || '',\n currency: apiCreditBalance.currency || '',\n amount: apiCreditBalance.amount || 0\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AddCreditRequest, CreditApiService, GetBalanceRequest, GetBalanceResponse } from '../_internal';\nimport { CreditBalance, creditBalanceFromApi } from './credit';\n\n@Injectable({providedIn: 'root'})\nexport class CreditService {\n constructor(\n private creditApi: CreditApiService\n ) { }\n\n getBalance(merchantId: string): Observable<CreditBalance> {\n return this.creditApi.getBalance(new GetBalanceRequest({\n merchantId\n })).pipe(map((res: GetBalanceResponse) => creditBalanceFromApi(res.creditBalance)))\n }\n\n add(merchantId: string, currency: string, amount: number, idempotencyKey?: string, reason?: string): Observable<null> {\n return this.creditApi.add(new AddCreditRequest({\n merchantId,\n currency,\n amount,\n idempotencyKey,\n reason,\n })).pipe(map(() => null))\n }\n}\n","import { DiscountInterface } from '../_internal';\nimport { discountTypeFromApi, DiscountType } from './discount_type';\n\nexport interface Discount {\n discountId: number;\n id: string\n discountType: DiscountType;\n amount: number;\n start: Date;\n end: Date;\n resetEachPeriod: boolean;\n merchantId: string;\n created: Date;\n updated: Date;\n SKU: string;\n description: string;\n}\n\nexport function discountFromApi(apiDiscount: DiscountInterface): Discount {\n return {\n merchantId: apiDiscount.merchantId || '',\n discountId: apiDiscount.discountId || 0,\n id: apiDiscount.id || '',\n discountType: discountTypeFromApi(apiDiscount.discountType),\n amount: apiDiscount.amount || 0,\n start: apiDiscount.start ? new Date(apiDiscount.start) : null,\n end: apiDiscount.end ? new Date(apiDiscount.end) : null,\n resetEachPeriod: apiDiscount.resetEachPeriod || false,\n created: apiDiscount.created ? new Date(apiDiscount.created) : null,\n updated: apiDiscount.updated ? new Date(apiDiscount.updated) : null,\n SKU: apiDiscount.sku || '',\n description: apiDiscount.description || ''\n };\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport {\n CreateDiscountRequest,\n DiscountApiService,\n ExpireDiscountRequest,\n ListDiscountsRequest,\n PagedRequestOptions,\n UpdateDiscountRequest,\n} from '../_internal';\nimport { Discount, discountFromApi } from './discount';\nimport { DiscountType, discountTypeToApi } from './discount_type';\nimport { ListDiscountsFilter } from './list-discount';\n\n@Injectable({providedIn: 'root'})\nexport class DiscountService {\n constructor(\n private discountApi: DiscountApiService\n ) { }\n\n list(filters: ListDiscountsFilter, cursor: string, pageSize: number): Observable<PagedResponse<Discount>> {\n const req = new ListDiscountsRequest({\n filters: filters,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.discountApi.list(req).pipe(\n map(response => {\n const discounts = (response.discounts || []).map(item => discountFromApi(item));\n return new PagedResponse(discounts, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n create(merchantId: string, sku: string, discountType: DiscountType, amount: number, startDateTime: string,\n endDateTime?: string, resetEachPeriodFlag?: boolean, description?: string): Observable<HttpResponse<null>> {\n\n let start, dt\n start = new Date(startDateTime)\n dt = discountTypeToApi(discountType)\n\n const r = new CreateDiscountRequest({\n merchantId: merchantId,\n sku: sku,\n discountType: dt,\n amount: amount,\n start: start,\n resetEachPeriod: resetEachPeriodFlag,\n description: description,\n });\n\n if (endDateTime && endDateTime !== '') {\n r.end = new Date(endDateTime)\n }\n\n return this.discountApi.create(r)\n }\n\n update(merchantId: string, id: string, discountType: DiscountType, amount: number, startDateTime: string,\n endDateTime?: string, resetEachPeriodFlag?: boolean, description?: string): Observable<HttpResponse<null>> {\n\n let start, dt\n start = new Date(startDateTime)\n dt = discountTypeToApi(discountType)\n\n const r = new UpdateDiscountRequest({\n merchantId: merchantId,\n id: id,\n discountType: dt,\n amount: amount,\n start: start,\n resetEachPeriod: resetEachPeriodFlag,\n description: description,\n });\n\n if (endDateTime && endDateTime !== '') {\n r.end = new Date(endDateTime)\n }\n return this.discountApi.update(r)\n }\n\n expire(merchantId: string, id: string): Observable<HttpResponse<null>> {\n return this.discountApi.expire(new ExpireDiscountRequest({\n merchantId: merchantId,\n id: id,\n }))\n }\n}\n","import { RetailCustomerConfiguration as ApiRetailCustomerConfiguration } from '../_internal/objects/retail-customer-configuration';\n\nexport interface RetailCustomerConfiguration {\n merchantId: string,\n customerId: string,\n contactId: string,\n autoPost?: boolean\n autoGenerate?: boolean\n useTemplateInvoice?: boolean\n collectionMethod?: CollectionMethod\n invoiceDay?: number\n}\n\nexport enum CollectionMethod {\n UNSET = 'Unset',\n MANUAL_COLLECTION = 'Manual Collection',\n CHARGE_AUTOMATICALLY = 'Charge Automatically',\n SEND_EMAIL = 'Send Email',\n}\n\nexport function collectionMethodToApi(m: CollectionMethod): string {\n switch (m) {\n case CollectionMethod.MANUAL_COLLECTION:\n return 'manual-collection';\n case CollectionMethod.CHARGE_AUTOMATICALLY:\n return 'charge-automatically';\n case CollectionMethod.SEND_EMAIL:\n return 'send-email';\n default:\n return '';\n }\n}\n\nexport function collectionMethodFromApi(m: string): CollectionMethod {\n switch (m) {\n case 'manual-collection':\n return CollectionMethod.MANUAL_COLLECTION;\n case 'charge-automatically':\n return CollectionMethod.CHARGE_AUTOMATICALLY;\n case 'send-email':\n return CollectionMethod.SEND_EMAIL;\n default:\n return CollectionMethod.UNSET;\n }\n}\n\nexport function retailCustomerConfigurationFromApi(config: ApiRetailCustomerConfiguration): RetailCustomerConfiguration {\n return {\n merchantId: config.merchantId || '',\n customerId: config.customerId || '',\n contactId: config.contactId || '',\n autoPost: config.autoPost || false,\n autoGenerate: config.autoGenerate || false,\n useTemplateInvoice: config.useTemplateInvoice || false,\n collectionMethod: collectionMethodFromApi(config.collectionMethod),\n invoiceDay: config.invoiceDay || 0,\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, mapTo } from 'rxjs/operators';\nimport {\n GetRetailCustomerConfigurationRequest,\n GetRetailCustomerConfigurationResponse,\n RetailCustomerConfigurationApiService,\n UpsertRetailCustomerConfigurationRequest,\n} from '../_internal';\nimport {\n CollectionMethod,\n collectionMethodToApi,\n RetailCustomerConfiguration,\n retailCustomerConfigurationFromApi,\n} from './retail-customer-configuration';\n\n@Injectable({providedIn: 'root'})\nexport class RetailCustomerConfigurationService {\n constructor(\n private configApiService: RetailCustomerConfigurationApiService,\n ) {}\n\n get(merchantId: string, customerId: string): Observable<RetailCustomerConfiguration> {\n const req = new GetRetailCustomerConfigurationRequest({\n merchantId,\n customerId\n });\n return this.configApiService.get(req).pipe(\n map((resp: GetRetailCustomerConfigurationResponse) => retailCustomerConfigurationFromApi(resp.configuration))\n );\n }\n\n upsert(\n merchantId: string,\n customerId: string,\n contactId: string,\n autoPost: boolean,\n autoGenerate: boolean,\n collectionMethod: CollectionMethod,\n invoiceDay: number,\n useTemplateInvoice: boolean,\n ): Observable<null> {\n const req = new UpsertRetailCustomerConfigurationRequest({\n merchantId,\n customerId,\n contactId,\n autoPost,\n autoGenerate,\n collectionMethod: collectionMethodToApi(collectionMethod),\n invoiceDay,\n useTemplateInvoice\n });\n return this.configApiService.upsert(req).pipe(\n mapTo(null)\n );\n }\n}\n\n","import { AppliedBundle, convertApiAppliedBundle } from '../applied_bundle';\nimport { AppliedDiscount, appliedDiscountFromApi } from '../applied_discount';\nimport { Currency, currencyFromApi } from '../pricing';\nimport {\n CollectionMethod,\n collectionMethodFromApi,\n} from '../retail-customer-configuration';\nimport { TaxRate } from '../tax-rate';\nimport {\n AppliedTaxRate as ApiAppliedTaxRate,\n InvoiceCustomerAddress as ApiInvoiceCustomerAddress,\n Invoice as ApiInvoice,\n InvoiceItem as ApiInvoiceItem,\n InvoiceStatus as ApiInvoiceStatus,\n InvoiceStatus as InternalInvoiceStatus,\n ListInvoicesRequestFilters,\n TaxRate as ApiTaxRate,\n ListInvoicesRequestFiltersDateFilterDateField,\n} from '../_internal';\nimport { ListInvoicesFilter } from './list-invoice';\n\nexport enum InvoiceStatus {\n DRAFT = 'Draft',\n DUE = 'Due',\n PAID = 'Paid',\n VOID = 'Void'\n}\n\nexport enum InvoiceDateField {\n CREATED = 'Created'\n}\n\nexport enum InvoiceOrigin {\n MANUAL = 'Manual',\n SALES_ORDER = 'Sales Order',\n RENEWAL = 'Renewal',\n UNSET = 'Unset'\n}\n\nexport interface InvoiceItem {\n id: string;\n sku: string;\n amount: number;\n quantity: number;\n description: string;\n subtotal: number;\n total: number;\n appliedTaxes: AppliedTaxRate[];\n appliedDiscounts: AppliedDiscount[];\n taxRates: TaxRate[];\n bundleId: string;\n bundleInstanceId?: string;\n}\n\nexport interface Invoice {\n id: string;\n number: string;\n customerId: string;\n customerName: string;\n contactId: string;\n status: InvoiceStatus;\n subtotal: number;\n discountTotal: number;\n total: number;\n paid: Date;\n issued: Date;\n due: Date;\n created: Date;\n updated: Date;\n items: InvoiceItem[];\n currency: Currency;\n orderId: string;\n appliedTaxes: AppliedTaxRate[];\n defaultTaxRates: TaxRate[];\n appliedBundles: AppliedBundle[];\n origin: InvoiceOrigin;\n collectionMethod: CollectionMethod;\n memo: string;\n defaultPaymentMethod: string;\n customerAddress: InvoiceCustomerAddress,\n externalCustomerIdentifier: string,\n}\n\nexport interface AppliedTaxRate {\n amount?: number;\n taxRateId?: string;\n percentage?: number;\n name?: string;\n}\n\nfunction convertApiStatus(s: ApiInvoiceStatus): InvoiceStatus {\n switch (s) {\n case ApiInvoiceStatus.DUE:\n return InvoiceStatus.DUE;\n case ApiInvoiceStatus.PAID:\n return InvoiceStatus.PAID;\n case ApiInvoiceStatus.VOID:\n return InvoiceStatus.VOID;\n default:\n return InvoiceStatus.DRAFT;\n }\n}\n\nfunction invoiceStatusToApi(status: InvoiceStatus): InternalInvoiceStatus {\n switch (status) {\n case InvoiceStatus.DUE:\n return InternalInvoiceStatus.DUE;\n case InvoiceStatus.PAID:\n return InternalInvoiceStatus.PAID;\n case InvoiceStatus.VOID:\n return InternalInvoiceStatus.VOID;\n default:\n return InternalInvoiceStatus.DRAFT;\n }\n}\n\nfunction invoiceDateFilterFieldToApi(dateField: InvoiceDateField): ListInvoicesRequestFiltersDateFilterDateField {\n switch (dateField) {\n default:\n return ListInvoicesRequestFiltersDateFilterDateField.CREATED\n }\n}\n\nfunction convertApiOrigin(s: string): InvoiceOrigin {\n switch (s) {\n case 'manual':\n return InvoiceOrigin.MANUAL;\n case 'sales-order':\n return InvoiceOrigin.SALES_ORDER;\n case 'renewal':\n return InvoiceOrigin.RENEWAL;\n default:\n return InvoiceOrigin.UNSET;\n }\n}\n\nexport function convertApiAppliedTaxRate(at: ApiAppliedTaxRate): AppliedTaxRate {\n if (!at) {\n return null\n }\n\n return {\n amount: at.amount || 0,\n taxRateId: at.taxRateId || '',\n percentage: at.percentage || 0,\n name: at.name || '',\n }\n}\n\nexport function convertAppliedTaxRate(at: AppliedTaxRate): ApiAppliedTaxRate {\n if (!at) {\n return null\n }\n\n return new ApiAppliedTaxRate({\n amount: at.amount,\n taxRateId: at.taxRateId\n })\n}\n\n\nexport function convertApiTaxRate(tr: ApiTaxRate): TaxRate {\n if (!tr) {\n return null\n }\n\n return {\n id: tr.id || '',\n name: tr.name || '',\n description: tr.description || '',\n percentage: tr.percentage || 0,\n }\n}\n\nexport function convertTaxRate(tr: TaxRate): ApiTaxRate {\n if (!tr) {\n return null\n }\n\n return new ApiTaxRate({\n id: tr.id,\n name: tr.name,\n description: tr.description,\n percentage: tr.percentage,\n })\n}\n\nexport interface InvoiceCustomerAddress {\n address?: string;\n address2?: string;\n city?: string;\n state?: string;\n zip?: string;\n country?: string;\n}\n\nfunction convertApiCustomerAddress(ca: ApiInvoiceCustomerAddress): InvoiceCustomerAddress {\n return {\n address: ca?.address || '',\n address2: ca?.address2 || '',\n city: ca?.city || '',\n state: ca?.state || '',\n zip: ca?.zip || '',\n country: ca?.country || '',\n };\n}\n\nexport function convertApiInvoiceItem(ii: ApiInvoiceItem): InvoiceItem {\n if (!ii) {\n return null\n }\n\n const appliedTaxes: AppliedTaxRate[] = (ii.appliedTaxes || []).map((at) => convertApiAppliedTaxRate(at));\n const taxRates: TaxRate[] = (ii.taxRates || []).map((tr) => convertApiTaxRate(tr));\n const appliedDiscounts: AppliedDiscount[] = (ii.discounts || []).map((ad) => appliedDiscountFromApi(ad));\n\n return {\n id: ii.id || '',\n sku: ii.sku || '',\n amount: ii.amount || 0,\n quantity: ii.quantity || 0,\n description: ii.description || '',\n subtotal: ii.subtotal || 0,\n total: ii.total || 0,\n appliedDiscounts: appliedDiscounts || [],\n appliedTaxes: appliedTaxes || [],\n taxRates: taxRates || [],\n bundleId: ii.bundleId || '',\n bundleInstanceId: ii.bundleInstanceId || '',\n };\n}\n\nexport function convertInvoiceItem(ii: InvoiceItem): ApiInvoiceItem {\n if (!ii) {\n return null\n }\n\n return new ApiInvoiceItem({\n sku: ii.sku,\n amount: ii.amount,\n quantity: ii.quantity,\n description: ii.description,\n total: ii.total,\n });\n}\n\nexport function convertApiInvoice(i: ApiInvoice): Invoice {\n if (!i) {\n return null\n }\n\n const zeroDate = new Date('0001-01-01T00:00:00Z').valueOf();\n const invoiceItems: InvoiceItem[] = (i.items || []).map((ii) => convertApiInvoiceItem(ii));\n const appliedTaxes: AppliedTaxRate[] = (i.appliedTaxes || []).map((at) => convertApiAppliedTaxRate(at));\n const taxRates: TaxRate[] = (i.defaultTaxRates || []).map((tr) => convertApiTaxRate(tr));\n const appliedBundles: AppliedBundle[] = (i.appliedBundles || []).map((at) => convertApiAppliedBundle(at));\n\n return {\n id: i.id || '',\n number: i.number || '',\n customerId: i.customerId || '',\n customerName: i.customerName || '',\n contactId: i.contactId || '',\n status: convertApiStatus(i.status),\n subtotal: i.subtotal || 0,\n total: i.total || 0,\n discountTotal: i.amountDiscount || 0,\n paid: i.paid.valueOf() !== zeroDate ? i.paid : null,\n issued: i.issued.valueOf() !== zeroDate ? i.issued : null,\n due: i.due.valueOf() !== zeroDate ? i.due : null,\n created: i.created.valueOf() !== zeroDate ? i.created : null,\n updated: i.updated.valueOf() !== zeroDate ? i.updated : null,\n items: invoiceItems || [],\n currency: currencyFromApi(i.currency),\n orderId: i.orderId || '',\n appliedTaxes: appliedTaxes || [],\n defaultTaxRates: taxRates || [],\n appliedBundles: appliedBundles || [],\n origin: convertApiOrigin(i.origin),\n collectionMethod: collectionMethodFromApi(i.collectionMethod),\n memo: i.memo || '',\n defaultPaymentMethod: i.defaultPaymentMethod || '',\n customerAddress: convertApiCustomerAddress(i.customerAddress),\n externalCustomerIdentifier: i.externalCustomerIdentifier || '',\n };\n}\n\nexport function listInvoiceFiltersToApi(filters: ListInvoicesFilter): ListInvoicesRequestFilters {\n return new ListInvoicesRequestFilters({\n ...filters,\n statuses: (filters.statuses || []).map(s => invoiceStatusToApi(s)),\n dateFilter: {\n dateGte: filters.dateFilter?.dateGte,\n dateLte: filters.dateFilter?.dateLte,\n dateField: invoiceDateFilterFieldToApi(filters.dateFilter?.dateField),\n }\n });\n}\n","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, share } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport { currencyFromApi } from '../pricing';\nimport {\n CollectionMethod,\n collectionMethodToApi,\n} from '../retail-customer-configuration';\nimport { HostService } from '../_generated';\nimport {\n AddBundleRequest,\n AddBundleResponse,\n AddLineItemRequest,\n AddLineItemResponse,\n ChargeInvoiceRequest,\n CreateInvoiceRequest,\n CreateInvoiceResponse,\n Currency,\n DeleteInvoiceRequest,\n DeleteLineItemRequest,\n DeleteLineItemResponse,\n DuplicateInvoiceRequest,\n DuplicateInvoiceResponse,\n FieldMask,\n GetInvoiceRequest,\n GetInvoiceResponse,\n Invoice as ApiInvoice,\n InvoiceApiService,\n ListInvoicesRequest,\n PagedRequestOptions,\n PayInvoiceRequest,\n RemoveBundleRequest,\n RemoveBundleResponse,\n SendInvoiceRequest,\n UpdateBundleRequest,\n UpdateBundleResponse,\n UpdateDefaultTaxRatesRequest,\n UpdateDefaultTaxRatesResponse,\n UpdateInvoiceRequest,\n UpdateInvoiceResponse,\n UpdateLineItemRequest,\n UpdateLineItemResponse,\n VoidInvoiceRequest,\n} from '../_internal';\nimport { convertApiInvoice, Invoice, listInvoiceFiltersToApi } from './invoice';\nimport { ListInvoicesFilter } from './list-invoice';\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceService {\n constructor(\n private hostService: HostService,\n private http: HttpClient,\n private invoiceApiService: InvoiceApiService,\n ) {\n }\n\n addBundle(merchantId: string, invoiceId: string, bundleId: string): Observable<Invoice> {\n return this.invoiceApiService.addBundle(new AddBundleRequest(\n {\n merchantId,\n invoiceId,\n bundleId,\n }\n )).pipe(\n map((res: AddBundleResponse) => convertApiInvoice(res.invoice))\n );\n }\n\n addLineItem(merchantId: string, invoiceId: string, sku: string, amount: number, quantity: number,\n description: string, taxRates: string[]): Observable<Invoice> {\n return this.invoiceApiService.addLineItem(new AddLineItemRequest({\n merchantId,\n invoiceId,\n sku,\n amount,\n quantity,\n description,\n taxRates\n })).pipe(map((res: AddLineItemResponse) => convertApiInvoice(res.invoice)))\n }\n\n charge(merchantId: string, customerId: string, invoiceId: string, paymentMethodId: string): Observable<HttpResponse<null>> {\n return this.invoiceApiService.charge(new ChargeInvoiceRequest({\n merchantId,\n customerId,\n invoiceId,\n paymentMethodId\n }));\n }\n\n create(merchantId: string, customerId: string, orderId?: string, currencyCode?: string): Observable<string> {\n return this.invoiceApiService.create(new CreateInvoiceRequest({\n merchantId: merchantId,\n customerId: customerId,\n orderId: orderId,\n currencyCode: currencyCode\n })).pipe(map(\n (res: CreateInvoiceResponse) => res ? res.invoiceId : ''\n ))\n }\n\n delete(merchantId: string, invoiceId: string): Observable<HttpResponse<null>> {\n return this.invoiceApiService.delete(new DeleteInvoiceRequest({\n merchantId,\n invoiceId\n }));\n }\n\n deleteLineItem(merchantId: string, invoiceId: string, id: string): Observable<Invoice> {\n return this.invoiceApiService.deleteLineItem(new DeleteLineItemRequest({\n merchantId,\n invoiceId,\n id,\n })).pipe(map((res: DeleteLineItemResponse) => convertApiInvoice(res.invoice)))\n }\n\n exportCSV(merchantId: string, filters?: ListInvoicesFilter): Observable<Blob> {\n const url = `${this.hostService.httpsHostWithScheme()}/invoice/export`;\n return this.http.post(url, {\n merchant_id: merchantId,\n filters: filters\n }, {\n observe: 'body',\n responseType: 'blob',\n withCredentials: true\n }).pipe(\n share(),\n );\n }\n\n generatePDF(merchantId: string, invoiceId: string, documentType: string): Observable<Blob> {\n const url = `${this.hostService.httpsHostWithScheme()}/invoice/generate-pdf`;\n return this.http.post(url, {\n merchant_id: merchantId, invoice_id: invoiceId, document_type: documentType\n }, {\n observe: 'body',\n responseType: 'blob',\n }).pipe(\n share(),\n );\n }\n\n get(merchantId: string, invoiceId: string): Observable<Invoice> {\n return this.invoiceApiService.get(new GetInvoiceRequest({\n merchantId, invoiceId\n })).pipe(map((res: GetInvoiceResponse) => convertApiInvoice(res.invoice)))\n }\n\n list(filters: ListInvoicesFilter, cursor: string, pageSize: number): Observable<PagedResponse<Invoice>> {\n const req = new ListInvoicesRequest({\n filters: listInvoiceFiltersToApi(filters),\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n });\n return this.invoiceApiService.list(req).pipe(\n map(response => {\n const invoices = (response.invoices || []).map(item => convertApiInvoice(item));\n return new PagedResponse(invoices, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n pay(merchantId: string, invoiceId: string): Observable<HttpResponse<null>> {\n return this.invoiceApiService.pay(new PayInvoiceRequest({\n merchantId,\n invoiceId\n }));\n }\n\n preview(merchantId: string, invoiceId: string): Observable<string> {\n const url = `${this.hostService.httpsHostWithScheme()}/retail-invoice/preview`;\n return this.http.post(url,\n {\n merchant_id: merchantId,\n invoice_id: invoiceId\n },\n {\n responseType: 'text',\n withCredentials: true\n });\n }\n\n removeBundle(merchantId: string, invoiceId: string, bundleId: string, bundleInstanceId?: string): Observable<Invoice> {\n return this.invoiceApiService.removeBundle(new RemoveBundleRequest(\n {\n merchantId,\n invoiceId,\n bundleId,\n bundleInstanceId,\n }\n )).pipe(\n map((res: RemoveBundleResponse) => convertApiInvoice(res.invoice))\n );\n }\n\n send(merchantId: string, invoiceId: string, emailAddresses: string[]): Observable<HttpResponse<null>> {\n return this.invoiceApiService.send(new SendInvoiceRequest({\n merchantId, invoiceId, emailAddresses\n }));\n }\n\n updateBundle(merchantId: string, invoiceId: string, bundleId: string, hideBundleItems: boolean,\n bundleInstanceId?: string): Observable<Invoice> {\n return this.invoiceApiService.updateBundle(new UpdateBundleRequest({\n merchantId,\n invoiceId,\n bundleId,\n hideBundleItems,\n bundleInstanceId,\n })).pipe(map((res: UpdateBundleResponse) => convertApiInvoice(res.invoice)))\n }\n\n updateCurrency(merchantId: string, id: string, currency: Currency): Observable<Invoice> {\n const pbInvoice = new ApiInvoice({\n merchantId,\n id,\n currency: currencyFromApi(currency),\n });\n\n const fm = new FieldMask({\n paths: ['currency']\n });\n\n return this.update(pbInvoice, fm);\n }\n\n updateDueDate(merchantId: string, id: string, due: Date): Observable<Invoice> {\n const pbInvoice = new ApiInvoice({\n merchantId,\n id,\n due,\n });\n\n const fm = new FieldMask({\n paths: ['due']\n });\n\n return this.update(pbInvoice, fm);\n }\n\n updateContact(merchantId: string, id: string, contactId: string): Observable<Invoice> {\n const pbInvoice = new ApiInvoice({\n merchantId,\n id,\n contactId,\n });\n\n const fm = new FieldMask({\n paths: ['contactId']\n });\n\n return this.update(pbInvoice, fm);\n }\n\n updateCollectionMethod(merchantId: string, id: string, collectionMethod: CollectionMethod): Observable<Invoice> {\n const apiCollectionMethod = collectionMethodToApi(collectionMethod)\n const pbInvoice = new ApiInvoice({\n merchantId,\n id,\n collectionMethod: apiCollectionMethod,\n });\n\n const fm = new FieldMask({\n paths: ['collectionMethod']\n });\n\n return this.update(pbInvoice, fm);\n }\n\n updateMemo(merchantId: string, id: string, memo: string): Observable<Invoice> {\n const pbInvoice = new ApiInvoice({\n merchantId,\n id,\n memo,\n });\n\n const fm = new FieldMask({\n paths: ['memo']\n });\n\n return this.update(pbInvoice, fm);\n }\n\n updateDefaultPaymentMethod(merchantId: string, id: string, defaultPaymentMethod: string): Observable<Invoice> {\n const pbInvoice = new ApiInvoice({\n merchantId,\n id,\n defaultPaymentMethod,\n });\n\n const fm = new FieldMask({\n paths: ['defaultPaymentMethod']\n });\n\n return this.update(pbInvoice, fm);\n }\n\n updateDefaultTaxes(merchantId: string, invoiceId: string, taxRateIds: string[]): Observable<Invoice> {\n return this.invoiceApiService.updateDefaultTaxRates(new UpdateDefaultTaxRatesRequest({\n merchantId,\n invoiceId,\n taxRateIds\n })).pipe(map((res: UpdateDefaultTaxRatesResponse) => convertApiInvoice(res.invoice)))\n }\n\n updateLineItem(merchantId: string, invoiceId: string, id: string, sku: string, amount: number, quantity: number,\n description: string, taxRates: string[]): Observable<Invoice> {\n return this.invoiceApiService.updateLineItem(new UpdateLineItemRequest({\n merchantId,\n invoiceId,\n id,\n sku,\n amount,\n quantity,\n description,\n taxRates\n })).pipe(map((res: UpdateLineItemResponse) => convertApiInvoice(res.invoice)))\n }\n\n private update(invoice: ApiInvoice, mask: FieldMask): Observable<Invoice> {\n return this.invoiceApiService.update(new UpdateInvoiceRequest({\n invoice: invoice,\n fieldMask: mask\n })).pipe(map((res: UpdateInvoiceResponse) => convertApiInvoice(res.invoice)));\n }\n\n void(merchantId: string, invoiceId: string): Observable<HttpResponse<null>> {\n return this.invoiceApiService.void(new VoidInvoiceRequest({\n merchantId,\n invoiceId\n }));\n }\n\n duplicate(merchantId: string, invoiceId: string): Observable<string> {\n return this.invoiceApiService.duplicate(new DuplicateInvoiceRequest({\n merchantId,\n invoiceId\n })).pipe(map(\n (res: DuplicateInvoiceResponse) => res ? res.invoiceId : ''\n ));\n }\n}\n","import { AppliedBundle, convertApiAppliedBundle } from '../applied_bundle';\nimport { AppliedDiscount } from '../applied_discount';\nimport { appliedDiscountFromApi } from '../applied_discount/applied_discount';\nimport {\n AppliedTaxRate,\n convertApiAppliedTaxRate,\n convertApiTaxRate,\n} from '../invoice/invoice';\nimport { Currency, currencyFromApi } from '../pricing/currency';\nimport { TaxRate } from '../tax-rate/tax-rate';\nimport {\n AppliedTaxRateInterface,\n InvoiceTemplate as APIInvoiceTemplate,\n InvoiceTemplateItem as APIInvoiceTemplateItem,\n TaxRateInterface,\n} from '../_internal';\n\nexport interface InvoiceTemplate {\n merchantId: string;\n customerId: string;\n items: InvoiceTemplateItem[];\n appliedTaxes: AppliedTaxRate[];\n currency: Currency;\n total: number;\n subtotal: number;\n discountTotal: number;\n created: Date;\n updated: Date;\n defaultTaxRates: TaxRate[];\n appliedBundles: AppliedBundle[];\n}\n\nexport interface InvoiceTemplateItem {\n id?: string;\n sku?: string;\n unitPrice?: number;\n quantity?: number;\n description?: string;\n total?: number;\n appliedTaxes?: AppliedTaxRateInterface[];\n taxRates?: TaxRateInterface[];\n subtotal?: number;\n appliedDiscounts?: AppliedDiscount[];\n bundleId?: string;\n}\n\nexport function convertApiInvoiceTemplate(t: APIInvoiceTemplate): InvoiceTemplate {\n const zeroDate = new Date('0001-01-01T00:00:00Z').valueOf();\n const appliedBundles: AppliedBundle[] = (t?.appliedBundles || []).map(ab => convertApiAppliedBundle(ab));\n\n\n return {\n merchantId: t.merchantId,\n customerId: t.customerId,\n currency: currencyFromApi(t.currency),\n items: (t.items || []).map(item => convertApiInvoiceTemplateItem(item)),\n appliedTaxes: (t.appliedTaxes || []).map((at) => convertApiAppliedTaxRate(at)),\n total: t.total || 0,\n subtotal: t.subtotal || 0,\n created: t.created.valueOf() !== zeroDate ? t.created : null,\n updated: t.updated.valueOf() !== zeroDate ? t.updated : null,\n defaultTaxRates: (t.defaultTaxRates || []).map((tr) => convertApiTaxRate(tr)),\n appliedBundles: appliedBundles || [],\n discountTotal: t.amountDiscount || 0\n } as InvoiceTemplate\n}\n\nexport function convertApiInvoiceTemplateItem(item: APIInvoiceTemplateItem): InvoiceTemplateItem {\n const appliedDiscounts: AppliedDiscount[] = (item?.discounts || []).map(ad => appliedDiscountFromApi(ad));\n\n return {\n sku: item?.sku,\n unitPrice: item?.unitPrice || 0,\n quantity: item?.quantity || 0,\n description: item?.description,\n total: item?.total || 0,\n appliedTaxes: item?.appliedTaxes || [],\n taxRates: item?.taxRates || [],\n subtotal: item?.subtotal || 0,\n bundleId: item?.bundleId || '',\n appliedDiscounts: appliedDiscounts || [],\n } as InvoiceTemplateItem\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { appliedDiscountToApi } from '../applied_discount/applied_discount';\nimport {\n AddTemplateBundleRequest,\n AddTemplateBundleResponse,\n AppliedDiscountInterface,\n DeleteInvoiceTemplateRequest,\n GetInvoiceTemplateRequest,\n InvoiceTemplateApiService,\n UpdateTemplateBundleRequest,\n UpdateTemplateBundleResponse,\n UpdateTemplateDefaultTaxRatesRequest,\n UpsertInvoiceTemplateRequest,\n UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest,\n} from '../_internal';\nimport {\n convertApiInvoiceTemplate,\n InvoiceTemplate,\n InvoiceTemplateItem,\n} from './invoice-template';\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceTemplateService {\n constructor(private invoiceTemplateApiService: InvoiceTemplateApiService) {\n }\n\n upsert(\n merchantId: string,\n customerId: string,\n items: InvoiceTemplateItem[],\n defaultTaxRates: string[],\n ): Observable<InvoiceTemplate> {\n const itemsRequest: UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest[] = (items || []).map(item => {\n const appliedDiscounts: AppliedDiscountInterface[] = (item.appliedDiscounts || []).map((ad) => appliedDiscountToApi(ad));\n return new UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest({\n sku: item.sku,\n unitPrice: item.unitPrice,\n quantity: item.quantity,\n description: item.description,\n taxRates: (item.taxRates || []).map(r => r.id),\n bundleId: item.bundleId,\n appliedDiscounts: appliedDiscounts\n })\n })\n\n const req = new UpsertInvoiceTemplateRequest({\n merchantId: merchantId,\n customerId: customerId,\n items: itemsRequest || [],\n defaultTaxRates: defaultTaxRates,\n });\n return this.invoiceTemplateApiService.upsert(req).pipe(\n map(resp => convertApiInvoiceTemplate(resp?.invoiceTemplate))\n );\n }\n\n get(merchantId: string, customerId: string): Observable<InvoiceTemplate> {\n const req = new GetInvoiceTemplateRequest({\n merchantId,\n customerId\n });\n return this.invoiceTemplateApiService.get(req).pipe(\n map(resp => convertApiInvoiceTemplate(resp?.invoiceTemplate))\n );\n }\n\n delete(merchantId: string, customerId: string): Observable<HttpResponse<null>> {\n const req = new DeleteInvoiceTemplateRequest({\n merchantId,\n customerId\n });\n return this.invoiceTemplateApiService.delete(req);\n }\n\n updateDefaultTaxRates(merchantId: string, customerId: string, taxRateIds: string[]): Observable<InvoiceTemplate> {\n const req = new UpdateTemplateDefaultTaxRatesRequest({\n customerId: customerId,\n merchantId: merchantId,\n taxRateIds: taxRateIds,\n });\n return this.invoiceTemplateApiService.updateTemplateDefaultTaxRates(req).pipe(\n map(resp => convertApiInvoiceTemplate(resp?.invoiceTemplate))\n );\n }\n\n addBundle(merchantId: string, customerId: string, bundleId: string): Observable<InvoiceTemplate> {\n return this.invoiceTemplateApiService.addBundle(new AddTemplateBundleRequest({\n merchantId,\n customerId,\n bundleId,\n })).pipe(\n map((resp: AddTemplateBundleResponse) => convertApiInvoiceTemplate(resp?.invoiceTemplate))\n );\n }\n\n updateBundle(merchantId: string, customerId: string, bundleId: string, hideBundleItems: boolean): Observable<InvoiceTemplate> {\n return this.invoiceTemplateApiService.updateBundle(new UpdateTemplateBundleRequest({\n merchantId,\n customerId,\n bundleId,\n hideBundleItems,\n })).pipe(\n map((resp: UpdateTemplateBundleResponse) => convertApiInvoiceTemplate(resp?.invoiceTemplate))\n );\n }\n}\n","import {Merchant as ApiMerchant} from '../_internal';\n\nexport interface Merchant {\n merchantId: string;\n address: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n emailAddress: string;\n phoneNumber: string;\n contactName: string;\n companyName: string;\n autoPostInvoices: boolean;\n autoChargeInvoices: boolean;\n includeInFinancialRecords: boolean;\n additionalEmailAddresses: string[];\n stripeConnectId: string;\n}\n\nexport function MerchantFromAPI(proto: ApiMerchant): Merchant {\n return {\n merchantId: proto.merchantId,\n address: proto.address,\n city: proto.city,\n state: proto.state,\n country: proto.country,\n zipCode: proto.zipCode,\n emailAddress: proto.emailAddress,\n phoneNumber: proto.phoneNumber,\n contactName: proto.contactName,\n companyName: proto.companyName,\n autoPostInvoices: proto.autoPostInvoices,\n autoChargeInvoices: proto.autoChargeInvoices,\n includeInFinancialRecords: proto.includeInFinancialRecords,\n additionalEmailAddresses: proto.additionalEmailAddresses || [],\n stripeConnectId: proto.stripeAccountId,\n }\n}\n","import {GetPayoutSummaryResponse} from '../_internal';\n\nexport enum PayoutInterval {\n Daily = 'daily',\n Weekly = 'weekly',\n Monthly = 'monthly',\n}\n\nexport interface PayoutSummary {\n nextInTransitPayout: Date,\n balances: PayoutBalance[];\n payoutInterval: PayoutInterval;\n payoutDelayDays: number;\n}\n\nexport interface PayoutBalance {\n currencyCode: string;\n futurePayouts: number;\n inTransit: number;\n}\n\nexport function payoutSummaryFromAPI(proto: GetPayoutSummaryResponse): PayoutSummary {\n const zeroDate = new Date('0001-01-01T00:00:00Z').valueOf();\n return {\n nextInTransitPayout: proto.nextInTransitPayoutExpectedDate.valueOf() !== zeroDate ? proto.nextInTransitPayoutExpectedDate : null,\n payoutInterval: payoutIntervalFromAPI(proto.payoutInterval),\n payoutDelayDays: proto.payoutDelayDays,\n balances: (proto.balances || []).map(balance => ({\n currencyCode: balance.currencyCode,\n amount: balance.amount || 0,\n futurePayouts: balance.futurePayouts || 0,\n inTransit: balance.inTransit || 0,\n }))\n }\n}\n\n\nexport function payoutIntervalFromAPI(proto: string): PayoutInterval {\n switch (proto) {\n case 'daily':\n return PayoutInterval.Daily;\n case 'weekly':\n return PayoutInterval.Weekly;\n case 'monthly':\n return PayoutInterval.Monthly;\n }\n return null\n\n}\n","import {\n DefaultCustomerConfiguration as ApiDefaultCustomerConfiguration,\n DefaultCustomerConfigurationInterface,\n RetailConfiguration as ApiRetailConfiguration,\n} from '../_internal';\nimport {\n CollectionMethod,\n collectionMethodFromApi,\n collectionMethodToApi,\n} from '../retail-customer-configuration';\n\nexport interface RetailConfiguration {\n merchantId: string;\n retailGroupId: string;\n currencyCode: string;\n currencyConversionRate: number;\n defaultCustomerConfiguration?: DefaultCustomerConfiguration;\n}\n\nexport interface DefaultCustomerConfiguration {\n generateMethod: GenerateMethod;\n collectionMethod: CollectionMethod;\n invoiceDay: number;\n}\n\nexport enum GenerateMethod {\n UNSET = 'Unset',\n SUBSCRIPTION = 'Subscription',\n TEMPLATE = 'Template',\n}\n\nexport function generateMethodToApi(m: GenerateMethod): string {\n switch (m) {\n case GenerateMethod.SUBSCRIPTION:\n return 'subscription';\n case GenerateMethod.TEMPLATE:\n return 'template';\n default:\n return '';\n }\n}\n\nexport function generateMethodFromApi(m: string): GenerateMethod {\n switch (m) {\n case 'subscription':\n return GenerateMethod.SUBSCRIPTION;\n case 'template':\n return GenerateMethod.TEMPLATE;\n default:\n return GenerateMethod.UNSET;\n }\n}\n\nexport function retailConfigurationFromApi(proto: ApiRetailConfiguration): RetailConfiguration {\n return {\n merchantId: proto.merchantId,\n retailGroupId: proto.retailGroupId,\n currencyCode: proto.currencyCode,\n currencyConversionRate: proto.currencyConversionRate || 0,\n defaultCustomerConfiguration: defaultCustomerConfigurationFromApi(proto.defaultCustomerConfiguration),\n }\n}\n\nexport function defaultCustomerConfigurationFromApi(proto: ApiDefaultCustomerConfiguration): DefaultCustomerConfiguration {\n if (!proto) {\n return null;\n }\n return {\n generateMethod: generateMethodFromApi(proto.generateMethod),\n collectionMethod: collectionMethodFromApi(proto.collectionMethod),\n invoiceDay: proto.invoiceDay,\n }\n}\n\nexport function defaultCustomerConfigurationToApi(c: DefaultCustomerConfiguration): DefaultCustomerConfigurationInterface {\n if (!c) {\n return null;\n }\n return {\n generateMethod: generateMethodToApi(c.generateMethod),\n collectionMethod: collectionMethodToApi(c.collectionMethod),\n invoiceDay: c.invoiceDay,\n } as ApiDefaultCustomerConfiguration;\n}\n","import {HttpClient, HttpResponse} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {catchError, map, mapTo, share} from 'rxjs/operators';\nimport {PagedResponse, SortDirection} from '../core';\nimport {handleCsvError} from '../http-shared/error-handlers';\nimport {currencyFromApi} from '../pricing';\nimport {HostService} from '../_generated';\nimport {\n CreateStripeExternalAccountRequest,\n GetMerchantRequest,\n GetMultiRetailConfigurationsRequest,\n GetMultiRetailConfigurationsResponse,\n GetOutstandingBalanceRequest,\n GetPayoutSummaryRequest,\n GetRetailPayoutRequest,\n GetStatisticsRequest,\n GetStatisticsResponse,\n ListRetailPayoutsRequest,\n ListRetailPayoutsResponse,\n MerchantApiService,\n PagedRequestOptions,\n PagedRequestOptionsInterface,\n RetailPayout,\n SearchMerchantsRequestSortBy as SortByApi,\n SortDirection as SortDirectionApi,\n UpsertDefaultRetailCustomerConfigurationRequest,\n UpsertRetailConfigurationRequest,\n} from '../_internal';\nimport {Balance} from './balance';\nimport {Merchant, MerchantFromAPI} from './merchant';\nimport {DownloadMerchantsCsvRequest} from './merchant.interface';\nimport {PayoutSummary, payoutSummaryFromAPI} from './payout-summary';\nimport {\n DefaultCustomerConfiguration,\n defaultCustomerConfigurationToApi,\n RetailConfiguration,\n retailConfigurationFromApi,\n} from './retail-configuration';\n\n/**\n * @enum SortMerchantsBy\n * Names should match corresponding field in Merchant interface.\n * Values should match ../_internal/enums/SortBy\n */\nexport enum SortMerchantsBy {\n merchantId = 0,\n companyName,\n contactName,\n emailAddress,\n country,\n state,\n created,\n updated\n}\n\n@Injectable({providedIn: 'root'})\nexport class MerchantService {\n constructor(private merchantApi: MerchantApiService, private hostService: HostService, private http: HttpClient) { }\n\n get(merchantId: string): Observable<Merchant> {\n const req = new GetMerchantRequest({ merchantId });\n return this.merchantApi.get(req).pipe(map(resp => MerchantFromAPI(resp.merchant)));\n }\n\n create(\n merchantId: string, address: string, city: string, state: string, country: string, zipCode: string, emailAddress: string,\n phoneNumber: string, contactName: string, companyName: string, additionalEmailAddresses?: string[]\n ): Observable<boolean> {\n return this.merchantApi.create({\n merchantId,\n address,\n city,\n state,\n country,\n zipCode,\n emailAddress,\n phoneNumber,\n contactName,\n companyName,\n additionalEmailAddresses\n }).pipe(\n mapTo(true)\n );\n }\n\n update(\n merchantId: string, address: string, city: string, state: string, country: string, zipCode: string, emailAddress: string,\n phoneNumber: string, contactName: string, companyName: string, additionalEmailAddresses?: string[]\n ): Observable<boolean> {\n return this.merchantApi.update({\n merchantId,\n address,\n city,\n state,\n country,\n zipCode,\n emailAddress,\n phoneNumber,\n contactName,\n companyName,\n additionalEmailAddresses\n }).pipe(\n mapTo(true)\n );\n }\n\n getOutstandingBalance(merchantId: string): Observable<Balance> {\n const req = new GetOutstandingBalanceRequest({ merchantId });\n return this.merchantApi.getOutstandingBalance(req).pipe(\n map(r => ({\n outstanding: r.outstandingBalance || 0,\n currency: currencyFromApi(r.currency)\n }))\n );\n }\n\n getStatistics(merchantId: string): Observable<GetStatisticsResponse> {\n const req = new GetStatisticsRequest({ merchantId });\n return this.merchantApi.getStatistics(req);\n }\n\n search(\n searchTerm: string, sortBy: SortMerchantsBy, sortDirection: SortDirection, pagingOptions: PagedRequestOptionsInterface\n ): Observable<PagedResponse<Merchant>> {\n return this.merchantApi.search({\n searchTerm: searchTerm,\n sortBy: SortByApi[SortByApi[sortBy]],\n sortDirection: SortDirectionApi[SortDirectionApi[sortDirection]],\n pagingOptions: new PagedRequestOptions(pagingOptions)\n }).pipe(\n map(r => new PagedResponse(r.merchants.map(m => MerchantFromAPI(m)), r.pagingMetadata.nextCursor, r.pagingMetadata.hasMore))\n );\n }\n\n setAutoPostInvoices(merchantId: string, autoPostInvoices: boolean): Observable<boolean> {\n return this.merchantApi.setAutoPostInvoices({\n merchantId: merchantId,\n shouldAutoPostInvoices: autoPostInvoices\n }).pipe(\n mapTo(true)\n );\n }\n\n setAutoChargeInvoices(merchantId: string, autoChargeInvoices: boolean): Observable<boolean> {\n return this.merchantApi.setAutoChargeInvoices({\n merchantId, autoChargeInvoices\n }).pipe(\n mapTo(true)\n );\n }\n\n downloadCsv(r: DownloadMerchantsCsvRequest): Observable<Blob> {\n const queryParams = `?filename=${r.filename}`;\n return this.http.get(\n this.hostService.httpsHostWithScheme() + '/merchants-csv' + queryParams,\n this.apiOptions()\n ).pipe(\n catchError(handleCsvError)\n );\n }\n\n setIncludeInFinancialRecords(merchantId: string, includeInFinancialRecords: boolean): Observable<boolean> {\n return this.merchantApi.setIncludeInFinancialRecords({\n merchantId: merchantId,\n includeInFinancialRecords: includeInFinancialRecords\n }).pipe(\n mapTo(true)\n );\n }\n\n sendSalesInvoiceEmail(merchantId: string, invoiceId: string): Observable<boolean> {\n return this.merchantApi.sendSalesInvoiceEmail({\n merchantId: merchantId,\n invoiceId: invoiceId\n }).pipe(\n mapTo(true)\n )\n }\n\n chargeSalesInvoice(merchantId: string, invoiceId: string, amount: number): Observable<boolean> {\n return this.merchantApi.chargeSalesInvoice({\n merchantId,\n invoiceId,\n amount\n }).pipe(\n mapTo(true)\n )\n }\n\n sendSalesInvoiceReceiptEmail(merchantId: string, invoiceId: string): Observable<boolean> {\n return this.merchantApi.sendSalesInvoiceReceiptEmail({\n merchantId: merchantId,\n invoiceId: invoiceId\n }).pipe(\n mapTo(true)\n )\n }\n\n private apiOptions(): { responseType: 'blob', withCredentials: boolean } {\n return {\n responseType: 'blob',\n withCredentials: true\n }\n }\n\n createExternalAccount(merchantId: string, stripeToken: string): Observable<boolean> {\n return this.merchantApi.createStripeExternalAccount(new CreateStripeExternalAccountRequest({\n merchantId,\n stripeToken,\n })).pipe(\n mapTo(true)\n );\n }\n\n generateAccountBalanceReport(merchantId: string): Observable<Blob> {\n const queryParams = `?merchantID=${merchantId}`;\n return this.http.get(\n this.hostService.httpsHostWithScheme() + '/merchant-balance-details-report' + queryParams,\n this.apiOptions()\n ).pipe(\n share(),\n catchError(handleCsvError)\n );\n }\n\n getMultiRetailConfigurations(merchantId: string, retailGroupIds: string[]): Observable<Map<string, RetailConfiguration>> {\n const request = new GetMultiRetailConfigurationsRequest({\n merchantId,\n retailGroupIds\n });\n return this.merchantApi.getMultiRetailConfigurations(request).pipe(\n map((resp: GetMultiRetailConfigurationsResponse) => {\n const configMap = new Map<string, RetailConfiguration>();\n retailGroupIds.forEach(groupId => {\n configMap.set(groupId, retailConfigurationFromApi(resp.retailConfigurations[groupId]));\n });\n return configMap\n })\n )\n }\n\n upsertRetailConfiguration(\n merchantId: string,\n retailGroupId: string,\n currencyCode: string,\n currencyConversionRate?: number,\n ): Observable<null> {\n const request = new UpsertRetailConfigurationRequest({\n merchantId,\n retailGroupId,\n currencyCode,\n currencyConversionRate,\n });\n return this.merchantApi.upsertRetailConfiguration(request).pipe(mapTo(null));\n }\n\n getPayoutSummary(merchantId: string): Observable<PayoutSummary> {\n return this.merchantApi.getPayoutSummary(new GetPayoutSummaryRequest({\n merchantId,\n })).pipe(map(resp => payoutSummaryFromAPI(resp)));\n }\n\n getRetailPayout(merchantId: string, payoutId: string): Observable<RetailPayout> {\n return this.merchantApi.getRetailPayout(new GetRetailPayoutRequest({\n merchantId,\n payoutId,\n })).pipe(map(resp => resp.payout))\n }\n\n listRetailPayouts(merchantId: string, cursor: string = '', pageSize: number = 10): Observable<PagedResponse<RetailPayout>> {\n return this.merchantApi.listRetailPayouts(new ListRetailPayoutsRequest({\n merchantId: merchantId,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n })).pipe(\n map((resp: ListRetailPayoutsResponse) => {\n const retailPayouts = (resp.payouts || []);\n return new PagedResponse(retailPayouts, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);\n })\n );\n }\n\n /**\n * Updates the default retail customer configuration for a given merchant and group ID\n * @param merchantId - the merchant to update for\n * @param retailGroupId - the group ID to update for\n * @param defaultCustomerConfiguration - the default customer configuration to apply. If `null`, the merchant/group will have no defaults\n */\n upsertDefaultRetailCustomerConfiguration(\n merchantId: string,\n retailGroupId: string,\n defaultCustomerConfiguration?: DefaultCustomerConfiguration\n ): Observable<HttpResponse<null>> {\n return this.merchantApi.upsertDefaultRetailCustomerConfiguration(\n new UpsertDefaultRetailCustomerConfigurationRequest({\n merchantId,\n retailGroupId,\n defaultCustomerConfiguration: defaultCustomerConfigurationToApi(defaultCustomerConfiguration),\n })\n );\n }\n}\n","import {\n Dispute as DisputeApi,\n DisputeEvidence as DisputeEvidenceApi,\n DisputeEvidenceDetails as DisputeEvidenceDetailsApi,\n DisputeStatus as DisputeStatusApi,\n File as FileApi,\n} from '../_internal';\n\nexport enum DisputeStatus {\n WARNING_NEEDS_RESPONSE = 'Warning Needs Response',\n WARNING_UNDER_REVIEW = 'Warning Under Review',\n WARNING_CLOSED = 'Warning Closed',\n NEEDS_RESPONSE = 'Needs Response',\n UNDER_REVIEW = 'Under Review',\n CHARGE_REFUNDED = 'Charge Refunded',\n LOST = 'Lost',\n WON = 'Won'\n}\n\nexport interface Dispute {\n id: string;\n paymentId: string;\n status: DisputeStatus;\n amount: number;\n created: Date;\n currencyCode: string;\n evidence: DisputeEvidence;\n evidenceDetails: DisputeEvidenceDetails;\n isChargeRefundable: boolean;\n reason: string;\n fee: number;\n feeCurrencyCode: string;\n}\n\nexport interface DisputeEvidence {\n customerCommunication: File;\n customerSignature: File;\n shippingDocumentation: File;\n receipt: File;\n uncategorizedFile: File;\n billingAddress: string;\n customerEmailAddress: string;\n customerName: string;\n productDescription: string;\n}\n\nexport interface DisputeEvidenceRequest {\n billingAddress?: string;\n customerEmailAddress?: string;\n customerName?: string;\n productDescription?: string;\n customerSignatureFileId?: string;\n customerCommunicationFileId?: string;\n receiptFileId?: string;\n shippingDocumentationFileId?: string;\n uncategorizedFileId?: string;\n}\n\nexport interface File {\n created: Date;\n id: string;\n filename: string;\n url: string;\n}\n\nexport interface DisputeEvidenceDetails {\n dueBy: Date;\n hasEvidence: boolean;\n pastDue: boolean;\n submissionCount: number;\n}\n\nexport function disputeFromApi(dispute: DisputeApi): Dispute {\n if (!dispute) {\n return null;\n }\n return {\n id: dispute.id || '',\n paymentId: dispute.paymentId || '',\n status: disputeStatusFromApi(dispute.status),\n amount: dispute.amount || 0,\n created: dispute.created,\n currencyCode: dispute.currencyCode,\n evidence: disputeEvidenceFromApi(dispute.evidence),\n evidenceDetails: disputeEvidenceDetailsFromApi(dispute.evidenceDetails),\n isChargeRefundable: dispute.isChargeRefundable || false,\n reason: dispute.reason || '',\n fee: dispute.fee,\n feeCurrencyCode: dispute.feeCurrencyCode,\n };\n}\n\nfunction disputeEvidenceFromApi(evidence: DisputeEvidenceApi): DisputeEvidence {\n if (!evidence) {\n return null;\n }\n return {\n customerCommunication: fileFromApi(evidence.customerCommunication),\n customerSignature: fileFromApi(evidence.customerSignature),\n shippingDocumentation: fileFromApi(evidence.shippingDocumentation),\n receipt: fileFromApi(evidence.receipt),\n uncategorizedFile: fileFromApi(evidence.uncategorizedFile),\n billingAddress: evidence.billingAddress || '',\n customerEmailAddress: evidence.customerEmailAddress || '',\n customerName: evidence.customerName || '',\n productDescription: evidence.productDescription || '',\n }\n}\n\nfunction fileFromApi(file: FileApi): File {\n if (!file) {\n return null;\n }\n return {\n id: file.id || '',\n created: file.created,\n filename: file.filename || '',\n url: file.url || '',\n }\n}\n\nfunction disputeEvidenceDetailsFromApi(evidence: DisputeEvidenceDetailsApi): DisputeEvidenceDetails {\n if (!evidence) {\n return null;\n }\n return {\n dueBy: evidence.dueBy,\n hasEvidence: evidence.hasEvidence,\n pastDue: evidence.pastDue,\n submissionCount: evidence.submissionCount,\n }\n}\n\nexport function disputeStatusFromApi(status: DisputeStatusApi): DisputeStatus {\n switch (status) {\n case DisputeStatusApi.DISPUTE_STATUS_WARNING_NEEDS_RESPONSE:\n return DisputeStatus.WARNING_NEEDS_RESPONSE;\n case DisputeStatusApi.DISPUTE_STATUS_WARNING_UNDER_REVIEW:\n return DisputeStatus.WARNING_UNDER_REVIEW;\n case DisputeStatusApi.DISPUTE_STATUS_WARNING_CLOSED:\n return DisputeStatus.WARNING_CLOSED;\n case DisputeStatusApi.DISPUTE_STATUS_NEEDS_RESPONSE:\n return DisputeStatus.NEEDS_RESPONSE;\n case DisputeStatusApi.DISPUTE_STATUS_UNDER_REVIEW:\n return DisputeStatus.UNDER_REVIEW;\n case DisputeStatusApi.DISPUTE_STATUS_CHARGE_REFUNDED:\n return DisputeStatus.CHARGE_REFUNDED;\n case DisputeStatusApi.DISPUTE_STATUS_LOST:\n return DisputeStatus.LOST;\n case DisputeStatusApi.DISPUTE_STATUS_WON:\n return DisputeStatus.WON;\n default:\n return null;\n }\n}\n","import { PaymentSource as PaymentSourceApi } from '../_internal';\n\nexport enum PaymentSource {\n UNSET = 'Unset',\n STRIPE = 'Stripe',\n VCASH = 'vCash',\n}\n\nexport function paymentSourceFromApi(pApi: PaymentSourceApi): PaymentSource {\n switch (pApi) {\n case PaymentSourceApi.PAYMENT_SOURCE_STRIPE:\n return PaymentSource.STRIPE;\n case PaymentSourceApi.PAYMENT_SOURCE_VCASH:\n return PaymentSource.VCASH;\n default:\n return PaymentSource.UNSET;\n }\n}\n","import { PaymentStatus as PaymentStatusApi } from '../_internal';\n\nexport enum PaymentStatus {\n Unset = 'UNSET',\n Failed = 'FAILED',\n Succeeded = 'SUCCEEDED'\n}\n\nexport function paymentStatusFromApi(psApi: PaymentStatusApi): PaymentStatus {\n switch (psApi) {\n case PaymentStatusApi.PAYMENT_STATUS_FAILED:\n return PaymentStatus.Failed;\n case PaymentStatusApi.PAYMENT_STATUS_SUCCEEDED:\n return PaymentStatus.Succeeded;\n }\n return PaymentStatus.Unset\n}\n","import { PaymentAllocationType as PaymentAllocationTypeApi } from '../_internal';\n\nexport enum PaymentAllocationType {\n UNSET = 'UNSET',\n PURCHASE = 'PURCHASE',\n INVOICE = 'INVOICE',\n}\n\nexport function paymentAllocationTypeFromApi(pApi: PaymentAllocationTypeApi): PaymentAllocationType {\n switch (pApi) {\n case PaymentAllocationTypeApi.PAYMENT_ALLOCATION_TYPE_INVOICE:\n return PaymentAllocationType.INVOICE;\n case PaymentAllocationTypeApi.PAYMENT_ALLOCATION_TYPE_PURCHASE:\n return PaymentAllocationType.PURCHASE;\n default:\n return PaymentAllocationType.UNSET;\n }\n}\n","import { PaymentPaymentAllocationInterface, PaymentInterface } from '../_internal';\nimport { Currency, currencyFromApi } from '../pricing';\nimport { PaymentSource, paymentSourceFromApi } from './payment-source';\nimport { PaymentStatus, paymentStatusFromApi } from './payment-status';\nimport { PaymentAllocationType, paymentAllocationTypeFromApi } from './payment-allocation-type';\n\nexport interface Intent {\n stripeClientSecret?: string;\n intentId?: string;\n}\n\nexport interface ListPaymentsFilter {\n merchantId?: string;\n allocationIds?: string[];\n start?: Date;\n end?: Date;\n}\n\nexport interface Payment {\n merchantId: string;\n created: Date;\n currency: Currency;\n paymentSource: PaymentSource;\n allocations: PaymentAllocation[];\n total: number;\n description: string;\n externalReferenceId: string;\n status: PaymentStatus;\n}\n\nexport interface PaymentAllocation {\n referenceId: string;\n amount: number;\n type: PaymentAllocationType;\n}\n\nexport function paymentFromApi(pApi: PaymentInterface): Payment {\n return {\n merchantId: pApi.merchantId || '',\n created: pApi.created ? new Date(pApi.created) : null,\n currency: pApi.currency ? currencyFromApi(pApi.currency) : Currency.USD,\n paymentSource: paymentSourceFromApi(pApi.paymentSource),\n allocations: pApi.allocations ? pApi.allocations.map(p => paymentAllocationFromApi(p)) : [],\n total: pApi.total || 0,\n description: pApi.description || '',\n externalReferenceId: pApi.externalReferenceId || '',\n status: paymentStatusFromApi(pApi.status)\n }\n};\n\nexport function paymentAllocationFromApi(pApi: PaymentPaymentAllocationInterface): PaymentAllocation {\n return {\n referenceId: pApi.referenceId || '',\n amount: pApi.amount || 0,\n type: pApi.type ? paymentAllocationTypeFromApi(pApi.type) : PaymentAllocationType.UNSET\n }\n}\n\nexport interface RetailProvider {\n statementDescriptor: string;\n stripeConnectId: string;\n}\n\nexport interface DeclineReason {\n description: string;\n nextSteps: string;\n}\n\nexport const DeclineReasons: Map<string, DeclineReason> = new Map<string, DeclineReason>(\n [\n [\n 'authentication_required', {\n description: 'The card was declined as the transaction requires authentication.',\n nextSteps: 'The customer should try again and authenticate their card when prompted during the transaction.'\n }\n ],\n [\n 'approve_with_id', {\n description: 'The payment cannot be authorized.',\n nextSteps: 'The payment should be attempted again. If it still cannot be processed, the customer needs to contact their card issuer.'\n }\n ],\n [\n 'call_issuer', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'card_not_supported', {\n description: 'The card does not support the specified currency.',\n nextSteps: 'The customer needs to check with the issuer whether the card can be used for the type of currency specified.'\n }\n ],\n [\n 'do_not_honor', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'do_not_try_again', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer should contact their card issuer for more information.'\n }\n ],\n [\n 'duplicate_transaction', {\n description: 'A transaction with identical amount and credit card information was submitted very recently.',\n nextSteps: 'Check to see if a recent payment already exists.'\n }\n ],\n [\n 'expired_card', {\n description: 'The card has expired.',\n nextSteps: 'The customer should use another card.'\n }\n ],\n [\n 'fraudulent', {\n description: 'The payment has been declined as Stripe suspects it is fraudulent.',\n nextSteps: 'Do not report more detailed information to your customer. Instead, present as you would the generic_decline described below.'\n }\n ],\n [\n 'generic_decline', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'incorrect_number', {\n description: 'The card number is incorrect.',\n nextSteps: 'The customer should try again using the correct card number.'\n }\n ],\n [\n 'incorrect_cvc', {\n description: 'The CVC number is incorrect.',\n nextSteps: 'The customer should try again using the correct CVC.'\n }\n ],\n [\n 'incorrect_pin', {\n description: 'The PIN entered is incorrect. This decline code only applies to payments made with a card reader.',\n nextSteps: 'The customer should try again using the correct PIN.'\n }\n ],\n [\n 'incorrect_zip', {\n description: 'The ZIP/postal code is incorrect.',\n nextSteps: 'The customer should try again using the correct billing ZIP/postal code.'\n }\n ],\n [\n 'insufficient_funds', {\n description: 'The card has insufficient funds to complete the purchase.',\n nextSteps: 'The customer should use an alternative payment method.'\n }\n ],\n [\n 'invalid_account', {\n description: 'The card, or account the card is connected to, is invalid.',\n nextSteps: 'The customer needs to contact their card issuer to check that the card is working correctly.'\n }\n ],\n [\n 'invalid_amount', {\n description: 'The payment amount is invalid, or exceeds the amount that is allowed.',\n nextSteps: 'If the amount appears to be correct, the customer needs to check with their card issuer that they can make purchases of that amount.'\n }\n ],\n [\n 'invalid_cvc', {\n description: 'The CVC number is incorrect.',\n nextSteps: 'The customer should try again using the correct CVC.'\n }\n ],\n [\n 'invalid_expiry_year', {\n description: 'The expiration year invalid.',\n nextSteps: 'The customer should try again using the correct expiration date.'\n }\n ],\n [\n 'invalid_number', {\n description: 'The card number is incorrect.',\n nextSteps: 'The customer should try again using the correct card number.'\n }\n ],\n [\n 'invalid_pin', {\n description: 'The PIN entered is incorrect. This decline code only applies to payments made with a card reader.',\n nextSteps: 'The customer should try again using the correct PIN.'\n }\n ],\n [\n 'issuer_not_available', {\n description: 'The card issuer could not be reached, so the payment could not be authorized.',\n nextSteps: 'The payment should be attempted again. If it still cannot be processed, the customer needs to contact their card issuer.'\n }\n ],\n [\n 'lost_card', {\n description: 'The payment has been declined because the card is reported lost.',\n nextSteps: 'The specific reason for the decline should not be reported to the customer. Instead, it needs to be presented as a generic decline.'\n }\n ],\n [\n 'merchant_blacklist', {\n description: 'The payment has been declined because it matches a value on the Stripe user\\'s block list.',\n nextSteps: 'Do not report more detailed information to your customer. Instead, present as you would the generic_decline described above.'\n }\n ],\n [\n 'new_account_information_available', {\n description: 'The card, or account the card is connected to, is invalid.',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'no_action_taken', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer should contact their card issuer for more information.'\n }\n ],\n [\n 'not_permitted', {\n description: 'The payment is not permitted.',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'offline_pin_required', {\n description: 'The card has been declined as it requires a PIN.',\n nextSteps: 'The customer should try again by inserting their card and entering a PIN.'\n }\n ],\n [\n 'online_or_offline_pin_required', {\n description: 'The card has been declined as it requires a PIN.',\n nextSteps: 'If the card reader supports Online PIN, the customer should be prompted for a PIN without a new transaction being created. If the card reader does not support Online PIN, the customer should try again by inserting their card and entering a PIN.'\n }\n ],\n [\n 'pickup_card', {\n description: 'The card cannot be used to make this payment (it is possible it has been reported lost or stolen).',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'pin_try_exceeded', {\n description: 'The allowable number of PIN tries has been exceeded.',\n nextSteps: 'The customer must use another card or method of payment.'\n }\n ],\n [\n 'processing_error', {\n description: 'An error occurred while processing the card.',\n nextSteps: 'The payment should be attempted again. If it still cannot be processed, try again later.'\n }\n ],\n [\n 'reenter_transaction', {\n description: 'The payment could not be processed by the issuer for an unknown reason.',\n nextSteps: 'The payment should be attempted again. If it still cannot be processed, the customer needs to contact their card issuer.'\n }\n ],\n [\n 'restricted_card', {\n description: 'The card cannot be used to make this payment (it is possible it has been reported lost or stolen).',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'revocation_of_all_authorizations', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer should contact their card issuer for more information.'\n }\n ],\n [\n 'revocation_of_authorization', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer should contact their card issuer for more information.'\n }\n ],\n [\n 'security_violation', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'service_not_allowed', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer should contact their card issuer for more information.'\n }\n ],\n [\n 'stolen_card', {\n description: 'The payment has been declined because the card is reported stolen.',\n nextSteps: 'The specific reason for the decline should not be reported to the customer. Instead, it needs to be presented as a generic decline.'\n }\n ],\n [\n 'stop_payment_order', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer should contact their card issuer for more information.'\n }\n ],\n [\n 'testmode_decline', {\n description: 'A Stripe test card number was used.',\n nextSteps: 'A genuine card must be used to make a payment.'\n }\n ],\n [\n 'transaction_not_allowed', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'The customer needs to contact their card issuer for more information.'\n }\n ],\n [\n 'try_again_later', {\n description: 'The card has been declined for an unknown reason.',\n nextSteps: 'Ask the customer to attempt the payment again. If subsequent payments are declined, the customer should contact their card issuer for more information.'\n }\n ],\n [\n 'withdrawal_count_limit_exceeded', {\n description: 'The customer has exceeded the balance or credit limit available on their card.',\n nextSteps: 'The customer should use an alternative payment method.'\n }\n ]\n ]\n);\n","import { PaymentCard as ApiPaymentCard, PaymentCardCARD_TYPE, PaymentCardFUNDING_TYPE } from '../_internal';\n\nexport interface PaymentCard {\n cardType: PaymentCardTypeLabel;\n fundingType: FundingTypeLabel;\n cardId: string;\n lastFourDigits: string;\n expiryMonth: number;\n expiryYear: number;\n cardholderName?: string;\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zipCode?: string;\n default?: boolean;\n}\n\nexport enum FundingType {\n PREPAID = 'Pre-paid',\n DEBIT = 'Debit',\n CREDIT = 'Credit',\n UNKNOWN = 'Unknown',\n}\n\nexport interface FundingTypeLabel {\n value: string,\n id: FundingType\n}\n\nexport enum PaymentCardType {\n AMEX = 'American Express',\n VISA = 'Visa',\n MASTERCARD = 'Mastercard',\n JCB = 'JCB',\n DINERS_CLUB = 'Diners Club',\n DISCOVER = 'Discover',\n UNKNOWN = 'Unknown',\n}\n\nexport interface PaymentCardTypeLabel {\n id: PaymentCardType,\n value: string,\n}\n\nconst paymentCardTypeLabelMap = new Map<PaymentCardCARD_TYPE, PaymentCardTypeLabel>([\n [PaymentCardCARD_TYPE.AMEX, {id: PaymentCardType.AMEX, value: 'American Express'}],\n [PaymentCardCARD_TYPE.VISA, {id: PaymentCardType.VISA, value: 'Visa'}],\n [PaymentCardCARD_TYPE.MASTERCARD, {id: PaymentCardType.MASTERCARD, value: 'Mastercard'}],\n [PaymentCardCARD_TYPE.JCB, {id: PaymentCardType.JCB, value: 'JCB'}],\n [PaymentCardCARD_TYPE.DINERS_CLUB, {id: PaymentCardType.DINERS_CLUB, value: 'Diners Club'}],\n [PaymentCardCARD_TYPE.DISCOVER, {id: PaymentCardType.DISCOVER, value: 'Discover'}],\n [PaymentCardCARD_TYPE.UNKNOWN, {id: PaymentCardType.UNKNOWN, value: 'Unknown'}],\n])\n\nfunction convertApiPaymentCardType(t: PaymentCardCARD_TYPE): PaymentCardTypeLabel {\n return paymentCardTypeLabelMap.get(t)\n}\n\nconst fundingTypeLabelMap = new Map<PaymentCardFUNDING_TYPE, FundingTypeLabel>([\n [PaymentCardFUNDING_TYPE.FUNDING_TYPE_DEBIT, {id: FundingType.DEBIT, value: 'Debit'}],\n [PaymentCardFUNDING_TYPE.FUNDING_TYPE_CREDIT, {id: FundingType.CREDIT, value: 'Credit'}],\n [PaymentCardFUNDING_TYPE.FUNDING_TYPE_PREPAID, {id: FundingType.PREPAID, value: 'Pre-paid'}],\n [PaymentCardFUNDING_TYPE.FUNDING_TYPE_UNKNOWN, {id: FundingType.UNKNOWN, value: 'Unknown'}],\n])\n\nexport function convertApiFundingType(t: PaymentCardFUNDING_TYPE): FundingTypeLabel {\n return fundingTypeLabelMap.get(t)\n}\n\nexport function convertApiPaymentCardDetails(c: ApiPaymentCard): PaymentCard {\n return {\n cardType: convertApiPaymentCardType(c.cardType),\n fundingType: convertApiFundingType(c.fundingType),\n cardId: c.cardId,\n lastFourDigits: c.lastFourDigits,\n expiryMonth: c.expiryMonth,\n expiryYear: c.expiryYear,\n cardholderName: c.cardholderName,\n address: c.address,\n city: c.city,\n state: c.state,\n country: c.country,\n zipCode: c.zipCode,\n default: c.default\n } as PaymentCard;\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n CreatePaymentCardRequest,\n ListPaymentCardsRequest,\n ListPaymentCardsResponse,\n MerchantApiService,\n PaymentCard as ApiPaymentCard,\n SetDefaultPaymentCardRequest,\n UpdatePaymentCardRequest,\n} from '../_internal';\nimport { convertApiPaymentCardDetails, PaymentCard } from './payment-card';\n\n@Injectable({providedIn: 'root'})\nexport class PaymentCardService {\n constructor(private apiService: MerchantApiService ) { }\n\n setDefaultCard(merchantId: string, cardId: string): Observable<HttpResponse<null>> {\n const request = new SetDefaultPaymentCardRequest({\n merchantId, cardId\n })\n return this.apiService.setDefaultPaymentCard(request)\n }\n\n getFirstPaymentCard(merchantId: string): Observable<PaymentCard> {\n return this.getAll(merchantId).pipe(\n map((cards: PaymentCard[]) => cards && cards.length ? cards[0] : null)\n )\n }\n\n getAll(merchantId: string): Observable<PaymentCard[]> {\n const req = new ListPaymentCardsRequest({\n merchantId: merchantId,\n });\n return this.apiService.listPaymentCards(req)\n .pipe(\n map((res: ListPaymentCardsResponse) => res && res.paymentCard ? res.paymentCard : []),\n map((paymentCards: ApiPaymentCard[]) => {\n return paymentCards.map((c: ApiPaymentCard) => convertApiPaymentCardDetails(c));\n }\n )\n )\n }\n\n update(merchantId: string, token: string): Observable<HttpResponse<null>> {\n const request = new UpdatePaymentCardRequest({merchantId: merchantId, stripeToken: token});\n return this.apiService.updatePaymentCard(new UpdatePaymentCardRequest(request));\n }\n\n create(merchantId: string, token: string): Observable<HttpResponse<null>> {\n const request = new CreatePaymentCardRequest({merchantId: merchantId, stripeToken: token});\n return this.apiService.createPaymentCard(new CreatePaymentCardRequest(request));\n }\n}\n","import {\n CardType,\n PaymentStatus as PaymentStatusApi,\n RetailPayment as RetailPaymentApi,\n RetailPaymentCardDetails as RetailPaymentCardDetailsApi,\n RetailPaymentReferenceType as RetailPaymentReferenceTypeApi,\n} from '../_internal';\nimport {Dispute, disputeFromApi} from './dispute';\nimport {PaymentCardType} from '../payment-card';\n\nexport enum RetailPaymentStatus {\n Failed = 'Failed',\n Succeeded = 'Succeeded',\n Refunded = 'Refunded',\n PartialyRefunded = 'Partially refunded',\n Disputed = 'Disputed'\n}\n\nexport interface CardDetails {\n cardType: PaymentCardType;\n lastFourDigits: string;\n}\n\nexport interface RetailPayment {\n id: string;\n merchantId: string;\n created: Date;\n currencyCode: string;\n amount: number;\n referenceId: string;\n referenceType: RetailPaymentReferenceTypeApi;\n description: string;\n customerId: string;\n status: RetailPaymentStatus;\n failureCode: string;\n failureMessage: string;\n applicationFee: number;\n dispute: Dispute;\n cardDetails: CardDetails\n}\n\nexport function retailPaymentFromApi(pApi: RetailPaymentApi): RetailPayment {\n return {\n id: pApi.id || '',\n merchantId: pApi.merchantId || '',\n created: pApi.created || null,\n currencyCode: pApi.currencyCode || '',\n amount: pApi.amount || 0.0,\n referenceId: pApi.referenceId || '',\n referenceType: pApi.referenceType,\n description: pApi.description || '',\n customerId: pApi.customerId || '',\n status: retailPaymentStatusFromApi(pApi.status, pApi.disputed),\n failureCode: pApi.failureCode,\n failureMessage: pApi.failureMessage,\n applicationFee: pApi.applicationFee,\n dispute: disputeFromApi(pApi.dispute),\n cardDetails: cardDetailsFromApi(pApi.cardDetails)\n };\n}\n\nfunction cardDetailsFromApi(cardDetails: RetailPaymentCardDetailsApi): CardDetails {\n return {\n lastFourDigits: cardDetails.lastFourDigits,\n cardType: cardTypeFromApi(cardDetails.cardType)\n };\n}\n\nfunction cardTypeFromApi(cardType: CardType): PaymentCardType {\n switch (cardType) {\n case CardType.CARD_TYPE_VISA:\n return PaymentCardType.VISA;\n case CardType.CARD_TYPE_MASTERCARD:\n return PaymentCardType.MASTERCARD;\n case CardType.CARD_TYPE_AMEX:\n return PaymentCardType.AMEX;\n case CardType.CARD_TYPE_DISCOVER:\n return PaymentCardType.DISCOVER;\n case CardType.CARD_TYPE_JCB:\n return PaymentCardType.JCB;\n case CardType.CARD_TYPE_DINERS_CLUB:\n return PaymentCardType.UNKNOWN;\n }\n}\n\nexport function retailPaymentStatusFromApi(status: PaymentStatusApi, disputed: boolean): RetailPaymentStatus {\n if (disputed) {\n return RetailPaymentStatus.Disputed;\n }\n switch (status) {\n case PaymentStatusApi.PAYMENT_STATUS_SUCCEEDED:\n return RetailPaymentStatus.Succeeded;\n case PaymentStatusApi.PAYMENT_STATUS_FAILED:\n return RetailPaymentStatus.Failed;\n case PaymentStatusApi.PAYMENT_STATUS_REFUNDED:\n return RetailPaymentStatus.Refunded;\n case PaymentStatusApi.PAYMENT_STATUS_PARTIALLY_REFUNDED:\n return RetailPaymentStatus.PartialyRefunded;\n default:\n return null;\n }\n}\n\n\n","import {\n RetailStatusResponseInterface,\n RetailStatusResponseVerificationErrorInterface,\n RetailStatusResponseVerificationRequirementsInterface\n} from '../_internal';\n\nexport interface RetailStatus {\n supportedRegion: boolean;\n canAcceptPayment: boolean;\n disabledReason: DisabledReason;\n requirements: Requirements;\n}\n\nexport interface Requirements {\n due: string[];\n errors: VerificationError[];\n}\n\nexport interface VerificationError {\n requirement: string;\n code: string;\n reason: string;\n}\n\nexport enum DisabledReason {\n FIELDS_NEEDED = 'fields needed',\n LISTED = 'listed',\n REJECTED = 'rejected',\n UNDER_REVIEW = 'under review',\n OTHER = 'other',\n }\n\nfunction disabledReasonFromAPI(reason: string): DisabledReason | null {\n switch (reason) {\n case 'rejected.fraud':\n case 'rejected.listed':\n case 'rejected.other':\n case 'rejected.terms_of_service':\n return DisabledReason.REJECTED;\n case 'other':\n return DisabledReason.OTHER;\n case 'listed':\n return DisabledReason.LISTED;\n case 'under_review':\n return DisabledReason.UNDER_REVIEW;\n default:\n return null;\n }\n}\n\nfunction verificationErrorFromAPI(e: RetailStatusResponseVerificationErrorInterface): VerificationError {\n return {\n requirement: e.requirement,\n code: e.code,\n reason: e.reason\n }\n}\n\nfunction requirementsFromAPI(requirements: RetailStatusResponseVerificationRequirementsInterface): Requirements {\n if (!requirements) {\n return {due: [], errors: []}\n }\n return {\n due: requirements.due,\n errors: (requirements.error || []).map(e => verificationErrorFromAPI(e))\n }\n}\n\nexport function retailResponseFromAPI(proto: RetailStatusResponseInterface): RetailStatus {\n return {\n supportedRegion: proto.supportedRegion || false,\n canAcceptPayment: proto.canAcceptPayment || false,\n disabledReason: disabledReasonFromAPI(proto.disabledReason),\n requirements: requirementsFromAPI(proto.requirements)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, mapTo } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport {\n ListPaymentRequest,\n ListRetailDisputesRequest,\n ListRetailDisputesResponse,\n ListRetailPaymentsRequest,\n ListRetailPaymentsRequestListRetailPaymentsFilters,\n ListRetailPaymentsResponse,\n PagedRequestOptions,\n PaymentApiService,\n PrepareRetailPaymentRequest,\n RetailPaymentsEnabledRequest,\n RetailStatusRequest,\n RetailStatusResponse,\n} from '../_internal';\nimport { Dispute, DisputeEvidenceRequest, disputeFromApi } from './dispute';\nimport {\n Intent,\n ListPaymentsFilter,\n Payment,\n paymentFromApi,\n RetailProvider,\n} from './payment';\nimport { RetailPayment, retailPaymentFromApi } from './retail-payment';\nimport { retailResponseFromAPI, RetailStatus } from './retail-status';\n\n@Injectable({providedIn: 'root'})\nexport class PaymentService {\n constructor(\n private paymentApi: PaymentApiService,\n ) {\n }\n\n listPayments(filters: ListPaymentsFilter, cursor: string, pageSize: number): Observable<PagedResponse<Payment>> {\n const req = new ListPaymentRequest({\n filters: filters,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n });\n return this.paymentApi.list(req).pipe(\n map(response => {\n const payments = (response.payments || []).map(payment => paymentFromApi(payment));\n return new PagedResponse(payments, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n prepareRetailPayment(merchantId: string, customerId: string): Observable<Intent> {\n const req = new PrepareRetailPaymentRequest({\n merchantId: merchantId,\n customerId: customerId,\n });\n return this.paymentApi.prepareRetail(req).pipe(\n map(response => {\n return {\n stripeClientSecret: response.stripeClientSecret,\n intentId: response.intentId\n };\n })\n );\n }\n\n getRetail(merchantId: string, paymentId: string): Observable<RetailPayment> {\n return this.paymentApi.getRetail({\n merchantId: merchantId,\n paymentId: paymentId\n }).pipe(map(resp => retailPaymentFromApi(resp.payment)));\n }\n\n listRetail(\n merchantId: string,\n cursor: string = '',\n pageSize: number = 10,\n payoutId?: string,\n customerId?: string,\n createdDateGte?: Date,\n createdDateLte?: Date,\n ): Observable<PagedResponse<RetailPayment>> {\n const zeroDate = new Date('0001-01-01T00:00:00Z').valueOf();\n const filters: ListRetailPaymentsRequestListRetailPaymentsFilters = new ListRetailPaymentsRequestListRetailPaymentsFilters({\n payoutId: payoutId || '',\n customerId: customerId || '',\n });\n if (!!createdDateGte && createdDateGte.valueOf() !== zeroDate) {\n filters.createdDateGte = createdDateGte\n }\n if (!!createdDateLte && createdDateLte.valueOf() !== zeroDate) {\n filters.createdDateLte = createdDateLte\n }\n return this.paymentApi.listRetail(new ListRetailPaymentsRequest({\n merchantId: merchantId,\n filters: filters,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n })).pipe(\n map((resp: ListRetailPaymentsResponse) => {\n const retailPayments = (resp.payments || []).map(payment => retailPaymentFromApi(payment));\n return new PagedResponse(retailPayments, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);\n })\n );\n }\n\n getRetailDispute(merchantId: string, disputeId: string): Observable<Dispute> {\n return this.paymentApi.getRetailDispute({\n merchantId: merchantId,\n disputeId: disputeId,\n }).pipe(map(resp => disputeFromApi(resp.dispute)));\n }\n\n listRetailDisputes(merchantId: string, cursor: string = '', pageSize: number = 10): Observable<PagedResponse<Dispute>> {\n return this.paymentApi.listRetailDisputes(new ListRetailDisputesRequest({\n merchantId: merchantId,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n })).pipe(\n map((resp: ListRetailDisputesResponse) => {\n const retailPayments = (resp.disputes || []).map(d => disputeFromApi(d));\n return new PagedResponse(retailPayments, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);\n })\n );\n }\n\n retailStatus(merchantId: string): Observable<RetailStatus> {\n const req = new RetailStatusRequest({ merchantId });\n return this.paymentApi.retailStatus(req).pipe(\n map((r: RetailStatusResponse) => retailResponseFromAPI(r))\n )\n }\n\n retailPaymentsEnabled(merchantId: string): Observable<boolean> {\n const req = new RetailPaymentsEnabledRequest({ merchantId });\n return this.paymentApi.retailPaymentsEnabled(req).pipe(\n map(resp => resp.enabled),\n );\n }\n\n configureRetailProvider(merchantId: string, successUrl: string, failureUrl: string): Observable<string> {\n return this.paymentApi.configureRetailProvider({\n merchantId,\n successUrl,\n failureUrl\n }).pipe(map(resp => resp.stripeUrl))\n }\n\n getRetailProvider(merchantId: string): Observable<RetailProvider> {\n return this.paymentApi.getRetailProvider({merchantId}).pipe(\n map(resp => {\n return {\n statementDescriptor: resp.statementDescriptor,\n stripeConnectId: resp.stripeConnectId\n }\n })\n )\n }\n\n updateRetailProvider(merchantId: string, statementDescriptor: string): Observable<null> {\n return this.paymentApi.updateRetailProvider({merchantId, statementDescriptor}).pipe(mapTo(null))\n }\n\n submitEvidence(\n merchantId: string,\n disputeId: string,\n paymentId: string,\n submit: boolean,\n evidence?: DisputeEvidenceRequest\n ): Observable<null> {\n return this.paymentApi.submitEvidence({\n merchantId: merchantId,\n disputeId: disputeId,\n paymentId: paymentId,\n evidence: {\n billingAddress: evidence?.billingAddress || null,\n customerEmailAddress: evidence?.customerEmailAddress || null,\n customerName: evidence?.customerName || null,\n productDescription: evidence?.productDescription || null,\n customerSignatureFileId: evidence?.customerSignatureFileId || null,\n customerCommunicationFileId: evidence?.customerCommunicationFileId || null,\n receiptFileId: evidence?.receiptFileId || null,\n shippingDocumentationFileId: evidence?.shippingDocumentationFileId || null,\n uncategorizedFileId: evidence?.uncategorizedFileId || null,\n },\n submit: submit\n }).pipe(mapTo(null))\n }\n\n closeDispute(merchantId: string, disputeId: string): Observable<null> {\n return this.paymentApi.closeRetailDispute({\n merchantId: merchantId,\n disputeId: disputeId,\n }).pipe(mapTo(null))\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, mapTo } from 'rxjs/operators';\nimport {\n convertApiPaymentCardDetails,\n PaymentCard,\n} from '../payment-card/payment-card';\nimport {\n DeletePaymentCardRequest,\n ListPaymentCardsRequest,\n ListPaymentCardsResponse,\n PaymentMethodApiService,\n SetDefaultPaymentMethodRequest,\n} from '../_internal';\n\n@Injectable({providedIn: 'root'})\nexport class PaymentMethodService {\n constructor(\n private apiService: PaymentMethodApiService,\n ) {\n }\n\n listPaymentCards(merchantId: string, customerId: string): Observable<PaymentCard[]> {\n const req = new ListPaymentCardsRequest({\n merchantId,\n customerId\n });\n return this.apiService.listPaymentCards(req).pipe(\n map((resp: ListPaymentCardsResponse) => {\n return (resp && resp.paymentCard ? resp.paymentCard : []).map(c => convertApiPaymentCardDetails(c));\n }),\n )\n }\n\n deletePaymentCard(merchantId: string, cardId: string): Observable<boolean> {\n const req = new DeletePaymentCardRequest({\n merchantId,\n cardId\n });\n return this.apiService.deletePaymentCard(req).pipe(\n mapTo(true)\n );\n }\n\n setDefaultPaymentCard(merchantId: string, customerId: string, paymentMethodId: string): Observable<boolean> {\n const req = new SetDefaultPaymentMethodRequest({\n merchantId,\n customerId,\n paymentMethodId\n });\n return this.apiService.setDefaultPaymentMethod(req).pipe(\n mapTo(true)\n );\n }\n}\n\n","import {\n RetentionMetrics as RetentionMetricsApi,\n ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup as RetentionMetricsByGroupApi\n} from '../_internal';\n\nexport interface RetentionMetrics {\n sku: string;\n productName: string;\n startingCount: number;\n activations: number;\n deactivations: number;\n churn: number;\n retention: number;\n}\n\nexport interface RetentionMetricsByGroup {\n groupID: string;\n metrics: RetentionMetrics[];\n}\n\n\nexport interface ListSubscriptionRetentionFilters {\n start?: Date;\n end?: Date;\n}\n\nexport function subscriptionMetricFromAPI(mApi: RetentionMetricsApi): RetentionMetrics {\n return {\n sku: mApi.sku || '',\n productName: mApi.productName || '',\n startingCount: mApi.startingCount || 0,\n activations: mApi.activations || 0,\n deactivations: mApi.deactivations || 0,\n churn: mApi.churn || 0.0,\n retention: mApi.retention || 0.0,\n }\n}\n\nexport function subscriptionMetricByGroupFromAPI(mApi: RetentionMetricsByGroupApi): RetentionMetricsByGroup {\n const metrics = (mApi.subscriptionMetrics || []).map(metric => subscriptionMetricFromAPI(metric))\n return {\n groupID: mApi.groupId || '',\n metrics: metrics || []\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport {\n ListSubscriptionRetentionByGroupResponse,\n ListSubscriptionRetentionBySKUResponse,\n ListSubscriptionRetentionRequest,\n ProductSummaryApiService,\n PagedRequestOptions,\n} from '../_internal';\nimport {\n ListSubscriptionRetentionFilters,\n subscriptionMetricFromAPI,\n subscriptionMetricByGroupFromAPI,\n RetentionMetrics,\n RetentionMetricsByGroup\n} from './subscription-retention';\n\n@Injectable({providedIn: 'root'})\nexport class ProductSummaryService {\n constructor(private productSummaryApi: ProductSummaryApiService) { }\n\n listSubscriptionRetentionBySKU(\n merchantID: string, filters: ListSubscriptionRetentionFilters, cursor: string, pageSize: number\n ): Observable<PagedResponse<RetentionMetrics>> {\n const req = new ListSubscriptionRetentionRequest({\n merchantId: merchantID,\n filters,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n });\n return this.productSummaryApi.listSubscriptionRetentionBySku(req).pipe(\n map((response: ListSubscriptionRetentionBySKUResponse) => {\n const metrics = (response.subscriptionMetrics || []).map(metric => subscriptionMetricFromAPI(metric));\n return new PagedResponse(metrics, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n listSubscriptionRetentionByGroup(\n merchantID: string, filters: ListSubscriptionRetentionFilters, cursor: string, pageSize: number\n ): Observable<PagedResponse<RetentionMetricsByGroup>> {\n const req = new ListSubscriptionRetentionRequest({\n merchantId: merchantID,\n filters,\n pagingOptions: new PagedRequestOptions({cursor, pageSize}),\n });\n return this.productSummaryApi.listSubscriptionRetentionByGroup(req).pipe(\n map((response: ListSubscriptionRetentionByGroupResponse) => {\n const metricsByGroup = (response.metricsByGroup || []).map(m => subscriptionMetricByGroupFromAPI(m));\n return new PagedResponse(metricsByGroup, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n}\n","import { ListPurchaseRequestListPurchaseBillingStrategyFilterInterface, ListPurchaseRequestState, PurchaseStatus } from '../_internal';\n\nexport interface ListPurchaseFilter {\n merchantId?: string;\n purchaseId?: string;\n start?: Date;\n end?: Date;\n billingStrategyFilter?: ListPurchaseRequestListPurchaseBillingStrategyFilterInterface;\n state?: ListPurchaseRequestState;\n minPrice?: number;\n status?: PurchaseStatus;\n includeVoided?: boolean;\n}\n\ninterface ListPurchaseFilterHttp {\n merchantId?: string;\n purchaseId?: string;\n start?: string;\n end?: string;\n billingStrategyFilter?: {\n billingStrategy?: number[];\n };\n state?: number;\n minPrice?: number;\n status?: number;\n includeVoided?: boolean;\n}\n\n\nexport function listPurchaseFiltersToHTTPJson(filters: ListPurchaseFilter): ListPurchaseFilterHttp {\n return {\n merchantId: filters.merchantId,\n purchaseId: filters.purchaseId,\n start: filters.start ? filters.start.toISOString() : undefined,\n end: filters.end ? filters.end.toISOString() : undefined,\n billingStrategyFilter: filters.billingStrategyFilter ? {\n billingStrategy: filters.billingStrategyFilter.billingStrategy ?\n filters.billingStrategyFilter.billingStrategy.map(bs => bs.valueOf()) : []\n } : undefined,\n state: !!filters.state ? filters.state.valueOf() : undefined,\n minPrice: filters.minPrice,\n status: filters.status,\n includeVoided: filters.includeVoided\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { share } from 'rxjs/operators';\nimport { HostService } from '../_generated';\nimport { ListPurchaseFilter, listPurchaseFiltersToHTTPJson } from './list-purchases';\n\n@Injectable({providedIn: 'root'})\nexport class PurchaseService {\n\n constructor(\n private hostService: HostService,\n private http: HttpClient\n ) {\n }\n\n exportCSV(filters: ListPurchaseFilter): Observable<Blob> {\n const jsonFilters = listPurchaseFiltersToHTTPJson(filters)\n return this.http.post(\n `${this.hostService.httpsHostWithScheme()}/purchase/export-csv`, {filters: jsonFilters},\n {\n observe: 'body',\n responseType: 'blob',\n withCredentials: true,\n }\n ).pipe(\n share(),\n );\n }\n}\n","import { ReferenceType as ApiReferenceType, RefundInterface, RefundReason as ApiReason, RefundStatus as ApiStatus } from '../_internal';\n\nexport interface Refund {\n merchantId: string,\n chargeId: string;\n refundId: string;\n amount: number;\n reason: RefundReason,\n status: RefundStatus,\n created: Date;\n updated: Date;\n referenceType: ReferenceType;\n referenceId: string;\n}\n\nexport enum RefundReason {\n REQUESTED_BY_CUSTOMER = 'Requested by Customer',\n DUPLICATE = 'Duplicate',\n FRAUDULENT = 'Fraudulent',\n UNKNOWN = 'Unknown'\n}\n\nexport enum RefundStatus {\n SUCCEEDED = 'Succeeded',\n FAILED = 'Failed',\n PENDING = 'Pending',\n UNKNOWN = 'Unknown'\n}\n\nexport enum ReferenceType {\n PURCHASE = 'Purchase',\n PURCHASE_ITEM = 'Purchase Item',\n INVOICE = 'Invoice',\n UNKNOWN = 'Unknown'\n}\n\nexport function reasonToApi(r: RefundReason): ApiReason {\n switch (r) {\n case RefundReason.REQUESTED_BY_CUSTOMER:\n return ApiReason.REQUESTED_BY_CUSTOMER;\n case RefundReason.FRAUDULENT:\n return ApiReason.FRAUDULENT;\n case RefundReason.DUPLICATE:\n return ApiReason.DUPLICATE;\n }\n return ApiReason.DUPLICATE;\n}\n\nexport function reasonFromApi(r: ApiReason): RefundReason {\n switch (r) {\n case ApiReason.DUPLICATE:\n return RefundReason.DUPLICATE\n case ApiReason.REQUESTED_BY_CUSTOMER:\n return RefundReason.REQUESTED_BY_CUSTOMER;\n case ApiReason.FRAUDULENT:\n return RefundReason.FRAUDULENT;\n }\n return RefundReason.REQUESTED_BY_CUSTOMER;\n}\n\nexport function statusFromApi(r: ApiStatus): RefundStatus {\n switch (r) {\n case ApiStatus.SUCCEEDED:\n return RefundStatus.SUCCEEDED\n case ApiStatus.FAILED:\n return RefundStatus.FAILED;\n case ApiStatus.PENDING:\n return RefundStatus.PENDING\n }\n return RefundStatus.SUCCEEDED\n}\n\nexport function referenceFromApi(r: ApiReferenceType): ReferenceType {\n switch (r) {\n case ApiReferenceType.PURCHASE:\n return ReferenceType.PURCHASE\n case ApiReferenceType.PURCHASE_ITEM:\n return ReferenceType.PURCHASE_ITEM\n case ApiReferenceType.INVOICE:\n return ReferenceType.INVOICE\n }\n return ReferenceType.PURCHASE;\n}\n\nexport function refundFromApi(refund: RefundInterface): Refund {\n return {\n merchantId: refund.merchantId || '',\n chargeId: refund.chargeId || '',\n refundId: refund.refundId || '',\n amount: refund.amount || 0,\n reason: reasonFromApi(refund.reason),\n status: statusFromApi(refund.status),\n created: refund.created ? new Date(refund.created) : null,\n updated: refund.updated ? new Date(refund.updated) : null,\n referenceType: referenceFromApi(refund.referenceType),\n referenceId: refund.referenceId || ''\n };\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError as observableThrowError } from 'rxjs';\nimport { catchError, map, mapTo } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport { CreateRefundRequest, ListRefundsRequest, RefundApiService } from '../_internal';\nimport { reasonToApi, Refund, refundFromApi, RefundReason } from './refund';\n\n@Injectable({providedIn: 'root'})\nexport class RefundService {\n constructor(\n private refundApiService: RefundApiService,\n ) {}\n\n create(merchantId: string, chargeId: string, amount: number, reason: RefundReason): Observable<null> {\n const request = new CreateRefundRequest({\n merchantId: merchantId,\n paymentId: chargeId,\n amount: amount,\n reason: reasonToApi(reason)\n });\n return this.refundApiService\n .create(request)\n .pipe(\n catchError(this.handleError),\n mapTo(null)\n );\n }\n\n list(merchantId: string, paymentIds: string[], cursor: string, pageSize: number): Observable<PagedResponse<Refund>> {\n const req = new ListRefundsRequest({\n paymentIds: paymentIds,\n cursor: cursor,\n pageSize: pageSize,\n merchantId: merchantId,\n });\n return this.refundApiService.list(req).pipe(\n map(response => {\n const refunds = (response.refunds || []).map(item => refundFromApi(item));\n return new PagedResponse(refunds, response.nextCursor, response.hasMore);\n }),\n );\n }\n\n private handleError(error: HttpErrorResponse): Observable<never> {\n if (error.error instanceof ErrorEvent) {\n console.error(`An error occurred:`, error.error.message);\n } else {\n console.error(\n `Server returned ${error.message}`\n );\n }\n\n return observableThrowError(`Unable to issue a refund`);\n }\n}\n\n","import {SalesCreditNoteInterface} from '../_internal/interfaces';\nimport {Currency, currencyFromApi} from '../pricing';\nimport {SalesCreditNoteStatus as InternalSalesCreditNoteStatus} from '../_internal/enums';\nimport {\n ListSalesCreditNoteRequestListSalesCreditNoteFilters,\n} from '../_internal/objects/sales-credit-note';\n\nexport interface SalesCreditNote {\n creditNoteId: string;\n creditNoteNumber: string;\n merchantId: string;\n creditNoteReason: string;\n creditNoteDate: Date;\n dueDate: Date;\n currency: Currency;\n total: number;\n outstanding?: number;\n invoiceId: string;\n invoiceNumber: string;\n status: SalesCreditNoteStatus;\n paymentStatus?: string;\n}\n\nexport enum SalesCreditNoteStatus {\n InProgress = 'IN_PROGRESS',\n ReadyToPost = 'READY_TO_POST',\n Complete = 'COMPLETE',\n Discarded = 'DISCARDED',\n}\n\nexport interface ListFilters {\n merchantId?: string;\n statuses?: SalesCreditNoteStatus[];\n}\n\nexport function salesCreditNoteFromApi(siApi: SalesCreditNoteInterface): SalesCreditNote {\n return {\n creditNoteId: siApi.creditNoteId,\n creditNoteNumber: siApi.creditNoteNumber,\n merchantId: siApi.merchantId,\n creditNoteReason: siApi.creditNoteReason,\n creditNoteDate: siApi.creditNoteDate ? new Date(siApi.creditNoteDate) : null,\n dueDate: siApi.dueDate ? new Date(siApi.dueDate) : null,\n currency: currencyFromApi(siApi.currency),\n total: siApi.total || 0,\n outstanding: siApi.outstanding || 0,\n invoiceId: siApi.invoiceId,\n invoiceNumber: siApi.invoiceNumber,\n status: salesCreditNoteStatusFromApi(siApi.status),\n paymentStatus: siApi.paymentStatus,\n }\n}\n\nexport function listSalesCreditNoteFiltersToApi(filters: ListFilters): ListSalesCreditNoteRequestListSalesCreditNoteFilters {\n return new ListSalesCreditNoteRequestListSalesCreditNoteFilters({\n ...filters,\n statuses: (filters.statuses || []).map(s => salesCreditNoteStatusToApi(s))\n });\n}\n\n\nfunction salesCreditNoteStatusFromApi(sApi: InternalSalesCreditNoteStatus): SalesCreditNoteStatus {\n switch (sApi) {\n case InternalSalesCreditNoteStatus.SALES_CREDIT_NOTE_STATUS_READY_TO_POST:\n return SalesCreditNoteStatus.ReadyToPost;\n case InternalSalesCreditNoteStatus.SALES_CREDIT_NOTE_STATUS_COMPLETE:\n return SalesCreditNoteStatus.Complete;\n case InternalSalesCreditNoteStatus.SALES_CREDIT_NOTE_STATUS_DISCARDED:\n return SalesCreditNoteStatus.Discarded;\n }\n return SalesCreditNoteStatus.InProgress;\n}\n\nfunction salesCreditNoteStatusToApi(status: SalesCreditNoteStatus): InternalSalesCreditNoteStatus {\n switch (status) {\n case SalesCreditNoteStatus.ReadyToPost:\n return InternalSalesCreditNoteStatus.SALES_CREDIT_NOTE_STATUS_READY_TO_POST;\n case SalesCreditNoteStatus.Complete:\n return InternalSalesCreditNoteStatus.SALES_CREDIT_NOTE_STATUS_COMPLETE;\n case SalesCreditNoteStatus.Discarded:\n return InternalSalesCreditNoteStatus.SALES_CREDIT_NOTE_STATUS_DISCARDED;\n }\n return InternalSalesCreditNoteStatus.SALES_CREDIT_NOTE_STATUS_IN_PROGRESS;\n}\n","\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError as observableThrowError } from 'rxjs';\nimport { catchError, map, share } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport { HostService } from '../_generated';\nimport {\n CreateSalesCreditNoteRequest,\n ListSalesCreditNoteRequest,\n PagedRequestOptions,\n SalesCreditNoteApiService,\n} from '../_internal';\nimport {\n ListFilters,\n listSalesCreditNoteFiltersToApi,\n SalesCreditNote,\n salesCreditNoteFromApi,\n} from './sales-credit-note';\n\n@Injectable({providedIn: 'root'})\nexport class SalesCreditNoteService {\n constructor(private hostService: HostService, private http: HttpClient, private salesCreditNoteApi: SalesCreditNoteApiService) { }\n\n downloadPdf(salesCreditNoteId: string, merchantId?: string): Observable<Blob> {\n let params;\n if (merchantId) {\n params = { salesCreditNoteId, merchantId }\n } else {\n params = { salesCreditNoteId }\n }\n\n return this.http.get(`${this.hostService.httpsHostWithScheme()}/sales-credit-note-pdf`, {\n observe: 'body',\n params: params,\n responseType: 'blob',\n withCredentials: true,\n }).pipe(\n share(),\n catchError(this.handleDownloadPDFError.bind(this))\n );\n }\n\n createAutomatedCreditNote(merchantId: string, creditNoteReason: string, total: number, sku: string): Observable<null> {\n const req = new CreateSalesCreditNoteRequest({\n merchantId,\n creditNoteReason,\n total,\n sku,\n });\n return this.salesCreditNoteApi.create(req).pipe(map(() => null));\n }\n\n list(filters: ListFilters, cursor: string, pageSize: number): Observable<PagedResponse<SalesCreditNote>> {\n const req = new ListSalesCreditNoteRequest({\n filters: listSalesCreditNoteFiltersToApi(filters),\n pagingOptions: new PagedRequestOptions({cursor, pageSize})\n });\n return this.salesCreditNoteApi.list(req).pipe(\n map(response => {\n const salesCreditNotes = (response.creditNote || []).map(i => salesCreditNoteFromApi(i));\n return new PagedResponse(salesCreditNotes, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore)\n })\n );\n }\n\n private handleDownloadPDFError(error: HttpErrorResponse): Observable<never> {\n if (error.error instanceof ErrorEvent) {\n console.error(`An error occurred:`, error.error.message);\n } else {\n console.error(`Server returned ${error.message}`);\n }\n return observableThrowError(`Unable to download pdf`);\n }\n}\n","import {SalesInvoiceInterface} from '../_internal/interfaces';\nimport {Currency, currencyFromApi} from '../pricing';\nimport {\n PaymentStatuses,\n SalesInvoiceStatus as InternalSalesInvoiceStatus,\n SalesInvoiceType as InternalSalesInvoiceType\n} from '../_internal/enums';\nimport {ListSalesInvoiceRequestListSalesInvoiceFilters} from '../_internal/objects/sales-invoice';\n\nexport interface SalesInvoice {\n invoiceId: string;\n invoiceNumber: string;\n merchantId: string;\n invoiceDate: Date;\n startDate: Date;\n endDate: Date;\n dueDate: Date;\n currency: Currency;\n status: SalesInvoiceStatus;\n type: SalesInvoiceType;\n total: number;\n paymentStatus?: string;\n outstanding?: number;\n}\n\nexport enum SalesInvoiceStatus {\n InProgress = 'IN_PROGRESS',\n ReadyToPost = 'READY_TO_POST',\n Complete = 'COMPLETE',\n Discarded = 'DISCARDED',\n}\n\nexport enum SalesInvoiceType {\n Instant = 'INSTANT',\n Invoiced = 'INVOICED',\n}\n\nexport enum PaymentStatusType {\n Not_Applicable = 'Not Applicable',\n Unpaid = 'Unpaid',\n Paid = 'Paid',\n Part_Paid = 'Part Paid'\n}\n\nexport interface ListSalesInvoicesFilters {\n merchantId?: string;\n statuses?: SalesInvoiceStatus[];\n paymentStatuses?: PaymentStatusType[];\n invoiceId?: string[];\n}\n\nexport function salesInvoiceFromApi(siApi: SalesInvoiceInterface): SalesInvoice {\n return {\n invoiceId: siApi.invoiceId,\n invoiceNumber: siApi.invoiceNumber,\n merchantId: siApi.merchantId,\n invoiceDate: siApi.invoiceDate ? new Date(siApi.invoiceDate) : null,\n startDate: siApi.startDate ? new Date(siApi.startDate) : null,\n endDate: siApi.endDate ? new Date(siApi.endDate) : null,\n dueDate: siApi.dueDate ? new Date(siApi.dueDate) : null,\n currency: currencyFromApi(siApi.currency),\n status: salesInvoiceStatusFromApi(siApi.status),\n type: salesInvoiceTypeFromApi(siApi.type),\n total: siApi.total || 0,\n paymentStatus: siApi.paymentStatus,\n outstanding: siApi.outstanding || 0,\n }\n}\n\nexport function listSalesInvoiceFiltersToApi(filters: ListSalesInvoicesFilters): ListSalesInvoiceRequestListSalesInvoiceFilters {\n return new ListSalesInvoiceRequestListSalesInvoiceFilters({\n ...filters,\n statuses: (filters.statuses || []).map(s => salesInvoiceStatusToApi(s)),\n paymentStatuses: (filters.paymentStatuses || []).map(s => salesInvoicePaymentStatusToApi(s)),\n });\n}\n\n\nfunction salesInvoiceStatusFromApi(sApi: InternalSalesInvoiceStatus): SalesInvoiceStatus {\n switch (sApi) {\n case InternalSalesInvoiceStatus.SALES_INVOICE_STATUS_READY_TO_POST:\n return SalesInvoiceStatus.ReadyToPost;\n case InternalSalesInvoiceStatus.SALES_INVOICE_STATUS_COMPLETE:\n return SalesInvoiceStatus.Complete;\n case InternalSalesInvoiceStatus.SALES_INVOICE_STATUS_DISCARDED:\n return SalesInvoiceStatus.Discarded;\n }\n return SalesInvoiceStatus.InProgress;\n}\n\nfunction salesInvoiceStatusToApi(status: SalesInvoiceStatus): InternalSalesInvoiceStatus {\n switch (status) {\n case SalesInvoiceStatus.ReadyToPost:\n return InternalSalesInvoiceStatus.SALES_INVOICE_STATUS_READY_TO_POST;\n case SalesInvoiceStatus.Complete:\n return InternalSalesInvoiceStatus.SALES_INVOICE_STATUS_COMPLETE;\n case SalesInvoiceStatus.Discarded:\n return InternalSalesInvoiceStatus.SALES_INVOICE_STATUS_DISCARDED;\n }\n return InternalSalesInvoiceStatus.SALES_INVOICE_STATUS_IN_PROGRESS;\n}\n\nfunction salesInvoiceTypeFromApi(type: InternalSalesInvoiceType): SalesInvoiceType {\n switch (type) {\n case InternalSalesInvoiceType.SALES_INVOICE_TYPE_INVOICED:\n return SalesInvoiceType.Invoiced;\n case InternalSalesInvoiceType.SALES_INVOICE_TYPE_INSTANT:\n return SalesInvoiceType.Instant;\n }\n return null\n}\n\nfunction salesInvoicePaymentStatusToApi(status: PaymentStatusType): PaymentStatuses {\n switch (status) {\n case PaymentStatusType.Paid:\n return PaymentStatuses.PAYMENT_STATUSES_PAID;\n case PaymentStatusType.Part_Paid:\n return PaymentStatuses.PAYMENT_STATUSES_PART_PAID;\n case PaymentStatusType.Unpaid:\n return PaymentStatuses.PAYMENT_STATUSES_UNPAID;\n case PaymentStatusType.Not_Applicable:\n return PaymentStatuses.PAYMENT_STATUSES_NOT_APPLICABLE\n }\n return PaymentStatuses.PAYMENT_STATUSES_NOT_SET\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError as observableThrowError } from 'rxjs';\nimport { catchError, map, mapTo, share } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport { HostService } from '../_generated';\nimport {\n GetSalesInvoiceRequest,\n ListSalesInvoiceRequest,\n PagedRequestOptions,\n PostSalesInvoiceRequest,\n SalesInvoiceApiService,\n} from '../_internal';\nimport {\n listSalesInvoiceFiltersToApi,\n ListSalesInvoicesFilters,\n SalesInvoice,\n salesInvoiceFromApi,\n} from './sales-invoice';\n\n@Injectable({providedIn: 'root'})\nexport class SalesInvoiceService {\n constructor(private hostService: HostService, private http: HttpClient, private salesInvoiceApi: SalesInvoiceApiService) { }\n\n downloadPdf(salesInvoiceId: string, merchantId?: string): Observable<Blob> {\n let params;\n if (merchantId) {\n params = { salesInvoiceId, merchantId }\n } else {\n params = { salesInvoiceId }\n }\n return this.http.get(\n `${this.hostService.httpsHostWithScheme()}/sales-invoice-pdf`,\n {\n observe: 'body',\n params: params,\n responseType: 'blob',\n withCredentials: true,\n }).pipe(\n share(),\n catchError(handleError)\n );\n }\n\n listSalesInvoices(\n filters: ListSalesInvoicesFilters, cursor: string, pageSize: number, searchTerm?: string\n ): Observable<PagedResponse<SalesInvoice>> {\n const req = new ListSalesInvoiceRequest({\n filters: listSalesInvoiceFiltersToApi(filters),\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n searchTerm: searchTerm || ''\n });\n return this.salesInvoiceApi.list(req).pipe(\n map(response => {\n const salesInvoices = (response.invoice || []).map(i => salesInvoiceFromApi(i));\n return new PagedResponse(salesInvoices, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore)\n })\n );\n }\n\n postSalesInvoice(invoice_id: string): Observable<boolean> {\n const req = new PostSalesInvoiceRequest({\n invoiceId: invoice_id\n });\n return this.salesInvoiceApi.post(req).pipe(\n mapTo(true)\n );\n }\n\n getSalesInvoice(invoice_id: string, merchant_id: string): Observable<SalesInvoice> {\n const req = new GetSalesInvoiceRequest({\n invoiceId: invoice_id,\n merchantId: merchant_id\n });\n return this.salesInvoiceApi.get(req).pipe(\n map(resp => salesInvoiceFromApi(resp.invoice))\n );\n }\n\n}\n\nfunction handleError(error: HttpErrorResponse): Observable<never> {\n if (error.error instanceof ErrorEvent) {\n console.error(`An error occurred:`, error.error.message);\n } else {\n console.error(\n `Server returned ${error.message}`\n );\n }\n\n return observableThrowError(`Unable to download pdf`);\n}\n","export const SNAPSHOT_REPORT_SKU = 'ST';\nexport const SNAPSHOT_REPORT_REFRESH_SKU = 'snapshotreportrefresh';\nexport const REPUTATION_MANGEMENT_SKU = 'RM';\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError, share } from 'rxjs/operators';\nimport { handleFileUploadError } from '../http-shared/error-handlers';\nimport { HostService } from '../_generated';\nimport { FileData } from './file';\nimport { FilePurpose } from './purpose';\n\n@Injectable({providedIn: 'root'})\nexport class StripeFileService {\n constructor(\n private hostService: HostService,\n private httpClient: HttpClient\n ) {\n }\n\n uploadFile(merchantId: string, purpose: FilePurpose, file: Blob): Observable<FileData> {\n const formData = new FormData()\n formData.append('merchant_id', merchantId)\n formData.append('purpose', purpose)\n formData.append('file', file)\n\n return this.httpClient.post<FileData>(\n `${this.hostService.httpsHostWithScheme()}/stripe/files`,\n formData,\n this.apiOptions()\n ).pipe(\n share(),\n catchError(handleFileUploadError),\n )\n }\n\n private apiOptions(): { withCredentials: boolean } {\n return {\n withCredentials: true\n };\n }\n}\n","export enum FilePurpose {\n ACCOUNT_REQUIREMENT = 'account_requirement',\n ADDITIONAL_VERIFICATION = 'additional_verification',\n BUSINESS_ICON = 'business_icon',\n BUSINESS_LOGO = 'business_logo',\n CUSTOMER_SIGNATURE = 'customer_signature',\n DISPUTE_EVIDENCE = 'dispute_evidence',\n IDENTITY_DOCUMENT = 'identity_document',\n PCI_DOCUMENT = 'pci_document',\n TAX_DOCUMENT_USER_UPLOAD = 'tax_document_user_upload',\n}\n","import { TaxRateInterface } from '../_internal/interfaces';\n\nexport interface TaxRate {\n id?: string;\n merchantId?: string;\n countryCode?: string;\n stateCode?: string;\n name?: string;\n description?: string;\n percentage?: number;\n accountingSystemId?: string;\n}\n\nexport function taxRateFromApi(apiTaxRate: TaxRateInterface): TaxRate {\n return {\n id: apiTaxRate.id || '',\n merchantId: apiTaxRate.merchantId || '',\n countryCode: apiTaxRate.countryCode || '',\n stateCode: apiTaxRate.stateCode || '',\n name: apiTaxRate.name || '',\n description: apiTaxRate.description || '',\n percentage: apiTaxRate.percentage || 0.0,\n accountingSystemId: apiTaxRate.accountingSystemId || '',\n };\n}\n\nexport interface ListTaxRateFilter {\n merchantId?: string;\n includeArchived?: boolean;\n}\n\nexport interface CalculateTaxResponse {\n taxableAmount: number;\n taxRates: TaxRate[];\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { PagedResponse } from '../core';\nimport {\n ArchiveTaxRequest,\n CalculateTaxRequest,\n CreateTaxRequest,\n GetMultiTaxRequest,\n ListTaxRequest,\n PagedRequestOptions,\n TaxApiService,\n UpdateTaxRequest,\n} from '../_internal';\nimport {\n CalculateTaxResponse,\n ListTaxRateFilter,\n TaxRate,\n taxRateFromApi,\n} from './tax-rate';\n\n@Injectable({providedIn: 'root'})\nexport class TaxRateService {\n constructor(\n private taxRateApi: TaxApiService\n ) {}\n\n calculate(merchantId: string, customerId: string, amount: number): Observable<CalculateTaxResponse> {\n const r = new CalculateTaxRequest({\n merchantId: merchantId,\n customerId: customerId,\n amount: amount\n })\n return this.taxRateApi.calculate(r).pipe(\n map(response => {\n const taxRates = (response.taxRates || []).map(item => taxRateFromApi(item));\n return {\n taxableAmount: response.taxableAmount || 0,\n taxRates: taxRates\n };\n })\n );\n }\n\n create(merchantId: string, countryCode: string, stateCode: string, name: string,\n description: string, percentage: number, accountingSystemId: string): Observable<HttpResponse<null>> {\n\n const r = new CreateTaxRequest({\n merchantId: merchantId,\n countryCode: countryCode,\n stateCode: stateCode,\n name: name,\n description: description,\n percentage: percentage,\n accountingSystemId: accountingSystemId,\n });\n\n return this.taxRateApi.create(r)\n }\n\n update(merchantId: string, id: string, countryCode: string, stateCode: string, name: string,\n description: string, percentage: number, accountingSystemId: string): Observable<HttpResponse<null>> {\n\n const r = new UpdateTaxRequest({\n merchantId: merchantId,\n id: id,\n countryCode: countryCode,\n stateCode: stateCode,\n name: name,\n description: description,\n percentage: percentage,\n accountingSystemId: accountingSystemId,\n });\n\n return this.taxRateApi.update(r)\n }\n\n list(filters: ListTaxRateFilter, cursor: string, pageSize: number): Observable<PagedResponse<TaxRate>> {\n const req = new ListTaxRequest({\n filters: filters,\n pagingOptions: new PagedRequestOptions({ cursor, pageSize }),\n });\n return this.taxRateApi.list(req).pipe(\n map(response => {\n const taxRates = (response.taxRates || []).map(item => taxRateFromApi(item));\n return new PagedResponse(taxRates, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);\n }),\n );\n }\n\n getMulti(merchantId: string, ids: string[]): Observable<TaxRate[]> {\n const req = new GetMultiTaxRequest({\n merchantId: merchantId,\n ids: ids\n });\n return this.taxRateApi.getMulti(req).pipe(\n map(response => {\n const taxRates = (response.taxRates || []).map(item => taxRateFromApi(item));\n return taxRates;\n })\n );\n }\n\n archive(merchantId: string, id: string): Observable<HttpResponse<null>> {\n const req = new ArchiveTaxRequest({\n merchantId,\n id,\n });\n return this.taxRateApi.archive(req);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["enumStringToValue","e.Frequency","e.DiscountType","e.Currency","e.ContractSubscriptionStatus","e.ProductSummaryDiscountDiscountType","e.PricingRuleType","e.ProductSummaryBillingStrategy","e.ProductSummaryProductType","e.ListInvoicesRequestFiltersDateFilterDateField","e.InvoiceStatus","e.PayoutStatus","e.PayoutType","e.SearchMerchantsRequestSortBy","e.SortDirection","e.Month","e.MerchantReportStatus","e.CardType","e.DisputeStatus","e.PaymentSource","e.PaymentStatus","e.PaymentAllocationType","e.RetailPaymentReferenceType","e.PaymentCardCARD_TYPE","e.PaymentCardFUNDING_TYPE","e.BillingStrategy","e.ProductPricingType","e.ProductType","e.CreditType","e.ListPurchaseRequestState","e.PurchaseStatus","e.RefundReason","e.ReferenceType","e.RefundStatus","e.SalesCreditNoteStatus","e.SalesInvoiceStatus","e.PaymentStatuses","e.SalesInvoiceType","e.SubscribeValidationStatus","e.RenewalState","BillingStrategy","PricingPlanBillingStrategy","Currency","CurrencyApi","Frequency","FrequencyApi","ProductPricingType","ProductPricingTypeApi","ApiRule","ApiPricing","ApiPayoutStatus","ApiPayoutType","SortDirection","observableThrowError","PurchaseStatus","PurchaseStatusApi","ProductType","ApiProductType","CommitmentApi","DiscountType","ApiDiscountType","InvoiceStatus","ApiInvoiceStatus","InternalInvoiceStatus","ApiAppliedTaxRate","ApiTaxRate","ApiInvoiceItem","ApiInvoice","SortByApi","SortDirectionApi","DisputeStatus","DisputeStatusApi","PaymentSource","PaymentSourceApi","PaymentStatus","PaymentStatusApi","PaymentAllocationType","PaymentAllocationTypeApi","RefundReason","RefundStatus","ReferenceType","ApiReason","ApiStatus","ApiReferenceType","SalesCreditNoteStatus","InternalSalesCreditNoteStatus","SalesInvoiceStatus","SalesInvoiceType","InternalSalesInvoiceStatus","InternalSalesInvoiceType"],"mappings":"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"}
|