@empiricalrun/playwright-utils 0.61.1 → 0.61.2
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.
|
@@ -962,6 +962,26 @@ export interface paths {
|
|
|
962
962
|
patch?: never;
|
|
963
963
|
trace?: never;
|
|
964
964
|
};
|
|
965
|
+
"/api/slack/admin/scope-refresh": {
|
|
966
|
+
parameters: {
|
|
967
|
+
query?: never;
|
|
968
|
+
header?: never;
|
|
969
|
+
path?: never;
|
|
970
|
+
cookie?: never;
|
|
971
|
+
};
|
|
972
|
+
get?: never;
|
|
973
|
+
put?: never;
|
|
974
|
+
/**
|
|
975
|
+
* 🛡️ Complete a Slack scope refresh
|
|
976
|
+
* @description Exchanges the OAuth code from re-authorizing the Slack app on Empirical's own workspace, which applies newly requested scopes. The token is not stored. Super-admin only.
|
|
977
|
+
*/
|
|
978
|
+
post: operations["refreshSlackAppScopes"];
|
|
979
|
+
delete?: never;
|
|
980
|
+
options?: never;
|
|
981
|
+
head?: never;
|
|
982
|
+
patch?: never;
|
|
983
|
+
trace?: never;
|
|
984
|
+
};
|
|
965
985
|
"/api/slack/auth-test": {
|
|
966
986
|
parameters: {
|
|
967
987
|
query?: never;
|
|
@@ -997,7 +1017,7 @@ export interface paths {
|
|
|
997
1017
|
put?: never;
|
|
998
1018
|
/**
|
|
999
1019
|
* 🛡️ Create or update a Slack install
|
|
1000
|
-
* @description Creates a Slack app install for the org and team, or updates the existing one.
|
|
1020
|
+
* @description Creates a Slack app install for the org and team, or updates the existing one. A signed-in user sends the OAuth code and api-worker exchanges it; installs into Empirical's own workspace are not stored.
|
|
1001
1021
|
*/
|
|
1002
1022
|
post: operations["upsertSlackInstallation"];
|
|
1003
1023
|
delete?: never;
|
|
@@ -1973,8 +1993,8 @@ export interface paths {
|
|
|
1973
1993
|
cookie?: never;
|
|
1974
1994
|
};
|
|
1975
1995
|
/**
|
|
1976
|
-
* 🛡️ Get the org's usage and cost for a
|
|
1977
|
-
* @description Org-wide usage across all of the scoped project's org projects, against the plan in effect: per-meter usage, overage so far, a
|
|
1996
|
+
* 🛡️ Get the org's usage and cost for a usage period
|
|
1997
|
+
* @description Org-wide usage across all of the scoped project's org projects, against the plan in effect: per-meter usage, overage so far, a period-end projection, and the usage limit. The period is a UTC calendar month, or the billing cycle for an org on a live Dodo subscription.
|
|
1978
1998
|
*/
|
|
1979
1999
|
get: operations["getBillingMonthSummary"];
|
|
1980
2000
|
put?: never;
|
|
@@ -1985,6 +2005,46 @@ export interface paths {
|
|
|
1985
2005
|
patch?: never;
|
|
1986
2006
|
trace?: never;
|
|
1987
2007
|
};
|
|
2008
|
+
"/api/billing/periods": {
|
|
2009
|
+
parameters: {
|
|
2010
|
+
query?: never;
|
|
2011
|
+
header?: never;
|
|
2012
|
+
path?: never;
|
|
2013
|
+
cookie?: never;
|
|
2014
|
+
};
|
|
2015
|
+
/**
|
|
2016
|
+
* 🛡️ List the org's usage periods
|
|
2017
|
+
* @description The org's usage periods up to the current one, latest first: billing cycles back to the subscription start for an org on a live Dodo subscription, calendar months otherwise and before that.
|
|
2018
|
+
*/
|
|
2019
|
+
get: operations["listBillingPeriods"];
|
|
2020
|
+
put?: never;
|
|
2021
|
+
post?: never;
|
|
2022
|
+
delete?: never;
|
|
2023
|
+
options?: never;
|
|
2024
|
+
head?: never;
|
|
2025
|
+
patch?: never;
|
|
2026
|
+
trace?: never;
|
|
2027
|
+
};
|
|
2028
|
+
"/api/billing/subscription/{subscription_id}/reconcile": {
|
|
2029
|
+
parameters: {
|
|
2030
|
+
query?: never;
|
|
2031
|
+
header?: never;
|
|
2032
|
+
path?: never;
|
|
2033
|
+
cookie?: never;
|
|
2034
|
+
};
|
|
2035
|
+
/**
|
|
2036
|
+
* 🛡️ 🧪 Compare a subscription's usage with Dodo's events
|
|
2037
|
+
* @description Compares our usage rows with the usage events Dodo has for the subscription's customer in one billing cycle, matched by event id: per-meter totals, plus events missing from Dodo, Dodo events with no usage row, and events whose quantity changed. Read-only; sends nothing. Defaults to the current cycle; a past cycle is named by its end (its renewal date) and starts a month earlier unless cycle_start is given.
|
|
2038
|
+
*/
|
|
2039
|
+
get: operations["reconcileSubscriptionUsage"];
|
|
2040
|
+
put?: never;
|
|
2041
|
+
post?: never;
|
|
2042
|
+
delete?: never;
|
|
2043
|
+
options?: never;
|
|
2044
|
+
head?: never;
|
|
2045
|
+
patch?: never;
|
|
2046
|
+
trace?: never;
|
|
2047
|
+
};
|
|
1988
2048
|
"/api/billing/subscription/checkout": {
|
|
1989
2049
|
parameters: {
|
|
1990
2050
|
query?: never;
|
|
@@ -2005,6 +2065,66 @@ export interface paths {
|
|
|
2005
2065
|
patch?: never;
|
|
2006
2066
|
trace?: never;
|
|
2007
2067
|
};
|
|
2068
|
+
"/api/billing/subscription/end": {
|
|
2069
|
+
parameters: {
|
|
2070
|
+
query?: never;
|
|
2071
|
+
header?: never;
|
|
2072
|
+
path?: never;
|
|
2073
|
+
cookie?: never;
|
|
2074
|
+
};
|
|
2075
|
+
get?: never;
|
|
2076
|
+
put?: never;
|
|
2077
|
+
/**
|
|
2078
|
+
* 🛡️ 🧪 End the org's plan now
|
|
2079
|
+
* @description Ends the scoped project's org's Dodo subscription now, with no undo: sends Dodo the usage it is missing, then cancels the subscription, or pauses it when the cycle has usage beyond the plan's allowance (Dodo charges it on pausing; a cron cancels the subscription once that charge succeeds). The plan ends at once, and the org can subscribe again. Emails the org's members and billing contacts. For an active or past-due subscription; an on-hold one must pay first.
|
|
2080
|
+
*/
|
|
2081
|
+
post: operations["endSubscription"];
|
|
2082
|
+
delete?: never;
|
|
2083
|
+
options?: never;
|
|
2084
|
+
head?: never;
|
|
2085
|
+
patch?: never;
|
|
2086
|
+
trace?: never;
|
|
2087
|
+
};
|
|
2088
|
+
"/api/billing/subscription/offer": {
|
|
2089
|
+
parameters: {
|
|
2090
|
+
query?: never;
|
|
2091
|
+
header?: never;
|
|
2092
|
+
path?: never;
|
|
2093
|
+
cookie?: never;
|
|
2094
|
+
};
|
|
2095
|
+
/**
|
|
2096
|
+
* 🛡️ 🧪 Get the plan the org can subscribe to
|
|
2097
|
+
* @description Whether the scoped project's org can start a Dodo checkout now (same rules as the checkout endpoint), and the plan's terms if so. The billing page uses it to show its Continue to payment button.
|
|
2098
|
+
*/
|
|
2099
|
+
get: operations["getSubscriptionOffer"];
|
|
2100
|
+
put?: never;
|
|
2101
|
+
post?: never;
|
|
2102
|
+
delete?: never;
|
|
2103
|
+
options?: never;
|
|
2104
|
+
head?: never;
|
|
2105
|
+
patch?: never;
|
|
2106
|
+
trace?: never;
|
|
2107
|
+
};
|
|
2108
|
+
"/api/billing/subscription/portal": {
|
|
2109
|
+
parameters: {
|
|
2110
|
+
query?: never;
|
|
2111
|
+
header?: never;
|
|
2112
|
+
path?: never;
|
|
2113
|
+
cookie?: never;
|
|
2114
|
+
};
|
|
2115
|
+
get?: never;
|
|
2116
|
+
put?: never;
|
|
2117
|
+
/**
|
|
2118
|
+
* 🛡️ 🧪 Open the org's Dodo billing portal
|
|
2119
|
+
* @description Creates a Dodo customer portal session for the scoped project's org, where the customer updates their card and downloads Dodo's invoices. A new session per call; nothing is stored. For orgs that have subscribed through Dodo.
|
|
2120
|
+
*/
|
|
2121
|
+
post: operations["createSubscriptionPortalSession"];
|
|
2122
|
+
delete?: never;
|
|
2123
|
+
options?: never;
|
|
2124
|
+
head?: never;
|
|
2125
|
+
patch?: never;
|
|
2126
|
+
trace?: never;
|
|
2127
|
+
};
|
|
2008
2128
|
"/api/billing/usage-limit": {
|
|
2009
2129
|
parameters: {
|
|
2010
2130
|
query?: never;
|
|
@@ -2862,7 +2982,7 @@ export interface paths {
|
|
|
2862
2982
|
put?: never;
|
|
2863
2983
|
/**
|
|
2864
2984
|
* ⚙️ Upsert a main App installation
|
|
2865
|
-
* @description Records or updates a main App installation for an org.
|
|
2985
|
+
* @description Records or updates a main App installation for an org the caller can access.
|
|
2866
2986
|
*/
|
|
2867
2987
|
post: operations["upsertMainInstallation"];
|
|
2868
2988
|
delete?: never;
|
|
@@ -3046,7 +3166,7 @@ export interface paths {
|
|
|
3046
3166
|
put?: never;
|
|
3047
3167
|
/**
|
|
3048
3168
|
* ⚙️ Create a reporter installation
|
|
3049
|
-
* @description Records a reporter App installation for an org.
|
|
3169
|
+
* @description Records a reporter App installation for an org the caller can access.
|
|
3050
3170
|
*/
|
|
3051
3171
|
post: operations["createReporterInstallation"];
|
|
3052
3172
|
delete?: never;
|
|
@@ -3671,6 +3791,26 @@ export interface paths {
|
|
|
3671
3791
|
patch?: never;
|
|
3672
3792
|
trace?: never;
|
|
3673
3793
|
};
|
|
3794
|
+
"/api/jira/events": {
|
|
3795
|
+
parameters: {
|
|
3796
|
+
query?: never;
|
|
3797
|
+
header?: never;
|
|
3798
|
+
path?: never;
|
|
3799
|
+
cookie?: never;
|
|
3800
|
+
};
|
|
3801
|
+
get?: never;
|
|
3802
|
+
put?: never;
|
|
3803
|
+
/**
|
|
3804
|
+
* Receive a Jira webhook
|
|
3805
|
+
* @description Receives a Jira webhook delivery, resolves the install and project, and ingests issues carrying the `empirical` label as Empirical requests.
|
|
3806
|
+
*/
|
|
3807
|
+
post: operations["receiveJiraWebhook"];
|
|
3808
|
+
delete?: never;
|
|
3809
|
+
options?: never;
|
|
3810
|
+
head?: never;
|
|
3811
|
+
patch?: never;
|
|
3812
|
+
trace?: never;
|
|
3813
|
+
};
|
|
3674
3814
|
"/api/jira/installations": {
|
|
3675
3815
|
parameters: {
|
|
3676
3816
|
query?: never;
|
|
@@ -3686,7 +3826,7 @@ export interface paths {
|
|
|
3686
3826
|
put?: never;
|
|
3687
3827
|
/**
|
|
3688
3828
|
* ⚙️ Create or reauthorize a Jira installation
|
|
3689
|
-
* @description Stores a Jira app installation, or reauthorizes the existing site while preserving mappings, and optionally registers its webhook.
|
|
3829
|
+
* @description Stores a Jira app installation, or reauthorizes the existing site while preserving mappings, and optionally registers its webhook. A signed-in user sends the OAuth code and api-worker exchanges it.
|
|
3690
3830
|
*/
|
|
3691
3831
|
post: operations["createJiraInstallation"];
|
|
3692
3832
|
delete?: never;
|
|
@@ -3795,6 +3935,26 @@ export interface paths {
|
|
|
3795
3935
|
patch: operations["updateJiraWebhookExpiresAt"];
|
|
3796
3936
|
trace?: never;
|
|
3797
3937
|
};
|
|
3938
|
+
"/api/linear/events": {
|
|
3939
|
+
parameters: {
|
|
3940
|
+
query?: never;
|
|
3941
|
+
header?: never;
|
|
3942
|
+
path?: never;
|
|
3943
|
+
cookie?: never;
|
|
3944
|
+
};
|
|
3945
|
+
get?: never;
|
|
3946
|
+
put?: never;
|
|
3947
|
+
/**
|
|
3948
|
+
* Receive a Linear webhook
|
|
3949
|
+
* @description Receives a Linear webhook delivery, verified by its `linear-signature` header, and ingests labelled issues into the resolved project as Empirical requests.
|
|
3950
|
+
*/
|
|
3951
|
+
post: operations["receiveLinearWebhook"];
|
|
3952
|
+
delete?: never;
|
|
3953
|
+
options?: never;
|
|
3954
|
+
head?: never;
|
|
3955
|
+
patch?: never;
|
|
3956
|
+
trace?: never;
|
|
3957
|
+
};
|
|
3798
3958
|
"/api/linear/installations": {
|
|
3799
3959
|
parameters: {
|
|
3800
3960
|
query?: never;
|
|
@@ -3810,7 +3970,7 @@ export interface paths {
|
|
|
3810
3970
|
put?: never;
|
|
3811
3971
|
/**
|
|
3812
3972
|
* ⚙️ Create a Linear installation
|
|
3813
|
-
* @description Creates or reauthorizes a Linear installation and stores its OAuth tokens.
|
|
3973
|
+
* @description Creates or reauthorizes a Linear installation and stores its OAuth tokens. A signed-in user sends the OAuth code and api-worker exchanges it.
|
|
3814
3974
|
*/
|
|
3815
3975
|
post: operations["createLinearInstallation"];
|
|
3816
3976
|
delete?: never;
|
|
@@ -4031,6 +4191,26 @@ export interface paths {
|
|
|
4031
4191
|
patch?: never;
|
|
4032
4192
|
trace?: never;
|
|
4033
4193
|
};
|
|
4194
|
+
"/api/oauth/authorize-url": {
|
|
4195
|
+
parameters: {
|
|
4196
|
+
query?: never;
|
|
4197
|
+
header?: never;
|
|
4198
|
+
path?: never;
|
|
4199
|
+
cookie?: never;
|
|
4200
|
+
};
|
|
4201
|
+
/**
|
|
4202
|
+
* ⚙️ Get an OAuth authorize URL
|
|
4203
|
+
* @description Builds the provider authorize URL (client ID and scopes) for connecting Slack, Linear, Jira or the GitHub reporter app. The caller keeps the state and redirects to the URL.
|
|
4204
|
+
*/
|
|
4205
|
+
get: operations["getOAuthAuthorizeUrl"];
|
|
4206
|
+
put?: never;
|
|
4207
|
+
post?: never;
|
|
4208
|
+
delete?: never;
|
|
4209
|
+
options?: never;
|
|
4210
|
+
head?: never;
|
|
4211
|
+
patch?: never;
|
|
4212
|
+
trace?: never;
|
|
4213
|
+
};
|
|
4034
4214
|
"/api/onboarding/complete": {
|
|
4035
4215
|
parameters: {
|
|
4036
4216
|
query?: never;
|
|
@@ -4314,7 +4494,7 @@ export interface paths {
|
|
|
4314
4494
|
put?: never;
|
|
4315
4495
|
/**
|
|
4316
4496
|
* ⚙️ Resolve org membership for a signed-in user
|
|
4317
|
-
* @description Grants super-admin to staff emails; for users with no org yet, accepts pending invites for the email and matches org email domains. Returns the user's memberships and super-admin flag.
|
|
4497
|
+
* @description Grants super-admin to staff emails; for users with no org yet, accepts pending invites for the email and matches org email domains. Returns the user's memberships and super-admin flag. A signed-in user resolves their own membership and needs a confirmed email; system callers name the user in the body.
|
|
4318
4498
|
*/
|
|
4319
4499
|
post: operations["resolveMembership"];
|
|
4320
4500
|
delete?: never;
|
|
@@ -4380,7 +4560,7 @@ export interface paths {
|
|
|
4380
4560
|
};
|
|
4381
4561
|
/**
|
|
4382
4562
|
* 🛡️ Get the org's plan
|
|
4383
|
-
* @description Returns whether the scoped project's org is on a plan (now, or during `month`), and the plan's terms when it is a shared plan.
|
|
4563
|
+
* @description Returns whether the scoped project's org is on a plan (now, or during `month` or `period`), and the plan's terms when it is a shared plan.
|
|
4384
4564
|
*/
|
|
4385
4565
|
get: operations["getOrgPlan"];
|
|
4386
4566
|
put?: never;
|
|
@@ -5636,7 +5816,7 @@ export interface paths {
|
|
|
5636
5816
|
put?: never;
|
|
5637
5817
|
/**
|
|
5638
5818
|
* ⚙️ Upsert a GitHub link
|
|
5639
|
-
* @description Creates or updates
|
|
5819
|
+
* @description Creates or updates a GitHub account link. A signed-in user links their own account to the GitHub user who authorized `code`; system callers pass the user and profile directly.
|
|
5640
5820
|
*/
|
|
5641
5821
|
post: operations["upsertGithubLink"];
|
|
5642
5822
|
/**
|
|
@@ -6390,6 +6570,16 @@ export interface components {
|
|
|
6390
6570
|
overage_price_cents: number | null;
|
|
6391
6571
|
}[];
|
|
6392
6572
|
} | null;
|
|
6573
|
+
/** @description The org's live Dodo subscription now, or null when it's billed by invoice or has none. */
|
|
6574
|
+
subscription: {
|
|
6575
|
+
/**
|
|
6576
|
+
* @description `past_due` / `on_hold`: the last renewal payment failed and is being retried. A paused subscription, or one whose plan was ended (End plan) whatever its Dodo status, holds no plan, so `subscription` is null.
|
|
6577
|
+
* @enum {string}
|
|
6578
|
+
*/
|
|
6579
|
+
status: "active" | "past_due" | "on_hold";
|
|
6580
|
+
/** @description When the subscription next renews (ISO 8601). */
|
|
6581
|
+
next_billing_date: string;
|
|
6582
|
+
} | null;
|
|
6393
6583
|
};
|
|
6394
6584
|
};
|
|
6395
6585
|
PlanAssignmentListResponse: {
|
|
@@ -6561,11 +6751,19 @@ export interface components {
|
|
|
6561
6751
|
BillingMonthSummaryResponse: {
|
|
6562
6752
|
/** @description Response payload. */
|
|
6563
6753
|
data: {
|
|
6564
|
-
/** @description Usage month, YYYY-MM (UTC). */
|
|
6754
|
+
/** @description Usage month, YYYY-MM (UTC). For a billing cycle, the month it starts in. */
|
|
6565
6755
|
month: string;
|
|
6756
|
+
/** @description The period's key (YYYY-MM-DD), to pass as `period`: the 1st for a calendar month, the scheduled start date for a billing cycle. */
|
|
6757
|
+
period_key: string;
|
|
6758
|
+
/**
|
|
6759
|
+
* @description `month`: a UTC calendar month. `cycle`: a Dodo billing cycle [previous_billing_date, next_billing_date).
|
|
6760
|
+
* @enum {string}
|
|
6761
|
+
*/
|
|
6762
|
+
period_kind: "month" | "cycle";
|
|
6566
6763
|
period_start: string;
|
|
6567
6764
|
/** @description Exclusive (ISO 8601). */
|
|
6568
6765
|
period_end: string;
|
|
6766
|
+
/** @description Whether this is the current period (month or cycle). */
|
|
6569
6767
|
is_current_month: boolean;
|
|
6570
6768
|
/** @description The shared plan in effect; null for no plan or a custom contract. */
|
|
6571
6769
|
plan: {
|
|
@@ -6583,7 +6781,7 @@ export interface components {
|
|
|
6583
6781
|
}[];
|
|
6584
6782
|
overage_cents: number;
|
|
6585
6783
|
projected_overage_cents: number | null;
|
|
6586
|
-
/** @description Overage of the previous usage
|
|
6784
|
+
/** @description Overage of the previous usage period, as a guide when picking a limit. Current period only. */
|
|
6587
6785
|
last_month_overage_cents: number | null;
|
|
6588
6786
|
usage_limit: components["schemas"]["UsageLimit"];
|
|
6589
6787
|
};
|
|
@@ -6593,7 +6791,7 @@ export interface components {
|
|
|
6593
6791
|
meter: "ai_credits" | "test_minutes";
|
|
6594
6792
|
included_qty: number | null;
|
|
6595
6793
|
overage_price_cents: number | null;
|
|
6596
|
-
/** @description Units used so far this
|
|
6794
|
+
/** @description Units used so far this period. */
|
|
6597
6795
|
used: number;
|
|
6598
6796
|
/** @description Projected units at month end (trailing 7-day pace); null when too early to project. */
|
|
6599
6797
|
projected: number | null;
|
|
@@ -6603,14 +6801,14 @@ export interface components {
|
|
|
6603
6801
|
UsageLimit: {
|
|
6604
6802
|
/** @description Whether the org's plan supports a usage limit (catalog plans with overage pricing). */
|
|
6605
6803
|
available: boolean;
|
|
6606
|
-
/** @description Most overage allowed per usage month, in cents of the plan currency. Null means no limit. */
|
|
6804
|
+
/** @description Most overage allowed per usage period (calendar month, or Dodo billing cycle), in cents of the plan currency. Null means no limit. */
|
|
6607
6805
|
cap_cents: number | null;
|
|
6608
6806
|
/**
|
|
6609
|
-
* @description `warning`
|
|
6807
|
+
* @description `warning` once the bill (plan + overage) reaches 80% of plan + cap, skipped when that is at or below the plan price (including a $0 limit); `reached` when new work is paused.
|
|
6610
6808
|
* @enum {string}
|
|
6611
6809
|
*/
|
|
6612
6810
|
status: "none" | "ok" | "warning" | "reached";
|
|
6613
|
-
/** @description When the limit was reached this
|
|
6811
|
+
/** @description When the limit was reached this period (ISO 8601). */
|
|
6614
6812
|
reached_at: string | null;
|
|
6615
6813
|
updated_at: string | null;
|
|
6616
6814
|
/** @description Who made a change. */
|
|
@@ -6622,19 +6820,37 @@ export interface components {
|
|
|
6622
6820
|
name: string | null;
|
|
6623
6821
|
} | null;
|
|
6624
6822
|
};
|
|
6823
|
+
BillingPeriodsResponse: {
|
|
6824
|
+
/** @description Response payload. */
|
|
6825
|
+
data: components["schemas"]["BillingPeriod"][];
|
|
6826
|
+
};
|
|
6827
|
+
BillingPeriod: {
|
|
6828
|
+
/** @description Pass as `period` to the month summary (YYYY-MM-DD). */
|
|
6829
|
+
key: string;
|
|
6830
|
+
/**
|
|
6831
|
+
* @description `month`: a UTC calendar month. `cycle`: a Dodo billing cycle [previous_billing_date, next_billing_date).
|
|
6832
|
+
* @enum {string}
|
|
6833
|
+
*/
|
|
6834
|
+
kind: "month" | "cycle";
|
|
6835
|
+
/** @description Inclusive (ISO 8601). */
|
|
6836
|
+
start: string;
|
|
6837
|
+
/** @description Exclusive (ISO 8601). */
|
|
6838
|
+
end: string;
|
|
6839
|
+
is_current: boolean;
|
|
6840
|
+
};
|
|
6625
6841
|
UsageLimitResponse: {
|
|
6626
6842
|
/** @description Response payload. */
|
|
6627
6843
|
data: {
|
|
6628
6844
|
/** @description Whether the org's plan supports a usage limit (catalog plans with overage pricing). */
|
|
6629
6845
|
available: boolean;
|
|
6630
|
-
/** @description Most overage allowed per usage month, in cents of the plan currency. Null means no limit. */
|
|
6846
|
+
/** @description Most overage allowed per usage period (calendar month, or Dodo billing cycle), in cents of the plan currency. Null means no limit. */
|
|
6631
6847
|
cap_cents: number | null;
|
|
6632
6848
|
/**
|
|
6633
|
-
* @description `warning`
|
|
6849
|
+
* @description `warning` once the bill (plan + overage) reaches 80% of plan + cap, skipped when that is at or below the plan price (including a $0 limit); `reached` when new work is paused.
|
|
6634
6850
|
* @enum {string}
|
|
6635
6851
|
*/
|
|
6636
6852
|
status: "none" | "ok" | "warning" | "reached";
|
|
6637
|
-
/** @description When the limit was reached this
|
|
6853
|
+
/** @description When the limit was reached this period (ISO 8601). */
|
|
6638
6854
|
reached_at: string | null;
|
|
6639
6855
|
updated_at: string | null;
|
|
6640
6856
|
/** @description Who made a change. */
|
|
@@ -6675,6 +6891,91 @@ export interface components {
|
|
|
6675
6891
|
checkout_url: string;
|
|
6676
6892
|
};
|
|
6677
6893
|
};
|
|
6894
|
+
SubscriptionOfferResponse: {
|
|
6895
|
+
/** @description Response payload. */
|
|
6896
|
+
data: {
|
|
6897
|
+
/** @description Whether the org can subscribe through Dodo now. */
|
|
6898
|
+
available: boolean;
|
|
6899
|
+
/**
|
|
6900
|
+
* @description Why not, when `available` is false.
|
|
6901
|
+
* @enum {string|null}
|
|
6902
|
+
*/
|
|
6903
|
+
reason: "not_configured" | "no_org" | "inr" | "has_plan" | "no_plan" | null;
|
|
6904
|
+
/** @description The plan checkout would subscribe to, when available. */
|
|
6905
|
+
plan: {
|
|
6906
|
+
/** @description Plan name, e.g. `Managed`. */
|
|
6907
|
+
name: string;
|
|
6908
|
+
/** @description Currency of the prices below, e.g. `usd`. */
|
|
6909
|
+
currency: string;
|
|
6910
|
+
/** @description Monthly base price in cents of `currency`. */
|
|
6911
|
+
base_price_cents: number;
|
|
6912
|
+
/** @description Metered allowances and overage rates. */
|
|
6913
|
+
meters: {
|
|
6914
|
+
/** @description Meter key, e.g. `ai_credits` or `test_minutes`. */
|
|
6915
|
+
meter: string;
|
|
6916
|
+
/** @description Units included each month. */
|
|
6917
|
+
included_qty: number | null;
|
|
6918
|
+
/** @description Price per unit above the allowance, in cents of `currency`; may be fractional. */
|
|
6919
|
+
overage_price_cents: number | null;
|
|
6920
|
+
}[];
|
|
6921
|
+
} | null;
|
|
6922
|
+
};
|
|
6923
|
+
};
|
|
6924
|
+
SubscriptionPortalResponse: {
|
|
6925
|
+
/** @description Response payload. */
|
|
6926
|
+
data: {
|
|
6927
|
+
/** @description Short-lived Dodo customer portal session: update the card, download invoices. */
|
|
6928
|
+
portal_url: string;
|
|
6929
|
+
};
|
|
6930
|
+
};
|
|
6931
|
+
SubscriptionEndResponse: {
|
|
6932
|
+
/** @description Response payload. */
|
|
6933
|
+
data: {
|
|
6934
|
+
/**
|
|
6935
|
+
* @description What the subscription became in Dodo: `cancelled` when there was no usage beyond the plan's allowance; `paused` when there was, which Dodo charges on pausing (the subscription is cancelled once that charge succeeds). Either way the plan has ended.
|
|
6936
|
+
* @enum {string}
|
|
6937
|
+
*/
|
|
6938
|
+
status: "cancelled" | "paused";
|
|
6939
|
+
/** @description Whether Dodo charges a final payment for this cycle's usage beyond the allowance. */
|
|
6940
|
+
final_charge: boolean;
|
|
6941
|
+
};
|
|
6942
|
+
};
|
|
6943
|
+
SubscriptionUsageReconcileResponse: {
|
|
6944
|
+
/** @description Response payload. */
|
|
6945
|
+
data: {
|
|
6946
|
+
subscription_id: string;
|
|
6947
|
+
cycle_start: string;
|
|
6948
|
+
cycle_end: string;
|
|
6949
|
+
meters: {
|
|
6950
|
+
ai_credits: {
|
|
6951
|
+
/** @description Our usage in the cycle. */
|
|
6952
|
+
ours: number;
|
|
6953
|
+
/** @description What Dodo's events in the cycle add up to. */
|
|
6954
|
+
dodo: number;
|
|
6955
|
+
our_events: number;
|
|
6956
|
+
dodo_events: number;
|
|
6957
|
+
};
|
|
6958
|
+
test_minutes: {
|
|
6959
|
+
/** @description Our usage in the cycle. */
|
|
6960
|
+
ours: number;
|
|
6961
|
+
/** @description What Dodo's events in the cycle add up to. */
|
|
6962
|
+
dodo: number;
|
|
6963
|
+
our_events: number;
|
|
6964
|
+
dodo_events: number;
|
|
6965
|
+
};
|
|
6966
|
+
};
|
|
6967
|
+
/** @description Event ids of our usage rows that Dodo has no event for. */
|
|
6968
|
+
missing: string[];
|
|
6969
|
+
/** @description Dodo event ids in the cycle with no usage row of ours. */
|
|
6970
|
+
extra: string[];
|
|
6971
|
+
/** @description Events whose quantity differs from our usage row's (Dodo keeps the first quantity sent). */
|
|
6972
|
+
changed: {
|
|
6973
|
+
event_id: string;
|
|
6974
|
+
ours: number;
|
|
6975
|
+
dodo: number;
|
|
6976
|
+
}[];
|
|
6977
|
+
};
|
|
6978
|
+
};
|
|
6678
6979
|
ClaimRunnerBackendResponse: {
|
|
6679
6980
|
/** @description Response payload. */
|
|
6680
6981
|
data: {
|
|
@@ -8118,11 +8419,11 @@ export interface components {
|
|
|
8118
8419
|
ResolveMembershipRequest: {
|
|
8119
8420
|
/**
|
|
8120
8421
|
* Format: email
|
|
8121
|
-
* @description Verified email of the user.
|
|
8422
|
+
* @description Verified email of the user. Required for system callers; ignored for a signed-in user, whose confirmed email is read server-side.
|
|
8122
8423
|
*/
|
|
8123
|
-
email
|
|
8124
|
-
/** @description Supabase user id to grant membership to. */
|
|
8125
|
-
user_id
|
|
8424
|
+
email?: string;
|
|
8425
|
+
/** @description Supabase user id to grant membership to. Required for system callers; ignored for a signed-in user, who resolves their own. */
|
|
8426
|
+
user_id?: string;
|
|
8126
8427
|
};
|
|
8127
8428
|
OrgUpdateResponse: {
|
|
8128
8429
|
/** @description Response payload. */
|
|
@@ -9396,10 +9697,10 @@ export interface components {
|
|
|
9396
9697
|
/** @description ISO 8601 creation timestamp. */
|
|
9397
9698
|
created_at: string | null;
|
|
9398
9699
|
};
|
|
9399
|
-
|
|
9700
|
+
SlackAppInstallUpsertResponse: {
|
|
9400
9701
|
/** @description Whether the write succeeded. */
|
|
9401
9702
|
success: boolean;
|
|
9402
|
-
/** @description The Slack app install. */
|
|
9703
|
+
/** @description The Slack app install; null when the install was into Empirical's own workspace, which is not stored per org. */
|
|
9403
9704
|
data: {
|
|
9404
9705
|
/** @description Slack app install ID. */
|
|
9405
9706
|
id: number;
|
|
@@ -9426,7 +9727,15 @@ export interface components {
|
|
|
9426
9727
|
team_url: string | null;
|
|
9427
9728
|
/** @description ISO 8601 creation timestamp. */
|
|
9428
9729
|
created_at: string | null;
|
|
9429
|
-
};
|
|
9730
|
+
} | null;
|
|
9731
|
+
/** @description True when nothing was stored (Empirical's workspace). */
|
|
9732
|
+
skipped?: boolean;
|
|
9733
|
+
};
|
|
9734
|
+
SlackScopeRefreshResponse: {
|
|
9735
|
+
/** @description Whether the refresh succeeded. */
|
|
9736
|
+
success: boolean;
|
|
9737
|
+
/** @description Granted OAuth scopes (CSV). */
|
|
9738
|
+
scope: string;
|
|
9430
9739
|
};
|
|
9431
9740
|
SlackAppInstallResponse: {
|
|
9432
9741
|
/** @description Response payload. */
|
|
@@ -9632,6 +9941,38 @@ export interface components {
|
|
|
9632
9941
|
/** @description Pull request number in the authenticated project's repository. */
|
|
9633
9942
|
pr_number: number;
|
|
9634
9943
|
};
|
|
9944
|
+
SlackAppInstallMutationResponse: {
|
|
9945
|
+
/** @description Whether the write succeeded. */
|
|
9946
|
+
success: boolean;
|
|
9947
|
+
/** @description The Slack app install. */
|
|
9948
|
+
data: {
|
|
9949
|
+
/** @description Slack app install ID. */
|
|
9950
|
+
id: number;
|
|
9951
|
+
/** @description Organisation ID. */
|
|
9952
|
+
org_id: number;
|
|
9953
|
+
/** @description Slack app ID. */
|
|
9954
|
+
slack_app_id: string;
|
|
9955
|
+
/** @description Authorizing Slack user ID. */
|
|
9956
|
+
authed_user_id: string;
|
|
9957
|
+
/** @description OAuth scopes (CSV). */
|
|
9958
|
+
scope: string;
|
|
9959
|
+
/** @description OAuth token type. */
|
|
9960
|
+
token_type: string;
|
|
9961
|
+
/** @description Bot user ID. */
|
|
9962
|
+
bot_user_id: string;
|
|
9963
|
+
/** @description Slack workspace (team) ID. */
|
|
9964
|
+
team_id: string;
|
|
9965
|
+
/** @description Slack workspace name. */
|
|
9966
|
+
team_name: string;
|
|
9967
|
+
/**
|
|
9968
|
+
* Format: uri
|
|
9969
|
+
* @description Slack workspace URL learned from auth.test.
|
|
9970
|
+
*/
|
|
9971
|
+
team_url: string | null;
|
|
9972
|
+
/** @description ISO 8601 creation timestamp. */
|
|
9973
|
+
created_at: string | null;
|
|
9974
|
+
};
|
|
9975
|
+
};
|
|
9635
9976
|
ChatSessionUsersResponse: {
|
|
9636
9977
|
/** @description Response payload. */
|
|
9637
9978
|
data: components["schemas"]["ChatSessionUserDetail"][];
|
|
@@ -10508,22 +10849,29 @@ export interface components {
|
|
|
10508
10849
|
CreateJiraInstallationRequest: {
|
|
10509
10850
|
/** @description Organisation the installation belongs to. */
|
|
10510
10851
|
org_id: number;
|
|
10511
|
-
/** @description Atlassian
|
|
10512
|
-
|
|
10852
|
+
/** @description OAuth code from Atlassian's redirect. Required for a signed-in user. */
|
|
10853
|
+
code?: string;
|
|
10513
10854
|
/**
|
|
10514
10855
|
* Format: uri
|
|
10515
|
-
* @description
|
|
10856
|
+
* @description Redirect URI the authorize request used; Atlassian requires it to match. Required with `code`.
|
|
10516
10857
|
*/
|
|
10517
|
-
|
|
10518
|
-
/** @description
|
|
10519
|
-
|
|
10520
|
-
/**
|
|
10521
|
-
|
|
10858
|
+
redirect_uri?: string;
|
|
10859
|
+
/** @description Atlassian cloud ID. System callers only. */
|
|
10860
|
+
jira_cloud_id?: string;
|
|
10861
|
+
/**
|
|
10862
|
+
* Format: uri
|
|
10863
|
+
* @description Base URL of the Jira site. System callers only.
|
|
10864
|
+
*/
|
|
10865
|
+
jira_site_url?: string;
|
|
10866
|
+
/** @description OAuth access token. System callers only. */
|
|
10867
|
+
jira_access_token?: string;
|
|
10868
|
+
/** @description OAuth refresh token. System callers only. */
|
|
10869
|
+
jira_refresh_token?: string;
|
|
10522
10870
|
/**
|
|
10523
10871
|
* Format: date-time
|
|
10524
|
-
* @description Expiry
|
|
10872
|
+
* @description Expiry of the access token. System callers only.
|
|
10525
10873
|
*/
|
|
10526
|
-
jira_access_token_expires_at
|
|
10874
|
+
jira_access_token_expires_at?: string | null;
|
|
10527
10875
|
/** @description When true, register the Jira webhook after install. */
|
|
10528
10876
|
register_webhook?: boolean;
|
|
10529
10877
|
};
|
|
@@ -10597,6 +10945,9 @@ export interface components {
|
|
|
10597
10945
|
/** @description Webhook expiry (ISO 8601), or null. */
|
|
10598
10946
|
webhookExpiresAt: string | null;
|
|
10599
10947
|
};
|
|
10948
|
+
RequestIngestionProviderPayload: {
|
|
10949
|
+
[key: string]: unknown;
|
|
10950
|
+
};
|
|
10600
10951
|
LinearInstallListResponse: {
|
|
10601
10952
|
/** @description Installations for the organization. */
|
|
10602
10953
|
data: components["schemas"]["LinearAppInstall"][];
|
|
@@ -13879,7 +14230,7 @@ export interface operations {
|
|
|
13879
14230
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
13880
14231
|
};
|
|
13881
14232
|
};
|
|
13882
|
-
/** @description
|
|
14233
|
+
/** @description Billing blocked: an overdue invoice, a failed renewal, no active plan, or the spend limit reached. */
|
|
13883
14234
|
402: {
|
|
13884
14235
|
headers: {
|
|
13885
14236
|
[name: string]: unknown;
|
|
@@ -14127,7 +14478,7 @@ export interface operations {
|
|
|
14127
14478
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
14128
14479
|
};
|
|
14129
14480
|
};
|
|
14130
|
-
/** @description
|
|
14481
|
+
/** @description Billing blocked: an overdue invoice, a failed renewal, no active plan, or the spend limit reached. */
|
|
14131
14482
|
402: {
|
|
14132
14483
|
headers: {
|
|
14133
14484
|
[name: string]: unknown;
|
|
@@ -16209,15 +16560,65 @@ export interface operations {
|
|
|
16209
16560
|
};
|
|
16210
16561
|
};
|
|
16211
16562
|
};
|
|
16212
|
-
|
|
16563
|
+
refreshSlackAppScopes: {
|
|
16213
16564
|
parameters: {
|
|
16214
16565
|
query?: never;
|
|
16215
16566
|
header?: never;
|
|
16216
16567
|
path?: never;
|
|
16217
16568
|
cookie?: never;
|
|
16218
16569
|
};
|
|
16219
|
-
requestBody?:
|
|
16220
|
-
|
|
16570
|
+
requestBody?: {
|
|
16571
|
+
content: {
|
|
16572
|
+
"application/json": {
|
|
16573
|
+
/** @description OAuth code from Slack's redirect. */
|
|
16574
|
+
code: string;
|
|
16575
|
+
/**
|
|
16576
|
+
* Format: uri
|
|
16577
|
+
* @description Redirect URI the authorize request used.
|
|
16578
|
+
*/
|
|
16579
|
+
redirect_uri: string;
|
|
16580
|
+
};
|
|
16581
|
+
};
|
|
16582
|
+
};
|
|
16583
|
+
responses: {
|
|
16584
|
+
/** @description The scopes were refreshed. */
|
|
16585
|
+
200: {
|
|
16586
|
+
headers: {
|
|
16587
|
+
[name: string]: unknown;
|
|
16588
|
+
};
|
|
16589
|
+
content: {
|
|
16590
|
+
"application/json": components["schemas"]["SlackScopeRefreshResponse"];
|
|
16591
|
+
};
|
|
16592
|
+
};
|
|
16593
|
+
/** @description The code was for another workspace. */
|
|
16594
|
+
400: {
|
|
16595
|
+
headers: {
|
|
16596
|
+
[name: string]: unknown;
|
|
16597
|
+
};
|
|
16598
|
+
content: {
|
|
16599
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16600
|
+
};
|
|
16601
|
+
};
|
|
16602
|
+
/** @description Slack rejected the OAuth code. */
|
|
16603
|
+
401: {
|
|
16604
|
+
headers: {
|
|
16605
|
+
[name: string]: unknown;
|
|
16606
|
+
};
|
|
16607
|
+
content: {
|
|
16608
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16609
|
+
};
|
|
16610
|
+
};
|
|
16611
|
+
};
|
|
16612
|
+
};
|
|
16613
|
+
slackAuthTest: {
|
|
16614
|
+
parameters: {
|
|
16615
|
+
query?: never;
|
|
16616
|
+
header?: never;
|
|
16617
|
+
path?: never;
|
|
16618
|
+
cookie?: never;
|
|
16619
|
+
};
|
|
16620
|
+
requestBody?: never;
|
|
16621
|
+
responses: {
|
|
16221
16622
|
/** @description The Slack auth.test result. */
|
|
16222
16623
|
200: {
|
|
16223
16624
|
headers: {
|
|
@@ -16306,22 +16707,29 @@ export interface operations {
|
|
|
16306
16707
|
"application/json": {
|
|
16307
16708
|
/** @description Organisation ID. */
|
|
16308
16709
|
org_id: number;
|
|
16309
|
-
/** @description Slack
|
|
16310
|
-
|
|
16311
|
-
/**
|
|
16312
|
-
|
|
16313
|
-
|
|
16314
|
-
|
|
16315
|
-
|
|
16316
|
-
|
|
16317
|
-
|
|
16318
|
-
|
|
16319
|
-
|
|
16320
|
-
|
|
16321
|
-
|
|
16322
|
-
|
|
16323
|
-
|
|
16324
|
-
|
|
16710
|
+
/** @description OAuth code from Slack's redirect. Required for a signed-in user. */
|
|
16711
|
+
code?: string;
|
|
16712
|
+
/**
|
|
16713
|
+
* Format: uri
|
|
16714
|
+
* @description Redirect URI the authorize request used; Slack requires it to match. Required with `code`.
|
|
16715
|
+
*/
|
|
16716
|
+
redirect_uri?: string;
|
|
16717
|
+
/** @description Slack app ID. System callers only. */
|
|
16718
|
+
slack_app_id?: string;
|
|
16719
|
+
/** @description Authorizing Slack user ID. System callers only. */
|
|
16720
|
+
authed_user_id?: string;
|
|
16721
|
+
/** @description OAuth scopes (CSV). System callers only. */
|
|
16722
|
+
scope?: string;
|
|
16723
|
+
/** @description OAuth token type. System callers only. */
|
|
16724
|
+
token_type?: string;
|
|
16725
|
+
/** @description OAuth access token. System callers only. */
|
|
16726
|
+
access_token?: string;
|
|
16727
|
+
/** @description Bot user ID. System callers only. */
|
|
16728
|
+
bot_user_id?: string;
|
|
16729
|
+
/** @description Slack workspace (team) ID. System callers only. */
|
|
16730
|
+
team_id?: string;
|
|
16731
|
+
/** @description Slack workspace name. System callers only. */
|
|
16732
|
+
team_name?: string;
|
|
16325
16733
|
};
|
|
16326
16734
|
};
|
|
16327
16735
|
};
|
|
@@ -16332,7 +16740,7 @@ export interface operations {
|
|
|
16332
16740
|
[name: string]: unknown;
|
|
16333
16741
|
};
|
|
16334
16742
|
content: {
|
|
16335
|
-
"application/json": components["schemas"]["
|
|
16743
|
+
"application/json": components["schemas"]["SlackAppInstallUpsertResponse"];
|
|
16336
16744
|
};
|
|
16337
16745
|
};
|
|
16338
16746
|
/** @description Invalid request. */
|
|
@@ -16344,6 +16752,15 @@ export interface operations {
|
|
|
16344
16752
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
16345
16753
|
};
|
|
16346
16754
|
};
|
|
16755
|
+
/** @description Slack rejected the OAuth code. */
|
|
16756
|
+
401: {
|
|
16757
|
+
headers: {
|
|
16758
|
+
[name: string]: unknown;
|
|
16759
|
+
};
|
|
16760
|
+
content: {
|
|
16761
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16762
|
+
};
|
|
16763
|
+
};
|
|
16347
16764
|
/** @description Forbidden. */
|
|
16348
16765
|
403: {
|
|
16349
16766
|
headers: {
|
|
@@ -19520,8 +19937,10 @@ export interface operations {
|
|
|
19520
19937
|
getBillingMonthSummary: {
|
|
19521
19938
|
parameters: {
|
|
19522
19939
|
query?: {
|
|
19523
|
-
/** @description
|
|
19940
|
+
/** @description A UTC calendar month (YYYY-MM), for any org. Defaults to the current period. */
|
|
19524
19941
|
month?: string;
|
|
19942
|
+
/** @description A usage period by key (YYYY-MM-DD, from `/api/billing/periods`): a calendar month, or a billing cycle for an org on a live Dodo subscription. Defaults to the current period. */
|
|
19943
|
+
period?: string;
|
|
19525
19944
|
};
|
|
19526
19945
|
header?: never;
|
|
19527
19946
|
path?: never;
|
|
@@ -19538,7 +19957,48 @@ export interface operations {
|
|
|
19538
19957
|
"application/json": components["schemas"]["BillingMonthSummaryResponse"];
|
|
19539
19958
|
};
|
|
19540
19959
|
};
|
|
19541
|
-
/** @description Invalid month, or missing project scope. */
|
|
19960
|
+
/** @description Invalid month or period, or missing project scope. */
|
|
19961
|
+
400: {
|
|
19962
|
+
headers: {
|
|
19963
|
+
[name: string]: unknown;
|
|
19964
|
+
};
|
|
19965
|
+
content: {
|
|
19966
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
19967
|
+
};
|
|
19968
|
+
};
|
|
19969
|
+
/** @description The project has no org. */
|
|
19970
|
+
404: {
|
|
19971
|
+
headers: {
|
|
19972
|
+
[name: string]: unknown;
|
|
19973
|
+
};
|
|
19974
|
+
content: {
|
|
19975
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
19976
|
+
};
|
|
19977
|
+
};
|
|
19978
|
+
};
|
|
19979
|
+
};
|
|
19980
|
+
listBillingPeriods: {
|
|
19981
|
+
parameters: {
|
|
19982
|
+
query?: {
|
|
19983
|
+
/** @description How many periods. Defaults to 2. */
|
|
19984
|
+
count?: number;
|
|
19985
|
+
};
|
|
19986
|
+
header?: never;
|
|
19987
|
+
path?: never;
|
|
19988
|
+
cookie?: never;
|
|
19989
|
+
};
|
|
19990
|
+
requestBody?: never;
|
|
19991
|
+
responses: {
|
|
19992
|
+
/** @description Usage periods, latest first. */
|
|
19993
|
+
200: {
|
|
19994
|
+
headers: {
|
|
19995
|
+
[name: string]: unknown;
|
|
19996
|
+
};
|
|
19997
|
+
content: {
|
|
19998
|
+
"application/json": components["schemas"]["BillingPeriodsResponse"];
|
|
19999
|
+
};
|
|
20000
|
+
};
|
|
20001
|
+
/** @description Invalid query, or missing project scope. */
|
|
19542
20002
|
400: {
|
|
19543
20003
|
headers: {
|
|
19544
20004
|
[name: string]: unknown;
|
|
@@ -19558,6 +20018,50 @@ export interface operations {
|
|
|
19558
20018
|
};
|
|
19559
20019
|
};
|
|
19560
20020
|
};
|
|
20021
|
+
reconcileSubscriptionUsage: {
|
|
20022
|
+
parameters: {
|
|
20023
|
+
query?: {
|
|
20024
|
+
cycle_end?: string;
|
|
20025
|
+
cycle_start?: string;
|
|
20026
|
+
};
|
|
20027
|
+
header?: never;
|
|
20028
|
+
path: {
|
|
20029
|
+
/** @description Dodo subscription id. */
|
|
20030
|
+
subscription_id: string;
|
|
20031
|
+
};
|
|
20032
|
+
cookie?: never;
|
|
20033
|
+
};
|
|
20034
|
+
requestBody?: never;
|
|
20035
|
+
responses: {
|
|
20036
|
+
/** @description The reconciliation. */
|
|
20037
|
+
200: {
|
|
20038
|
+
headers: {
|
|
20039
|
+
[name: string]: unknown;
|
|
20040
|
+
};
|
|
20041
|
+
content: {
|
|
20042
|
+
"application/json": components["schemas"]["SubscriptionUsageReconcileResponse"];
|
|
20043
|
+
};
|
|
20044
|
+
};
|
|
20045
|
+
/** @description Payments are not configured, or an empty cycle. */
|
|
20046
|
+
400: {
|
|
20047
|
+
headers: {
|
|
20048
|
+
[name: string]: unknown;
|
|
20049
|
+
};
|
|
20050
|
+
content: {
|
|
20051
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
20052
|
+
};
|
|
20053
|
+
};
|
|
20054
|
+
/** @description No such subscription. */
|
|
20055
|
+
404: {
|
|
20056
|
+
headers: {
|
|
20057
|
+
[name: string]: unknown;
|
|
20058
|
+
};
|
|
20059
|
+
content: {
|
|
20060
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
20061
|
+
};
|
|
20062
|
+
};
|
|
20063
|
+
};
|
|
20064
|
+
};
|
|
19561
20065
|
createSubscriptionCheckout: {
|
|
19562
20066
|
parameters: {
|
|
19563
20067
|
query?: never;
|
|
@@ -19605,6 +20109,111 @@ export interface operations {
|
|
|
19605
20109
|
};
|
|
19606
20110
|
};
|
|
19607
20111
|
};
|
|
20112
|
+
endSubscription: {
|
|
20113
|
+
parameters: {
|
|
20114
|
+
query?: never;
|
|
20115
|
+
header?: never;
|
|
20116
|
+
path?: never;
|
|
20117
|
+
cookie?: never;
|
|
20118
|
+
};
|
|
20119
|
+
requestBody?: never;
|
|
20120
|
+
responses: {
|
|
20121
|
+
/** @description The plan has ended. */
|
|
20122
|
+
200: {
|
|
20123
|
+
headers: {
|
|
20124
|
+
[name: string]: unknown;
|
|
20125
|
+
};
|
|
20126
|
+
content: {
|
|
20127
|
+
"application/json": components["schemas"]["SubscriptionEndResponse"];
|
|
20128
|
+
};
|
|
20129
|
+
};
|
|
20130
|
+
/** @description Payments are not configured. */
|
|
20131
|
+
400: {
|
|
20132
|
+
headers: {
|
|
20133
|
+
[name: string]: unknown;
|
|
20134
|
+
};
|
|
20135
|
+
content: {
|
|
20136
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
20137
|
+
};
|
|
20138
|
+
};
|
|
20139
|
+
/** @description The org has no active subscription. */
|
|
20140
|
+
404: {
|
|
20141
|
+
headers: {
|
|
20142
|
+
[name: string]: unknown;
|
|
20143
|
+
};
|
|
20144
|
+
content: {
|
|
20145
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
20146
|
+
};
|
|
20147
|
+
};
|
|
20148
|
+
/** @description The subscription is on hold (pay first), is already being ended, or can't be ended in Dodo right now. */
|
|
20149
|
+
409: {
|
|
20150
|
+
headers: {
|
|
20151
|
+
[name: string]: unknown;
|
|
20152
|
+
};
|
|
20153
|
+
content: {
|
|
20154
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
20155
|
+
};
|
|
20156
|
+
};
|
|
20157
|
+
};
|
|
20158
|
+
};
|
|
20159
|
+
getSubscriptionOffer: {
|
|
20160
|
+
parameters: {
|
|
20161
|
+
query?: never;
|
|
20162
|
+
header?: never;
|
|
20163
|
+
path?: never;
|
|
20164
|
+
cookie?: never;
|
|
20165
|
+
};
|
|
20166
|
+
requestBody?: never;
|
|
20167
|
+
responses: {
|
|
20168
|
+
/** @description The offer. */
|
|
20169
|
+
200: {
|
|
20170
|
+
headers: {
|
|
20171
|
+
[name: string]: unknown;
|
|
20172
|
+
};
|
|
20173
|
+
content: {
|
|
20174
|
+
"application/json": components["schemas"]["SubscriptionOfferResponse"];
|
|
20175
|
+
};
|
|
20176
|
+
};
|
|
20177
|
+
};
|
|
20178
|
+
};
|
|
20179
|
+
createSubscriptionPortalSession: {
|
|
20180
|
+
parameters: {
|
|
20181
|
+
query?: never;
|
|
20182
|
+
header?: never;
|
|
20183
|
+
path?: never;
|
|
20184
|
+
cookie?: never;
|
|
20185
|
+
};
|
|
20186
|
+
requestBody?: never;
|
|
20187
|
+
responses: {
|
|
20188
|
+
/** @description The portal session. */
|
|
20189
|
+
200: {
|
|
20190
|
+
headers: {
|
|
20191
|
+
[name: string]: unknown;
|
|
20192
|
+
};
|
|
20193
|
+
content: {
|
|
20194
|
+
"application/json": components["schemas"]["SubscriptionPortalResponse"];
|
|
20195
|
+
};
|
|
20196
|
+
};
|
|
20197
|
+
/** @description Payments are not configured. */
|
|
20198
|
+
400: {
|
|
20199
|
+
headers: {
|
|
20200
|
+
[name: string]: unknown;
|
|
20201
|
+
};
|
|
20202
|
+
content: {
|
|
20203
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
20204
|
+
};
|
|
20205
|
+
};
|
|
20206
|
+
/** @description The org has no Dodo customer. */
|
|
20207
|
+
404: {
|
|
20208
|
+
headers: {
|
|
20209
|
+
[name: string]: unknown;
|
|
20210
|
+
};
|
|
20211
|
+
content: {
|
|
20212
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
20213
|
+
};
|
|
20214
|
+
};
|
|
20215
|
+
};
|
|
20216
|
+
};
|
|
19608
20217
|
setUsageLimit: {
|
|
19609
20218
|
parameters: {
|
|
19610
20219
|
query?: never;
|
|
@@ -21902,6 +22511,15 @@ export interface operations {
|
|
|
21902
22511
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
21903
22512
|
};
|
|
21904
22513
|
};
|
|
22514
|
+
/** @description Caller cannot access the organisation. */
|
|
22515
|
+
403: {
|
|
22516
|
+
headers: {
|
|
22517
|
+
[name: string]: unknown;
|
|
22518
|
+
};
|
|
22519
|
+
content: {
|
|
22520
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
22521
|
+
};
|
|
22522
|
+
};
|
|
21905
22523
|
};
|
|
21906
22524
|
};
|
|
21907
22525
|
getMainInstallationMetadata: {
|
|
@@ -22323,6 +22941,15 @@ export interface operations {
|
|
|
22323
22941
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
22324
22942
|
};
|
|
22325
22943
|
};
|
|
22944
|
+
/** @description Caller cannot access the organisation. */
|
|
22945
|
+
403: {
|
|
22946
|
+
headers: {
|
|
22947
|
+
[name: string]: unknown;
|
|
22948
|
+
};
|
|
22949
|
+
content: {
|
|
22950
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
22951
|
+
};
|
|
22952
|
+
};
|
|
22326
22953
|
};
|
|
22327
22954
|
};
|
|
22328
22955
|
getReporterInstallationMetadata: {
|
|
@@ -23842,6 +24469,48 @@ export interface operations {
|
|
|
23842
24469
|
};
|
|
23843
24470
|
};
|
|
23844
24471
|
};
|
|
24472
|
+
receiveJiraWebhook: {
|
|
24473
|
+
parameters: {
|
|
24474
|
+
query?: never;
|
|
24475
|
+
header?: never;
|
|
24476
|
+
path?: never;
|
|
24477
|
+
cookie?: never;
|
|
24478
|
+
};
|
|
24479
|
+
requestBody?: {
|
|
24480
|
+
content: {
|
|
24481
|
+
"application/json": components["schemas"]["RequestIngestionProviderPayload"];
|
|
24482
|
+
};
|
|
24483
|
+
};
|
|
24484
|
+
responses: {
|
|
24485
|
+
/** @description Webhook processed. */
|
|
24486
|
+
200: {
|
|
24487
|
+
headers: {
|
|
24488
|
+
[name: string]: unknown;
|
|
24489
|
+
};
|
|
24490
|
+
content: {
|
|
24491
|
+
"application/json": components["schemas"]["JiraWebhookResponse"];
|
|
24492
|
+
};
|
|
24493
|
+
};
|
|
24494
|
+
/** @description Invalid webhook payload. */
|
|
24495
|
+
400: {
|
|
24496
|
+
headers: {
|
|
24497
|
+
[name: string]: unknown;
|
|
24498
|
+
};
|
|
24499
|
+
content: {
|
|
24500
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
24501
|
+
};
|
|
24502
|
+
};
|
|
24503
|
+
/** @description No matching install or project. */
|
|
24504
|
+
404: {
|
|
24505
|
+
headers: {
|
|
24506
|
+
[name: string]: unknown;
|
|
24507
|
+
};
|
|
24508
|
+
content: {
|
|
24509
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
24510
|
+
};
|
|
24511
|
+
};
|
|
24512
|
+
};
|
|
24513
|
+
};
|
|
23845
24514
|
listJiraInstallations: {
|
|
23846
24515
|
parameters: {
|
|
23847
24516
|
query: {
|
|
@@ -23914,6 +24583,15 @@ export interface operations {
|
|
|
23914
24583
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
23915
24584
|
};
|
|
23916
24585
|
};
|
|
24586
|
+
/** @description Atlassian rejected the OAuth code. */
|
|
24587
|
+
401: {
|
|
24588
|
+
headers: {
|
|
24589
|
+
[name: string]: unknown;
|
|
24590
|
+
};
|
|
24591
|
+
content: {
|
|
24592
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
24593
|
+
};
|
|
24594
|
+
};
|
|
23917
24595
|
/** @description Caller cannot access the organisation. */
|
|
23918
24596
|
403: {
|
|
23919
24597
|
headers: {
|
|
@@ -24147,6 +24825,57 @@ export interface operations {
|
|
|
24147
24825
|
};
|
|
24148
24826
|
};
|
|
24149
24827
|
};
|
|
24828
|
+
receiveLinearWebhook: {
|
|
24829
|
+
parameters: {
|
|
24830
|
+
query?: never;
|
|
24831
|
+
header?: never;
|
|
24832
|
+
path?: never;
|
|
24833
|
+
cookie?: never;
|
|
24834
|
+
};
|
|
24835
|
+
requestBody?: {
|
|
24836
|
+
content: {
|
|
24837
|
+
"application/json": components["schemas"]["RequestIngestionProviderPayload"];
|
|
24838
|
+
};
|
|
24839
|
+
};
|
|
24840
|
+
responses: {
|
|
24841
|
+
/** @description Webhook accepted. */
|
|
24842
|
+
200: {
|
|
24843
|
+
headers: {
|
|
24844
|
+
[name: string]: unknown;
|
|
24845
|
+
};
|
|
24846
|
+
content: {
|
|
24847
|
+
"application/json": components["schemas"]["LinearWebhookResponse"];
|
|
24848
|
+
};
|
|
24849
|
+
};
|
|
24850
|
+
/** @description Invalid webhook payload. */
|
|
24851
|
+
400: {
|
|
24852
|
+
headers: {
|
|
24853
|
+
[name: string]: unknown;
|
|
24854
|
+
};
|
|
24855
|
+
content: {
|
|
24856
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
24857
|
+
};
|
|
24858
|
+
};
|
|
24859
|
+
/** @description Invalid signature. */
|
|
24860
|
+
401: {
|
|
24861
|
+
headers: {
|
|
24862
|
+
[name: string]: unknown;
|
|
24863
|
+
};
|
|
24864
|
+
content: {
|
|
24865
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
24866
|
+
};
|
|
24867
|
+
};
|
|
24868
|
+
/** @description No matching install or project. */
|
|
24869
|
+
404: {
|
|
24870
|
+
headers: {
|
|
24871
|
+
[name: string]: unknown;
|
|
24872
|
+
};
|
|
24873
|
+
content: {
|
|
24874
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
24875
|
+
};
|
|
24876
|
+
};
|
|
24877
|
+
};
|
|
24878
|
+
};
|
|
24150
24879
|
listLinearInstallations: {
|
|
24151
24880
|
parameters: {
|
|
24152
24881
|
query: {
|
|
@@ -24200,20 +24929,27 @@ export interface operations {
|
|
|
24200
24929
|
"application/json": {
|
|
24201
24930
|
/** @description Organization the installation belongs to. */
|
|
24202
24931
|
org_id: number;
|
|
24203
|
-
/** @description Linear
|
|
24204
|
-
|
|
24205
|
-
/**
|
|
24206
|
-
|
|
24207
|
-
|
|
24208
|
-
|
|
24209
|
-
|
|
24932
|
+
/** @description OAuth code from Linear's redirect. Required for a signed-in user. */
|
|
24933
|
+
code?: string;
|
|
24934
|
+
/**
|
|
24935
|
+
* Format: uri
|
|
24936
|
+
* @description Redirect URI the authorize request used; Linear requires it to match. Required with `code`.
|
|
24937
|
+
*/
|
|
24938
|
+
redirect_uri?: string;
|
|
24939
|
+
/** @description Linear app user (actor) id. System callers only. */
|
|
24940
|
+
linear_app_user_id?: string;
|
|
24941
|
+
/** @description Linear organization id. System callers only. */
|
|
24942
|
+
linear_organization_id?: string;
|
|
24943
|
+
/** @description OAuth access token. System callers only. */
|
|
24944
|
+
linear_access_token?: string;
|
|
24945
|
+
/** @description OAuth refresh token. System callers only. */
|
|
24210
24946
|
linear_refresh_token?: string;
|
|
24211
24947
|
/**
|
|
24212
24948
|
* Format: date-time
|
|
24213
|
-
* @description Expiry of the access token.
|
|
24949
|
+
* @description Expiry of the access token. System callers only.
|
|
24214
24950
|
*/
|
|
24215
|
-
linear_access_token_expires_at
|
|
24216
|
-
/** @description Cached Linear organization/team metadata. */
|
|
24951
|
+
linear_access_token_expires_at?: string | null;
|
|
24952
|
+
/** @description Cached Linear organization/team metadata. System callers only; built from Linear for users. */
|
|
24217
24953
|
metadata?: {
|
|
24218
24954
|
organization: {
|
|
24219
24955
|
name: string;
|
|
@@ -24251,6 +24987,15 @@ export interface operations {
|
|
|
24251
24987
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
24252
24988
|
};
|
|
24253
24989
|
};
|
|
24990
|
+
/** @description Linear rejected the OAuth code. */
|
|
24991
|
+
401: {
|
|
24992
|
+
headers: {
|
|
24993
|
+
[name: string]: unknown;
|
|
24994
|
+
};
|
|
24995
|
+
content: {
|
|
24996
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
24997
|
+
};
|
|
24998
|
+
};
|
|
24254
24999
|
/** @description Forbidden. */
|
|
24255
25000
|
403: {
|
|
24256
25001
|
headers: {
|
|
@@ -24822,6 +25567,58 @@ export interface operations {
|
|
|
24822
25567
|
};
|
|
24823
25568
|
};
|
|
24824
25569
|
};
|
|
25570
|
+
getOAuthAuthorizeUrl: {
|
|
25571
|
+
parameters: {
|
|
25572
|
+
query: {
|
|
25573
|
+
/** @description OAuth provider. */
|
|
25574
|
+
provider: "slack" | "linear" | "jira" | "github";
|
|
25575
|
+
/** @description The dashboard callback the provider returns to. */
|
|
25576
|
+
redirect_uri: string;
|
|
25577
|
+
/** @description CSRF state, echoed back to the callback. */
|
|
25578
|
+
state: string;
|
|
25579
|
+
/** @description Slack only: pins the install to a workspace, so re-auth updates it instead of showing a picker. */
|
|
25580
|
+
team?: string;
|
|
25581
|
+
};
|
|
25582
|
+
header?: never;
|
|
25583
|
+
path?: never;
|
|
25584
|
+
cookie?: never;
|
|
25585
|
+
};
|
|
25586
|
+
requestBody?: never;
|
|
25587
|
+
responses: {
|
|
25588
|
+
/** @description The authorize URL. */
|
|
25589
|
+
200: {
|
|
25590
|
+
headers: {
|
|
25591
|
+
[name: string]: unknown;
|
|
25592
|
+
};
|
|
25593
|
+
content: {
|
|
25594
|
+
"application/json": {
|
|
25595
|
+
data: {
|
|
25596
|
+
/** @description The provider's authorize URL. */
|
|
25597
|
+
url: string;
|
|
25598
|
+
};
|
|
25599
|
+
};
|
|
25600
|
+
};
|
|
25601
|
+
};
|
|
25602
|
+
/** @description Invalid request. */
|
|
25603
|
+
400: {
|
|
25604
|
+
headers: {
|
|
25605
|
+
[name: string]: unknown;
|
|
25606
|
+
};
|
|
25607
|
+
content: {
|
|
25608
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
25609
|
+
};
|
|
25610
|
+
};
|
|
25611
|
+
/** @description The provider's client ID is not configured. */
|
|
25612
|
+
500: {
|
|
25613
|
+
headers: {
|
|
25614
|
+
[name: string]: unknown;
|
|
25615
|
+
};
|
|
25616
|
+
content: {
|
|
25617
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
25618
|
+
};
|
|
25619
|
+
};
|
|
25620
|
+
};
|
|
25621
|
+
};
|
|
24825
25622
|
completeOnboarding: {
|
|
24826
25623
|
parameters: {
|
|
24827
25624
|
query?: never;
|
|
@@ -25486,6 +26283,15 @@ export interface operations {
|
|
|
25486
26283
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
25487
26284
|
};
|
|
25488
26285
|
};
|
|
26286
|
+
/** @description The user's email is not confirmed. */
|
|
26287
|
+
403: {
|
|
26288
|
+
headers: {
|
|
26289
|
+
[name: string]: unknown;
|
|
26290
|
+
};
|
|
26291
|
+
content: {
|
|
26292
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
26293
|
+
};
|
|
26294
|
+
};
|
|
25489
26295
|
};
|
|
25490
26296
|
};
|
|
25491
26297
|
listPlanAssignments: {
|
|
@@ -25650,6 +26456,8 @@ export interface operations {
|
|
|
25650
26456
|
query?: {
|
|
25651
26457
|
/** @description Usage month (YYYY-MM, UTC). Returns the plan in effect at the end of that month, or now for the current month. Defaults to now. */
|
|
25652
26458
|
month?: string;
|
|
26459
|
+
/** @description Usage period key (YYYY-MM-DD, from `/api/billing/periods`). Returns the plan in effect at the end of that period, or now for the current period. */
|
|
26460
|
+
period?: string;
|
|
25653
26461
|
};
|
|
25654
26462
|
header?: never;
|
|
25655
26463
|
path?: never;
|
|
@@ -25666,7 +26474,7 @@ export interface operations {
|
|
|
25666
26474
|
"application/json": components["schemas"]["OrgPlanResponse"];
|
|
25667
26475
|
};
|
|
25668
26476
|
};
|
|
25669
|
-
/** @description Invalid month, or missing project scope. */
|
|
26477
|
+
/** @description Invalid month or period, or missing project scope. */
|
|
25670
26478
|
400: {
|
|
25671
26479
|
headers: {
|
|
25672
26480
|
[name: string]: unknown;
|
|
@@ -28954,12 +29762,14 @@ export interface operations {
|
|
|
28954
29762
|
requestBody?: {
|
|
28955
29763
|
content: {
|
|
28956
29764
|
"application/json": {
|
|
28957
|
-
/** @description
|
|
28958
|
-
|
|
28959
|
-
/** @description GitHub
|
|
28960
|
-
|
|
28961
|
-
/** @description GitHub
|
|
28962
|
-
|
|
29765
|
+
/** @description OAuth code from GitHub's redirect to the reporter app callback. Required for a signed-in user, whose account is linked to the GitHub user who authorized it. */
|
|
29766
|
+
code?: string;
|
|
29767
|
+
/** @description User ID to link the GitHub account to. System callers only. */
|
|
29768
|
+
user_id?: string;
|
|
29769
|
+
/** @description GitHub numeric user ID. System callers only. */
|
|
29770
|
+
github_user_id?: string;
|
|
29771
|
+
/** @description GitHub login/username. System callers only. */
|
|
29772
|
+
github_username?: string;
|
|
28963
29773
|
/** @description GitHub display name. */
|
|
28964
29774
|
github_display_name?: string | null;
|
|
28965
29775
|
/** @description GitHub avatar URL. */
|
|
@@ -28988,6 +29798,15 @@ export interface operations {
|
|
|
28988
29798
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
28989
29799
|
};
|
|
28990
29800
|
};
|
|
29801
|
+
/** @description GitHub rejected the OAuth code. */
|
|
29802
|
+
401: {
|
|
29803
|
+
headers: {
|
|
29804
|
+
[name: string]: unknown;
|
|
29805
|
+
};
|
|
29806
|
+
content: {
|
|
29807
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
29808
|
+
};
|
|
29809
|
+
};
|
|
28991
29810
|
};
|
|
28992
29811
|
};
|
|
28993
29812
|
deleteMyGithubLink: {
|