/** * 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 #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace FMS { namespace Model { /** *

An Firewall Manager policy.

See Also:

AWS API * Reference

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

The ID of the Firewall Manager policy.

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

The ID of the Firewall Manager policy.

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

The ID of the Firewall Manager policy.

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

The ID of the Firewall Manager policy.

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

The ID of the Firewall Manager policy.

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

The ID of the Firewall Manager policy.

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

The ID of the Firewall Manager policy.

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

The ID of the Firewall Manager policy.

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

The name of the Firewall Manager policy.

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

The name of the Firewall Manager policy.

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

The name of the Firewall Manager policy.

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

The name of the Firewall Manager policy.

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

The name of the Firewall Manager policy.

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

The name of the Firewall Manager policy.

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

The name of the Firewall Manager policy.

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

The name of the 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

*/ 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

*/ 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

*/ 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

*/ 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

*/ 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

*/ 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

*/ 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 Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and * then specify the resource types in a ResourceTypeList.

For * WAF and Shield Advanced, resource types include * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, * AWS::EC2::EIP, 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. For an Network Firewall * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * ResourceType.

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

An array of ResourceType objects. Use this only to specify * multiple resource types. To specify a single resource type, use * 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;} /** *

Indicates whether Firewall Manager should automatically remove protections * from resources that leave the policy scope and clean up resources that Firewall * Manager is managing for accounts when those accounts leave policy scope. For * example, Firewall Manager will disassociate a Firewall Manager managed web ACL * from a protected customer resource when the customer resource leaves policy * scope.

By default, Firewall Manager doesn't remove protections or delete * Firewall Manager managed resources.

This option is not available for * Shield Advanced or WAF Classic policies.

*/ inline bool GetDeleteUnusedFMManagedResources() const{ return m_deleteUnusedFMManagedResources; } /** *

Indicates whether Firewall Manager should automatically remove protections * from resources that leave the policy scope and clean up resources that Firewall * Manager is managing for accounts when those accounts leave policy scope. For * example, Firewall Manager will disassociate a Firewall Manager managed web ACL * from a protected customer resource when the customer resource leaves policy * scope.

By default, Firewall Manager doesn't remove protections or delete * Firewall Manager managed resources.

This option is not available for * Shield Advanced or WAF Classic policies.

*/ inline bool DeleteUnusedFMManagedResourcesHasBeenSet() const { return m_deleteUnusedFMManagedResourcesHasBeenSet; } /** *

Indicates whether Firewall Manager should automatically remove protections * from resources that leave the policy scope and clean up resources that Firewall * Manager is managing for accounts when those accounts leave policy scope. For * example, Firewall Manager will disassociate a Firewall Manager managed web ACL * from a protected customer resource when the customer resource leaves policy * scope.

By default, Firewall Manager doesn't remove protections or delete * Firewall Manager managed resources.

This option is not available for * Shield Advanced or WAF Classic policies.

*/ inline void SetDeleteUnusedFMManagedResources(bool value) { m_deleteUnusedFMManagedResourcesHasBeenSet = true; m_deleteUnusedFMManagedResources = value; } /** *

Indicates whether Firewall Manager should automatically remove protections * from resources that leave the policy scope and clean up resources that Firewall * Manager is managing for accounts when those accounts leave policy scope. For * example, Firewall Manager will disassociate a Firewall Manager managed web ACL * from a protected customer resource when the customer resource leaves policy * scope.

By default, Firewall Manager doesn't remove protections or delete * Firewall Manager managed resources.

This option is not available for * Shield Advanced or WAF Classic policies.

*/ inline Policy& WithDeleteUnusedFMManagedResources(bool value) { SetDeleteUnusedFMManagedResources(value); return *this;} /** *

Specifies the Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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 Amazon Web Services account IDs and 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, 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; } /** *

The unique identifiers of the resource sets used by the policy.

*/ inline const Aws::Vector& GetResourceSetIds() const{ return m_resourceSetIds; } /** *

The unique identifiers of the resource sets used by the policy.

*/ inline bool ResourceSetIdsHasBeenSet() const { return m_resourceSetIdsHasBeenSet; } /** *

The unique identifiers of the resource sets used by the policy.

*/ inline void SetResourceSetIds(const Aws::Vector& value) { m_resourceSetIdsHasBeenSet = true; m_resourceSetIds = value; } /** *

The unique identifiers of the resource sets used by the policy.

*/ inline void SetResourceSetIds(Aws::Vector&& value) { m_resourceSetIdsHasBeenSet = true; m_resourceSetIds = std::move(value); } /** *

The unique identifiers of the resource sets used by the policy.

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

The unique identifiers of the resource sets used by the policy.

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

The unique identifiers of the resource sets used by the policy.

*/ inline Policy& AddResourceSetIds(const Aws::String& value) { m_resourceSetIdsHasBeenSet = true; m_resourceSetIds.push_back(value); return *this; } /** *

The unique identifiers of the resource sets used by the policy.

*/ inline Policy& AddResourceSetIds(Aws::String&& value) { m_resourceSetIdsHasBeenSet = true; m_resourceSetIds.push_back(std::move(value)); return *this; } /** *

The unique identifiers of the resource sets used by the policy.

*/ inline Policy& AddResourceSetIds(const char* value) { m_resourceSetIdsHasBeenSet = true; m_resourceSetIds.push_back(value); return *this; } /** *

The definition of the Network Firewall firewall policy.

*/ inline const Aws::String& GetPolicyDescription() const{ return m_policyDescription; } /** *

The definition of the Network Firewall firewall policy.

*/ inline bool PolicyDescriptionHasBeenSet() const { return m_policyDescriptionHasBeenSet; } /** *

The definition of the Network Firewall firewall policy.

*/ inline void SetPolicyDescription(const Aws::String& value) { m_policyDescriptionHasBeenSet = true; m_policyDescription = value; } /** *

The definition of the Network Firewall firewall policy.

*/ inline void SetPolicyDescription(Aws::String&& value) { m_policyDescriptionHasBeenSet = true; m_policyDescription = std::move(value); } /** *

The definition of the Network Firewall firewall policy.

*/ inline void SetPolicyDescription(const char* value) { m_policyDescriptionHasBeenSet = true; m_policyDescription.assign(value); } /** *

The definition of the Network Firewall firewall policy.

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

The definition of the Network Firewall firewall policy.

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

The definition of the Network Firewall firewall policy.

*/ inline Policy& WithPolicyDescription(const char* value) { SetPolicyDescription(value); return *this;} /** *

Indicates whether the policy is in or out of an admin's policy or Region * scope.

  • ACTIVE - The administrator can manage and * delete the policy.

  • OUT_OF_ADMIN_SCOPE - The * administrator can view the policy, but they can't edit or delete the policy. * Existing policy protections stay in place. Any new resources that come into * scope of the policy won't be protected.

*/ inline const CustomerPolicyStatus& GetPolicyStatus() const{ return m_policyStatus; } /** *

Indicates whether the policy is in or out of an admin's policy or Region * scope.

  • ACTIVE - The administrator can manage and * delete the policy.

  • OUT_OF_ADMIN_SCOPE - The * administrator can view the policy, but they can't edit or delete the policy. * Existing policy protections stay in place. Any new resources that come into * scope of the policy won't be protected.

*/ inline bool PolicyStatusHasBeenSet() const { return m_policyStatusHasBeenSet; } /** *

Indicates whether the policy is in or out of an admin's policy or Region * scope.

  • ACTIVE - The administrator can manage and * delete the policy.

  • OUT_OF_ADMIN_SCOPE - The * administrator can view the policy, but they can't edit or delete the policy. * Existing policy protections stay in place. Any new resources that come into * scope of the policy won't be protected.

*/ inline void SetPolicyStatus(const CustomerPolicyStatus& value) { m_policyStatusHasBeenSet = true; m_policyStatus = value; } /** *

Indicates whether the policy is in or out of an admin's policy or Region * scope.

  • ACTIVE - The administrator can manage and * delete the policy.

  • OUT_OF_ADMIN_SCOPE - The * administrator can view the policy, but they can't edit or delete the policy. * Existing policy protections stay in place. Any new resources that come into * scope of the policy won't be protected.

*/ inline void SetPolicyStatus(CustomerPolicyStatus&& value) { m_policyStatusHasBeenSet = true; m_policyStatus = std::move(value); } /** *

Indicates whether the policy is in or out of an admin's policy or Region * scope.

  • ACTIVE - The administrator can manage and * delete the policy.

  • OUT_OF_ADMIN_SCOPE - The * administrator can view the policy, but they can't edit or delete the policy. * Existing policy protections stay in place. Any new resources that come into * scope of the policy won't be protected.

*/ inline Policy& WithPolicyStatus(const CustomerPolicyStatus& value) { SetPolicyStatus(value); return *this;} /** *

Indicates whether the policy is in or out of an admin's policy or Region * scope.

  • ACTIVE - The administrator can manage and * delete the policy.

  • OUT_OF_ADMIN_SCOPE - The * administrator can view the policy, but they can't edit or delete the policy. * Existing policy protections stay in place. Any new resources that come into * scope of the policy won't be protected.

*/ inline Policy& WithPolicyStatus(CustomerPolicyStatus&& value) { SetPolicyStatus(std::move(value)); return *this;} private: Aws::String m_policyId; bool m_policyIdHasBeenSet = false; Aws::String m_policyName; bool m_policyNameHasBeenSet = false; Aws::String m_policyUpdateToken; bool m_policyUpdateTokenHasBeenSet = false; SecurityServicePolicyData m_securityServicePolicyData; bool m_securityServicePolicyDataHasBeenSet = false; Aws::String m_resourceType; bool m_resourceTypeHasBeenSet = false; Aws::Vector m_resourceTypeList; bool m_resourceTypeListHasBeenSet = false; Aws::Vector m_resourceTags; bool m_resourceTagsHasBeenSet = false; bool m_excludeResourceTags; bool m_excludeResourceTagsHasBeenSet = false; bool m_remediationEnabled; bool m_remediationEnabledHasBeenSet = false; bool m_deleteUnusedFMManagedResources; bool m_deleteUnusedFMManagedResourcesHasBeenSet = false; Aws::Map> m_includeMap; bool m_includeMapHasBeenSet = false; Aws::Map> m_excludeMap; bool m_excludeMapHasBeenSet = false; Aws::Vector m_resourceSetIds; bool m_resourceSetIdsHasBeenSet = false; Aws::String m_policyDescription; bool m_policyDescriptionHasBeenSet = false; CustomerPolicyStatus m_policyStatus; bool m_policyStatusHasBeenSet = false; }; } // namespace Model } // namespace FMS } // namespace Aws