/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #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 resource that is not protected by the policy.

See * Also:

AWS * API Reference

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

The resource ID.

*/ inline const Aws::String& GetResourceId() const{ return m_resourceId; } /** *

The resource ID.

*/ inline bool ResourceIdHasBeenSet() const { return m_resourceIdHasBeenSet; } /** *

The resource ID.

*/ inline void SetResourceId(const Aws::String& value) { m_resourceIdHasBeenSet = true; m_resourceId = value; } /** *

The resource ID.

*/ inline void SetResourceId(Aws::String&& value) { m_resourceIdHasBeenSet = true; m_resourceId = std::move(value); } /** *

The resource ID.

*/ inline void SetResourceId(const char* value) { m_resourceIdHasBeenSet = true; m_resourceId.assign(value); } /** *

The resource ID.

*/ inline ComplianceViolator& WithResourceId(const Aws::String& value) { SetResourceId(value); return *this;} /** *

The resource ID.

*/ inline ComplianceViolator& WithResourceId(Aws::String&& value) { SetResourceId(std::move(value)); return *this;} /** *

The resource ID.

*/ inline ComplianceViolator& WithResourceId(const char* value) { SetResourceId(value); return *this;} /** *

The reason that the resource is not protected by the policy.

*/ inline const ViolationReason& GetViolationReason() const{ return m_violationReason; } /** *

The reason that the resource is not protected by the policy.

*/ inline bool ViolationReasonHasBeenSet() const { return m_violationReasonHasBeenSet; } /** *

The reason that the resource is not protected by the policy.

*/ inline void SetViolationReason(const ViolationReason& value) { m_violationReasonHasBeenSet = true; m_violationReason = value; } /** *

The reason that the resource is not protected by the policy.

*/ inline void SetViolationReason(ViolationReason&& value) { m_violationReasonHasBeenSet = true; m_violationReason = std::move(value); } /** *

The reason that the resource is not protected by the policy.

*/ inline ComplianceViolator& WithViolationReason(const ViolationReason& value) { SetViolationReason(value); return *this;} /** *

The reason that the resource is not protected by the policy.

*/ inline ComplianceViolator& WithViolationReason(ViolationReason&& value) { SetViolationReason(std::move(value)); return *this;} /** *

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

The resource type. This is in the format shown in the Amazon * Web Services Resource Types Reference. For example: * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::CloudFront::Distribution, or * AWS::NetworkFirewall::FirewallPolicy.

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

Metadata about the resource that doesn't comply with the policy scope.

*/ inline const Aws::Map& GetMetadata() const{ return m_metadata; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline void SetMetadata(const Aws::Map& value) { m_metadataHasBeenSet = true; m_metadata = value; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline void SetMetadata(Aws::Map&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& WithMetadata(const Aws::Map& value) { SetMetadata(value); return *this;} /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& WithMetadata(Aws::Map&& value) { SetMetadata(std::move(value)); return *this;} /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& AddMetadata(const Aws::String& key, const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, value); return *this; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& AddMetadata(Aws::String&& key, const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata.emplace(std::move(key), value); return *this; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& AddMetadata(const Aws::String& key, Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, std::move(value)); return *this; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& AddMetadata(Aws::String&& key, Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata.emplace(std::move(key), std::move(value)); return *this; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& AddMetadata(const char* key, Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, std::move(value)); return *this; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& AddMetadata(Aws::String&& key, const char* value) { m_metadataHasBeenSet = true; m_metadata.emplace(std::move(key), value); return *this; } /** *

Metadata about the resource that doesn't comply with the policy scope.

*/ inline ComplianceViolator& AddMetadata(const char* key, const char* value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, value); return *this; } private: Aws::String m_resourceId; bool m_resourceIdHasBeenSet = false; ViolationReason m_violationReason; bool m_violationReasonHasBeenSet = false; Aws::String m_resourceType; bool m_resourceTypeHasBeenSet = false; Aws::Map m_metadata; bool m_metadataHasBeenSet = false; }; } // namespace Model } // namespace FMS } // namespace Aws