/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace FMS { namespace Model { /** */ class AWS_FMS_API DeletePolicyRequest : public FMSRequest { public: DeletePolicyRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "DeletePolicy"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

The ID of the policy that you want to delete. You can retrieve this ID from * PutPolicy and ListPolicies.

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

If True, the request performs cleanup according to the policy * type.

For AWS WAF and Shield Advanced policies, the cleanup does the * following:

  • Deletes rule groups created by AWS Firewall * Manager

  • Removes web ACLs from in-scope resources

  • *
  • Deletes web ACLs that contain no rules or rule groups

*

For security group policies, the cleanup does the following for each security * group in the policy:

  • Disassociates the security group from * in-scope resources

  • Deletes the security group if it was * created through Firewall Manager and if it's no longer associated with any * resources through another policy

After the cleanup, in-scope * resources are no longer protected by web ACLs in this policy. Protection of * out-of-scope resources remains unchanged. Scope is determined by tags that you * create and accounts that you associate with the policy. When creating the * policy, if you specify that only resources in specific accounts or with specific * tags are in scope of the policy, those accounts and resources are handled by the * policy. All others are out of scope. If you don't specify tags or accounts, all * resources are in scope.

*/ inline bool GetDeleteAllPolicyResources() const{ return m_deleteAllPolicyResources; } /** *

If True, the request performs cleanup according to the policy * type.

For AWS WAF and Shield Advanced policies, the cleanup does the * following:

  • Deletes rule groups created by AWS Firewall * Manager

  • Removes web ACLs from in-scope resources

  • *
  • Deletes web ACLs that contain no rules or rule groups

*

For security group policies, the cleanup does the following for each security * group in the policy:

  • Disassociates the security group from * in-scope resources

  • Deletes the security group if it was * created through Firewall Manager and if it's no longer associated with any * resources through another policy

After the cleanup, in-scope * resources are no longer protected by web ACLs in this policy. Protection of * out-of-scope resources remains unchanged. Scope is determined by tags that you * create and accounts that you associate with the policy. When creating the * policy, if you specify that only resources in specific accounts or with specific * tags are in scope of the policy, those accounts and resources are handled by the * policy. All others are out of scope. If you don't specify tags or accounts, all * resources are in scope.

*/ inline bool DeleteAllPolicyResourcesHasBeenSet() const { return m_deleteAllPolicyResourcesHasBeenSet; } /** *

If True, the request performs cleanup according to the policy * type.

For AWS WAF and Shield Advanced policies, the cleanup does the * following:

  • Deletes rule groups created by AWS Firewall * Manager

  • Removes web ACLs from in-scope resources

  • *
  • Deletes web ACLs that contain no rules or rule groups

*

For security group policies, the cleanup does the following for each security * group in the policy:

  • Disassociates the security group from * in-scope resources

  • Deletes the security group if it was * created through Firewall Manager and if it's no longer associated with any * resources through another policy

After the cleanup, in-scope * resources are no longer protected by web ACLs in this policy. Protection of * out-of-scope resources remains unchanged. Scope is determined by tags that you * create and accounts that you associate with the policy. When creating the * policy, if you specify that only resources in specific accounts or with specific * tags are in scope of the policy, those accounts and resources are handled by the * policy. All others are out of scope. If you don't specify tags or accounts, all * resources are in scope.

*/ inline void SetDeleteAllPolicyResources(bool value) { m_deleteAllPolicyResourcesHasBeenSet = true; m_deleteAllPolicyResources = value; } /** *

If True, the request performs cleanup according to the policy * type.

For AWS WAF and Shield Advanced policies, the cleanup does the * following:

  • Deletes rule groups created by AWS Firewall * Manager

  • Removes web ACLs from in-scope resources

  • *
  • Deletes web ACLs that contain no rules or rule groups

*

For security group policies, the cleanup does the following for each security * group in the policy:

  • Disassociates the security group from * in-scope resources

  • Deletes the security group if it was * created through Firewall Manager and if it's no longer associated with any * resources through another policy

After the cleanup, in-scope * resources are no longer protected by web ACLs in this policy. Protection of * out-of-scope resources remains unchanged. Scope is determined by tags that you * create and accounts that you associate with the policy. When creating the * policy, if you specify that only resources in specific accounts or with specific * tags are in scope of the policy, those accounts and resources are handled by the * policy. All others are out of scope. If you don't specify tags or accounts, all * resources are in scope.

*/ inline DeletePolicyRequest& WithDeleteAllPolicyResources(bool value) { SetDeleteAllPolicyResources(value); return *this;} private: Aws::String m_policyId; bool m_policyIdHasBeenSet; bool m_deleteAllPolicyResources; bool m_deleteAllPolicyResourcesHasBeenSet; }; } // namespace Model } // namespace FMS } // namespace Aws