shoal-web-sdk 1.0.141 → 1.0.142
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/dist/sdk/insights-engine/@tanstack/react-query.gen.d.ts +94 -1
- package/dist/sdk/insights-engine/@tanstack/react-query.gen.js +77 -1
- package/dist/sdk/insights-engine/sdk.gen.d.ts +18 -1
- package/dist/sdk/insights-engine/sdk.gen.js +39 -0
- package/dist/sdk/insights-engine/types.gen.d.ts +159 -4
- package/dist/sdk/insights-engine/zod.gen.d.ts +446 -1
- package/dist/sdk/insights-engine/zod.gen.js +97 -2
- package/dist/tanstack-codegen/generated/insights-engine.d.ts +415 -1
- package/dist/tanstack-codegen/generated/insights-engine.js +45 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type InfiniteData } from '@tanstack/react-query';
|
|
2
2
|
import { type Options } from '../sdk.gen';
|
|
3
|
-
import type { ListActorActivityData, ListAuditBreakdownData, ListAuditsData, ListCostBreakdownData, ListDeploymentBreakdownData, ListDeploymentOrganisationsData, ListDeploymentsData, ListSignUpBreakdownData, ListTenantsData, ListUsersData } from '../types.gen';
|
|
3
|
+
import type { GetTenantSummaryData, ListActorActivityData, ListAuditBreakdownData, ListAuditsData, ListCostBreakdownData, ListCostOrganisationsData, ListDeploymentBreakdownData, ListDeploymentOrganisationsData, ListDeploymentsData, ListSignUpBreakdownData, ListTenantsData, ListUsersData } from '../types.gen';
|
|
4
4
|
export type QueryKey<TOptions extends Options> = [
|
|
5
5
|
Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & {
|
|
6
6
|
_id: string;
|
|
@@ -70,6 +70,39 @@ export declare const listTenantsInfiniteOptions: (options?: Options<ListTenantsD
|
|
|
70
70
|
[dataTagErrorSymbol]: import("../types.gen")._Error;
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
|
+
export declare const getTenantSummaryQueryKey: (options?: Options<GetTenantSummaryData>) => [Pick<Options<GetTenantSummaryData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
74
|
+
_id: string;
|
|
75
|
+
_infinite?: boolean;
|
|
76
|
+
tags?: ReadonlyArray<string>;
|
|
77
|
+
}];
|
|
78
|
+
/**
|
|
79
|
+
* Summarise tenants
|
|
80
|
+
*
|
|
81
|
+
* Returns counts over every tenant by lifecycle state, plan and scheduled plan change, and
|
|
82
|
+
* the same for tenants created within the window. Reads billing data only, so it is cheap
|
|
83
|
+
* compared with listing tenants.
|
|
84
|
+
*
|
|
85
|
+
*/
|
|
86
|
+
export declare const getTenantSummaryOptions: (options?: Options<GetTenantSummaryData>) => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../types.gen").TenantSummary, Error, import("../types.gen").TenantSummary, [Pick<Options<GetTenantSummaryData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
87
|
+
_id: string;
|
|
88
|
+
_infinite?: boolean;
|
|
89
|
+
tags?: ReadonlyArray<string>;
|
|
90
|
+
}]>, "queryFn"> & {
|
|
91
|
+
queryFn?: import("@tanstack/react-query").QueryFunction<import("../types.gen").TenantSummary, [Pick<Options<GetTenantSummaryData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
92
|
+
_id: string;
|
|
93
|
+
_infinite?: boolean;
|
|
94
|
+
tags?: ReadonlyArray<string>;
|
|
95
|
+
}], never> | undefined;
|
|
96
|
+
} & {
|
|
97
|
+
queryKey: [Pick<Options<GetTenantSummaryData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
98
|
+
_id: string;
|
|
99
|
+
_infinite?: boolean;
|
|
100
|
+
tags?: ReadonlyArray<string>;
|
|
101
|
+
}] & {
|
|
102
|
+
[dataTagSymbol]: import("../types.gen").TenantSummary;
|
|
103
|
+
[dataTagErrorSymbol]: Error;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
73
106
|
export declare const listUsersQueryKey: (options?: Options<ListUsersData>) => [Pick<Options<ListUsersData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
74
107
|
_id: string;
|
|
75
108
|
_infinite?: boolean;
|
|
@@ -580,6 +613,66 @@ export declare const listDeploymentBreakdownInfiniteOptions: (options?: Options<
|
|
|
580
613
|
[dataTagErrorSymbol]: import("../types.gen")._Error;
|
|
581
614
|
};
|
|
582
615
|
};
|
|
616
|
+
export declare const listCostOrganisationsQueryKey: (options?: Options<ListCostOrganisationsData>) => [Pick<Options<ListCostOrganisationsData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
617
|
+
_id: string;
|
|
618
|
+
_infinite?: boolean;
|
|
619
|
+
tags?: ReadonlyArray<string>;
|
|
620
|
+
}];
|
|
621
|
+
/**
|
|
622
|
+
* List spend per space
|
|
623
|
+
*
|
|
624
|
+
* Returns a page of spaces with spend within the window, highest spend first, each broken
|
|
625
|
+
* down by project and environment.
|
|
626
|
+
*
|
|
627
|
+
*/
|
|
628
|
+
export declare const listCostOrganisationsOptions: (options?: Options<ListCostOrganisationsData>) => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../types.gen").PaginatedCostOrganisations, Error, import("../types.gen").PaginatedCostOrganisations, [Pick<Options<ListCostOrganisationsData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
629
|
+
_id: string;
|
|
630
|
+
_infinite?: boolean;
|
|
631
|
+
tags?: ReadonlyArray<string>;
|
|
632
|
+
}]>, "queryFn"> & {
|
|
633
|
+
queryFn?: import("@tanstack/react-query").QueryFunction<import("../types.gen").PaginatedCostOrganisations, [Pick<Options<ListCostOrganisationsData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
634
|
+
_id: string;
|
|
635
|
+
_infinite?: boolean;
|
|
636
|
+
tags?: ReadonlyArray<string>;
|
|
637
|
+
}], never> | undefined;
|
|
638
|
+
} & {
|
|
639
|
+
queryKey: [Pick<Options<ListCostOrganisationsData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
640
|
+
_id: string;
|
|
641
|
+
_infinite?: boolean;
|
|
642
|
+
tags?: ReadonlyArray<string>;
|
|
643
|
+
}] & {
|
|
644
|
+
[dataTagSymbol]: import("../types.gen").PaginatedCostOrganisations;
|
|
645
|
+
[dataTagErrorSymbol]: Error;
|
|
646
|
+
};
|
|
647
|
+
};
|
|
648
|
+
export declare const listCostOrganisationsInfiniteQueryKey: (options?: Options<ListCostOrganisationsData>) => QueryKey<Options<ListCostOrganisationsData>>;
|
|
649
|
+
/**
|
|
650
|
+
* List spend per space
|
|
651
|
+
*
|
|
652
|
+
* Returns a page of spaces with spend within the window, highest spend first, each broken
|
|
653
|
+
* down by project and environment.
|
|
654
|
+
*
|
|
655
|
+
*/
|
|
656
|
+
export declare const listCostOrganisationsInfiniteOptions: (options?: Options<ListCostOrganisationsData>) => import("@tanstack/react-query").UseInfiniteQueryOptions<import("../types.gen").PaginatedCostOrganisations, import("../types.gen")._Error, InfiniteData<import("../types.gen").PaginatedCostOrganisations, unknown>, QueryKey<Options<ListCostOrganisationsData>>, number | Pick<Pick<Options<ListCostOrganisationsData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
657
|
+
_id: string;
|
|
658
|
+
_infinite?: boolean;
|
|
659
|
+
tags?: ReadonlyArray<string>;
|
|
660
|
+
}, "query" | "body" | "headers" | "path">> & {
|
|
661
|
+
initialData: InfiniteData<import("../types.gen").PaginatedCostOrganisations, number | Pick<Pick<Options<ListCostOrganisationsData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
662
|
+
_id: string;
|
|
663
|
+
_infinite?: boolean;
|
|
664
|
+
tags?: ReadonlyArray<string>;
|
|
665
|
+
}, "query" | "body" | "headers" | "path">> | (() => InfiniteData<import("../types.gen").PaginatedCostOrganisations, number | Pick<Pick<Options<ListCostOrganisationsData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
666
|
+
_id: string;
|
|
667
|
+
_infinite?: boolean;
|
|
668
|
+
tags?: ReadonlyArray<string>;
|
|
669
|
+
}, "query" | "body" | "headers" | "path">>) | undefined;
|
|
670
|
+
} & {
|
|
671
|
+
queryKey: QueryKey<Options<ListCostOrganisationsData>> & {
|
|
672
|
+
[dataTagSymbol]: InfiniteData<import("../types.gen").PaginatedCostOrganisations, unknown>;
|
|
673
|
+
[dataTagErrorSymbol]: import("../types.gen")._Error;
|
|
674
|
+
};
|
|
675
|
+
};
|
|
583
676
|
export declare const listCostBreakdownQueryKey: (options?: Options<ListCostBreakdownData>) => [Pick<Options<ListCostBreakdownData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
|
|
584
677
|
_id: string;
|
|
585
678
|
_infinite?: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
2
|
import { infiniteQueryOptions, queryOptions } from '@tanstack/react-query';
|
|
3
3
|
import { client } from '../client.gen';
|
|
4
|
-
import { listActorActivity, listAuditBreakdown, listAudits, listCostBreakdown, listDeploymentBreakdown, listDeploymentOrganisations, listDeployments, listSignUpBreakdown, listTenants, listUsers } from '../sdk.gen';
|
|
4
|
+
import { getTenantSummary, listActorActivity, listAuditBreakdown, listAudits, listCostBreakdown, listCostOrganisations, listDeploymentBreakdown, listDeploymentOrganisations, listDeployments, listSignUpBreakdown, listTenants, listUsers } from '../sdk.gen';
|
|
5
5
|
const createQueryKey = (id, options, infinite, tags) => {
|
|
6
6
|
const params = { _id: id, baseUrl: options?.baseUrl || (options?.client ?? client).getConfig().baseUrl };
|
|
7
7
|
if (infinite) {
|
|
@@ -111,6 +111,29 @@ export const listTenantsInfiniteOptions = (options) => {
|
|
|
111
111
|
queryKey: listTenantsInfiniteQueryKey(options)
|
|
112
112
|
});
|
|
113
113
|
};
|
|
114
|
+
export const getTenantSummaryQueryKey = (options) => createQueryKey('getTenantSummary', options);
|
|
115
|
+
/**
|
|
116
|
+
* Summarise tenants
|
|
117
|
+
*
|
|
118
|
+
* Returns counts over every tenant by lifecycle state, plan and scheduled plan change, and
|
|
119
|
+
* the same for tenants created within the window. Reads billing data only, so it is cheap
|
|
120
|
+
* compared with listing tenants.
|
|
121
|
+
*
|
|
122
|
+
*/
|
|
123
|
+
export const getTenantSummaryOptions = (options) => {
|
|
124
|
+
return queryOptions({
|
|
125
|
+
queryFn: async ({ queryKey, signal }) => {
|
|
126
|
+
const { data } = await getTenantSummary({
|
|
127
|
+
...options,
|
|
128
|
+
...queryKey[0],
|
|
129
|
+
signal,
|
|
130
|
+
throwOnError: true
|
|
131
|
+
});
|
|
132
|
+
return data;
|
|
133
|
+
},
|
|
134
|
+
queryKey: getTenantSummaryQueryKey(options)
|
|
135
|
+
});
|
|
136
|
+
};
|
|
114
137
|
export const listUsersQueryKey = (options) => createQueryKey('listUsers', options);
|
|
115
138
|
/**
|
|
116
139
|
* List users
|
|
@@ -565,6 +588,59 @@ export const listDeploymentBreakdownInfiniteOptions = (options) => {
|
|
|
565
588
|
queryKey: listDeploymentBreakdownInfiniteQueryKey(options)
|
|
566
589
|
});
|
|
567
590
|
};
|
|
591
|
+
export const listCostOrganisationsQueryKey = (options) => createQueryKey('listCostOrganisations', options);
|
|
592
|
+
/**
|
|
593
|
+
* List spend per space
|
|
594
|
+
*
|
|
595
|
+
* Returns a page of spaces with spend within the window, highest spend first, each broken
|
|
596
|
+
* down by project and environment.
|
|
597
|
+
*
|
|
598
|
+
*/
|
|
599
|
+
export const listCostOrganisationsOptions = (options) => {
|
|
600
|
+
return queryOptions({
|
|
601
|
+
queryFn: async ({ queryKey, signal }) => {
|
|
602
|
+
const { data } = await listCostOrganisations({
|
|
603
|
+
...options,
|
|
604
|
+
...queryKey[0],
|
|
605
|
+
signal,
|
|
606
|
+
throwOnError: true
|
|
607
|
+
});
|
|
608
|
+
return data;
|
|
609
|
+
},
|
|
610
|
+
queryKey: listCostOrganisationsQueryKey(options)
|
|
611
|
+
});
|
|
612
|
+
};
|
|
613
|
+
export const listCostOrganisationsInfiniteQueryKey = (options) => createQueryKey('listCostOrganisations', options, true);
|
|
614
|
+
/**
|
|
615
|
+
* List spend per space
|
|
616
|
+
*
|
|
617
|
+
* Returns a page of spaces with spend within the window, highest spend first, each broken
|
|
618
|
+
* down by project and environment.
|
|
619
|
+
*
|
|
620
|
+
*/
|
|
621
|
+
export const listCostOrganisationsInfiniteOptions = (options) => {
|
|
622
|
+
return infiniteQueryOptions(
|
|
623
|
+
// @ts-ignore
|
|
624
|
+
{
|
|
625
|
+
queryFn: async ({ pageParam, queryKey, signal }) => {
|
|
626
|
+
// @ts-ignore
|
|
627
|
+
const page = typeof pageParam === 'object' ? pageParam : {
|
|
628
|
+
query: {
|
|
629
|
+
page: pageParam
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
const params = createInfiniteParams(queryKey, page);
|
|
633
|
+
const { data } = await listCostOrganisations({
|
|
634
|
+
...options,
|
|
635
|
+
...params,
|
|
636
|
+
signal,
|
|
637
|
+
throwOnError: true
|
|
638
|
+
});
|
|
639
|
+
return data;
|
|
640
|
+
},
|
|
641
|
+
queryKey: listCostOrganisationsInfiniteQueryKey(options)
|
|
642
|
+
});
|
|
643
|
+
};
|
|
568
644
|
export const listCostBreakdownQueryKey = (options) => createQueryKey('listCostBreakdown', options);
|
|
569
645
|
/**
|
|
570
646
|
* List the daily cost breakdown
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Client, Options as Options2, TDataShape } from './client';
|
|
2
|
-
import type { ListActorActivityData, ListActorActivityErrors, ListActorActivityResponses, ListAuditBreakdownData, ListAuditBreakdownErrors, ListAuditBreakdownResponses, ListAuditsData, ListAuditsErrors, ListAuditsResponses, ListCostBreakdownData, ListCostBreakdownErrors, ListCostBreakdownResponses, ListDeploymentBreakdownData, ListDeploymentBreakdownErrors, ListDeploymentBreakdownResponses, ListDeploymentOrganisationsData, ListDeploymentOrganisationsErrors, ListDeploymentOrganisationsResponses, ListDeploymentsData, ListDeploymentsErrors, ListDeploymentsResponses, ListSignUpBreakdownData, ListSignUpBreakdownErrors, ListSignUpBreakdownResponses, ListTenantsData, ListTenantsErrors, ListTenantsResponses, ListUsersData, ListUsersErrors, ListUsersResponses } from './types.gen';
|
|
2
|
+
import type { GetTenantSummaryData, GetTenantSummaryErrors, GetTenantSummaryResponses, ListActorActivityData, ListActorActivityErrors, ListActorActivityResponses, ListAuditBreakdownData, ListAuditBreakdownErrors, ListAuditBreakdownResponses, ListAuditsData, ListAuditsErrors, ListAuditsResponses, ListCostBreakdownData, ListCostBreakdownErrors, ListCostBreakdownResponses, ListCostOrganisationsData, ListCostOrganisationsErrors, ListCostOrganisationsResponses, ListDeploymentBreakdownData, ListDeploymentBreakdownErrors, ListDeploymentBreakdownResponses, ListDeploymentOrganisationsData, ListDeploymentOrganisationsErrors, ListDeploymentOrganisationsResponses, ListDeploymentsData, ListDeploymentsErrors, ListDeploymentsResponses, ListSignUpBreakdownData, ListSignUpBreakdownErrors, ListSignUpBreakdownResponses, ListTenantsData, ListTenantsErrors, ListTenantsResponses, ListUsersData, ListUsersErrors, ListUsersResponses } from './types.gen';
|
|
3
3
|
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
|
|
4
4
|
/**
|
|
5
5
|
* You can provide a client instance returned by `createClient()` instead of
|
|
@@ -22,6 +22,15 @@ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends
|
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
24
|
export declare const listTenants: <ThrowOnError extends boolean = false>(options?: Options<ListTenantsData, ThrowOnError>) => import("./client").RequestResult<ListTenantsResponses, ListTenantsErrors, ThrowOnError, "fields">;
|
|
25
|
+
/**
|
|
26
|
+
* Summarise tenants
|
|
27
|
+
*
|
|
28
|
+
* Returns counts over every tenant by lifecycle state, plan and scheduled plan change, and
|
|
29
|
+
* the same for tenants created within the window. Reads billing data only, so it is cheap
|
|
30
|
+
* compared with listing tenants.
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
33
|
+
export declare const getTenantSummary: <ThrowOnError extends boolean = false>(options?: Options<GetTenantSummaryData, ThrowOnError>) => import("./client").RequestResult<GetTenantSummaryResponses, GetTenantSummaryErrors, ThrowOnError, "fields">;
|
|
25
34
|
/**
|
|
26
35
|
* List users
|
|
27
36
|
*
|
|
@@ -101,6 +110,14 @@ export declare const listDeploymentOrganisations: <ThrowOnError extends boolean
|
|
|
101
110
|
*
|
|
102
111
|
*/
|
|
103
112
|
export declare const listDeploymentBreakdown: <ThrowOnError extends boolean = false>(options?: Options<ListDeploymentBreakdownData, ThrowOnError>) => import("./client").RequestResult<ListDeploymentBreakdownResponses, ListDeploymentBreakdownErrors, ThrowOnError, "fields">;
|
|
113
|
+
/**
|
|
114
|
+
* List spend per space
|
|
115
|
+
*
|
|
116
|
+
* Returns a page of spaces with spend within the window, highest spend first, each broken
|
|
117
|
+
* down by project and environment.
|
|
118
|
+
*
|
|
119
|
+
*/
|
|
120
|
+
export declare const listCostOrganisations: <ThrowOnError extends boolean = false>(options?: Options<ListCostOrganisationsData, ThrowOnError>) => import("./client").RequestResult<ListCostOrganisationsResponses, ListCostOrganisationsErrors, ThrowOnError, "fields">;
|
|
104
121
|
/**
|
|
105
122
|
* List the daily cost breakdown
|
|
106
123
|
*
|
|
@@ -20,6 +20,26 @@ export const listTenants = (options) => {
|
|
|
20
20
|
...options
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Summarise tenants
|
|
25
|
+
*
|
|
26
|
+
* Returns counts over every tenant by lifecycle state, plan and scheduled plan change, and
|
|
27
|
+
* the same for tenants created within the window. Reads billing data only, so it is cheap
|
|
28
|
+
* compared with listing tenants.
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
export const getTenantSummary = (options) => {
|
|
32
|
+
return (options?.client ?? client).get({
|
|
33
|
+
security: [
|
|
34
|
+
{
|
|
35
|
+
scheme: 'bearer',
|
|
36
|
+
type: 'http'
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
url: '/insights-engine/tenants/summary',
|
|
40
|
+
...options
|
|
41
|
+
});
|
|
42
|
+
};
|
|
23
43
|
/**
|
|
24
44
|
* List users
|
|
25
45
|
*
|
|
@@ -187,6 +207,25 @@ export const listDeploymentBreakdown = (options) => {
|
|
|
187
207
|
...options
|
|
188
208
|
});
|
|
189
209
|
};
|
|
210
|
+
/**
|
|
211
|
+
* List spend per space
|
|
212
|
+
*
|
|
213
|
+
* Returns a page of spaces with spend within the window, highest spend first, each broken
|
|
214
|
+
* down by project and environment.
|
|
215
|
+
*
|
|
216
|
+
*/
|
|
217
|
+
export const listCostOrganisations = (options) => {
|
|
218
|
+
return (options?.client ?? client).get({
|
|
219
|
+
security: [
|
|
220
|
+
{
|
|
221
|
+
scheme: 'bearer',
|
|
222
|
+
type: 'http'
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
url: '/insights-engine/billing/organisations',
|
|
226
|
+
...options
|
|
227
|
+
});
|
|
228
|
+
};
|
|
190
229
|
/**
|
|
191
230
|
* List the daily cost breakdown
|
|
192
231
|
*
|
|
@@ -344,6 +344,7 @@ export type OnboardingAnalytics = {
|
|
|
344
344
|
export type UserSignUpBreakdown = {
|
|
345
345
|
email: string;
|
|
346
346
|
onboardingAnalytics: OnboardingAnalytics;
|
|
347
|
+
user: User;
|
|
347
348
|
};
|
|
348
349
|
/**
|
|
349
350
|
* A day of sign ups, the users who signed up, and how they answered each onboarding question.
|
|
@@ -446,6 +447,82 @@ export type DeploymentOrganisation = {
|
|
|
446
447
|
export type PaginatedDeploymentOrganisations = PaginatedResponse & {
|
|
447
448
|
data: Array<DeploymentOrganisation>;
|
|
448
449
|
};
|
|
450
|
+
export type CountByKey = {
|
|
451
|
+
[key: string]: number;
|
|
452
|
+
};
|
|
453
|
+
export type PlanTransition = {
|
|
454
|
+
from: string;
|
|
455
|
+
to: string;
|
|
456
|
+
change: 'upgrade' | 'downgrade';
|
|
457
|
+
count: number;
|
|
458
|
+
};
|
|
459
|
+
export type TenantCohortDay = {
|
|
460
|
+
timestamp: string;
|
|
461
|
+
states: CountByKey;
|
|
462
|
+
};
|
|
463
|
+
/**
|
|
464
|
+
* Tenants created within the window.
|
|
465
|
+
*/
|
|
466
|
+
export type TenantCohort = {
|
|
467
|
+
total: number;
|
|
468
|
+
states: CountByKey;
|
|
469
|
+
plans: CountByKey;
|
|
470
|
+
/**
|
|
471
|
+
* Tenants that have trialed or are trialing.
|
|
472
|
+
*/
|
|
473
|
+
trialed: number;
|
|
474
|
+
trialStates: CountByKey;
|
|
475
|
+
/**
|
|
476
|
+
* Oldest day first, counting tenants by the day they were created.
|
|
477
|
+
*/
|
|
478
|
+
daily: Array<TenantCohortDay>;
|
|
479
|
+
};
|
|
480
|
+
/**
|
|
481
|
+
* Counts over every tenant by lifecycle state, plan and scheduled plan change, plus the same for tenants created within the window. Aggregated server side from billing data.
|
|
482
|
+
*/
|
|
483
|
+
export type TenantSummary = {
|
|
484
|
+
total: number;
|
|
485
|
+
states: CountByKey;
|
|
486
|
+
plans: CountByKey;
|
|
487
|
+
upgrades: number;
|
|
488
|
+
downgrades: number;
|
|
489
|
+
/**
|
|
490
|
+
* Most common first.
|
|
491
|
+
*/
|
|
492
|
+
transitions: Array<PlanTransition>;
|
|
493
|
+
cohort: TenantCohort;
|
|
494
|
+
};
|
|
495
|
+
export type CostEnvironment = {
|
|
496
|
+
id: string;
|
|
497
|
+
handle: string;
|
|
498
|
+
gcpProjectId: string;
|
|
499
|
+
cost: Cost;
|
|
500
|
+
};
|
|
501
|
+
export type CostProject = {
|
|
502
|
+
id: string;
|
|
503
|
+
handle: string;
|
|
504
|
+
cost: Cost;
|
|
505
|
+
environments: Array<CostEnvironment>;
|
|
506
|
+
};
|
|
507
|
+
/**
|
|
508
|
+
* Spend of one space within the window, broken down by project and environment. Spend on GCP projects that no current environment claims is reported separately as unattributed.
|
|
509
|
+
*/
|
|
510
|
+
export type CostOrganisation = {
|
|
511
|
+
orgId: string;
|
|
512
|
+
name: string;
|
|
513
|
+
currentPlan: string;
|
|
514
|
+
status: string;
|
|
515
|
+
/**
|
|
516
|
+
* Every member uses a platform48.com email.
|
|
517
|
+
*/
|
|
518
|
+
internal: boolean;
|
|
519
|
+
cost: Cost;
|
|
520
|
+
unattributed: Cost;
|
|
521
|
+
projects: Array<CostProject>;
|
|
522
|
+
};
|
|
523
|
+
export type PaginatedCostOrganisations = PaginatedResponse & {
|
|
524
|
+
data: Array<CostOrganisation>;
|
|
525
|
+
};
|
|
449
526
|
export type PaginatedTenants = PaginatedResponse & {
|
|
450
527
|
data: Array<Tenant>;
|
|
451
528
|
};
|
|
@@ -508,9 +585,9 @@ export type Plan = string;
|
|
|
508
585
|
*/
|
|
509
586
|
export type State = 'trialing' | 'converted' | 'paying' | 'trial_to_solo' | 'solo' | 'onboarding' | 'at_risk' | 'churned';
|
|
510
587
|
/**
|
|
511
|
-
* Only tenants whose next billing cycle is on a higher, lower or the same plan.
|
|
588
|
+
* Only tenants whose next billing cycle is on a higher, lower or the same plan. `changed` matches both upgrades and downgrades.
|
|
512
589
|
*/
|
|
513
|
-
export type PlanChange = 'upgrade' | 'downgrade' | 'none';
|
|
590
|
+
export type PlanChange = 'upgrade' | 'downgrade' | 'changed' | 'none';
|
|
514
591
|
/**
|
|
515
592
|
* Leave out internal accounts, those whose members all use a platform48.com email.
|
|
516
593
|
*/
|
|
@@ -584,9 +661,9 @@ export type ListTenantsData = {
|
|
|
584
661
|
*/
|
|
585
662
|
state?: 'trialing' | 'converted' | 'paying' | 'trial_to_solo' | 'solo' | 'onboarding' | 'at_risk' | 'churned';
|
|
586
663
|
/**
|
|
587
|
-
* Only tenants whose next billing cycle is on a higher, lower or the same plan.
|
|
664
|
+
* Only tenants whose next billing cycle is on a higher, lower or the same plan. `changed` matches both upgrades and downgrades.
|
|
588
665
|
*/
|
|
589
|
-
plan_change?: 'upgrade' | 'downgrade' | 'none';
|
|
666
|
+
plan_change?: 'upgrade' | 'downgrade' | 'changed' | 'none';
|
|
590
667
|
/**
|
|
591
668
|
* Leave out internal accounts, those whose members all use a platform48.com email.
|
|
592
669
|
*/
|
|
@@ -612,6 +689,43 @@ export type ListTenantsResponses = {
|
|
|
612
689
|
200: PaginatedTenants;
|
|
613
690
|
};
|
|
614
691
|
export type ListTenantsResponse = ListTenantsResponses[keyof ListTenantsResponses];
|
|
692
|
+
export type GetTenantSummaryData = {
|
|
693
|
+
body?: never;
|
|
694
|
+
path?: never;
|
|
695
|
+
query?: {
|
|
696
|
+
/**
|
|
697
|
+
* Start of the reporting window. Unbounded when omitted.
|
|
698
|
+
*/
|
|
699
|
+
from?: string;
|
|
700
|
+
/**
|
|
701
|
+
* End of the reporting window. Unbounded when omitted.
|
|
702
|
+
*/
|
|
703
|
+
to?: string;
|
|
704
|
+
/**
|
|
705
|
+
* Leave out internal accounts, those whose members all use a platform48.com email.
|
|
706
|
+
*/
|
|
707
|
+
exclude_internal?: boolean;
|
|
708
|
+
};
|
|
709
|
+
url: '/insights-engine/tenants/summary';
|
|
710
|
+
};
|
|
711
|
+
export type GetTenantSummaryErrors = {
|
|
712
|
+
/**
|
|
713
|
+
* The request was rejected as invalid.
|
|
714
|
+
*/
|
|
715
|
+
400: _Error;
|
|
716
|
+
/**
|
|
717
|
+
* The service is not healthy.
|
|
718
|
+
*/
|
|
719
|
+
500: _Error;
|
|
720
|
+
};
|
|
721
|
+
export type GetTenantSummaryError = GetTenantSummaryErrors[keyof GetTenantSummaryErrors];
|
|
722
|
+
export type GetTenantSummaryResponses = {
|
|
723
|
+
/**
|
|
724
|
+
* The tenant summary.
|
|
725
|
+
*/
|
|
726
|
+
200: TenantSummary;
|
|
727
|
+
};
|
|
728
|
+
export type GetTenantSummaryResponse = GetTenantSummaryResponses[keyof GetTenantSummaryResponses];
|
|
615
729
|
export type ListUsersData = {
|
|
616
730
|
body?: never;
|
|
617
731
|
path?: never;
|
|
@@ -1064,6 +1178,47 @@ export type ListDeploymentBreakdownResponses = {
|
|
|
1064
1178
|
200: PaginatedDeploymentBreakdown;
|
|
1065
1179
|
};
|
|
1066
1180
|
export type ListDeploymentBreakdownResponse = ListDeploymentBreakdownResponses[keyof ListDeploymentBreakdownResponses];
|
|
1181
|
+
export type ListCostOrganisationsData = {
|
|
1182
|
+
body?: never;
|
|
1183
|
+
path?: never;
|
|
1184
|
+
query?: {
|
|
1185
|
+
/**
|
|
1186
|
+
* Start of the reporting window. Unbounded when omitted.
|
|
1187
|
+
*/
|
|
1188
|
+
from?: string;
|
|
1189
|
+
/**
|
|
1190
|
+
* End of the reporting window. Unbounded when omitted.
|
|
1191
|
+
*/
|
|
1192
|
+
to?: string;
|
|
1193
|
+
/**
|
|
1194
|
+
* 1-based page index.
|
|
1195
|
+
*/
|
|
1196
|
+
page?: number;
|
|
1197
|
+
/**
|
|
1198
|
+
* Items per page, clamped server side to at most 5000.
|
|
1199
|
+
*/
|
|
1200
|
+
limit?: number;
|
|
1201
|
+
};
|
|
1202
|
+
url: '/insights-engine/billing/organisations';
|
|
1203
|
+
};
|
|
1204
|
+
export type ListCostOrganisationsErrors = {
|
|
1205
|
+
/**
|
|
1206
|
+
* The request was rejected as invalid.
|
|
1207
|
+
*/
|
|
1208
|
+
400: _Error;
|
|
1209
|
+
/**
|
|
1210
|
+
* The service is not healthy.
|
|
1211
|
+
*/
|
|
1212
|
+
500: _Error;
|
|
1213
|
+
};
|
|
1214
|
+
export type ListCostOrganisationsError = ListCostOrganisationsErrors[keyof ListCostOrganisationsErrors];
|
|
1215
|
+
export type ListCostOrganisationsResponses = {
|
|
1216
|
+
/**
|
|
1217
|
+
* A page of spaces and their spend.
|
|
1218
|
+
*/
|
|
1219
|
+
200: PaginatedCostOrganisations;
|
|
1220
|
+
};
|
|
1221
|
+
export type ListCostOrganisationsResponse = ListCostOrganisationsResponses[keyof ListCostOrganisationsResponses];
|
|
1067
1222
|
export type ListCostBreakdownData = {
|
|
1068
1223
|
body?: never;
|
|
1069
1224
|
path?: never;
|