mcp-google-multi 5.4.1-alpha.2 → 6.0.0-alpha.2

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 (116) hide show
  1. package/README.md +21 -16
  2. package/dist/accounts.d.ts +44 -5
  3. package/dist/accounts.js +267 -25
  4. package/dist/auth.d.ts +11 -4
  5. package/dist/auth.js +85 -78
  6. package/dist/client-config.d.ts +90 -0
  7. package/dist/client-config.js +282 -0
  8. package/dist/client.js +10 -4
  9. package/dist/config-file.d.ts +38 -0
  10. package/dist/config-file.js +117 -0
  11. package/dist/discover.js +57 -3
  12. package/dist/doctor.d.ts +86 -0
  13. package/dist/doctor.js +384 -0
  14. package/dist/env-load.d.ts +11 -0
  15. package/dist/env-load.js +52 -0
  16. package/dist/executor.d.ts +2 -0
  17. package/dist/executor.js +2 -1
  18. package/dist/fanout.js +8 -5
  19. package/dist/fs-atomic.d.ts +3 -0
  20. package/dist/fs-atomic.js +123 -0
  21. package/dist/http-config.d.ts +35 -0
  22. package/dist/http-config.js +113 -0
  23. package/dist/http-transport.d.ts +59 -0
  24. package/dist/http-transport.js +269 -0
  25. package/dist/identity.d.ts +24 -0
  26. package/dist/identity.js +19 -0
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.js +199 -18
  29. package/dist/master-key.d.ts +53 -0
  30. package/dist/master-key.js +242 -0
  31. package/dist/mcp-token.d.ts +81 -0
  32. package/dist/mcp-token.js +176 -0
  33. package/dist/migrate-config.d.ts +7 -0
  34. package/dist/migrate-config.js +103 -0
  35. package/dist/migrate-tokens.js +4 -3
  36. package/dist/net-tuning.d.ts +8 -0
  37. package/dist/net-tuning.js +25 -0
  38. package/dist/oauth-as.d.ts +52 -0
  39. package/dist/oauth-as.js +457 -0
  40. package/dist/oauth-consent.d.ts +28 -0
  41. package/dist/oauth-consent.js +109 -0
  42. package/dist/open-url.d.ts +1 -0
  43. package/dist/open-url.js +30 -0
  44. package/dist/reauth-hint.d.ts +2 -0
  45. package/dist/reauth-hint.js +15 -0
  46. package/dist/registry-transfer.d.ts +41 -0
  47. package/dist/registry-transfer.js +219 -0
  48. package/dist/registry.d.ts +27 -1
  49. package/dist/registry.js +117 -6
  50. package/dist/scope-catalog.d.ts +19 -0
  51. package/dist/scope-catalog.js +182 -0
  52. package/dist/scope-observability.d.ts +78 -0
  53. package/dist/scope-observability.js +192 -0
  54. package/dist/services.js +1 -1
  55. package/dist/setup-prompt.d.ts +9 -0
  56. package/dist/setup-prompt.js +59 -0
  57. package/dist/ssrf-guard.d.ts +48 -0
  58. package/dist/ssrf-guard.js +242 -0
  59. package/dist/token-store.js +23 -125
  60. package/dist/tools/_errors.d.ts +8 -2
  61. package/dist/tools/_errors.js +97 -6
  62. package/dist/tools/account-wizard.d.ts +33 -0
  63. package/dist/tools/account-wizard.js +284 -0
  64. package/dist/tools/accounts-tool.d.ts +8 -5
  65. package/dist/tools/accounts-tool.js +38 -15
  66. package/dist/tools/admin.js +2 -2
  67. package/dist/tools/calendar.js +2 -2
  68. package/dist/tools/chat.js +2 -2
  69. package/dist/tools/contacts.d.ts +40 -0
  70. package/dist/tools/contacts.js +135 -2
  71. package/dist/tools/docs.d.ts +3 -0
  72. package/dist/tools/docs.js +60 -9
  73. package/dist/tools/drive.d.ts +3 -0
  74. package/dist/tools/drive.js +60 -8
  75. package/dist/tools/forms.js +4 -2
  76. package/dist/tools/generated/_shared.d.ts +1 -3
  77. package/dist/tools/generated/_shared.js +3 -3
  78. package/dist/tools/generated/admin.js +175 -132
  79. package/dist/tools/generated/appsmarket.js +6 -2
  80. package/dist/tools/generated/calendar.js +45 -27
  81. package/dist/tools/generated/chat.js +81 -47
  82. package/dist/tools/generated/classroom.js +131 -104
  83. package/dist/tools/generated/cloudidentity.js +73 -61
  84. package/dist/tools/generated/cloudsearch.js +59 -49
  85. package/dist/tools/generated/contacts.js +22 -14
  86. package/dist/tools/generated/drive.js +51 -35
  87. package/dist/tools/generated/driveactivity.js +5 -1
  88. package/dist/tools/generated/drivelabels.js +30 -25
  89. package/dist/tools/generated/forms.js +7 -3
  90. package/dist/tools/generated/gmail.js +73 -58
  91. package/dist/tools/generated/groupsmigration.js +5 -1
  92. package/dist/tools/generated/groupssettings.js +7 -3
  93. package/dist/tools/generated/keep.js +12 -7
  94. package/dist/tools/generated/licensing.js +11 -7
  95. package/dist/tools/generated/meet.js +20 -13
  96. package/dist/tools/generated/postmaster.js +8 -4
  97. package/dist/tools/generated/reseller.js +22 -17
  98. package/dist/tools/generated/script.js +26 -16
  99. package/dist/tools/generated/sheets.js +11 -7
  100. package/dist/tools/generated/tasks.js +6 -2
  101. package/dist/tools/generated/vault.js +38 -33
  102. package/dist/tools/generated/workspaceevents.js +12 -7
  103. package/dist/tools/gmail-mime.d.ts +38 -8
  104. package/dist/tools/gmail-mime.js +75 -71
  105. package/dist/tools/gmail.d.ts +31 -0
  106. package/dist/tools/gmail.js +483 -99
  107. package/dist/tools/google-api.js +7 -4
  108. package/dist/tools/meet.js +2 -2
  109. package/dist/tools/searchconsole.js +2 -2
  110. package/dist/tools/sheets.js +6 -2
  111. package/dist/tools/slides.js +4 -2
  112. package/dist/tools/tasks.js +2 -2
  113. package/dist/types.d.ts +1 -1
  114. package/dist/write-control.d.ts +24 -1
  115. package/dist/write-control.js +26 -1
  116. package/package.json +26 -7
@@ -3,11 +3,16 @@ import { z } from 'zod';
3
3
  import { coerceBoolean, coerceJson } from '../_coerce.js';
4
4
  import { accountField, registerGeneratedTool } from './_shared.js';
5
5
  export function registerDrivelabelsGeneratedTools(registry) {
6
+ // Interned method scope sets (shared across tools; see scope-observability).
7
+ const S_drivelabels_v2 = [
8
+ ["https://www.googleapis.com/auth/drive.admin.labels", "https://www.googleapis.com/auth/drive.labels"],
9
+ ["https://www.googleapis.com/auth/drive.admin.labels", "https://www.googleapis.com/auth/drive.admin.labels.readonly", "https://www.googleapis.com/auth/drive.labels", "https://www.googleapis.com/auth/drive.labels.readonly"],
10
+ ];
6
11
  registerGeneratedTool(registry, {
7
12
  name: "drivelabels_labels_create",
8
13
  cud: "create",
9
14
  description: "Creates a label. For more information, see [Create and publish a label](https://developers.google.com/workspace/drive/labels/guides/create-label).",
10
- method: { id: "drivelabels.labels.create", httpMethod: "POST", path: "v2/labels", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: [] },
15
+ method: { id: "drivelabels.labels.create", httpMethod: "POST", path: "v2/labels", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: [], scopes: S_drivelabels_v2[0] },
11
16
  params: [{ "field": "languageCode", "api": "languageCode", "location": "query" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
12
17
  hasBody: true,
13
18
  shape: {
@@ -22,7 +27,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
22
27
  name: "drivelabels_labels_delete",
23
28
  cud: "delete",
24
29
  description: "Permanently deletes a label and related metadata on Drive items. For more information, see [Disable, enable, and delete a label](https://developers.google.com/w",
25
- method: { id: "drivelabels.labels.delete", httpMethod: "DELETE", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
30
+ method: { id: "drivelabels.labels.delete", httpMethod: "DELETE", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
26
31
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "writeControl.requiredRevisionId", "api": "writeControl.requiredRevisionId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
27
32
  hasBody: false,
28
33
  shape: {
@@ -37,7 +42,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
37
42
  name: "drivelabels_labels_delta",
38
43
  cud: "create",
39
44
  description: "Updates a single label by applying a set of update requests resulting in a new draft revision. For more information, see [Update a label](https://developers.goo",
40
- method: { id: "drivelabels.labels.delta", httpMethod: "POST", path: "v2/{+name}:delta", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
45
+ method: { id: "drivelabels.labels.delta", httpMethod: "POST", path: "v2/{+name}:delta", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
41
46
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
42
47
  hasBody: true,
43
48
  shape: {
@@ -51,7 +56,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
51
56
  name: "drivelabels_labels_disable",
52
57
  cud: "create",
53
58
  description: "Disable a published label. For more information, see [Disable, enable, and delete a label](https://developers.google.com/workspace/drive/labels/guides/disable-d",
54
- method: { id: "drivelabels.labels.disable", httpMethod: "POST", path: "v2/{+name}:disable", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
59
+ method: { id: "drivelabels.labels.disable", httpMethod: "POST", path: "v2/{+name}:disable", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
55
60
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
56
61
  hasBody: true,
57
62
  shape: {
@@ -65,7 +70,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
65
70
  name: "drivelabels_labels_enable",
66
71
  cud: "create",
67
72
  description: "Enable a disabled label and restore it to its published state. For more information, see [Disable, enable, and delete a label](https://developers.google.com/wor",
68
- method: { id: "drivelabels.labels.enable", httpMethod: "POST", path: "v2/{+name}:enable", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
73
+ method: { id: "drivelabels.labels.enable", httpMethod: "POST", path: "v2/{+name}:enable", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
69
74
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
70
75
  hasBody: true,
71
76
  shape: {
@@ -79,7 +84,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
79
84
  name: "drivelabels_labels_get",
80
85
  cud: "read",
81
86
  description: "Get a label by its resource name. For more information, see [Search for labels](https://developers.google.com/workspace/drive/labels/guides/search-label). Resou",
82
- method: { id: "drivelabels.labels.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
87
+ method: { id: "drivelabels.labels.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[1] },
83
88
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "languageCode", "api": "languageCode", "location": "query" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "view", "api": "view", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
84
89
  hasBody: false,
85
90
  shape: {
@@ -95,7 +100,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
95
100
  name: "drivelabels_labels_list",
96
101
  cud: "read",
97
102
  description: "List labels. For more information, see [Search for labels](https://developers.google.com/workspace/drive/labels/guides/search-label).",
98
- method: { id: "drivelabels.labels.list", httpMethod: "GET", path: "v2/labels", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: [] },
103
+ method: { id: "drivelabels.labels.list", httpMethod: "GET", path: "v2/labels", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: [], scopes: S_drivelabels_v2[1] },
99
104
  params: [{ "field": "customer", "api": "customer", "location": "query" }, { "field": "languageCode", "api": "languageCode", "location": "query" }, { "field": "minimumRole", "api": "minimumRole", "location": "query" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "publishedOnly", "api": "publishedOnly", "location": "query" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "view", "api": "view", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
100
105
  hasBody: false,
101
106
  shape: {
@@ -115,7 +120,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
115
120
  name: "drivelabels_labels_locks_list",
116
121
  cud: "read",
117
122
  description: "Lists the label locks on a label.",
118
- method: { id: "drivelabels.labels.locks.list", httpMethod: "GET", path: "v2/{+parent}/locks", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
123
+ method: { id: "drivelabels.labels.locks.list", httpMethod: "GET", path: "v2/{+parent}/locks", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[1] },
119
124
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
120
125
  hasBody: false,
121
126
  shape: {
@@ -130,7 +135,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
130
135
  name: "drivelabels_labels_permissions_batch_delete",
131
136
  cud: "delete",
132
137
  description: "Deletes label permissions. Permissions affect the label resource as a whole, aren't revisioned, and don't require publishing.",
133
- method: { id: "drivelabels.labels.permissions.batchDelete", httpMethod: "POST", path: "v2/{+parent}/permissions:batchDelete", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
138
+ method: { id: "drivelabels.labels.permissions.batchDelete", httpMethod: "POST", path: "v2/{+parent}/permissions:batchDelete", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
134
139
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
135
140
  hasBody: true,
136
141
  shape: {
@@ -144,7 +149,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
144
149
  name: "drivelabels_labels_permissions_batch_update",
145
150
  cud: "create",
146
151
  description: "Updates label permissions. If a permission for the indicated principal doesn't exist, a label permission is created, otherwise the existing permission is update",
147
- method: { id: "drivelabels.labels.permissions.batchUpdate", httpMethod: "POST", path: "v2/{+parent}/permissions:batchUpdate", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
152
+ method: { id: "drivelabels.labels.permissions.batchUpdate", httpMethod: "POST", path: "v2/{+parent}/permissions:batchUpdate", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
148
153
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
149
154
  hasBody: true,
150
155
  shape: {
@@ -158,7 +163,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
158
163
  name: "drivelabels_labels_permissions_create",
159
164
  cud: "create",
160
165
  description: "Updates a label's permissions. If a permission for the indicated principal doesn't exist, a label permission is created, otherwise the existing permission is up",
161
- method: { id: "drivelabels.labels.permissions.create", httpMethod: "POST", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
166
+ method: { id: "drivelabels.labels.permissions.create", httpMethod: "POST", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
162
167
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
163
168
  hasBody: true,
164
169
  shape: {
@@ -173,7 +178,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
173
178
  name: "drivelabels_labels_permissions_delete",
174
179
  cud: "delete",
175
180
  description: "Deletes a label's permission. Permissions affect the label resource as a whole, aren't revisioned, and don't require publishing.",
176
- method: { id: "drivelabels.labels.permissions.delete", httpMethod: "DELETE", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
181
+ method: { id: "drivelabels.labels.permissions.delete", httpMethod: "DELETE", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
177
182
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
178
183
  hasBody: false,
179
184
  shape: {
@@ -187,7 +192,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
187
192
  name: "drivelabels_labels_permissions_list",
188
193
  cud: "read",
189
194
  description: "Lists a label's permissions.",
190
- method: { id: "drivelabels.labels.permissions.list", httpMethod: "GET", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
195
+ method: { id: "drivelabels.labels.permissions.list", httpMethod: "GET", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[1] },
191
196
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
192
197
  hasBody: false,
193
198
  shape: {
@@ -203,7 +208,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
203
208
  name: "drivelabels_labels_publish",
204
209
  cud: "update",
205
210
  description: "Publish all draft changes to the label. Once published, the label may not return to its draft state. For more information, see [Create and publish a label](http",
206
- method: { id: "drivelabels.labels.publish", httpMethod: "POST", path: "v2/{+name}:publish", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
211
+ method: { id: "drivelabels.labels.publish", httpMethod: "POST", path: "v2/{+name}:publish", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
207
212
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
208
213
  hasBody: true,
209
214
  shape: {
@@ -217,7 +222,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
217
222
  name: "drivelabels_labels_revisions_locks_list",
218
223
  cud: "read",
219
224
  description: "Lists the label locks on a label.",
220
- method: { id: "drivelabels.labels.revisions.locks.list", httpMethod: "GET", path: "v2/{+parent}/locks", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
225
+ method: { id: "drivelabels.labels.revisions.locks.list", httpMethod: "GET", path: "v2/{+parent}/locks", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[1] },
221
226
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
222
227
  hasBody: false,
223
228
  shape: {
@@ -232,7 +237,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
232
237
  name: "drivelabels_labels_revisions_permissions_batch_delete",
233
238
  cud: "delete",
234
239
  description: "Deletes label permissions. Permissions affect the label resource as a whole, aren't revisioned, and don't require publishing.",
235
- method: { id: "drivelabels.labels.revisions.permissions.batchDelete", httpMethod: "POST", path: "v2/{+parent}/permissions:batchDelete", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
240
+ method: { id: "drivelabels.labels.revisions.permissions.batchDelete", httpMethod: "POST", path: "v2/{+parent}/permissions:batchDelete", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
236
241
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
237
242
  hasBody: true,
238
243
  shape: {
@@ -246,7 +251,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
246
251
  name: "drivelabels_labels_revisions_permissions_batch_update",
247
252
  cud: "create",
248
253
  description: "Updates label permissions. If a permission for the indicated principal doesn't exist, a label permission is created, otherwise the existing permission is update",
249
- method: { id: "drivelabels.labels.revisions.permissions.batchUpdate", httpMethod: "POST", path: "v2/{+parent}/permissions:batchUpdate", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
254
+ method: { id: "drivelabels.labels.revisions.permissions.batchUpdate", httpMethod: "POST", path: "v2/{+parent}/permissions:batchUpdate", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
250
255
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
251
256
  hasBody: true,
252
257
  shape: {
@@ -260,7 +265,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
260
265
  name: "drivelabels_labels_revisions_permissions_create",
261
266
  cud: "create",
262
267
  description: "Updates a label's permissions. If a permission for the indicated principal doesn't exist, a label permission is created, otherwise the existing permission is up",
263
- method: { id: "drivelabels.labels.revisions.permissions.create", httpMethod: "POST", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
268
+ method: { id: "drivelabels.labels.revisions.permissions.create", httpMethod: "POST", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
264
269
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
265
270
  hasBody: true,
266
271
  shape: {
@@ -275,7 +280,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
275
280
  name: "drivelabels_labels_revisions_permissions_delete",
276
281
  cud: "delete",
277
282
  description: "Deletes a label's permission. Permissions affect the label resource as a whole, aren't revisioned, and don't require publishing.",
278
- method: { id: "drivelabels.labels.revisions.permissions.delete", httpMethod: "DELETE", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
283
+ method: { id: "drivelabels.labels.revisions.permissions.delete", httpMethod: "DELETE", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
279
284
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
280
285
  hasBody: false,
281
286
  shape: {
@@ -289,7 +294,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
289
294
  name: "drivelabels_labels_revisions_permissions_list",
290
295
  cud: "read",
291
296
  description: "Lists a label's permissions.",
292
- method: { id: "drivelabels.labels.revisions.permissions.list", httpMethod: "GET", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
297
+ method: { id: "drivelabels.labels.revisions.permissions.list", httpMethod: "GET", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[1] },
293
298
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
294
299
  hasBody: false,
295
300
  shape: {
@@ -305,7 +310,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
305
310
  name: "drivelabels_labels_revisions_update_permissions",
306
311
  cud: "update",
307
312
  description: "Updates a label's permissions. If a permission for the indicated principal doesn't exist, a label permission is created, otherwise the existing permission is up",
308
- method: { id: "drivelabels.labels.revisions.updatePermissions", httpMethod: "PATCH", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
313
+ method: { id: "drivelabels.labels.revisions.updatePermissions", httpMethod: "PATCH", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
309
314
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
310
315
  hasBody: true,
311
316
  shape: {
@@ -320,7 +325,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
320
325
  name: "drivelabels_labels_update_label_copy_mode",
321
326
  cud: "update",
322
327
  description: "Updates a label's `CopyMode`. Changes to this policy aren't revisioned, don't require publishing, and take effect immediately.",
323
- method: { id: "drivelabels.labels.updateLabelCopyMode", httpMethod: "POST", path: "v2/{+name}:updateLabelCopyMode", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
328
+ method: { id: "drivelabels.labels.updateLabelCopyMode", httpMethod: "POST", path: "v2/{+name}:updateLabelCopyMode", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[0] },
324
329
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
325
330
  hasBody: true,
326
331
  shape: {
@@ -348,7 +353,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
348
353
  name: "drivelabels_labels_update_permissions",
349
354
  cud: "update",
350
355
  description: "Updates a label's permissions. If a permission for the indicated principal doesn't exist, a label permission is created, otherwise the existing permission is up",
351
- method: { id: "drivelabels.labels.updatePermissions", httpMethod: "PATCH", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"] },
356
+ method: { id: "drivelabels.labels.updatePermissions", httpMethod: "PATCH", path: "v2/{+parent}/permissions", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["parent"], scopes: S_drivelabels_v2[0] },
352
357
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "useAdminAccess", "api": "useAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
353
358
  hasBody: true,
354
359
  shape: {
@@ -363,7 +368,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
363
368
  name: "drivelabels_limits_get_label",
364
369
  cud: "read",
365
370
  description: "Get the constraints on the structure of a label; such as, the maximum number of fields allowed and maximum length of the label title.",
366
- method: { id: "drivelabels.limits.getLabel", httpMethod: "GET", path: "v2/limits/label", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: [] },
371
+ method: { id: "drivelabels.limits.getLabel", httpMethod: "GET", path: "v2/limits/label", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: [], scopes: S_drivelabels_v2[1] },
367
372
  params: [{ "field": "name", "api": "name", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
368
373
  hasBody: false,
369
374
  shape: {
@@ -376,7 +381,7 @@ export function registerDrivelabelsGeneratedTools(registry) {
376
381
  name: "drivelabels_users_get_capabilities",
377
382
  cud: "read",
378
383
  description: "Gets the user capabilities.",
379
- method: { id: "drivelabels.users.getCapabilities", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"] },
384
+ method: { id: "drivelabels.users.getCapabilities", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://drivelabels.googleapis.com/", requiredParams: ["name"], scopes: S_drivelabels_v2[1] },
380
385
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "customer", "api": "customer", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
381
386
  hasBody: false,
382
387
  shape: {
@@ -3,11 +3,15 @@ import { z } from 'zod';
3
3
  import { coerceJson } from '../_coerce.js';
4
4
  import { accountField, registerGeneratedTool } from './_shared.js';
5
5
  export function registerFormsGeneratedTools(registry) {
6
+ // Interned method scope sets (shared across tools; see scope-observability).
7
+ const S_forms_v1 = [
8
+ ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/forms.body", "https://www.googleapis.com/auth/forms.body.readonly", "https://www.googleapis.com/auth/forms.responses.readonly"],
9
+ ];
6
10
  registerGeneratedTool(registry, {
7
11
  name: "forms_forms_watches_create",
8
12
  cud: "create",
9
13
  description: "Create a new watch. If a watch ID is provided, it must be unused. For each invoking project, the per form limit is one watch per Watch.EventType. A watch expire",
10
- method: { id: "forms.forms.watches.create", httpMethod: "POST", path: "v1/forms/{formId}/watches", baseUrl: "https://forms.googleapis.com/", requiredParams: ["formId"] },
14
+ method: { id: "forms.forms.watches.create", httpMethod: "POST", path: "v1/forms/{formId}/watches", baseUrl: "https://forms.googleapis.com/", requiredParams: ["formId"], scopes: S_forms_v1[0] },
11
15
  params: [{ "field": "formId", "api": "formId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
12
16
  hasBody: true,
13
17
  shape: {
@@ -21,7 +25,7 @@ export function registerFormsGeneratedTools(registry) {
21
25
  name: "forms_forms_watches_delete",
22
26
  cud: "delete",
23
27
  description: "Delete a watch.",
24
- method: { id: "forms.forms.watches.delete", httpMethod: "DELETE", path: "v1/forms/{formId}/watches/{watchId}", baseUrl: "https://forms.googleapis.com/", requiredParams: ["formId", "watchId"] },
28
+ method: { id: "forms.forms.watches.delete", httpMethod: "DELETE", path: "v1/forms/{formId}/watches/{watchId}", baseUrl: "https://forms.googleapis.com/", requiredParams: ["formId", "watchId"], scopes: S_forms_v1[0] },
25
29
  params: [{ "field": "formId", "api": "formId", "location": "path" }, { "field": "watchId", "api": "watchId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
26
30
  hasBody: false,
27
31
  shape: {
@@ -35,7 +39,7 @@ export function registerFormsGeneratedTools(registry) {
35
39
  name: "forms_forms_watches_renew",
36
40
  cud: "create",
37
41
  description: "Renew an existing watch for seven days. The state of the watch after renewal is `ACTIVE`, and the `expire_time` is seven days from the renewal. Renewing a watch",
38
- method: { id: "forms.forms.watches.renew", httpMethod: "POST", path: "v1/forms/{formId}/watches/{watchId}:renew", baseUrl: "https://forms.googleapis.com/", requiredParams: ["formId", "watchId"] },
42
+ method: { id: "forms.forms.watches.renew", httpMethod: "POST", path: "v1/forms/{formId}/watches/{watchId}:renew", baseUrl: "https://forms.googleapis.com/", requiredParams: ["formId", "watchId"], scopes: S_forms_v1[0] },
39
43
  params: [{ "field": "formId", "api": "formId", "location": "path" }, { "field": "watchId", "api": "watchId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
40
44
  hasBody: true,
41
45
  shape: {