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/kinesisanalyticsv2/KinesisAnalyticsV2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.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 KinesisAnalyticsV2
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Describes the parameters of a VPC used by the application.</p><p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/kinesisanalyticsv2-2018-05-23/VpcConfiguration">AWS
31    * API Reference</a></p>
32    */
33   class AWS_KINESISANALYTICSV2_API VpcConfiguration
34   {
35   public:
36     VpcConfiguration();
37     VpcConfiguration(Aws::Utils::Json::JsonView jsonValue);
38     VpcConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The array of <a
44      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
45      * IDs used by the VPC configuration.</p>
46      */
GetSubnetIds()47     inline const Aws::Vector<Aws::String>& GetSubnetIds() const{ return m_subnetIds; }
48 
49     /**
50      * <p>The array of <a
51      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
52      * IDs used by the VPC configuration.</p>
53      */
SubnetIdsHasBeenSet()54     inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; }
55 
56     /**
57      * <p>The array of <a
58      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
59      * IDs used by the VPC configuration.</p>
60      */
SetSubnetIds(const Aws::Vector<Aws::String> & value)61     inline void SetSubnetIds(const Aws::Vector<Aws::String>& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; }
62 
63     /**
64      * <p>The array of <a
65      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
66      * IDs used by the VPC configuration.</p>
67      */
SetSubnetIds(Aws::Vector<Aws::String> && value)68     inline void SetSubnetIds(Aws::Vector<Aws::String>&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); }
69 
70     /**
71      * <p>The array of <a
72      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
73      * IDs used by the VPC configuration.</p>
74      */
WithSubnetIds(const Aws::Vector<Aws::String> & value)75     inline VpcConfiguration& WithSubnetIds(const Aws::Vector<Aws::String>& value) { SetSubnetIds(value); return *this;}
76 
77     /**
78      * <p>The array of <a
79      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
80      * IDs used by the VPC configuration.</p>
81      */
WithSubnetIds(Aws::Vector<Aws::String> && value)82     inline VpcConfiguration& WithSubnetIds(Aws::Vector<Aws::String>&& value) { SetSubnetIds(std::move(value)); return *this;}
83 
84     /**
85      * <p>The array of <a
86      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
87      * IDs used by the VPC configuration.</p>
88      */
AddSubnetIds(const Aws::String & value)89     inline VpcConfiguration& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; }
90 
91     /**
92      * <p>The array of <a
93      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
94      * IDs used by the VPC configuration.</p>
95      */
AddSubnetIds(Aws::String && value)96     inline VpcConfiguration& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; }
97 
98     /**
99      * <p>The array of <a
100      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a>
101      * IDs used by the VPC configuration.</p>
102      */
AddSubnetIds(const char * value)103     inline VpcConfiguration& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; }
104 
105 
106     /**
107      * <p>The array of <a
108      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
109      * IDs used by the VPC configuration.</p>
110      */
GetSecurityGroupIds()111     inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; }
112 
113     /**
114      * <p>The array of <a
115      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
116      * IDs used by the VPC configuration.</p>
117      */
SecurityGroupIdsHasBeenSet()118     inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
119 
120     /**
121      * <p>The array of <a
122      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
123      * IDs used by the VPC configuration.</p>
124      */
SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)125     inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; }
126 
127     /**
128      * <p>The array of <a
129      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
130      * IDs used by the VPC configuration.</p>
131      */
SetSecurityGroupIds(Aws::Vector<Aws::String> && value)132     inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); }
133 
134     /**
135      * <p>The array of <a
136      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
137      * IDs used by the VPC configuration.</p>
138      */
WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)139     inline VpcConfiguration& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;}
140 
141     /**
142      * <p>The array of <a
143      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
144      * IDs used by the VPC configuration.</p>
145      */
WithSecurityGroupIds(Aws::Vector<Aws::String> && value)146     inline VpcConfiguration& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;}
147 
148     /**
149      * <p>The array of <a
150      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
151      * IDs used by the VPC configuration.</p>
152      */
AddSecurityGroupIds(const Aws::String & value)153     inline VpcConfiguration& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
154 
155     /**
156      * <p>The array of <a
157      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
158      * IDs used by the VPC configuration.</p>
159      */
AddSecurityGroupIds(Aws::String && value)160     inline VpcConfiguration& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; }
161 
162     /**
163      * <p>The array of <a
164      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a>
165      * IDs used by the VPC configuration.</p>
166      */
AddSecurityGroupIds(const char * value)167     inline VpcConfiguration& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
168 
169   private:
170 
171     Aws::Vector<Aws::String> m_subnetIds;
172     bool m_subnetIdsHasBeenSet;
173 
174     Aws::Vector<Aws::String> m_securityGroupIds;
175     bool m_securityGroupIdsHasBeenSet;
176   };
177 
178 } // namespace Model
179 } // namespace KinesisAnalyticsV2
180 } // namespace Aws
181