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
@@ -2,11 +2,15 @@
2
2
  import { z } from 'zod';
3
3
  import { accountField, registerGeneratedTool } from './_shared.js';
4
4
  export function registerGroupsmigrationGeneratedTools(registry) {
5
+ // Interned method scope sets (shared across tools; see scope-observability).
6
+ const S_groupsmigration_v1 = [
7
+ ["https://www.googleapis.com/auth/apps.groups.migration"],
8
+ ];
5
9
  registerGeneratedTool(registry, {
6
10
  name: "groupsmigration_archive_insert",
7
11
  cud: "create",
8
12
  description: "Inserts a new mail into the archive of the Google group.",
9
- method: { id: "groupsmigration.archive.insert", httpMethod: "POST", path: "groups/v1/groups/{groupId}/archive", baseUrl: "https://groupsmigration.googleapis.com/", requiredParams: ["groupId"] },
13
+ method: { id: "groupsmigration.archive.insert", httpMethod: "POST", path: "groups/v1/groups/{groupId}/archive", baseUrl: "https://groupsmigration.googleapis.com/", requiredParams: ["groupId"], scopes: S_groupsmigration_v1[0] },
10
14
  params: [{ "field": "groupId", "api": "groupId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
11
15
  hasBody: false,
12
16
  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 registerGroupssettingsGeneratedTools(registry) {
6
+ // Interned method scope sets (shared across tools; see scope-observability).
7
+ const S_groupssettings_v1 = [
8
+ ["https://www.googleapis.com/auth/apps.groups.settings"],
9
+ ];
6
10
  registerGeneratedTool(registry, {
7
11
  name: "groupssettings_groups_get",
8
12
  cud: "read",
9
13
  description: "Gets one resource by id.",
10
- method: { id: "groupsSettings.groups.get", httpMethod: "GET", path: "{groupUniqueId}", baseUrl: "https://www.googleapis.com/groups/v1/groups/", requiredParams: ["groupUniqueId"] },
14
+ method: { id: "groupsSettings.groups.get", httpMethod: "GET", path: "{groupUniqueId}", baseUrl: "https://www.googleapis.com/groups/v1/groups/", requiredParams: ["groupUniqueId"], scopes: S_groupssettings_v1[0] },
11
15
  params: [{ "field": "groupUniqueId", "api": "groupUniqueId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
12
16
  hasBody: false,
13
17
  shape: {
@@ -20,7 +24,7 @@ export function registerGroupssettingsGeneratedTools(registry) {
20
24
  name: "groupssettings_groups_patch",
21
25
  cud: "update",
22
26
  description: "Updates an existing resource. This method supports patch semantics.",
23
- method: { id: "groupsSettings.groups.patch", httpMethod: "PATCH", path: "{groupUniqueId}", baseUrl: "https://www.googleapis.com/groups/v1/groups/", requiredParams: ["groupUniqueId"] },
27
+ method: { id: "groupsSettings.groups.patch", httpMethod: "PATCH", path: "{groupUniqueId}", baseUrl: "https://www.googleapis.com/groups/v1/groups/", requiredParams: ["groupUniqueId"], scopes: S_groupssettings_v1[0] },
24
28
  params: [{ "field": "groupUniqueId", "api": "groupUniqueId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
25
29
  hasBody: true,
26
30
  shape: {
@@ -34,7 +38,7 @@ export function registerGroupssettingsGeneratedTools(registry) {
34
38
  name: "groupssettings_groups_update",
35
39
  cud: "update",
36
40
  description: "Updates an existing resource.",
37
- method: { id: "groupsSettings.groups.update", httpMethod: "PUT", path: "{groupUniqueId}", baseUrl: "https://www.googleapis.com/groups/v1/groups/", requiredParams: ["groupUniqueId"] },
41
+ method: { id: "groupsSettings.groups.update", httpMethod: "PUT", path: "{groupUniqueId}", baseUrl: "https://www.googleapis.com/groups/v1/groups/", requiredParams: ["groupUniqueId"], scopes: S_groupssettings_v1[0] },
38
42
  params: [{ "field": "groupUniqueId", "api": "groupUniqueId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
39
43
  hasBody: true,
40
44
  shape: {
@@ -3,11 +3,16 @@ import { z } from 'zod';
3
3
  import { coerceJson } from '../_coerce.js';
4
4
  import { accountField, registerGeneratedTool } from './_shared.js';
5
5
  export function registerKeepGeneratedTools(registry) {
6
+ // Interned method scope sets (shared across tools; see scope-observability).
7
+ const S_keep_v1 = [
8
+ ["https://www.googleapis.com/auth/keep", "https://www.googleapis.com/auth/keep.readonly"],
9
+ ["https://www.googleapis.com/auth/keep"],
10
+ ];
6
11
  registerGeneratedTool(registry, {
7
12
  name: "keep_media_download",
8
13
  cud: "read",
9
14
  description: "Gets an attachment. To download attachment media via REST requires the alt=media query parameter. Returns a 400 bad request error if attachment media is not ava",
10
- method: { id: "keep.media.download", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://keep.googleapis.com/", requiredParams: ["name"] },
15
+ method: { id: "keep.media.download", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://keep.googleapis.com/", requiredParams: ["name"], scopes: S_keep_v1[0] },
11
16
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "mimeType", "api": "mimeType", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
12
17
  hasBody: false,
13
18
  shape: {
@@ -21,7 +26,7 @@ export function registerKeepGeneratedTools(registry) {
21
26
  name: "keep_notes_create",
22
27
  cud: "create",
23
28
  description: "Creates a new note.",
24
- method: { id: "keep.notes.create", httpMethod: "POST", path: "v1/notes", baseUrl: "https://keep.googleapis.com/", requiredParams: [] },
29
+ method: { id: "keep.notes.create", httpMethod: "POST", path: "v1/notes", baseUrl: "https://keep.googleapis.com/", requiredParams: [], scopes: S_keep_v1[1] },
25
30
  params: [{ "field": "fields", "api": "fields", "location": "query" }],
26
31
  hasBody: true,
27
32
  shape: {
@@ -34,7 +39,7 @@ export function registerKeepGeneratedTools(registry) {
34
39
  name: "keep_notes_delete",
35
40
  cud: "delete",
36
41
  description: "Deletes a note. Caller must have the `OWNER` role on the note to delete. Deleting a note removes the resource immediately and cannot be undone. Any collaborator",
37
- method: { id: "keep.notes.delete", httpMethod: "DELETE", path: "v1/{+name}", baseUrl: "https://keep.googleapis.com/", requiredParams: ["name"] },
42
+ method: { id: "keep.notes.delete", httpMethod: "DELETE", path: "v1/{+name}", baseUrl: "https://keep.googleapis.com/", requiredParams: ["name"], scopes: S_keep_v1[1] },
38
43
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
39
44
  hasBody: false,
40
45
  shape: {
@@ -47,7 +52,7 @@ export function registerKeepGeneratedTools(registry) {
47
52
  name: "keep_notes_get",
48
53
  cud: "read",
49
54
  description: "Gets a note.",
50
- method: { id: "keep.notes.get", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://keep.googleapis.com/", requiredParams: ["name"] },
55
+ method: { id: "keep.notes.get", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://keep.googleapis.com/", requiredParams: ["name"], scopes: S_keep_v1[0] },
51
56
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
52
57
  hasBody: false,
53
58
  shape: {
@@ -60,7 +65,7 @@ export function registerKeepGeneratedTools(registry) {
60
65
  name: "keep_notes_list",
61
66
  cud: "read",
62
67
  description: "Lists notes. Every list call returns a page of results with `page_size` as the upper bound of returned items. A `page_size` of zero allows the server to choose",
63
- method: { id: "keep.notes.list", httpMethod: "GET", path: "v1/notes", baseUrl: "https://keep.googleapis.com/", requiredParams: [] },
68
+ method: { id: "keep.notes.list", httpMethod: "GET", path: "v1/notes", baseUrl: "https://keep.googleapis.com/", requiredParams: [], scopes: S_keep_v1[0] },
64
69
  params: [{ "field": "filter", "api": "filter", "location": "query" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
65
70
  hasBody: false,
66
71
  shape: {
@@ -75,7 +80,7 @@ export function registerKeepGeneratedTools(registry) {
75
80
  name: "keep_notes_permissions_batch_create",
76
81
  cud: "create",
77
82
  description: "Creates one or more permissions on the note. Only permissions with the `WRITER` role may be created. If adding any permission fails, then the entire request fai",
78
- method: { id: "keep.notes.permissions.batchCreate", httpMethod: "POST", path: "v1/{+parent}/permissions:batchCreate", baseUrl: "https://keep.googleapis.com/", requiredParams: ["parent"] },
83
+ method: { id: "keep.notes.permissions.batchCreate", httpMethod: "POST", path: "v1/{+parent}/permissions:batchCreate", baseUrl: "https://keep.googleapis.com/", requiredParams: ["parent"], scopes: S_keep_v1[1] },
79
84
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
80
85
  hasBody: true,
81
86
  shape: {
@@ -89,7 +94,7 @@ export function registerKeepGeneratedTools(registry) {
89
94
  name: "keep_notes_permissions_batch_delete",
90
95
  cud: "delete",
91
96
  description: "Deletes one or more permissions on the note. The specified entities will immediately lose access. A permission with the `OWNER` role can't be removed. If removi",
92
- method: { id: "keep.notes.permissions.batchDelete", httpMethod: "POST", path: "v1/{+parent}/permissions:batchDelete", baseUrl: "https://keep.googleapis.com/", requiredParams: ["parent"] },
97
+ method: { id: "keep.notes.permissions.batchDelete", httpMethod: "POST", path: "v1/{+parent}/permissions:batchDelete", baseUrl: "https://keep.googleapis.com/", requiredParams: ["parent"], scopes: S_keep_v1[1] },
93
98
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
94
99
  hasBody: true,
95
100
  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 registerLicensingGeneratedTools(registry) {
6
+ // Interned method scope sets (shared across tools; see scope-observability).
7
+ const S_licensing_v1 = [
8
+ ["https://www.googleapis.com/auth/apps.licensing"],
9
+ ];
6
10
  registerGeneratedTool(registry, {
7
11
  name: "licensing_license_assignments_delete",
8
12
  cud: "delete",
9
13
  description: "Revoke a license.",
10
- method: { id: "licensing.licenseAssignments.delete", httpMethod: "DELETE", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"] },
14
+ method: { id: "licensing.licenseAssignments.delete", httpMethod: "DELETE", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"], scopes: S_licensing_v1[0] },
11
15
  params: [{ "field": "productId", "api": "productId", "location": "path" }, { "field": "skuId", "api": "skuId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
12
16
  hasBody: false,
13
17
  shape: {
@@ -22,7 +26,7 @@ export function registerLicensingGeneratedTools(registry) {
22
26
  name: "licensing_license_assignments_get",
23
27
  cud: "read",
24
28
  description: "Get a specific user's license by product SKU.",
25
- method: { id: "licensing.licenseAssignments.get", httpMethod: "GET", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"] },
29
+ method: { id: "licensing.licenseAssignments.get", httpMethod: "GET", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"], scopes: S_licensing_v1[0] },
26
30
  params: [{ "field": "productId", "api": "productId", "location": "path" }, { "field": "skuId", "api": "skuId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
27
31
  hasBody: false,
28
32
  shape: {
@@ -37,7 +41,7 @@ export function registerLicensingGeneratedTools(registry) {
37
41
  name: "licensing_license_assignments_insert",
38
42
  cud: "create",
39
43
  description: "Assign a license.",
40
- method: { id: "licensing.licenseAssignments.insert", httpMethod: "POST", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId"] },
44
+ method: { id: "licensing.licenseAssignments.insert", httpMethod: "POST", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId"], scopes: S_licensing_v1[0] },
41
45
  params: [{ "field": "productId", "api": "productId", "location": "path" }, { "field": "skuId", "api": "skuId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
42
46
  hasBody: true,
43
47
  shape: {
@@ -52,7 +56,7 @@ export function registerLicensingGeneratedTools(registry) {
52
56
  name: "licensing_license_assignments_list_for_product",
53
57
  cud: "read",
54
58
  description: "List all users assigned licenses for a specific product SKU.",
55
- method: { id: "licensing.licenseAssignments.listForProduct", httpMethod: "GET", path: "apps/licensing/v1/product/{productId}/users", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "customerId"] },
59
+ method: { id: "licensing.licenseAssignments.listForProduct", httpMethod: "GET", path: "apps/licensing/v1/product/{productId}/users", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "customerId"], scopes: S_licensing_v1[0] },
56
60
  params: [{ "field": "productId", "api": "productId", "location": "path" }, { "field": "customerId", "api": "customerId", "location": "query" }, { "field": "maxResults", "api": "maxResults", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
57
61
  hasBody: false,
58
62
  shape: {
@@ -68,7 +72,7 @@ export function registerLicensingGeneratedTools(registry) {
68
72
  name: "licensing_license_assignments_list_for_product_and_sku",
69
73
  cud: "read",
70
74
  description: "List all users assigned licenses for a specific product SKU.",
71
- method: { id: "licensing.licenseAssignments.listForProductAndSku", httpMethod: "GET", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/users", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "customerId"] },
75
+ method: { id: "licensing.licenseAssignments.listForProductAndSku", httpMethod: "GET", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/users", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "customerId"], scopes: S_licensing_v1[0] },
72
76
  params: [{ "field": "productId", "api": "productId", "location": "path" }, { "field": "skuId", "api": "skuId", "location": "path" }, { "field": "customerId", "api": "customerId", "location": "query" }, { "field": "maxResults", "api": "maxResults", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
73
77
  hasBody: false,
74
78
  shape: {
@@ -85,7 +89,7 @@ export function registerLicensingGeneratedTools(registry) {
85
89
  name: "licensing_license_assignments_patch",
86
90
  cud: "update",
87
91
  description: "Reassign a user's product SKU with a different SKU in the same product. This method supports patch semantics.",
88
- method: { id: "licensing.licenseAssignments.patch", httpMethod: "PATCH", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"] },
92
+ method: { id: "licensing.licenseAssignments.patch", httpMethod: "PATCH", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"], scopes: S_licensing_v1[0] },
89
93
  params: [{ "field": "productId", "api": "productId", "location": "path" }, { "field": "skuId", "api": "skuId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
90
94
  hasBody: true,
91
95
  shape: {
@@ -101,7 +105,7 @@ export function registerLicensingGeneratedTools(registry) {
101
105
  name: "licensing_license_assignments_update",
102
106
  cud: "update",
103
107
  description: "Reassign a user's product SKU with a different SKU in the same product.",
104
- method: { id: "licensing.licenseAssignments.update", httpMethod: "PUT", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"] },
108
+ method: { id: "licensing.licenseAssignments.update", httpMethod: "PUT", path: "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", baseUrl: "https://licensing.googleapis.com/", requiredParams: ["productId", "skuId", "userId"], scopes: S_licensing_v1[0] },
105
109
  params: [{ "field": "productId", "api": "productId", "location": "path" }, { "field": "skuId", "api": "skuId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
106
110
  hasBody: true,
107
111
  shape: {
@@ -3,11 +3,18 @@ import { z } from 'zod';
3
3
  import { coerceJson } from '../_coerce.js';
4
4
  import { accountField, registerGeneratedTool } from './_shared.js';
5
5
  export function registerMeetGeneratedTools(registry) {
6
+ // Interned method scope sets (shared across tools; see scope-observability).
7
+ const S_meet_v2 = [
8
+ ["https://www.googleapis.com/auth/meetings.space.created", "https://www.googleapis.com/auth/meetings.space.readonly"],
9
+ ["https://www.googleapis.com/auth/meetings.space.created"],
10
+ ["https://www.googleapis.com/auth/meetings.space.created", "https://www.googleapis.com/auth/meetings.space.readonly", "https://www.googleapis.com/auth/meetings.space.settings"],
11
+ ["https://www.googleapis.com/auth/meetings.space.created", "https://www.googleapis.com/auth/meetings.space.settings"],
12
+ ];
6
13
  registerGeneratedTool(registry, {
7
14
  name: "meet_conference_records_participants_get",
8
15
  cud: "read",
9
16
  description: "Gets a participant by participant ID.",
10
- method: { id: "meet.conferenceRecords.participants.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
17
+ method: { id: "meet.conferenceRecords.participants.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[0] },
11
18
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
12
19
  hasBody: false,
13
20
  shape: {
@@ -20,7 +27,7 @@ export function registerMeetGeneratedTools(registry) {
20
27
  name: "meet_conference_records_participants_list",
21
28
  cud: "read",
22
29
  description: "Lists the participants in a conference record. By default, ordered by join time and in descending order. This API supports `fields` as standard parameters like",
23
- method: { id: "meet.conferenceRecords.participants.list", httpMethod: "GET", path: "v2/{+parent}/participants", baseUrl: "https://meet.googleapis.com/", requiredParams: ["parent"] },
30
+ method: { id: "meet.conferenceRecords.participants.list", httpMethod: "GET", path: "v2/{+parent}/participants", baseUrl: "https://meet.googleapis.com/", requiredParams: ["parent"], scopes: S_meet_v2[0] },
24
31
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "filter", "api": "filter", "location": "query" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
25
32
  hasBody: false,
26
33
  shape: {
@@ -36,7 +43,7 @@ export function registerMeetGeneratedTools(registry) {
36
43
  name: "meet_conference_records_participants_participant_sessions_get",
37
44
  cud: "read",
38
45
  description: "Gets a participant session by participant session ID.",
39
- method: { id: "meet.conferenceRecords.participants.participantSessions.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
46
+ method: { id: "meet.conferenceRecords.participants.participantSessions.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[0] },
40
47
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
41
48
  hasBody: false,
42
49
  shape: {
@@ -49,7 +56,7 @@ export function registerMeetGeneratedTools(registry) {
49
56
  name: "meet_conference_records_participants_participant_sessions_list",
50
57
  cud: "read",
51
58
  description: "Lists the participant sessions of a participant in a conference record. By default, ordered by join time and in descending order. This API supports `fields` as",
52
- method: { id: "meet.conferenceRecords.participants.participantSessions.list", httpMethod: "GET", path: "v2/{+parent}/participantSessions", baseUrl: "https://meet.googleapis.com/", requiredParams: ["parent"] },
59
+ method: { id: "meet.conferenceRecords.participants.participantSessions.list", httpMethod: "GET", path: "v2/{+parent}/participantSessions", baseUrl: "https://meet.googleapis.com/", requiredParams: ["parent"], scopes: S_meet_v2[0] },
53
60
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "filter", "api": "filter", "location": "query" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
54
61
  hasBody: false,
55
62
  shape: {
@@ -65,7 +72,7 @@ export function registerMeetGeneratedTools(registry) {
65
72
  name: "meet_conference_records_recordings_get",
66
73
  cud: "read",
67
74
  description: "Gets a recording by recording ID.",
68
- method: { id: "meet.conferenceRecords.recordings.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
75
+ method: { id: "meet.conferenceRecords.recordings.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[0] },
69
76
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
70
77
  hasBody: false,
71
78
  shape: {
@@ -78,7 +85,7 @@ export function registerMeetGeneratedTools(registry) {
78
85
  name: "meet_conference_records_smart_notes_get",
79
86
  cud: "read",
80
87
  description: "Gets smart notes by smart note ID.",
81
- method: { id: "meet.conferenceRecords.smartNotes.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
88
+ method: { id: "meet.conferenceRecords.smartNotes.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[0] },
82
89
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
83
90
  hasBody: false,
84
91
  shape: {
@@ -91,7 +98,7 @@ export function registerMeetGeneratedTools(registry) {
91
98
  name: "meet_conference_records_smart_notes_list",
92
99
  cud: "read",
93
100
  description: "Lists the set of smart notes from the conference record. By default, ordered by start time and in ascending order.",
94
- method: { id: "meet.conferenceRecords.smartNotes.list", httpMethod: "GET", path: "v2/{+parent}/smartNotes", baseUrl: "https://meet.googleapis.com/", requiredParams: ["parent"] },
101
+ method: { id: "meet.conferenceRecords.smartNotes.list", httpMethod: "GET", path: "v2/{+parent}/smartNotes", baseUrl: "https://meet.googleapis.com/", requiredParams: ["parent"], scopes: S_meet_v2[0] },
95
102
  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" }],
96
103
  hasBody: false,
97
104
  shape: {
@@ -106,7 +113,7 @@ export function registerMeetGeneratedTools(registry) {
106
113
  name: "meet_conference_records_transcripts_entries_get",
107
114
  cud: "read",
108
115
  description: "Gets a `TranscriptEntry` resource by entry ID. Note: The transcript entries returned by the Google Meet API might not match the transcription found in the Googl",
109
- method: { id: "meet.conferenceRecords.transcripts.entries.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
116
+ method: { id: "meet.conferenceRecords.transcripts.entries.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[0] },
110
117
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
111
118
  hasBody: false,
112
119
  shape: {
@@ -119,7 +126,7 @@ export function registerMeetGeneratedTools(registry) {
119
126
  name: "meet_conference_records_transcripts_get",
120
127
  cud: "read",
121
128
  description: "Gets a transcript by transcript ID.",
122
- method: { id: "meet.conferenceRecords.transcripts.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
129
+ method: { id: "meet.conferenceRecords.transcripts.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[0] },
123
130
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
124
131
  hasBody: false,
125
132
  shape: {
@@ -132,7 +139,7 @@ export function registerMeetGeneratedTools(registry) {
132
139
  name: "meet_spaces_create",
133
140
  cud: "create",
134
141
  description: "Creates a space.",
135
- method: { id: "meet.spaces.create", httpMethod: "POST", path: "v2/spaces", baseUrl: "https://meet.googleapis.com/", requiredParams: [] },
142
+ method: { id: "meet.spaces.create", httpMethod: "POST", path: "v2/spaces", baseUrl: "https://meet.googleapis.com/", requiredParams: [], scopes: S_meet_v2[1] },
136
143
  params: [{ "field": "fields", "api": "fields", "location": "query" }],
137
144
  hasBody: true,
138
145
  shape: {
@@ -145,7 +152,7 @@ export function registerMeetGeneratedTools(registry) {
145
152
  name: "meet_spaces_end_active_conference",
146
153
  cud: "create",
147
154
  description: "Ends an active conference (if there's one). For an example, see [End active conference](https://developers.google.com/workspace/meet/api/guides/meeting-spaces#e",
148
- method: { id: "meet.spaces.endActiveConference", httpMethod: "POST", path: "v2/{+name}:endActiveConference", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
155
+ method: { id: "meet.spaces.endActiveConference", httpMethod: "POST", path: "v2/{+name}:endActiveConference", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[1] },
149
156
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
150
157
  hasBody: true,
151
158
  shape: {
@@ -159,7 +166,7 @@ export function registerMeetGeneratedTools(registry) {
159
166
  name: "meet_spaces_get",
160
167
  cud: "read",
161
168
  description: "Gets details about a meeting space. For an example, see [Get a meeting space](https://developers.google.com/workspace/meet/api/guides/meeting-spaces#get-meeting",
162
- method: { id: "meet.spaces.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
169
+ method: { id: "meet.spaces.get", httpMethod: "GET", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[2] },
163
170
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
164
171
  hasBody: false,
165
172
  shape: {
@@ -172,7 +179,7 @@ export function registerMeetGeneratedTools(registry) {
172
179
  name: "meet_spaces_patch",
173
180
  cud: "update",
174
181
  description: "Updates details about a meeting space. For an example, see [Update a meeting space](https://developers.google.com/workspace/meet/api/guides/meeting-spaces#updat",
175
- method: { id: "meet.spaces.patch", httpMethod: "PATCH", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"] },
182
+ method: { id: "meet.spaces.patch", httpMethod: "PATCH", path: "v2/{+name}", baseUrl: "https://meet.googleapis.com/", requiredParams: ["name"], scopes: S_meet_v2[3] },
176
183
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
177
184
  hasBody: true,
178
185
  shape: {
@@ -2,11 +2,15 @@
2
2
  import { z } from 'zod';
3
3
  import { accountField, registerGeneratedTool } from './_shared.js';
4
4
  export function registerPostmasterGeneratedTools(registry) {
5
+ // Interned method scope sets (shared across tools; see scope-observability).
6
+ const S_gmailpostmastertools_v1 = [
7
+ ["https://www.googleapis.com/auth/postmaster.readonly"],
8
+ ];
5
9
  registerGeneratedTool(registry, {
6
10
  name: "postmaster_domains_get",
7
11
  cud: "read",
8
12
  description: "Gets a specific domain registered by the client. Returns NOT_FOUND if the domain does not exist.",
9
- method: { id: "gmailpostmastertools.domains.get", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: ["name"] },
13
+ method: { id: "gmailpostmastertools.domains.get", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: ["name"], scopes: S_gmailpostmastertools_v1[0] },
10
14
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
11
15
  hasBody: false,
12
16
  shape: {
@@ -19,7 +23,7 @@ export function registerPostmasterGeneratedTools(registry) {
19
23
  name: "postmaster_domains_list",
20
24
  cud: "read",
21
25
  description: "Lists the domains that have been registered by the client. The order of domains in the response is unspecified and non-deterministic. Newly created domains will",
22
- method: { id: "gmailpostmastertools.domains.list", httpMethod: "GET", path: "v1/domains", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: [] },
26
+ method: { id: "gmailpostmastertools.domains.list", httpMethod: "GET", path: "v1/domains", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: [], scopes: S_gmailpostmastertools_v1[0] },
23
27
  params: [{ "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
24
28
  hasBody: false,
25
29
  shape: {
@@ -33,7 +37,7 @@ export function registerPostmasterGeneratedTools(registry) {
33
37
  name: "postmaster_domains_traffic_stats_get",
34
38
  cud: "read",
35
39
  description: "Get traffic statistics for a domain on a specific date. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.",
36
- method: { id: "gmailpostmastertools.domains.trafficStats.get", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: ["name"] },
40
+ method: { id: "gmailpostmastertools.domains.trafficStats.get", httpMethod: "GET", path: "v1/{+name}", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: ["name"], scopes: S_gmailpostmastertools_v1[0] },
37
41
  params: [{ "field": "name", "api": "name", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
38
42
  hasBody: false,
39
43
  shape: {
@@ -46,7 +50,7 @@ export function registerPostmasterGeneratedTools(registry) {
46
50
  name: "postmaster_domains_traffic_stats_list",
47
51
  cud: "read",
48
52
  description: "List traffic statistics for all available days. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.",
49
- method: { id: "gmailpostmastertools.domains.trafficStats.list", httpMethod: "GET", path: "v1/{+parent}/trafficStats", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: ["parent"] },
53
+ method: { id: "gmailpostmastertools.domains.trafficStats.list", httpMethod: "GET", path: "v1/{+parent}/trafficStats", baseUrl: "https://gmailpostmastertools.googleapis.com/", requiredParams: ["parent"], scopes: S_gmailpostmastertools_v1[0] },
50
54
  params: [{ "field": "parent", "api": "parent", "location": "path" }, { "field": "endDate.day", "api": "endDate.day", "location": "query" }, { "field": "endDate.month", "api": "endDate.month", "location": "query" }, { "field": "endDate.year", "api": "endDate.year", "location": "query" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "startDate.day", "api": "startDate.day", "location": "query" }, { "field": "startDate.month", "api": "startDate.month", "location": "query" }, { "field": "startDate.year", "api": "startDate.year", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
51
55
  hasBody: false,
52
56
  shape: {
@@ -3,11 +3,16 @@ import { z } from 'zod';
3
3
  import { coerceJson } from '../_coerce.js';
4
4
  import { accountField, registerGeneratedTool } from './_shared.js';
5
5
  export function registerResellerGeneratedTools(registry) {
6
+ // Interned method scope sets (shared across tools; see scope-observability).
7
+ const S_reseller_v1 = [
8
+ ["https://www.googleapis.com/auth/apps.order", "https://www.googleapis.com/auth/apps.order.readonly"],
9
+ ["https://www.googleapis.com/auth/apps.order"],
10
+ ];
6
11
  registerGeneratedTool(registry, {
7
12
  name: "reseller_customers_get",
8
13
  cud: "read",
9
14
  description: "Gets a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an exis",
10
- method: { id: "reseller.customers.get", httpMethod: "GET", path: "apps/reseller/v1/customers/{customerId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"] },
15
+ method: { id: "reseller.customers.get", httpMethod: "GET", path: "apps/reseller/v1/customers/{customerId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"], scopes: S_reseller_v1[0] },
11
16
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
12
17
  hasBody: false,
13
18
  shape: {
@@ -20,7 +25,7 @@ export function registerResellerGeneratedTools(registry) {
20
25
  name: "reseller_customers_insert",
21
26
  cud: "create",
22
27
  description: "Orders a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](https",
23
- method: { id: "reseller.customers.insert", httpMethod: "POST", path: "apps/reseller/v1/customers", baseUrl: "https://reseller.googleapis.com/", requiredParams: [] },
28
+ method: { id: "reseller.customers.insert", httpMethod: "POST", path: "apps/reseller/v1/customers", baseUrl: "https://reseller.googleapis.com/", requiredParams: [], scopes: S_reseller_v1[1] },
24
29
  params: [{ "field": "customerAuthToken", "api": "customerAuthToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
25
30
  hasBody: true,
26
31
  shape: {
@@ -34,7 +39,7 @@ export function registerResellerGeneratedTools(registry) {
34
39
  name: "reseller_customers_patch",
35
40
  cud: "update",
36
41
  description: "Updates a customer account's settings. This method supports patch semantics. You cannot update `customerType` via the Reseller API, but a `\"team\"` customer can",
37
- method: { id: "reseller.customers.patch", httpMethod: "PATCH", path: "apps/reseller/v1/customers/{customerId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"] },
42
+ method: { id: "reseller.customers.patch", httpMethod: "PATCH", path: "apps/reseller/v1/customers/{customerId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"], scopes: S_reseller_v1[1] },
38
43
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
39
44
  hasBody: true,
40
45
  shape: {
@@ -48,7 +53,7 @@ export function registerResellerGeneratedTools(registry) {
48
53
  name: "reseller_customers_update",
49
54
  cud: "update",
50
55
  description: "Updates a customer account's settings. You cannot update `customerType` via the Reseller API, but a `\"team\"` customer can verify their domain and become `custom",
51
- method: { id: "reseller.customers.update", httpMethod: "PUT", path: "apps/reseller/v1/customers/{customerId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"] },
56
+ method: { id: "reseller.customers.update", httpMethod: "PUT", path: "apps/reseller/v1/customers/{customerId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"], scopes: S_reseller_v1[1] },
52
57
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
53
58
  hasBody: true,
54
59
  shape: {
@@ -62,7 +67,7 @@ export function registerResellerGeneratedTools(registry) {
62
67
  name: "reseller_resellernotify_getwatchdetails",
63
68
  cud: "read",
64
69
  description: "Returns all the details of the watch corresponding to the reseller.",
65
- method: { id: "reseller.resellernotify.getwatchdetails", httpMethod: "GET", path: "apps/reseller/v1/resellernotify/getwatchdetails", baseUrl: "https://reseller.googleapis.com/", requiredParams: [] },
70
+ method: { id: "reseller.resellernotify.getwatchdetails", httpMethod: "GET", path: "apps/reseller/v1/resellernotify/getwatchdetails", baseUrl: "https://reseller.googleapis.com/", requiredParams: [], scopes: S_reseller_v1[0] },
66
71
  params: [{ "field": "fields", "api": "fields", "location": "query" }],
67
72
  hasBody: false,
68
73
  shape: {
@@ -74,7 +79,7 @@ export function registerResellerGeneratedTools(registry) {
74
79
  name: "reseller_resellernotify_register",
75
80
  cud: "create",
76
81
  description: "Registers a Reseller for receiving notifications.",
77
- method: { id: "reseller.resellernotify.register", httpMethod: "POST", path: "apps/reseller/v1/resellernotify/register", baseUrl: "https://reseller.googleapis.com/", requiredParams: [] },
82
+ method: { id: "reseller.resellernotify.register", httpMethod: "POST", path: "apps/reseller/v1/resellernotify/register", baseUrl: "https://reseller.googleapis.com/", requiredParams: [], scopes: S_reseller_v1[1] },
78
83
  params: [{ "field": "serviceAccountEmailAddress", "api": "serviceAccountEmailAddress", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
79
84
  hasBody: false,
80
85
  shape: {
@@ -87,7 +92,7 @@ export function registerResellerGeneratedTools(registry) {
87
92
  name: "reseller_resellernotify_unregister",
88
93
  cud: "create",
89
94
  description: "Unregisters a Reseller for receiving notifications.",
90
- method: { id: "reseller.resellernotify.unregister", httpMethod: "POST", path: "apps/reseller/v1/resellernotify/unregister", baseUrl: "https://reseller.googleapis.com/", requiredParams: [] },
95
+ method: { id: "reseller.resellernotify.unregister", httpMethod: "POST", path: "apps/reseller/v1/resellernotify/unregister", baseUrl: "https://reseller.googleapis.com/", requiredParams: [], scopes: S_reseller_v1[1] },
91
96
  params: [{ "field": "serviceAccountEmailAddress", "api": "serviceAccountEmailAddress", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
92
97
  hasBody: false,
93
98
  shape: {
@@ -100,7 +105,7 @@ export function registerResellerGeneratedTools(registry) {
100
105
  name: "reseller_subscriptions_activate",
101
106
  cud: "create",
102
107
  description: "Activates a subscription previously suspended by the reseller. If you did not suspend the customer subscription and it is suspended for any other reason, such a",
103
- method: { id: "reseller.subscriptions.activate", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/activate", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
108
+ method: { id: "reseller.subscriptions.activate", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/activate", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"], scopes: S_reseller_v1[1] },
104
109
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
105
110
  hasBody: false,
106
111
  shape: {
@@ -114,7 +119,7 @@ export function registerResellerGeneratedTools(registry) {
114
119
  name: "reseller_subscriptions_change_plan",
115
120
  cud: "create",
116
121
  description: "Updates a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or ye",
117
- method: { id: "reseller.subscriptions.changePlan", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changePlan", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
122
+ method: { id: "reseller.subscriptions.changePlan", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changePlan", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"], scopes: S_reseller_v1[1] },
118
123
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
119
124
  hasBody: true,
120
125
  shape: {
@@ -129,7 +134,7 @@ export function registerResellerGeneratedTools(registry) {
129
134
  name: "reseller_subscriptions_change_renewal_settings",
130
135
  cud: "create",
131
136
  description: "Updates a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [mana",
132
- method: { id: "reseller.subscriptions.changeRenewalSettings", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
137
+ method: { id: "reseller.subscriptions.changeRenewalSettings", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"], scopes: S_reseller_v1[1] },
133
138
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
134
139
  hasBody: true,
135
140
  shape: {
@@ -144,7 +149,7 @@ export function registerResellerGeneratedTools(registry) {
144
149
  name: "reseller_subscriptions_change_seats",
145
150
  cud: "create",
146
151
  description: "Updates a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription’s licenses, see [M",
147
- method: { id: "reseller.subscriptions.changeSeats", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
152
+ method: { id: "reseller.subscriptions.changeSeats", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"], scopes: S_reseller_v1[1] },
148
153
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
149
154
  hasBody: true,
150
155
  shape: {
@@ -159,7 +164,7 @@ export function registerResellerGeneratedTools(registry) {
159
164
  name: "reseller_subscriptions_delete",
160
165
  cud: "delete",
161
166
  description: "Cancels, suspends, or transfers a subscription to direct.",
162
- method: { id: "reseller.subscriptions.delete", httpMethod: "DELETE", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId", "deletionType"] },
167
+ method: { id: "reseller.subscriptions.delete", httpMethod: "DELETE", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId", "deletionType"], scopes: S_reseller_v1[1] },
163
168
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "deletionType", "api": "deletionType", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
164
169
  hasBody: false,
165
170
  shape: {
@@ -174,7 +179,7 @@ export function registerResellerGeneratedTools(registry) {
174
179
  name: "reseller_subscriptions_get",
175
180
  cud: "read",
176
181
  description: "Gets a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](https://developers.google.com/workspace/admin/re",
177
- method: { id: "reseller.subscriptions.get", httpMethod: "GET", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
182
+ method: { id: "reseller.subscriptions.get", httpMethod: "GET", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"], scopes: S_reseller_v1[0] },
178
183
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
179
184
  hasBody: false,
180
185
  shape: {
@@ -188,7 +193,7 @@ export function registerResellerGeneratedTools(registry) {
188
193
  name: "reseller_subscriptions_insert",
189
194
  cud: "create",
190
195
  description: "Creates or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](https://developers.",
191
- method: { id: "reseller.subscriptions.insert", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"] },
196
+ method: { id: "reseller.subscriptions.insert", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId"], scopes: S_reseller_v1[1] },
192
197
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "action", "api": "action", "location": "query" }, { "field": "customerAuthToken", "api": "customerAuthToken", "location": "query" }, { "field": "sourceSkuId", "api": "sourceSkuId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
193
198
  hasBody: true,
194
199
  shape: {
@@ -205,7 +210,7 @@ export function registerResellerGeneratedTools(registry) {
205
210
  name: "reseller_subscriptions_list",
206
211
  cud: "read",
207
212
  description: "Lists of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscr",
208
- method: { id: "reseller.subscriptions.list", httpMethod: "GET", path: "apps/reseller/v1/subscriptions", baseUrl: "https://reseller.googleapis.com/", requiredParams: [] },
213
+ method: { id: "reseller.subscriptions.list", httpMethod: "GET", path: "apps/reseller/v1/subscriptions", baseUrl: "https://reseller.googleapis.com/", requiredParams: [], scopes: S_reseller_v1[0] },
209
214
  params: [{ "field": "customerAuthToken", "api": "customerAuthToken", "location": "query" }, { "field": "customerId", "api": "customerId", "location": "query" }, { "field": "customerNamePrefix", "api": "customerNamePrefix", "location": "query" }, { "field": "maxResults", "api": "maxResults", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
210
215
  hasBody: false,
211
216
  shape: {
@@ -222,7 +227,7 @@ export function registerResellerGeneratedTools(registry) {
222
227
  name: "reseller_subscriptions_start_paid_service",
223
228
  cud: "create",
224
229
  description: "Immediately move a 30-day free trial subscription to a paid service subscription. This method is only applicable if a payment plan has already been set up for t",
225
- method: { id: "reseller.subscriptions.startPaidService", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/startPaidService", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
230
+ method: { id: "reseller.subscriptions.startPaidService", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/startPaidService", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"], scopes: S_reseller_v1[1] },
226
231
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
227
232
  hasBody: false,
228
233
  shape: {
@@ -236,7 +241,7 @@ export function registerResellerGeneratedTools(registry) {
236
241
  name: "reseller_subscriptions_suspend",
237
242
  cud: "create",
238
243
  description: "Suspends an active subscription. You can use this method to suspend a paid subscription that is currently in the `ACTIVE` state. * For `FLEXIBLE` subscriptions,",
239
- method: { id: "reseller.subscriptions.suspend", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/suspend", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
244
+ method: { id: "reseller.subscriptions.suspend", httpMethod: "POST", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/suspend", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"], scopes: S_reseller_v1[1] },
240
245
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
241
246
  hasBody: false,
242
247
  shape: {