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

Details of the AWS Firewall Manager policy.

See Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) of the specified policy.

*/ inline const Aws::String& GetPolicyArn() const{ return m_policyArn; } /** *

The Amazon Resource Name (ARN) of the specified policy.

*/ inline bool PolicyArnHasBeenSet() const { return m_policyArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the specified policy.

*/ inline void SetPolicyArn(const Aws::String& value) { m_policyArnHasBeenSet = true; m_policyArn = value; } /** *

The Amazon Resource Name (ARN) of the specified policy.

*/ inline void SetPolicyArn(Aws::String&& value) { m_policyArnHasBeenSet = true; m_policyArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the specified policy.

*/ inline void SetPolicyArn(const char* value) { m_policyArnHasBeenSet = true; m_policyArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the specified policy.

*/ inline PolicySummary& WithPolicyArn(const Aws::String& value) { SetPolicyArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the specified policy.

*/ inline PolicySummary& WithPolicyArn(Aws::String&& value) { SetPolicyArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the specified policy.

*/ inline PolicySummary& WithPolicyArn(const char* value) { SetPolicyArn(value); return *this;} /** *

The ID of the specified policy.

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

The ID of the specified policy.

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

The ID of the specified policy.

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

The ID of the specified policy.

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

The ID of the specified policy.

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

The ID of the specified policy.

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

The ID of the specified policy.

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

The ID of the specified policy.

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

The name of the specified policy.

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

The name of the specified policy.

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

The name of the specified policy.

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

The name of the specified policy.

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

The name of the specified policy.

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

The name of the specified policy.

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

The name of the specified policy.

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

The name of the specified policy.

*/ inline PolicySummary& WithPolicyName(const char* value) { SetPolicyName(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 PolicySummary& 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 PolicySummary& 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 PolicySummary& WithResourceType(const char* value) { SetResourceType(value); return *this;} /** *

The service that the policy is using to protect the resources. This specifies * the type of policy that is created, either an AWS WAF policy, a Shield Advanced * policy, or a security group policy.

*/ inline const SecurityServiceType& GetSecurityServiceType() const{ return m_securityServiceType; } /** *

The service that the policy is using to protect the resources. This specifies * the type of policy that is created, either an AWS WAF policy, a Shield Advanced * policy, or a security group policy.

*/ inline bool SecurityServiceTypeHasBeenSet() const { return m_securityServiceTypeHasBeenSet; } /** *

The service that the policy is using to protect the resources. This specifies * the type of policy that is created, either an AWS WAF policy, a Shield Advanced * policy, or a security group policy.

*/ inline void SetSecurityServiceType(const SecurityServiceType& value) { m_securityServiceTypeHasBeenSet = true; m_securityServiceType = value; } /** *

The service that the policy is using to protect the resources. This specifies * the type of policy that is created, either an AWS WAF policy, a Shield Advanced * policy, or a security group policy.

*/ inline void SetSecurityServiceType(SecurityServiceType&& value) { m_securityServiceTypeHasBeenSet = true; m_securityServiceType = std::move(value); } /** *

The service that the policy is using to protect the resources. This specifies * the type of policy that is created, either an AWS WAF policy, a Shield Advanced * policy, or a security group policy.

*/ inline PolicySummary& WithSecurityServiceType(const SecurityServiceType& value) { SetSecurityServiceType(value); return *this;} /** *

The service that the policy is using to protect the resources. This specifies * the type of policy that is created, either an AWS WAF policy, a Shield Advanced * policy, or a security group policy.

*/ inline PolicySummary& WithSecurityServiceType(SecurityServiceType&& value) { SetSecurityServiceType(std::move(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 PolicySummary& WithRemediationEnabled(bool value) { SetRemediationEnabled(value); return *this;} private: Aws::String m_policyArn; bool m_policyArnHasBeenSet; Aws::String m_policyId; bool m_policyIdHasBeenSet; Aws::String m_policyName; bool m_policyNameHasBeenSet; Aws::String m_resourceType; bool m_resourceTypeHasBeenSet; SecurityServiceType m_securityServiceType; bool m_securityServiceTypeHasBeenSet; bool m_remediationEnabled; bool m_remediationEnabledHasBeenSet; }; } // namespace Model } // namespace FMS } // namespace Aws