Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changeset/feat-new-service-registrations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---\n"@googleworkspace/cli": patch\n---\n\nfeat(services): register Apps Script and Google Photos APIs
120 changes: 70 additions & 50 deletions src/services.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,78 +24,60 @@ pub struct ServiceEntry {

/// All known services with metadata.
pub const SERVICES: &[ServiceEntry] = &[
ServiceEntry {
aliases: &["drive"],
api_name: "drive",
version: "v3",
description: "Manage files, folders, and shared drives",
},
ServiceEntry {
aliases: &["sheets"],
api_name: "sheets",
version: "v4",
description: "Read and write spreadsheets",
},
ServiceEntry {
aliases: &["gmail"],
api_name: "gmail",
version: "v1",
description: "Send, read, and manage email",
},
ServiceEntry {
aliases: &["calendar"],
api_name: "calendar",
version: "v3",
description: "Manage calendars and events",
},
ServiceEntry {
aliases: &["admin-reports", "reports"],
api_name: "admin",
version: "reports_v1",
description: "Audit logs and usage reports",
},
ServiceEntry {
aliases: &["docs"],
api_name: "docs",
version: "v1",
description: "Read and write Google Docs",
aliases: &["calendar"],
api_name: "calendar",
version: "v3",
description: "Manage calendars and events",
},
ServiceEntry {
aliases: &["slides"],
api_name: "slides",
aliases: &["chat"],
api_name: "chat",
version: "v1",
description: "Read and write presentations",
description: "Manage Chat spaces and messages",
},
ServiceEntry {
aliases: &["tasks"],
api_name: "tasks",
aliases: &["classroom"],
api_name: "classroom",
version: "v1",
description: "Manage task lists and tasks",
description: "Manage classes, rosters, and coursework",
},
ServiceEntry {
aliases: &["people"],
api_name: "people",
aliases: &["docs"],
api_name: "docs",
version: "v1",
description: "Manage contacts and profiles",
description: "Read and write Google Docs",
},
ServiceEntry {
aliases: &["chat"],
api_name: "chat",
version: "v1",
description: "Manage Chat spaces and messages",
aliases: &["drive"],
api_name: "drive",
version: "v3",
description: "Manage files, folders, and shared drives",
},
ServiceEntry {
aliases: &["classroom"],
api_name: "classroom",
aliases: &["events"],
api_name: "workspaceevents",
version: "v1",
description: "Manage classes, rosters, and coursework",
description: "Subscribe to Google Workspace events",
},
ServiceEntry {
aliases: &["forms"],
api_name: "forms",
version: "v1",
description: "Read and write Google Forms",
},
ServiceEntry {
aliases: &["gmail"],
api_name: "gmail",
version: "v1",
description: "Send, read, and manage email",
},
ServiceEntry {
aliases: &["keep"],
api_name: "keep",
Expand All @@ -108,18 +90,48 @@ pub const SERVICES: &[ServiceEntry] = &[
version: "v2",
description: "Manage Google Meet conferences",
},
ServiceEntry {
aliases: &["events"],
api_name: "workspaceevents",
version: "v1",
description: "Subscribe to Google Workspace events",
},
ServiceEntry {
aliases: &["modelarmor"],
api_name: "modelarmor",
version: "v1",
description: "Filter user-generated content for safety",
},
ServiceEntry {
aliases: &["people"],
api_name: "people",
version: "v1",
description: "Manage contacts and profiles",
},
ServiceEntry {
aliases: &["photos"],
api_name: "photoslibrary",
version: "v1",
description: "Manage Google Photos library",
},
ServiceEntry {
aliases: &["script"],
api_name: "script",
version: "v1",
description: "Manage Apps Script projects and deployments",
},
ServiceEntry {
aliases: &["sheets"],
api_name: "sheets",
version: "v4",
description: "Read and write spreadsheets",
},
ServiceEntry {
aliases: &["slides"],
api_name: "slides",
version: "v1",
description: "Read and write presentations",
},
ServiceEntry {
aliases: &["tasks"],
api_name: "tasks",
version: "v1",
description: "Manage task lists and tasks",
},
ServiceEntry {
aliases: &["workflow", "wf"],
api_name: "workflow",
Expand Down Expand Up @@ -164,6 +176,14 @@ mod tests {
resolve_service("reports").unwrap(),
("admin".to_string(), "reports_v1".to_string())
);
assert_eq!(
resolve_service("photos").unwrap(),
("photoslibrary".to_string(), "v1".to_string())
);
assert_eq!(
resolve_service("script").unwrap(),
("script".to_string(), "v1".to_string())
);
}

#[test]
Expand Down
Loading