shoal-web-sdk 0.0.110 → 0.0.111

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, type UseMutationOptions } from '@tanstack/react-query';
2
2
  import { type Options } from '../sdk.gen';
3
- import type { CreateEnvironmentData, CreateEnvironmentError, CreateEnvironmentResponse, CreateProjectData, CreateProjectError, CreateProjectResponse, CreateSetupIntentData, CreateSetupIntentError, CreateSetupIntentResponse, CreateSpaceData, CreateSpaceError, CreateSpaceInviteData, CreateSpaceInviteError, CreateSpaceInviteResponse, CreateSpaceResponse, CreateUsernameData, CreateUsernameError, DeleteAccountIdentityData, DeleteAccountIdentityError, DeleteAccountIdentityResponse, DeployVersionData, DeployVersionError, FetchGraphM2mData, FetchKindeOrganisationBillingAgreementsData, GetBillingPlanData, GetBillingUsageData, GetConnectedAppUrlData, GetEnvironmentOverviewData, GetGraphOverviewData, GetProjectOverviewData, GetServiceHealthData, GetSpaceInvitesData, GetSpaceOrgCodeData, GetSpaceOverviewData, GetUserIdentitiesData, GetUserInvitesData, GetUserProfileData, JoinSpaceData, JoinSpaceError, LeaveSpaceData, LeaveSpaceError, ListInstallationBranchesData, ListInstallationRepositoriesData, ListPaymentMethodsData, ListSpaceMemberRolesData, ListSpaceMembersData, ListUserInstallationsData, ListUserSpacesData, RejectSpaceInviteData, RejectSpaceInviteError, RejectSpaceInviteResponse, RemovePaymentMethodData, RemovePaymentMethodError, RemovePaymentMethodResponse, RequestAccountPasswordResetData, RequestAccountPasswordResetError, RequestSignedUploadUrlData, RevokeSpaceInviteData, RevokeSpaceInviteError, RevokeSpaceInviteResponse, SetDefaultPaymentMethodData, SetDefaultPaymentMethodError, SetDefaultPaymentMethodResponse, UpdateBillingPlanData, UpdateBillingPlanError, UpdateConnectedAppTokenData, UpdateConnectedAppTokenError, UpdateGraphStateData, UpdateGraphStateError, UpdateUsernameData, UpdateUsernameError, UpdateUserProfileData, UpdateUserProfileError } from '../types.gen';
3
+ import type { CreateEnvironmentData, CreateEnvironmentError, CreateEnvironmentResponse, CreateProjectData, CreateProjectError, CreateProjectResponse, CreateSetupIntentData, CreateSetupIntentError, CreateSetupIntentResponse, CreateSpaceData, CreateSpaceError, CreateSpaceInviteData, CreateSpaceInviteError, CreateSpaceInviteResponse, CreateSpaceResponse, CreateUsernameData, CreateUsernameError, DeleteAccountIdentityData, DeleteAccountIdentityError, DeleteAccountIdentityResponse, DeployVersionData, DeployVersionError, FetchBillingPricesData, FetchGraphM2mData, FetchKindeOrganisationBillingAgreementsData, GetBillingPlanData, GetBillingUsageData, GetConnectedAppUrlData, GetEnvironmentOverviewData, GetGraphOverviewData, GetProjectOverviewData, GetServiceHealthData, GetSpaceInvitesData, GetSpaceOrgCodeData, GetSpaceOverviewData, GetUserIdentitiesData, GetUserInvitesData, GetUserProfileData, JoinSpaceData, JoinSpaceError, LeaveSpaceData, LeaveSpaceError, ListInstallationBranchesData, ListInstallationRepositoriesData, ListPaymentMethodsData, ListSpaceMemberRolesData, ListSpaceMembersData, ListUserInstallationsData, ListUserSpacesData, RecordCloudUsageData, RecordCloudUsageError, RejectSpaceInviteData, RejectSpaceInviteError, RejectSpaceInviteResponse, RemovePaymentMethodData, RemovePaymentMethodError, RemovePaymentMethodResponse, RequestAccountPasswordResetData, RequestAccountPasswordResetError, RequestSignedUploadUrlData, RevokeSpaceInviteData, RevokeSpaceInviteError, RevokeSpaceInviteResponse, SetDefaultPaymentMethodData, SetDefaultPaymentMethodError, SetDefaultPaymentMethodResponse, UpdateBillingPlanData, UpdateBillingPlanError, UpdateConnectedAppTokenData, UpdateConnectedAppTokenError, UpdateGraphStateData, UpdateGraphStateError, UpdateUsernameData, UpdateUsernameError, UpdateUserProfileData, UpdateUserProfileError } from '../types.gen';
4
4
  export type QueryKey<TOptions extends Options> = [
5
5
  Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & {
6
6
  _id: string;
@@ -800,6 +800,10 @@ export declare const requestSignedUploadUrlOptions: (options: Options<RequestSig
800
800
  [dataTagErrorSymbol]: Error;
801
801
  };
802
802
  };
803
+ /**
804
+ * Record a cloud usage event for a space (M2M only).
805
+ */
806
+ export declare const recordCloudUsageMutation: (options?: Partial<Options<RecordCloudUsageData>>) => UseMutationOptions<unknown, RecordCloudUsageError, Options<RecordCloudUsageData>>;
803
807
  export declare const getBillingPlanQueryKey: (options: Options<GetBillingPlanData>) => [Pick<Options<GetBillingPlanData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
804
808
  _id: string;
805
809
  _infinite?: boolean;
@@ -900,3 +904,31 @@ export declare const getBillingUsageOptions: (options: Options<GetBillingUsageDa
900
904
  [dataTagErrorSymbol]: Error;
901
905
  };
902
906
  };
907
+ export declare const fetchBillingPricesQueryKey: (options: Options<FetchBillingPricesData>) => [Pick<Options<FetchBillingPricesData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
908
+ _id: string;
909
+ _infinite?: boolean;
910
+ tags?: ReadonlyArray<string>;
911
+ }];
912
+ /**
913
+ * Fetch live unit prices for all paid plans from Stripe.
914
+ */
915
+ export declare const fetchBillingPricesOptions: (options: Options<FetchBillingPricesData>) => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../types.gen").PlanPriceResponse[], Error, import("../types.gen").PlanPriceResponse[], [Pick<Options<FetchBillingPricesData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
916
+ _id: string;
917
+ _infinite?: boolean;
918
+ tags?: ReadonlyArray<string>;
919
+ }]>, "queryFn"> & {
920
+ queryFn?: import("@tanstack/react-query").QueryFunction<import("../types.gen").PlanPriceResponse[], [Pick<Options<FetchBillingPricesData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
921
+ _id: string;
922
+ _infinite?: boolean;
923
+ tags?: ReadonlyArray<string>;
924
+ }], never> | undefined;
925
+ } & {
926
+ queryKey: [Pick<Options<FetchBillingPricesData>, "query" | "body" | "headers" | "path" | "baseUrl"> & {
927
+ _id: string;
928
+ _infinite?: boolean;
929
+ tags?: ReadonlyArray<string>;
930
+ }] & {
931
+ [dataTagSymbol]: import("../types.gen").PlanPriceResponse[];
932
+ [dataTagErrorSymbol]: Error;
933
+ };
934
+ };
@@ -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 { createEnvironment, createProject, createSetupIntent, createSpace, createSpaceInvite, createUsername, deleteAccountIdentity, deployVersion, fetchGraphM2M, fetchKindeOrganisationBillingAgreements, getBillingPlan, getBillingUsage, getConnectedAppUrl, getEnvironmentOverview, getGraphOverview, getProjectOverview, getServiceHealth, getSpaceInvites, getSpaceOrgCode, getSpaceOverview, getUserIdentities, getUserInvites, getUserProfile, joinSpace, leaveSpace, listInstallationBranches, listInstallationRepositories, listPaymentMethods, listSpaceMemberRoles, listSpaceMembers, listUserInstallations, listUserSpaces, rejectSpaceInvite, removePaymentMethod, requestAccountPasswordReset, requestSignedUploadUrl, revokeSpaceInvite, setDefaultPaymentMethod, updateBillingPlan, updateConnectedAppToken, updateGraphState, updateUsername, updateUserProfile } from '../sdk.gen';
4
+ import { createEnvironment, createProject, createSetupIntent, createSpace, createSpaceInvite, createUsername, deleteAccountIdentity, deployVersion, fetchBillingPrices, fetchGraphM2M, fetchKindeOrganisationBillingAgreements, getBillingPlan, getBillingUsage, getConnectedAppUrl, getEnvironmentOverview, getGraphOverview, getProjectOverview, getServiceHealth, getSpaceInvites, getSpaceOrgCode, getSpaceOverview, getUserIdentities, getUserInvites, getUserProfile, joinSpace, leaveSpace, listInstallationBranches, listInstallationRepositories, listPaymentMethods, listSpaceMemberRoles, listSpaceMembers, listUserInstallations, listUserSpaces, recordCloudUsage, rejectSpaceInvite, removePaymentMethod, requestAccountPasswordReset, requestSignedUploadUrl, revokeSpaceInvite, setDefaultPaymentMethod, updateBillingPlan, updateConnectedAppToken, updateGraphState, updateUsername, updateUserProfile } 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) {
@@ -861,6 +861,22 @@ export const requestSignedUploadUrlOptions = (options) => {
861
861
  queryKey: requestSignedUploadUrlQueryKey(options)
862
862
  });
863
863
  };
864
+ /**
865
+ * Record a cloud usage event for a space (M2M only).
866
+ */
867
+ export const recordCloudUsageMutation = (options) => {
868
+ const mutationOptions = {
869
+ mutationFn: async (fnOptions) => {
870
+ const { data } = await recordCloudUsage({
871
+ ...options,
872
+ ...fnOptions,
873
+ throwOnError: true
874
+ });
875
+ return data;
876
+ }
877
+ };
878
+ return mutationOptions;
879
+ };
864
880
  export const getBillingPlanQueryKey = (options) => createQueryKey('getBillingPlan', options);
865
881
  /**
866
882
  * Get the current billing plan for a space.
@@ -979,3 +995,21 @@ export const getBillingUsageOptions = (options) => {
979
995
  queryKey: getBillingUsageQueryKey(options)
980
996
  });
981
997
  };
998
+ export const fetchBillingPricesQueryKey = (options) => createQueryKey('fetchBillingPrices', options);
999
+ /**
1000
+ * Fetch live unit prices for all paid plans from Stripe.
1001
+ */
1002
+ export const fetchBillingPricesOptions = (options) => {
1003
+ return queryOptions({
1004
+ queryFn: async ({ queryKey, signal }) => {
1005
+ const { data } = await fetchBillingPrices({
1006
+ ...options,
1007
+ ...queryKey[0],
1008
+ signal,
1009
+ throwOnError: true
1010
+ });
1011
+ return data;
1012
+ },
1013
+ queryKey: fetchBillingPricesQueryKey(options)
1014
+ });
1015
+ };
@@ -1,5 +1,5 @@
1
1
  import type { Client, Options as Options2, TDataShape } from './client';
2
- import type { CreateEnvironmentData, CreateEnvironmentErrors, CreateEnvironmentResponses, CreateProjectData, CreateProjectErrors, CreateProjectResponses, CreateSetupIntentData, CreateSetupIntentErrors, CreateSetupIntentResponses, CreateSpaceData, CreateSpaceErrors, CreateSpaceInviteData, CreateSpaceInviteErrors, CreateSpaceInviteResponses, CreateSpaceResponses, CreateUsernameData, CreateUsernameErrors, CreateUsernameResponses, DeleteAccountIdentityData, DeleteAccountIdentityErrors, DeleteAccountIdentityResponses, DeployVersionData, DeployVersionErrors, DeployVersionResponses, FetchGraphM2mData, FetchGraphM2mErrors, FetchGraphM2mResponses, FetchKindeOrganisationBillingAgreementsData, FetchKindeOrganisationBillingAgreementsErrors, FetchKindeOrganisationBillingAgreementsResponses, GetBillingPlanData, GetBillingPlanErrors, GetBillingPlanResponses, GetBillingUsageData, GetBillingUsageErrors, GetBillingUsageResponses, GetConnectedAppUrlData, GetConnectedAppUrlErrors, GetConnectedAppUrlResponses, GetEnvironmentOverviewData, GetEnvironmentOverviewErrors, GetEnvironmentOverviewResponses, GetGraphOverviewData, GetGraphOverviewErrors, GetGraphOverviewResponses, GetProjectOverviewData, GetProjectOverviewErrors, GetProjectOverviewResponses, GetServiceHealthData, GetServiceHealthResponses, GetSpaceInvitesData, GetSpaceInvitesErrors, GetSpaceInvitesResponses, GetSpaceOrgCodeData, GetSpaceOrgCodeErrors, GetSpaceOrgCodeResponses, GetSpaceOverviewData, GetSpaceOverviewErrors, GetSpaceOverviewResponses, GetUserIdentitiesData, GetUserIdentitiesErrors, GetUserIdentitiesResponses, GetUserInvitesData, GetUserInvitesErrors, GetUserInvitesResponses, GetUserProfileData, GetUserProfileErrors, GetUserProfileResponses, JoinSpaceData, JoinSpaceErrors, JoinSpaceResponses, LeaveSpaceData, LeaveSpaceErrors, LeaveSpaceResponses, ListInstallationBranchesData, ListInstallationBranchesErrors, ListInstallationBranchesResponses, ListInstallationRepositoriesData, ListInstallationRepositoriesErrors, ListInstallationRepositoriesResponses, ListPaymentMethodsData, ListPaymentMethodsErrors, ListPaymentMethodsResponses, ListSpaceMemberRolesData, ListSpaceMemberRolesErrors, ListSpaceMemberRolesResponses, ListSpaceMembersData, ListSpaceMembersErrors, ListSpaceMembersResponses, ListUserInstallationsData, ListUserInstallationsErrors, ListUserInstallationsResponses, ListUserSpacesData, ListUserSpacesErrors, ListUserSpacesResponses, RejectSpaceInviteData, RejectSpaceInviteErrors, RejectSpaceInviteResponses, RemovePaymentMethodData, RemovePaymentMethodErrors, RemovePaymentMethodResponses, RequestAccountPasswordResetData, RequestAccountPasswordResetErrors, RequestAccountPasswordResetResponses, RequestSignedUploadUrlData, RequestSignedUploadUrlErrors, RequestSignedUploadUrlResponses, RevokeSpaceInviteData, RevokeSpaceInviteErrors, RevokeSpaceInviteResponses, SetDefaultPaymentMethodData, SetDefaultPaymentMethodErrors, SetDefaultPaymentMethodResponses, UpdateBillingPlanData, UpdateBillingPlanErrors, UpdateBillingPlanResponses, UpdateConnectedAppTokenData, UpdateConnectedAppTokenErrors, UpdateConnectedAppTokenResponses, UpdateGraphStateData, UpdateGraphStateErrors, UpdateGraphStateResponses, UpdateUsernameData, UpdateUsernameErrors, UpdateUsernameResponses, UpdateUserProfileData, UpdateUserProfileErrors, UpdateUserProfileResponses } from './types.gen';
2
+ import type { CreateEnvironmentData, CreateEnvironmentErrors, CreateEnvironmentResponses, CreateProjectData, CreateProjectErrors, CreateProjectResponses, CreateSetupIntentData, CreateSetupIntentErrors, CreateSetupIntentResponses, CreateSpaceData, CreateSpaceErrors, CreateSpaceInviteData, CreateSpaceInviteErrors, CreateSpaceInviteResponses, CreateSpaceResponses, CreateUsernameData, CreateUsernameErrors, CreateUsernameResponses, DeleteAccountIdentityData, DeleteAccountIdentityErrors, DeleteAccountIdentityResponses, DeployVersionData, DeployVersionErrors, DeployVersionResponses, FetchBillingPricesData, FetchBillingPricesErrors, FetchBillingPricesResponses, FetchGraphM2mData, FetchGraphM2mErrors, FetchGraphM2mResponses, FetchKindeOrganisationBillingAgreementsData, FetchKindeOrganisationBillingAgreementsErrors, FetchKindeOrganisationBillingAgreementsResponses, GetBillingPlanData, GetBillingPlanErrors, GetBillingPlanResponses, GetBillingUsageData, GetBillingUsageErrors, GetBillingUsageResponses, GetConnectedAppUrlData, GetConnectedAppUrlErrors, GetConnectedAppUrlResponses, GetEnvironmentOverviewData, GetEnvironmentOverviewErrors, GetEnvironmentOverviewResponses, GetGraphOverviewData, GetGraphOverviewErrors, GetGraphOverviewResponses, GetProjectOverviewData, GetProjectOverviewErrors, GetProjectOverviewResponses, GetServiceHealthData, GetServiceHealthResponses, GetSpaceInvitesData, GetSpaceInvitesErrors, GetSpaceInvitesResponses, GetSpaceOrgCodeData, GetSpaceOrgCodeErrors, GetSpaceOrgCodeResponses, GetSpaceOverviewData, GetSpaceOverviewErrors, GetSpaceOverviewResponses, GetUserIdentitiesData, GetUserIdentitiesErrors, GetUserIdentitiesResponses, GetUserInvitesData, GetUserInvitesErrors, GetUserInvitesResponses, GetUserProfileData, GetUserProfileErrors, GetUserProfileResponses, JoinSpaceData, JoinSpaceErrors, JoinSpaceResponses, LeaveSpaceData, LeaveSpaceErrors, LeaveSpaceResponses, ListInstallationBranchesData, ListInstallationBranchesErrors, ListInstallationBranchesResponses, ListInstallationRepositoriesData, ListInstallationRepositoriesErrors, ListInstallationRepositoriesResponses, ListPaymentMethodsData, ListPaymentMethodsErrors, ListPaymentMethodsResponses, ListSpaceMemberRolesData, ListSpaceMemberRolesErrors, ListSpaceMemberRolesResponses, ListSpaceMembersData, ListSpaceMembersErrors, ListSpaceMembersResponses, ListUserInstallationsData, ListUserInstallationsErrors, ListUserInstallationsResponses, ListUserSpacesData, ListUserSpacesErrors, ListUserSpacesResponses, RecordCloudUsageData, RecordCloudUsageErrors, RecordCloudUsageResponses, RejectSpaceInviteData, RejectSpaceInviteErrors, RejectSpaceInviteResponses, RemovePaymentMethodData, RemovePaymentMethodErrors, RemovePaymentMethodResponses, RequestAccountPasswordResetData, RequestAccountPasswordResetErrors, RequestAccountPasswordResetResponses, RequestSignedUploadUrlData, RequestSignedUploadUrlErrors, RequestSignedUploadUrlResponses, RevokeSpaceInviteData, RevokeSpaceInviteErrors, RevokeSpaceInviteResponses, SetDefaultPaymentMethodData, SetDefaultPaymentMethodErrors, SetDefaultPaymentMethodResponses, UpdateBillingPlanData, UpdateBillingPlanErrors, UpdateBillingPlanResponses, UpdateConnectedAppTokenData, UpdateConnectedAppTokenErrors, UpdateConnectedAppTokenResponses, UpdateGraphStateData, UpdateGraphStateErrors, UpdateGraphStateResponses, UpdateUsernameData, UpdateUsernameErrors, UpdateUsernameResponses, UpdateUserProfileData, UpdateUserProfileErrors, UpdateUserProfileResponses } 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
@@ -157,6 +157,10 @@ export declare const deployVersion: <ThrowOnError extends boolean = false>(optio
157
157
  * Request a signed upload URL to upload source code zip files.
158
158
  */
159
159
  export declare const requestSignedUploadUrl: <ThrowOnError extends boolean = false>(options: Options<RequestSignedUploadUrlData, ThrowOnError>) => import("./client").RequestResult<RequestSignedUploadUrlResponses, RequestSignedUploadUrlErrors, ThrowOnError, "fields">;
160
+ /**
161
+ * Record a cloud usage event for a space (M2M only).
162
+ */
163
+ export declare const recordCloudUsage: <ThrowOnError extends boolean = false>(options: Options<RecordCloudUsageData, ThrowOnError>) => import("./client").RequestResult<RecordCloudUsageResponses, RecordCloudUsageErrors, ThrowOnError, "fields">;
160
164
  /**
161
165
  * Get the current billing plan for a space.
162
166
  */
@@ -185,3 +189,7 @@ export declare const setDefaultPaymentMethod: <ThrowOnError extends boolean = fa
185
189
  * Get metered cloud usage for the current billing period.
186
190
  */
187
191
  export declare const getBillingUsage: <ThrowOnError extends boolean = false>(options: Options<GetBillingUsageData, ThrowOnError>) => import("./client").RequestResult<GetBillingUsageResponses, GetBillingUsageErrors, ThrowOnError, "fields">;
192
+ /**
193
+ * Fetch live unit prices for all paid plans from Stripe.
194
+ */
195
+ export declare const fetchBillingPrices: <ThrowOnError extends boolean = false>(options: Options<FetchBillingPricesData, ThrowOnError>) => import("./client").RequestResult<FetchBillingPricesResponses, FetchBillingPricesErrors, ThrowOnError, "fields">;
@@ -572,6 +572,25 @@ export const requestSignedUploadUrl = (options) => {
572
572
  ...options
573
573
  });
574
574
  };
575
+ /**
576
+ * Record a cloud usage event for a space (M2M only).
577
+ */
578
+ export const recordCloudUsage = (options) => {
579
+ return (options.client ?? client).post({
580
+ security: [
581
+ {
582
+ scheme: 'bearer',
583
+ type: 'http'
584
+ }
585
+ ],
586
+ url: '/m2m/billing/usage/record',
587
+ ...options,
588
+ headers: {
589
+ 'Content-Type': 'application/json',
590
+ ...options.headers
591
+ }
592
+ });
593
+ };
575
594
  /**
576
595
  * Get the current billing plan for a space.
577
596
  */
@@ -681,3 +700,18 @@ export const getBillingUsage = (options) => {
681
700
  ...options
682
701
  });
683
702
  };
703
+ /**
704
+ * Fetch live unit prices for all paid plans from Stripe.
705
+ */
706
+ export const fetchBillingPrices = (options) => {
707
+ return (options.client ?? client).get({
708
+ security: [
709
+ {
710
+ scheme: 'bearer',
711
+ type: 'http'
712
+ }
713
+ ],
714
+ url: '/auth/{spaceHandle}/billing/prices',
715
+ ...options
716
+ });
717
+ };
@@ -1,7 +1,7 @@
1
1
  export type ClientOptions = {
2
2
  baseUrl: 'http://localhost:8080/core-service' | 'https://api-dev.shoalstack.com/core-service' | (string & {});
3
3
  };
4
- export type BillingPlanLookupKey = 'free_monthly' | 'free_annual' | 'hobby_monthly' | 'hobby_annual' | 'pro_monthly' | 'pro_annual';
4
+ export type BillingPlanLookupKey = 'free-monthly' | 'hobby-monthly' | 'hobby-annual' | 'pro-monthly' | 'pro-annual';
5
5
  export type HealthResponse = {
6
6
  status: string;
7
7
  };
@@ -360,7 +360,10 @@ export type BillingPlan = {
360
360
  entitlements: Array<string>;
361
361
  };
362
362
  export type UpdatePlanRequest = {
363
- priceId: string;
363
+ /**
364
+ * Stripe price lookup key (e.g. "hobby-monthly"). Empty string = Free tier.
365
+ */
366
+ lookup_key: string;
364
367
  };
365
368
  export type PaymentMethod = {
366
369
  id: string;
@@ -376,6 +379,38 @@ export type SetupIntentResponse = {
376
379
  export type BillingUsage = {
377
380
  totalUnits: number;
378
381
  };
382
+ export type RecordUsageRequest = {
383
+ /**
384
+ * The Kinde organisation code for the space.
385
+ */
386
+ orgCode: string;
387
+ /**
388
+ * Usage quantity to record.
389
+ */
390
+ quantity: number;
391
+ /**
392
+ * Unix timestamp (seconds) at which the usage occurred. Defaults to now if omitted.
393
+ */
394
+ timestamp?: number;
395
+ };
396
+ export type PlanPriceResponse = {
397
+ /**
398
+ * Plan code (e.g. "hobby-monthly", "pro-annual").
399
+ */
400
+ code: string;
401
+ /**
402
+ * Price per seat in the smallest currency unit (e.g. cents).
403
+ */
404
+ unit_amount_cents: number;
405
+ /**
406
+ * ISO 4217 currency code (e.g. "usd").
407
+ */
408
+ currency: string;
409
+ /**
410
+ * Billing interval ("month" or "year").
411
+ */
412
+ interval: string;
413
+ };
379
414
  /**
380
415
  * Expiry query.
381
416
  */
@@ -1892,6 +1927,37 @@ export type RequestSignedUploadUrlResponses = {
1892
1927
  200: SignedUrlUploadResponse;
1893
1928
  };
1894
1929
  export type RequestSignedUploadUrlResponse = RequestSignedUploadUrlResponses[keyof RequestSignedUploadUrlResponses];
1930
+ export type RecordCloudUsageData = {
1931
+ body: RecordUsageRequest;
1932
+ path?: never;
1933
+ query?: never;
1934
+ url: '/m2m/billing/usage/record';
1935
+ };
1936
+ export type RecordCloudUsageErrors = {
1937
+ /**
1938
+ * Bad request.
1939
+ */
1940
+ 400: ErrorResponse;
1941
+ /**
1942
+ * Unauthorised.
1943
+ */
1944
+ 401: ErrorResponse;
1945
+ /**
1946
+ * Invalid credentials.
1947
+ */
1948
+ 403: ErrorResponse;
1949
+ /**
1950
+ * Unexpected error.
1951
+ */
1952
+ 500: ErrorResponse;
1953
+ };
1954
+ export type RecordCloudUsageError = RecordCloudUsageErrors[keyof RecordCloudUsageErrors];
1955
+ export type RecordCloudUsageResponses = {
1956
+ /**
1957
+ * Usage recorded successfully.
1958
+ */
1959
+ 202: unknown;
1960
+ };
1895
1961
  export type GetBillingPlanData = {
1896
1962
  body?: never;
1897
1963
  path: {
@@ -2134,3 +2200,36 @@ export type GetBillingUsageResponses = {
2134
2200
  200: BillingUsage;
2135
2201
  };
2136
2202
  export type GetBillingUsageResponse = GetBillingUsageResponses[keyof GetBillingUsageResponses];
2203
+ export type FetchBillingPricesData = {
2204
+ body?: never;
2205
+ path: {
2206
+ /**
2207
+ * The space handle. This must be globally unique.
2208
+ */
2209
+ spaceHandle: string;
2210
+ };
2211
+ query?: never;
2212
+ url: '/auth/{spaceHandle}/billing/prices';
2213
+ };
2214
+ export type FetchBillingPricesErrors = {
2215
+ /**
2216
+ * Unauthorised user.
2217
+ */
2218
+ 401: ErrorResponse;
2219
+ /**
2220
+ * Invalid credentials.
2221
+ */
2222
+ 403: ErrorResponse;
2223
+ /**
2224
+ * Unexpected error.
2225
+ */
2226
+ 500: ErrorResponse;
2227
+ };
2228
+ export type FetchBillingPricesError = FetchBillingPricesErrors[keyof FetchBillingPricesErrors];
2229
+ export type FetchBillingPricesResponses = {
2230
+ /**
2231
+ * A list of plan prices.
2232
+ */
2233
+ 200: Array<PlanPriceResponse>;
2234
+ };
2235
+ export type FetchBillingPricesResponse = FetchBillingPricesResponses[keyof FetchBillingPricesResponses];
@@ -1,11 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  export declare const zBillingPlanLookupKey: z.ZodEnum<{
3
- free_monthly: "free_monthly";
4
- free_annual: "free_annual";
5
- hobby_monthly: "hobby_monthly";
6
- hobby_annual: "hobby_annual";
7
- pro_monthly: "pro_monthly";
8
- pro_annual: "pro_annual";
3
+ "free-monthly": "free-monthly";
4
+ "hobby-monthly": "hobby-monthly";
5
+ "hobby-annual": "hobby-annual";
6
+ "pro-monthly": "pro-monthly";
7
+ "pro-annual": "pro-annual";
9
8
  }>;
10
9
  export declare const zHealthResponse: z.ZodObject<{
11
10
  status: z.ZodString;
@@ -1039,7 +1038,7 @@ export declare const zBillingPlan: z.ZodObject<{
1039
1038
  entitlements: z.ZodArray<z.ZodString>;
1040
1039
  }, z.core.$strip>;
1041
1040
  export declare const zUpdatePlanRequest: z.ZodObject<{
1042
- priceId: z.ZodString;
1041
+ lookup_key: z.ZodString;
1043
1042
  }, z.core.$strip>;
1044
1043
  export declare const zPaymentMethod: z.ZodObject<{
1045
1044
  id: z.ZodString;
@@ -1055,6 +1054,17 @@ export declare const zSetupIntentResponse: z.ZodObject<{
1055
1054
  export declare const zBillingUsage: z.ZodObject<{
1056
1055
  totalUnits: z.ZodCoercedBigInt<unknown>;
1057
1056
  }, z.core.$strip>;
1057
+ export declare const zRecordUsageRequest: z.ZodObject<{
1058
+ orgCode: z.ZodString;
1059
+ quantity: z.ZodCoercedBigInt<unknown>;
1060
+ timestamp: z.ZodOptional<z.ZodCoercedBigInt<unknown>>;
1061
+ }, z.core.$strip>;
1062
+ export declare const zPlanPriceResponse: z.ZodObject<{
1063
+ code: z.ZodString;
1064
+ unit_amount_cents: z.ZodCoercedBigInt<unknown>;
1065
+ currency: z.ZodString;
1066
+ interval: z.ZodString;
1067
+ }, z.core.$strip>;
1058
1068
  /**
1059
1069
  * Expiry query.
1060
1070
  */
@@ -2214,6 +2224,15 @@ export declare const zRequestSignedUploadUrlResponse: z.ZodObject<{
2214
2224
  signedUrl: z.ZodString;
2215
2225
  expiration: z.ZodISODateTime;
2216
2226
  }, z.core.$strip>;
2227
+ export declare const zRecordCloudUsageData: z.ZodObject<{
2228
+ body: z.ZodObject<{
2229
+ orgCode: z.ZodString;
2230
+ quantity: z.ZodCoercedBigInt<unknown>;
2231
+ timestamp: z.ZodOptional<z.ZodCoercedBigInt<unknown>>;
2232
+ }, z.core.$strip>;
2233
+ path: z.ZodOptional<z.ZodNever>;
2234
+ query: z.ZodOptional<z.ZodNever>;
2235
+ }, z.core.$strip>;
2217
2236
  export declare const zGetBillingPlanData: z.ZodObject<{
2218
2237
  body: z.ZodOptional<z.ZodNever>;
2219
2238
  path: z.ZodObject<{
@@ -2245,7 +2264,7 @@ export declare const zGetBillingPlanResponse: z.ZodObject<{
2245
2264
  }, z.core.$strip>;
2246
2265
  export declare const zUpdateBillingPlanData: z.ZodObject<{
2247
2266
  body: z.ZodObject<{
2248
- priceId: z.ZodString;
2267
+ lookup_key: z.ZodString;
2249
2268
  }, z.core.$strip>;
2250
2269
  path: z.ZodObject<{
2251
2270
  spaceHandle: z.ZodString;
@@ -2320,3 +2339,19 @@ export declare const zGetBillingUsageData: z.ZodObject<{
2320
2339
  export declare const zGetBillingUsageResponse: z.ZodObject<{
2321
2340
  totalUnits: z.ZodCoercedBigInt<unknown>;
2322
2341
  }, z.core.$strip>;
2342
+ export declare const zFetchBillingPricesData: z.ZodObject<{
2343
+ body: z.ZodOptional<z.ZodNever>;
2344
+ path: z.ZodObject<{
2345
+ spaceHandle: z.ZodString;
2346
+ }, z.core.$strip>;
2347
+ query: z.ZodOptional<z.ZodNever>;
2348
+ }, z.core.$strip>;
2349
+ /**
2350
+ * A list of plan prices.
2351
+ */
2352
+ export declare const zFetchBillingPricesResponse: z.ZodArray<z.ZodObject<{
2353
+ code: z.ZodString;
2354
+ unit_amount_cents: z.ZodCoercedBigInt<unknown>;
2355
+ currency: z.ZodString;
2356
+ interval: z.ZodString;
2357
+ }, z.core.$strip>>;
@@ -1,12 +1,11 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
  import { z } from 'zod';
3
3
  export const zBillingPlanLookupKey = z.enum([
4
- 'free_monthly',
5
- 'free_annual',
6
- 'hobby_monthly',
7
- 'hobby_annual',
8
- 'pro_monthly',
9
- 'pro_annual'
4
+ 'free-monthly',
5
+ 'hobby-monthly',
6
+ 'hobby-annual',
7
+ 'pro-monthly',
8
+ 'pro-annual'
10
9
  ]);
11
10
  export const zHealthResponse = z.object({
12
11
  status: z.string()
@@ -458,7 +457,7 @@ export const zBillingPlan = z.object({
458
457
  entitlements: z.array(z.string())
459
458
  });
460
459
  export const zUpdatePlanRequest = z.object({
461
- priceId: z.string()
460
+ lookup_key: z.string()
462
461
  });
463
462
  export const zPaymentMethod = z.object({
464
463
  id: z.string(),
@@ -474,6 +473,17 @@ export const zSetupIntentResponse = z.object({
474
473
  export const zBillingUsage = z.object({
475
474
  totalUnits: z.coerce.bigint()
476
475
  });
476
+ export const zRecordUsageRequest = z.object({
477
+ orgCode: z.string(),
478
+ quantity: z.coerce.bigint(),
479
+ timestamp: z.optional(z.coerce.bigint())
480
+ });
481
+ export const zPlanPriceResponse = z.object({
482
+ code: z.string(),
483
+ unit_amount_cents: z.coerce.bigint(),
484
+ currency: z.string(),
485
+ interval: z.string()
486
+ });
477
487
  /**
478
488
  * Expiry query.
479
489
  */
@@ -934,6 +944,11 @@ export const zRequestSignedUploadUrlData = z.object({
934
944
  * A successfully generated signed url.
935
945
  */
936
946
  export const zRequestSignedUploadUrlResponse = zSignedUrlUploadResponse;
947
+ export const zRecordCloudUsageData = z.object({
948
+ body: zRecordUsageRequest,
949
+ path: z.optional(z.never()),
950
+ query: z.optional(z.never())
951
+ });
937
952
  export const zGetBillingPlanData = z.object({
938
953
  body: z.optional(z.never()),
939
954
  path: z.object({
@@ -1009,3 +1024,14 @@ export const zGetBillingUsageData = z.object({
1009
1024
  * Current billing period usage.
1010
1025
  */
1011
1026
  export const zGetBillingUsageResponse = zBillingUsage;
1027
+ export const zFetchBillingPricesData = z.object({
1028
+ body: z.optional(z.never()),
1029
+ path: z.object({
1030
+ spaceHandle: z.string()
1031
+ }),
1032
+ query: z.optional(z.never())
1033
+ });
1034
+ /**
1035
+ * A list of plan prices.
1036
+ */
1037
+ export const zFetchBillingPricesResponse = z.array(zPlanPriceResponse);
@@ -1,6 +1,6 @@
1
1
  import { useMutation } from "@tanstack/react-query";
2
2
  import { GetSuccessResponse } from "../util";
3
- import { GetServiceHealthData, FetchGraphM2mData, RequestAccountPasswordResetData, RequestAccountPasswordResetResponses, UpdateUsernameData, UpdateUsernameResponses, CreateUsernameData, CreateUsernameResponses, GetUserProfileData, UpdateUserProfileData, UpdateUserProfileResponses, GetUserIdentitiesData, DeleteAccountIdentityData, DeleteAccountIdentityResponses, GetConnectedAppUrlData, UpdateConnectedAppTokenData, UpdateConnectedAppTokenResponses, ListInstallationRepositoriesData, ListInstallationBranchesData, ListUserInstallationsData, ListUserSpacesData, CreateSpaceData, CreateSpaceResponses, GetUserInvitesData, JoinSpaceData, JoinSpaceResponses, RejectSpaceInviteData, RejectSpaceInviteResponses, GetSpaceOverviewData, GetSpaceOrgCodeData, FetchKindeOrganisationBillingAgreementsData, GetSpaceInvitesData, CreateSpaceInviteData, CreateSpaceInviteResponses, RevokeSpaceInviteData, RevokeSpaceInviteResponses, ListSpaceMembersData, ListSpaceMemberRolesData, LeaveSpaceData, LeaveSpaceResponses, CreateProjectData, CreateProjectResponses, GetProjectOverviewData, CreateEnvironmentData, CreateEnvironmentResponses, GetEnvironmentOverviewData, GetGraphOverviewData, UpdateGraphStateData, UpdateGraphStateResponses, DeployVersionData, DeployVersionResponses, RequestSignedUploadUrlData, GetBillingPlanData, UpdateBillingPlanData, UpdateBillingPlanResponses, CreateSetupIntentData, CreateSetupIntentResponses, ListPaymentMethodsData, RemovePaymentMethodData, RemovePaymentMethodResponses, SetDefaultPaymentMethodData, SetDefaultPaymentMethodResponses, GetBillingUsageData } from "../../sdk/types.gen";
3
+ import { GetServiceHealthData, FetchGraphM2mData, RequestAccountPasswordResetData, RequestAccountPasswordResetResponses, UpdateUsernameData, UpdateUsernameResponses, CreateUsernameData, CreateUsernameResponses, GetUserProfileData, UpdateUserProfileData, UpdateUserProfileResponses, GetUserIdentitiesData, DeleteAccountIdentityData, DeleteAccountIdentityResponses, GetConnectedAppUrlData, UpdateConnectedAppTokenData, UpdateConnectedAppTokenResponses, ListInstallationRepositoriesData, ListInstallationBranchesData, ListUserInstallationsData, ListUserSpacesData, CreateSpaceData, CreateSpaceResponses, GetUserInvitesData, JoinSpaceData, JoinSpaceResponses, RejectSpaceInviteData, RejectSpaceInviteResponses, GetSpaceOverviewData, GetSpaceOrgCodeData, FetchKindeOrganisationBillingAgreementsData, GetSpaceInvitesData, CreateSpaceInviteData, CreateSpaceInviteResponses, RevokeSpaceInviteData, RevokeSpaceInviteResponses, ListSpaceMembersData, ListSpaceMemberRolesData, LeaveSpaceData, LeaveSpaceResponses, CreateProjectData, CreateProjectResponses, GetProjectOverviewData, CreateEnvironmentData, CreateEnvironmentResponses, GetEnvironmentOverviewData, GetGraphOverviewData, UpdateGraphStateData, UpdateGraphStateResponses, DeployVersionData, DeployVersionResponses, RequestSignedUploadUrlData, RecordCloudUsageData, RecordCloudUsageResponses, GetBillingPlanData, UpdateBillingPlanData, UpdateBillingPlanResponses, CreateSetupIntentData, CreateSetupIntentResponses, ListPaymentMethodsData, RemovePaymentMethodData, RemovePaymentMethodResponses, SetDefaultPaymentMethodData, SetDefaultPaymentMethodResponses, GetBillingUsageData, FetchBillingPricesData } from "../../sdk/types.gen";
4
4
  export declare const useGetServiceHealth: (options?: Omit<GetServiceHealthData, "url"> & {
5
5
  enabled?: boolean;
6
6
  }) => import("@tanstack/react-query").UseQueryResult<import("../../sdk/types.gen").HealthResponse | undefined, Error>;
@@ -141,6 +141,11 @@ export declare const useDeployVersion: (config?: {
141
141
  export declare const useRequestSignedUploadUrl: (options: Omit<RequestSignedUploadUrlData, "url"> & {
142
142
  enabled?: boolean;
143
143
  }) => import("@tanstack/react-query").UseQueryResult<import("../../sdk/types.gen").SignedUrlUploadResponse | undefined, Error>;
144
+ export declare const useRecordCloudUsage: (config?: {
145
+ onSuccess?: (data: GetSuccessResponse<RecordCloudUsageResponses>) => void;
146
+ onError?: Parameters<typeof useMutation>["0"]["onError"];
147
+ retry?: boolean;
148
+ }) => import("@tanstack/react-query").UseMutationResult<unknown, unknown, Omit<RecordCloudUsageData, "url">, unknown>;
144
149
  export declare const useGetBillingPlan: (options: Omit<GetBillingPlanData, "url"> & {
145
150
  enabled?: boolean;
146
151
  }) => import("@tanstack/react-query").UseQueryResult<import("../../sdk/types.gen").BillingPlan | undefined, Error>;
@@ -170,3 +175,6 @@ export declare const useSetDefaultPaymentMethod: (config?: {
170
175
  export declare const useGetBillingUsage: (options: Omit<GetBillingUsageData, "url"> & {
171
176
  enabled?: boolean;
172
177
  }) => import("@tanstack/react-query").UseQueryResult<import("../../sdk/types.gen").BillingUsage | undefined, Error>;
178
+ export declare const useFetchBillingPrices: (options: Omit<FetchBillingPricesData, "url"> & {
179
+ enabled?: boolean;
180
+ }) => import("@tanstack/react-query").UseQueryResult<import("../../sdk/types.gen").PlanPriceResponse[] | undefined, Error>;
@@ -2,7 +2,7 @@
2
2
  import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
3
3
  import { isPromise } from "../util";
4
4
  import { useToken } from "../../provider/token-provider";
5
- import { getServiceHealth, fetchGraphM2M, requestAccountPasswordReset, updateUsername, createUsername, getUserProfile, updateUserProfile, getUserIdentities, deleteAccountIdentity, getConnectedAppUrl, updateConnectedAppToken, listInstallationRepositories, listInstallationBranches, listUserInstallations, listUserSpaces, createSpace, getUserInvites, joinSpace, rejectSpaceInvite, getSpaceOverview, getSpaceOrgCode, fetchKindeOrganisationBillingAgreements, getSpaceInvites, createSpaceInvite, revokeSpaceInvite, listSpaceMembers, listSpaceMemberRoles, leaveSpace, createProject, getProjectOverview, createEnvironment, getEnvironmentOverview, getGraphOverview, updateGraphState, deployVersion, requestSignedUploadUrl, getBillingPlan, updateBillingPlan, createSetupIntent, listPaymentMethods, removePaymentMethod, setDefaultPaymentMethod, getBillingUsage } from "../../sdk/sdk.gen";
5
+ import { getServiceHealth, fetchGraphM2M, requestAccountPasswordReset, updateUsername, createUsername, getUserProfile, updateUserProfile, getUserIdentities, deleteAccountIdentity, getConnectedAppUrl, updateConnectedAppToken, listInstallationRepositories, listInstallationBranches, listUserInstallations, listUserSpaces, createSpace, getUserInvites, joinSpace, rejectSpaceInvite, getSpaceOverview, getSpaceOrgCode, fetchKindeOrganisationBillingAgreements, getSpaceInvites, createSpaceInvite, revokeSpaceInvite, listSpaceMembers, listSpaceMemberRoles, leaveSpace, createProject, getProjectOverview, createEnvironment, getEnvironmentOverview, getGraphOverview, updateGraphState, deployVersion, requestSignedUploadUrl, recordCloudUsage, getBillingPlan, updateBillingPlan, createSetupIntent, listPaymentMethods, removePaymentMethod, setDefaultPaymentMethod, getBillingUsage, fetchBillingPrices } from "../../sdk/sdk.gen";
6
6
  export const useGetServiceHealth = (options) => {
7
7
  const token = useToken();
8
8
  let { enabled, ...rest } = options || { enabled: true };
@@ -727,6 +727,25 @@ export const useRequestSignedUploadUrl = (options) => {
727
727
  staleTime: 600000
728
728
  });
729
729
  };
730
+ export const useRecordCloudUsage = (config) => {
731
+ const token = useToken();
732
+ const queryClient = useQueryClient();
733
+ const opts = { throwOnError: true, url: "/m2m/billing/usage/record" };
734
+ const funcer = async (options) => {
735
+ const auth = isPromise(token) ? (await token) || "" : token || "";
736
+ const res = await recordCloudUsage({ ...opts, ...options, auth });
737
+ return res?.data;
738
+ };
739
+ return useMutation({
740
+ mutationFn: funcer,
741
+ onSuccess: (res, options, c, ctx) => {
742
+ queryClient.invalidateQueries({ queryKey: ["m2m", "billing", "usage", "record"] });
743
+ config?.onSuccess && config.onSuccess(res);
744
+ },
745
+ onError: config?.onError,
746
+ retry: config?.retry
747
+ });
748
+ };
730
749
  export const useGetBillingPlan = (options) => {
731
750
  const token = useToken();
732
751
  let { enabled, ...rest } = options || { enabled: true };
@@ -866,3 +885,24 @@ export const useGetBillingUsage = (options) => {
866
885
  staleTime: 600000
867
886
  });
868
887
  };
888
+ export const useFetchBillingPrices = (options) => {
889
+ const token = useToken();
890
+ let { enabled, ...rest } = options || { enabled: true };
891
+ const opts = { throwOnError: true, url: "/auth/{spaceHandle}/billing/prices" };
892
+ const funcer = async () => {
893
+ const auth = isPromise(token) ? (await token) || "" : token || "";
894
+ if (isPromise(token) && !token)
895
+ return;
896
+ const res = await fetchBillingPrices({ ...opts, ...rest, auth });
897
+ return res.data;
898
+ };
899
+ if (!token)
900
+ enabled = false;
901
+ return useQuery({
902
+ queryKey: [options?.path?.spaceHandle, "billing", "prices", options.query ?? {}],
903
+ queryFn: funcer,
904
+ enabled,
905
+ retry: false,
906
+ staleTime: 600000
907
+ });
908
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shoal-web-sdk",
3
- "version": "0.0.110",
3
+ "version": "0.0.111",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "build-hooks": "npx tsx tanstack-codegen/generator.ts",