mcp-google-multi 5.4.0 → 5.4.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -61,6 +61,14 @@ export function buildMethodIndex(doc, api) {
61
61
  if (!method.id || !method.httpMethod || !method.path)
62
62
  continue;
63
63
  const params = method.parameters ?? {};
64
+ // Google serves parameters{} with unstable key order between fetches;
65
+ // parameterOrder is the canonical sequence, so sort by it (alphabetical
66
+ // tie-break) to keep gen-tools output deterministic.
67
+ const order = method.parameterOrder ?? [];
68
+ const pos = (n) => {
69
+ const i = order.indexOf(n);
70
+ return i === -1 ? order.length : i;
71
+ };
64
72
  out.push({
65
73
  id: method.id,
66
74
  api,
@@ -71,7 +79,8 @@ export function buildMethodIndex(doc, api) {
71
79
  params,
72
80
  requiredParams: Object.entries(params)
73
81
  .filter(([, p]) => p.required)
74
- .map(([name]) => name),
82
+ .map(([name]) => name)
83
+ .sort((a, b) => pos(a) - pos(b) || a.localeCompare(b)),
75
84
  scopes: method.scopes ?? [],
76
85
  });
77
86
  }
@@ -106,7 +106,7 @@ export function registerAdminGeneratedTools(registry) {
106
106
  name: "admin_customer_devices_chromeos_commands_get",
107
107
  cud: "read",
108
108
  description: "Gets command data a specific command issued to the device.",
109
- method: { id: "admin.customer.devices.chromeos.commands.get", httpMethod: "GET", path: "admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}/commands/{commandId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["commandId", "customerId", "deviceId"] },
109
+ method: { id: "admin.customer.devices.chromeos.commands.get", httpMethod: "GET", path: "admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}/commands/{commandId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customerId", "deviceId", "commandId"] },
110
110
  params: [{ "field": "commandId", "api": "commandId", "location": "path" }, { "field": "customerId", "api": "customerId", "location": "path" }, { "field": "deviceId", "api": "deviceId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
111
111
  hasBody: false,
112
112
  shape: {
@@ -371,7 +371,7 @@ export function registerAdminGeneratedTools(registry) {
371
371
  name: "admin_asps_delete",
372
372
  cud: "delete",
373
373
  description: "Deletes an ASP issued by a user.",
374
- method: { id: "directory.asps.delete", httpMethod: "DELETE", path: "admin/directory/v1/users/{userKey}/asps/{codeId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["codeId", "userKey"] },
374
+ method: { id: "directory.asps.delete", httpMethod: "DELETE", path: "admin/directory/v1/users/{userKey}/asps/{codeId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["userKey", "codeId"] },
375
375
  params: [{ "field": "codeId", "api": "codeId", "location": "path" }, { "field": "userKey", "api": "userKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
376
376
  hasBody: false,
377
377
  shape: {
@@ -463,7 +463,7 @@ export function registerAdminGeneratedTools(registry) {
463
463
  name: "admin_chromeosdevices_move_devices_to_ou",
464
464
  cud: "update",
465
465
  description: "Moves or inserts multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once.",
466
- method: { id: "directory.chromeosdevices.moveDevicesToOu", httpMethod: "POST", path: "admin/directory/v1/customer/{customerId}/devices/chromeos/moveDevicesToOu", baseUrl: "https://admin.googleapis.com/", requiredParams: ["orgUnitPath", "customerId"] },
466
+ method: { id: "directory.chromeosdevices.moveDevicesToOu", httpMethod: "POST", path: "admin/directory/v1/customer/{customerId}/devices/chromeos/moveDevicesToOu", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customerId", "orgUnitPath"] },
467
467
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "orgUnitPath", "api": "orgUnitPath", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
468
468
  hasBody: true,
469
469
  shape: {
@@ -770,7 +770,7 @@ export function registerAdminGeneratedTools(registry) {
770
770
  name: "admin_members_delete",
771
771
  cud: "delete",
772
772
  description: "Removes a member from a group.",
773
- method: { id: "directory.members.delete", httpMethod: "DELETE", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["memberKey", "groupKey"] },
773
+ method: { id: "directory.members.delete", httpMethod: "DELETE", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["groupKey", "memberKey"] },
774
774
  params: [{ "field": "groupKey", "api": "groupKey", "location": "path" }, { "field": "memberKey", "api": "memberKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
775
775
  hasBody: false,
776
776
  shape: {
@@ -784,7 +784,7 @@ export function registerAdminGeneratedTools(registry) {
784
784
  name: "admin_members_get",
785
785
  cud: "read",
786
786
  description: "Retrieves a group member's properties.",
787
- method: { id: "directory.members.get", httpMethod: "GET", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["memberKey", "groupKey"] },
787
+ method: { id: "directory.members.get", httpMethod: "GET", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["groupKey", "memberKey"] },
788
788
  params: [{ "field": "groupKey", "api": "groupKey", "location": "path" }, { "field": "memberKey", "api": "memberKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
789
789
  hasBody: false,
790
790
  shape: {
@@ -798,7 +798,7 @@ export function registerAdminGeneratedTools(registry) {
798
798
  name: "admin_members_has_member",
799
799
  cud: "read",
800
800
  description: "Checks whether the given user is a member of the group. Membership can be direct or nested, but if nested, the `memberKey` and `groupKey` must be entities in th",
801
- method: { id: "directory.members.hasMember", httpMethod: "GET", path: "admin/directory/v1/groups/{groupKey}/hasMember/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["memberKey", "groupKey"] },
801
+ method: { id: "directory.members.hasMember", httpMethod: "GET", path: "admin/directory/v1/groups/{groupKey}/hasMember/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["groupKey", "memberKey"] },
802
802
  params: [{ "field": "groupKey", "api": "groupKey", "location": "path" }, { "field": "memberKey", "api": "memberKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
803
803
  hasBody: false,
804
804
  shape: {
@@ -826,7 +826,7 @@ export function registerAdminGeneratedTools(registry) {
826
826
  name: "admin_members_patch",
827
827
  cud: "update",
828
828
  description: "Updates the membership properties of a user in the specified group. This method supports [patch semantics](https://developers.google.com/workspace/admin/directo",
829
- method: { id: "directory.members.patch", httpMethod: "PATCH", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["memberKey", "groupKey"] },
829
+ method: { id: "directory.members.patch", httpMethod: "PATCH", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["groupKey", "memberKey"] },
830
830
  params: [{ "field": "groupKey", "api": "groupKey", "location": "path" }, { "field": "memberKey", "api": "memberKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
831
831
  hasBody: true,
832
832
  shape: {
@@ -841,7 +841,7 @@ export function registerAdminGeneratedTools(registry) {
841
841
  name: "admin_members_update",
842
842
  cud: "update",
843
843
  description: "Updates the membership of a user in the specified group.",
844
- method: { id: "directory.members.update", httpMethod: "PUT", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["memberKey", "groupKey"] },
844
+ method: { id: "directory.members.update", httpMethod: "PUT", path: "admin/directory/v1/groups/{groupKey}/members/{memberKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["groupKey", "memberKey"] },
845
845
  params: [{ "field": "groupKey", "api": "groupKey", "location": "path" }, { "field": "memberKey", "api": "memberKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
846
846
  hasBody: true,
847
847
  shape: {
@@ -976,7 +976,7 @@ export function registerAdminGeneratedTools(registry) {
976
976
  name: "admin_orgunits_patch",
977
977
  cud: "update",
978
978
  description: "Updates an organizational unit. This method supports [patch semantics](https://developers.google.com/workspace/admin/directory/v1/guides/performance#patch)",
979
- method: { id: "directory.orgunits.patch", httpMethod: "PATCH", path: "admin/directory/v1/customer/{customerId}/orgunits/{+orgUnitPath}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["orgUnitPath", "customerId"] },
979
+ method: { id: "directory.orgunits.patch", httpMethod: "PATCH", path: "admin/directory/v1/customer/{customerId}/orgunits/{+orgUnitPath}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customerId", "orgUnitPath"] },
980
980
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "orgUnitPath", "api": "orgUnitPath", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
981
981
  hasBody: true,
982
982
  shape: {
@@ -1019,7 +1019,7 @@ export function registerAdminGeneratedTools(registry) {
1019
1019
  name: "admin_resources_buildings_delete",
1020
1020
  cud: "delete",
1021
1021
  description: "Deletes a building.",
1022
- method: { id: "directory.resources.buildings.delete", httpMethod: "DELETE", path: "admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["buildingId", "customer"] },
1022
+ method: { id: "directory.resources.buildings.delete", httpMethod: "DELETE", path: "admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customer", "buildingId"] },
1023
1023
  params: [{ "field": "buildingId", "api": "buildingId", "location": "path" }, { "field": "customer", "api": "customer", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1024
1024
  hasBody: false,
1025
1025
  shape: {
@@ -1093,7 +1093,7 @@ export function registerAdminGeneratedTools(registry) {
1093
1093
  name: "admin_resources_buildings_update",
1094
1094
  cud: "update",
1095
1095
  description: "Updates a building.",
1096
- method: { id: "directory.resources.buildings.update", httpMethod: "PUT", path: "admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["buildingId", "customer"] },
1096
+ method: { id: "directory.resources.buildings.update", httpMethod: "PUT", path: "admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customer", "buildingId"] },
1097
1097
  params: [{ "field": "buildingId", "api": "buildingId", "location": "path" }, { "field": "customer", "api": "customer", "location": "path" }, { "field": "coordinatesSource", "api": "coordinatesSource", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1098
1098
  hasBody: true,
1099
1099
  shape: {
@@ -1255,7 +1255,7 @@ export function registerAdminGeneratedTools(registry) {
1255
1255
  name: "admin_resources_features_patch",
1256
1256
  cud: "update",
1257
1257
  description: "Patches a feature.",
1258
- method: { id: "directory.resources.features.patch", httpMethod: "PATCH", path: "admin/directory/v1/customer/{customer}/resources/features/{featureKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["featureKey", "customer"] },
1258
+ method: { id: "directory.resources.features.patch", httpMethod: "PATCH", path: "admin/directory/v1/customer/{customer}/resources/features/{featureKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customer", "featureKey"] },
1259
1259
  params: [{ "field": "customer", "api": "customer", "location": "path" }, { "field": "featureKey", "api": "featureKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1260
1260
  hasBody: true,
1261
1261
  shape: {
@@ -1285,7 +1285,7 @@ export function registerAdminGeneratedTools(registry) {
1285
1285
  name: "admin_resources_features_update",
1286
1286
  cud: "update",
1287
1287
  description: "Updates a feature.",
1288
- method: { id: "directory.resources.features.update", httpMethod: "PUT", path: "admin/directory/v1/customer/{customer}/resources/features/{featureKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["featureKey", "customer"] },
1288
+ method: { id: "directory.resources.features.update", httpMethod: "PUT", path: "admin/directory/v1/customer/{customer}/resources/features/{featureKey}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customer", "featureKey"] },
1289
1289
  params: [{ "field": "customer", "api": "customer", "location": "path" }, { "field": "featureKey", "api": "featureKey", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1290
1290
  hasBody: true,
1291
1291
  shape: {
@@ -1360,7 +1360,7 @@ export function registerAdminGeneratedTools(registry) {
1360
1360
  name: "admin_roles_delete",
1361
1361
  cud: "delete",
1362
1362
  description: "Deletes a role.",
1363
- method: { id: "directory.roles.delete", httpMethod: "DELETE", path: "admin/directory/v1/customer/{customer}/roles/{roleId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["roleId", "customer"] },
1363
+ method: { id: "directory.roles.delete", httpMethod: "DELETE", path: "admin/directory/v1/customer/{customer}/roles/{roleId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customer", "roleId"] },
1364
1364
  params: [{ "field": "customer", "api": "customer", "location": "path" }, { "field": "roleId", "api": "roleId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1365
1365
  hasBody: false,
1366
1366
  shape: {
@@ -1374,7 +1374,7 @@ export function registerAdminGeneratedTools(registry) {
1374
1374
  name: "admin_roles_get",
1375
1375
  cud: "read",
1376
1376
  description: "Retrieves a role.",
1377
- method: { id: "directory.roles.get", httpMethod: "GET", path: "admin/directory/v1/customer/{customer}/roles/{roleId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["roleId", "customer"] },
1377
+ method: { id: "directory.roles.get", httpMethod: "GET", path: "admin/directory/v1/customer/{customer}/roles/{roleId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customer", "roleId"] },
1378
1378
  params: [{ "field": "customer", "api": "customer", "location": "path" }, { "field": "roleId", "api": "roleId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1379
1379
  hasBody: false,
1380
1380
  shape: {
@@ -1417,7 +1417,7 @@ export function registerAdminGeneratedTools(registry) {
1417
1417
  name: "admin_roles_patch",
1418
1418
  cud: "update",
1419
1419
  description: "Patches a role.",
1420
- method: { id: "directory.roles.patch", httpMethod: "PATCH", path: "admin/directory/v1/customer/{customer}/roles/{roleId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["roleId", "customer"] },
1420
+ method: { id: "directory.roles.patch", httpMethod: "PATCH", path: "admin/directory/v1/customer/{customer}/roles/{roleId}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["customer", "roleId"] },
1421
1421
  params: [{ "field": "customer", "api": "customer", "location": "path" }, { "field": "roleId", "api": "roleId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1422
1422
  hasBody: true,
1423
1423
  shape: {
@@ -1856,7 +1856,7 @@ export function registerAdminGeneratedTools(registry) {
1856
1856
  name: "admin_activities_watch",
1857
1857
  cud: "create",
1858
1858
  description: "Start receiving notifications for account activities. For more information, see Receiving Push Notifications.",
1859
- method: { id: "reports.activities.watch", httpMethod: "POST", path: "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch", baseUrl: "https://admin.googleapis.com/", requiredParams: ["applicationName", "userKey"] },
1859
+ method: { id: "reports.activities.watch", httpMethod: "POST", path: "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch", baseUrl: "https://admin.googleapis.com/", requiredParams: ["userKey", "applicationName"] },
1860
1860
  params: [{ "field": "applicationName", "api": "applicationName", "location": "path" }, { "field": "userKey", "api": "userKey", "location": "path" }, { "field": "actorIpAddress", "api": "actorIpAddress", "location": "query" }, { "field": "customerId", "api": "customerId", "location": "query" }, { "field": "endTime", "api": "endTime", "location": "query" }, { "field": "eventName", "api": "eventName", "location": "query" }, { "field": "filters", "api": "filters", "location": "query" }, { "field": "groupIdFilter", "api": "groupIdFilter", "location": "query" }, { "field": "maxResults", "api": "maxResults", "location": "query" }, { "field": "orgUnitID", "api": "orgUnitID", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "startTime", "api": "startTime", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1861
1861
  hasBody: true,
1862
1862
  shape: {
@@ -1897,7 +1897,7 @@ export function registerAdminGeneratedTools(registry) {
1897
1897
  name: "admin_entity_usage_reports_get",
1898
1898
  cud: "read",
1899
1899
  description: "Retrieves a report which is a collection of properties and statistics for entities used by users within the account. For more information, see the Entities Usag",
1900
- method: { id: "reports.entityUsageReports.get", httpMethod: "GET", path: "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["entityKey", "entityType", "date"] },
1900
+ method: { id: "reports.entityUsageReports.get", httpMethod: "GET", path: "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}", baseUrl: "https://admin.googleapis.com/", requiredParams: ["entityType", "entityKey", "date"] },
1901
1901
  params: [{ "field": "date", "api": "date", "location": "path" }, { "field": "entityKey", "api": "entityKey", "location": "path" }, { "field": "entityType", "api": "entityType", "location": "path" }, { "field": "customerId", "api": "customerId", "location": "query" }, { "field": "filters", "api": "filters", "location": "query" }, { "field": "maxResults", "api": "maxResults", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "parameters", "api": "parameters", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1902
1902
  hasBody: false,
1903
1903
  shape: {
@@ -6,7 +6,7 @@ export function registerAppsmarketGeneratedTools(registry) {
6
6
  name: "appsmarket_customer_license_get",
7
7
  cud: "read",
8
8
  description: "Gets the customer's licensing status to determine if they have access to a given app. For more information, see [Getting app installation and licensing details]",
9
- method: { id: "appsmarket.customerLicense.get", httpMethod: "GET", path: "appsmarket/v2/customerLicense/{applicationId}/{customerId}", baseUrl: "https://appsmarket.googleapis.com/", requiredParams: ["customerId", "applicationId"] },
9
+ method: { id: "appsmarket.customerLicense.get", httpMethod: "GET", path: "appsmarket/v2/customerLicense/{applicationId}/{customerId}", baseUrl: "https://appsmarket.googleapis.com/", requiredParams: ["applicationId", "customerId"] },
10
10
  params: [{ "field": "applicationId", "api": "applicationId", "location": "path" }, { "field": "customerId", "api": "customerId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
11
11
  hasBody: false,
12
12
  shape: {
@@ -20,7 +20,7 @@ export function registerAppsmarketGeneratedTools(registry) {
20
20
  name: "appsmarket_user_license_get",
21
21
  cud: "read",
22
22
  description: "Gets the user's licensing status to determine if they have permission to use a given app. For more information, see [Getting app installation and licensing deta",
23
- method: { id: "appsmarket.userLicense.get", httpMethod: "GET", path: "appsmarket/v2/userLicense/{applicationId}/{userId}", baseUrl: "https://appsmarket.googleapis.com/", requiredParams: ["userId", "applicationId"] },
23
+ method: { id: "appsmarket.userLicense.get", httpMethod: "GET", path: "appsmarket/v2/userLicense/{applicationId}/{userId}", baseUrl: "https://appsmarket.googleapis.com/", requiredParams: ["applicationId", "userId"] },
24
24
  params: [{ "field": "applicationId", "api": "applicationId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
25
25
  hasBody: false,
26
26
  shape: {
@@ -7,7 +7,7 @@ export function registerCalendarGeneratedTools(registry) {
7
7
  name: "calendar_acl_delete",
8
8
  cud: "delete",
9
9
  description: "Deletes an access control rule.",
10
- method: { id: "calendar.acl.delete", httpMethod: "DELETE", path: "calendars/{calendarId}/acl/{ruleId}", baseUrl: "https://www.googleapis.com/calendar/v3/", requiredParams: ["ruleId", "calendarId"] },
10
+ method: { id: "calendar.acl.delete", httpMethod: "DELETE", path: "calendars/{calendarId}/acl/{ruleId}", baseUrl: "https://www.googleapis.com/calendar/v3/", requiredParams: ["calendarId", "ruleId"] },
11
11
  params: [{ "field": "calendarId", "api": "calendarId", "location": "path" }, { "field": "ruleId", "api": "ruleId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
12
12
  hasBody: false,
13
13
  shape: {
@@ -21,7 +21,7 @@ export function registerCalendarGeneratedTools(registry) {
21
21
  name: "calendar_acl_get",
22
22
  cud: "read",
23
23
  description: "Returns an access control rule.",
24
- method: { id: "calendar.acl.get", httpMethod: "GET", path: "calendars/{calendarId}/acl/{ruleId}", baseUrl: "https://www.googleapis.com/calendar/v3/", requiredParams: ["ruleId", "calendarId"] },
24
+ method: { id: "calendar.acl.get", httpMethod: "GET", path: "calendars/{calendarId}/acl/{ruleId}", baseUrl: "https://www.googleapis.com/calendar/v3/", requiredParams: ["calendarId", "ruleId"] },
25
25
  params: [{ "field": "calendarId", "api": "calendarId", "location": "path" }, { "field": "ruleId", "api": "ruleId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
26
26
  hasBody: false,
27
27
  shape: {
@@ -67,7 +67,7 @@ export function registerClassroomGeneratedTools(registry) {
67
67
  name: "classroom_courses_announcements_add_on_attachments_delete",
68
68
  cud: "delete",
69
69
  description: "Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISS",
70
- method: { id: "classroom.courses.announcements.addOnAttachments.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/announcements/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
70
+ method: { id: "classroom.courses.announcements.addOnAttachments.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/announcements/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
71
71
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
72
72
  hasBody: false,
73
73
  shape: {
@@ -83,7 +83,7 @@ export function registerClassroomGeneratedTools(registry) {
83
83
  name: "classroom_courses_announcements_add_on_attachments_get",
84
84
  cud: "read",
85
85
  description: "Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following erro",
86
- method: { id: "classroom.courses.announcements.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/announcements/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
86
+ method: { id: "classroom.courses.announcements.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/announcements/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
87
87
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
88
88
  hasBody: false,
89
89
  shape: {
@@ -99,7 +99,7 @@ export function registerClassroomGeneratedTools(registry) {
99
99
  name: "classroom_courses_announcements_add_on_attachments_list",
100
100
  cud: "read",
101
101
  description: "Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachm",
102
- method: { id: "classroom.courses.announcements.addOnAttachments.list", httpMethod: "GET", path: "v1/courses/{courseId}/announcements/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "courseId"] },
102
+ method: { id: "classroom.courses.announcements.addOnAttachments.list", httpMethod: "GET", path: "v1/courses/{courseId}/announcements/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId"] },
103
103
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
104
104
  hasBody: false,
105
105
  shape: {
@@ -225,7 +225,7 @@ export function registerClassroomGeneratedTools(registry) {
225
225
  name: "classroom_courses_announcements_patch",
226
226
  cud: "update",
227
227
  description: "Updates one or more fields of an announcement. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not",
228
- method: { id: "classroom.courses.announcements.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/announcements/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["id", "courseId"] },
228
+ method: { id: "classroom.courses.announcements.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/announcements/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "id"] },
229
229
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
230
230
  hasBody: true,
231
231
  shape: {
@@ -241,7 +241,7 @@ export function registerClassroomGeneratedTools(registry) {
241
241
  name: "classroom_courses_course_work_add_on_attachments_create",
242
242
  cud: "create",
243
243
  description: "Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error",
244
- method: { id: "classroom.courses.courseWork.addOnAttachments.create", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "courseId"] },
244
+ method: { id: "classroom.courses.courseWork.addOnAttachments.create", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId"] },
245
245
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "addOnToken", "api": "addOnToken", "location": "query" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
246
246
  hasBody: true,
247
247
  shape: {
@@ -258,7 +258,7 @@ export function registerClassroomGeneratedTools(registry) {
258
258
  name: "classroom_courses_course_work_add_on_attachments_delete",
259
259
  cud: "delete",
260
260
  description: "Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISS",
261
- method: { id: "classroom.courses.courseWork.addOnAttachments.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
261
+ method: { id: "classroom.courses.courseWork.addOnAttachments.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
262
262
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
263
263
  hasBody: false,
264
264
  shape: {
@@ -274,7 +274,7 @@ export function registerClassroomGeneratedTools(registry) {
274
274
  name: "classroom_courses_course_work_add_on_attachments_get",
275
275
  cud: "read",
276
276
  description: "Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following erro",
277
- method: { id: "classroom.courses.courseWork.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
277
+ method: { id: "classroom.courses.courseWork.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
278
278
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
279
279
  hasBody: false,
280
280
  shape: {
@@ -290,7 +290,7 @@ export function registerClassroomGeneratedTools(registry) {
290
290
  name: "classroom_courses_course_work_add_on_attachments_list",
291
291
  cud: "read",
292
292
  description: "Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachm",
293
- method: { id: "classroom.courses.courseWork.addOnAttachments.list", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "courseId"] },
293
+ method: { id: "classroom.courses.courseWork.addOnAttachments.list", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId"] },
294
294
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
295
295
  hasBody: false,
296
296
  shape: {
@@ -307,7 +307,7 @@ export function registerClassroomGeneratedTools(registry) {
307
307
  name: "classroom_courses_course_work_add_on_attachments_patch",
308
308
  cud: "update",
309
309
  description: "Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISS",
310
- method: { id: "classroom.courses.courseWork.addOnAttachments.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
310
+ method: { id: "classroom.courses.courseWork.addOnAttachments.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
311
311
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
312
312
  hasBody: true,
313
313
  shape: {
@@ -403,7 +403,7 @@ export function registerClassroomGeneratedTools(registry) {
403
403
  name: "classroom_courses_course_work_get_add_on_context",
404
404
  cud: "read",
405
405
  description: "Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call th",
406
- method: { id: "classroom.courses.courseWork.getAddOnContext", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnContext", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "courseId"] },
406
+ method: { id: "classroom.courses.courseWork.getAddOnContext", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{itemId}/addOnContext", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId"] },
407
407
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "addOnToken", "api": "addOnToken", "location": "query" }, { "field": "attachmentId", "api": "attachmentId", "location": "query" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
408
408
  hasBody: false,
409
409
  shape: {
@@ -468,7 +468,7 @@ export function registerClassroomGeneratedTools(registry) {
468
468
  name: "classroom_courses_course_work_rubrics_create",
469
469
  cud: "create",
470
470
  description: "Creates a rubric. The requesting user and course owner must have rubrics creation capabilities. For details, see [licensing requirements](https://developers.goo",
471
- method: { id: "classroom.courses.courseWork.rubrics.create", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseWorkId", "courseId"] },
471
+ method: { id: "classroom.courses.courseWork.rubrics.create", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId"] },
472
472
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
473
473
  hasBody: true,
474
474
  shape: {
@@ -483,7 +483,7 @@ export function registerClassroomGeneratedTools(registry) {
483
483
  name: "classroom_courses_course_work_rubrics_delete",
484
484
  cud: "delete",
485
485
  description: "Deletes a rubric. The requesting user and course owner must have rubrics creation capabilities. For details, see [licensing requirements](https://developers.goo",
486
- method: { id: "classroom.courses.courseWork.rubrics.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "id", "courseWorkId"] },
486
+ method: { id: "classroom.courses.courseWork.rubrics.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId", "id"] },
487
487
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
488
488
  hasBody: false,
489
489
  shape: {
@@ -498,7 +498,7 @@ export function registerClassroomGeneratedTools(registry) {
498
498
  name: "classroom_courses_course_work_rubrics_get",
499
499
  cud: "read",
500
500
  description: "Returns a rubric. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `N",
501
- method: { id: "classroom.courses.courseWork.rubrics.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["id", "courseWorkId", "courseId"] },
501
+ method: { id: "classroom.courses.courseWork.rubrics.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId", "id"] },
502
502
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
503
503
  hasBody: false,
504
504
  shape: {
@@ -513,7 +513,7 @@ export function registerClassroomGeneratedTools(registry) {
513
513
  name: "classroom_courses_course_work_rubrics_list",
514
514
  cud: "read",
515
515
  description: "Returns a list of rubrics that the requester is permitted to view. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `IN",
516
- method: { id: "classroom.courses.courseWork.rubrics.list", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseWorkId", "courseId"] },
516
+ method: { id: "classroom.courses.courseWork.rubrics.list", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId"] },
517
517
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
518
518
  hasBody: false,
519
519
  shape: {
@@ -529,7 +529,7 @@ export function registerClassroomGeneratedTools(registry) {
529
529
  name: "classroom_courses_course_work_rubrics_patch",
530
530
  cud: "update",
531
531
  description: "Updates a rubric. See google.classroom.v1.Rubric for details of which fields can be updated. Rubric update capabilities are [limited](/classroom/rubrics/limitat",
532
- method: { id: "classroom.courses.courseWork.rubrics.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "id", "courseWorkId"] },
532
+ method: { id: "classroom.courses.courseWork.rubrics.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/rubrics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId", "id"] },
533
533
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
534
534
  hasBody: true,
535
535
  shape: {
@@ -546,7 +546,7 @@ export function registerClassroomGeneratedTools(registry) {
546
546
  name: "classroom_courses_course_work_student_submissions_get",
547
547
  cud: "read",
548
548
  description: "Returns a student submission. * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, course work, or student submission o",
549
- method: { id: "classroom.courses.courseWork.studentSubmissions.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["id", "courseWorkId", "courseId"] },
549
+ method: { id: "classroom.courses.courseWork.studentSubmissions.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId", "id"] },
550
550
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
551
551
  hasBody: false,
552
552
  shape: {
@@ -580,7 +580,7 @@ export function registerClassroomGeneratedTools(registry) {
580
580
  name: "classroom_coursework_submissions_modify_attachments",
581
581
  cud: "update",
582
582
  description: "Modifies attachments of student submission. Attachments may only be added to student submissions belonging to course work objects with a `workType` of `ASSIGNME",
583
- method: { id: "classroom.courses.courseWork.studentSubmissions.modifyAttachments", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["id", "courseWorkId", "courseId"] },
583
+ method: { id: "classroom.courses.courseWork.studentSubmissions.modifyAttachments", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId", "id"] },
584
584
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
585
585
  hasBody: true,
586
586
  shape: {
@@ -613,7 +613,7 @@ export function registerClassroomGeneratedTools(registry) {
613
613
  name: "classroom_courses_course_work_student_submissions_reclaim",
614
614
  cud: "create",
615
615
  description: "Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student",
616
- method: { id: "classroom.courses.courseWork.studentSubmissions.reclaim", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseWorkId", "id", "courseId"] },
616
+ method: { id: "classroom.courses.courseWork.studentSubmissions.reclaim", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId", "id"] },
617
617
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
618
618
  hasBody: true,
619
619
  shape: {
@@ -645,7 +645,7 @@ export function registerClassroomGeneratedTools(registry) {
645
645
  name: "classroom_courses_course_work_student_submissions_turn_in",
646
646
  cud: "create",
647
647
  description: "Turns in a student submission. Turning in a student submission transfers ownership of attached Drive files to the teacher and may also update the submission sta",
648
- method: { id: "classroom.courses.courseWork.studentSubmissions.turnIn", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "id", "courseWorkId"] },
648
+ method: { id: "classroom.courses.courseWork.studentSubmissions.turnIn", httpMethod: "POST", path: "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "courseWorkId", "id"] },
649
649
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "courseWorkId", "api": "courseWorkId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
650
650
  hasBody: true,
651
651
  shape: {
@@ -678,7 +678,7 @@ export function registerClassroomGeneratedTools(registry) {
678
678
  name: "classroom_coursework_materials_addons_create",
679
679
  cud: "create",
680
680
  description: "Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error",
681
- method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.create", httpMethod: "POST", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "courseId"] },
681
+ method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.create", httpMethod: "POST", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId"] },
682
682
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "addOnToken", "api": "addOnToken", "location": "query" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
683
683
  hasBody: true,
684
684
  shape: {
@@ -695,7 +695,7 @@ export function registerClassroomGeneratedTools(registry) {
695
695
  name: "classroom_coursework_materials_addons_delete",
696
696
  cud: "delete",
697
697
  description: "Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISS",
698
- method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
698
+ method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
699
699
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
700
700
  hasBody: false,
701
701
  shape: {
@@ -711,7 +711,7 @@ export function registerClassroomGeneratedTools(registry) {
711
711
  name: "classroom_courses_course_work_materials_add_on_attachments_get",
712
712
  cud: "read",
713
713
  description: "Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following erro",
714
- method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
714
+ method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
715
715
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
716
716
  hasBody: false,
717
717
  shape: {
@@ -727,7 +727,7 @@ export function registerClassroomGeneratedTools(registry) {
727
727
  name: "classroom_courses_course_work_materials_add_on_attachments_list",
728
728
  cud: "read",
729
729
  description: "Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachm",
730
- method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.list", httpMethod: "GET", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "courseId"] },
730
+ method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.list", httpMethod: "GET", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId"] },
731
731
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
732
732
  hasBody: false,
733
733
  shape: {
@@ -744,7 +744,7 @@ export function registerClassroomGeneratedTools(registry) {
744
744
  name: "classroom_courses_course_work_materials_add_on_attachments_patch",
745
745
  cud: "update",
746
746
  description: "Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISS",
747
- method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "attachmentId", "courseId"] },
747
+ method: { id: "classroom.courses.courseWorkMaterials.addOnAttachments.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId", "attachmentId"] },
748
748
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
749
749
  hasBody: true,
750
750
  shape: {
@@ -804,7 +804,7 @@ export function registerClassroomGeneratedTools(registry) {
804
804
  name: "classroom_courses_course_work_materials_get_add_on_context",
805
805
  cud: "read",
806
806
  description: "Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call th",
807
- method: { id: "classroom.courses.courseWorkMaterials.getAddOnContext", httpMethod: "GET", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnContext", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["itemId", "courseId"] },
807
+ method: { id: "classroom.courses.courseWorkMaterials.getAddOnContext", httpMethod: "GET", path: "v1/courses/{courseId}/courseWorkMaterials/{itemId}/addOnContext", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "itemId"] },
808
808
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "path" }, { "field": "addOnToken", "api": "addOnToken", "location": "query" }, { "field": "attachmentId", "api": "attachmentId", "location": "query" }, { "field": "postId", "api": "postId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
809
809
  hasBody: false,
810
810
  shape: {
@@ -973,7 +973,7 @@ export function registerClassroomGeneratedTools(registry) {
973
973
  name: "classroom_courses_posts_add_on_attachments_get",
974
974
  cud: "read",
975
975
  description: "Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following erro",
976
- method: { id: "classroom.courses.posts.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["attachmentId", "courseId", "postId"] },
976
+ method: { id: "classroom.courses.posts.addOnAttachments.get", httpMethod: "GET", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "postId", "attachmentId"] },
977
977
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "postId", "api": "postId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
978
978
  hasBody: false,
979
979
  shape: {
@@ -1006,7 +1006,7 @@ export function registerClassroomGeneratedTools(registry) {
1006
1006
  name: "classroom_courses_posts_add_on_attachments_patch",
1007
1007
  cud: "update",
1008
1008
  description: "Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISS",
1009
- method: { id: "classroom.courses.posts.addOnAttachments.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["postId", "courseId", "attachmentId"] },
1009
+ method: { id: "classroom.courses.posts.addOnAttachments.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "postId", "attachmentId"] },
1010
1010
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "postId", "api": "postId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "query" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1011
1011
  hasBody: true,
1012
1012
  shape: {
@@ -1024,7 +1024,7 @@ export function registerClassroomGeneratedTools(registry) {
1024
1024
  name: "classroom_posts_addon_submissions_get",
1025
1025
  cud: "read",
1026
1026
  description: "Returns a student submission for an add-on attachment. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUME",
1027
- method: { id: "classroom.courses.posts.addOnAttachments.studentSubmissions.get", httpMethod: "GET", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}/studentSubmissions/{submissionId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "attachmentId", "postId", "submissionId"] },
1027
+ method: { id: "classroom.courses.posts.addOnAttachments.studentSubmissions.get", httpMethod: "GET", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}/studentSubmissions/{submissionId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "postId", "attachmentId", "submissionId"] },
1028
1028
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "postId", "api": "postId", "location": "path" }, { "field": "submissionId", "api": "submissionId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1029
1029
  hasBody: false,
1030
1030
  shape: {
@@ -1041,7 +1041,7 @@ export function registerClassroomGeneratedTools(registry) {
1041
1041
  name: "classroom_posts_addon_submissions_patch",
1042
1042
  cud: "update",
1043
1043
  description: "Updates data associated with an add-on attachment submission. Requires the add-on to have been the original creator of the attachment and the attachment to have",
1044
- method: { id: "classroom.courses.posts.addOnAttachments.studentSubmissions.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}/studentSubmissions/{submissionId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["submissionId", "postId", "attachmentId", "courseId"] },
1044
+ method: { id: "classroom.courses.posts.addOnAttachments.studentSubmissions.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/posts/{postId}/addOnAttachments/{attachmentId}/studentSubmissions/{submissionId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "postId", "attachmentId", "submissionId"] },
1045
1045
  params: [{ "field": "attachmentId", "api": "attachmentId", "location": "path" }, { "field": "courseId", "api": "courseId", "location": "path" }, { "field": "postId", "api": "postId", "location": "path" }, { "field": "submissionId", "api": "submissionId", "location": "path" }, { "field": "itemId", "api": "itemId", "location": "query" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1046
1046
  hasBody: true,
1047
1047
  shape: {
@@ -1060,7 +1060,7 @@ export function registerClassroomGeneratedTools(registry) {
1060
1060
  name: "classroom_courses_posts_get_add_on_context",
1061
1061
  cud: "read",
1062
1062
  description: "Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call th",
1063
- method: { id: "classroom.courses.posts.getAddOnContext", httpMethod: "GET", path: "v1/courses/{courseId}/posts/{postId}/addOnContext", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["postId", "courseId"] },
1063
+ method: { id: "classroom.courses.posts.getAddOnContext", httpMethod: "GET", path: "v1/courses/{courseId}/posts/{postId}/addOnContext", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "postId"] },
1064
1064
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "postId", "api": "postId", "location": "path" }, { "field": "addOnToken", "api": "addOnToken", "location": "query" }, { "field": "attachmentId", "api": "attachmentId", "location": "query" }, { "field": "itemId", "api": "itemId", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1065
1065
  hasBody: false,
1066
1066
  shape: {
@@ -1151,7 +1151,7 @@ export function registerClassroomGeneratedTools(registry) {
1151
1151
  name: "classroom_courses_student_groups_student_group_members_delete",
1152
1152
  cud: "delete",
1153
1153
  description: "Deletes a student group member. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to delete the reque",
1154
- method: { id: "classroom.courses.studentGroups.studentGroupMembers.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/studentGroups/{studentGroupId}/studentGroupMembers/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["studentGroupId", "userId", "courseId"] },
1154
+ method: { id: "classroom.courses.studentGroups.studentGroupMembers.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/studentGroups/{studentGroupId}/studentGroupMembers/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "studentGroupId", "userId"] },
1155
1155
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "studentGroupId", "api": "studentGroupId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1156
1156
  hasBody: false,
1157
1157
  shape: {
@@ -1166,7 +1166,7 @@ export function registerClassroomGeneratedTools(registry) {
1166
1166
  name: "classroom_courses_student_groups_student_group_members_list",
1167
1167
  cud: "read",
1168
1168
  description: "Returns a list of students in a group. This method returns the following error codes: * `NOT_FOUND` if the course or student group does not exist.",
1169
- method: { id: "classroom.courses.studentGroups.studentGroupMembers.list", httpMethod: "GET", path: "v1/courses/{courseId}/studentGroups/{studentGroupId}/studentGroupMembers", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["studentGroupId", "courseId"] },
1169
+ method: { id: "classroom.courses.studentGroups.studentGroupMembers.list", httpMethod: "GET", path: "v1/courses/{courseId}/studentGroups/{studentGroupId}/studentGroupMembers", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "studentGroupId"] },
1170
1170
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "studentGroupId", "api": "studentGroupId", "location": "path" }, { "field": "pageSize", "api": "pageSize", "location": "query" }, { "field": "pageToken", "api": "pageToken", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1171
1171
  hasBody: false,
1172
1172
  shape: {
@@ -1211,7 +1211,7 @@ export function registerClassroomGeneratedTools(registry) {
1211
1211
  name: "classroom_courses_students_get",
1212
1212
  cud: "read",
1213
1213
  description: "Returns a student of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view students of",
1214
- method: { id: "classroom.courses.students.get", httpMethod: "GET", path: "v1/courses/{courseId}/students/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["userId", "courseId"] },
1214
+ method: { id: "classroom.courses.students.get", httpMethod: "GET", path: "v1/courses/{courseId}/students/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "userId"] },
1215
1215
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1216
1216
  hasBody: false,
1217
1217
  shape: {
@@ -1254,7 +1254,7 @@ export function registerClassroomGeneratedTools(registry) {
1254
1254
  name: "classroom_courses_teachers_delete",
1255
1255
  cud: "delete",
1256
1256
  description: "Removes the specified teacher from the specified course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not perm",
1257
- method: { id: "classroom.courses.teachers.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/teachers/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["userId", "courseId"] },
1257
+ method: { id: "classroom.courses.teachers.delete", httpMethod: "DELETE", path: "v1/courses/{courseId}/teachers/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "userId"] },
1258
1258
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1259
1259
  hasBody: false,
1260
1260
  shape: {
@@ -1268,7 +1268,7 @@ export function registerClassroomGeneratedTools(registry) {
1268
1268
  name: "classroom_courses_teachers_get",
1269
1269
  cud: "read",
1270
1270
  description: "Returns a teacher of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view teachers of",
1271
- method: { id: "classroom.courses.teachers.get", httpMethod: "GET", path: "v1/courses/{courseId}/teachers/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["userId", "courseId"] },
1271
+ method: { id: "classroom.courses.teachers.get", httpMethod: "GET", path: "v1/courses/{courseId}/teachers/{userId}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "userId"] },
1272
1272
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
1273
1273
  hasBody: false,
1274
1274
  shape: {
@@ -1354,7 +1354,7 @@ export function registerClassroomGeneratedTools(registry) {
1354
1354
  name: "classroom_courses_topics_patch",
1355
1355
  cud: "update",
1356
1356
  description: "Updates one or more fields of a topic. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not create t",
1357
- method: { id: "classroom.courses.topics.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/topics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["id", "courseId"] },
1357
+ method: { id: "classroom.courses.topics.patch", httpMethod: "PATCH", path: "v1/courses/{courseId}/topics/{id}", baseUrl: "https://classroom.googleapis.com/", requiredParams: ["courseId", "id"] },
1358
1358
  params: [{ "field": "courseId", "api": "courseId", "location": "path" }, { "field": "id", "api": "id", "location": "path" }, { "field": "updateMask", "api": "updateMask", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
1359
1359
  hasBody: true,
1360
1360
  shape: {
@@ -424,7 +424,7 @@ export function registerDriveGeneratedTools(registry) {
424
424
  name: "drive_permissions_get",
425
425
  cud: "read",
426
426
  description: "Gets a permission by ID. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing).",
427
- method: { id: "drive.permissions.get", httpMethod: "GET", path: "files/{fileId}/permissions/{permissionId}", baseUrl: "https://www.googleapis.com/drive/v3/", requiredParams: ["permissionId", "fileId"] },
427
+ method: { id: "drive.permissions.get", httpMethod: "GET", path: "files/{fileId}/permissions/{permissionId}", baseUrl: "https://www.googleapis.com/drive/v3/", requiredParams: ["fileId", "permissionId"] },
428
428
  params: [{ "field": "fileId", "api": "fileId", "location": "path" }, { "field": "permissionId", "api": "permissionId", "location": "path" }, { "field": "supportsAllDrives", "api": "supportsAllDrives", "location": "query" }, { "field": "supportsTeamDrives", "api": "supportsTeamDrives", "location": "query" }, { "field": "useDomainAdminAccess", "api": "useDomainAdminAccess", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
429
429
  hasBody: false,
430
430
  shape: {
@@ -441,7 +441,7 @@ export function registerDriveGeneratedTools(registry) {
441
441
  name: "drive_replies_get",
442
442
  cud: "read",
443
443
  description: "Gets a reply by ID. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
444
- method: { id: "drive.replies.get", httpMethod: "GET", path: "files/{fileId}/comments/{commentId}/replies/{replyId}", baseUrl: "https://www.googleapis.com/drive/v3/", requiredParams: ["commentId", "replyId", "fileId"] },
444
+ method: { id: "drive.replies.get", httpMethod: "GET", path: "files/{fileId}/comments/{commentId}/replies/{replyId}", baseUrl: "https://www.googleapis.com/drive/v3/", requiredParams: ["fileId", "commentId", "replyId"] },
445
445
  params: [{ "field": "commentId", "api": "commentId", "location": "path" }, { "field": "fileId", "api": "fileId", "location": "path" }, { "field": "replyId", "api": "replyId", "location": "path" }, { "field": "includeDeleted", "api": "includeDeleted", "location": "query" }, { "field": "fields", "api": "fields", "location": "query" }],
446
446
  hasBody: false,
447
447
  shape: {
@@ -21,7 +21,7 @@ export function registerFormsGeneratedTools(registry) {
21
21
  name: "forms_forms_watches_delete",
22
22
  cud: "delete",
23
23
  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: ["watchId", "formId"] },
24
+ method: { id: "forms.forms.watches.delete", httpMethod: "DELETE", path: "v1/forms/{formId}/watches/{watchId}", baseUrl: "https://forms.googleapis.com/", requiredParams: ["formId", "watchId"] },
25
25
  params: [{ "field": "formId", "api": "formId", "location": "path" }, { "field": "watchId", "api": "watchId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
26
26
  hasBody: false,
27
27
  shape: {
@@ -303,7 +303,7 @@ export function registerGmailGeneratedTools(registry) {
303
303
  name: "gmail_users_settings_delegates_delete",
304
304
  cud: "delete",
305
305
  description: "Removes the specified delegate (which can be of any verification status), and revokes any verification that may have been required for using it. For more inform",
306
- method: { id: "gmail.users.settings.delegates.delete", httpMethod: "DELETE", path: "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["delegateEmail", "userId"] },
306
+ method: { id: "gmail.users.settings.delegates.delete", httpMethod: "DELETE", path: "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["userId", "delegateEmail"] },
307
307
  params: [{ "field": "delegateEmail", "api": "delegateEmail", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
308
308
  hasBody: false,
309
309
  shape: {
@@ -427,7 +427,7 @@ export function registerGmailGeneratedTools(registry) {
427
427
  name: "gmail_users_settings_forwarding_addresses_get",
428
428
  cud: "read",
429
429
  description: "Gets the specified forwarding address. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_s",
430
- method: { id: "gmail.users.settings.forwardingAddresses.get", httpMethod: "GET", path: "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["forwardingEmail", "userId"] },
430
+ method: { id: "gmail.users.settings.forwardingAddresses.get", httpMethod: "GET", path: "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["userId", "forwardingEmail"] },
431
431
  params: [{ "field": "forwardingEmail", "api": "forwardingEmail", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
432
432
  hasBody: false,
433
433
  shape: {
@@ -576,7 +576,7 @@ export function registerGmailGeneratedTools(registry) {
576
576
  name: "gmail_users_settings_send_as_smime_info_delete",
577
577
  cud: "delete",
578
578
  description: "Deletes the specified S/MIME config for the specified send-as alias. For more information, see [Manage S/MIME certificates with the Gmail API](https://developer",
579
- method: { id: "gmail.users.settings.sendAs.smimeInfo.delete", httpMethod: "DELETE", path: "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["id", "userId", "sendAsEmail"] },
579
+ method: { id: "gmail.users.settings.sendAs.smimeInfo.delete", httpMethod: "DELETE", path: "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["userId", "sendAsEmail", "id"] },
580
580
  params: [{ "field": "id", "api": "id", "location": "path" }, { "field": "sendAsEmail", "api": "sendAsEmail", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
581
581
  hasBody: false,
582
582
  shape: {
@@ -635,7 +635,7 @@ export function registerGmailGeneratedTools(registry) {
635
635
  name: "gmail_users_settings_send_as_smime_info_set_default",
636
636
  cud: "update",
637
637
  description: "Sets the default S/MIME config for the specified send-as alias. For more information, see [Manage S/MIME certificates with the Gmail API](https://developers.goo",
638
- method: { id: "gmail.users.settings.sendAs.smimeInfo.setDefault", httpMethod: "POST", path: "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["id", "userId", "sendAsEmail"] },
638
+ method: { id: "gmail.users.settings.sendAs.smimeInfo.setDefault", httpMethod: "POST", path: "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault", baseUrl: "https://gmail.googleapis.com/", requiredParams: ["userId", "sendAsEmail", "id"] },
639
639
  params: [{ "field": "id", "api": "id", "location": "path" }, { "field": "sendAsEmail", "api": "sendAsEmail", "location": "path" }, { "field": "userId", "api": "userId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
640
640
  hasBody: false,
641
641
  shape: {
@@ -22,7 +22,7 @@ export function registerLicensingGeneratedTools(registry) {
22
22
  name: "licensing_license_assignments_get",
23
23
  cud: "read",
24
24
  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", "userId", "skuId"] },
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"] },
26
26
  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
27
  hasBody: false,
28
28
  shape: {
@@ -68,7 +68,7 @@ export function registerLicensingGeneratedTools(registry) {
68
68
  name: "licensing_license_assignments_list_for_product_and_sku",
69
69
  cud: "read",
70
70
  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: ["customerId", "productId", "skuId"] },
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"] },
72
72
  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
73
  hasBody: false,
74
74
  shape: {
@@ -85,7 +85,7 @@ export function registerLicensingGeneratedTools(registry) {
85
85
  name: "licensing_license_assignments_patch",
86
86
  cud: "update",
87
87
  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", "userId", "skuId"] },
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"] },
89
89
  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
90
  hasBody: true,
91
91
  shape: {
@@ -101,7 +101,7 @@ export function registerLicensingGeneratedTools(registry) {
101
101
  name: "licensing_license_assignments_update",
102
102
  cud: "update",
103
103
  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: ["skuId", "userId", "productId"] },
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"] },
105
105
  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
106
  hasBody: true,
107
107
  shape: {
@@ -100,7 +100,7 @@ export function registerResellerGeneratedTools(registry) {
100
100
  name: "reseller_subscriptions_activate",
101
101
  cud: "create",
102
102
  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: ["subscriptionId", "customerId"] },
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"] },
104
104
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
105
105
  hasBody: false,
106
106
  shape: {
@@ -129,7 +129,7 @@ export function registerResellerGeneratedTools(registry) {
129
129
  name: "reseller_subscriptions_change_renewal_settings",
130
130
  cud: "create",
131
131
  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: ["subscriptionId", "customerId"] },
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"] },
133
133
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
134
134
  hasBody: true,
135
135
  shape: {
@@ -144,7 +144,7 @@ export function registerResellerGeneratedTools(registry) {
144
144
  name: "reseller_subscriptions_change_seats",
145
145
  cud: "create",
146
146
  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: ["subscriptionId", "customerId"] },
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"] },
148
148
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
149
149
  hasBody: true,
150
150
  shape: {
@@ -159,7 +159,7 @@ export function registerResellerGeneratedTools(registry) {
159
159
  name: "reseller_subscriptions_delete",
160
160
  cud: "delete",
161
161
  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: ["subscriptionId", "customerId", "deletionType"] },
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"] },
163
163
  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
164
  hasBody: false,
165
165
  shape: {
@@ -174,7 +174,7 @@ export function registerResellerGeneratedTools(registry) {
174
174
  name: "reseller_subscriptions_get",
175
175
  cud: "read",
176
176
  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: ["subscriptionId", "customerId"] },
177
+ method: { id: "reseller.subscriptions.get", httpMethod: "GET", path: "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", baseUrl: "https://reseller.googleapis.com/", requiredParams: ["customerId", "subscriptionId"] },
178
178
  params: [{ "field": "customerId", "api": "customerId", "location": "path" }, { "field": "subscriptionId", "api": "subscriptionId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
179
179
  hasBody: false,
180
180
  shape: {
@@ -122,7 +122,7 @@ export function registerScriptGeneratedTools(registry) {
122
122
  name: "script_projects_deployments_update",
123
123
  cud: "update",
124
124
  description: "Updates a deployment of an Apps Script project.",
125
- method: { id: "script.projects.deployments.update", httpMethod: "PUT", path: "v1/projects/{scriptId}/deployments/{deploymentId}", baseUrl: "https://script.googleapis.com/", requiredParams: ["deploymentId", "scriptId"] },
125
+ method: { id: "script.projects.deployments.update", httpMethod: "PUT", path: "v1/projects/{scriptId}/deployments/{deploymentId}", baseUrl: "https://script.googleapis.com/", requiredParams: ["scriptId", "deploymentId"] },
126
126
  params: [{ "field": "deploymentId", "api": "deploymentId", "location": "path" }, { "field": "scriptId", "api": "scriptId", "location": "path" }, { "field": "fields", "api": "fields", "location": "query" }],
127
127
  hasBody: true,
128
128
  shape: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-google-multi",
3
- "version": "5.4.0",
3
+ "version": "5.4.1-alpha.1",
4
4
  "description": "Local MCP server for Google Workspace (Gmail, Drive, Calendar, Sheets, Docs, Contacts, Tasks, Meet, Search Console, +Forms/Chat/Admin) across multiple accounts — OAuth-only, encrypted token storage, deny-by-default writes.",
5
5
  "type": "module",
6
6
  "license": "MIT",