mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-06-28 14:20:12 +00:00
Update stripe types with usageRecordSummaries and usageRecords.
Additionally add options to the plan creation interface in line with Stripe Docs.
This commit is contained in:
141
types/stripe/index.d.ts
vendored
141
types/stripe/index.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
// Type definitions for stripe 5.0.19
|
||||
// Type definitions for stripe 6.0.0
|
||||
// Project: https://github.com/stripe/stripe-node/
|
||||
// Definitions by: William Johnston <https://github.com/wjohnsto>
|
||||
// Peter Harris <https://github.com/codeanimal>
|
||||
@@ -12,6 +12,7 @@
|
||||
// Hunter Tunnicliff <https://github.com/htunnicliff>
|
||||
// Tyler Jones <https://github.com/squirly>
|
||||
// Troy Zarger <https://github.com/tzarger>
|
||||
// Ifiok Jr. <https://github.com/ifiokjr>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.2
|
||||
|
||||
@@ -72,6 +73,10 @@ declare class Stripe {
|
||||
skus: Stripe.resources.SKUs;
|
||||
webhooks: Stripe.resources.WebHooks;
|
||||
ephemeralKeys: Stripe.resources.EphemeralKeys;
|
||||
usageRecords: Stripe.resources.UsageRecords;
|
||||
usageRecordSummarys: Stripe.resources.UsageRecordSummarys;
|
||||
|
||||
|
||||
|
||||
setHost(host: string): void;
|
||||
setHost(host: string, port: string|number): void;
|
||||
@@ -716,12 +721,12 @@ declare namespace Stripe {
|
||||
* or "transfer_failure"
|
||||
*/
|
||||
type?: string;
|
||||
|
||||
|
||||
/**
|
||||
* For automatic Stripe payouts only, only returns transactions that were payed out on the specified payout ID.
|
||||
* For automatic Stripe payouts only, only returns transactions that were payed out on the specified payout ID.
|
||||
*/
|
||||
payout?: string;
|
||||
|
||||
|
||||
/**
|
||||
* A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
|
||||
*/
|
||||
@@ -3118,6 +3123,51 @@ declare namespace Stripe {
|
||||
* A brief description of the plan, hidden from customers.
|
||||
*/
|
||||
nickname?: string;
|
||||
|
||||
/**
|
||||
* Specifies a usage aggregation strategy for plans of `usage_type=metered`. Allowed values are `sum` for summing up all usage during a period, `last_during_period` for picking the last usage record reported within a period, `last_ever` for picking the last usage record ever (across period bounds) or `max` which picks the usage record with the maximum reported usage during a period. Defaults to `sum`.
|
||||
*/
|
||||
aggregate_usage?: "sum" | "last_during_period" | "last_ever" | "max" | null;
|
||||
|
||||
/**
|
||||
* Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes.
|
||||
*/
|
||||
billing_scheme?: "per_unit" | "tiered";
|
||||
|
||||
/**
|
||||
* Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
|
||||
*/
|
||||
livemode?: boolean;
|
||||
|
||||
/**
|
||||
* Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
|
||||
*/
|
||||
metadata?: IMetadata;
|
||||
|
||||
/**
|
||||
* Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.
|
||||
*/
|
||||
tiers?: plans.ITier[] | null;
|
||||
|
||||
/**
|
||||
* Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price, in `graduated` tiering pricing can successively change as the quantity grows.
|
||||
*/
|
||||
tiers_mode?: "graduated" | "volume" | null;
|
||||
|
||||
/**
|
||||
* Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with `tiers`.
|
||||
*/
|
||||
transform_usage?: plans.ITransformUsage | null;
|
||||
|
||||
/**
|
||||
* Default number of trial days when subscribing a customer to this plan using `trial_from_plan=true`.
|
||||
*/
|
||||
trial_period_days?: number;
|
||||
|
||||
/**
|
||||
* Configures how the quantity per period should be determined, can be either `metered` or `licensed`. `licensed` will automatically bill the `quantity` set for a plan when adding it to a subscription, `metered` will aggregate the total usage based on usage records. Defaults to `licensed`.
|
||||
*/
|
||||
usage_type?: "metered" | "licensed";
|
||||
}
|
||||
|
||||
interface IPlanUpdateOptions extends IDataOptionsWithMetadata {
|
||||
@@ -5239,11 +5289,94 @@ declare namespace Stripe {
|
||||
}
|
||||
}
|
||||
|
||||
namespace usageRecords {
|
||||
type IUsageRecordAction = 'increment' | 'set';
|
||||
|
||||
interface IUsageRecordCreationOptions {
|
||||
/**
|
||||
* The usage quantity for the specified timestamp
|
||||
*/
|
||||
quantity: number;
|
||||
/**
|
||||
* The timestamp for the usage event. This timestamp must be within the current billing period of the subscription of the provided subscription_item
|
||||
*/
|
||||
timestamp: number;
|
||||
/**
|
||||
* Valid values are increment (default) or set. When using increment the specified quantity will be added to the usage at the specified
|
||||
* timestamp. The set action will overwrite the usage quantity at that timestamp.
|
||||
*/
|
||||
action?: IUsageRecordAction;
|
||||
}
|
||||
|
||||
interface IUsageRecord extends IObject {
|
||||
object: 'usage_record';
|
||||
id: string;
|
||||
livemode: boolean;
|
||||
quantity: number;
|
||||
subscription_item: string;
|
||||
timestamp: number;
|
||||
}
|
||||
}
|
||||
|
||||
namespace usageRecordSummarys {
|
||||
/**
|
||||
* A object with a data property that contains an array of up to limit summaries,
|
||||
* starting after summary starting_after. Each entry in the array is a separate summary object.
|
||||
* If no more summaries are available, the resulting array is empty.
|
||||
*/
|
||||
interface IUsageRecordSummarys extends IList<IUsageRecordSummarysItem>{
|
||||
object: 'list'
|
||||
}
|
||||
|
||||
interface IUsageRecordSummarysItem {
|
||||
id: string;
|
||||
object: string;
|
||||
invoice: string;
|
||||
livemode: boolean;
|
||||
period: invoices.IPeriod;
|
||||
subscription_item: string;
|
||||
total_usage: number;
|
||||
}
|
||||
|
||||
interface IUsageRecordSummarysListOptions extends
|
||||
IListOptions{
|
||||
/**
|
||||
* Only summary items for the given subscription item.
|
||||
*/
|
||||
subscription_item: string;
|
||||
/**
|
||||
* A limit on the number of objects to be returned. The limit can range between 1 and 100.
|
||||
* @default 10
|
||||
*/
|
||||
limit?: number;
|
||||
}
|
||||
}
|
||||
|
||||
class StripeResource {
|
||||
constructor(stripe: Stripe, urlData: any);
|
||||
}
|
||||
|
||||
namespace resources {
|
||||
class UsageRecords extends StripeResource {
|
||||
/**
|
||||
* Creates a usage record for a specified subscription item and date, and fills it with a quantity.
|
||||
* @param subscription
|
||||
* @param options
|
||||
*/
|
||||
create(subscription: string, data: usageRecords.IUsageRecordCreationOptions, options: HeaderOptions, response?: IResponseFn<usageRecords.IUsageRecord>): Promise<usageRecords.IUsageRecord>;
|
||||
create(subscription: string, data: usageRecords.IUsageRecordCreationOptions, response?: IResponseFn<usageRecords.IUsageRecord>): Promise<usageRecords.IUsageRecord>;
|
||||
}
|
||||
|
||||
class UsageRecordSummarys extends StripeResource {
|
||||
/**
|
||||
* Creates a usage record for a specified subscription item and date, and fills it with a quantity.
|
||||
* @param subscription
|
||||
* @param options
|
||||
*/
|
||||
list(data: usageRecordSummarys.IUsageRecordSummarysListOptions, options: HeaderOptions, response?: IResponseFn<usageRecordSummarys.IUsageRecordSummarys>): Promise<usageRecordSummarys.IUsageRecordSummarys>;
|
||||
list(data: usageRecordSummarys.IUsageRecordSummarysListOptions, response?: IResponseFn<usageRecordSummarys.IUsageRecordSummarys>): Promise<usageRecordSummarys.IUsageRecordSummarys>;
|
||||
}
|
||||
|
||||
class Accounts extends StripeResource {
|
||||
/**
|
||||
* With Connect, you can create Stripe accounts for your users. To do this, you'll first need to register your platform.
|
||||
|
||||
@@ -1164,7 +1164,9 @@ stripe.plans.create({
|
||||
},
|
||||
nickname: "Something to remember me by",
|
||||
currency: "usd",
|
||||
id: "gold-plan"
|
||||
id: "gold-plan",
|
||||
usage_type: 'metered',
|
||||
billing_scheme: 'per_unit'
|
||||
}, function (err, plan) {
|
||||
// asynchronously called
|
||||
});
|
||||
@@ -1344,3 +1346,10 @@ stripe.subscriptionItems.list({ subscription: "si_C9gimdd2l9qvCU" }).then(functi
|
||||
stripe.ephemeralKeys.create({ customer: "cus_5rfJKDJkuxzh5Q" }, { stripe_version: "2017-08-15" }).then(function(ephemeralKeys) {
|
||||
// asynchronously called
|
||||
});
|
||||
|
||||
|
||||
stripe.usageRecords.create('sub_8QwCiwZ9tmMSpt', { action: 'set', quantity: 10000, timestamp: 1537006853 }).then((usageRecord: Stripe.usageRecords.IUsageRecord) => {});
|
||||
stripe.usageRecords.create('sub_8QwCiwZ9tmMSpt', { action: 'set', quantity: 10000, timestamp: 1537006853 }, (err, usageRecord: Stripe.usageRecords.IUsageRecord) => {})
|
||||
|
||||
stripe.usageRecordSummarys.list({ subscription_item: 'si_C9gimdd2l9qvCU', limit: 10 }).then((usageRecordSummarys: Stripe.usageRecordSummarys.IUsageRecordSummarys) => {});
|
||||
stripe.usageRecordSummarys.list({ subscription_item: 'si_C9gimdd2l9qvCU', limit: 10 }, (err, usageRecordSummarys: Stripe.usageRecordSummarys.IUsageRecordSummarys) => {})
|
||||
|
||||
@@ -20,4 +20,4 @@
|
||||
"index.d.ts",
|
||||
"stripe-tests.ts"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user