weflayr 0.22.0 → 0.22.1

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.
Files changed (77) hide show
  1. package/.prettierignore +2 -0
  2. package/dist/api/caseConversion.d.ts +16 -0
  3. package/dist/api/caseConversion.js +45 -0
  4. package/dist/api/generated/client/client.gen.d.ts +2 -0
  5. package/dist/api/generated/client/client.gen.js +220 -0
  6. package/dist/api/generated/client/index.d.ts +10 -0
  7. package/dist/api/generated/client/index.js +17 -0
  8. package/dist/api/generated/client/types.gen.d.ts +120 -0
  9. package/dist/api/generated/client/types.gen.js +3 -0
  10. package/dist/api/generated/client/utils.gen.d.ts +37 -0
  11. package/dist/api/generated/client/utils.gen.js +239 -0
  12. package/dist/api/generated/client.gen.d.ts +12 -0
  13. package/dist/api/generated/client.gen.js +6 -0
  14. package/dist/api/generated/core/auth.gen.d.ts +25 -0
  15. package/dist/api/generated/core/auth.gen.js +18 -0
  16. package/dist/api/generated/core/bodySerializer.gen.d.ts +25 -0
  17. package/dist/api/generated/core/bodySerializer.gen.js +60 -0
  18. package/dist/api/generated/core/params.gen.d.ts +43 -0
  19. package/dist/api/generated/core/params.gen.js +112 -0
  20. package/dist/api/generated/core/pathSerializer.gen.d.ts +33 -0
  21. package/dist/api/generated/core/pathSerializer.gen.js +115 -0
  22. package/dist/api/generated/core/queryKeySerializer.gen.d.ts +18 -0
  23. package/dist/api/generated/core/queryKeySerializer.gen.js +98 -0
  24. package/dist/api/generated/core/serverSentEvents.gen.d.ts +71 -0
  25. package/dist/api/generated/core/serverSentEvents.gen.js +135 -0
  26. package/dist/api/generated/core/types.gen.d.ts +83 -0
  27. package/dist/api/generated/core/types.gen.js +3 -0
  28. package/dist/api/generated/core/utils.gen.d.ts +19 -0
  29. package/dist/api/generated/core/utils.gen.js +93 -0
  30. package/dist/api/generated/facade.gen.d.ts +208 -0
  31. package/dist/api/generated/facade.gen.js +52 -0
  32. package/dist/api/generated/index.d.ts +2 -0
  33. package/dist/api/generated/index.js +17 -0
  34. package/dist/api/generated/sdk.gen.d.ts +63 -0
  35. package/dist/api/generated/sdk.gen.js +125 -0
  36. package/dist/api/generated/types.gen.d.ts +711 -0
  37. package/dist/api/generated/types.gen.js +3 -0
  38. package/dist/api/index.d.ts +27 -0
  39. package/dist/api/index.js +48 -0
  40. package/dist/api/makeEndpoint.d.ts +27 -0
  41. package/dist/api/makeEndpoint.js +37 -0
  42. package/index.d.ts +24 -15
  43. package/openapi-ts.config.mjs +9 -0
  44. package/package.json +9 -2
  45. package/scripts/generate_facade.mjs +86 -0
  46. package/src/api/caseConversion.ts +58 -0
  47. package/src/api/generated/client/client.gen.ts +277 -0
  48. package/src/api/generated/client/index.ts +27 -0
  49. package/src/api/generated/client/types.gen.ts +218 -0
  50. package/src/api/generated/client/utils.gen.ts +316 -0
  51. package/src/api/generated/client.gen.ts +16 -0
  52. package/src/api/generated/core/auth.gen.ts +48 -0
  53. package/src/api/generated/core/bodySerializer.gen.ts +82 -0
  54. package/src/api/generated/core/params.gen.ts +178 -0
  55. package/src/api/generated/core/pathSerializer.gen.ts +171 -0
  56. package/src/api/generated/core/queryKeySerializer.gen.ts +117 -0
  57. package/src/api/generated/core/serverSentEvents.gen.ts +242 -0
  58. package/src/api/generated/core/types.gen.ts +110 -0
  59. package/src/api/generated/core/utils.gen.ts +140 -0
  60. package/src/api/generated/facade.gen.ts +80 -0
  61. package/src/api/generated/index.ts +4 -0
  62. package/src/api/generated/sdk.gen.ts +139 -0
  63. package/src/api/generated/types.gen.ts +792 -0
  64. package/src/api/index.ts +45 -0
  65. package/src/api/makeEndpoint.ts +54 -0
  66. package/src/auto-instrument.js +19 -6
  67. package/src/index.js +5 -0
  68. package/src/instrumentation/google/get_provider_name.js +2 -1
  69. package/src/instrumentation/vercel/full_instrumentation.js +44 -0
  70. package/src/otel/propagation.js +21 -12
  71. package/src/otel/span-processor.js +11 -1
  72. package/src/otel/vercel-ai-sdk-span-filter.js +79 -0
  73. package/tests/api/index.test.js +330 -0
  74. package/tests/index.test.js +48 -15
  75. package/tests/instrumentation/vercel/full_instrumentation.test.js +16 -0
  76. package/tests/otel/vercel-ai-sdk-span-filter.test.js +159 -0
  77. package/tsconfig.json +18 -0
@@ -0,0 +1,140 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+
3
+ import type { BodySerializer, QuerySerializer } from './bodySerializer.gen.js';
4
+ import {
5
+ type ArraySeparatorStyle,
6
+ serializeArrayParam,
7
+ serializeObjectParam,
8
+ serializePrimitiveParam,
9
+ } from './pathSerializer.gen.js';
10
+
11
+ export interface PathSerializer {
12
+ path: Record<string, unknown>;
13
+ url: string;
14
+ }
15
+
16
+ export const PATH_PARAM_RE: RegExp = /\{[^{}]+\}/g;
17
+
18
+ export const defaultPathSerializer = ({ path, url: _url }: PathSerializer): string => {
19
+ let url = _url;
20
+ const matches = _url.match(PATH_PARAM_RE);
21
+ if (matches) {
22
+ for (const match of matches) {
23
+ let explode = false;
24
+ let name = match.substring(1, match.length - 1);
25
+ let style: ArraySeparatorStyle = 'simple';
26
+
27
+ if (name.endsWith('*')) {
28
+ explode = true;
29
+ name = name.substring(0, name.length - 1);
30
+ }
31
+
32
+ if (name.startsWith('.')) {
33
+ name = name.substring(1);
34
+ style = 'label';
35
+ } else if (name.startsWith(';')) {
36
+ name = name.substring(1);
37
+ style = 'matrix';
38
+ }
39
+
40
+ const value = path[name];
41
+
42
+ if (value === undefined || value === null) {
43
+ continue;
44
+ }
45
+
46
+ if (Array.isArray(value)) {
47
+ url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
48
+ continue;
49
+ }
50
+
51
+ if (typeof value === 'object') {
52
+ url = url.replace(
53
+ match,
54
+ serializeObjectParam({
55
+ explode,
56
+ name,
57
+ style,
58
+ value: value as Record<string, unknown>,
59
+ valueOnly: true,
60
+ }),
61
+ );
62
+ continue;
63
+ }
64
+
65
+ if (style === 'matrix') {
66
+ url = url.replace(
67
+ match,
68
+ `;${serializePrimitiveParam({
69
+ name,
70
+ value: value as string,
71
+ })}`,
72
+ );
73
+ continue;
74
+ }
75
+
76
+ const replaceValue = encodeURIComponent(
77
+ style === 'label' ? `.${value as string}` : (value as string),
78
+ );
79
+ url = url.replace(match, replaceValue);
80
+ }
81
+ }
82
+ return url;
83
+ };
84
+
85
+ export const getUrl = ({
86
+ baseUrl,
87
+ path,
88
+ query,
89
+ querySerializer,
90
+ url: _url,
91
+ }: {
92
+ baseUrl?: string;
93
+ path?: Record<string, unknown>;
94
+ query?: Record<string, unknown>;
95
+ querySerializer: QuerySerializer;
96
+ url: string;
97
+ }): string => {
98
+ const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;
99
+ let url = (baseUrl ?? '') + pathUrl;
100
+ if (path) {
101
+ url = defaultPathSerializer({ path, url });
102
+ }
103
+ let search = query ? querySerializer(query) : '';
104
+ if (search.startsWith('?')) {
105
+ search = search.substring(1);
106
+ }
107
+ if (search) {
108
+ url += `?${search}`;
109
+ }
110
+ return url;
111
+ };
112
+
113
+ export function getValidRequestBody(options: {
114
+ body?: unknown;
115
+ bodySerializer?: BodySerializer | null;
116
+ serializedBody?: unknown;
117
+ }): unknown {
118
+ const hasBody = options.body !== undefined;
119
+ const isSerializedBody = hasBody && options.bodySerializer;
120
+
121
+ if (isSerializedBody) {
122
+ if ('serializedBody' in options) {
123
+ const hasSerializedBody =
124
+ options.serializedBody !== undefined && options.serializedBody !== '';
125
+
126
+ return hasSerializedBody ? options.serializedBody : null;
127
+ }
128
+
129
+ // not all clients implement a serializedBody property (i.e., client-axios)
130
+ return options.body !== '' ? options.body : null;
131
+ }
132
+
133
+ // plain/text body
134
+ if (hasBody) {
135
+ return options.body;
136
+ }
137
+
138
+ // no body was provided
139
+ return undefined;
140
+ }
@@ -0,0 +1,80 @@
1
+ // Generated by services/sdk_node_js/scripts/generate_facade.mjs from
2
+ // sdk.gen.ts. Do not edit by hand.
3
+
4
+ import { makeEndpoint } from '../makeEndpoint.js';
5
+ import type { CamelCaseDeep } from '../caseConversion.js';
6
+ import * as generated from './sdk.gen.js';
7
+ import type * as generatedTypes from './types.gen.js';
8
+
9
+
10
+ export const getAllRevenue = makeEndpoint<
11
+ CamelCaseDeep<Omit<generatedTypes.GetAllRevenueData, 'url'>>,
12
+ CamelCaseDeep<generatedTypes.GetAllRevenueResponse>,
13
+ CamelCaseDeep<generatedTypes.GetAllRevenueError>
14
+ >(generated.getAllRevenue);
15
+
16
+ export const setRevenue = makeEndpoint<
17
+ CamelCaseDeep<Omit<generatedTypes.SetRevenueData, 'url'>>,
18
+ CamelCaseDeep<generatedTypes.SetRevenueResponse>,
19
+ CamelCaseDeep<generatedTypes.SetRevenueError>
20
+ >(generated.setRevenue);
21
+
22
+ export const deleteCustomerRevenue = makeEndpoint<
23
+ CamelCaseDeep<Omit<generatedTypes.DeleteCustomerRevenueData, 'url'>>,
24
+ CamelCaseDeep<generatedTypes.DeleteCustomerRevenueResponse>,
25
+ CamelCaseDeep<generatedTypes.DeleteCustomerRevenueError>
26
+ >(generated.deleteCustomerRevenue);
27
+
28
+ export const getCustomerRevenue = makeEndpoint<
29
+ CamelCaseDeep<Omit<generatedTypes.GetCustomerRevenueData, 'url'>>,
30
+ CamelCaseDeep<generatedTypes.GetCustomerRevenueResponse>,
31
+ CamelCaseDeep<generatedTypes.GetCustomerRevenueError>
32
+ >(generated.getCustomerRevenue);
33
+
34
+ export const getAllKeyMetrics = makeEndpoint<
35
+ CamelCaseDeep<Omit<generatedTypes.GetAllKeyMetricsData, 'url'>>,
36
+ CamelCaseDeep<generatedTypes.GetAllKeyMetricsResponse>,
37
+ CamelCaseDeep<generatedTypes.GetAllKeyMetricsError>
38
+ >(generated.getAllKeyMetrics);
39
+
40
+ export const setKeyMetrics = makeEndpoint<
41
+ CamelCaseDeep<Omit<generatedTypes.SetKeyMetricsData, 'url'>>,
42
+ CamelCaseDeep<generatedTypes.SetKeyMetricsResponse>,
43
+ CamelCaseDeep<generatedTypes.SetKeyMetricsError>
44
+ >(generated.setKeyMetrics);
45
+
46
+ export const deleteUserKeyMetrics = makeEndpoint<
47
+ CamelCaseDeep<Omit<generatedTypes.DeleteUserKeyMetricsData, 'url'>>,
48
+ CamelCaseDeep<generatedTypes.DeleteUserKeyMetricsResponse>,
49
+ CamelCaseDeep<generatedTypes.DeleteUserKeyMetricsError>
50
+ >(generated.deleteUserKeyMetrics);
51
+
52
+ export const getUserKeyMetrics = makeEndpoint<
53
+ CamelCaseDeep<Omit<generatedTypes.GetUserKeyMetricsData, 'url'>>,
54
+ CamelCaseDeep<generatedTypes.GetUserKeyMetricsResponse>,
55
+ CamelCaseDeep<generatedTypes.GetUserKeyMetricsError>
56
+ >(generated.getUserKeyMetrics);
57
+
58
+ export const getAllCustomersTags = makeEndpoint<
59
+ CamelCaseDeep<Omit<generatedTypes.GetAllCustomersTagsData, 'url'>>,
60
+ CamelCaseDeep<generatedTypes.GetAllCustomersTagsResponse>,
61
+ CamelCaseDeep<generatedTypes.GetAllCustomersTagsError>
62
+ >(generated.getAllCustomersTags);
63
+
64
+ export const setCustomersTags = makeEndpoint<
65
+ CamelCaseDeep<Omit<generatedTypes.SetCustomersTagsData, 'url'>>,
66
+ CamelCaseDeep<generatedTypes.SetCustomersTagsResponse>,
67
+ CamelCaseDeep<generatedTypes.SetCustomersTagsError>
68
+ >(generated.setCustomersTags);
69
+
70
+ export const deleteCustomerTags = makeEndpoint<
71
+ CamelCaseDeep<Omit<generatedTypes.DeleteCustomerTagsData, 'url'>>,
72
+ CamelCaseDeep<generatedTypes.DeleteCustomerTagsResponse>,
73
+ CamelCaseDeep<generatedTypes.DeleteCustomerTagsError>
74
+ >(generated.deleteCustomerTags);
75
+
76
+ export const getCustomerTags = makeEndpoint<
77
+ CamelCaseDeep<Omit<generatedTypes.GetCustomerTagsData, 'url'>>,
78
+ CamelCaseDeep<generatedTypes.GetCustomerTagsResponse>,
79
+ CamelCaseDeep<generatedTypes.GetCustomerTagsError>
80
+ >(generated.getCustomerTags);
@@ -0,0 +1,4 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+
3
+ export { deleteCustomerRevenue, deleteCustomerTags, deleteUserKeyMetrics, getAllCustomersTags, getAllKeyMetrics, getAllRevenue, getCustomerRevenue, getCustomerTags, getUserKeyMetrics, type Options, setCustomersTags, setKeyMetrics, setRevenue } from './sdk.gen.js';
4
+ export type { AllCustomerTagsOutput, ApiErrorOutput, ClientOptions, CustomersUpdatedOutput, CustomerTags, CustomerTagsOutput, DeleteCustomerRevenueData, DeleteCustomerRevenueError, DeleteCustomerRevenueErrors, DeleteCustomerRevenueResponse, DeleteCustomerRevenueResponses, DeleteCustomerTagsData, DeleteCustomerTagsError, DeleteCustomerTagsErrors, DeleteCustomerTagsResponse, DeleteCustomerTagsResponses, DeleteUserKeyMetricsData, DeleteUserKeyMetricsError, DeleteUserKeyMetricsErrors, DeleteUserKeyMetricsResponse, DeleteUserKeyMetricsResponses, GetAllCustomersTagsData, GetAllCustomersTagsError, GetAllCustomersTagsErrors, GetAllCustomersTagsResponse, GetAllCustomersTagsResponses, GetAllKeyMetricsData, GetAllKeyMetricsError, GetAllKeyMetricsErrors, GetAllKeyMetricsResponse, GetAllKeyMetricsResponses, GetAllRevenueData, GetAllRevenueError, GetAllRevenueErrors, GetAllRevenueResponse, GetAllRevenueResponses, GetCustomerRevenueData, GetCustomerRevenueError, GetCustomerRevenueErrors, GetCustomerRevenueResponse, GetCustomerRevenueResponses, GetCustomerTagsData, GetCustomerTagsError, GetCustomerTagsErrors, GetCustomerTagsResponse, GetCustomerTagsResponses, GetUserKeyMetricsData, GetUserKeyMetricsError, GetUserKeyMetricsErrors, GetUserKeyMetricsResponse, GetUserKeyMetricsResponses, InvalidFieldDetail, InvalidPayloadOutput, KeyMetricOutput, KeyMetricRow, KeyMetricRowOutput, RevenueOrKeyMetricDeletedRowOutput, RevenueOrKeyMetricImportedRowOutput, RevenueOutput, RevenueRow, RevenueRowOutput, SetCustomersTagsData, SetCustomersTagsError, SetCustomersTagsErrors, SetCustomersTagsResponse, SetCustomersTagsResponses, SetCustomerTagsInput, SetKeyMetricsData, SetKeyMetricsError, SetKeyMetricsErrors, SetKeyMetricsInput, SetKeyMetricsResponse, SetKeyMetricsResponses, SetRevenueData, SetRevenueError, SetRevenueErrors, SetRevenueInput, SetRevenueResponse, SetRevenueResponses, TagsDeletedOutput } from './types.gen.js';
@@ -0,0 +1,139 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+
3
+ import { client } from './client.gen.js';
4
+ import type { Client, ClientMeta, Options as Options2, RequestResult, TDataShape } from './client/index.js';
5
+ import type { DeleteCustomerRevenueData, DeleteCustomerRevenueErrors, DeleteCustomerRevenueResponses, DeleteCustomerTagsData, DeleteCustomerTagsErrors, DeleteCustomerTagsResponses, DeleteUserKeyMetricsData, DeleteUserKeyMetricsErrors, DeleteUserKeyMetricsResponses, GetAllCustomersTagsData, GetAllCustomersTagsErrors, GetAllCustomersTagsResponses, GetAllKeyMetricsData, GetAllKeyMetricsErrors, GetAllKeyMetricsResponses, GetAllRevenueData, GetAllRevenueErrors, GetAllRevenueResponses, GetCustomerRevenueData, GetCustomerRevenueErrors, GetCustomerRevenueResponses, GetCustomerTagsData, GetCustomerTagsErrors, GetCustomerTagsResponses, GetUserKeyMetricsData, GetUserKeyMetricsErrors, GetUserKeyMetricsResponses, SetCustomersTagsData, SetCustomersTagsErrors, SetCustomersTagsResponses, SetKeyMetricsData, SetKeyMetricsErrors, SetKeyMetricsResponses, SetRevenueData, SetRevenueErrors, SetRevenueResponses } from './types.gen.js';
6
+
7
+ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
8
+ /**
9
+ * You can provide a client instance returned by `createClient()` instead of
10
+ * individual options. This might be also useful if you want to implement a
11
+ * custom client.
12
+ */
13
+ client?: Client;
14
+ /**
15
+ * You can pass arbitrary values through the `meta` object. This can be
16
+ * used to access values that aren't defined as part of the SDK function.
17
+ */
18
+ meta?: keyof ClientMeta extends never ? Record<string, unknown> : ClientMeta;
19
+ };
20
+
21
+ /**
22
+ * Every revenue value of the project, one row per booked value.
23
+ */
24
+ export const getAllRevenue = <ThrowOnError extends boolean = false>(options?: Options<GetAllRevenueData, ThrowOnError>): RequestResult<GetAllRevenueResponses, GetAllRevenueErrors, ThrowOnError> => (options?.client ?? client).get<GetAllRevenueResponses, GetAllRevenueErrors, ThrowOnError>({
25
+ security: [{ scheme: 'bearer', type: 'http' }],
26
+ url: '/revenue/',
27
+ ...options
28
+ });
29
+
30
+ /**
31
+ * Book revenue values; set upsert=true to overwrite rows whose id already exists.
32
+ */
33
+ export const setRevenue = <ThrowOnError extends boolean = false>(options: Options<SetRevenueData, ThrowOnError>): RequestResult<SetRevenueResponses, SetRevenueErrors, ThrowOnError> => (options.client ?? client).post<SetRevenueResponses, SetRevenueErrors, ThrowOnError>({
34
+ security: [{ scheme: 'bearer', type: 'http' }],
35
+ url: '/revenue/',
36
+ ...options,
37
+ headers: {
38
+ 'Content-Type': 'application/json',
39
+ ...options.headers
40
+ }
41
+ });
42
+
43
+ /**
44
+ * Delete one customer's API-uploaded revenue values.
45
+ */
46
+ export const deleteCustomerRevenue = <ThrowOnError extends boolean = false>(options: Options<DeleteCustomerRevenueData, ThrowOnError>): RequestResult<DeleteCustomerRevenueResponses, DeleteCustomerRevenueErrors, ThrowOnError> => (options.client ?? client).delete<DeleteCustomerRevenueResponses, DeleteCustomerRevenueErrors, ThrowOnError>({
47
+ security: [{ scheme: 'bearer', type: 'http' }],
48
+ url: '/revenue/{customer_name}/',
49
+ ...options
50
+ });
51
+
52
+ /**
53
+ * One customer's revenue values; 404 when none are booked.
54
+ */
55
+ export const getCustomerRevenue = <ThrowOnError extends boolean = false>(options: Options<GetCustomerRevenueData, ThrowOnError>): RequestResult<GetCustomerRevenueResponses, GetCustomerRevenueErrors, ThrowOnError> => (options.client ?? client).get<GetCustomerRevenueResponses, GetCustomerRevenueErrors, ThrowOnError>({
56
+ security: [{ scheme: 'bearer', type: 'http' }],
57
+ url: '/revenue/{customer_name}/',
58
+ ...options
59
+ });
60
+
61
+ /**
62
+ * Every key-metric value of the project, one row per booked value.
63
+ */
64
+ export const getAllKeyMetrics = <ThrowOnError extends boolean = false>(options?: Options<GetAllKeyMetricsData, ThrowOnError>): RequestResult<GetAllKeyMetricsResponses, GetAllKeyMetricsErrors, ThrowOnError> => (options?.client ?? client).get<GetAllKeyMetricsResponses, GetAllKeyMetricsErrors, ThrowOnError>({
65
+ security: [{ scheme: 'bearer', type: 'http' }],
66
+ url: '/key-metrics/',
67
+ ...options
68
+ });
69
+
70
+ /**
71
+ * Book key-metric values; set upsert=true to overwrite rows whose id already exists.
72
+ */
73
+ export const setKeyMetrics = <ThrowOnError extends boolean = false>(options: Options<SetKeyMetricsData, ThrowOnError>): RequestResult<SetKeyMetricsResponses, SetKeyMetricsErrors, ThrowOnError> => (options.client ?? client).post<SetKeyMetricsResponses, SetKeyMetricsErrors, ThrowOnError>({
74
+ security: [{ scheme: 'bearer', type: 'http' }],
75
+ url: '/key-metrics/',
76
+ ...options,
77
+ headers: {
78
+ 'Content-Type': 'application/json',
79
+ ...options.headers
80
+ }
81
+ });
82
+
83
+ /**
84
+ * Delete one user's API-uploaded key-metric values.
85
+ */
86
+ export const deleteUserKeyMetrics = <ThrowOnError extends boolean = false>(options: Options<DeleteUserKeyMetricsData, ThrowOnError>): RequestResult<DeleteUserKeyMetricsResponses, DeleteUserKeyMetricsErrors, ThrowOnError> => (options.client ?? client).delete<DeleteUserKeyMetricsResponses, DeleteUserKeyMetricsErrors, ThrowOnError>({
87
+ security: [{ scheme: 'bearer', type: 'http' }],
88
+ url: '/key-metrics/{user_name}/',
89
+ ...options
90
+ });
91
+
92
+ /**
93
+ * One user's key-metric values; 404 when none are booked.
94
+ */
95
+ export const getUserKeyMetrics = <ThrowOnError extends boolean = false>(options: Options<GetUserKeyMetricsData, ThrowOnError>): RequestResult<GetUserKeyMetricsResponses, GetUserKeyMetricsErrors, ThrowOnError> => (options.client ?? client).get<GetUserKeyMetricsResponses, GetUserKeyMetricsErrors, ThrowOnError>({
96
+ security: [{ scheme: 'bearer', type: 'http' }],
97
+ url: '/key-metrics/{user_name}/',
98
+ ...options
99
+ });
100
+
101
+ /**
102
+ * Every known customer of the project with its tags (possibly empty).
103
+ */
104
+ export const getAllCustomersTags = <ThrowOnError extends boolean = false>(options?: Options<GetAllCustomersTagsData, ThrowOnError>): RequestResult<GetAllCustomersTagsResponses, GetAllCustomersTagsErrors, ThrowOnError> => (options?.client ?? client).get<GetAllCustomersTagsResponses, GetAllCustomersTagsErrors, ThrowOnError>({
105
+ security: [{ scheme: 'bearer', type: 'http' }],
106
+ url: '/customer-tags/',
107
+ ...options
108
+ });
109
+
110
+ /**
111
+ * Merge-set customer tags; set upsert=true to overwrite tags that already exist.
112
+ */
113
+ export const setCustomersTags = <ThrowOnError extends boolean = false>(options: Options<SetCustomersTagsData, ThrowOnError>): RequestResult<SetCustomersTagsResponses, SetCustomersTagsErrors, ThrowOnError> => (options.client ?? client).post<SetCustomersTagsResponses, SetCustomersTagsErrors, ThrowOnError>({
114
+ security: [{ scheme: 'bearer', type: 'http' }],
115
+ url: '/customer-tags/',
116
+ ...options,
117
+ headers: {
118
+ 'Content-Type': 'application/json',
119
+ ...options.headers
120
+ }
121
+ });
122
+
123
+ /**
124
+ * Delete every tag of one customer; 404 for a customer Weflayr has never seen.
125
+ */
126
+ export const deleteCustomerTags = <ThrowOnError extends boolean = false>(options: Options<DeleteCustomerTagsData, ThrowOnError>): RequestResult<DeleteCustomerTagsResponses, DeleteCustomerTagsErrors, ThrowOnError> => (options.client ?? client).delete<DeleteCustomerTagsResponses, DeleteCustomerTagsErrors, ThrowOnError>({
127
+ security: [{ scheme: 'bearer', type: 'http' }],
128
+ url: '/customer-tags/{customer_name}/',
129
+ ...options
130
+ });
131
+
132
+ /**
133
+ * One customer's tags; 404 for a customer Weflayr has never seen.
134
+ */
135
+ export const getCustomerTags = <ThrowOnError extends boolean = false>(options: Options<GetCustomerTagsData, ThrowOnError>): RequestResult<GetCustomerTagsResponses, GetCustomerTagsErrors, ThrowOnError> => (options.client ?? client).get<GetCustomerTagsResponses, GetCustomerTagsErrors, ThrowOnError>({
136
+ security: [{ scheme: 'bearer', type: 'http' }],
137
+ url: '/customer-tags/{customer_name}/',
138
+ ...options
139
+ });