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

Provides consistent format for the contents of the Security Hub-aggregated * findings. AwsSecurityFinding format enables you to share findings * between AWS security services and third-party solutions, and security standards * checks.

A finding is a potential security issue generated either * by AWS services (Amazon GuardDuty, Amazon Inspector, and Amazon Macie) or by the * integrated third-party solutions and standards checks.

See * Also:

AWS * API Reference

*/ class AWS_SECURITYHUB_API AwsSecurityFinding { public: AwsSecurityFinding(); AwsSecurityFinding(Aws::Utils::Json::JsonView jsonValue); AwsSecurityFinding& operator=(Aws::Utils::Json::JsonView jsonValue); 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 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 AWS account ID that a finding is generated in.

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

The AWS account ID that a finding is generated in.

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

The AWS account ID that a finding is generated in.

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

The AWS account ID that a finding is generated in.

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

The AWS account ID that a finding is generated in.

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

The AWS account ID that a finding is generated in.

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

The AWS account ID that a finding is generated in.

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

The AWS 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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;} /** *

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 * AWS 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 * AWS 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 * AWS 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 * AWS 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 * AWS 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 * AWS 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; } private: Aws::String m_schemaVersion; bool m_schemaVersionHasBeenSet; Aws::String m_id; bool m_idHasBeenSet; Aws::String m_productArn; bool m_productArnHasBeenSet; Aws::String m_generatorId; bool m_generatorIdHasBeenSet; Aws::String m_awsAccountId; bool m_awsAccountIdHasBeenSet; Aws::Vector m_types; bool m_typesHasBeenSet; Aws::String m_firstObservedAt; bool m_firstObservedAtHasBeenSet; Aws::String m_lastObservedAt; bool m_lastObservedAtHasBeenSet; Aws::String m_createdAt; bool m_createdAtHasBeenSet; Aws::String m_updatedAt; bool m_updatedAtHasBeenSet; Severity m_severity; bool m_severityHasBeenSet; int m_confidence; bool m_confidenceHasBeenSet; int m_criticality; bool m_criticalityHasBeenSet; Aws::String m_title; bool m_titleHasBeenSet; Aws::String m_description; bool m_descriptionHasBeenSet; Remediation m_remediation; bool m_remediationHasBeenSet; Aws::String m_sourceUrl; bool m_sourceUrlHasBeenSet; Aws::Map m_productFields; bool m_productFieldsHasBeenSet; Aws::Map m_userDefinedFields; bool m_userDefinedFieldsHasBeenSet; Aws::Vector m_malware; bool m_malwareHasBeenSet; Network m_network; bool m_networkHasBeenSet; Aws::Vector m_networkPath; bool m_networkPathHasBeenSet; ProcessDetails m_process; bool m_processHasBeenSet; Aws::Vector m_threatIntelIndicators; bool m_threatIntelIndicatorsHasBeenSet; Aws::Vector m_resources; bool m_resourcesHasBeenSet; Compliance m_compliance; bool m_complianceHasBeenSet; VerificationState m_verificationState; bool m_verificationStateHasBeenSet; WorkflowState m_workflowState; bool m_workflowStateHasBeenSet; Workflow m_workflow; bool m_workflowHasBeenSet; RecordState m_recordState; bool m_recordStateHasBeenSet; Aws::Vector m_relatedFindings; bool m_relatedFindingsHasBeenSet; Note m_note; bool m_noteHasBeenSet; Aws::Vector m_vulnerabilities; bool m_vulnerabilitiesHasBeenSet; }; } // namespace Model } // namespace SecurityHub } // namespace Aws