/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

A vendor that generates a vulnerability report.

See Also:

AWS * API Reference

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

The name of the vendor.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the vendor.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the vendor.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the vendor.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the vendor.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the vendor.

*/ inline VulnerabilityVendor& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the vendor.

*/ inline VulnerabilityVendor& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the vendor.

*/ inline VulnerabilityVendor& WithName(const char* value) { SetName(value); return *this;} /** *

The URL of the vulnerability advisory.

*/ inline const Aws::String& GetUrl() const{ return m_url; } /** *

The URL of the vulnerability advisory.

*/ inline bool UrlHasBeenSet() const { return m_urlHasBeenSet; } /** *

The URL of the vulnerability advisory.

*/ inline void SetUrl(const Aws::String& value) { m_urlHasBeenSet = true; m_url = value; } /** *

The URL of the vulnerability advisory.

*/ inline void SetUrl(Aws::String&& value) { m_urlHasBeenSet = true; m_url = std::move(value); } /** *

The URL of the vulnerability advisory.

*/ inline void SetUrl(const char* value) { m_urlHasBeenSet = true; m_url.assign(value); } /** *

The URL of the vulnerability advisory.

*/ inline VulnerabilityVendor& WithUrl(const Aws::String& value) { SetUrl(value); return *this;} /** *

The URL of the vulnerability advisory.

*/ inline VulnerabilityVendor& WithUrl(Aws::String&& value) { SetUrl(std::move(value)); return *this;} /** *

The URL of the vulnerability advisory.

*/ inline VulnerabilityVendor& WithUrl(const char* value) { SetUrl(value); return *this;} /** *

The severity that the vendor assigned to the vulnerability.

*/ inline const Aws::String& GetVendorSeverity() const{ return m_vendorSeverity; } /** *

The severity that the vendor assigned to the vulnerability.

*/ inline bool VendorSeverityHasBeenSet() const { return m_vendorSeverityHasBeenSet; } /** *

The severity that the vendor assigned to the vulnerability.

*/ inline void SetVendorSeverity(const Aws::String& value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity = value; } /** *

The severity that the vendor assigned to the vulnerability.

*/ inline void SetVendorSeverity(Aws::String&& value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity = std::move(value); } /** *

The severity that the vendor assigned to the vulnerability.

*/ inline void SetVendorSeverity(const char* value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity.assign(value); } /** *

The severity that the vendor assigned to the vulnerability.

*/ inline VulnerabilityVendor& WithVendorSeverity(const Aws::String& value) { SetVendorSeverity(value); return *this;} /** *

The severity that the vendor assigned to the vulnerability.

*/ inline VulnerabilityVendor& WithVendorSeverity(Aws::String&& value) { SetVendorSeverity(std::move(value)); return *this;} /** *

The severity that the vendor assigned to the vulnerability.

*/ inline VulnerabilityVendor& WithVendorSeverity(const char* value) { SetVendorSeverity(value); return *this;} /** *

Indicates when the vulnerability advisory was created.

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& GetVendorCreatedAt() const{ return m_vendorCreatedAt; } /** *

Indicates when the vulnerability advisory was created.

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 VendorCreatedAtHasBeenSet() const { return m_vendorCreatedAtHasBeenSet; } /** *

Indicates when the vulnerability advisory was created.

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 SetVendorCreatedAt(const Aws::String& value) { m_vendorCreatedAtHasBeenSet = true; m_vendorCreatedAt = value; } /** *

Indicates when the vulnerability advisory was created.

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 SetVendorCreatedAt(Aws::String&& value) { m_vendorCreatedAtHasBeenSet = true; m_vendorCreatedAt = std::move(value); } /** *

Indicates when the vulnerability advisory was created.

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 SetVendorCreatedAt(const char* value) { m_vendorCreatedAtHasBeenSet = true; m_vendorCreatedAt.assign(value); } /** *

Indicates when the vulnerability advisory was created.

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 VulnerabilityVendor& WithVendorCreatedAt(const Aws::String& value) { SetVendorCreatedAt(value); return *this;} /** *

Indicates when the vulnerability advisory was created.

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 VulnerabilityVendor& WithVendorCreatedAt(Aws::String&& value) { SetVendorCreatedAt(std::move(value)); return *this;} /** *

Indicates when the vulnerability advisory was created.

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 VulnerabilityVendor& WithVendorCreatedAt(const char* value) { SetVendorCreatedAt(value); return *this;} /** *

Indicates when the vulnerability advisory was last updated.

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& GetVendorUpdatedAt() const{ return m_vendorUpdatedAt; } /** *

Indicates when the vulnerability advisory was last updated.

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 VendorUpdatedAtHasBeenSet() const { return m_vendorUpdatedAtHasBeenSet; } /** *

Indicates when the vulnerability advisory was last updated.

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 SetVendorUpdatedAt(const Aws::String& value) { m_vendorUpdatedAtHasBeenSet = true; m_vendorUpdatedAt = value; } /** *

Indicates when the vulnerability advisory was last updated.

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 SetVendorUpdatedAt(Aws::String&& value) { m_vendorUpdatedAtHasBeenSet = true; m_vendorUpdatedAt = std::move(value); } /** *

Indicates when the vulnerability advisory was last updated.

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 SetVendorUpdatedAt(const char* value) { m_vendorUpdatedAtHasBeenSet = true; m_vendorUpdatedAt.assign(value); } /** *

Indicates when the vulnerability advisory was last updated.

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 VulnerabilityVendor& WithVendorUpdatedAt(const Aws::String& value) { SetVendorUpdatedAt(value); return *this;} /** *

Indicates when the vulnerability advisory was last updated.

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 VulnerabilityVendor& WithVendorUpdatedAt(Aws::String&& value) { SetVendorUpdatedAt(std::move(value)); return *this;} /** *

Indicates when the vulnerability advisory was last updated.

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 VulnerabilityVendor& WithVendorUpdatedAt(const char* value) { SetVendorUpdatedAt(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_url; bool m_urlHasBeenSet = false; Aws::String m_vendorSeverity; bool m_vendorSeverityHasBeenSet = false; Aws::String m_vendorCreatedAt; bool m_vendorCreatedAtHasBeenSet = false; Aws::String m_vendorUpdatedAt; bool m_vendorUpdatedAtHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws