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/datasync/DataSync_EXPORTS.h>
8 #include <aws/datasync/DataSyncRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/datasync/model/TagListEntry.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace DataSync
17 {
18 namespace Model
19 {
20 
21   /**
22    * <p>CreateAgentRequest</p><p><h3>See Also:</h3>   <a
23    * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateAgentRequest">AWS
24    * API Reference</a></p>
25    */
26   class AWS_DATASYNC_API CreateAgentRequest : public DataSyncRequest
27   {
28   public:
29     CreateAgentRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "CreateAgent"; }
36 
37     Aws::String SerializePayload() const override;
38 
39     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
40 
41 
42     /**
43      * <p>Your agent activation key. You can get the activation key either by sending
44      * an HTTP GET request with redirects that enable you to get the agent IP address
45      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
46      * redirect URL returned in the response provides you the activation key for your
47      * agent in the query string parameter <code>activationKey</code>. It might also
48      * include other activation-related parameters; however, these are merely defaults.
49      * The arguments you pass to this API call determine the actual configuration of
50      * your agent.</p> <p>For more information, see Activating an Agent in the
51      * <i>DataSync User Guide.</i> </p>
52      */
GetActivationKey()53     inline const Aws::String& GetActivationKey() const{ return m_activationKey; }
54 
55     /**
56      * <p>Your agent activation key. You can get the activation key either by sending
57      * an HTTP GET request with redirects that enable you to get the agent IP address
58      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
59      * redirect URL returned in the response provides you the activation key for your
60      * agent in the query string parameter <code>activationKey</code>. It might also
61      * include other activation-related parameters; however, these are merely defaults.
62      * The arguments you pass to this API call determine the actual configuration of
63      * your agent.</p> <p>For more information, see Activating an Agent in the
64      * <i>DataSync User Guide.</i> </p>
65      */
ActivationKeyHasBeenSet()66     inline bool ActivationKeyHasBeenSet() const { return m_activationKeyHasBeenSet; }
67 
68     /**
69      * <p>Your agent activation key. You can get the activation key either by sending
70      * an HTTP GET request with redirects that enable you to get the agent IP address
71      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
72      * redirect URL returned in the response provides you the activation key for your
73      * agent in the query string parameter <code>activationKey</code>. It might also
74      * include other activation-related parameters; however, these are merely defaults.
75      * The arguments you pass to this API call determine the actual configuration of
76      * your agent.</p> <p>For more information, see Activating an Agent in the
77      * <i>DataSync User Guide.</i> </p>
78      */
SetActivationKey(const Aws::String & value)79     inline void SetActivationKey(const Aws::String& value) { m_activationKeyHasBeenSet = true; m_activationKey = value; }
80 
81     /**
82      * <p>Your agent activation key. You can get the activation key either by sending
83      * an HTTP GET request with redirects that enable you to get the agent IP address
84      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
85      * redirect URL returned in the response provides you the activation key for your
86      * agent in the query string parameter <code>activationKey</code>. It might also
87      * include other activation-related parameters; however, these are merely defaults.
88      * The arguments you pass to this API call determine the actual configuration of
89      * your agent.</p> <p>For more information, see Activating an Agent in the
90      * <i>DataSync User Guide.</i> </p>
91      */
SetActivationKey(Aws::String && value)92     inline void SetActivationKey(Aws::String&& value) { m_activationKeyHasBeenSet = true; m_activationKey = std::move(value); }
93 
94     /**
95      * <p>Your agent activation key. You can get the activation key either by sending
96      * an HTTP GET request with redirects that enable you to get the agent IP address
97      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
98      * redirect URL returned in the response provides you the activation key for your
99      * agent in the query string parameter <code>activationKey</code>. It might also
100      * include other activation-related parameters; however, these are merely defaults.
101      * The arguments you pass to this API call determine the actual configuration of
102      * your agent.</p> <p>For more information, see Activating an Agent in the
103      * <i>DataSync User Guide.</i> </p>
104      */
SetActivationKey(const char * value)105     inline void SetActivationKey(const char* value) { m_activationKeyHasBeenSet = true; m_activationKey.assign(value); }
106 
107     /**
108      * <p>Your agent activation key. You can get the activation key either by sending
109      * an HTTP GET request with redirects that enable you to get the agent IP address
110      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
111      * redirect URL returned in the response provides you the activation key for your
112      * agent in the query string parameter <code>activationKey</code>. It might also
113      * include other activation-related parameters; however, these are merely defaults.
114      * The arguments you pass to this API call determine the actual configuration of
115      * your agent.</p> <p>For more information, see Activating an Agent in the
116      * <i>DataSync User Guide.</i> </p>
117      */
WithActivationKey(const Aws::String & value)118     inline CreateAgentRequest& WithActivationKey(const Aws::String& value) { SetActivationKey(value); return *this;}
119 
120     /**
121      * <p>Your agent activation key. You can get the activation key either by sending
122      * an HTTP GET request with redirects that enable you to get the agent IP address
123      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
124      * redirect URL returned in the response provides you the activation key for your
125      * agent in the query string parameter <code>activationKey</code>. It might also
126      * include other activation-related parameters; however, these are merely defaults.
127      * The arguments you pass to this API call determine the actual configuration of
128      * your agent.</p> <p>For more information, see Activating an Agent in the
129      * <i>DataSync User Guide.</i> </p>
130      */
WithActivationKey(Aws::String && value)131     inline CreateAgentRequest& WithActivationKey(Aws::String&& value) { SetActivationKey(std::move(value)); return *this;}
132 
133     /**
134      * <p>Your agent activation key. You can get the activation key either by sending
135      * an HTTP GET request with redirects that enable you to get the agent IP address
136      * (port 80). Alternatively, you can get it from the DataSync console.</p> <p>The
137      * redirect URL returned in the response provides you the activation key for your
138      * agent in the query string parameter <code>activationKey</code>. It might also
139      * include other activation-related parameters; however, these are merely defaults.
140      * The arguments you pass to this API call determine the actual configuration of
141      * your agent.</p> <p>For more information, see Activating an Agent in the
142      * <i>DataSync User Guide.</i> </p>
143      */
WithActivationKey(const char * value)144     inline CreateAgentRequest& WithActivationKey(const char* value) { SetActivationKey(value); return *this;}
145 
146 
147     /**
148      * <p>The name you configured for your agent. This value is a text reference that
149      * is used to identify the agent in the console.</p>
150      */
GetAgentName()151     inline const Aws::String& GetAgentName() const{ return m_agentName; }
152 
153     /**
154      * <p>The name you configured for your agent. This value is a text reference that
155      * is used to identify the agent in the console.</p>
156      */
AgentNameHasBeenSet()157     inline bool AgentNameHasBeenSet() const { return m_agentNameHasBeenSet; }
158 
159     /**
160      * <p>The name you configured for your agent. This value is a text reference that
161      * is used to identify the agent in the console.</p>
162      */
SetAgentName(const Aws::String & value)163     inline void SetAgentName(const Aws::String& value) { m_agentNameHasBeenSet = true; m_agentName = value; }
164 
165     /**
166      * <p>The name you configured for your agent. This value is a text reference that
167      * is used to identify the agent in the console.</p>
168      */
SetAgentName(Aws::String && value)169     inline void SetAgentName(Aws::String&& value) { m_agentNameHasBeenSet = true; m_agentName = std::move(value); }
170 
171     /**
172      * <p>The name you configured for your agent. This value is a text reference that
173      * is used to identify the agent in the console.</p>
174      */
SetAgentName(const char * value)175     inline void SetAgentName(const char* value) { m_agentNameHasBeenSet = true; m_agentName.assign(value); }
176 
177     /**
178      * <p>The name you configured for your agent. This value is a text reference that
179      * is used to identify the agent in the console.</p>
180      */
WithAgentName(const Aws::String & value)181     inline CreateAgentRequest& WithAgentName(const Aws::String& value) { SetAgentName(value); return *this;}
182 
183     /**
184      * <p>The name you configured for your agent. This value is a text reference that
185      * is used to identify the agent in the console.</p>
186      */
WithAgentName(Aws::String && value)187     inline CreateAgentRequest& WithAgentName(Aws::String&& value) { SetAgentName(std::move(value)); return *this;}
188 
189     /**
190      * <p>The name you configured for your agent. This value is a text reference that
191      * is used to identify the agent in the console.</p>
192      */
WithAgentName(const char * value)193     inline CreateAgentRequest& WithAgentName(const char* value) { SetAgentName(value); return *this;}
194 
195 
196     /**
197      * <p>The key-value pair that represents the tag that you want to associate with
198      * the agent. The value can be an empty string. This value helps you manage,
199      * filter, and search for your agents.</p>  <p>Valid characters for key and
200      * value are letters, spaces, and numbers representable in UTF-8 format, and the
201      * following special characters: + - = . _ : / @. </p>
202      */
GetTags()203     inline const Aws::Vector<TagListEntry>& GetTags() const{ return m_tags; }
204 
205     /**
206      * <p>The key-value pair that represents the tag that you want to associate with
207      * the agent. The value can be an empty string. This value helps you manage,
208      * filter, and search for your agents.</p>  <p>Valid characters for key and
209      * value are letters, spaces, and numbers representable in UTF-8 format, and the
210      * following special characters: + - = . _ : / @. </p>
211      */
TagsHasBeenSet()212     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
213 
214     /**
215      * <p>The key-value pair that represents the tag that you want to associate with
216      * the agent. The value can be an empty string. This value helps you manage,
217      * filter, and search for your agents.</p>  <p>Valid characters for key and
218      * value are letters, spaces, and numbers representable in UTF-8 format, and the
219      * following special characters: + - = . _ : / @. </p>
220      */
SetTags(const Aws::Vector<TagListEntry> & value)221     inline void SetTags(const Aws::Vector<TagListEntry>& value) { m_tagsHasBeenSet = true; m_tags = value; }
222 
223     /**
224      * <p>The key-value pair that represents the tag that you want to associate with
225      * the agent. The value can be an empty string. This value helps you manage,
226      * filter, and search for your agents.</p>  <p>Valid characters for key and
227      * value are letters, spaces, and numbers representable in UTF-8 format, and the
228      * following special characters: + - = . _ : / @. </p>
229      */
SetTags(Aws::Vector<TagListEntry> && value)230     inline void SetTags(Aws::Vector<TagListEntry>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
231 
232     /**
233      * <p>The key-value pair that represents the tag that you want to associate with
234      * the agent. The value can be an empty string. This value helps you manage,
235      * filter, and search for your agents.</p>  <p>Valid characters for key and
236      * value are letters, spaces, and numbers representable in UTF-8 format, and the
237      * following special characters: + - = . _ : / @. </p>
238      */
WithTags(const Aws::Vector<TagListEntry> & value)239     inline CreateAgentRequest& WithTags(const Aws::Vector<TagListEntry>& value) { SetTags(value); return *this;}
240 
241     /**
242      * <p>The key-value pair that represents the tag that you want to associate with
243      * the agent. The value can be an empty string. This value helps you manage,
244      * filter, and search for your agents.</p>  <p>Valid characters for key and
245      * value are letters, spaces, and numbers representable in UTF-8 format, and the
246      * following special characters: + - = . _ : / @. </p>
247      */
WithTags(Aws::Vector<TagListEntry> && value)248     inline CreateAgentRequest& WithTags(Aws::Vector<TagListEntry>&& value) { SetTags(std::move(value)); return *this;}
249 
250     /**
251      * <p>The key-value pair that represents the tag that you want to associate with
252      * the agent. The value can be an empty string. This value helps you manage,
253      * filter, and search for your agents.</p>  <p>Valid characters for key and
254      * value are letters, spaces, and numbers representable in UTF-8 format, and the
255      * following special characters: + - = . _ : / @. </p>
256      */
AddTags(const TagListEntry & value)257     inline CreateAgentRequest& AddTags(const TagListEntry& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
258 
259     /**
260      * <p>The key-value pair that represents the tag that you want to associate with
261      * the agent. The value can be an empty string. This value helps you manage,
262      * filter, and search for your agents.</p>  <p>Valid characters for key and
263      * value are letters, spaces, and numbers representable in UTF-8 format, and the
264      * following special characters: + - = . _ : / @. </p>
265      */
AddTags(TagListEntry && value)266     inline CreateAgentRequest& AddTags(TagListEntry&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
267 
268 
269     /**
270      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
271      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
272      * don't have a PrivateLink VPC endpoint, see <a
273      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
274      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
275      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
276      */
GetVpcEndpointId()277     inline const Aws::String& GetVpcEndpointId() const{ return m_vpcEndpointId; }
278 
279     /**
280      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
281      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
282      * don't have a PrivateLink VPC endpoint, see <a
283      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
284      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
285      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
286      */
VpcEndpointIdHasBeenSet()287     inline bool VpcEndpointIdHasBeenSet() const { return m_vpcEndpointIdHasBeenSet; }
288 
289     /**
290      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
291      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
292      * don't have a PrivateLink VPC endpoint, see <a
293      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
294      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
295      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
296      */
SetVpcEndpointId(const Aws::String & value)297     inline void SetVpcEndpointId(const Aws::String& value) { m_vpcEndpointIdHasBeenSet = true; m_vpcEndpointId = value; }
298 
299     /**
300      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
301      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
302      * don't have a PrivateLink VPC endpoint, see <a
303      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
304      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
305      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
306      */
SetVpcEndpointId(Aws::String && value)307     inline void SetVpcEndpointId(Aws::String&& value) { m_vpcEndpointIdHasBeenSet = true; m_vpcEndpointId = std::move(value); }
308 
309     /**
310      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
311      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
312      * don't have a PrivateLink VPC endpoint, see <a
313      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
314      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
315      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
316      */
SetVpcEndpointId(const char * value)317     inline void SetVpcEndpointId(const char* value) { m_vpcEndpointIdHasBeenSet = true; m_vpcEndpointId.assign(value); }
318 
319     /**
320      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
321      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
322      * don't have a PrivateLink VPC endpoint, see <a
323      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
324      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
325      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
326      */
WithVpcEndpointId(const Aws::String & value)327     inline CreateAgentRequest& WithVpcEndpointId(const Aws::String& value) { SetVpcEndpointId(value); return *this;}
328 
329     /**
330      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
331      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
332      * don't have a PrivateLink VPC endpoint, see <a
333      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
334      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
335      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
336      */
WithVpcEndpointId(Aws::String && value)337     inline CreateAgentRequest& WithVpcEndpointId(Aws::String&& value) { SetVpcEndpointId(std::move(value)); return *this;}
338 
339     /**
340      * <p>The ID of the VPC (virtual private cloud) endpoint that the agent has access
341      * to. This is the client-side VPC endpoint, also called a PrivateLink. If you
342      * don't have a PrivateLink VPC endpoint, see <a
343      * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating
344      * a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide.</p>
345      * <p>VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.</p>
346      */
WithVpcEndpointId(const char * value)347     inline CreateAgentRequest& WithVpcEndpointId(const char* value) { SetVpcEndpointId(value); return *this;}
348 
349 
350     /**
351      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
352      * elastic network interfaces for each data transfer task. The agent that runs a
353      * task must be private. When you start a task that is associated with an agent
354      * created in a VPC, or one that has access to an IP address in a VPC, then the
355      * task is also private. In this case, DataSync creates four network interfaces for
356      * each task in your subnet. For a data transfer to work, the agent must be able to
357      * route to all these four network interfaces.</p>
358      */
GetSubnetArns()359     inline const Aws::Vector<Aws::String>& GetSubnetArns() const{ return m_subnetArns; }
360 
361     /**
362      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
363      * elastic network interfaces for each data transfer task. The agent that runs a
364      * task must be private. When you start a task that is associated with an agent
365      * created in a VPC, or one that has access to an IP address in a VPC, then the
366      * task is also private. In this case, DataSync creates four network interfaces for
367      * each task in your subnet. For a data transfer to work, the agent must be able to
368      * route to all these four network interfaces.</p>
369      */
SubnetArnsHasBeenSet()370     inline bool SubnetArnsHasBeenSet() const { return m_subnetArnsHasBeenSet; }
371 
372     /**
373      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
374      * elastic network interfaces for each data transfer task. The agent that runs a
375      * task must be private. When you start a task that is associated with an agent
376      * created in a VPC, or one that has access to an IP address in a VPC, then the
377      * task is also private. In this case, DataSync creates four network interfaces for
378      * each task in your subnet. For a data transfer to work, the agent must be able to
379      * route to all these four network interfaces.</p>
380      */
SetSubnetArns(const Aws::Vector<Aws::String> & value)381     inline void SetSubnetArns(const Aws::Vector<Aws::String>& value) { m_subnetArnsHasBeenSet = true; m_subnetArns = value; }
382 
383     /**
384      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
385      * elastic network interfaces for each data transfer task. The agent that runs a
386      * task must be private. When you start a task that is associated with an agent
387      * created in a VPC, or one that has access to an IP address in a VPC, then the
388      * task is also private. In this case, DataSync creates four network interfaces for
389      * each task in your subnet. For a data transfer to work, the agent must be able to
390      * route to all these four network interfaces.</p>
391      */
SetSubnetArns(Aws::Vector<Aws::String> && value)392     inline void SetSubnetArns(Aws::Vector<Aws::String>&& value) { m_subnetArnsHasBeenSet = true; m_subnetArns = std::move(value); }
393 
394     /**
395      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
396      * elastic network interfaces for each data transfer task. The agent that runs a
397      * task must be private. When you start a task that is associated with an agent
398      * created in a VPC, or one that has access to an IP address in a VPC, then the
399      * task is also private. In this case, DataSync creates four network interfaces for
400      * each task in your subnet. For a data transfer to work, the agent must be able to
401      * route to all these four network interfaces.</p>
402      */
WithSubnetArns(const Aws::Vector<Aws::String> & value)403     inline CreateAgentRequest& WithSubnetArns(const Aws::Vector<Aws::String>& value) { SetSubnetArns(value); return *this;}
404 
405     /**
406      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
407      * elastic network interfaces for each data transfer task. The agent that runs a
408      * task must be private. When you start a task that is associated with an agent
409      * created in a VPC, or one that has access to an IP address in a VPC, then the
410      * task is also private. In this case, DataSync creates four network interfaces for
411      * each task in your subnet. For a data transfer to work, the agent must be able to
412      * route to all these four network interfaces.</p>
413      */
WithSubnetArns(Aws::Vector<Aws::String> && value)414     inline CreateAgentRequest& WithSubnetArns(Aws::Vector<Aws::String>&& value) { SetSubnetArns(std::move(value)); return *this;}
415 
416     /**
417      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
418      * elastic network interfaces for each data transfer task. The agent that runs a
419      * task must be private. When you start a task that is associated with an agent
420      * created in a VPC, or one that has access to an IP address in a VPC, then the
421      * task is also private. In this case, DataSync creates four network interfaces for
422      * each task in your subnet. For a data transfer to work, the agent must be able to
423      * route to all these four network interfaces.</p>
424      */
AddSubnetArns(const Aws::String & value)425     inline CreateAgentRequest& AddSubnetArns(const Aws::String& value) { m_subnetArnsHasBeenSet = true; m_subnetArns.push_back(value); return *this; }
426 
427     /**
428      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
429      * elastic network interfaces for each data transfer task. The agent that runs a
430      * task must be private. When you start a task that is associated with an agent
431      * created in a VPC, or one that has access to an IP address in a VPC, then the
432      * task is also private. In this case, DataSync creates four network interfaces for
433      * each task in your subnet. For a data transfer to work, the agent must be able to
434      * route to all these four network interfaces.</p>
435      */
AddSubnetArns(Aws::String && value)436     inline CreateAgentRequest& AddSubnetArns(Aws::String&& value) { m_subnetArnsHasBeenSet = true; m_subnetArns.push_back(std::move(value)); return *this; }
437 
438     /**
439      * <p>The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
440      * elastic network interfaces for each data transfer task. The agent that runs a
441      * task must be private. When you start a task that is associated with an agent
442      * created in a VPC, or one that has access to an IP address in a VPC, then the
443      * task is also private. In this case, DataSync creates four network interfaces for
444      * each task in your subnet. For a data transfer to work, the agent must be able to
445      * route to all these four network interfaces.</p>
446      */
AddSubnetArns(const char * value)447     inline CreateAgentRequest& AddSubnetArns(const char* value) { m_subnetArnsHasBeenSet = true; m_subnetArns.push_back(value); return *this; }
448 
449 
450     /**
451      * <p>The ARNs of the security groups used to protect your data transfer task
452      * subnets. See <a
453      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
454      */
GetSecurityGroupArns()455     inline const Aws::Vector<Aws::String>& GetSecurityGroupArns() const{ return m_securityGroupArns; }
456 
457     /**
458      * <p>The ARNs of the security groups used to protect your data transfer task
459      * subnets. See <a
460      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
461      */
SecurityGroupArnsHasBeenSet()462     inline bool SecurityGroupArnsHasBeenSet() const { return m_securityGroupArnsHasBeenSet; }
463 
464     /**
465      * <p>The ARNs of the security groups used to protect your data transfer task
466      * subnets. See <a
467      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
468      */
SetSecurityGroupArns(const Aws::Vector<Aws::String> & value)469     inline void SetSecurityGroupArns(const Aws::Vector<Aws::String>& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns = value; }
470 
471     /**
472      * <p>The ARNs of the security groups used to protect your data transfer task
473      * subnets. See <a
474      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
475      */
SetSecurityGroupArns(Aws::Vector<Aws::String> && value)476     inline void SetSecurityGroupArns(Aws::Vector<Aws::String>&& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns = std::move(value); }
477 
478     /**
479      * <p>The ARNs of the security groups used to protect your data transfer task
480      * subnets. See <a
481      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
482      */
WithSecurityGroupArns(const Aws::Vector<Aws::String> & value)483     inline CreateAgentRequest& WithSecurityGroupArns(const Aws::Vector<Aws::String>& value) { SetSecurityGroupArns(value); return *this;}
484 
485     /**
486      * <p>The ARNs of the security groups used to protect your data transfer task
487      * subnets. See <a
488      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
489      */
WithSecurityGroupArns(Aws::Vector<Aws::String> && value)490     inline CreateAgentRequest& WithSecurityGroupArns(Aws::Vector<Aws::String>&& value) { SetSecurityGroupArns(std::move(value)); return *this;}
491 
492     /**
493      * <p>The ARNs of the security groups used to protect your data transfer task
494      * subnets. See <a
495      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
496      */
AddSecurityGroupArns(const Aws::String & value)497     inline CreateAgentRequest& AddSecurityGroupArns(const Aws::String& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns.push_back(value); return *this; }
498 
499     /**
500      * <p>The ARNs of the security groups used to protect your data transfer task
501      * subnets. See <a
502      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
503      */
AddSecurityGroupArns(Aws::String && value)504     inline CreateAgentRequest& AddSecurityGroupArns(Aws::String&& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns.push_back(std::move(value)); return *this; }
505 
506     /**
507      * <p>The ARNs of the security groups used to protect your data transfer task
508      * subnets. See <a
509      * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.</p>
510      */
AddSecurityGroupArns(const char * value)511     inline CreateAgentRequest& AddSecurityGroupArns(const char* value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns.push_back(value); return *this; }
512 
513   private:
514 
515     Aws::String m_activationKey;
516     bool m_activationKeyHasBeenSet;
517 
518     Aws::String m_agentName;
519     bool m_agentNameHasBeenSet;
520 
521     Aws::Vector<TagListEntry> m_tags;
522     bool m_tagsHasBeenSet;
523 
524     Aws::String m_vpcEndpointId;
525     bool m_vpcEndpointIdHasBeenSet;
526 
527     Aws::Vector<Aws::String> m_subnetArns;
528     bool m_subnetArnsHasBeenSet;
529 
530     Aws::Vector<Aws::String> m_securityGroupArns;
531     bool m_securityGroupArnsHasBeenSet;
532   };
533 
534 } // namespace Model
535 } // namespace DataSync
536 } // namespace Aws
537