@37signals/basecamp 0.6.0 → 0.7.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 (102) hide show
  1. package/dist/client.d.ts +16 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +25 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/generated/metadata.json +319 -1
  6. package/dist/generated/openapi-stripped.json +7417 -4240
  7. package/dist/generated/path-mapping.d.ts.map +1 -1
  8. package/dist/generated/path-mapping.js +26 -2
  9. package/dist/generated/path-mapping.js.map +1 -1
  10. package/dist/generated/path-mapping.ts +27 -3
  11. package/dist/generated/schema.d.ts +2272 -148
  12. package/dist/generated/services/account.d.ts +66 -0
  13. package/dist/generated/services/account.d.ts.map +1 -0
  14. package/dist/generated/services/account.js +101 -0
  15. package/dist/generated/services/account.js.map +1 -0
  16. package/dist/generated/services/account.ts +144 -0
  17. package/dist/generated/services/campfires.d.ts +14 -0
  18. package/dist/generated/services/campfires.d.ts.map +1 -1
  19. package/dist/generated/services/campfires.js +8 -0
  20. package/dist/generated/services/campfires.js.map +1 -1
  21. package/dist/generated/services/campfires.ts +16 -0
  22. package/dist/generated/services/cards.d.ts +2 -0
  23. package/dist/generated/services/cards.d.ts.map +1 -1
  24. package/dist/generated/services/cards.js +1 -0
  25. package/dist/generated/services/cards.js.map +1 -1
  26. package/dist/generated/services/cards.ts +3 -0
  27. package/dist/generated/services/checkins.d.ts +2 -0
  28. package/dist/generated/services/checkins.d.ts.map +1 -1
  29. package/dist/generated/services/checkins.js +4 -0
  30. package/dist/generated/services/checkins.js.map +1 -1
  31. package/dist/generated/services/checkins.ts +6 -0
  32. package/dist/generated/services/client-approvals.d.ts +7 -0
  33. package/dist/generated/services/client-approvals.d.ts.map +1 -1
  34. package/dist/generated/services/client-approvals.js +8 -1
  35. package/dist/generated/services/client-approvals.js.map +1 -1
  36. package/dist/generated/services/client-approvals.ts +10 -0
  37. package/dist/generated/services/client-correspondences.d.ts +7 -0
  38. package/dist/generated/services/client-correspondences.d.ts.map +1 -1
  39. package/dist/generated/services/client-correspondences.js +8 -1
  40. package/dist/generated/services/client-correspondences.js.map +1 -1
  41. package/dist/generated/services/client-correspondences.ts +10 -0
  42. package/dist/generated/services/forwards.d.ts +7 -0
  43. package/dist/generated/services/forwards.d.ts.map +1 -1
  44. package/dist/generated/services/forwards.js +4 -0
  45. package/dist/generated/services/forwards.js.map +1 -1
  46. package/dist/generated/services/forwards.ts +8 -0
  47. package/dist/generated/services/gauges.d.ts +140 -0
  48. package/dist/generated/services/gauges.d.ts.map +1 -0
  49. package/dist/generated/services/gauges.js +207 -0
  50. package/dist/generated/services/gauges.js.map +1 -0
  51. package/dist/generated/services/gauges.ts +298 -0
  52. package/dist/generated/services/hill-charts.d.ts +47 -0
  53. package/dist/generated/services/hill-charts.d.ts.map +1 -0
  54. package/dist/generated/services/hill-charts.js +70 -0
  55. package/dist/generated/services/hill-charts.js.map +1 -0
  56. package/dist/generated/services/hill-charts.ts +99 -0
  57. package/dist/generated/services/index.d.ts +5 -0
  58. package/dist/generated/services/index.d.ts.map +1 -1
  59. package/dist/generated/services/index.js +5 -0
  60. package/dist/generated/services/index.js.map +1 -1
  61. package/dist/generated/services/index.ts +5 -0
  62. package/dist/generated/services/my-assignments.d.ts +52 -0
  63. package/dist/generated/services/my-assignments.d.ts.map +1 -0
  64. package/dist/generated/services/my-assignments.js +74 -0
  65. package/dist/generated/services/my-assignments.js.map +1 -0
  66. package/dist/generated/services/my-assignments.ts +109 -0
  67. package/dist/generated/services/my-notifications.d.ts +50 -0
  68. package/dist/generated/services/my-notifications.d.ts.map +1 -0
  69. package/dist/generated/services/my-notifications.js +65 -0
  70. package/dist/generated/services/my-notifications.js.map +1 -0
  71. package/dist/generated/services/my-notifications.ts +100 -0
  72. package/dist/generated/services/people.d.ts +105 -0
  73. package/dist/generated/services/people.d.ts.map +1 -1
  74. package/dist/generated/services/people.js +156 -0
  75. package/dist/generated/services/people.js.map +1 -1
  76. package/dist/generated/services/people.ts +225 -0
  77. package/dist/index.d.ts +5 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +9 -0
  80. package/dist/index.js.map +1 -1
  81. package/dist/services/base.d.ts +19 -8
  82. package/dist/services/base.d.ts.map +1 -1
  83. package/dist/services/base.js +160 -1
  84. package/dist/services/base.js.map +1 -1
  85. package/package.json +2 -2
  86. package/src/generated/metadata.json +319 -1
  87. package/src/generated/openapi-stripped.json +7417 -4240
  88. package/src/generated/path-mapping.ts +27 -3
  89. package/src/generated/schema.d.ts +2272 -148
  90. package/src/generated/services/account.ts +144 -0
  91. package/src/generated/services/campfires.ts +16 -0
  92. package/src/generated/services/cards.ts +3 -0
  93. package/src/generated/services/checkins.ts +6 -0
  94. package/src/generated/services/client-approvals.ts +10 -0
  95. package/src/generated/services/client-correspondences.ts +10 -0
  96. package/src/generated/services/forwards.ts +8 -0
  97. package/src/generated/services/gauges.ts +298 -0
  98. package/src/generated/services/hill-charts.ts +99 -0
  99. package/src/generated/services/index.ts +5 -0
  100. package/src/generated/services/my-assignments.ts +109 -0
  101. package/src/generated/services/my-notifications.ts +100 -0
  102. package/src/generated/services/people.ts +225 -0
@@ -22,6 +22,9 @@
22
22
  * ```
23
23
  */
24
24
  import { BasecampError, errorFromResponse } from "../errors.js";
25
+ import { createRequire } from "node:module";
26
+ const require = createRequire(import.meta.url);
27
+ const metadata = require("../generated/metadata.json");
25
28
  import { ListResult, parseTotalCount } from "../pagination.js";
26
29
  import { parseNextLink, resolveURL, isSameOrigin } from "../pagination-utils.js";
27
30
  /** Default maximum pages to follow as a safety cap against infinite loops. */
@@ -33,6 +36,51 @@ const DEFAULT_MAX_PAGES = 10_000;
33
36
  * for making API requests, handling errors, and integrating
34
37
  * with the hooks system.
35
38
  */
39
+ /**
40
+ * Normalizes Person-shaped objects in API responses.
41
+ *
42
+ * The BC3 API conflates real Person records (numeric id) with system actors
43
+ * like LocalPerson (symbolic id: "basecamp", "campfire"). This function
44
+ * walks a response tree and, for any object with a `personable_type` field
45
+ * whose `id` is a string:
46
+ * - Numeric strings in safe integer range: coerced to number, no system_label
47
+ * - Non-numeric sentinels (e.g. "basecamp"): id becomes 0, original preserved as system_label
48
+ * - Numeric overflow (beyond Number.MAX_SAFE_INTEGER): id becomes 0, original preserved as system_label
49
+ */
50
+ function normalizePersonIds(obj) {
51
+ if (!obj || typeof obj !== "object")
52
+ return;
53
+ if (Array.isArray(obj)) {
54
+ for (const item of obj)
55
+ normalizePersonIds(item);
56
+ return;
57
+ }
58
+ const rec = obj;
59
+ if ("personable_type" in rec && typeof rec.id === "string") {
60
+ const idStr = rec.id;
61
+ // Strict integer check: only bare digits (with optional leading minus).
62
+ // Rejects "1e3", "123.0", "0x1F", "123abc" which Number() would accept.
63
+ if (/^-?\d+$/.test(idStr) && Number.isSafeInteger(Number(idStr))) {
64
+ // Numeric string in safe integer range (e.g. "12345") — coerce to number
65
+ rec.id = Number(idStr);
66
+ }
67
+ else if (/^-?\d+$/.test(idStr)) {
68
+ // Pure digits but overflows JS safe integer range — preserve as
69
+ // system_label since we can't represent it losslessly as a number
70
+ rec.system_label = idStr;
71
+ rec.id = 0;
72
+ }
73
+ else {
74
+ // Non-numeric sentinel (e.g. "basecamp" for LocalPerson)
75
+ rec.system_label = idStr;
76
+ rec.id = 0;
77
+ }
78
+ }
79
+ for (const val of Object.values(rec)) {
80
+ if (typeof val === "object" && val !== null)
81
+ normalizePersonIds(val);
82
+ }
83
+ }
36
84
  export class BaseService {
37
85
  /** The underlying openapi-fetch client */
38
86
  client;
@@ -52,11 +100,117 @@ export class BaseService {
52
100
  fetchPage;
53
101
  /** Maximum pages to follow before stopping (safety cap). */
54
102
  maxPages;
55
- constructor(client, hooks, fetchPage, maxPages) {
103
+ /** Base URL for building multipart upload URLs. */
104
+ baseUrl;
105
+ /**
106
+ * Authenticated fetch for multipart uploads and other raw requests.
107
+ * Provided by the client factory with Bearer token and User-Agent.
108
+ */
109
+ authenticatedFetch;
110
+ constructor(client, hooks, fetchPage, maxPages, authenticatedFetch, baseUrl) {
56
111
  this.client = client;
57
112
  this.hooks = hooks;
58
113
  this.fetchPage = fetchPage ?? ((url) => fetch(url, { headers: { Accept: "application/json" } }));
59
114
  this.maxPages = maxPages ?? DEFAULT_MAX_PAGES;
115
+ this.authenticatedFetch = authenticatedFetch ?? ((url, init) => fetch(url, init));
116
+ this.baseUrl = baseUrl ?? "";
117
+ }
118
+ /**
119
+ * Uploads a file as multipart/form-data with hooks integration.
120
+ *
121
+ * @param info - Operation metadata for hooks
122
+ * @param url - The full API URL
123
+ * @param method - HTTP method (PUT, POST)
124
+ * @param file - File or Blob to upload
125
+ * @param fieldName - The form field name
126
+ * @param filename - Display name for the uploaded file
127
+ */
128
+ async requestMultipartUpload(info, url, method, file, fieldName, filename) {
129
+ const start = performance.now();
130
+ let result = { durationMs: 0 };
131
+ try {
132
+ this.hooks?.onOperationStart?.(info);
133
+ }
134
+ catch { /* hooks should not interrupt */ }
135
+ try {
136
+ const formData = new FormData();
137
+ formData.append(fieldName, file, filename ?? (file instanceof File ? file.name : fieldName));
138
+ // Look up retry config from operation metadata
139
+ const opMeta = metadata.operations?.[info.operation];
140
+ const retryConfig = opMeta?.retry ?? { maxAttempts: 1, baseDelayMs: 1000, backoff: "exponential", retryOn: [] };
141
+ const maxAttempts = retryConfig.maxAttempts ?? 1;
142
+ const retryOn = retryConfig.retryOn ?? [];
143
+ let response;
144
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
145
+ const reqInfo = { method, url, attempt: attempt + 1 };
146
+ try {
147
+ this.hooks?.onRequestStart?.(reqInfo);
148
+ }
149
+ catch { /* hooks should not interrupt */ }
150
+ const reqStart = performance.now();
151
+ try {
152
+ response = await this.authenticatedFetch(url, {
153
+ method,
154
+ body: formData,
155
+ });
156
+ }
157
+ catch (fetchErr) {
158
+ const durationMs = Math.round(performance.now() - reqStart);
159
+ const error = fetchErr instanceof Error ? fetchErr : new Error(String(fetchErr));
160
+ try {
161
+ this.hooks?.onRequestEnd?.(reqInfo, { statusCode: 0, durationMs, fromCache: false, error });
162
+ }
163
+ catch { /* */ }
164
+ throw error;
165
+ }
166
+ const reqDurationMs = Math.round(performance.now() - reqStart);
167
+ try {
168
+ this.hooks?.onRequestEnd?.(reqInfo, { statusCode: response.status, durationMs: reqDurationMs, fromCache: false });
169
+ }
170
+ catch { /* */ }
171
+ if (!retryOn.includes(response.status) || attempt >= maxAttempts - 1) {
172
+ break;
173
+ }
174
+ // Drain response body before retry to free resources and enable connection reuse
175
+ response.body?.cancel();
176
+ // Backoff before retry
177
+ const retryAfter = response.status === 429
178
+ ? parseInt(response.headers.get("Retry-After") ?? "", 10) * 1000
179
+ : NaN;
180
+ const delay = !isNaN(retryAfter) && retryAfter >= 0
181
+ ? retryAfter
182
+ : (retryConfig.baseDelayMs ?? 1000) * Math.pow(2, attempt);
183
+ try {
184
+ const retryError = new Error(`${response.status} ${response.statusText}`);
185
+ this.hooks?.onRetry?.({ method, url, attempt: attempt + 1 }, attempt + 1, retryError, delay);
186
+ }
187
+ catch { /* hooks should not interrupt */ }
188
+ await new Promise((r) => setTimeout(r, delay));
189
+ }
190
+ result.durationMs = Math.round(performance.now() - start);
191
+ if (!response.ok) {
192
+ const basecampError = await errorFromResponse(response);
193
+ result.error = basecampError;
194
+ throw basecampError;
195
+ }
196
+ // Drain body for 204 No Content
197
+ if (response.status === 204) {
198
+ response.body?.cancel();
199
+ }
200
+ }
201
+ catch (err) {
202
+ result.durationMs = Math.round(performance.now() - start);
203
+ if (err instanceof BasecampError || err instanceof Error) {
204
+ result.error = err;
205
+ }
206
+ throw err;
207
+ }
208
+ finally {
209
+ try {
210
+ this.hooks?.onOperationEnd?.(info, result);
211
+ }
212
+ catch { /* hooks should not interrupt */ }
213
+ }
60
214
  }
61
215
  /**
62
216
  * Executes an API request with error handling and hooks integration.
@@ -89,6 +243,7 @@ export class BaseService {
89
243
  if (response.status === 204 || data === undefined) {
90
244
  return undefined;
91
245
  }
246
+ normalizePersonIds(data);
92
247
  return data;
93
248
  }
94
249
  catch (err) {
@@ -143,6 +298,7 @@ export class BaseService {
143
298
  throw basecampError;
144
299
  }
145
300
  const firstPageItems = data ?? [];
301
+ normalizePersonIds(firstPageItems);
146
302
  const totalCount = parseTotalCount(response);
147
303
  const maxItems = paginationOpts?.maxItems;
148
304
  // If maxItems is set and first page satisfies it, return early
@@ -204,6 +360,7 @@ export class BaseService {
204
360
  throw basecampError;
205
361
  }
206
362
  const firstPageData = (data ?? {});
363
+ normalizePersonIds(firstPageData);
207
364
  const totalCount = parseTotalCount(response);
208
365
  // Extract wrapper fields (everything except the paginated key)
209
366
  const wrapper = {};
@@ -268,6 +425,7 @@ export class BaseService {
268
425
  throw await errorFromResponse(response, response.headers.get("X-Request-Id") ?? undefined);
269
426
  }
270
427
  const pageItems = (await response.json());
428
+ normalizePersonIds(pageItems);
271
429
  allItems.push(...pageItems);
272
430
  // Check maxItems cap
273
431
  if (maxItems && maxItems > 0 && allItems.length >= maxItems) {
@@ -300,6 +458,7 @@ export class BaseService {
300
458
  throw await errorFromResponse(response, response.headers.get("X-Request-Id") ?? undefined);
301
459
  }
302
460
  const pageData = (await response.json());
461
+ normalizePersonIds(pageData);
303
462
  const pageItems = pageData[key] ?? [];
304
463
  allItems.push(...pageItems);
305
464
  if (maxItems && maxItems > 0 && allItems.length >= maxItems) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/services/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/services/base.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@37signals/basecamp",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "TypeScript SDK for the Basecamp API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,7 +20,7 @@
20
20
  "src/generated"
21
21
  ],
22
22
  "scripts": {
23
- "generate": "tsx scripts/strip-account-id.ts ../openapi.json src/generated/openapi-stripped.json && openapi-typescript src/generated/openapi-stripped.json -o src/generated/schema.d.ts && tsx scripts/extract-metadata.ts src/generated/openapi-stripped.json > src/generated/metadata.json && tsx scripts/generate-path-mapping.ts",
23
+ "generate": "tsx scripts/strip-account-id.ts ../openapi.json src/generated/openapi-stripped.json && openapi-typescript src/generated/openapi-stripped.json -o src/generated/schema.d.ts && tsx scripts/patch-flexible-ids.ts && tsx scripts/extract-metadata.ts src/generated/openapi-stripped.json > src/generated/metadata.json && tsx scripts/generate-path-mapping.ts",
24
24
  "build": "tsc",
25
25
  "postbuild": "node -e \"fs=require('fs');fs.cpSync('src/generated','dist/generated',{recursive:true});\"",
26
26
  "prepublishOnly": "npm run build",
@@ -1,8 +1,61 @@
1
1
  {
2
2
  "$schema": "https://basecamp.com/schemas/sdk-metadata.json",
3
3
  "version": "1.0.0",
4
- "generated": "2026-03-16T01:24:20.293Z",
4
+ "generated": "2026-03-25T06:39:18.495Z",
5
5
  "operations": {
6
+ "GetAccount": {
7
+ "retry": {
8
+ "maxAttempts": 3,
9
+ "baseDelayMs": 1000,
10
+ "backoff": "exponential",
11
+ "retryOn": [
12
+ 429,
13
+ 503
14
+ ]
15
+ }
16
+ },
17
+ "UpdateAccountLogo": {
18
+ "retry": {
19
+ "maxAttempts": 2,
20
+ "baseDelayMs": 1000,
21
+ "backoff": "exponential",
22
+ "retryOn": [
23
+ 429,
24
+ 503
25
+ ]
26
+ },
27
+ "idempotent": {
28
+ "natural": true
29
+ }
30
+ },
31
+ "RemoveAccountLogo": {
32
+ "retry": {
33
+ "maxAttempts": 2,
34
+ "baseDelayMs": 1000,
35
+ "backoff": "exponential",
36
+ "retryOn": [
37
+ 429,
38
+ 503
39
+ ]
40
+ },
41
+ "idempotent": {
42
+ "natural": true
43
+ }
44
+ },
45
+ "UpdateAccountName": {
46
+ "retry": {
47
+ "maxAttempts": 2,
48
+ "baseDelayMs": 1000,
49
+ "backoff": "exponential",
50
+ "retryOn": [
51
+ 429,
52
+ 503
53
+ ]
54
+ },
55
+ "idempotent": {
56
+ "natural": true
57
+ }
58
+ },
6
59
  "CreateAttachment": {
7
60
  "retry": {
8
61
  "maxAttempts": 3,
@@ -750,6 +803,45 @@
750
803
  "natural": true
751
804
  }
752
805
  },
806
+ "GetGaugeNeedle": {
807
+ "retry": {
808
+ "maxAttempts": 3,
809
+ "baseDelayMs": 1000,
810
+ "backoff": "exponential",
811
+ "retryOn": [
812
+ 429,
813
+ 503
814
+ ]
815
+ }
816
+ },
817
+ "UpdateGaugeNeedle": {
818
+ "retry": {
819
+ "maxAttempts": 2,
820
+ "baseDelayMs": 1000,
821
+ "backoff": "exponential",
822
+ "retryOn": [
823
+ 429,
824
+ 503
825
+ ]
826
+ },
827
+ "idempotent": {
828
+ "natural": true
829
+ }
830
+ },
831
+ "DestroyGaugeNeedle": {
832
+ "retry": {
833
+ "maxAttempts": 2,
834
+ "baseDelayMs": 1000,
835
+ "backoff": "exponential",
836
+ "retryOn": [
837
+ 429,
838
+ 503
839
+ ]
840
+ },
841
+ "idempotent": {
842
+ "natural": true
843
+ }
844
+ },
753
845
  "GetForward": {
754
846
  "retry": {
755
847
  "maxAttempts": 3,
@@ -826,6 +918,17 @@
826
918
  "maxPageSize": 50
827
919
  }
828
920
  },
921
+ "ListLineupMarkers": {
922
+ "retry": {
923
+ "maxAttempts": 3,
924
+ "baseDelayMs": 1000,
925
+ "backoff": "exponential",
926
+ "retryOn": [
927
+ 429,
928
+ 503
929
+ ]
930
+ }
931
+ },
829
932
  "CreateLineupMarker": {
830
933
  "retry": {
831
934
  "maxAttempts": 2,
@@ -928,6 +1031,64 @@
928
1031
  "natural": true
929
1032
  }
930
1033
  },
1034
+ "GetMyAssignments": {
1035
+ "retry": {
1036
+ "maxAttempts": 3,
1037
+ "baseDelayMs": 1000,
1038
+ "backoff": "exponential",
1039
+ "retryOn": [
1040
+ 429,
1041
+ 503
1042
+ ]
1043
+ }
1044
+ },
1045
+ "GetMyCompletedAssignments": {
1046
+ "retry": {
1047
+ "maxAttempts": 3,
1048
+ "baseDelayMs": 1000,
1049
+ "backoff": "exponential",
1050
+ "retryOn": [
1051
+ 429,
1052
+ 503
1053
+ ]
1054
+ }
1055
+ },
1056
+ "GetMyDueAssignments": {
1057
+ "retry": {
1058
+ "maxAttempts": 3,
1059
+ "baseDelayMs": 1000,
1060
+ "backoff": "exponential",
1061
+ "retryOn": [
1062
+ 429,
1063
+ 503
1064
+ ]
1065
+ }
1066
+ },
1067
+ "GetMyPreferences": {
1068
+ "retry": {
1069
+ "maxAttempts": 3,
1070
+ "baseDelayMs": 1000,
1071
+ "backoff": "exponential",
1072
+ "retryOn": [
1073
+ 429,
1074
+ 503
1075
+ ]
1076
+ }
1077
+ },
1078
+ "UpdateMyPreferences": {
1079
+ "retry": {
1080
+ "maxAttempts": 2,
1081
+ "baseDelayMs": 1000,
1082
+ "backoff": "exponential",
1083
+ "retryOn": [
1084
+ 429,
1085
+ 503
1086
+ ]
1087
+ },
1088
+ "idempotent": {
1089
+ "natural": true
1090
+ }
1091
+ },
931
1092
  "GetMyProfile": {
932
1093
  "retry": {
933
1094
  "maxAttempts": 3,
@@ -939,6 +1100,20 @@
939
1100
  ]
940
1101
  }
941
1102
  },
1103
+ "UpdateMyProfile": {
1104
+ "retry": {
1105
+ "maxAttempts": 3,
1106
+ "baseDelayMs": 1000,
1107
+ "backoff": "exponential",
1108
+ "retryOn": [
1109
+ 429,
1110
+ 503
1111
+ ]
1112
+ },
1113
+ "idempotent": {
1114
+ "natural": true
1115
+ }
1116
+ },
942
1117
  "GetQuestionReminders": {
943
1118
  "retry": {
944
1119
  "maxAttempts": 3,
@@ -954,6 +1129,31 @@
954
1129
  "maxPageSize": 50
955
1130
  }
956
1131
  },
1132
+ "GetMyNotifications": {
1133
+ "retry": {
1134
+ "maxAttempts": 3,
1135
+ "baseDelayMs": 1000,
1136
+ "backoff": "exponential",
1137
+ "retryOn": [
1138
+ 429,
1139
+ 503
1140
+ ]
1141
+ }
1142
+ },
1143
+ "MarkAsRead": {
1144
+ "retry": {
1145
+ "maxAttempts": 2,
1146
+ "baseDelayMs": 1000,
1147
+ "backoff": "exponential",
1148
+ "retryOn": [
1149
+ 429,
1150
+ 503
1151
+ ]
1152
+ },
1153
+ "idempotent": {
1154
+ "natural": true
1155
+ }
1156
+ },
957
1157
  "ListPeople": {
958
1158
  "retry": {
959
1159
  "maxAttempts": 3,
@@ -981,6 +1181,42 @@
981
1181
  ]
982
1182
  }
983
1183
  },
1184
+ "GetOutOfOffice": {
1185
+ "retry": {
1186
+ "maxAttempts": 3,
1187
+ "baseDelayMs": 1000,
1188
+ "backoff": "exponential",
1189
+ "retryOn": [
1190
+ 429,
1191
+ 503
1192
+ ]
1193
+ }
1194
+ },
1195
+ "EnableOutOfOffice": {
1196
+ "retry": {
1197
+ "maxAttempts": 2,
1198
+ "baseDelayMs": 1000,
1199
+ "backoff": "exponential",
1200
+ "retryOn": [
1201
+ 429,
1202
+ 503
1203
+ ]
1204
+ }
1205
+ },
1206
+ "DisableOutOfOffice": {
1207
+ "retry": {
1208
+ "maxAttempts": 2,
1209
+ "baseDelayMs": 1000,
1210
+ "backoff": "exponential",
1211
+ "retryOn": [
1212
+ 429,
1213
+ 503
1214
+ ]
1215
+ },
1216
+ "idempotent": {
1217
+ "natural": true
1218
+ }
1219
+ },
984
1220
  "ListProjects": {
985
1221
  "retry": {
986
1222
  "maxAttempts": 3,
@@ -1063,6 +1299,47 @@
1063
1299
  "natural": true
1064
1300
  }
1065
1301
  },
1302
+ "ToggleGauge": {
1303
+ "retry": {
1304
+ "maxAttempts": 2,
1305
+ "baseDelayMs": 1000,
1306
+ "backoff": "exponential",
1307
+ "retryOn": [
1308
+ 429,
1309
+ 503
1310
+ ]
1311
+ },
1312
+ "idempotent": {
1313
+ "natural": true
1314
+ }
1315
+ },
1316
+ "ListGaugeNeedles": {
1317
+ "retry": {
1318
+ "maxAttempts": 3,
1319
+ "baseDelayMs": 1000,
1320
+ "backoff": "exponential",
1321
+ "retryOn": [
1322
+ 429,
1323
+ 503
1324
+ ]
1325
+ },
1326
+ "pagination": {
1327
+ "style": "link",
1328
+ "totalCountHeader": "X-Total-Count",
1329
+ "maxPageSize": 50
1330
+ }
1331
+ },
1332
+ "CreateGaugeNeedle": {
1333
+ "retry": {
1334
+ "maxAttempts": 2,
1335
+ "baseDelayMs": 1000,
1336
+ "backoff": "exponential",
1337
+ "retryOn": [
1338
+ 429,
1339
+ 503
1340
+ ]
1341
+ }
1342
+ },
1066
1343
  "ListProjectPeople": {
1067
1344
  "retry": {
1068
1345
  "maxAttempts": 3,
@@ -1617,6 +1894,22 @@
1617
1894
  "natural": true
1618
1895
  }
1619
1896
  },
1897
+ "ListGauges": {
1898
+ "retry": {
1899
+ "maxAttempts": 3,
1900
+ "baseDelayMs": 1000,
1901
+ "backoff": "exponential",
1902
+ "retryOn": [
1903
+ 429,
1904
+ 503
1905
+ ]
1906
+ },
1907
+ "pagination": {
1908
+ "style": "link",
1909
+ "totalCountHeader": "X-Total-Count",
1910
+ "maxPageSize": 50
1911
+ }
1912
+ },
1620
1913
  "GetProgressReport": {
1621
1914
  "retry": {
1622
1915
  "maxAttempts": 3,
@@ -2118,6 +2411,31 @@
2118
2411
  ]
2119
2412
  }
2120
2413
  },
2414
+ "GetHillChart": {
2415
+ "retry": {
2416
+ "maxAttempts": 3,
2417
+ "baseDelayMs": 1000,
2418
+ "backoff": "exponential",
2419
+ "retryOn": [
2420
+ 429,
2421
+ 503
2422
+ ]
2423
+ }
2424
+ },
2425
+ "UpdateHillChartSettings": {
2426
+ "retry": {
2427
+ "maxAttempts": 3,
2428
+ "baseDelayMs": 1000,
2429
+ "backoff": "exponential",
2430
+ "retryOn": [
2431
+ 429,
2432
+ 503
2433
+ ]
2434
+ },
2435
+ "idempotent": {
2436
+ "natural": true
2437
+ }
2438
+ },
2121
2439
  "ListTodolists": {
2122
2440
  "retry": {
2123
2441
  "maxAttempts": 3,