blob: 2b95983eb3dc17cbd074b69f540ba4da68d7e620 [file] [edit]
// Copyright 2014 Google LLC
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
// This is a generated file (see the discoveryapis_generator project).
// ignore_for_file: camel_case_types
// ignore_for_file: comment_references
// ignore_for_file: deprecated_member_use_from_same_package
// ignore_for_file: doc_directive_unknown
// ignore_for_file: lines_longer_than_80_chars
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: prefer_interpolation_to_compose_strings
// ignore_for_file: unintended_html_in_doc_comment
// ignore_for_file: unnecessary_brace_in_string_interps
// ignore_for_file: unnecessary_lambdas
// ignore_for_file: unnecessary_string_interpolations
/// Groups Settings API - v1
///
/// Manages permission levels and related settings of a group.
///
/// For more information, see
/// <https://developers.google.com/google-apps/groups-settings/get_started>
///
/// Create an instance of [GroupssettingsApi] to access these resources:
///
/// - [GroupsResource]
library;
import 'dart:async' as async;
import 'dart:convert' as convert;
import 'dart:core' as core;
import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
import 'package:http/http.dart' as http;
import '../src/user_agent.dart';
export 'package:_discoveryapis_commons/_discoveryapis_commons.dart'
show ApiRequestError, DetailedApiRequestError;
/// Manages permission levels and related settings of a group.
class GroupssettingsApi {
/// View and manage the settings of a G Suite group
static const appsGroupsSettingsScope =
'https://www.googleapis.com/auth/apps.groups.settings';
final commons.ApiRequester _requester;
GroupsResource get groups => GroupsResource(_requester);
GroupssettingsApi(
http.Client client, {
core.String rootUrl = 'https://www.googleapis.com/',
core.String servicePath = 'groups/v1/groups/',
}) : _requester = commons.ApiRequester(
client,
rootUrl,
servicePath,
requestHeaders,
);
}
class GroupsResource {
final commons.ApiRequester _requester;
GroupsResource(commons.ApiRequester client) : _requester = client;
/// Gets one resource by id.
///
/// Request parameters:
///
/// [groupUniqueId] - The group's email address.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Groups].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<Groups> get(
core.String groupUniqueId, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = commons.escapeVariable('$groupUniqueId');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return Groups.fromJson(response_ as core.Map<core.String, core.dynamic>);
}
/// Updates an existing resource.
///
/// This method supports patch semantics.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [groupUniqueId] - The group's email address.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Groups].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<Groups> patch(
Groups request,
core.String groupUniqueId, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = commons.escapeVariable('$groupUniqueId');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return Groups.fromJson(response_ as core.Map<core.String, core.dynamic>);
}
/// Updates an existing resource.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [groupUniqueId] - The group's email address.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Groups].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<Groups> update(
Groups request,
core.String groupUniqueId, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = commons.escapeVariable('$groupUniqueId');
final response_ = await _requester.request(
url_,
'PUT',
body: body_,
queryParams: queryParams_,
);
return Groups.fromJson(response_ as core.Map<core.String, core.dynamic>);
}
}
/// JSON template for Group resource
class Groups {
/// 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.
core.String? allowExternalMembers;
/// 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.
///
/// Deprecated.
core.String? allowGoogleCommunication;
/// 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.
core.String? allowWebPosting;
/// 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.
core.String? archiveOnly;
/// Set the content of custom footer text.
///
/// The maximum number of characters is 1,000.
core.String? customFooterText;
/// 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.
core.String? customReplyTo;
/// 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
core.String? customRolesEnabledForSettingsToBeMerged;
/// 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.
core.String? defaultMessageDenyNotificationText;
/// 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
core.String? defaultSender;
/// 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.
core.String? description;
/// 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.
core.String? email;
/// Specifies whether a collaborative inbox will remain turned on for the
/// group.
///
/// Possible values are:
/// - true
/// - false
core.String? enableCollaborativeInbox;
/// 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.
core.String? favoriteRepliesOnTop;
/// Whether to include custom footer.
///
/// Possible values are:
/// - true
/// - false
core.String? includeCustomFooter;
/// 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.
core.String? includeInGlobalAddressList;
/// 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.
core.String? isArchived;
/// The type of the resource.
///
/// It is always groupsSettings#groups.
core.String? kind;
/// The maximum size of a message is 25Mb.
///
/// Deprecated.
core.int? maxMessageBytes;
/// 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.
core.String? membersCanPostAsTheGroup;
/// The default message display font always has a value of "DEFAULT_FONT".
///
/// Deprecated.
core.String? messageDisplayFont;
/// 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.
core.String? messageModerationLevel;
/// Name of the group, which has a maximum size of 75 characters.
core.String? name;
/// 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.
core.String? primaryLanguage;
/// 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.
core.String? replyTo;
/// 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.
core.String? sendMessageDenyNotification;
/// 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.
///
/// Deprecated.
core.String? showInGroupDirectory;
/// 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.
core.String? spamModerationLevel;
/// 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.
///
/// Deprecated.
core.String? whoCanAdd;
/// This functionality is no longer supported in the Google Groups UI.
///
/// The value is always "NONE".
///
/// Deprecated.
core.String? whoCanAddReferences;
/// 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
core.String? whoCanApproveMembers;
/// 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
///
/// Deprecated.
core.String? whoCanApproveMessages;
/// 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
///
/// Deprecated.
core.String? whoCanAssignTopics;
/// Specifies who can moderate metadata.
///
/// Possible values are:
/// - ALL_MEMBERS
/// - OWNERS_AND_MANAGERS
/// - MANAGERS_ONLY
/// - OWNERS_ONLY
/// - NONE
core.String? whoCanAssistContent;
/// 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
core.String? whoCanBanUsers;
/// 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
core.String? whoCanContactOwner;
/// 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
///
/// Deprecated.
core.String? whoCanDeleteAnyPost;
/// This is merged into the new whoCanModerateContent setting.
///
/// Specifies who can delete topics. Possible values are:
/// - ALL_MEMBERS
/// - OWNERS_AND_MANAGERS
/// - OWNERS_ONLY
/// - NONE
///
/// Deprecated.
core.String? whoCanDeleteTopics;
/// 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
core.String? whoCanDiscoverGroup;
/// 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
///
/// Deprecated.
core.String? whoCanEnterFreeFormTags;
/// 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
///
/// Deprecated.
core.String? whoCanHideAbuse;
/// 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.
///
/// Deprecated.
core.String? whoCanInvite;
/// Permission to join group.
///
/// Possible values are:
/// - ANYONE_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.
/// - ALL_IN_DOMAIN_CAN_JOIN: Anyone in the account domain can join. This
/// includes accounts with multiple domains.
/// - INVITED_CAN_JOIN: Candidates for membership can be invited to join.
/// - CAN_REQUEST_TO_JOIN: Non members can request an invitation to join.
core.String? whoCanJoin;
/// Permission to leave the group.
///
/// Possible values are:
/// - ALL_MANAGERS_CAN_LEAVE
/// - ALL_MEMBERS_CAN_LEAVE
/// - NONE_CAN_LEAVE
core.String? whoCanLeaveGroup;
/// 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
///
/// Deprecated.
core.String? whoCanLockTopics;
/// 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
///
/// Deprecated.
core.String? whoCanMakeTopicsSticky;
/// 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
///
/// Deprecated.
core.String? whoCanMarkDuplicate;
/// 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
///
/// Deprecated.
core.String? whoCanMarkFavoriteReplyOnAnyTopic;
/// 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
///
/// Deprecated.
core.String? whoCanMarkFavoriteReplyOnOwnTopic;
/// 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
///
/// Deprecated.
core.String? whoCanMarkNoResponseNeeded;
/// Specifies who can moderate content.
///
/// Possible values are:
/// - ALL_MEMBERS
/// - OWNERS_AND_MANAGERS
/// - OWNERS_ONLY
/// - NONE
core.String? whoCanModerateContent;
/// Specifies who can manage members.
///
/// Possible values are:
/// - ALL_MEMBERS
/// - OWNERS_AND_MANAGERS
/// - OWNERS_ONLY
/// - NONE
core.String? whoCanModerateMembers;
/// 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
///
/// Deprecated.
core.String? whoCanModifyMembers;
/// 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
///
/// Deprecated.
core.String? whoCanModifyTagsAndCategories;
/// 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
///
/// Deprecated.
core.String? whoCanMoveTopicsIn;
/// 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
///
/// Deprecated.
core.String? whoCanMoveTopicsOut;
/// 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
///
/// Deprecated.
core.String? whoCanPostAnnouncements;
/// 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.
core.String? whoCanPostMessage;
/// 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
///
/// Deprecated.
core.String? whoCanTakeTopics;
/// 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
///
/// Deprecated.
core.String? whoCanUnassignTopic;
/// 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
///
/// Deprecated.
core.String? whoCanUnmarkFavoriteReplyOnAnyTopic;
/// 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.
core.String? whoCanViewGroup;
/// 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.
core.String? whoCanViewMembership;
Groups({
this.allowExternalMembers,
this.allowGoogleCommunication,
this.allowWebPosting,
this.archiveOnly,
this.customFooterText,
this.customReplyTo,
this.customRolesEnabledForSettingsToBeMerged,
this.defaultMessageDenyNotificationText,
this.defaultSender,
this.description,
this.email,
this.enableCollaborativeInbox,
this.favoriteRepliesOnTop,
this.includeCustomFooter,
this.includeInGlobalAddressList,
this.isArchived,
this.kind,
this.maxMessageBytes,
this.membersCanPostAsTheGroup,
this.messageDisplayFont,
this.messageModerationLevel,
this.name,
this.primaryLanguage,
this.replyTo,
this.sendMessageDenyNotification,
this.showInGroupDirectory,
this.spamModerationLevel,
this.whoCanAdd,
this.whoCanAddReferences,
this.whoCanApproveMembers,
this.whoCanApproveMessages,
this.whoCanAssignTopics,
this.whoCanAssistContent,
this.whoCanBanUsers,
this.whoCanContactOwner,
this.whoCanDeleteAnyPost,
this.whoCanDeleteTopics,
this.whoCanDiscoverGroup,
this.whoCanEnterFreeFormTags,
this.whoCanHideAbuse,
this.whoCanInvite,
this.whoCanJoin,
this.whoCanLeaveGroup,
this.whoCanLockTopics,
this.whoCanMakeTopicsSticky,
this.whoCanMarkDuplicate,
this.whoCanMarkFavoriteReplyOnAnyTopic,
this.whoCanMarkFavoriteReplyOnOwnTopic,
this.whoCanMarkNoResponseNeeded,
this.whoCanModerateContent,
this.whoCanModerateMembers,
this.whoCanModifyMembers,
this.whoCanModifyTagsAndCategories,
this.whoCanMoveTopicsIn,
this.whoCanMoveTopicsOut,
this.whoCanPostAnnouncements,
this.whoCanPostMessage,
this.whoCanTakeTopics,
this.whoCanUnassignTopic,
this.whoCanUnmarkFavoriteReplyOnAnyTopic,
this.whoCanViewGroup,
this.whoCanViewMembership,
});
Groups.fromJson(core.Map json_)
: this(
allowExternalMembers: json_['allowExternalMembers'] as core.String?,
allowGoogleCommunication:
json_['allowGoogleCommunication'] as core.String?,
allowWebPosting: json_['allowWebPosting'] as core.String?,
archiveOnly: json_['archiveOnly'] as core.String?,
customFooterText: json_['customFooterText'] as core.String?,
customReplyTo: json_['customReplyTo'] as core.String?,
customRolesEnabledForSettingsToBeMerged:
json_['customRolesEnabledForSettingsToBeMerged'] as core.String?,
defaultMessageDenyNotificationText:
json_['defaultMessageDenyNotificationText'] as core.String?,
defaultSender: json_['default_sender'] as core.String?,
description: json_['description'] as core.String?,
email: json_['email'] as core.String?,
enableCollaborativeInbox:
json_['enableCollaborativeInbox'] as core.String?,
favoriteRepliesOnTop: json_['favoriteRepliesOnTop'] as core.String?,
includeCustomFooter: json_['includeCustomFooter'] as core.String?,
includeInGlobalAddressList:
json_['includeInGlobalAddressList'] as core.String?,
isArchived: json_['isArchived'] as core.String?,
kind: json_['kind'] as core.String?,
maxMessageBytes: json_['maxMessageBytes'] as core.int?,
membersCanPostAsTheGroup:
json_['membersCanPostAsTheGroup'] as core.String?,
messageDisplayFont: json_['messageDisplayFont'] as core.String?,
messageModerationLevel: json_['messageModerationLevel'] as core.String?,
name: json_['name'] as core.String?,
primaryLanguage: json_['primaryLanguage'] as core.String?,
replyTo: json_['replyTo'] as core.String?,
sendMessageDenyNotification:
json_['sendMessageDenyNotification'] as core.String?,
showInGroupDirectory: json_['showInGroupDirectory'] as core.String?,
spamModerationLevel: json_['spamModerationLevel'] as core.String?,
whoCanAdd: json_['whoCanAdd'] as core.String?,
whoCanAddReferences: json_['whoCanAddReferences'] as core.String?,
whoCanApproveMembers: json_['whoCanApproveMembers'] as core.String?,
whoCanApproveMessages: json_['whoCanApproveMessages'] as core.String?,
whoCanAssignTopics: json_['whoCanAssignTopics'] as core.String?,
whoCanAssistContent: json_['whoCanAssistContent'] as core.String?,
whoCanBanUsers: json_['whoCanBanUsers'] as core.String?,
whoCanContactOwner: json_['whoCanContactOwner'] as core.String?,
whoCanDeleteAnyPost: json_['whoCanDeleteAnyPost'] as core.String?,
whoCanDeleteTopics: json_['whoCanDeleteTopics'] as core.String?,
whoCanDiscoverGroup: json_['whoCanDiscoverGroup'] as core.String?,
whoCanEnterFreeFormTags:
json_['whoCanEnterFreeFormTags'] as core.String?,
whoCanHideAbuse: json_['whoCanHideAbuse'] as core.String?,
whoCanInvite: json_['whoCanInvite'] as core.String?,
whoCanJoin: json_['whoCanJoin'] as core.String?,
whoCanLeaveGroup: json_['whoCanLeaveGroup'] as core.String?,
whoCanLockTopics: json_['whoCanLockTopics'] as core.String?,
whoCanMakeTopicsSticky: json_['whoCanMakeTopicsSticky'] as core.String?,
whoCanMarkDuplicate: json_['whoCanMarkDuplicate'] as core.String?,
whoCanMarkFavoriteReplyOnAnyTopic:
json_['whoCanMarkFavoriteReplyOnAnyTopic'] as core.String?,
whoCanMarkFavoriteReplyOnOwnTopic:
json_['whoCanMarkFavoriteReplyOnOwnTopic'] as core.String?,
whoCanMarkNoResponseNeeded:
json_['whoCanMarkNoResponseNeeded'] as core.String?,
whoCanModerateContent: json_['whoCanModerateContent'] as core.String?,
whoCanModerateMembers: json_['whoCanModerateMembers'] as core.String?,
whoCanModifyMembers: json_['whoCanModifyMembers'] as core.String?,
whoCanModifyTagsAndCategories:
json_['whoCanModifyTagsAndCategories'] as core.String?,
whoCanMoveTopicsIn: json_['whoCanMoveTopicsIn'] as core.String?,
whoCanMoveTopicsOut: json_['whoCanMoveTopicsOut'] as core.String?,
whoCanPostAnnouncements:
json_['whoCanPostAnnouncements'] as core.String?,
whoCanPostMessage: json_['whoCanPostMessage'] as core.String?,
whoCanTakeTopics: json_['whoCanTakeTopics'] as core.String?,
whoCanUnassignTopic: json_['whoCanUnassignTopic'] as core.String?,
whoCanUnmarkFavoriteReplyOnAnyTopic:
json_['whoCanUnmarkFavoriteReplyOnAnyTopic'] as core.String?,
whoCanViewGroup: json_['whoCanViewGroup'] as core.String?,
whoCanViewMembership: json_['whoCanViewMembership'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final allowExternalMembers = this.allowExternalMembers;
final allowGoogleCommunication = this.allowGoogleCommunication;
final allowWebPosting = this.allowWebPosting;
final archiveOnly = this.archiveOnly;
final customFooterText = this.customFooterText;
final customReplyTo = this.customReplyTo;
final customRolesEnabledForSettingsToBeMerged =
this.customRolesEnabledForSettingsToBeMerged;
final defaultMessageDenyNotificationText =
this.defaultMessageDenyNotificationText;
final defaultSender = this.defaultSender;
final description = this.description;
final email = this.email;
final enableCollaborativeInbox = this.enableCollaborativeInbox;
final favoriteRepliesOnTop = this.favoriteRepliesOnTop;
final includeCustomFooter = this.includeCustomFooter;
final includeInGlobalAddressList = this.includeInGlobalAddressList;
final isArchived = this.isArchived;
final kind = this.kind;
final maxMessageBytes = this.maxMessageBytes;
final membersCanPostAsTheGroup = this.membersCanPostAsTheGroup;
final messageDisplayFont = this.messageDisplayFont;
final messageModerationLevel = this.messageModerationLevel;
final name = this.name;
final primaryLanguage = this.primaryLanguage;
final replyTo = this.replyTo;
final sendMessageDenyNotification = this.sendMessageDenyNotification;
final showInGroupDirectory = this.showInGroupDirectory;
final spamModerationLevel = this.spamModerationLevel;
final whoCanAdd = this.whoCanAdd;
final whoCanAddReferences = this.whoCanAddReferences;
final whoCanApproveMembers = this.whoCanApproveMembers;
final whoCanApproveMessages = this.whoCanApproveMessages;
final whoCanAssignTopics = this.whoCanAssignTopics;
final whoCanAssistContent = this.whoCanAssistContent;
final whoCanBanUsers = this.whoCanBanUsers;
final whoCanContactOwner = this.whoCanContactOwner;
final whoCanDeleteAnyPost = this.whoCanDeleteAnyPost;
final whoCanDeleteTopics = this.whoCanDeleteTopics;
final whoCanDiscoverGroup = this.whoCanDiscoverGroup;
final whoCanEnterFreeFormTags = this.whoCanEnterFreeFormTags;
final whoCanHideAbuse = this.whoCanHideAbuse;
final whoCanInvite = this.whoCanInvite;
final whoCanJoin = this.whoCanJoin;
final whoCanLeaveGroup = this.whoCanLeaveGroup;
final whoCanLockTopics = this.whoCanLockTopics;
final whoCanMakeTopicsSticky = this.whoCanMakeTopicsSticky;
final whoCanMarkDuplicate = this.whoCanMarkDuplicate;
final whoCanMarkFavoriteReplyOnAnyTopic =
this.whoCanMarkFavoriteReplyOnAnyTopic;
final whoCanMarkFavoriteReplyOnOwnTopic =
this.whoCanMarkFavoriteReplyOnOwnTopic;
final whoCanMarkNoResponseNeeded = this.whoCanMarkNoResponseNeeded;
final whoCanModerateContent = this.whoCanModerateContent;
final whoCanModerateMembers = this.whoCanModerateMembers;
final whoCanModifyMembers = this.whoCanModifyMembers;
final whoCanModifyTagsAndCategories = this.whoCanModifyTagsAndCategories;
final whoCanMoveTopicsIn = this.whoCanMoveTopicsIn;
final whoCanMoveTopicsOut = this.whoCanMoveTopicsOut;
final whoCanPostAnnouncements = this.whoCanPostAnnouncements;
final whoCanPostMessage = this.whoCanPostMessage;
final whoCanTakeTopics = this.whoCanTakeTopics;
final whoCanUnassignTopic = this.whoCanUnassignTopic;
final whoCanUnmarkFavoriteReplyOnAnyTopic =
this.whoCanUnmarkFavoriteReplyOnAnyTopic;
final whoCanViewGroup = this.whoCanViewGroup;
final whoCanViewMembership = this.whoCanViewMembership;
return {
'allowExternalMembers': ?allowExternalMembers,
'allowGoogleCommunication': ?allowGoogleCommunication,
'allowWebPosting': ?allowWebPosting,
'archiveOnly': ?archiveOnly,
'customFooterText': ?customFooterText,
'customReplyTo': ?customReplyTo,
'customRolesEnabledForSettingsToBeMerged':
?customRolesEnabledForSettingsToBeMerged,
'defaultMessageDenyNotificationText': ?defaultMessageDenyNotificationText,
'default_sender': ?defaultSender,
'description': ?description,
'email': ?email,
'enableCollaborativeInbox': ?enableCollaborativeInbox,
'favoriteRepliesOnTop': ?favoriteRepliesOnTop,
'includeCustomFooter': ?includeCustomFooter,
'includeInGlobalAddressList': ?includeInGlobalAddressList,
'isArchived': ?isArchived,
'kind': ?kind,
'maxMessageBytes': ?maxMessageBytes,
'membersCanPostAsTheGroup': ?membersCanPostAsTheGroup,
'messageDisplayFont': ?messageDisplayFont,
'messageModerationLevel': ?messageModerationLevel,
'name': ?name,
'primaryLanguage': ?primaryLanguage,
'replyTo': ?replyTo,
'sendMessageDenyNotification': ?sendMessageDenyNotification,
'showInGroupDirectory': ?showInGroupDirectory,
'spamModerationLevel': ?spamModerationLevel,
'whoCanAdd': ?whoCanAdd,
'whoCanAddReferences': ?whoCanAddReferences,
'whoCanApproveMembers': ?whoCanApproveMembers,
'whoCanApproveMessages': ?whoCanApproveMessages,
'whoCanAssignTopics': ?whoCanAssignTopics,
'whoCanAssistContent': ?whoCanAssistContent,
'whoCanBanUsers': ?whoCanBanUsers,
'whoCanContactOwner': ?whoCanContactOwner,
'whoCanDeleteAnyPost': ?whoCanDeleteAnyPost,
'whoCanDeleteTopics': ?whoCanDeleteTopics,
'whoCanDiscoverGroup': ?whoCanDiscoverGroup,
'whoCanEnterFreeFormTags': ?whoCanEnterFreeFormTags,
'whoCanHideAbuse': ?whoCanHideAbuse,
'whoCanInvite': ?whoCanInvite,
'whoCanJoin': ?whoCanJoin,
'whoCanLeaveGroup': ?whoCanLeaveGroup,
'whoCanLockTopics': ?whoCanLockTopics,
'whoCanMakeTopicsSticky': ?whoCanMakeTopicsSticky,
'whoCanMarkDuplicate': ?whoCanMarkDuplicate,
'whoCanMarkFavoriteReplyOnAnyTopic': ?whoCanMarkFavoriteReplyOnAnyTopic,
'whoCanMarkFavoriteReplyOnOwnTopic': ?whoCanMarkFavoriteReplyOnOwnTopic,
'whoCanMarkNoResponseNeeded': ?whoCanMarkNoResponseNeeded,
'whoCanModerateContent': ?whoCanModerateContent,
'whoCanModerateMembers': ?whoCanModerateMembers,
'whoCanModifyMembers': ?whoCanModifyMembers,
'whoCanModifyTagsAndCategories': ?whoCanModifyTagsAndCategories,
'whoCanMoveTopicsIn': ?whoCanMoveTopicsIn,
'whoCanMoveTopicsOut': ?whoCanMoveTopicsOut,
'whoCanPostAnnouncements': ?whoCanPostAnnouncements,
'whoCanPostMessage': ?whoCanPostMessage,
'whoCanTakeTopics': ?whoCanTakeTopics,
'whoCanUnassignTopic': ?whoCanUnassignTopic,
'whoCanUnmarkFavoriteReplyOnAnyTopic':
?whoCanUnmarkFavoriteReplyOnAnyTopic,
'whoCanViewGroup': ?whoCanViewGroup,
'whoCanViewMembership': ?whoCanViewMembership,
};
}
}