/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace FMS { namespace Model { /** *

An AWS Firewall Manager policy.

See Also:

AWS API * Reference

*/ class AWS_FMS_API Policy { public: Policy(); Policy(Aws::Utils::Json::JsonView jsonValue); Policy& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The ID of the AWS Firewall Manager policy.

*/ inline const Aws::String& GetPolicyId() const{ return m_policyId; } /** *

The ID of the AWS Firewall Manager policy.

*/ inline bool PolicyIdHasBeenSet() const { return m_policyIdHasBeenSet; } /** *

The ID of the AWS Firewall Manager policy.

*/ inline void SetPolicyId(const Aws::String& value) { m_policyIdHasBeenSet = true; m_policyId = value; } /** *

The ID of the AWS Firewall Manager policy.

*/ inline void SetPolicyId(Aws::String&& value) { m_policyIdHasBeenSet = true; m_policyId = std::move(value); } /** *

The ID of the AWS Firewall Manager policy.

*/ inline void SetPolicyId(const char* value) { m_policyIdHasBeenSet = true; m_policyId.assign(value); } /** *

The ID of the AWS Firewall Manager policy.

*/ inline Policy& WithPolicyId(const Aws::String& value) { SetPolicyId(value); return *this;} /** *

The ID of the AWS Firewall Manager policy.

*/ inline Policy& WithPolicyId(Aws::String&& value) { SetPolicyId(std::move(value)); return *this;} /** *

The ID of the AWS Firewall Manager policy.

*/ inline Policy& WithPolicyId(const char* value) { SetPolicyId(value); return *this;} /** *

The name of the AWS Firewall Manager policy.

*/ inline const Aws::String& GetPolicyName() const{ return m_policyName; } /** *

The name of the AWS Firewall Manager policy.

*/ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; } /** *

The name of the AWS Firewall Manager policy.

*/ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; } /** *

The name of the AWS Firewall Manager policy.

*/ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); } /** *

The name of the AWS Firewall Manager policy.

*/ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); } /** *

The name of the AWS Firewall Manager policy.

*/ inline Policy& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;} /** *

The name of the AWS Firewall Manager policy.

*/ inline Policy& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;} /** *

The name of the AWS Firewall Manager policy.

*/ inline Policy& WithPolicyName(const char* value) { SetPolicyName(value); return *this;} /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline const Aws::String& GetPolicyUpdateToken() const{ return m_policyUpdateToken; } /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline bool PolicyUpdateTokenHasBeenSet() const { return m_policyUpdateTokenHasBeenSet; } /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline void SetPolicyUpdateToken(const Aws::String& value) { m_policyUpdateTokenHasBeenSet = true; m_policyUpdateToken = value; } /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline void SetPolicyUpdateToken(Aws::String&& value) { m_policyUpdateTokenHasBeenSet = true; m_policyUpdateToken = std::move(value); } /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline void SetPolicyUpdateToken(const char* value) { m_policyUpdateTokenHasBeenSet = true; m_policyUpdateToken.assign(value); } /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline Policy& WithPolicyUpdateToken(const Aws::String& value) { SetPolicyUpdateToken(value); return *this;} /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline Policy& WithPolicyUpdateToken(Aws::String&& value) { SetPolicyUpdateToken(std::move(value)); return *this;} /** *

A unique identifier for each update to the policy. When issuing a * PutPolicy request, the PolicyUpdateToken in the * request must match the PolicyUpdateToken of the current policy * version. To get the PolicyUpdateToken of the current policy * version, use a GetPolicy request.

*/ inline Policy& WithPolicyUpdateToken(const char* value) { SetPolicyUpdateToken(value); return *this;} /** *

Details about the security service that is being used to protect the * resources.

*/ inline const SecurityServicePolicyData& GetSecurityServicePolicyData() const{ return m_securityServicePolicyData; } /** *

Details about the security service that is being used to protect the * resources.

*/ inline bool SecurityServicePolicyDataHasBeenSet() const { return m_securityServicePolicyDataHasBeenSet; } /** *

Details about the security service that is being used to protect the * resources.

*/ inline void SetSecurityServicePolicyData(const SecurityServicePolicyData& value) { m_securityServicePolicyDataHasBeenSet = true; m_securityServicePolicyData = value; } /** *

Details about the security service that is being used to protect the * resources.

*/ inline void SetSecurityServicePolicyData(SecurityServicePolicyData&& value) { m_securityServicePolicyDataHasBeenSet = true; m_securityServicePolicyData = std::move(value); } /** *

Details about the security service that is being used to protect the * resources.

*/ inline Policy& WithSecurityServicePolicyData(const SecurityServicePolicyData& value) { SetSecurityServicePolicyData(value); return *this;} /** *

Details about the security service that is being used to protect the * resources.

*/ inline Policy& WithSecurityServicePolicyData(SecurityServicePolicyData&& value) { SetSecurityServicePolicyData(std::move(value)); return *this;} /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline const Aws::String& GetResourceType() const{ return m_resourceType; } /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline void SetResourceType(const Aws::String& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline void SetResourceType(Aws::String&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline void SetResourceType(const char* value) { m_resourceTypeHasBeenSet = true; m_resourceType.assign(value); } /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline Policy& WithResourceType(const Aws::String& value) { SetResourceType(value); return *this;} /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline Policy& WithResourceType(Aws::String&& value) { SetResourceType(std::move(value)); return *this;} /** *

The type of resource protected by or in scope of the policy. This is in the * format shown in the AWS * Resource Types Reference. For AWS WAF and Shield Advanced, examples include * AWS::ElasticLoadBalancingV2::LoadBalancer and * AWS::CloudFront::Distribution. For a security group common policy, * valid values are AWS::EC2::NetworkInterface and * AWS::EC2::Instance. For a security group content audit policy, * valid values are AWS::EC2::SecurityGroup, * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. * For a security group usage audit policy, the value is * AWS::EC2::SecurityGroup.

*/ inline Policy& WithResourceType(const char* value) { SetResourceType(value); return *this;} /** *

An array of ResourceType.

*/ inline const Aws::Vector& GetResourceTypeList() const{ return m_resourceTypeList; } /** *

An array of ResourceType.

*/ inline bool ResourceTypeListHasBeenSet() const { return m_resourceTypeListHasBeenSet; } /** *

An array of ResourceType.

*/ inline void SetResourceTypeList(const Aws::Vector& value) { m_resourceTypeListHasBeenSet = true; m_resourceTypeList = value; } /** *

An array of ResourceType.

*/ inline void SetResourceTypeList(Aws::Vector&& value) { m_resourceTypeListHasBeenSet = true; m_resourceTypeList = std::move(value); } /** *

An array of ResourceType.

*/ inline Policy& WithResourceTypeList(const Aws::Vector& value) { SetResourceTypeList(value); return *this;} /** *

An array of ResourceType.

*/ inline Policy& WithResourceTypeList(Aws::Vector&& value) { SetResourceTypeList(std::move(value)); return *this;} /** *

An array of ResourceType.

*/ inline Policy& AddResourceTypeList(const Aws::String& value) { m_resourceTypeListHasBeenSet = true; m_resourceTypeList.push_back(value); return *this; } /** *

An array of ResourceType.

*/ inline Policy& AddResourceTypeList(Aws::String&& value) { m_resourceTypeListHasBeenSet = true; m_resourceTypeList.push_back(std::move(value)); return *this; } /** *

An array of ResourceType.

*/ inline Policy& AddResourceTypeList(const char* value) { m_resourceTypeListHasBeenSet = true; m_resourceTypeList.push_back(value); return *this; } /** *

An array of ResourceTag objects.

*/ inline const Aws::Vector& GetResourceTags() const{ return m_resourceTags; } /** *

An array of ResourceTag objects.

*/ inline bool ResourceTagsHasBeenSet() const { return m_resourceTagsHasBeenSet; } /** *

An array of ResourceTag objects.

*/ inline void SetResourceTags(const Aws::Vector& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = value; } /** *

An array of ResourceTag objects.

*/ inline void SetResourceTags(Aws::Vector&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = std::move(value); } /** *

An array of ResourceTag objects.

*/ inline Policy& WithResourceTags(const Aws::Vector& value) { SetResourceTags(value); return *this;} /** *

An array of ResourceTag objects.

*/ inline Policy& WithResourceTags(Aws::Vector&& value) { SetResourceTags(std::move(value)); return *this;} /** *

An array of ResourceTag objects.

*/ inline Policy& AddResourceTags(const ResourceTag& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.push_back(value); return *this; } /** *

An array of ResourceTag objects.

*/ inline Policy& AddResourceTags(ResourceTag&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.push_back(std::move(value)); return *this; } /** *

If set to True, resources with the tags that are specified in * the ResourceTag array are not in scope of the policy. If set to * False, and the ResourceTag array is not null, only * resources with the specified tags are in scope of the policy.

*/ inline bool GetExcludeResourceTags() const{ return m_excludeResourceTags; } /** *

If set to True, resources with the tags that are specified in * the ResourceTag array are not in scope of the policy. If set to * False, and the ResourceTag array is not null, only * resources with the specified tags are in scope of the policy.

*/ inline bool ExcludeResourceTagsHasBeenSet() const { return m_excludeResourceTagsHasBeenSet; } /** *

If set to True, resources with the tags that are specified in * the ResourceTag array are not in scope of the policy. If set to * False, and the ResourceTag array is not null, only * resources with the specified tags are in scope of the policy.

*/ inline void SetExcludeResourceTags(bool value) { m_excludeResourceTagsHasBeenSet = true; m_excludeResourceTags = value; } /** *

If set to True, resources with the tags that are specified in * the ResourceTag array are not in scope of the policy. If set to * False, and the ResourceTag array is not null, only * resources with the specified tags are in scope of the policy.

*/ inline Policy& WithExcludeResourceTags(bool value) { SetExcludeResourceTags(value); return *this;} /** *

Indicates if the policy should be automatically applied to new resources.

*/ inline bool GetRemediationEnabled() const{ return m_remediationEnabled; } /** *

Indicates if the policy should be automatically applied to new resources.

*/ inline bool RemediationEnabledHasBeenSet() const { return m_remediationEnabledHasBeenSet; } /** *

Indicates if the policy should be automatically applied to new resources.

*/ inline void SetRemediationEnabled(bool value) { m_remediationEnabledHasBeenSet = true; m_remediationEnabled = value; } /** *

Indicates if the policy should be automatically applied to new resources.

*/ inline Policy& WithRemediationEnabled(bool value) { SetRemediationEnabled(value); return *this;} /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline const Aws::Map>& GetIncludeMap() const{ return m_includeMap; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline bool IncludeMapHasBeenSet() const { return m_includeMapHasBeenSet; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline void SetIncludeMap(const Aws::Map>& value) { m_includeMapHasBeenSet = true; m_includeMap = value; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline void SetIncludeMap(Aws::Map>&& value) { m_includeMapHasBeenSet = true; m_includeMap = std::move(value); } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline Policy& WithIncludeMap(const Aws::Map>& value) { SetIncludeMap(value); return *this;} /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline Policy& WithIncludeMap(Aws::Map>&& value) { SetIncludeMap(std::move(value)); return *this;} /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline Policy& AddIncludeMap(const CustomerPolicyScopeIdType& key, const Aws::Vector& value) { m_includeMapHasBeenSet = true; m_includeMap.emplace(key, value); return *this; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline Policy& AddIncludeMap(CustomerPolicyScopeIdType&& key, const Aws::Vector& value) { m_includeMapHasBeenSet = true; m_includeMap.emplace(std::move(key), value); return *this; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline Policy& AddIncludeMap(const CustomerPolicyScopeIdType& key, Aws::Vector&& value) { m_includeMapHasBeenSet = true; m_includeMap.emplace(key, std::move(value)); return *this; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to include in the policy. Specifying an OU is the equivalent of specifying * all accounts in the OU and in any of its child OUs, including any child OUs and * accounts that are added at a later time.

You can specify inclusions or * exclusions, but not both. If you specify an IncludeMap, AWS * Firewall Manager applies the policy to all accounts specified by the * IncludeMap, and does not evaluate any ExcludeMap * specifications. If you do not specify an IncludeMap, then Firewall * Manager applies the policy to all accounts except for those specified by the * ExcludeMap.

You can specify account IDs, OUs, or a * combination:

  • Specify account IDs by setting the key to * ACCOUNT. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • *

    Specify OUs by setting the key to ORG_UNIT. For example, the * following is a valid map: {“ORG_UNIT” : [“ouid111”, * “ouid112”]}.

  • Specify accounts and OUs together in a * single map, separated with a comma. For example, the following is a valid map: * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, * “ouid112”]}.

*/ inline Policy& AddIncludeMap(CustomerPolicyScopeIdType&& key, Aws::Vector&& value) { m_includeMapHasBeenSet = true; m_includeMap.emplace(std::move(key), std::move(value)); return *this; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline const Aws::Map>& GetExcludeMap() const{ return m_excludeMap; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline bool ExcludeMapHasBeenSet() const { return m_excludeMapHasBeenSet; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline void SetExcludeMap(const Aws::Map>& value) { m_excludeMapHasBeenSet = true; m_excludeMap = value; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline void SetExcludeMap(Aws::Map>&& value) { m_excludeMapHasBeenSet = true; m_excludeMap = std::move(value); } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline Policy& WithExcludeMap(const Aws::Map>& value) { SetExcludeMap(value); return *this;} /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline Policy& WithExcludeMap(Aws::Map>&& value) { SetExcludeMap(std::move(value)); return *this;} /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline Policy& AddExcludeMap(const CustomerPolicyScopeIdType& key, const Aws::Vector& value) { m_excludeMapHasBeenSet = true; m_excludeMap.emplace(key, value); return *this; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline Policy& AddExcludeMap(CustomerPolicyScopeIdType&& key, const Aws::Vector& value) { m_excludeMapHasBeenSet = true; m_excludeMap.emplace(std::move(key), value); return *this; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline Policy& AddExcludeMap(const CustomerPolicyScopeIdType& key, Aws::Vector&& value) { m_excludeMapHasBeenSet = true; m_excludeMap.emplace(key, std::move(value)); return *this; } /** *

Specifies the AWS account IDs and AWS Organizations organizational units * (OUs) to exclude from the policy. Specifying an OU is the equivalent of * specifying all accounts in the OU and in any of its child OUs, including any * child OUs and accounts that are added at a later time.

You can specify * inclusions or exclusions, but not both. If you specify an * IncludeMap, AWS Firewall Manager applies the policy to all accounts * specified by the IncludeMap, and does not evaluate any * ExcludeMap specifications. If you do not specify an * IncludeMap, then Firewall Manager applies the policy to all * accounts except for those specified by the ExcludeMap.

You * can specify account IDs, OUs, or a combination:

  • Specify * account IDs by setting the key to ACCOUNT. For example, the * following is a valid map: {“ACCOUNT” : [“accountID1”, * “accountID2”]}.

  • Specify OUs by setting the key to * ORG_UNIT. For example, the following is a valid map: * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify * accounts and OUs together in a single map, separated with a comma. For example, * the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], * “ORG_UNIT” : [“ouid111”, “ouid112”]}.

*/ inline Policy& AddExcludeMap(CustomerPolicyScopeIdType&& key, Aws::Vector&& value) { m_excludeMapHasBeenSet = true; m_excludeMap.emplace(std::move(key), std::move(value)); return *this; } private: Aws::String m_policyId; bool m_policyIdHasBeenSet; Aws::String m_policyName; bool m_policyNameHasBeenSet; Aws::String m_policyUpdateToken; bool m_policyUpdateTokenHasBeenSet; SecurityServicePolicyData m_securityServicePolicyData; bool m_securityServicePolicyDataHasBeenSet; Aws::String m_resourceType; bool m_resourceTypeHasBeenSet; Aws::Vector m_resourceTypeList; bool m_resourceTypeListHasBeenSet; Aws::Vector m_resourceTags; bool m_resourceTagsHasBeenSet; bool m_excludeResourceTags; bool m_excludeResourceTagsHasBeenSet; bool m_remediationEnabled; bool m_remediationEnabledHasBeenSet; Aws::Map> m_includeMap; bool m_includeMapHasBeenSet; Aws::Map> m_excludeMap; bool m_excludeMapHasBeenSet; }; } // namespace Model } // namespace FMS } // namespace Aws