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/kendra/Kendra_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 kendra
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Provides information for connecting to an Amazon VPC.</p><p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DataSourceVpcConfiguration">AWS
31    * API Reference</a></p>
32    */
33   class AWS_KENDRA_API DataSourceVpcConfiguration
34   {
35   public:
36     DataSourceVpcConfiguration();
37     DataSourceVpcConfiguration(Aws::Utils::Json::JsonView jsonValue);
38     DataSourceVpcConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>A list of identifiers for subnets within your Amazon VPC. The subnets should
44      * be able to connect to each other in the VPC, and they should have outgoing
45      * access to the Internet through a NAT device.</p>
46      */
GetSubnetIds()47     inline const Aws::Vector<Aws::String>& GetSubnetIds() const{ return m_subnetIds; }
48 
49     /**
50      * <p>A list of identifiers for subnets within your Amazon VPC. The subnets should
51      * be able to connect to each other in the VPC, and they should have outgoing
52      * access to the Internet through a NAT device.</p>
53      */
SubnetIdsHasBeenSet()54     inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; }
55 
56     /**
57      * <p>A list of identifiers for subnets within your Amazon VPC. The subnets should
58      * be able to connect to each other in the VPC, and they should have outgoing
59      * access to the Internet through a NAT device.</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>A list of identifiers for subnets within your Amazon VPC. The subnets should
65      * be able to connect to each other in the VPC, and they should have outgoing
66      * access to the Internet through a NAT device.</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>A list of identifiers for subnets within your Amazon VPC. The subnets should
72      * be able to connect to each other in the VPC, and they should have outgoing
73      * access to the Internet through a NAT device.</p>
74      */
WithSubnetIds(const Aws::Vector<Aws::String> & value)75     inline DataSourceVpcConfiguration& WithSubnetIds(const Aws::Vector<Aws::String>& value) { SetSubnetIds(value); return *this;}
76 
77     /**
78      * <p>A list of identifiers for subnets within your Amazon VPC. The subnets should
79      * be able to connect to each other in the VPC, and they should have outgoing
80      * access to the Internet through a NAT device.</p>
81      */
WithSubnetIds(Aws::Vector<Aws::String> && value)82     inline DataSourceVpcConfiguration& WithSubnetIds(Aws::Vector<Aws::String>&& value) { SetSubnetIds(std::move(value)); return *this;}
83 
84     /**
85      * <p>A list of identifiers for subnets within your Amazon VPC. The subnets should
86      * be able to connect to each other in the VPC, and they should have outgoing
87      * access to the Internet through a NAT device.</p>
88      */
AddSubnetIds(const Aws::String & value)89     inline DataSourceVpcConfiguration& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; }
90 
91     /**
92      * <p>A list of identifiers for subnets within your Amazon VPC. The subnets should
93      * be able to connect to each other in the VPC, and they should have outgoing
94      * access to the Internet through a NAT device.</p>
95      */
AddSubnetIds(Aws::String && value)96     inline DataSourceVpcConfiguration& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; }
97 
98     /**
99      * <p>A list of identifiers for subnets within your Amazon VPC. The subnets should
100      * be able to connect to each other in the VPC, and they should have outgoing
101      * access to the Internet through a NAT device.</p>
102      */
AddSubnetIds(const char * value)103     inline DataSourceVpcConfiguration& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; }
104 
105 
106     /**
107      * <p>A list of identifiers of security groups within your Amazon VPC. The security
108      * groups should enable Amazon Kendra to connect to the data source.</p>
109      */
GetSecurityGroupIds()110     inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; }
111 
112     /**
113      * <p>A list of identifiers of security groups within your Amazon VPC. The security
114      * groups should enable Amazon Kendra to connect to the data source.</p>
115      */
SecurityGroupIdsHasBeenSet()116     inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
117 
118     /**
119      * <p>A list of identifiers of security groups within your Amazon VPC. The security
120      * groups should enable Amazon Kendra to connect to the data source.</p>
121      */
SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)122     inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; }
123 
124     /**
125      * <p>A list of identifiers of security groups within your Amazon VPC. The security
126      * groups should enable Amazon Kendra to connect to the data source.</p>
127      */
SetSecurityGroupIds(Aws::Vector<Aws::String> && value)128     inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); }
129 
130     /**
131      * <p>A list of identifiers of security groups within your Amazon VPC. The security
132      * groups should enable Amazon Kendra to connect to the data source.</p>
133      */
WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)134     inline DataSourceVpcConfiguration& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;}
135 
136     /**
137      * <p>A list of identifiers of security groups within your Amazon VPC. The security
138      * groups should enable Amazon Kendra to connect to the data source.</p>
139      */
WithSecurityGroupIds(Aws::Vector<Aws::String> && value)140     inline DataSourceVpcConfiguration& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;}
141 
142     /**
143      * <p>A list of identifiers of security groups within your Amazon VPC. The security
144      * groups should enable Amazon Kendra to connect to the data source.</p>
145      */
AddSecurityGroupIds(const Aws::String & value)146     inline DataSourceVpcConfiguration& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
147 
148     /**
149      * <p>A list of identifiers of security groups within your Amazon VPC. The security
150      * groups should enable Amazon Kendra to connect to the data source.</p>
151      */
AddSecurityGroupIds(Aws::String && value)152     inline DataSourceVpcConfiguration& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; }
153 
154     /**
155      * <p>A list of identifiers of security groups within your Amazon VPC. The security
156      * groups should enable Amazon Kendra to connect to the data source.</p>
157      */
AddSecurityGroupIds(const char * value)158     inline DataSourceVpcConfiguration& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
159 
160   private:
161 
162     Aws::Vector<Aws::String> m_subnetIds;
163     bool m_subnetIdsHasBeenSet;
164 
165     Aws::Vector<Aws::String> m_securityGroupIds;
166     bool m_securityGroupIdsHasBeenSet;
167   };
168 
169 } // namespace Model
170 } // namespace kendra
171 } // namespace Aws
172