Clojure wrapper for the Google Groups Settings API (v1).
Provides idiomatic Clojure functions for reading and writing the per-group settings object (posting permissions, moderation, external-member policy, message-deny notification text, etc. — ~70 setting fields).
This is NOT the Directory API. The Directory API (goog.workspace.admin) handles group identity (email, name, members). Groups Settings handles group BEHAVIOR — what the group does once it exists. Both APIs operate on the same group; they cover different surfaces.
Auth: use csl/scoped-delegated-credentials with the appropriate scope and a super-admin impersonation target:
SCOPE NOTE
apps.groups.settings is the only scope exposed by Google for this API;
it grants read + write. There is no .readonly variant.
Model class — the Java SDK calls the per-group settings object
com.google.api.services.groupssettings.model.Groups (plural, despite
describing settings for one group). It is intentionally NOT imported to
avoid confusion with Directory's Group. Each instance describes the
settings of one group.
Enum-valued fields (:who-can-post-message, :who-can-view-group,
:message-moderation-level, ~25 others) take SCREAMING_SNAKE_CASE string
values per the Google API docs (e.g. "ALL_MEMBERS_CAN_POST",
"ANYONE_CAN_VIEW"). This wrapper does not auto-coerce keyword forms
inside body fields — pass the canonical string. The full enum-value
reference lives in Google's Groups Settings API documentation.
All functions return {:data ...} on success or {:error ...} on failure.
Clojure wrapper for the Google Groups Settings API (v1).
Provides idiomatic Clojure functions for reading and writing the
per-group settings object (posting permissions, moderation, external-member
policy, message-deny notification text, etc. — ~70 setting fields).
This is NOT the Directory API. The Directory API
(goog.workspace.admin) handles group identity (email, name, members).
Groups Settings handles group BEHAVIOR — what the group does once it
exists. Both APIs operate on the same group; they cover different surfaces.
Auth: use csl/scoped-delegated-credentials with the appropriate scope
and a super-admin impersonation target:
- GroupssettingsScopes/APPS_GROUPS_SETTINGS (read + write — only scope)
SCOPE NOTE
`apps.groups.settings` is the only scope exposed by Google for this API;
it grants read + write. There is no `.readonly` variant.
Model class — the Java SDK calls the per-group settings object
`com.google.api.services.groupssettings.model.Groups` (plural, despite
describing settings for one group). It is intentionally NOT imported to
avoid confusion with Directory's `Group`. Each instance describes the
settings of one group.
Enum-valued fields (`:who-can-post-message`, `:who-can-view-group`,
`:message-moderation-level`, ~25 others) take SCREAMING_SNAKE_CASE string
values per the Google API docs (e.g. "ALL_MEMBERS_CAN_POST",
"ANYONE_CAN_VIEW"). This wrapper does not auto-coerce keyword forms
inside body fields — pass the canonical string. The full enum-value
reference lives in Google's Groups Settings API documentation.
All functions return {:data ...} on success or {:error ...} on failure.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |