1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/guardduty/GuardDuty_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/guardduty/model/PortProbeDetail.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace GuardDuty
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Contains information about the PORT_PROBE action described in the
29    * finding.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/PortProbeAction">AWS
31    * API Reference</a></p>
32    */
33   class AWS_GUARDDUTY_API PortProbeAction
34   {
35   public:
36     PortProbeAction();
37     PortProbeAction(Aws::Utils::Json::JsonView jsonValue);
38     PortProbeAction& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>Indicates whether EC2 blocked the port probe to the instance, such as with an
44      * ACL.</p>
45      */
GetBlocked()46     inline bool GetBlocked() const{ return m_blocked; }
47 
48     /**
49      * <p>Indicates whether EC2 blocked the port probe to the instance, such as with an
50      * ACL.</p>
51      */
BlockedHasBeenSet()52     inline bool BlockedHasBeenSet() const { return m_blockedHasBeenSet; }
53 
54     /**
55      * <p>Indicates whether EC2 blocked the port probe to the instance, such as with an
56      * ACL.</p>
57      */
SetBlocked(bool value)58     inline void SetBlocked(bool value) { m_blockedHasBeenSet = true; m_blocked = value; }
59 
60     /**
61      * <p>Indicates whether EC2 blocked the port probe to the instance, such as with an
62      * ACL.</p>
63      */
WithBlocked(bool value)64     inline PortProbeAction& WithBlocked(bool value) { SetBlocked(value); return *this;}
65 
66 
67     /**
68      * <p>A list of objects related to port probe details.</p>
69      */
GetPortProbeDetails()70     inline const Aws::Vector<PortProbeDetail>& GetPortProbeDetails() const{ return m_portProbeDetails; }
71 
72     /**
73      * <p>A list of objects related to port probe details.</p>
74      */
PortProbeDetailsHasBeenSet()75     inline bool PortProbeDetailsHasBeenSet() const { return m_portProbeDetailsHasBeenSet; }
76 
77     /**
78      * <p>A list of objects related to port probe details.</p>
79      */
SetPortProbeDetails(const Aws::Vector<PortProbeDetail> & value)80     inline void SetPortProbeDetails(const Aws::Vector<PortProbeDetail>& value) { m_portProbeDetailsHasBeenSet = true; m_portProbeDetails = value; }
81 
82     /**
83      * <p>A list of objects related to port probe details.</p>
84      */
SetPortProbeDetails(Aws::Vector<PortProbeDetail> && value)85     inline void SetPortProbeDetails(Aws::Vector<PortProbeDetail>&& value) { m_portProbeDetailsHasBeenSet = true; m_portProbeDetails = std::move(value); }
86 
87     /**
88      * <p>A list of objects related to port probe details.</p>
89      */
WithPortProbeDetails(const Aws::Vector<PortProbeDetail> & value)90     inline PortProbeAction& WithPortProbeDetails(const Aws::Vector<PortProbeDetail>& value) { SetPortProbeDetails(value); return *this;}
91 
92     /**
93      * <p>A list of objects related to port probe details.</p>
94      */
WithPortProbeDetails(Aws::Vector<PortProbeDetail> && value)95     inline PortProbeAction& WithPortProbeDetails(Aws::Vector<PortProbeDetail>&& value) { SetPortProbeDetails(std::move(value)); return *this;}
96 
97     /**
98      * <p>A list of objects related to port probe details.</p>
99      */
AddPortProbeDetails(const PortProbeDetail & value)100     inline PortProbeAction& AddPortProbeDetails(const PortProbeDetail& value) { m_portProbeDetailsHasBeenSet = true; m_portProbeDetails.push_back(value); return *this; }
101 
102     /**
103      * <p>A list of objects related to port probe details.</p>
104      */
AddPortProbeDetails(PortProbeDetail && value)105     inline PortProbeAction& AddPortProbeDetails(PortProbeDetail&& value) { m_portProbeDetailsHasBeenSet = true; m_portProbeDetails.push_back(std::move(value)); return *this; }
106 
107   private:
108 
109     bool m_blocked;
110     bool m_blockedHasBeenSet;
111 
112     Aws::Vector<PortProbeDetail> m_portProbeDetails;
113     bool m_portProbeDetailsHasBeenSet;
114   };
115 
116 } // namespace Model
117 } // namespace GuardDuty
118 } // namespace Aws
119