// Copyright 2024 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // Package groupssettings provides access to the Groups Settings API. // // For product documentation, see: https://developers.google.com/google-apps/groups-settings/get_started // // # Library status // // These client libraries are officially supported by Google. However, this // library is considered complete and is in maintenance mode. This means // that we will address critical bugs and security issues but will not add // any new features. // // When possible, we recommend using our newer // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go) // that are still actively being worked and iterated on. // // # Creating a client // // Usage example: // // import "google.golang.org/api/groupssettings/v1" // ... // ctx := context.Background() // groupssettingsService, err := groupssettings.NewService(ctx) // // In this example, Google Application Default Credentials are used for // authentication. For information on how to create and obtain Application // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. // // # Other authentication options // // To use an API key for authentication (note: some APIs do not support API // keys), use [google.golang.org/api/option.WithAPIKey]: // // groupssettingsService, err := groupssettings.NewService(ctx, option.WithAPIKey("AIza...")) // // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth // flow, use [google.golang.org/api/option.WithTokenSource]: // // config := &oauth2.Config{...} // // ... // token, err := config.Exchange(ctx, ...) // groupssettingsService, err := groupssettings.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See [google.golang.org/api/option.ClientOption] for details on options. package groupssettings // import "google.golang.org/api/groupssettings/v1" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" googleapi "google.golang.org/api/googleapi" internal "google.golang.org/api/internal" gensupport "google.golang.org/api/internal/gensupport" option "google.golang.org/api/option" internaloption "google.golang.org/api/option/internaloption" htransport "google.golang.org/api/transport/http" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = internaloption.WithDefaultEndpoint var _ = internal.Version const apiId = "groupssettings:v1" const apiName = "groupssettings" const apiVersion = "v1" const basePath = "https://www.googleapis.com/groups/v1/groups/" const basePathTemplate = "https://www.UNIVERSE_DOMAIN/groups/v1/groups/" // OAuth2 scopes used by this API. const ( // View and manage the settings of a G Suite group AppsGroupsSettingsScope = "https://www.googleapis.com/auth/apps.groups.settings" ) // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { scopesOption := internaloption.WithDefaultScopes( "https://www.googleapis.com/auth/apps.groups.settings", ) // NOTE: prepend, so we don't override user-specified scopes. opts = append([]option.ClientOption{scopesOption}, opts...) opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate)) opts = append(opts, internaloption.EnableNewAuthLibrary()) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // New creates a new Service. It uses the provided http.Client for requests. // // Deprecated: please use NewService instead. // To provide a custom HTTP client, use option.WithHTTPClient. // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Groups = NewGroupsService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Groups *GroupsService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewGroupsService(s *Service) *GroupsService { rs := &GroupsService{s: s} return rs } type GroupsService struct { s *Service } // Groups: JSON template for Group resource type Groups struct { // AllowExternalMembers: Identifies whether members external to your // organization can join the group. Possible values are: // - true: G Suite users external to your organization can become members of // this group. // - false: Users not belonging to the organization are not allowed to become // members of this group. AllowExternalMembers string `json:"allowExternalMembers,omitempty"` // AllowGoogleCommunication: Deprecated. Allows Google to contact administrator // of the group. // - true: Allow Google to contact managers of this group. Occasionally Google // may send updates on the latest features, ask for input on new features, or // ask for permission to highlight your group. // - false: Google can not contact managers of this group. AllowGoogleCommunication string `json:"allowGoogleCommunication,omitempty"` // AllowWebPosting: Allows posting from web. Possible values are: // - true: Allows any member to post to the group forum. // - false: Members only use Gmail to communicate with the group. AllowWebPosting string `json:"allowWebPosting,omitempty"` // ArchiveOnly: Allows the group to be archived only. Possible values are: // - true: Group is archived and the group is inactive. New messages to this // group are rejected. The older archived messages are browseable and // searchable. // - If true, the whoCanPostMessage property is set to NONE_CAN_POST. // - If reverted from true to false, whoCanPostMessages is set to // ALL_MANAGERS_CAN_POST. // - false: The group is active and can receive messages. // - When false, updating whoCanPostMessage to NONE_CAN_POST, results in an // error. ArchiveOnly string `json:"archiveOnly,omitempty"` // CustomFooterText: Set the content of custom footer text. The maximum number // of characters is 1,000. CustomFooterText string `json:"customFooterText,omitempty"` // CustomReplyTo: An email address used when replying to a message if the // replyTo property is set to REPLY_TO_CUSTOM. This address is defined by an // account administrator. // - When the group's ReplyTo property is set to REPLY_TO_CUSTOM, the // customReplyTo property holds a custom email address used when replying to a // message. // - If the group's ReplyTo property is set to REPLY_TO_CUSTOM, the // customReplyTo property must have a text value or an error is returned. CustomReplyTo string `json:"customReplyTo,omitempty"` // CustomRolesEnabledForSettingsToBeMerged: Specifies whether the group has a // custom role that's included in one of the settings being merged. This field // is read-only and update/patch requests to it are ignored. Possible values // are: // - true // - false CustomRolesEnabledForSettingsToBeMerged string `json:"customRolesEnabledForSettingsToBeMerged,omitempty"` // DefaultMessageDenyNotificationText: When a message is rejected, this is text // for the rejection notification sent to the message's author. By default, // this property is empty and has no value in the API's response body. The // maximum notification text size is 10,000 characters. Note: Requires // sendMessageDenyNotification property to be true. DefaultMessageDenyNotificationText string `json:"defaultMessageDenyNotificationText,omitempty"` // DefaultSender: Default sender for members who can post messages as the // group. Possible values are: - `DEFAULT_SELF`: By default messages will be // sent from the user - `GROUP`: By default messages will be sent from the // group DefaultSender string `json:"default_sender,omitempty"` // Description: Description of the group. This property value may be an empty // string if no group description has been entered. If entered, the maximum // group description is no more than 300 characters. Description string `json:"description,omitempty"` // Email: The group's email address. This property can be updated using the // Directory API. Note: Only a group owner can change a group's email address. // A group manager can't do this. // When you change your group's address using the Directory API or the control // panel, you are changing the address your subscribers use to send email and // the web address people use to access your group. People can't reach your // group by visiting the old address. Email string `json:"email,omitempty"` // EnableCollaborativeInbox: Specifies whether a collaborative inbox will // remain turned on for the group. Possible values are: // - true // - false EnableCollaborativeInbox string `json:"enableCollaborativeInbox,omitempty"` // FavoriteRepliesOnTop: Indicates if favorite replies should be displayed // above other replies. // - true: Favorite replies will be displayed above other replies. // - false: Favorite replies will not be displayed above other replies. FavoriteRepliesOnTop string `json:"favoriteRepliesOnTop,omitempty"` // IncludeCustomFooter: Whether to include custom footer. Possible values are: // // - true // - false IncludeCustomFooter string `json:"includeCustomFooter,omitempty"` // IncludeInGlobalAddressList: Enables the group to be included in the Global // Address List. For more information, see the help center. Possible values // are: // - true: Group is included in the Global Address List. // - false: Group is not included in the Global Address List. IncludeInGlobalAddressList string `json:"includeInGlobalAddressList,omitempty"` // IsArchived: Allows the Group contents to be archived. Possible values are: // // - true: Archive messages sent to the group. // - false: Do not keep an archive of messages sent to this group. If false, // previously archived messages remain in the archive. IsArchived string `json:"isArchived,omitempty"` // Kind: The type of the resource. It is always groupsSettings#groups. Kind string `json:"kind,omitempty"` // MaxMessageBytes: Deprecated. The maximum size of a message is 25Mb. MaxMessageBytes int64 `json:"maxMessageBytes,omitempty"` // MembersCanPostAsTheGroup: Enables members to post messages as the group. // Possible values are: // - true: Group member can post messages using the group's email address // instead of their own email address. Message appear to originate from the // group itself. Note: When true, any message moderation settings on individual // users or new members do not apply to posts made on behalf of the group. // - false: Members can not post in behalf of the group's email address. MembersCanPostAsTheGroup string `json:"membersCanPostAsTheGroup,omitempty"` // MessageDisplayFont: Deprecated. The default message display font always has // a value of "DEFAULT_FONT". MessageDisplayFont string `json:"messageDisplayFont,omitempty"` // MessageModerationLevel: Moderation level of incoming messages. Possible // values are: // - MODERATE_ALL_MESSAGES: All messages are sent to the group owner's email // address for approval. If approved, the message is sent to the group. // - MODERATE_NON_MEMBERS: All messages from non group members are sent to the // group owner's email address for approval. If approved, the message is sent // to the group. // - MODERATE_NEW_MEMBERS: All messages from new members are sent to the group // owner's email address for approval. If approved, the message is sent to the // group. // - MODERATE_NONE: No moderator approval is required. Messages are delivered // directly to the group. Note: When the whoCanPostMessage is set to // ANYONE_CAN_POST, we recommend the messageModerationLevel be set to // MODERATE_NON_MEMBERS to protect the group from possible spam. // When memberCanPostAsTheGroup is true, any message moderation settings on // individual users or new members will not apply to posts made on behalf of // the group. MessageModerationLevel string `json:"messageModerationLevel,omitempty"` // Name: Name of the group, which has a maximum size of 75 characters. Name string `json:"name,omitempty"` // PrimaryLanguage: The primary language for group. For a group's primary // language use the language tags from the G Suite languages found at G Suite // Email Settings API Email Language Tags. PrimaryLanguage string `json:"primaryLanguage,omitempty"` // ReplyTo: Specifies who receives the default reply. Possible values are: // - REPLY_TO_CUSTOM: For replies to messages, use the group's custom email // address. // When the group's ReplyTo property is set to REPLY_TO_CUSTOM, the // customReplyTo property holds the custom email address used when replying to // a message. If the group's ReplyTo property is set to REPLY_TO_CUSTOM, the // customReplyTo property must have a value. Otherwise an error is returned. // // - REPLY_TO_SENDER: The reply sent to author of message. // - REPLY_TO_LIST: This reply message is sent to the group. // - REPLY_TO_OWNER: The reply is sent to the owner(s) of the group. This does // not include the group's managers. // - REPLY_TO_IGNORE: Group users individually decide where the message reply // is sent. // - REPLY_TO_MANAGERS: This reply message is sent to the group's managers, // which includes all managers and the group owner. ReplyTo string `json:"replyTo,omitempty"` // SendMessageDenyNotification: Allows a member to be notified if the member's // message to the group is denied by the group owner. Possible values are: // - true: When a message is rejected, send the deny message notification to // the message author. // The defaultMessageDenyNotificationText property is dependent on the // sendMessageDenyNotification property being true. // // - false: When a message is rejected, no notification is sent. SendMessageDenyNotification string `json:"sendMessageDenyNotification,omitempty"` // ShowInGroupDirectory: Deprecated. This is merged into the new // whoCanDiscoverGroup setting. Allows the group to be visible in the Groups // Directory. Possible values are: // - true: All groups in the account are listed in the Groups directory. // - false: All groups in the account are not listed in the directory. ShowInGroupDirectory string `json:"showInGroupDirectory,omitempty"` // SpamModerationLevel: Specifies moderation levels for messages detected as // spam. Possible values are: // - ALLOW: Post the message to the group. // - MODERATE: Send the message to the moderation queue. This is the default. // // - SILENTLY_MODERATE: Send the message to the moderation queue, but do not // send notification to moderators. // - REJECT: Immediately reject the message. SpamModerationLevel string `json:"spamModerationLevel,omitempty"` // WhoCanAdd: Deprecated. This is merged into the new whoCanModerateMembers // setting. Permissions to add members. Possible values are: // - ALL_MEMBERS_CAN_ADD: Managers and members can directly add new members. // - ALL_MANAGERS_CAN_ADD: Only managers can directly add new members. this // includes the group's owner. // - ALL_OWNERS_CAN_ADD: Only owners can directly add new members. // - NONE_CAN_ADD: No one can directly add new members. WhoCanAdd string `json:"whoCanAdd,omitempty"` // WhoCanAddReferences: Deprecated. This functionality is no longer supported // in the Google Groups UI. The value is always "NONE". WhoCanAddReferences string `json:"whoCanAddReferences,omitempty"` // WhoCanApproveMembers: Specifies who can approve members who ask to join // groups. This permission will be deprecated once it is merged into the new // whoCanModerateMembers setting. Possible values are: // - ALL_MEMBERS_CAN_APPROVE // - ALL_MANAGERS_CAN_APPROVE // - ALL_OWNERS_CAN_APPROVE // - NONE_CAN_APPROVE WhoCanApproveMembers string `json:"whoCanApproveMembers,omitempty"` // WhoCanApproveMessages: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can approve pending messages in // the moderation queue. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanApproveMessages string `json:"whoCanApproveMessages,omitempty"` // WhoCanAssignTopics: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to assign topics in a forum to // another user. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanAssignTopics string `json:"whoCanAssignTopics,omitempty"` // WhoCanAssistContent: Specifies who can moderate metadata. Possible values // are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanAssistContent string `json:"whoCanAssistContent,omitempty"` // WhoCanBanUsers: Specifies who can deny membership to users. This permission // will be deprecated once it is merged into the new whoCanModerateMembers // setting. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanBanUsers string `json:"whoCanBanUsers,omitempty"` // WhoCanContactOwner: Permission to contact owner of the group via web UI. // Possible values are: // - ALL_IN_DOMAIN_CAN_CONTACT // - ALL_MANAGERS_CAN_CONTACT // - ALL_MEMBERS_CAN_CONTACT // - ANYONE_CAN_CONTACT // - ALL_OWNERS_CAN_CONTACT WhoCanContactOwner string `json:"whoCanContactOwner,omitempty"` // WhoCanDeleteAnyPost: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can delete replies to topics. // (Authors can always delete their own posts). Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanDeleteAnyPost string `json:"whoCanDeleteAnyPost,omitempty"` // WhoCanDeleteTopics: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can delete topics. Possible // values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanDeleteTopics string `json:"whoCanDeleteTopics,omitempty"` // WhoCanDiscoverGroup: Specifies the set of users for whom this group is // discoverable. Possible values are: // - ANYONE_CAN_DISCOVER // - ALL_IN_DOMAIN_CAN_DISCOVER // - ALL_MEMBERS_CAN_DISCOVER WhoCanDiscoverGroup string `json:"whoCanDiscoverGroup,omitempty"` // WhoCanEnterFreeFormTags: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to enter free form tags for topics // in a forum. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanEnterFreeFormTags string `json:"whoCanEnterFreeFormTags,omitempty"` // WhoCanHideAbuse: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can hide posts by reporting // them as abuse. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanHideAbuse string `json:"whoCanHideAbuse,omitempty"` // WhoCanInvite: Deprecated. This is merged into the new whoCanModerateMembers // setting. Permissions to invite new members. Possible values are: // - ALL_MEMBERS_CAN_INVITE: Managers and members can invite a new member // candidate. // - ALL_MANAGERS_CAN_INVITE: Only managers can invite a new member. This // includes the group's owner. // - ALL_OWNERS_CAN_INVITE: Only owners can invite a new member. // - NONE_CAN_INVITE: No one can invite a new member candidate. WhoCanInvite string `json:"whoCanInvite,omitempty"` // WhoCanJoin: Permission to join group. Possible values are: // - ANYONE_CAN_JOIN: Anyone in the account domain can join. This includes // accounts with multiple domains. // - ALL_IN_DOMAIN_CAN_JOIN: Any Internet user who is outside your domain can // access your Google Groups service and view the list of groups in your Groups // directory. Warning: Group owners can add external addresses, outside of the // domain to their groups. They can also allow people outside your domain to // join their groups. If you later disable this option, any external addresses // already added to users' groups remain in those groups. // - INVITED_CAN_JOIN: Candidates for membership can be invited to join. // - CAN_REQUEST_TO_JOIN: Non members can request an invitation to join. WhoCanJoin string `json:"whoCanJoin,omitempty"` // WhoCanLeaveGroup: Permission to leave the group. Possible values are: // - ALL_MANAGERS_CAN_LEAVE // - ALL_MEMBERS_CAN_LEAVE // - NONE_CAN_LEAVE WhoCanLeaveGroup string `json:"whoCanLeaveGroup,omitempty"` // WhoCanLockTopics: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can prevent users from posting // replies to topics. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanLockTopics string `json:"whoCanLockTopics,omitempty"` // WhoCanMakeTopicsSticky: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can make topics appear at the // top of the topic list. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanMakeTopicsSticky string `json:"whoCanMakeTopicsSticky,omitempty"` // WhoCanMarkDuplicate: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to mark a topic as a duplicate of // another topic. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanMarkDuplicate string `json:"whoCanMarkDuplicate,omitempty"` // WhoCanMarkFavoriteReplyOnAnyTopic: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to mark any other user's post as a // favorite reply. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanMarkFavoriteReplyOnAnyTopic string `json:"whoCanMarkFavoriteReplyOnAnyTopic,omitempty"` // WhoCanMarkFavoriteReplyOnOwnTopic: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to mark a post for a topic they // started as a favorite reply. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanMarkFavoriteReplyOnOwnTopic string `json:"whoCanMarkFavoriteReplyOnOwnTopic,omitempty"` // WhoCanMarkNoResponseNeeded: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to mark a topic as not needing a // response. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanMarkNoResponseNeeded string `json:"whoCanMarkNoResponseNeeded,omitempty"` // WhoCanModerateContent: Specifies who can moderate content. Possible values // are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanModerateContent string `json:"whoCanModerateContent,omitempty"` // WhoCanModerateMembers: Specifies who can manage members. Possible values // are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanModerateMembers string `json:"whoCanModerateMembers,omitempty"` // WhoCanModifyMembers: Deprecated. This is merged into the new // whoCanModerateMembers setting. Specifies who can change group members' // roles. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanModifyMembers string `json:"whoCanModifyMembers,omitempty"` // WhoCanModifyTagsAndCategories: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to change tags and categories. // Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanModifyTagsAndCategories string `json:"whoCanModifyTagsAndCategories,omitempty"` // WhoCanMoveTopicsIn: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can move topics into the group // or forum. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanMoveTopicsIn string `json:"whoCanMoveTopicsIn,omitempty"` // WhoCanMoveTopicsOut: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can move topics out of the // group or forum. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanMoveTopicsOut string `json:"whoCanMoveTopicsOut,omitempty"` // WhoCanPostAnnouncements: Deprecated. This is merged into the new // whoCanModerateContent setting. Specifies who can post announcements, a // special topic type. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - OWNERS_ONLY // - NONE WhoCanPostAnnouncements string `json:"whoCanPostAnnouncements,omitempty"` // WhoCanPostMessage: Permissions to post messages. Possible values are: // - NONE_CAN_POST: The group is disabled and archived. No one can post a // message to this group. // - When archiveOnly is false, updating whoCanPostMessage to NONE_CAN_POST, // results in an error. // - If archiveOnly is reverted from true to false, whoCanPostMessages is set // to ALL_MANAGERS_CAN_POST. // - ALL_MANAGERS_CAN_POST: Managers, including group owners, can post // messages. // - ALL_MEMBERS_CAN_POST: Any group member can post a message. // - ALL_OWNERS_CAN_POST: Only group owners can post a message. // - ALL_IN_DOMAIN_CAN_POST: Anyone in the account can post a message. // - ANYONE_CAN_POST: Any Internet user who outside your account can access // your Google Groups service and post a message. Note: When whoCanPostMessage // is set to ANYONE_CAN_POST, we recommend the messageModerationLevel be set to // MODERATE_NON_MEMBERS to protect the group from possible spam. WhoCanPostMessage string `json:"whoCanPostMessage,omitempty"` // WhoCanTakeTopics: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to take topics in a forum. Possible // values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanTakeTopics string `json:"whoCanTakeTopics,omitempty"` // WhoCanUnassignTopic: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to unassign any topic in a forum. // Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanUnassignTopic string `json:"whoCanUnassignTopic,omitempty"` // WhoCanUnmarkFavoriteReplyOnAnyTopic: Deprecated. This is merged into the new // whoCanAssistContent setting. Permission to unmark any post from a favorite // reply. Possible values are: // - ALL_MEMBERS // - OWNERS_AND_MANAGERS // - MANAGERS_ONLY // - OWNERS_ONLY // - NONE WhoCanUnmarkFavoriteReplyOnAnyTopic string `json:"whoCanUnmarkFavoriteReplyOnAnyTopic,omitempty"` // WhoCanViewGroup: Permissions to view group messages. Possible values are: // // - ANYONE_CAN_VIEW: Any Internet user can view the group's messages. // - ALL_IN_DOMAIN_CAN_VIEW: Anyone in your account can view this group's // messages. // - ALL_MEMBERS_CAN_VIEW: All group members can view the group's messages. // - ALL_MANAGERS_CAN_VIEW: Any group manager can view this group's messages. WhoCanViewGroup string `json:"whoCanViewGroup,omitempty"` // WhoCanViewMembership: Permissions to view membership. Possible values are: // // - ALL_IN_DOMAIN_CAN_VIEW: Anyone in the account can view the group members // list. // If a group already has external members, those members can still send email // to this group. // // - ALL_MEMBERS_CAN_VIEW: The group members can view the group members list. // // - ALL_MANAGERS_CAN_VIEW: The group managers can view group members list. WhoCanViewMembership string `json:"whoCanViewMembership,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "AllowExternalMembers") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AllowExternalMembers") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Groups) MarshalJSON() ([]byte, error) { type NoMethod Groups return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type GroupsGetCall struct { s *Service groupUniqueId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets one resource by id. // // - groupUniqueId: The group's email address. func (r *GroupsService) Get(groupUniqueId string) *GroupsGetCall { c := &GroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.groupUniqueId = groupUniqueId return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *GroupsGetCall) Fields(s ...googleapi.Field) *GroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *GroupsGetCall) IfNoneMatch(entityTag string) *GroupsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *GroupsGetCall) Context(ctx context.Context) *GroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *GroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *GroupsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{groupUniqueId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "groupUniqueId": c.groupUniqueId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "groupsSettings.groups.get" call. // Any non-2xx status code is an error. Response headers are in either // *Groups.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *GroupsGetCall) Do(opts ...googleapi.CallOption) (*Groups, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Groups{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type GroupsPatchCall struct { s *Service groupUniqueId string groups *Groups urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Patch: Updates an existing resource. This method supports patch semantics. // // - groupUniqueId: The group's email address. func (r *GroupsService) Patch(groupUniqueId string, groups *Groups) *GroupsPatchCall { c := &GroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.groupUniqueId = groupUniqueId c.groups = groups return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *GroupsPatchCall) Fields(s ...googleapi.Field) *GroupsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *GroupsPatchCall) Context(ctx context.Context) *GroupsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *GroupsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *GroupsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.groups) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{groupUniqueId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "groupUniqueId": c.groupUniqueId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "groupsSettings.groups.patch" call. // Any non-2xx status code is an error. Response headers are in either // *Groups.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *GroupsPatchCall) Do(opts ...googleapi.CallOption) (*Groups, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Groups{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type GroupsUpdateCall struct { s *Service groupUniqueId string groups *Groups urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Update: Updates an existing resource. // // - groupUniqueId: The group's email address. func (r *GroupsService) Update(groupUniqueId string, groups *Groups) *GroupsUpdateCall { c := &GroupsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.groupUniqueId = groupUniqueId c.groups = groups return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *GroupsUpdateCall) Fields(s ...googleapi.Field) *GroupsUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *GroupsUpdateCall) Context(ctx context.Context) *GroupsUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *GroupsUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *GroupsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.groups) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{groupUniqueId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "groupUniqueId": c.groupUniqueId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "groupsSettings.groups.update" call. // Any non-2xx status code is an error. Response headers are in either // *Groups.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *GroupsUpdateCall) Do(opts ...googleapi.CallOption) (*Groups, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Groups{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil }