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

Contains information about the Amazon Web Services resource associated with * the activity that prompted GuardDuty to generate a finding.

See * Also:

AWS * API Reference

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

The IAM access key details (user information) of a user that engaged in the * activity that prompted GuardDuty to generate a finding.

*/ inline const AccessKeyDetails& GetAccessKeyDetails() const{ return m_accessKeyDetails; } /** *

The IAM access key details (user information) of a user that engaged in the * activity that prompted GuardDuty to generate a finding.

*/ inline bool AccessKeyDetailsHasBeenSet() const { return m_accessKeyDetailsHasBeenSet; } /** *

The IAM access key details (user information) of a user that engaged in the * activity that prompted GuardDuty to generate a finding.

*/ inline void SetAccessKeyDetails(const AccessKeyDetails& value) { m_accessKeyDetailsHasBeenSet = true; m_accessKeyDetails = value; } /** *

The IAM access key details (user information) of a user that engaged in the * activity that prompted GuardDuty to generate a finding.

*/ inline void SetAccessKeyDetails(AccessKeyDetails&& value) { m_accessKeyDetailsHasBeenSet = true; m_accessKeyDetails = std::move(value); } /** *

The IAM access key details (user information) of a user that engaged in the * activity that prompted GuardDuty to generate a finding.

*/ inline Resource& WithAccessKeyDetails(const AccessKeyDetails& value) { SetAccessKeyDetails(value); return *this;} /** *

The IAM access key details (user information) of a user that engaged in the * activity that prompted GuardDuty to generate a finding.

*/ inline Resource& WithAccessKeyDetails(AccessKeyDetails&& value) { SetAccessKeyDetails(std::move(value)); return *this;} /** *

Contains information on the S3 bucket.

*/ inline const Aws::Vector& GetS3BucketDetails() const{ return m_s3BucketDetails; } /** *

Contains information on the S3 bucket.

*/ inline bool S3BucketDetailsHasBeenSet() const { return m_s3BucketDetailsHasBeenSet; } /** *

Contains information on the S3 bucket.

*/ inline void SetS3BucketDetails(const Aws::Vector& value) { m_s3BucketDetailsHasBeenSet = true; m_s3BucketDetails = value; } /** *

Contains information on the S3 bucket.

*/ inline void SetS3BucketDetails(Aws::Vector&& value) { m_s3BucketDetailsHasBeenSet = true; m_s3BucketDetails = std::move(value); } /** *

Contains information on the S3 bucket.

*/ inline Resource& WithS3BucketDetails(const Aws::Vector& value) { SetS3BucketDetails(value); return *this;} /** *

Contains information on the S3 bucket.

*/ inline Resource& WithS3BucketDetails(Aws::Vector&& value) { SetS3BucketDetails(std::move(value)); return *this;} /** *

Contains information on the S3 bucket.

*/ inline Resource& AddS3BucketDetails(const S3BucketDetail& value) { m_s3BucketDetailsHasBeenSet = true; m_s3BucketDetails.push_back(value); return *this; } /** *

Contains information on the S3 bucket.

*/ inline Resource& AddS3BucketDetails(S3BucketDetail&& value) { m_s3BucketDetailsHasBeenSet = true; m_s3BucketDetails.push_back(std::move(value)); return *this; } /** *

The information about the EC2 instance associated with the activity that * prompted GuardDuty to generate a finding.

*/ inline const InstanceDetails& GetInstanceDetails() const{ return m_instanceDetails; } /** *

The information about the EC2 instance associated with the activity that * prompted GuardDuty to generate a finding.

*/ inline bool InstanceDetailsHasBeenSet() const { return m_instanceDetailsHasBeenSet; } /** *

The information about the EC2 instance associated with the activity that * prompted GuardDuty to generate a finding.

*/ inline void SetInstanceDetails(const InstanceDetails& value) { m_instanceDetailsHasBeenSet = true; m_instanceDetails = value; } /** *

The information about the EC2 instance associated with the activity that * prompted GuardDuty to generate a finding.

*/ inline void SetInstanceDetails(InstanceDetails&& value) { m_instanceDetailsHasBeenSet = true; m_instanceDetails = std::move(value); } /** *

The information about the EC2 instance associated with the activity that * prompted GuardDuty to generate a finding.

*/ inline Resource& WithInstanceDetails(const InstanceDetails& value) { SetInstanceDetails(value); return *this;} /** *

The information about the EC2 instance associated with the activity that * prompted GuardDuty to generate a finding.

*/ inline Resource& WithInstanceDetails(InstanceDetails&& value) { SetInstanceDetails(std::move(value)); return *this;} /** *

Details about the EKS cluster involved in a Kubernetes finding.

*/ inline const EksClusterDetails& GetEksClusterDetails() const{ return m_eksClusterDetails; } /** *

Details about the EKS cluster involved in a Kubernetes finding.

*/ inline bool EksClusterDetailsHasBeenSet() const { return m_eksClusterDetailsHasBeenSet; } /** *

Details about the EKS cluster involved in a Kubernetes finding.

*/ inline void SetEksClusterDetails(const EksClusterDetails& value) { m_eksClusterDetailsHasBeenSet = true; m_eksClusterDetails = value; } /** *

Details about the EKS cluster involved in a Kubernetes finding.

*/ inline void SetEksClusterDetails(EksClusterDetails&& value) { m_eksClusterDetailsHasBeenSet = true; m_eksClusterDetails = std::move(value); } /** *

Details about the EKS cluster involved in a Kubernetes finding.

*/ inline Resource& WithEksClusterDetails(const EksClusterDetails& value) { SetEksClusterDetails(value); return *this;} /** *

Details about the EKS cluster involved in a Kubernetes finding.

*/ inline Resource& WithEksClusterDetails(EksClusterDetails&& value) { SetEksClusterDetails(std::move(value)); return *this;} /** *

Details about the Kubernetes user and workload involved in a Kubernetes * finding.

*/ inline const KubernetesDetails& GetKubernetesDetails() const{ return m_kubernetesDetails; } /** *

Details about the Kubernetes user and workload involved in a Kubernetes * finding.

*/ inline bool KubernetesDetailsHasBeenSet() const { return m_kubernetesDetailsHasBeenSet; } /** *

Details about the Kubernetes user and workload involved in a Kubernetes * finding.

*/ inline void SetKubernetesDetails(const KubernetesDetails& value) { m_kubernetesDetailsHasBeenSet = true; m_kubernetesDetails = value; } /** *

Details about the Kubernetes user and workload involved in a Kubernetes * finding.

*/ inline void SetKubernetesDetails(KubernetesDetails&& value) { m_kubernetesDetailsHasBeenSet = true; m_kubernetesDetails = std::move(value); } /** *

Details about the Kubernetes user and workload involved in a Kubernetes * finding.

*/ inline Resource& WithKubernetesDetails(const KubernetesDetails& value) { SetKubernetesDetails(value); return *this;} /** *

Details about the Kubernetes user and workload involved in a Kubernetes * finding.

*/ inline Resource& WithKubernetesDetails(KubernetesDetails&& value) { SetKubernetesDetails(std::move(value)); return *this;} /** *

The type of Amazon Web Services resource.

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

The type of Amazon Web Services resource.

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

The type of Amazon Web Services resource.

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

The type of Amazon Web Services resource.

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

The type of Amazon Web Services resource.

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

The type of Amazon Web Services resource.

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

The type of Amazon Web Services resource.

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

The type of Amazon Web Services resource.

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

Contains list of scanned and skipped EBS volumes with details.

*/ inline const EbsVolumeDetails& GetEbsVolumeDetails() const{ return m_ebsVolumeDetails; } /** *

Contains list of scanned and skipped EBS volumes with details.

*/ inline bool EbsVolumeDetailsHasBeenSet() const { return m_ebsVolumeDetailsHasBeenSet; } /** *

Contains list of scanned and skipped EBS volumes with details.

*/ inline void SetEbsVolumeDetails(const EbsVolumeDetails& value) { m_ebsVolumeDetailsHasBeenSet = true; m_ebsVolumeDetails = value; } /** *

Contains list of scanned and skipped EBS volumes with details.

*/ inline void SetEbsVolumeDetails(EbsVolumeDetails&& value) { m_ebsVolumeDetailsHasBeenSet = true; m_ebsVolumeDetails = std::move(value); } /** *

Contains list of scanned and skipped EBS volumes with details.

*/ inline Resource& WithEbsVolumeDetails(const EbsVolumeDetails& value) { SetEbsVolumeDetails(value); return *this;} /** *

Contains list of scanned and skipped EBS volumes with details.

*/ inline Resource& WithEbsVolumeDetails(EbsVolumeDetails&& value) { SetEbsVolumeDetails(std::move(value)); return *this;} /** *

Contains information about the details of the ECS Cluster.

*/ inline const EcsClusterDetails& GetEcsClusterDetails() const{ return m_ecsClusterDetails; } /** *

Contains information about the details of the ECS Cluster.

*/ inline bool EcsClusterDetailsHasBeenSet() const { return m_ecsClusterDetailsHasBeenSet; } /** *

Contains information about the details of the ECS Cluster.

*/ inline void SetEcsClusterDetails(const EcsClusterDetails& value) { m_ecsClusterDetailsHasBeenSet = true; m_ecsClusterDetails = value; } /** *

Contains information about the details of the ECS Cluster.

*/ inline void SetEcsClusterDetails(EcsClusterDetails&& value) { m_ecsClusterDetailsHasBeenSet = true; m_ecsClusterDetails = std::move(value); } /** *

Contains information about the details of the ECS Cluster.

*/ inline Resource& WithEcsClusterDetails(const EcsClusterDetails& value) { SetEcsClusterDetails(value); return *this;} /** *

Contains information about the details of the ECS Cluster.

*/ inline Resource& WithEcsClusterDetails(EcsClusterDetails&& value) { SetEcsClusterDetails(std::move(value)); return *this;} inline const Container& GetContainerDetails() const{ return m_containerDetails; } inline bool ContainerDetailsHasBeenSet() const { return m_containerDetailsHasBeenSet; } inline void SetContainerDetails(const Container& value) { m_containerDetailsHasBeenSet = true; m_containerDetails = value; } inline void SetContainerDetails(Container&& value) { m_containerDetailsHasBeenSet = true; m_containerDetails = std::move(value); } inline Resource& WithContainerDetails(const Container& value) { SetContainerDetails(value); return *this;} inline Resource& WithContainerDetails(Container&& value) { SetContainerDetails(std::move(value)); return *this;} /** *

Contains information about the database instance to which an anomalous login * attempt was made.

*/ inline const RdsDbInstanceDetails& GetRdsDbInstanceDetails() const{ return m_rdsDbInstanceDetails; } /** *

Contains information about the database instance to which an anomalous login * attempt was made.

*/ inline bool RdsDbInstanceDetailsHasBeenSet() const { return m_rdsDbInstanceDetailsHasBeenSet; } /** *

Contains information about the database instance to which an anomalous login * attempt was made.

*/ inline void SetRdsDbInstanceDetails(const RdsDbInstanceDetails& value) { m_rdsDbInstanceDetailsHasBeenSet = true; m_rdsDbInstanceDetails = value; } /** *

Contains information about the database instance to which an anomalous login * attempt was made.

*/ inline void SetRdsDbInstanceDetails(RdsDbInstanceDetails&& value) { m_rdsDbInstanceDetailsHasBeenSet = true; m_rdsDbInstanceDetails = std::move(value); } /** *

Contains information about the database instance to which an anomalous login * attempt was made.

*/ inline Resource& WithRdsDbInstanceDetails(const RdsDbInstanceDetails& value) { SetRdsDbInstanceDetails(value); return *this;} /** *

Contains information about the database instance to which an anomalous login * attempt was made.

*/ inline Resource& WithRdsDbInstanceDetails(RdsDbInstanceDetails&& value) { SetRdsDbInstanceDetails(std::move(value)); return *this;} /** *

Contains information about the user details through which anomalous login * attempt was made.

*/ inline const RdsDbUserDetails& GetRdsDbUserDetails() const{ return m_rdsDbUserDetails; } /** *

Contains information about the user details through which anomalous login * attempt was made.

*/ inline bool RdsDbUserDetailsHasBeenSet() const { return m_rdsDbUserDetailsHasBeenSet; } /** *

Contains information about the user details through which anomalous login * attempt was made.

*/ inline void SetRdsDbUserDetails(const RdsDbUserDetails& value) { m_rdsDbUserDetailsHasBeenSet = true; m_rdsDbUserDetails = value; } /** *

Contains information about the user details through which anomalous login * attempt was made.

*/ inline void SetRdsDbUserDetails(RdsDbUserDetails&& value) { m_rdsDbUserDetailsHasBeenSet = true; m_rdsDbUserDetails = std::move(value); } /** *

Contains information about the user details through which anomalous login * attempt was made.

*/ inline Resource& WithRdsDbUserDetails(const RdsDbUserDetails& value) { SetRdsDbUserDetails(value); return *this;} /** *

Contains information about the user details through which anomalous login * attempt was made.

*/ inline Resource& WithRdsDbUserDetails(RdsDbUserDetails&& value) { SetRdsDbUserDetails(std::move(value)); return *this;} /** *

Contains information about the Lambda function that was involved in a * finding.

*/ inline const LambdaDetails& GetLambdaDetails() const{ return m_lambdaDetails; } /** *

Contains information about the Lambda function that was involved in a * finding.

*/ inline bool LambdaDetailsHasBeenSet() const { return m_lambdaDetailsHasBeenSet; } /** *

Contains information about the Lambda function that was involved in a * finding.

*/ inline void SetLambdaDetails(const LambdaDetails& value) { m_lambdaDetailsHasBeenSet = true; m_lambdaDetails = value; } /** *

Contains information about the Lambda function that was involved in a * finding.

*/ inline void SetLambdaDetails(LambdaDetails&& value) { m_lambdaDetailsHasBeenSet = true; m_lambdaDetails = std::move(value); } /** *

Contains information about the Lambda function that was involved in a * finding.

*/ inline Resource& WithLambdaDetails(const LambdaDetails& value) { SetLambdaDetails(value); return *this;} /** *

Contains information about the Lambda function that was involved in a * finding.

*/ inline Resource& WithLambdaDetails(LambdaDetails&& value) { SetLambdaDetails(std::move(value)); return *this;} private: AccessKeyDetails m_accessKeyDetails; bool m_accessKeyDetailsHasBeenSet = false; Aws::Vector m_s3BucketDetails; bool m_s3BucketDetailsHasBeenSet = false; InstanceDetails m_instanceDetails; bool m_instanceDetailsHasBeenSet = false; EksClusterDetails m_eksClusterDetails; bool m_eksClusterDetailsHasBeenSet = false; KubernetesDetails m_kubernetesDetails; bool m_kubernetesDetailsHasBeenSet = false; Aws::String m_resourceType; bool m_resourceTypeHasBeenSet = false; EbsVolumeDetails m_ebsVolumeDetails; bool m_ebsVolumeDetailsHasBeenSet = false; EcsClusterDetails m_ecsClusterDetails; bool m_ecsClusterDetailsHasBeenSet = false; Container m_containerDetails; bool m_containerDetailsHasBeenSet = false; RdsDbInstanceDetails m_rdsDbInstanceDetails; bool m_rdsDbInstanceDetailsHasBeenSet = false; RdsDbUserDetails m_rdsDbUserDetails; bool m_rdsDbUserDetailsHasBeenSet = false; LambdaDetails m_lambdaDetails; bool m_lambdaDetailsHasBeenSet = false; }; } // namespace Model } // namespace GuardDuty } // namespace Aws