| import "../shared/index.tsp"; |
|
|
| namespace Apps; |
|
|
| |
| * Supported capability types for an App. |
| * |
| * Each capability defines an integration function that an App can perform. |
| */ |
| @friendlyName("BillingAppCapabilityType") |
| enum AppCapabilityType { |
| |
| * The app can report aggregated usage. |
| */ |
| ReportUsage: "report_usage", |
|
|
| |
| * The app can report raw events. |
| */ |
| ReportEvents: "report_events", |
|
|
| |
| * The app can calculate tax for invoices. |
| */ |
| CalculateTax: "calculate_tax", |
|
|
| |
| * The app can issue invoices to customers. |
| */ |
| InvoiceCustomers: "invoice_customers", |
|
|
| |
| * The app can collect payments from customers. |
| */ |
| CollectPayments: "collect_payments", |
| } |
|
|
| |
| * App capability describes a function that an App can perform. |
| */ |
| @friendlyName("BillingAppCapability") |
| @example(#{ |
| type: AppCapabilityType.CollectPayments, |
| key: "stripe_collect_payment", |
| name: "Collect Payments", |
| description: "Stripe payments collects outstanding revenue with Stripe customer's default payment method.", |
| }) |
| model AppCapability { |
| |
| * Type of the capability. |
| */ |
| type: AppCapabilityType; |
|
|
| |
| * Key of the capability. |
| */ |
| key: Shared.ResourceKey; |
|
|
| |
| * Name of the capability. |
| */ |
| name: string; |
|
|
| |
| * Description of the capability. |
| */ |
| description: string; |
| } |
|
|