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.
@@ -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;