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

Provides a consistent format for Security Hub findings. * AwsSecurityFinding format allows you to share findings between * Amazon Web Services security services and third-party solutions.

A * finding is a potential security issue generated either by Amazon Web Services * services or by the integrated third-party solutions and standards checks.

*

See Also:

AWS * API Reference

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

The schema version that a finding is formatted for.

*/ inline const Aws::String& GetSchemaVersion() const{ return m_schemaVersion; } /** *

The schema version that a finding is formatted for.

*/ inline bool SchemaVersionHasBeenSet() const { return m_schemaVersionHasBeenSet; } /** *

The schema version that a finding is formatted for.

*/ inline void SetSchemaVersion(const Aws::String& value) { m_schemaVersionHasBeenSet = true; m_schemaVersion = value; } /** *

The schema version that a finding is formatted for.

*/ inline void SetSchemaVersion(Aws::String&& value) { m_schemaVersionHasBeenSet = true; m_schemaVersion = std::move(value); } /** *

The schema version that a finding is formatted for.

*/ inline void SetSchemaVersion(const char* value) { m_schemaVersionHasBeenSet = true; m_schemaVersion.assign(value); } /** *

The schema version that a finding is formatted for.

*/ inline AwsSecurityFinding& WithSchemaVersion(const Aws::String& value) { SetSchemaVersion(value); return *this;} /** *

The schema version that a finding is formatted for.

*/ inline AwsSecurityFinding& WithSchemaVersion(Aws::String&& value) { SetSchemaVersion(std::move(value)); return *this;} /** *

The schema version that a finding is formatted for.

*/ inline AwsSecurityFinding& WithSchemaVersion(const char* value) { SetSchemaVersion(value); return *this;} /** *

The security findings provider-specific identifier for a finding.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The security findings provider-specific identifier for a finding.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The security findings provider-specific identifier for a finding.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The security findings provider-specific identifier for a finding.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The security findings provider-specific identifier for a finding.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The security findings provider-specific identifier for a finding.

*/ inline AwsSecurityFinding& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The security findings provider-specific identifier for a finding.

*/ inline AwsSecurityFinding& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The security findings provider-specific identifier for a finding.

*/ inline AwsSecurityFinding& WithId(const char* value) { SetId(value); return *this;} /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline const Aws::String& GetProductArn() const{ return m_productArn; } /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline bool ProductArnHasBeenSet() const { return m_productArnHasBeenSet; } /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline void SetProductArn(const Aws::String& value) { m_productArnHasBeenSet = true; m_productArn = value; } /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline void SetProductArn(Aws::String&& value) { m_productArnHasBeenSet = true; m_productArn = std::move(value); } /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline void SetProductArn(const char* value) { m_productArnHasBeenSet = true; m_productArn.assign(value); } /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline AwsSecurityFinding& WithProductArn(const Aws::String& value) { SetProductArn(value); return *this;} /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline AwsSecurityFinding& WithProductArn(Aws::String&& value) { SetProductArn(std::move(value)); return *this;} /** *

The ARN generated by Security Hub that uniquely identifies a product that * generates findings. This can be the ARN for a third-party product that is * integrated with Security Hub, or the ARN for a custom integration.

*/ inline AwsSecurityFinding& WithProductArn(const char* value) { SetProductArn(value); return *this;} /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline const Aws::String& GetProductName() const{ return m_productName; } /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline bool ProductNameHasBeenSet() const { return m_productNameHasBeenSet; } /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline void SetProductName(const Aws::String& value) { m_productNameHasBeenSet = true; m_productName = value; } /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline void SetProductName(Aws::String&& value) { m_productNameHasBeenSet = true; m_productName = std::move(value); } /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline void SetProductName(const char* value) { m_productNameHasBeenSet = true; m_productName.assign(value); } /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline AwsSecurityFinding& WithProductName(const Aws::String& value) { SetProductName(value); return *this;} /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline AwsSecurityFinding& WithProductName(Aws::String&& value) { SetProductName(std::move(value)); return *this;} /** *

The name of the product that generated the finding.

Security Hub * populates this attribute automatically for each finding. You cannot update this * attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by product name, you use this attribute.

*/ inline AwsSecurityFinding& WithProductName(const char* value) { SetProductName(value); return *this;} /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline const Aws::String& GetCompanyName() const{ return m_companyName; } /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline bool CompanyNameHasBeenSet() const { return m_companyNameHasBeenSet; } /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline void SetCompanyName(const Aws::String& value) { m_companyNameHasBeenSet = true; m_companyName = value; } /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline void SetCompanyName(Aws::String&& value) { m_companyNameHasBeenSet = true; m_companyName = std::move(value); } /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline void SetCompanyName(const char* value) { m_companyNameHasBeenSet = true; m_companyName.assign(value); } /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline AwsSecurityFinding& WithCompanyName(const Aws::String& value) { SetCompanyName(value); return *this;} /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline AwsSecurityFinding& WithCompanyName(Aws::String&& value) { SetCompanyName(std::move(value)); return *this;} /** *

The name of the company for the product that generated the finding.

*

Security Hub populates this attribute automatically for each finding. You * cannot update this attribute with BatchImportFindings or * BatchUpdateFindings. The exception to this is a custom * integration.

When you use the Security Hub console or API to filter * findings by company name, you use this attribute.

*/ inline AwsSecurityFinding& WithCompanyName(const char* value) { SetCompanyName(value); return *this;} /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline AwsSecurityFinding& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline AwsSecurityFinding& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

The Region from which the finding was generated.

Security Hub * populates this attribute automatically for each finding. You cannot update it * using BatchImportFindings or BatchUpdateFindings.

*/ inline AwsSecurityFinding& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline const Aws::String& GetGeneratorId() const{ return m_generatorId; } /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline bool GeneratorIdHasBeenSet() const { return m_generatorIdHasBeenSet; } /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline void SetGeneratorId(const Aws::String& value) { m_generatorIdHasBeenSet = true; m_generatorId = value; } /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline void SetGeneratorId(Aws::String&& value) { m_generatorIdHasBeenSet = true; m_generatorId = std::move(value); } /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline void SetGeneratorId(const char* value) { m_generatorIdHasBeenSet = true; m_generatorId.assign(value); } /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline AwsSecurityFinding& WithGeneratorId(const Aws::String& value) { SetGeneratorId(value); return *this;} /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline AwsSecurityFinding& WithGeneratorId(Aws::String&& value) { SetGeneratorId(std::move(value)); return *this;} /** *

The identifier for the solution-specific component (a discrete unit of logic) * that generated a finding. In various security findings providers' solutions, * this generator can be called a rule, a check, a detector, a plugin, etc.

*/ inline AwsSecurityFinding& WithGeneratorId(const char* value) { SetGeneratorId(value); return *this;} /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline const Aws::String& GetAwsAccountId() const{ return m_awsAccountId; } /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline bool AwsAccountIdHasBeenSet() const { return m_awsAccountIdHasBeenSet; } /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline void SetAwsAccountId(const Aws::String& value) { m_awsAccountIdHasBeenSet = true; m_awsAccountId = value; } /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline void SetAwsAccountId(Aws::String&& value) { m_awsAccountIdHasBeenSet = true; m_awsAccountId = std::move(value); } /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline void SetAwsAccountId(const char* value) { m_awsAccountIdHasBeenSet = true; m_awsAccountId.assign(value); } /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline AwsSecurityFinding& WithAwsAccountId(const Aws::String& value) { SetAwsAccountId(value); return *this;} /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline AwsSecurityFinding& WithAwsAccountId(Aws::String&& value) { SetAwsAccountId(std::move(value)); return *this;} /** *

The Amazon Web Services account ID that a finding is generated in.

*/ inline AwsSecurityFinding& WithAwsAccountId(const char* value) { SetAwsAccountId(value); return *this;} /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline const Aws::Vector& GetTypes() const{ return m_types; } /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline bool TypesHasBeenSet() const { return m_typesHasBeenSet; } /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline void SetTypes(const Aws::Vector& value) { m_typesHasBeenSet = true; m_types = value; } /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline void SetTypes(Aws::Vector&& value) { m_typesHasBeenSet = true; m_types = std::move(value); } /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline AwsSecurityFinding& WithTypes(const Aws::Vector& value) { SetTypes(value); return *this;} /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline AwsSecurityFinding& WithTypes(Aws::Vector&& value) { SetTypes(std::move(value)); return *this;} /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline AwsSecurityFinding& AddTypes(const Aws::String& value) { m_typesHasBeenSet = true; m_types.push_back(value); return *this; } /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline AwsSecurityFinding& AddTypes(Aws::String&& value) { m_typesHasBeenSet = true; m_types.push_back(std::move(value)); return *this; } /** *

One or more finding types in the format of * namespace/category/classifier that classify a finding.

Valid * namespace values are: Software and Configuration Checks | TTPs | Effects | * Unusual Behaviors | Sensitive Data Identifications

*/ inline AwsSecurityFinding& AddTypes(const char* value) { m_typesHasBeenSet = true; m_types.push_back(value); return *this; } /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetFirstObservedAt() const{ return m_firstObservedAt; } /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool FirstObservedAtHasBeenSet() const { return m_firstObservedAtHasBeenSet; } /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetFirstObservedAt(const Aws::String& value) { m_firstObservedAtHasBeenSet = true; m_firstObservedAt = value; } /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetFirstObservedAt(Aws::String&& value) { m_firstObservedAtHasBeenSet = true; m_firstObservedAt = std::move(value); } /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetFirstObservedAt(const char* value) { m_firstObservedAtHasBeenSet = true; m_firstObservedAt.assign(value); } /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithFirstObservedAt(const Aws::String& value) { SetFirstObservedAt(value); return *this;} /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithFirstObservedAt(Aws::String&& value) { SetFirstObservedAt(std::move(value)); return *this;} /** *

Indicates when the security findings provider first observed the potential * security issue that a finding captured.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithFirstObservedAt(const char* value) { SetFirstObservedAt(value); return *this;} /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetLastObservedAt() const{ return m_lastObservedAt; } /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool LastObservedAtHasBeenSet() const { return m_lastObservedAtHasBeenSet; } /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetLastObservedAt(const Aws::String& value) { m_lastObservedAtHasBeenSet = true; m_lastObservedAt = value; } /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetLastObservedAt(Aws::String&& value) { m_lastObservedAtHasBeenSet = true; m_lastObservedAt = std::move(value); } /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetLastObservedAt(const char* value) { m_lastObservedAtHasBeenSet = true; m_lastObservedAt.assign(value); } /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithLastObservedAt(const Aws::String& value) { SetLastObservedAt(value); return *this;} /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithLastObservedAt(Aws::String&& value) { SetLastObservedAt(std::move(value)); return *this;} /** *

Indicates when the security findings provider most recently observed the * potential security issue that a finding captured.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithLastObservedAt(const char* value) { SetLastObservedAt(value); return *this;} /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetCreatedAt() const{ return m_createdAt; } /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedAt(const Aws::String& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedAt(Aws::String&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedAt(const char* value) { m_createdAtHasBeenSet = true; m_createdAt.assign(value); } /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithCreatedAt(const Aws::String& value) { SetCreatedAt(value); return *this;} /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithCreatedAt(Aws::String&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

Indicates when the security findings provider created the potential security * issue that a finding captured.

Uses the date-time format * specified in RFC 3339 * section 5.6, Internet Date/Time Format. The value cannot contain spaces, and * date and time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithCreatedAt(const char* value) { SetCreatedAt(value); return *this;} /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetUpdatedAt() const{ return m_updatedAt; } /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; } /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetUpdatedAt(const Aws::String& value) { m_updatedAtHasBeenSet = true; m_updatedAt = value; } /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetUpdatedAt(Aws::String&& value) { m_updatedAtHasBeenSet = true; m_updatedAt = std::move(value); } /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetUpdatedAt(const char* value) { m_updatedAtHasBeenSet = true; m_updatedAt.assign(value); } /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithUpdatedAt(const Aws::String& value) { SetUpdatedAt(value); return *this;} /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithUpdatedAt(Aws::String&& value) { SetUpdatedAt(std::move(value)); return *this;} /** *

Indicates when the security findings provider last updated the finding * record.

Uses the date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsSecurityFinding& WithUpdatedAt(const char* value) { SetUpdatedAt(value); return *this;} /** *

A finding's severity.

*/ inline const Severity& GetSeverity() const{ return m_severity; } /** *

A finding's severity.

*/ inline bool SeverityHasBeenSet() const { return m_severityHasBeenSet; } /** *

A finding's severity.

*/ inline void SetSeverity(const Severity& value) { m_severityHasBeenSet = true; m_severity = value; } /** *

A finding's severity.

*/ inline void SetSeverity(Severity&& value) { m_severityHasBeenSet = true; m_severity = std::move(value); } /** *

A finding's severity.

*/ inline AwsSecurityFinding& WithSeverity(const Severity& value) { SetSeverity(value); return *this;} /** *

A finding's severity.

*/ inline AwsSecurityFinding& WithSeverity(Severity&& value) { SetSeverity(std::move(value)); return *this;} /** *

A finding's confidence. Confidence is defined as the likelihood that a * finding accurately identifies the behavior or issue that it was intended to * identify.

Confidence is scored on a 0-100 basis using a ratio scale, * where 0 means zero percent confidence and 100 means 100 percent confidence.

*/ inline int GetConfidence() const{ return m_confidence; } /** *

A finding's confidence. Confidence is defined as the likelihood that a * finding accurately identifies the behavior or issue that it was intended to * identify.

Confidence is scored on a 0-100 basis using a ratio scale, * where 0 means zero percent confidence and 100 means 100 percent confidence.

*/ inline bool ConfidenceHasBeenSet() const { return m_confidenceHasBeenSet; } /** *

A finding's confidence. Confidence is defined as the likelihood that a * finding accurately identifies the behavior or issue that it was intended to * identify.

Confidence is scored on a 0-100 basis using a ratio scale, * where 0 means zero percent confidence and 100 means 100 percent confidence.

*/ inline void SetConfidence(int value) { m_confidenceHasBeenSet = true; m_confidence = value; } /** *

A finding's confidence. Confidence is defined as the likelihood that a * finding accurately identifies the behavior or issue that it was intended to * identify.

Confidence is scored on a 0-100 basis using a ratio scale, * where 0 means zero percent confidence and 100 means 100 percent confidence.

*/ inline AwsSecurityFinding& WithConfidence(int value) { SetConfidence(value); return *this;} /** *

The level of importance assigned to the resources associated with the * finding.

A score of 0 means that the underlying resources have no * criticality, and a score of 100 is reserved for the most critical resources.

*/ inline int GetCriticality() const{ return m_criticality; } /** *

The level of importance assigned to the resources associated with the * finding.

A score of 0 means that the underlying resources have no * criticality, and a score of 100 is reserved for the most critical resources.

*/ inline bool CriticalityHasBeenSet() const { return m_criticalityHasBeenSet; } /** *

The level of importance assigned to the resources associated with the * finding.

A score of 0 means that the underlying resources have no * criticality, and a score of 100 is reserved for the most critical resources.

*/ inline void SetCriticality(int value) { m_criticalityHasBeenSet = true; m_criticality = value; } /** *

The level of importance assigned to the resources associated with the * finding.

A score of 0 means that the underlying resources have no * criticality, and a score of 100 is reserved for the most critical resources.

*/ inline AwsSecurityFinding& WithCriticality(int value) { SetCriticality(value); return *this;} /** *

A finding's title.

In this release, Title is a * required property.

*/ inline const Aws::String& GetTitle() const{ return m_title; } /** *

A finding's title.

In this release, Title is a * required property.

*/ inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; } /** *

A finding's title.

In this release, Title is a * required property.

*/ inline void SetTitle(const Aws::String& value) { m_titleHasBeenSet = true; m_title = value; } /** *

A finding's title.

In this release, Title is a * required property.

*/ inline void SetTitle(Aws::String&& value) { m_titleHasBeenSet = true; m_title = std::move(value); } /** *

A finding's title.

In this release, Title is a * required property.

*/ inline void SetTitle(const char* value) { m_titleHasBeenSet = true; m_title.assign(value); } /** *

A finding's title.

In this release, Title is a * required property.

*/ inline AwsSecurityFinding& WithTitle(const Aws::String& value) { SetTitle(value); return *this;} /** *

A finding's title.

In this release, Title is a * required property.

*/ inline AwsSecurityFinding& WithTitle(Aws::String&& value) { SetTitle(std::move(value)); return *this;} /** *

A finding's title.

In this release, Title is a * required property.

*/ inline AwsSecurityFinding& WithTitle(const char* value) { SetTitle(value); return *this;} /** *

A finding's description.

In this release, * Description is a required property.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A finding's description.

In this release, * Description is a required property.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A finding's description.

In this release, * Description is a required property.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A finding's description.

In this release, * Description is a required property.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A finding's description.

In this release, * Description is a required property.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A finding's description.

In this release, * Description is a required property.

*/ inline AwsSecurityFinding& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A finding's description.

In this release, * Description is a required property.

*/ inline AwsSecurityFinding& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A finding's description.

In this release, * Description is a required property.

*/ inline AwsSecurityFinding& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

A data type that describes the remediation options for a finding.

*/ inline const Remediation& GetRemediation() const{ return m_remediation; } /** *

A data type that describes the remediation options for a finding.

*/ inline bool RemediationHasBeenSet() const { return m_remediationHasBeenSet; } /** *

A data type that describes the remediation options for a finding.

*/ inline void SetRemediation(const Remediation& value) { m_remediationHasBeenSet = true; m_remediation = value; } /** *

A data type that describes the remediation options for a finding.

*/ inline void SetRemediation(Remediation&& value) { m_remediationHasBeenSet = true; m_remediation = std::move(value); } /** *

A data type that describes the remediation options for a finding.

*/ inline AwsSecurityFinding& WithRemediation(const Remediation& value) { SetRemediation(value); return *this;} /** *

A data type that describes the remediation options for a finding.

*/ inline AwsSecurityFinding& WithRemediation(Remediation&& value) { SetRemediation(std::move(value)); return *this;} /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline const Aws::String& GetSourceUrl() const{ return m_sourceUrl; } /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline bool SourceUrlHasBeenSet() const { return m_sourceUrlHasBeenSet; } /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline void SetSourceUrl(const Aws::String& value) { m_sourceUrlHasBeenSet = true; m_sourceUrl = value; } /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline void SetSourceUrl(Aws::String&& value) { m_sourceUrlHasBeenSet = true; m_sourceUrl = std::move(value); } /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline void SetSourceUrl(const char* value) { m_sourceUrlHasBeenSet = true; m_sourceUrl.assign(value); } /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline AwsSecurityFinding& WithSourceUrl(const Aws::String& value) { SetSourceUrl(value); return *this;} /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline AwsSecurityFinding& WithSourceUrl(Aws::String&& value) { SetSourceUrl(std::move(value)); return *this;} /** *

A URL that links to a page about the current finding in the security findings * provider's solution.

*/ inline AwsSecurityFinding& WithSourceUrl(const char* value) { SetSourceUrl(value); return *this;} /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline const Aws::Map& GetProductFields() const{ return m_productFields; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline bool ProductFieldsHasBeenSet() const { return m_productFieldsHasBeenSet; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline void SetProductFields(const Aws::Map& value) { m_productFieldsHasBeenSet = true; m_productFields = value; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline void SetProductFields(Aws::Map&& value) { m_productFieldsHasBeenSet = true; m_productFields = std::move(value); } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& WithProductFields(const Aws::Map& value) { SetProductFields(value); return *this;} /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& WithProductFields(Aws::Map&& value) { SetProductFields(std::move(value)); return *this;} /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& AddProductFields(const Aws::String& key, const Aws::String& value) { m_productFieldsHasBeenSet = true; m_productFields.emplace(key, value); return *this; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& AddProductFields(Aws::String&& key, const Aws::String& value) { m_productFieldsHasBeenSet = true; m_productFields.emplace(std::move(key), value); return *this; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& AddProductFields(const Aws::String& key, Aws::String&& value) { m_productFieldsHasBeenSet = true; m_productFields.emplace(key, std::move(value)); return *this; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& AddProductFields(Aws::String&& key, Aws::String&& value) { m_productFieldsHasBeenSet = true; m_productFields.emplace(std::move(key), std::move(value)); return *this; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& AddProductFields(const char* key, Aws::String&& value) { m_productFieldsHasBeenSet = true; m_productFields.emplace(key, std::move(value)); return *this; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& AddProductFields(Aws::String&& key, const char* value) { m_productFieldsHasBeenSet = true; m_productFields.emplace(std::move(key), value); return *this; } /** *

A data type where security findings providers can include additional * solution-specific details that aren't part of the defined * AwsSecurityFinding format.

Can contain up to 50 key-value * pairs. For each key-value pair, the key can contain up to 128 characters, and * the value can contain up to 2048 characters.

*/ inline AwsSecurityFinding& AddProductFields(const char* key, const char* value) { m_productFieldsHasBeenSet = true; m_productFields.emplace(key, value); return *this; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline const Aws::Map& GetUserDefinedFields() const{ return m_userDefinedFields; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline bool UserDefinedFieldsHasBeenSet() const { return m_userDefinedFieldsHasBeenSet; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline void SetUserDefinedFields(const Aws::Map& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields = value; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline void SetUserDefinedFields(Aws::Map&& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields = std::move(value); } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& WithUserDefinedFields(const Aws::Map& value) { SetUserDefinedFields(value); return *this;} /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& WithUserDefinedFields(Aws::Map&& value) { SetUserDefinedFields(std::move(value)); return *this;} /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& AddUserDefinedFields(const Aws::String& key, const Aws::String& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(key, value); return *this; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& AddUserDefinedFields(Aws::String&& key, const Aws::String& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(std::move(key), value); return *this; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& AddUserDefinedFields(const Aws::String& key, Aws::String&& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(key, std::move(value)); return *this; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& AddUserDefinedFields(Aws::String&& key, Aws::String&& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(std::move(key), std::move(value)); return *this; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& AddUserDefinedFields(const char* key, Aws::String&& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(key, std::move(value)); return *this; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& AddUserDefinedFields(Aws::String&& key, const char* value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(std::move(key), value); return *this; } /** *

A list of name/value string pairs associated with the finding. These are * custom, user-defined fields added to a finding.

*/ inline AwsSecurityFinding& AddUserDefinedFields(const char* key, const char* value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(key, value); return *this; } /** *

A list of malware related to a finding.

*/ inline const Aws::Vector& GetMalware() const{ return m_malware; } /** *

A list of malware related to a finding.

*/ inline bool MalwareHasBeenSet() const { return m_malwareHasBeenSet; } /** *

A list of malware related to a finding.

*/ inline void SetMalware(const Aws::Vector& value) { m_malwareHasBeenSet = true; m_malware = value; } /** *

A list of malware related to a finding.

*/ inline void SetMalware(Aws::Vector&& value) { m_malwareHasBeenSet = true; m_malware = std::move(value); } /** *

A list of malware related to a finding.

*/ inline AwsSecurityFinding& WithMalware(const Aws::Vector& value) { SetMalware(value); return *this;} /** *

A list of malware related to a finding.

*/ inline AwsSecurityFinding& WithMalware(Aws::Vector&& value) { SetMalware(std::move(value)); return *this;} /** *

A list of malware related to a finding.

*/ inline AwsSecurityFinding& AddMalware(const Malware& value) { m_malwareHasBeenSet = true; m_malware.push_back(value); return *this; } /** *

A list of malware related to a finding.

*/ inline AwsSecurityFinding& AddMalware(Malware&& value) { m_malwareHasBeenSet = true; m_malware.push_back(std::move(value)); return *this; } /** *

The details of network-related information about a finding.

*/ inline const Network& GetNetwork() const{ return m_network; } /** *

The details of network-related information about a finding.

*/ inline bool NetworkHasBeenSet() const { return m_networkHasBeenSet; } /** *

The details of network-related information about a finding.

*/ inline void SetNetwork(const Network& value) { m_networkHasBeenSet = true; m_network = value; } /** *

The details of network-related information about a finding.

*/ inline void SetNetwork(Network&& value) { m_networkHasBeenSet = true; m_network = std::move(value); } /** *

The details of network-related information about a finding.

*/ inline AwsSecurityFinding& WithNetwork(const Network& value) { SetNetwork(value); return *this;} /** *

The details of network-related information about a finding.

*/ inline AwsSecurityFinding& WithNetwork(Network&& value) { SetNetwork(std::move(value)); return *this;} /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline const Aws::Vector& GetNetworkPath() const{ return m_networkPath; } /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline bool NetworkPathHasBeenSet() const { return m_networkPathHasBeenSet; } /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline void SetNetworkPath(const Aws::Vector& value) { m_networkPathHasBeenSet = true; m_networkPath = value; } /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline void SetNetworkPath(Aws::Vector&& value) { m_networkPathHasBeenSet = true; m_networkPath = std::move(value); } /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline AwsSecurityFinding& WithNetworkPath(const Aws::Vector& value) { SetNetworkPath(value); return *this;} /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline AwsSecurityFinding& WithNetworkPath(Aws::Vector&& value) { SetNetworkPath(std::move(value)); return *this;} /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline AwsSecurityFinding& AddNetworkPath(const NetworkPathComponent& value) { m_networkPathHasBeenSet = true; m_networkPath.push_back(value); return *this; } /** *

Provides information about a network path that is relevant to a finding. Each * entry under NetworkPath represents a component of that path.

*/ inline AwsSecurityFinding& AddNetworkPath(NetworkPathComponent&& value) { m_networkPathHasBeenSet = true; m_networkPath.push_back(std::move(value)); return *this; } /** *

The details of process-related information about a finding.

*/ inline const ProcessDetails& GetProcess() const{ return m_process; } /** *

The details of process-related information about a finding.

*/ inline bool ProcessHasBeenSet() const { return m_processHasBeenSet; } /** *

The details of process-related information about a finding.

*/ inline void SetProcess(const ProcessDetails& value) { m_processHasBeenSet = true; m_process = value; } /** *

The details of process-related information about a finding.

*/ inline void SetProcess(ProcessDetails&& value) { m_processHasBeenSet = true; m_process = std::move(value); } /** *

The details of process-related information about a finding.

*/ inline AwsSecurityFinding& WithProcess(const ProcessDetails& value) { SetProcess(value); return *this;} /** *

The details of process-related information about a finding.

*/ inline AwsSecurityFinding& WithProcess(ProcessDetails&& value) { SetProcess(std::move(value)); return *this;} /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline const Aws::Vector& GetThreats() const{ return m_threats; } /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline bool ThreatsHasBeenSet() const { return m_threatsHasBeenSet; } /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline void SetThreats(const Aws::Vector& value) { m_threatsHasBeenSet = true; m_threats = value; } /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline void SetThreats(Aws::Vector&& value) { m_threatsHasBeenSet = true; m_threats = std::move(value); } /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline AwsSecurityFinding& WithThreats(const Aws::Vector& value) { SetThreats(value); return *this;} /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline AwsSecurityFinding& WithThreats(Aws::Vector&& value) { SetThreats(std::move(value)); return *this;} /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline AwsSecurityFinding& AddThreats(const Threat& value) { m_threatsHasBeenSet = true; m_threats.push_back(value); return *this; } /** *

Details about the threat detected in a security finding and the file paths * that were affected by the threat.

*/ inline AwsSecurityFinding& AddThreats(Threat&& value) { m_threatsHasBeenSet = true; m_threats.push_back(std::move(value)); return *this; } /** *

Threat intelligence details related to a finding.

*/ inline const Aws::Vector& GetThreatIntelIndicators() const{ return m_threatIntelIndicators; } /** *

Threat intelligence details related to a finding.

*/ inline bool ThreatIntelIndicatorsHasBeenSet() const { return m_threatIntelIndicatorsHasBeenSet; } /** *

Threat intelligence details related to a finding.

*/ inline void SetThreatIntelIndicators(const Aws::Vector& value) { m_threatIntelIndicatorsHasBeenSet = true; m_threatIntelIndicators = value; } /** *

Threat intelligence details related to a finding.

*/ inline void SetThreatIntelIndicators(Aws::Vector&& value) { m_threatIntelIndicatorsHasBeenSet = true; m_threatIntelIndicators = std::move(value); } /** *

Threat intelligence details related to a finding.

*/ inline AwsSecurityFinding& WithThreatIntelIndicators(const Aws::Vector& value) { SetThreatIntelIndicators(value); return *this;} /** *

Threat intelligence details related to a finding.

*/ inline AwsSecurityFinding& WithThreatIntelIndicators(Aws::Vector&& value) { SetThreatIntelIndicators(std::move(value)); return *this;} /** *

Threat intelligence details related to a finding.

*/ inline AwsSecurityFinding& AddThreatIntelIndicators(const ThreatIntelIndicator& value) { m_threatIntelIndicatorsHasBeenSet = true; m_threatIntelIndicators.push_back(value); return *this; } /** *

Threat intelligence details related to a finding.

*/ inline AwsSecurityFinding& AddThreatIntelIndicators(ThreatIntelIndicator&& value) { m_threatIntelIndicatorsHasBeenSet = true; m_threatIntelIndicators.push_back(std::move(value)); return *this; } /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline const Aws::Vector& GetResources() const{ return m_resources; } /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline bool ResourcesHasBeenSet() const { return m_resourcesHasBeenSet; } /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline void SetResources(const Aws::Vector& value) { m_resourcesHasBeenSet = true; m_resources = value; } /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline void SetResources(Aws::Vector&& value) { m_resourcesHasBeenSet = true; m_resources = std::move(value); } /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline AwsSecurityFinding& WithResources(const Aws::Vector& value) { SetResources(value); return *this;} /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline AwsSecurityFinding& WithResources(Aws::Vector&& value) { SetResources(std::move(value)); return *this;} /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline AwsSecurityFinding& AddResources(const Resource& value) { m_resourcesHasBeenSet = true; m_resources.push_back(value); return *this; } /** *

A set of resource data types that describe the resources that the finding * refers to.

*/ inline AwsSecurityFinding& AddResources(Resource&& value) { m_resourcesHasBeenSet = true; m_resources.push_back(std::move(value)); return *this; } /** *

This data type is exclusive to findings that are generated as the result of a * check run against a specific rule in a supported security standard, such as CIS * Amazon Web Services Foundations. Contains security standard-related finding * details.

*/ inline const Compliance& GetCompliance() const{ return m_compliance; } /** *

This data type is exclusive to findings that are generated as the result of a * check run against a specific rule in a supported security standard, such as CIS * Amazon Web Services Foundations. Contains security standard-related finding * details.

*/ inline bool ComplianceHasBeenSet() const { return m_complianceHasBeenSet; } /** *

This data type is exclusive to findings that are generated as the result of a * check run against a specific rule in a supported security standard, such as CIS * Amazon Web Services Foundations. Contains security standard-related finding * details.

*/ inline void SetCompliance(const Compliance& value) { m_complianceHasBeenSet = true; m_compliance = value; } /** *

This data type is exclusive to findings that are generated as the result of a * check run against a specific rule in a supported security standard, such as CIS * Amazon Web Services Foundations. Contains security standard-related finding * details.

*/ inline void SetCompliance(Compliance&& value) { m_complianceHasBeenSet = true; m_compliance = std::move(value); } /** *

This data type is exclusive to findings that are generated as the result of a * check run against a specific rule in a supported security standard, such as CIS * Amazon Web Services Foundations. Contains security standard-related finding * details.

*/ inline AwsSecurityFinding& WithCompliance(const Compliance& value) { SetCompliance(value); return *this;} /** *

This data type is exclusive to findings that are generated as the result of a * check run against a specific rule in a supported security standard, such as CIS * Amazon Web Services Foundations. Contains security standard-related finding * details.

*/ inline AwsSecurityFinding& WithCompliance(Compliance&& value) { SetCompliance(std::move(value)); return *this;} /** *

Indicates the veracity of a finding.

*/ inline const VerificationState& GetVerificationState() const{ return m_verificationState; } /** *

Indicates the veracity of a finding.

*/ inline bool VerificationStateHasBeenSet() const { return m_verificationStateHasBeenSet; } /** *

Indicates the veracity of a finding.

*/ inline void SetVerificationState(const VerificationState& value) { m_verificationStateHasBeenSet = true; m_verificationState = value; } /** *

Indicates the veracity of a finding.

*/ inline void SetVerificationState(VerificationState&& value) { m_verificationStateHasBeenSet = true; m_verificationState = std::move(value); } /** *

Indicates the veracity of a finding.

*/ inline AwsSecurityFinding& WithVerificationState(const VerificationState& value) { SetVerificationState(value); return *this;} /** *

Indicates the veracity of a finding.

*/ inline AwsSecurityFinding& WithVerificationState(VerificationState&& value) { SetVerificationState(std::move(value)); return *this;} /** *

The workflow state of a finding.

*/ inline const WorkflowState& GetWorkflowState() const{ return m_workflowState; } /** *

The workflow state of a finding.

*/ inline bool WorkflowStateHasBeenSet() const { return m_workflowStateHasBeenSet; } /** *

The workflow state of a finding.

*/ inline void SetWorkflowState(const WorkflowState& value) { m_workflowStateHasBeenSet = true; m_workflowState = value; } /** *

The workflow state of a finding.

*/ inline void SetWorkflowState(WorkflowState&& value) { m_workflowStateHasBeenSet = true; m_workflowState = std::move(value); } /** *

The workflow state of a finding.

*/ inline AwsSecurityFinding& WithWorkflowState(const WorkflowState& value) { SetWorkflowState(value); return *this;} /** *

The workflow state of a finding.

*/ inline AwsSecurityFinding& WithWorkflowState(WorkflowState&& value) { SetWorkflowState(std::move(value)); return *this;} /** *

Provides information about the status of the investigation into a * finding.

*/ inline const Workflow& GetWorkflow() const{ return m_workflow; } /** *

Provides information about the status of the investigation into a * finding.

*/ inline bool WorkflowHasBeenSet() const { return m_workflowHasBeenSet; } /** *

Provides information about the status of the investigation into a * finding.

*/ inline void SetWorkflow(const Workflow& value) { m_workflowHasBeenSet = true; m_workflow = value; } /** *

Provides information about the status of the investigation into a * finding.

*/ inline void SetWorkflow(Workflow&& value) { m_workflowHasBeenSet = true; m_workflow = std::move(value); } /** *

Provides information about the status of the investigation into a * finding.

*/ inline AwsSecurityFinding& WithWorkflow(const Workflow& value) { SetWorkflow(value); return *this;} /** *

Provides information about the status of the investigation into a * finding.

*/ inline AwsSecurityFinding& WithWorkflow(Workflow&& value) { SetWorkflow(std::move(value)); return *this;} /** *

The record state of a finding.

*/ inline const RecordState& GetRecordState() const{ return m_recordState; } /** *

The record state of a finding.

*/ inline bool RecordStateHasBeenSet() const { return m_recordStateHasBeenSet; } /** *

The record state of a finding.

*/ inline void SetRecordState(const RecordState& value) { m_recordStateHasBeenSet = true; m_recordState = value; } /** *

The record state of a finding.

*/ inline void SetRecordState(RecordState&& value) { m_recordStateHasBeenSet = true; m_recordState = std::move(value); } /** *

The record state of a finding.

*/ inline AwsSecurityFinding& WithRecordState(const RecordState& value) { SetRecordState(value); return *this;} /** *

The record state of a finding.

*/ inline AwsSecurityFinding& WithRecordState(RecordState&& value) { SetRecordState(std::move(value)); return *this;} /** *

A list of related findings.

*/ inline const Aws::Vector& GetRelatedFindings() const{ return m_relatedFindings; } /** *

A list of related findings.

*/ inline bool RelatedFindingsHasBeenSet() const { return m_relatedFindingsHasBeenSet; } /** *

A list of related findings.

*/ inline void SetRelatedFindings(const Aws::Vector& value) { m_relatedFindingsHasBeenSet = true; m_relatedFindings = value; } /** *

A list of related findings.

*/ inline void SetRelatedFindings(Aws::Vector&& value) { m_relatedFindingsHasBeenSet = true; m_relatedFindings = std::move(value); } /** *

A list of related findings.

*/ inline AwsSecurityFinding& WithRelatedFindings(const Aws::Vector& value) { SetRelatedFindings(value); return *this;} /** *

A list of related findings.

*/ inline AwsSecurityFinding& WithRelatedFindings(Aws::Vector&& value) { SetRelatedFindings(std::move(value)); return *this;} /** *

A list of related findings.

*/ inline AwsSecurityFinding& AddRelatedFindings(const RelatedFinding& value) { m_relatedFindingsHasBeenSet = true; m_relatedFindings.push_back(value); return *this; } /** *

A list of related findings.

*/ inline AwsSecurityFinding& AddRelatedFindings(RelatedFinding&& value) { m_relatedFindingsHasBeenSet = true; m_relatedFindings.push_back(std::move(value)); return *this; } /** *

A user-defined note added to a finding.

*/ inline const Note& GetNote() const{ return m_note; } /** *

A user-defined note added to a finding.

*/ inline bool NoteHasBeenSet() const { return m_noteHasBeenSet; } /** *

A user-defined note added to a finding.

*/ inline void SetNote(const Note& value) { m_noteHasBeenSet = true; m_note = value; } /** *

A user-defined note added to a finding.

*/ inline void SetNote(Note&& value) { m_noteHasBeenSet = true; m_note = std::move(value); } /** *

A user-defined note added to a finding.

*/ inline AwsSecurityFinding& WithNote(const Note& value) { SetNote(value); return *this;} /** *

A user-defined note added to a finding.

*/ inline AwsSecurityFinding& WithNote(Note&& value) { SetNote(std::move(value)); return *this;} /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline const Aws::Vector& GetVulnerabilities() const{ return m_vulnerabilities; } /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline bool VulnerabilitiesHasBeenSet() const { return m_vulnerabilitiesHasBeenSet; } /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline void SetVulnerabilities(const Aws::Vector& value) { m_vulnerabilitiesHasBeenSet = true; m_vulnerabilities = value; } /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline void SetVulnerabilities(Aws::Vector&& value) { m_vulnerabilitiesHasBeenSet = true; m_vulnerabilities = std::move(value); } /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline AwsSecurityFinding& WithVulnerabilities(const Aws::Vector& value) { SetVulnerabilities(value); return *this;} /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline AwsSecurityFinding& WithVulnerabilities(Aws::Vector&& value) { SetVulnerabilities(std::move(value)); return *this;} /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline AwsSecurityFinding& AddVulnerabilities(const Vulnerability& value) { m_vulnerabilitiesHasBeenSet = true; m_vulnerabilities.push_back(value); return *this; } /** *

Provides a list of vulnerabilities associated with the findings.

*/ inline AwsSecurityFinding& AddVulnerabilities(Vulnerability&& value) { m_vulnerabilitiesHasBeenSet = true; m_vulnerabilities.push_back(std::move(value)); return *this; } /** *

Provides an overview of the patch compliance status for an instance against a * selected compliance standard.

*/ inline const PatchSummary& GetPatchSummary() const{ return m_patchSummary; } /** *

Provides an overview of the patch compliance status for an instance against a * selected compliance standard.

*/ inline bool PatchSummaryHasBeenSet() const { return m_patchSummaryHasBeenSet; } /** *

Provides an overview of the patch compliance status for an instance against a * selected compliance standard.

*/ inline void SetPatchSummary(const PatchSummary& value) { m_patchSummaryHasBeenSet = true; m_patchSummary = value; } /** *

Provides an overview of the patch compliance status for an instance against a * selected compliance standard.

*/ inline void SetPatchSummary(PatchSummary&& value) { m_patchSummaryHasBeenSet = true; m_patchSummary = std::move(value); } /** *

Provides an overview of the patch compliance status for an instance against a * selected compliance standard.

*/ inline AwsSecurityFinding& WithPatchSummary(const PatchSummary& value) { SetPatchSummary(value); return *this;} /** *

Provides an overview of the patch compliance status for an instance against a * selected compliance standard.

*/ inline AwsSecurityFinding& WithPatchSummary(PatchSummary&& value) { SetPatchSummary(std::move(value)); return *this;} /** *

Provides details about an action that affects or that was taken on a * resource.

*/ inline const Action& GetAction() const{ return m_action; } /** *

Provides details about an action that affects or that was taken on a * resource.

*/ inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; } /** *

Provides details about an action that affects or that was taken on a * resource.

*/ inline void SetAction(const Action& value) { m_actionHasBeenSet = true; m_action = value; } /** *

Provides details about an action that affects or that was taken on a * resource.

*/ inline void SetAction(Action&& value) { m_actionHasBeenSet = true; m_action = std::move(value); } /** *

Provides details about an action that affects or that was taken on a * resource.

*/ inline AwsSecurityFinding& WithAction(const Action& value) { SetAction(value); return *this;} /** *

Provides details about an action that affects or that was taken on a * resource.

*/ inline AwsSecurityFinding& WithAction(Action&& value) { SetAction(std::move(value)); return *this;} /** *

In a BatchImportFindings request, finding providers use * FindingProviderFields to provide and update their own values for * confidence, criticality, related findings, severity, and types.

*/ inline const FindingProviderFields& GetFindingProviderFields() const{ return m_findingProviderFields; } /** *

In a BatchImportFindings request, finding providers use * FindingProviderFields to provide and update their own values for * confidence, criticality, related findings, severity, and types.

*/ inline bool FindingProviderFieldsHasBeenSet() const { return m_findingProviderFieldsHasBeenSet; } /** *

In a BatchImportFindings request, finding providers use * FindingProviderFields to provide and update their own values for * confidence, criticality, related findings, severity, and types.

*/ inline void SetFindingProviderFields(const FindingProviderFields& value) { m_findingProviderFieldsHasBeenSet = true; m_findingProviderFields = value; } /** *

In a BatchImportFindings request, finding providers use * FindingProviderFields to provide and update their own values for * confidence, criticality, related findings, severity, and types.

*/ inline void SetFindingProviderFields(FindingProviderFields&& value) { m_findingProviderFieldsHasBeenSet = true; m_findingProviderFields = std::move(value); } /** *

In a BatchImportFindings request, finding providers use * FindingProviderFields to provide and update their own values for * confidence, criticality, related findings, severity, and types.

*/ inline AwsSecurityFinding& WithFindingProviderFields(const FindingProviderFields& value) { SetFindingProviderFields(value); return *this;} /** *

In a BatchImportFindings request, finding providers use * FindingProviderFields to provide and update their own values for * confidence, criticality, related findings, severity, and types.

*/ inline AwsSecurityFinding& WithFindingProviderFields(FindingProviderFields&& value) { SetFindingProviderFields(std::move(value)); return *this;} /** *

Indicates whether the finding is a sample finding.

*/ inline bool GetSample() const{ return m_sample; } /** *

Indicates whether the finding is a sample finding.

*/ inline bool SampleHasBeenSet() const { return m_sampleHasBeenSet; } /** *

Indicates whether the finding is a sample finding.

*/ inline void SetSample(bool value) { m_sampleHasBeenSet = true; m_sample = value; } /** *

Indicates whether the finding is a sample finding.

*/ inline AwsSecurityFinding& WithSample(bool value) { SetSample(value); return *this;} private: Aws::String m_schemaVersion; bool m_schemaVersionHasBeenSet = false; Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_productArn; bool m_productArnHasBeenSet = false; Aws::String m_productName; bool m_productNameHasBeenSet = false; Aws::String m_companyName; bool m_companyNameHasBeenSet = false; Aws::String m_region; bool m_regionHasBeenSet = false; Aws::String m_generatorId; bool m_generatorIdHasBeenSet = false; Aws::String m_awsAccountId; bool m_awsAccountIdHasBeenSet = false; Aws::Vector m_types; bool m_typesHasBeenSet = false; Aws::String m_firstObservedAt; bool m_firstObservedAtHasBeenSet = false; Aws::String m_lastObservedAt; bool m_lastObservedAtHasBeenSet = false; Aws::String m_createdAt; bool m_createdAtHasBeenSet = false; Aws::String m_updatedAt; bool m_updatedAtHasBeenSet = false; Severity m_severity; bool m_severityHasBeenSet = false; int m_confidence; bool m_confidenceHasBeenSet = false; int m_criticality; bool m_criticalityHasBeenSet = false; Aws::String m_title; bool m_titleHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Remediation m_remediation; bool m_remediationHasBeenSet = false; Aws::String m_sourceUrl; bool m_sourceUrlHasBeenSet = false; Aws::Map m_productFields; bool m_productFieldsHasBeenSet = false; Aws::Map m_userDefinedFields; bool m_userDefinedFieldsHasBeenSet = false; Aws::Vector m_malware; bool m_malwareHasBeenSet = false; Network m_network; bool m_networkHasBeenSet = false; Aws::Vector m_networkPath; bool m_networkPathHasBeenSet = false; ProcessDetails m_process; bool m_processHasBeenSet = false; Aws::Vector m_threats; bool m_threatsHasBeenSet = false; Aws::Vector m_threatIntelIndicators; bool m_threatIntelIndicatorsHasBeenSet = false; Aws::Vector m_resources; bool m_resourcesHasBeenSet = false; Compliance m_compliance; bool m_complianceHasBeenSet = false; VerificationState m_verificationState; bool m_verificationStateHasBeenSet = false; WorkflowState m_workflowState; bool m_workflowStateHasBeenSet = false; Workflow m_workflow; bool m_workflowHasBeenSet = false; RecordState m_recordState; bool m_recordStateHasBeenSet = false; Aws::Vector m_relatedFindings; bool m_relatedFindingsHasBeenSet = false; Note m_note; bool m_noteHasBeenSet = false; Aws::Vector m_vulnerabilities; bool m_vulnerabilitiesHasBeenSet = false; PatchSummary m_patchSummary; bool m_patchSummaryHasBeenSet = false; Action m_action; bool m_actionHasBeenSet = false; FindingProviderFields m_findingProviderFields; bool m_findingProviderFieldsHasBeenSet = false; bool m_sample; bool m_sampleHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws