/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include A rule that controls access to an WorkMail organization.See
* Also:
AWS
* API Reference
The rule name.
*/ inline const Aws::String& GetName() const{ return m_name; } /** *The rule name.
*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *The rule name.
*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *The rule name.
*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *The rule name.
*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *The rule name.
*/ inline AccessControlRule& WithName(const Aws::String& value) { SetName(value); return *this;} /** *The rule name.
*/ inline AccessControlRule& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *The rule name.
*/ inline AccessControlRule& WithName(const char* value) { SetName(value); return *this;} /** *The rule effect.
*/ inline const AccessControlRuleEffect& GetEffect() const{ return m_effect; } /** *The rule effect.
*/ inline bool EffectHasBeenSet() const { return m_effectHasBeenSet; } /** *The rule effect.
*/ inline void SetEffect(const AccessControlRuleEffect& value) { m_effectHasBeenSet = true; m_effect = value; } /** *The rule effect.
*/ inline void SetEffect(AccessControlRuleEffect&& value) { m_effectHasBeenSet = true; m_effect = std::move(value); } /** *The rule effect.
*/ inline AccessControlRule& WithEffect(const AccessControlRuleEffect& value) { SetEffect(value); return *this;} /** *The rule effect.
*/ inline AccessControlRule& WithEffect(AccessControlRuleEffect&& value) { SetEffect(std::move(value)); return *this;} /** *The rule description.
*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *The rule description.
*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *The rule description.
*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *The rule description.
*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *The rule description.
*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *The rule description.
*/ inline AccessControlRule& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *The rule description.
*/ inline AccessControlRule& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *The rule description.
*/ inline AccessControlRule& WithDescription(const char* value) { SetDescription(value); return *this;} /** *IPv4 CIDR ranges to include in the rule.
*/ inline const Aws::VectorIPv4 CIDR ranges to include in the rule.
*/ inline bool IpRangesHasBeenSet() const { return m_ipRangesHasBeenSet; } /** *IPv4 CIDR ranges to include in the rule.
*/ inline void SetIpRanges(const Aws::VectorIPv4 CIDR ranges to include in the rule.
*/ inline void SetIpRanges(Aws::VectorIPv4 CIDR ranges to include in the rule.
*/ inline AccessControlRule& WithIpRanges(const Aws::VectorIPv4 CIDR ranges to include in the rule.
*/ inline AccessControlRule& WithIpRanges(Aws::VectorIPv4 CIDR ranges to include in the rule.
*/ inline AccessControlRule& AddIpRanges(const Aws::String& value) { m_ipRangesHasBeenSet = true; m_ipRanges.push_back(value); return *this; } /** *IPv4 CIDR ranges to include in the rule.
*/ inline AccessControlRule& AddIpRanges(Aws::String&& value) { m_ipRangesHasBeenSet = true; m_ipRanges.push_back(std::move(value)); return *this; } /** *IPv4 CIDR ranges to include in the rule.
*/ inline AccessControlRule& AddIpRanges(const char* value) { m_ipRangesHasBeenSet = true; m_ipRanges.push_back(value); return *this; } /** *IPv4 CIDR ranges to exclude from the rule.
*/ inline const Aws::VectorIPv4 CIDR ranges to exclude from the rule.
*/ inline bool NotIpRangesHasBeenSet() const { return m_notIpRangesHasBeenSet; } /** *IPv4 CIDR ranges to exclude from the rule.
*/ inline void SetNotIpRanges(const Aws::VectorIPv4 CIDR ranges to exclude from the rule.
*/ inline void SetNotIpRanges(Aws::VectorIPv4 CIDR ranges to exclude from the rule.
*/ inline AccessControlRule& WithNotIpRanges(const Aws::VectorIPv4 CIDR ranges to exclude from the rule.
*/ inline AccessControlRule& WithNotIpRanges(Aws::VectorIPv4 CIDR ranges to exclude from the rule.
*/ inline AccessControlRule& AddNotIpRanges(const Aws::String& value) { m_notIpRangesHasBeenSet = true; m_notIpRanges.push_back(value); return *this; } /** *IPv4 CIDR ranges to exclude from the rule.
*/ inline AccessControlRule& AddNotIpRanges(Aws::String&& value) { m_notIpRangesHasBeenSet = true; m_notIpRanges.push_back(std::move(value)); return *this; } /** *IPv4 CIDR ranges to exclude from the rule.
*/ inline AccessControlRule& AddNotIpRanges(const char* value) { m_notIpRangesHasBeenSet = true; m_notIpRanges.push_back(value); return *this; } /** *Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to include in the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
Access protocol actions to exclude from the rule. Valid values include
* ActiveSync
, AutoDiscover
, EWS
,
* IMAP
, SMTP
, WindowsOutlook
, and
* WebMail
.
User IDs to include in the rule.
*/ inline const Aws::VectorUser IDs to include in the rule.
*/ inline bool UserIdsHasBeenSet() const { return m_userIdsHasBeenSet; } /** *User IDs to include in the rule.
*/ inline void SetUserIds(const Aws::VectorUser IDs to include in the rule.
*/ inline void SetUserIds(Aws::VectorUser IDs to include in the rule.
*/ inline AccessControlRule& WithUserIds(const Aws::VectorUser IDs to include in the rule.
*/ inline AccessControlRule& WithUserIds(Aws::VectorUser IDs to include in the rule.
*/ inline AccessControlRule& AddUserIds(const Aws::String& value) { m_userIdsHasBeenSet = true; m_userIds.push_back(value); return *this; } /** *User IDs to include in the rule.
*/ inline AccessControlRule& AddUserIds(Aws::String&& value) { m_userIdsHasBeenSet = true; m_userIds.push_back(std::move(value)); return *this; } /** *User IDs to include in the rule.
*/ inline AccessControlRule& AddUserIds(const char* value) { m_userIdsHasBeenSet = true; m_userIds.push_back(value); return *this; } /** *User IDs to exclude from the rule.
*/ inline const Aws::VectorUser IDs to exclude from the rule.
*/ inline bool NotUserIdsHasBeenSet() const { return m_notUserIdsHasBeenSet; } /** *User IDs to exclude from the rule.
*/ inline void SetNotUserIds(const Aws::VectorUser IDs to exclude from the rule.
*/ inline void SetNotUserIds(Aws::VectorUser IDs to exclude from the rule.
*/ inline AccessControlRule& WithNotUserIds(const Aws::VectorUser IDs to exclude from the rule.
*/ inline AccessControlRule& WithNotUserIds(Aws::VectorUser IDs to exclude from the rule.
*/ inline AccessControlRule& AddNotUserIds(const Aws::String& value) { m_notUserIdsHasBeenSet = true; m_notUserIds.push_back(value); return *this; } /** *User IDs to exclude from the rule.
*/ inline AccessControlRule& AddNotUserIds(Aws::String&& value) { m_notUserIdsHasBeenSet = true; m_notUserIds.push_back(std::move(value)); return *this; } /** *User IDs to exclude from the rule.
*/ inline AccessControlRule& AddNotUserIds(const char* value) { m_notUserIdsHasBeenSet = true; m_notUserIds.push_back(value); return *this; } /** *The date that the rule was created.
*/ inline const Aws::Utils::DateTime& GetDateCreated() const{ return m_dateCreated; } /** *The date that the rule was created.
*/ inline bool DateCreatedHasBeenSet() const { return m_dateCreatedHasBeenSet; } /** *The date that the rule was created.
*/ inline void SetDateCreated(const Aws::Utils::DateTime& value) { m_dateCreatedHasBeenSet = true; m_dateCreated = value; } /** *The date that the rule was created.
*/ inline void SetDateCreated(Aws::Utils::DateTime&& value) { m_dateCreatedHasBeenSet = true; m_dateCreated = std::move(value); } /** *The date that the rule was created.
*/ inline AccessControlRule& WithDateCreated(const Aws::Utils::DateTime& value) { SetDateCreated(value); return *this;} /** *The date that the rule was created.
*/ inline AccessControlRule& WithDateCreated(Aws::Utils::DateTime&& value) { SetDateCreated(std::move(value)); return *this;} /** *The date that the rule was modified.
*/ inline const Aws::Utils::DateTime& GetDateModified() const{ return m_dateModified; } /** *The date that the rule was modified.
*/ inline bool DateModifiedHasBeenSet() const { return m_dateModifiedHasBeenSet; } /** *The date that the rule was modified.
*/ inline void SetDateModified(const Aws::Utils::DateTime& value) { m_dateModifiedHasBeenSet = true; m_dateModified = value; } /** *The date that the rule was modified.
*/ inline void SetDateModified(Aws::Utils::DateTime&& value) { m_dateModifiedHasBeenSet = true; m_dateModified = std::move(value); } /** *The date that the rule was modified.
*/ inline AccessControlRule& WithDateModified(const Aws::Utils::DateTime& value) { SetDateModified(value); return *this;} /** *The date that the rule was modified.
*/ inline AccessControlRule& WithDateModified(Aws::Utils::DateTime&& value) { SetDateModified(std::move(value)); return *this;} /** *Impersonation role IDs to include in the rule.
*/ inline const Aws::VectorImpersonation role IDs to include in the rule.
*/ inline bool ImpersonationRoleIdsHasBeenSet() const { return m_impersonationRoleIdsHasBeenSet; } /** *Impersonation role IDs to include in the rule.
*/ inline void SetImpersonationRoleIds(const Aws::VectorImpersonation role IDs to include in the rule.
*/ inline void SetImpersonationRoleIds(Aws::VectorImpersonation role IDs to include in the rule.
*/ inline AccessControlRule& WithImpersonationRoleIds(const Aws::VectorImpersonation role IDs to include in the rule.
*/ inline AccessControlRule& WithImpersonationRoleIds(Aws::VectorImpersonation role IDs to include in the rule.
*/ inline AccessControlRule& AddImpersonationRoleIds(const Aws::String& value) { m_impersonationRoleIdsHasBeenSet = true; m_impersonationRoleIds.push_back(value); return *this; } /** *Impersonation role IDs to include in the rule.
*/ inline AccessControlRule& AddImpersonationRoleIds(Aws::String&& value) { m_impersonationRoleIdsHasBeenSet = true; m_impersonationRoleIds.push_back(std::move(value)); return *this; } /** *Impersonation role IDs to include in the rule.
*/ inline AccessControlRule& AddImpersonationRoleIds(const char* value) { m_impersonationRoleIdsHasBeenSet = true; m_impersonationRoleIds.push_back(value); return *this; } /** *Impersonation role IDs to exclude from the rule.
*/ inline const Aws::VectorImpersonation role IDs to exclude from the rule.
*/ inline bool NotImpersonationRoleIdsHasBeenSet() const { return m_notImpersonationRoleIdsHasBeenSet; } /** *Impersonation role IDs to exclude from the rule.
*/ inline void SetNotImpersonationRoleIds(const Aws::VectorImpersonation role IDs to exclude from the rule.
*/ inline void SetNotImpersonationRoleIds(Aws::VectorImpersonation role IDs to exclude from the rule.
*/ inline AccessControlRule& WithNotImpersonationRoleIds(const Aws::VectorImpersonation role IDs to exclude from the rule.
*/ inline AccessControlRule& WithNotImpersonationRoleIds(Aws::VectorImpersonation role IDs to exclude from the rule.
*/ inline AccessControlRule& AddNotImpersonationRoleIds(const Aws::String& value) { m_notImpersonationRoleIdsHasBeenSet = true; m_notImpersonationRoleIds.push_back(value); return *this; } /** *Impersonation role IDs to exclude from the rule.
*/ inline AccessControlRule& AddNotImpersonationRoleIds(Aws::String&& value) { m_notImpersonationRoleIdsHasBeenSet = true; m_notImpersonationRoleIds.push_back(std::move(value)); return *this; } /** *Impersonation role IDs to exclude from the rule.
*/ inline AccessControlRule& AddNotImpersonationRoleIds(const char* value) { m_notImpersonationRoleIdsHasBeenSet = true; m_notImpersonationRoleIds.push_back(value); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; AccessControlRuleEffect m_effect; bool m_effectHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector