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

Provided if ActionType is AWS_API_CALL. It provides * details about the API call that was detected.

See Also:

AWS * API Reference

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

The name of the API method that was issued.

*/ inline const Aws::String& GetApi() const{ return m_api; } /** *

The name of the API method that was issued.

*/ inline bool ApiHasBeenSet() const { return m_apiHasBeenSet; } /** *

The name of the API method that was issued.

*/ inline void SetApi(const Aws::String& value) { m_apiHasBeenSet = true; m_api = value; } /** *

The name of the API method that was issued.

*/ inline void SetApi(Aws::String&& value) { m_apiHasBeenSet = true; m_api = std::move(value); } /** *

The name of the API method that was issued.

*/ inline void SetApi(const char* value) { m_apiHasBeenSet = true; m_api.assign(value); } /** *

The name of the API method that was issued.

*/ inline AwsApiCallAction& WithApi(const Aws::String& value) { SetApi(value); return *this;} /** *

The name of the API method that was issued.

*/ inline AwsApiCallAction& WithApi(Aws::String&& value) { SetApi(std::move(value)); return *this;} /** *

The name of the API method that was issued.

*/ inline AwsApiCallAction& WithApi(const char* value) { SetApi(value); return *this;} /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline const Aws::String& GetServiceName() const{ return m_serviceName; } /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline bool ServiceNameHasBeenSet() const { return m_serviceNameHasBeenSet; } /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline void SetServiceName(const Aws::String& value) { m_serviceNameHasBeenSet = true; m_serviceName = value; } /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline void SetServiceName(Aws::String&& value) { m_serviceNameHasBeenSet = true; m_serviceName = std::move(value); } /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline void SetServiceName(const char* value) { m_serviceNameHasBeenSet = true; m_serviceName.assign(value); } /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline AwsApiCallAction& WithServiceName(const Aws::String& value) { SetServiceName(value); return *this;} /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline AwsApiCallAction& WithServiceName(Aws::String&& value) { SetServiceName(std::move(value)); return *this;} /** *

The name of the Amazon Web Services service that the API method belongs * to.

*/ inline AwsApiCallAction& WithServiceName(const char* value) { SetServiceName(value); return *this;} /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline const Aws::String& GetCallerType() const{ return m_callerType; } /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline bool CallerTypeHasBeenSet() const { return m_callerTypeHasBeenSet; } /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline void SetCallerType(const Aws::String& value) { m_callerTypeHasBeenSet = true; m_callerType = value; } /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline void SetCallerType(Aws::String&& value) { m_callerTypeHasBeenSet = true; m_callerType = std::move(value); } /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline void SetCallerType(const char* value) { m_callerTypeHasBeenSet = true; m_callerType.assign(value); } /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline AwsApiCallAction& WithCallerType(const Aws::String& value) { SetCallerType(value); return *this;} /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline AwsApiCallAction& WithCallerType(Aws::String&& value) { SetCallerType(std::move(value)); return *this;} /** *

Indicates whether the API call originated from a remote IP address * (remoteip) or from a DNS domain (domain).

*/ inline AwsApiCallAction& WithCallerType(const char* value) { SetCallerType(value); return *this;} /** *

Provided if CallerType is remoteIp. Provides * information about the remote IP address that the API call originated from.

*/ inline const ActionRemoteIpDetails& GetRemoteIpDetails() const{ return m_remoteIpDetails; } /** *

Provided if CallerType is remoteIp. Provides * information about the remote IP address that the API call originated from.

*/ inline bool RemoteIpDetailsHasBeenSet() const { return m_remoteIpDetailsHasBeenSet; } /** *

Provided if CallerType is remoteIp. Provides * information about the remote IP address that the API call originated from.

*/ inline void SetRemoteIpDetails(const ActionRemoteIpDetails& value) { m_remoteIpDetailsHasBeenSet = true; m_remoteIpDetails = value; } /** *

Provided if CallerType is remoteIp. Provides * information about the remote IP address that the API call originated from.

*/ inline void SetRemoteIpDetails(ActionRemoteIpDetails&& value) { m_remoteIpDetailsHasBeenSet = true; m_remoteIpDetails = std::move(value); } /** *

Provided if CallerType is remoteIp. Provides * information about the remote IP address that the API call originated from.

*/ inline AwsApiCallAction& WithRemoteIpDetails(const ActionRemoteIpDetails& value) { SetRemoteIpDetails(value); return *this;} /** *

Provided if CallerType is remoteIp. Provides * information about the remote IP address that the API call originated from.

*/ inline AwsApiCallAction& WithRemoteIpDetails(ActionRemoteIpDetails&& value) { SetRemoteIpDetails(std::move(value)); return *this;} /** *

Provided if CallerType is domain. Provides * information about the DNS domain that the API call originated from.

*/ inline const AwsApiCallActionDomainDetails& GetDomainDetails() const{ return m_domainDetails; } /** *

Provided if CallerType is domain. Provides * information about the DNS domain that the API call originated from.

*/ inline bool DomainDetailsHasBeenSet() const { return m_domainDetailsHasBeenSet; } /** *

Provided if CallerType is domain. Provides * information about the DNS domain that the API call originated from.

*/ inline void SetDomainDetails(const AwsApiCallActionDomainDetails& value) { m_domainDetailsHasBeenSet = true; m_domainDetails = value; } /** *

Provided if CallerType is domain. Provides * information about the DNS domain that the API call originated from.

*/ inline void SetDomainDetails(AwsApiCallActionDomainDetails&& value) { m_domainDetailsHasBeenSet = true; m_domainDetails = std::move(value); } /** *

Provided if CallerType is domain. Provides * information about the DNS domain that the API call originated from.

*/ inline AwsApiCallAction& WithDomainDetails(const AwsApiCallActionDomainDetails& value) { SetDomainDetails(value); return *this;} /** *

Provided if CallerType is domain. Provides * information about the DNS domain that the API call originated from.

*/ inline AwsApiCallAction& WithDomainDetails(AwsApiCallActionDomainDetails&& value) { SetDomainDetails(std::move(value)); return *this;} /** *

Identifies the resources that were affected by the API call.

*/ inline const Aws::Map& GetAffectedResources() const{ return m_affectedResources; } /** *

Identifies the resources that were affected by the API call.

*/ inline bool AffectedResourcesHasBeenSet() const { return m_affectedResourcesHasBeenSet; } /** *

Identifies the resources that were affected by the API call.

*/ inline void SetAffectedResources(const Aws::Map& value) { m_affectedResourcesHasBeenSet = true; m_affectedResources = value; } /** *

Identifies the resources that were affected by the API call.

*/ inline void SetAffectedResources(Aws::Map&& value) { m_affectedResourcesHasBeenSet = true; m_affectedResources = std::move(value); } /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& WithAffectedResources(const Aws::Map& value) { SetAffectedResources(value); return *this;} /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& WithAffectedResources(Aws::Map&& value) { SetAffectedResources(std::move(value)); return *this;} /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& AddAffectedResources(const Aws::String& key, const Aws::String& value) { m_affectedResourcesHasBeenSet = true; m_affectedResources.emplace(key, value); return *this; } /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& AddAffectedResources(Aws::String&& key, const Aws::String& value) { m_affectedResourcesHasBeenSet = true; m_affectedResources.emplace(std::move(key), value); return *this; } /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& AddAffectedResources(const Aws::String& key, Aws::String&& value) { m_affectedResourcesHasBeenSet = true; m_affectedResources.emplace(key, std::move(value)); return *this; } /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& AddAffectedResources(Aws::String&& key, Aws::String&& value) { m_affectedResourcesHasBeenSet = true; m_affectedResources.emplace(std::move(key), std::move(value)); return *this; } /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& AddAffectedResources(const char* key, Aws::String&& value) { m_affectedResourcesHasBeenSet = true; m_affectedResources.emplace(key, std::move(value)); return *this; } /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& AddAffectedResources(Aws::String&& key, const char* value) { m_affectedResourcesHasBeenSet = true; m_affectedResources.emplace(std::move(key), value); return *this; } /** *

Identifies the resources that were affected by the API call.

*/ inline AwsApiCallAction& AddAffectedResources(const char* key, const char* value) { m_affectedResourcesHasBeenSet = true; m_affectedResources.emplace(key, value); return *this; } /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline const Aws::String& GetFirstSeen() const{ return m_firstSeen; } /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline bool FirstSeenHasBeenSet() const { return m_firstSeenHasBeenSet; } /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline void SetFirstSeen(const Aws::String& value) { m_firstSeenHasBeenSet = true; m_firstSeen = value; } /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline void SetFirstSeen(Aws::String&& value) { m_firstSeenHasBeenSet = true; m_firstSeen = std::move(value); } /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline void SetFirstSeen(const char* value) { m_firstSeenHasBeenSet = true; m_firstSeen.assign(value); } /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline AwsApiCallAction& WithFirstSeen(const Aws::String& value) { SetFirstSeen(value); return *this;} /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline AwsApiCallAction& WithFirstSeen(Aws::String&& value) { SetFirstSeen(std::move(value)); return *this;} /** *

An ISO8601-formatted timestamp that indicates when the API call was first * observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline AwsApiCallAction& WithFirstSeen(const char* value) { SetFirstSeen(value); return *this;} /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline const Aws::String& GetLastSeen() const{ return m_lastSeen; } /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline bool LastSeenHasBeenSet() const { return m_lastSeenHasBeenSet; } /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline void SetLastSeen(const Aws::String& value) { m_lastSeenHasBeenSet = true; m_lastSeen = value; } /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline void SetLastSeen(Aws::String&& value) { m_lastSeenHasBeenSet = true; m_lastSeen = std::move(value); } /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline void SetLastSeen(const char* value) { m_lastSeenHasBeenSet = true; m_lastSeen.assign(value); } /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline AwsApiCallAction& WithLastSeen(const Aws::String& value) { SetLastSeen(value); return *this;} /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline AwsApiCallAction& WithLastSeen(Aws::String&& value) { SetLastSeen(std::move(value)); return *this;} /** *

An ISO8601-formatted timestamp that indicates when the API call was most * recently observed.

A correctly formatted example is * 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date * and time should be separated by T. For more information, see RFC 3339 section 5.6, * Internet Date/Time Format.

*/ inline AwsApiCallAction& WithLastSeen(const char* value) { SetLastSeen(value); return *this;} private: Aws::String m_api; bool m_apiHasBeenSet = false; Aws::String m_serviceName; bool m_serviceNameHasBeenSet = false; Aws::String m_callerType; bool m_callerTypeHasBeenSet = false; ActionRemoteIpDetails m_remoteIpDetails; bool m_remoteIpDetailsHasBeenSet = false; AwsApiCallActionDomainDetails m_domainDetails; bool m_domainDetailsHasBeenSet = false; Aws::Map m_affectedResources; bool m_affectedResourcesHasBeenSet = false; Aws::String m_firstSeen; bool m_firstSeenHasBeenSet = false; Aws::String m_lastSeen; bool m_lastSeenHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws