<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="groupssettings_v1.html">Groups Settings API</a> . <a href="groupssettings_v1.groups.html">groups</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(groupUniqueId)</a></code></p>
<p class="firstline">Gets one resource by id.</p>
<p class="toc_element">
  <code><a href="#patch">patch(groupUniqueId, body)</a></code></p>
<p class="firstline">Updates an existing resource. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(groupUniqueId, body)</a></code></p>
<p class="firstline">Updates an existing resource.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(groupUniqueId)</code>
  <pre>Gets one resource by id.

Args:
  groupUniqueId: string, The resource ID (required)

Returns:
  An object of the form:

    { # JSON template for Group resource
      "allowExternalMembers": "A String", # Are external members allowed to join the group.
      "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
      "primaryLanguage": "A String", # Primary language for the group.
      "whoCanViewMembership": "A String", # Permissions to view membership. Possible values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
      "includeCustomFooter": "A String", # Whether to include custom footer.
      "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
      "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
      "archiveOnly": "A String", # If the group is archive only
      "isArchived": "A String", # If the contents of the group are archived.
      "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
      "allowWebPosting": "A String", # If posting from web is allowed.
      "email": "A String", # Email id of the group
      "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
      "description": "A String", # Description of the group
      "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
      "customReplyTo": "A String", # Default email to which reply to any message should go.
      "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
      "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possible values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
      "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
      "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE
      "whoCanAdd": "A String", # Permissions to add members. Possible values are: ALL_MANAGERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD
      "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
      "whoCanInvite": "A String", # Permissions to invite members. Possible values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE NONE_CAN_INVITE
      "kind": "groupsSettings#groups", # The type of the resource.
      "name": "A String", # Name of the Group
      "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
      "whoCanViewGroup": "A String", # Permissions to view group. Possible values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
      "showInGroupDirectory": "A String", # Is the group listed in groups directory
      "maxMessageBytes": 42, # Maximum message size allowed.
      "customFooterText": "A String", # Custom footer text.
      "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
    }</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(groupUniqueId, body)</code>
  <pre>Updates an existing resource. This method supports patch semantics.

Args:
  groupUniqueId: string, The resource ID (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for Group resource
    "allowExternalMembers": "A String", # Are external members allowed to join the group.
    "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
    "primaryLanguage": "A String", # Primary language for the group.
    "whoCanViewMembership": "A String", # Permissions to view membership. Possible values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
    "includeCustomFooter": "A String", # Whether to include custom footer.
    "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
    "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
    "archiveOnly": "A String", # If the group is archive only
    "isArchived": "A String", # If the contents of the group are archived.
    "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
    "allowWebPosting": "A String", # If posting from web is allowed.
    "email": "A String", # Email id of the group
    "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
    "description": "A String", # Description of the group
    "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
    "customReplyTo": "A String", # Default email to which reply to any message should go.
    "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
    "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possible values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
    "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
    "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE
    "whoCanAdd": "A String", # Permissions to add members. Possible values are: ALL_MANAGERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD
    "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
    "whoCanInvite": "A String", # Permissions to invite members. Possible values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE NONE_CAN_INVITE
    "kind": "groupsSettings#groups", # The type of the resource.
    "name": "A String", # Name of the Group
    "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
    "whoCanViewGroup": "A String", # Permissions to view group. Possible values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
    "showInGroupDirectory": "A String", # Is the group listed in groups directory
    "maxMessageBytes": 42, # Maximum message size allowed.
    "customFooterText": "A String", # Custom footer text.
    "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
  }


Returns:
  An object of the form:

    { # JSON template for Group resource
      "allowExternalMembers": "A String", # Are external members allowed to join the group.
      "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
      "primaryLanguage": "A String", # Primary language for the group.
      "whoCanViewMembership": "A String", # Permissions to view membership. Possible values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
      "includeCustomFooter": "A String", # Whether to include custom footer.
      "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
      "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
      "archiveOnly": "A String", # If the group is archive only
      "isArchived": "A String", # If the contents of the group are archived.
      "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
      "allowWebPosting": "A String", # If posting from web is allowed.
      "email": "A String", # Email id of the group
      "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
      "description": "A String", # Description of the group
      "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
      "customReplyTo": "A String", # Default email to which reply to any message should go.
      "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
      "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possible values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
      "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
      "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE
      "whoCanAdd": "A String", # Permissions to add members. Possible values are: ALL_MANAGERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD
      "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
      "whoCanInvite": "A String", # Permissions to invite members. Possible values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE NONE_CAN_INVITE
      "kind": "groupsSettings#groups", # The type of the resource.
      "name": "A String", # Name of the Group
      "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
      "whoCanViewGroup": "A String", # Permissions to view group. Possible values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
      "showInGroupDirectory": "A String", # Is the group listed in groups directory
      "maxMessageBytes": 42, # Maximum message size allowed.
      "customFooterText": "A String", # Custom footer text.
      "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(groupUniqueId, body)</code>
  <pre>Updates an existing resource.

Args:
  groupUniqueId: string, The resource ID (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for Group resource
    "allowExternalMembers": "A String", # Are external members allowed to join the group.
    "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
    "primaryLanguage": "A String", # Primary language for the group.
    "whoCanViewMembership": "A String", # Permissions to view membership. Possible values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
    "includeCustomFooter": "A String", # Whether to include custom footer.
    "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
    "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
    "archiveOnly": "A String", # If the group is archive only
    "isArchived": "A String", # If the contents of the group are archived.
    "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
    "allowWebPosting": "A String", # If posting from web is allowed.
    "email": "A String", # Email id of the group
    "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
    "description": "A String", # Description of the group
    "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
    "customReplyTo": "A String", # Default email to which reply to any message should go.
    "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
    "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possible values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
    "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
    "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE
    "whoCanAdd": "A String", # Permissions to add members. Possible values are: ALL_MANAGERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD
    "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
    "whoCanInvite": "A String", # Permissions to invite members. Possible values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE NONE_CAN_INVITE
    "kind": "groupsSettings#groups", # The type of the resource.
    "name": "A String", # Name of the Group
    "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
    "whoCanViewGroup": "A String", # Permissions to view group. Possible values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
    "showInGroupDirectory": "A String", # Is the group listed in groups directory
    "maxMessageBytes": 42, # Maximum message size allowed.
    "customFooterText": "A String", # Custom footer text.
    "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
  }


Returns:
  An object of the form:

    { # JSON template for Group resource
      "allowExternalMembers": "A String", # Are external members allowed to join the group.
      "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
      "primaryLanguage": "A String", # Primary language for the group.
      "whoCanViewMembership": "A String", # Permissions to view membership. Possible values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
      "includeCustomFooter": "A String", # Whether to include custom footer.
      "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
      "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
      "archiveOnly": "A String", # If the group is archive only
      "isArchived": "A String", # If the contents of the group are archived.
      "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
      "allowWebPosting": "A String", # If posting from web is allowed.
      "email": "A String", # Email id of the group
      "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
      "description": "A String", # Description of the group
      "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
      "customReplyTo": "A String", # Default email to which reply to any message should go.
      "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
      "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possible values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
      "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
      "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE
      "whoCanAdd": "A String", # Permissions to add members. Possible values are: ALL_MANAGERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD
      "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
      "whoCanInvite": "A String", # Permissions to invite members. Possible values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE NONE_CAN_INVITE
      "kind": "groupsSettings#groups", # The type of the resource.
      "name": "A String", # Name of the Group
      "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
      "whoCanViewGroup": "A String", # Permissions to view group. Possible values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
      "showInGroupDirectory": "A String", # Is the group listed in groups directory
      "maxMessageBytes": 42, # Maximum message size allowed.
      "customFooterText": "A String", # Custom footer text.
      "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
    }</pre>
</div>

</body></html>