diff --git a/.changeset/feat-new-service-registrations.md b/.changeset/feat-new-service-registrations.md new file mode 100644 index 00000000..b3d545ce --- /dev/null +++ b/.changeset/feat-new-service-registrations.md @@ -0,0 +1 @@ +---\n"@googleworkspace/cli": patch\n---\n\nfeat(services): register Apps Script and Google Photos APIs diff --git a/src/services.rs b/src/services.rs index 40a4b816..5b4eb5a9 100644 --- a/src/services.rs +++ b/src/services.rs @@ -24,30 +24,6 @@ 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", @@ -55,40 +31,40 @@ pub const SERVICES: &[ServiceEntry] = &[ 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"], @@ -96,6 +72,12 @@ pub const SERVICES: &[ServiceEntry] = &[ 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", @@ -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", @@ -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]