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/awstransfer/Transfer_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/awstransfer/model/ProtocolDetails.h>
10 #include <aws/awstransfer/model/Domain.h>
11 #include <aws/awstransfer/model/EndpointDetails.h>
12 #include <aws/awstransfer/model/EndpointType.h>
13 #include <aws/awstransfer/model/IdentityProviderDetails.h>
14 #include <aws/awstransfer/model/IdentityProviderType.h>
15 #include <aws/core/utils/memory/stl/AWSVector.h>
16 #include <aws/awstransfer/model/State.h>
17 #include <aws/awstransfer/model/WorkflowDetails.h>
18 #include <aws/awstransfer/model/Protocol.h>
19 #include <aws/awstransfer/model/Tag.h>
20 #include <utility>
21 
22 namespace Aws
23 {
24 namespace Utils
25 {
26 namespace Json
27 {
28   class JsonValue;
29   class JsonView;
30 } // namespace Json
31 } // namespace Utils
32 namespace Transfer
33 {
34 namespace Model
35 {
36 
37   /**
38    * <p>Describes the properties of a file transfer protocol-enabled server that was
39    * specified.</p><p><h3>See Also:</h3>   <a
40    * href="http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedServer">AWS
41    * API Reference</a></p>
42    */
43   class AWS_TRANSFER_API DescribedServer
44   {
45   public:
46     DescribedServer();
47     DescribedServer(Aws::Utils::Json::JsonView jsonValue);
48     DescribedServer& operator=(Aws::Utils::Json::JsonView jsonValue);
49     Aws::Utils::Json::JsonValue Jsonize() const;
50 
51 
52     /**
53      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
54      */
GetArn()55     inline const Aws::String& GetArn() const{ return m_arn; }
56 
57     /**
58      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
59      */
ArnHasBeenSet()60     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
61 
62     /**
63      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
64      */
SetArn(const Aws::String & value)65     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
66 
67     /**
68      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
69      */
SetArn(Aws::String && value)70     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
71 
72     /**
73      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
74      */
SetArn(const char * value)75     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
76 
77     /**
78      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
79      */
WithArn(const Aws::String & value)80     inline DescribedServer& WithArn(const Aws::String& value) { SetArn(value); return *this;}
81 
82     /**
83      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
84      */
WithArn(Aws::String && value)85     inline DescribedServer& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
86 
87     /**
88      * <p>Specifies the unique Amazon Resource Name (ARN) of the server.</p>
89      */
WithArn(const char * value)90     inline DescribedServer& WithArn(const char* value) { SetArn(value); return *this;}
91 
92 
93     /**
94      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
95      * certificate. Required when <code>Protocols</code> is set to
96      * <code>FTPS</code>.</p>
97      */
GetCertificate()98     inline const Aws::String& GetCertificate() const{ return m_certificate; }
99 
100     /**
101      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
102      * certificate. Required when <code>Protocols</code> is set to
103      * <code>FTPS</code>.</p>
104      */
CertificateHasBeenSet()105     inline bool CertificateHasBeenSet() const { return m_certificateHasBeenSet; }
106 
107     /**
108      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
109      * certificate. Required when <code>Protocols</code> is set to
110      * <code>FTPS</code>.</p>
111      */
SetCertificate(const Aws::String & value)112     inline void SetCertificate(const Aws::String& value) { m_certificateHasBeenSet = true; m_certificate = value; }
113 
114     /**
115      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
116      * certificate. Required when <code>Protocols</code> is set to
117      * <code>FTPS</code>.</p>
118      */
SetCertificate(Aws::String && value)119     inline void SetCertificate(Aws::String&& value) { m_certificateHasBeenSet = true; m_certificate = std::move(value); }
120 
121     /**
122      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
123      * certificate. Required when <code>Protocols</code> is set to
124      * <code>FTPS</code>.</p>
125      */
SetCertificate(const char * value)126     inline void SetCertificate(const char* value) { m_certificateHasBeenSet = true; m_certificate.assign(value); }
127 
128     /**
129      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
130      * certificate. Required when <code>Protocols</code> is set to
131      * <code>FTPS</code>.</p>
132      */
WithCertificate(const Aws::String & value)133     inline DescribedServer& WithCertificate(const Aws::String& value) { SetCertificate(value); return *this;}
134 
135     /**
136      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
137      * certificate. Required when <code>Protocols</code> is set to
138      * <code>FTPS</code>.</p>
139      */
WithCertificate(Aws::String && value)140     inline DescribedServer& WithCertificate(Aws::String&& value) { SetCertificate(std::move(value)); return *this;}
141 
142     /**
143      * <p>Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM)
144      * certificate. Required when <code>Protocols</code> is set to
145      * <code>FTPS</code>.</p>
146      */
WithCertificate(const char * value)147     inline DescribedServer& WithCertificate(const char* value) { SetCertificate(value); return *this;}
148 
149 
150     /**
151      * <p> The protocol settings that are configured for your server. </p> <p> Use the
152      * <code>PassiveIp</code> parameter to indicate passive mode. Enter a single
153      * dotted-quad IPv4 address, such as the external IP address of a firewall, router,
154      * or load balancer. </p>
155      */
GetProtocolDetails()156     inline const ProtocolDetails& GetProtocolDetails() const{ return m_protocolDetails; }
157 
158     /**
159      * <p> The protocol settings that are configured for your server. </p> <p> Use the
160      * <code>PassiveIp</code> parameter to indicate passive mode. Enter a single
161      * dotted-quad IPv4 address, such as the external IP address of a firewall, router,
162      * or load balancer. </p>
163      */
ProtocolDetailsHasBeenSet()164     inline bool ProtocolDetailsHasBeenSet() const { return m_protocolDetailsHasBeenSet; }
165 
166     /**
167      * <p> The protocol settings that are configured for your server. </p> <p> Use the
168      * <code>PassiveIp</code> parameter to indicate passive mode. Enter a single
169      * dotted-quad IPv4 address, such as the external IP address of a firewall, router,
170      * or load balancer. </p>
171      */
SetProtocolDetails(const ProtocolDetails & value)172     inline void SetProtocolDetails(const ProtocolDetails& value) { m_protocolDetailsHasBeenSet = true; m_protocolDetails = value; }
173 
174     /**
175      * <p> The protocol settings that are configured for your server. </p> <p> Use the
176      * <code>PassiveIp</code> parameter to indicate passive mode. Enter a single
177      * dotted-quad IPv4 address, such as the external IP address of a firewall, router,
178      * or load balancer. </p>
179      */
SetProtocolDetails(ProtocolDetails && value)180     inline void SetProtocolDetails(ProtocolDetails&& value) { m_protocolDetailsHasBeenSet = true; m_protocolDetails = std::move(value); }
181 
182     /**
183      * <p> The protocol settings that are configured for your server. </p> <p> Use the
184      * <code>PassiveIp</code> parameter to indicate passive mode. Enter a single
185      * dotted-quad IPv4 address, such as the external IP address of a firewall, router,
186      * or load balancer. </p>
187      */
WithProtocolDetails(const ProtocolDetails & value)188     inline DescribedServer& WithProtocolDetails(const ProtocolDetails& value) { SetProtocolDetails(value); return *this;}
189 
190     /**
191      * <p> The protocol settings that are configured for your server. </p> <p> Use the
192      * <code>PassiveIp</code> parameter to indicate passive mode. Enter a single
193      * dotted-quad IPv4 address, such as the external IP address of a firewall, router,
194      * or load balancer. </p>
195      */
WithProtocolDetails(ProtocolDetails && value)196     inline DescribedServer& WithProtocolDetails(ProtocolDetails&& value) { SetProtocolDetails(std::move(value)); return *this;}
197 
198 
199     /**
200      * <p>Specifies the domain of the storage system that is used for file
201      * transfers.</p>
202      */
GetDomain()203     inline const Domain& GetDomain() const{ return m_domain; }
204 
205     /**
206      * <p>Specifies the domain of the storage system that is used for file
207      * transfers.</p>
208      */
DomainHasBeenSet()209     inline bool DomainHasBeenSet() const { return m_domainHasBeenSet; }
210 
211     /**
212      * <p>Specifies the domain of the storage system that is used for file
213      * transfers.</p>
214      */
SetDomain(const Domain & value)215     inline void SetDomain(const Domain& value) { m_domainHasBeenSet = true; m_domain = value; }
216 
217     /**
218      * <p>Specifies the domain of the storage system that is used for file
219      * transfers.</p>
220      */
SetDomain(Domain && value)221     inline void SetDomain(Domain&& value) { m_domainHasBeenSet = true; m_domain = std::move(value); }
222 
223     /**
224      * <p>Specifies the domain of the storage system that is used for file
225      * transfers.</p>
226      */
WithDomain(const Domain & value)227     inline DescribedServer& WithDomain(const Domain& value) { SetDomain(value); return *this;}
228 
229     /**
230      * <p>Specifies the domain of the storage system that is used for file
231      * transfers.</p>
232      */
WithDomain(Domain && value)233     inline DescribedServer& WithDomain(Domain&& value) { SetDomain(std::move(value)); return *this;}
234 
235 
236     /**
237      * <p>The virtual private cloud (VPC) endpoint settings that are configured for
238      * your server. When you host your endpoint within your VPC, you can make it
239      * accessible only to resources within your VPC, or you can attach Elastic IP
240      * addresses and make it accessible to clients over the internet. Your VPC's
241      * default security groups are automatically assigned to your endpoint.</p>
242      */
GetEndpointDetails()243     inline const EndpointDetails& GetEndpointDetails() const{ return m_endpointDetails; }
244 
245     /**
246      * <p>The virtual private cloud (VPC) endpoint settings that are configured for
247      * your server. When you host your endpoint within your VPC, you can make it
248      * accessible only to resources within your VPC, or you can attach Elastic IP
249      * addresses and make it accessible to clients over the internet. Your VPC's
250      * default security groups are automatically assigned to your endpoint.</p>
251      */
EndpointDetailsHasBeenSet()252     inline bool EndpointDetailsHasBeenSet() const { return m_endpointDetailsHasBeenSet; }
253 
254     /**
255      * <p>The virtual private cloud (VPC) endpoint settings that are configured for
256      * your server. When you host your endpoint within your VPC, you can make it
257      * accessible only to resources within your VPC, or you can attach Elastic IP
258      * addresses and make it accessible to clients over the internet. Your VPC's
259      * default security groups are automatically assigned to your endpoint.</p>
260      */
SetEndpointDetails(const EndpointDetails & value)261     inline void SetEndpointDetails(const EndpointDetails& value) { m_endpointDetailsHasBeenSet = true; m_endpointDetails = value; }
262 
263     /**
264      * <p>The virtual private cloud (VPC) endpoint settings that are configured for
265      * your server. When you host your endpoint within your VPC, you can make it
266      * accessible only to resources within your VPC, or you can attach Elastic IP
267      * addresses and make it accessible to clients over the internet. Your VPC's
268      * default security groups are automatically assigned to your endpoint.</p>
269      */
SetEndpointDetails(EndpointDetails && value)270     inline void SetEndpointDetails(EndpointDetails&& value) { m_endpointDetailsHasBeenSet = true; m_endpointDetails = std::move(value); }
271 
272     /**
273      * <p>The virtual private cloud (VPC) endpoint settings that are configured for
274      * your server. When you host your endpoint within your VPC, you can make it
275      * accessible only to resources within your VPC, or you can attach Elastic IP
276      * addresses and make it accessible to clients over the internet. Your VPC's
277      * default security groups are automatically assigned to your endpoint.</p>
278      */
WithEndpointDetails(const EndpointDetails & value)279     inline DescribedServer& WithEndpointDetails(const EndpointDetails& value) { SetEndpointDetails(value); return *this;}
280 
281     /**
282      * <p>The virtual private cloud (VPC) endpoint settings that are configured for
283      * your server. When you host your endpoint within your VPC, you can make it
284      * accessible only to resources within your VPC, or you can attach Elastic IP
285      * addresses and make it accessible to clients over the internet. Your VPC's
286      * default security groups are automatically assigned to your endpoint.</p>
287      */
WithEndpointDetails(EndpointDetails && value)288     inline DescribedServer& WithEndpointDetails(EndpointDetails&& value) { SetEndpointDetails(std::move(value)); return *this;}
289 
290 
291     /**
292      * <p>Defines the type of endpoint that your server is connected to. If your server
293      * is connected to a VPC endpoint, your server isn't accessible over the public
294      * internet.</p>
295      */
GetEndpointType()296     inline const EndpointType& GetEndpointType() const{ return m_endpointType; }
297 
298     /**
299      * <p>Defines the type of endpoint that your server is connected to. If your server
300      * is connected to a VPC endpoint, your server isn't accessible over the public
301      * internet.</p>
302      */
EndpointTypeHasBeenSet()303     inline bool EndpointTypeHasBeenSet() const { return m_endpointTypeHasBeenSet; }
304 
305     /**
306      * <p>Defines the type of endpoint that your server is connected to. If your server
307      * is connected to a VPC endpoint, your server isn't accessible over the public
308      * internet.</p>
309      */
SetEndpointType(const EndpointType & value)310     inline void SetEndpointType(const EndpointType& value) { m_endpointTypeHasBeenSet = true; m_endpointType = value; }
311 
312     /**
313      * <p>Defines the type of endpoint that your server is connected to. If your server
314      * is connected to a VPC endpoint, your server isn't accessible over the public
315      * internet.</p>
316      */
SetEndpointType(EndpointType && value)317     inline void SetEndpointType(EndpointType&& value) { m_endpointTypeHasBeenSet = true; m_endpointType = std::move(value); }
318 
319     /**
320      * <p>Defines the type of endpoint that your server is connected to. If your server
321      * is connected to a VPC endpoint, your server isn't accessible over the public
322      * internet.</p>
323      */
WithEndpointType(const EndpointType & value)324     inline DescribedServer& WithEndpointType(const EndpointType& value) { SetEndpointType(value); return *this;}
325 
326     /**
327      * <p>Defines the type of endpoint that your server is connected to. If your server
328      * is connected to a VPC endpoint, your server isn't accessible over the public
329      * internet.</p>
330      */
WithEndpointType(EndpointType && value)331     inline DescribedServer& WithEndpointType(EndpointType&& value) { SetEndpointType(std::move(value)); return *this;}
332 
333 
334     /**
335      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
336      * This value is equivalent to the output of the <code>ssh-keygen -l -f
337      * my-new-server-key</code> command.</p>
338      */
GetHostKeyFingerprint()339     inline const Aws::String& GetHostKeyFingerprint() const{ return m_hostKeyFingerprint; }
340 
341     /**
342      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
343      * This value is equivalent to the output of the <code>ssh-keygen -l -f
344      * my-new-server-key</code> command.</p>
345      */
HostKeyFingerprintHasBeenSet()346     inline bool HostKeyFingerprintHasBeenSet() const { return m_hostKeyFingerprintHasBeenSet; }
347 
348     /**
349      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
350      * This value is equivalent to the output of the <code>ssh-keygen -l -f
351      * my-new-server-key</code> command.</p>
352      */
SetHostKeyFingerprint(const Aws::String & value)353     inline void SetHostKeyFingerprint(const Aws::String& value) { m_hostKeyFingerprintHasBeenSet = true; m_hostKeyFingerprint = value; }
354 
355     /**
356      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
357      * This value is equivalent to the output of the <code>ssh-keygen -l -f
358      * my-new-server-key</code> command.</p>
359      */
SetHostKeyFingerprint(Aws::String && value)360     inline void SetHostKeyFingerprint(Aws::String&& value) { m_hostKeyFingerprintHasBeenSet = true; m_hostKeyFingerprint = std::move(value); }
361 
362     /**
363      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
364      * This value is equivalent to the output of the <code>ssh-keygen -l -f
365      * my-new-server-key</code> command.</p>
366      */
SetHostKeyFingerprint(const char * value)367     inline void SetHostKeyFingerprint(const char* value) { m_hostKeyFingerprintHasBeenSet = true; m_hostKeyFingerprint.assign(value); }
368 
369     /**
370      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
371      * This value is equivalent to the output of the <code>ssh-keygen -l -f
372      * my-new-server-key</code> command.</p>
373      */
WithHostKeyFingerprint(const Aws::String & value)374     inline DescribedServer& WithHostKeyFingerprint(const Aws::String& value) { SetHostKeyFingerprint(value); return *this;}
375 
376     /**
377      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
378      * This value is equivalent to the output of the <code>ssh-keygen -l -f
379      * my-new-server-key</code> command.</p>
380      */
WithHostKeyFingerprint(Aws::String && value)381     inline DescribedServer& WithHostKeyFingerprint(Aws::String&& value) { SetHostKeyFingerprint(std::move(value)); return *this;}
382 
383     /**
384      * <p>Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
385      * This value is equivalent to the output of the <code>ssh-keygen -l -f
386      * my-new-server-key</code> command.</p>
387      */
WithHostKeyFingerprint(const char * value)388     inline DescribedServer& WithHostKeyFingerprint(const char* value) { SetHostKeyFingerprint(value); return *this;}
389 
390 
391     /**
392      * <p>Specifies information to call a customer-supplied authentication API. This
393      * field is not populated when the <code>IdentityProviderType</code> of a server is
394      * <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.</p>
395      */
GetIdentityProviderDetails()396     inline const IdentityProviderDetails& GetIdentityProviderDetails() const{ return m_identityProviderDetails; }
397 
398     /**
399      * <p>Specifies information to call a customer-supplied authentication API. This
400      * field is not populated when the <code>IdentityProviderType</code> of a server is
401      * <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.</p>
402      */
IdentityProviderDetailsHasBeenSet()403     inline bool IdentityProviderDetailsHasBeenSet() const { return m_identityProviderDetailsHasBeenSet; }
404 
405     /**
406      * <p>Specifies information to call a customer-supplied authentication API. This
407      * field is not populated when the <code>IdentityProviderType</code> of a server is
408      * <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.</p>
409      */
SetIdentityProviderDetails(const IdentityProviderDetails & value)410     inline void SetIdentityProviderDetails(const IdentityProviderDetails& value) { m_identityProviderDetailsHasBeenSet = true; m_identityProviderDetails = value; }
411 
412     /**
413      * <p>Specifies information to call a customer-supplied authentication API. This
414      * field is not populated when the <code>IdentityProviderType</code> of a server is
415      * <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.</p>
416      */
SetIdentityProviderDetails(IdentityProviderDetails && value)417     inline void SetIdentityProviderDetails(IdentityProviderDetails&& value) { m_identityProviderDetailsHasBeenSet = true; m_identityProviderDetails = std::move(value); }
418 
419     /**
420      * <p>Specifies information to call a customer-supplied authentication API. This
421      * field is not populated when the <code>IdentityProviderType</code> of a server is
422      * <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.</p>
423      */
WithIdentityProviderDetails(const IdentityProviderDetails & value)424     inline DescribedServer& WithIdentityProviderDetails(const IdentityProviderDetails& value) { SetIdentityProviderDetails(value); return *this;}
425 
426     /**
427      * <p>Specifies information to call a customer-supplied authentication API. This
428      * field is not populated when the <code>IdentityProviderType</code> of a server is
429      * <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.</p>
430      */
WithIdentityProviderDetails(IdentityProviderDetails && value)431     inline DescribedServer& WithIdentityProviderDetails(IdentityProviderDetails&& value) { SetIdentityProviderDetails(std::move(value)); return *this;}
432 
433 
434     /**
435      * <p>Specifies the mode of authentication for a server. The default value is
436      * <code>SERVICE_MANAGED</code>, which allows you to store and access user
437      * credentials within the Amazon Web Services Transfer Family service.</p> <p>Use
438      * <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups
439      * in Amazon Web Services Managed Active Directory or Microsoft Active Directory in
440      * your on-premises environment or in Amazon Web Services using AD Connectors. This
441      * option also requires you to provide a Directory ID using the
442      * <code>IdentityProviderDetails</code> parameter.</p> <p>Use the
443      * <code>API_GATEWAY</code> value to integrate with an identity provider of your
444      * choosing. The <code>API_GATEWAY</code> setting requires you to provide an API
445      * Gateway endpoint URL to call for authentication using the
446      * <code>IdentityProviderDetails</code> parameter.</p>
447      */
GetIdentityProviderType()448     inline const IdentityProviderType& GetIdentityProviderType() const{ return m_identityProviderType; }
449 
450     /**
451      * <p>Specifies the mode of authentication for a server. The default value is
452      * <code>SERVICE_MANAGED</code>, which allows you to store and access user
453      * credentials within the Amazon Web Services Transfer Family service.</p> <p>Use
454      * <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups
455      * in Amazon Web Services Managed Active Directory or Microsoft Active Directory in
456      * your on-premises environment or in Amazon Web Services using AD Connectors. This
457      * option also requires you to provide a Directory ID using the
458      * <code>IdentityProviderDetails</code> parameter.</p> <p>Use the
459      * <code>API_GATEWAY</code> value to integrate with an identity provider of your
460      * choosing. The <code>API_GATEWAY</code> setting requires you to provide an API
461      * Gateway endpoint URL to call for authentication using the
462      * <code>IdentityProviderDetails</code> parameter.</p>
463      */
IdentityProviderTypeHasBeenSet()464     inline bool IdentityProviderTypeHasBeenSet() const { return m_identityProviderTypeHasBeenSet; }
465 
466     /**
467      * <p>Specifies the mode of authentication for a server. The default value is
468      * <code>SERVICE_MANAGED</code>, which allows you to store and access user
469      * credentials within the Amazon Web Services Transfer Family service.</p> <p>Use
470      * <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups
471      * in Amazon Web Services Managed Active Directory or Microsoft Active Directory in
472      * your on-premises environment or in Amazon Web Services using AD Connectors. This
473      * option also requires you to provide a Directory ID using the
474      * <code>IdentityProviderDetails</code> parameter.</p> <p>Use the
475      * <code>API_GATEWAY</code> value to integrate with an identity provider of your
476      * choosing. The <code>API_GATEWAY</code> setting requires you to provide an API
477      * Gateway endpoint URL to call for authentication using the
478      * <code>IdentityProviderDetails</code> parameter.</p>
479      */
SetIdentityProviderType(const IdentityProviderType & value)480     inline void SetIdentityProviderType(const IdentityProviderType& value) { m_identityProviderTypeHasBeenSet = true; m_identityProviderType = value; }
481 
482     /**
483      * <p>Specifies the mode of authentication for a server. The default value is
484      * <code>SERVICE_MANAGED</code>, which allows you to store and access user
485      * credentials within the Amazon Web Services Transfer Family service.</p> <p>Use
486      * <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups
487      * in Amazon Web Services Managed Active Directory or Microsoft Active Directory in
488      * your on-premises environment or in Amazon Web Services using AD Connectors. This
489      * option also requires you to provide a Directory ID using the
490      * <code>IdentityProviderDetails</code> parameter.</p> <p>Use the
491      * <code>API_GATEWAY</code> value to integrate with an identity provider of your
492      * choosing. The <code>API_GATEWAY</code> setting requires you to provide an API
493      * Gateway endpoint URL to call for authentication using the
494      * <code>IdentityProviderDetails</code> parameter.</p>
495      */
SetIdentityProviderType(IdentityProviderType && value)496     inline void SetIdentityProviderType(IdentityProviderType&& value) { m_identityProviderTypeHasBeenSet = true; m_identityProviderType = std::move(value); }
497 
498     /**
499      * <p>Specifies the mode of authentication for a server. The default value is
500      * <code>SERVICE_MANAGED</code>, which allows you to store and access user
501      * credentials within the Amazon Web Services Transfer Family service.</p> <p>Use
502      * <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups
503      * in Amazon Web Services Managed Active Directory or Microsoft Active Directory in
504      * your on-premises environment or in Amazon Web Services using AD Connectors. This
505      * option also requires you to provide a Directory ID using the
506      * <code>IdentityProviderDetails</code> parameter.</p> <p>Use the
507      * <code>API_GATEWAY</code> value to integrate with an identity provider of your
508      * choosing. The <code>API_GATEWAY</code> setting requires you to provide an API
509      * Gateway endpoint URL to call for authentication using the
510      * <code>IdentityProviderDetails</code> parameter.</p>
511      */
WithIdentityProviderType(const IdentityProviderType & value)512     inline DescribedServer& WithIdentityProviderType(const IdentityProviderType& value) { SetIdentityProviderType(value); return *this;}
513 
514     /**
515      * <p>Specifies the mode of authentication for a server. The default value is
516      * <code>SERVICE_MANAGED</code>, which allows you to store and access user
517      * credentials within the Amazon Web Services Transfer Family service.</p> <p>Use
518      * <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups
519      * in Amazon Web Services Managed Active Directory or Microsoft Active Directory in
520      * your on-premises environment or in Amazon Web Services using AD Connectors. This
521      * option also requires you to provide a Directory ID using the
522      * <code>IdentityProviderDetails</code> parameter.</p> <p>Use the
523      * <code>API_GATEWAY</code> value to integrate with an identity provider of your
524      * choosing. The <code>API_GATEWAY</code> setting requires you to provide an API
525      * Gateway endpoint URL to call for authentication using the
526      * <code>IdentityProviderDetails</code> parameter.</p>
527      */
WithIdentityProviderType(IdentityProviderType && value)528     inline DescribedServer& WithIdentityProviderType(IdentityProviderType&& value) { SetIdentityProviderType(std::move(value)); return *this;}
529 
530 
531     /**
532      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
533      * and Access Management (IAM) role that allows a server to turn on Amazon
534      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
535      * can be viewed in your CloudWatch logs.</p>
536      */
GetLoggingRole()537     inline const Aws::String& GetLoggingRole() const{ return m_loggingRole; }
538 
539     /**
540      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
541      * and Access Management (IAM) role that allows a server to turn on Amazon
542      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
543      * can be viewed in your CloudWatch logs.</p>
544      */
LoggingRoleHasBeenSet()545     inline bool LoggingRoleHasBeenSet() const { return m_loggingRoleHasBeenSet; }
546 
547     /**
548      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
549      * and Access Management (IAM) role that allows a server to turn on Amazon
550      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
551      * can be viewed in your CloudWatch logs.</p>
552      */
SetLoggingRole(const Aws::String & value)553     inline void SetLoggingRole(const Aws::String& value) { m_loggingRoleHasBeenSet = true; m_loggingRole = value; }
554 
555     /**
556      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
557      * and Access Management (IAM) role that allows a server to turn on Amazon
558      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
559      * can be viewed in your CloudWatch logs.</p>
560      */
SetLoggingRole(Aws::String && value)561     inline void SetLoggingRole(Aws::String&& value) { m_loggingRoleHasBeenSet = true; m_loggingRole = std::move(value); }
562 
563     /**
564      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
565      * and Access Management (IAM) role that allows a server to turn on Amazon
566      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
567      * can be viewed in your CloudWatch logs.</p>
568      */
SetLoggingRole(const char * value)569     inline void SetLoggingRole(const char* value) { m_loggingRoleHasBeenSet = true; m_loggingRole.assign(value); }
570 
571     /**
572      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
573      * and Access Management (IAM) role that allows a server to turn on Amazon
574      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
575      * can be viewed in your CloudWatch logs.</p>
576      */
WithLoggingRole(const Aws::String & value)577     inline DescribedServer& WithLoggingRole(const Aws::String& value) { SetLoggingRole(value); return *this;}
578 
579     /**
580      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
581      * and Access Management (IAM) role that allows a server to turn on Amazon
582      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
583      * can be viewed in your CloudWatch logs.</p>
584      */
WithLoggingRole(Aws::String && value)585     inline DescribedServer& WithLoggingRole(Aws::String&& value) { SetLoggingRole(std::move(value)); return *this;}
586 
587     /**
588      * <p>Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
589      * and Access Management (IAM) role that allows a server to turn on Amazon
590      * CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity
591      * can be viewed in your CloudWatch logs.</p>
592      */
WithLoggingRole(const char * value)593     inline DescribedServer& WithLoggingRole(const char* value) { SetLoggingRole(value); return *this;}
594 
595 
596     /**
597      * <p>Specifies the file transfer protocol or protocols over which your file
598      * transfer protocol client can connect to your server's endpoint. The available
599      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
600      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
601      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
602      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
603      * transfer</p> </li> </ul>
604      */
GetProtocols()605     inline const Aws::Vector<Protocol>& GetProtocols() const{ return m_protocols; }
606 
607     /**
608      * <p>Specifies the file transfer protocol or protocols over which your file
609      * transfer protocol client can connect to your server's endpoint. The available
610      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
611      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
612      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
613      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
614      * transfer</p> </li> </ul>
615      */
ProtocolsHasBeenSet()616     inline bool ProtocolsHasBeenSet() const { return m_protocolsHasBeenSet; }
617 
618     /**
619      * <p>Specifies the file transfer protocol or protocols over which your file
620      * transfer protocol client can connect to your server's endpoint. The available
621      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
622      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
623      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
624      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
625      * transfer</p> </li> </ul>
626      */
SetProtocols(const Aws::Vector<Protocol> & value)627     inline void SetProtocols(const Aws::Vector<Protocol>& value) { m_protocolsHasBeenSet = true; m_protocols = value; }
628 
629     /**
630      * <p>Specifies the file transfer protocol or protocols over which your file
631      * transfer protocol client can connect to your server's endpoint. The available
632      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
633      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
634      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
635      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
636      * transfer</p> </li> </ul>
637      */
SetProtocols(Aws::Vector<Protocol> && value)638     inline void SetProtocols(Aws::Vector<Protocol>&& value) { m_protocolsHasBeenSet = true; m_protocols = std::move(value); }
639 
640     /**
641      * <p>Specifies the file transfer protocol or protocols over which your file
642      * transfer protocol client can connect to your server's endpoint. The available
643      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
644      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
645      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
646      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
647      * transfer</p> </li> </ul>
648      */
WithProtocols(const Aws::Vector<Protocol> & value)649     inline DescribedServer& WithProtocols(const Aws::Vector<Protocol>& value) { SetProtocols(value); return *this;}
650 
651     /**
652      * <p>Specifies the file transfer protocol or protocols over which your file
653      * transfer protocol client can connect to your server's endpoint. The available
654      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
655      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
656      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
657      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
658      * transfer</p> </li> </ul>
659      */
WithProtocols(Aws::Vector<Protocol> && value)660     inline DescribedServer& WithProtocols(Aws::Vector<Protocol>&& value) { SetProtocols(std::move(value)); return *this;}
661 
662     /**
663      * <p>Specifies the file transfer protocol or protocols over which your file
664      * transfer protocol client can connect to your server's endpoint. The available
665      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
666      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
667      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
668      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
669      * transfer</p> </li> </ul>
670      */
AddProtocols(const Protocol & value)671     inline DescribedServer& AddProtocols(const Protocol& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(value); return *this; }
672 
673     /**
674      * <p>Specifies the file transfer protocol or protocols over which your file
675      * transfer protocol client can connect to your server's endpoint. The available
676      * protocols are:</p> <ul> <li> <p> <code>SFTP</code> (Secure Shell (SSH) File
677      * Transfer Protocol): File transfer over SSH</p> </li> <li> <p> <code>FTPS</code>
678      * (File Transfer Protocol Secure): File transfer with TLS encryption</p> </li>
679      * <li> <p> <code>FTP</code> (File Transfer Protocol): Unencrypted file
680      * transfer</p> </li> </ul>
681      */
AddProtocols(Protocol && value)682     inline DescribedServer& AddProtocols(Protocol&& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(std::move(value)); return *this; }
683 
684 
685     /**
686      * <p>Specifies the name of the security policy that is attached to the server.</p>
687      */
GetSecurityPolicyName()688     inline const Aws::String& GetSecurityPolicyName() const{ return m_securityPolicyName; }
689 
690     /**
691      * <p>Specifies the name of the security policy that is attached to the server.</p>
692      */
SecurityPolicyNameHasBeenSet()693     inline bool SecurityPolicyNameHasBeenSet() const { return m_securityPolicyNameHasBeenSet; }
694 
695     /**
696      * <p>Specifies the name of the security policy that is attached to the server.</p>
697      */
SetSecurityPolicyName(const Aws::String & value)698     inline void SetSecurityPolicyName(const Aws::String& value) { m_securityPolicyNameHasBeenSet = true; m_securityPolicyName = value; }
699 
700     /**
701      * <p>Specifies the name of the security policy that is attached to the server.</p>
702      */
SetSecurityPolicyName(Aws::String && value)703     inline void SetSecurityPolicyName(Aws::String&& value) { m_securityPolicyNameHasBeenSet = true; m_securityPolicyName = std::move(value); }
704 
705     /**
706      * <p>Specifies the name of the security policy that is attached to the server.</p>
707      */
SetSecurityPolicyName(const char * value)708     inline void SetSecurityPolicyName(const char* value) { m_securityPolicyNameHasBeenSet = true; m_securityPolicyName.assign(value); }
709 
710     /**
711      * <p>Specifies the name of the security policy that is attached to the server.</p>
712      */
WithSecurityPolicyName(const Aws::String & value)713     inline DescribedServer& WithSecurityPolicyName(const Aws::String& value) { SetSecurityPolicyName(value); return *this;}
714 
715     /**
716      * <p>Specifies the name of the security policy that is attached to the server.</p>
717      */
WithSecurityPolicyName(Aws::String && value)718     inline DescribedServer& WithSecurityPolicyName(Aws::String&& value) { SetSecurityPolicyName(std::move(value)); return *this;}
719 
720     /**
721      * <p>Specifies the name of the security policy that is attached to the server.</p>
722      */
WithSecurityPolicyName(const char * value)723     inline DescribedServer& WithSecurityPolicyName(const char* value) { SetSecurityPolicyName(value); return *this;}
724 
725 
726     /**
727      * <p>Specifies the unique system-assigned identifier for a server that you
728      * instantiate.</p>
729      */
GetServerId()730     inline const Aws::String& GetServerId() const{ return m_serverId; }
731 
732     /**
733      * <p>Specifies the unique system-assigned identifier for a server that you
734      * instantiate.</p>
735      */
ServerIdHasBeenSet()736     inline bool ServerIdHasBeenSet() const { return m_serverIdHasBeenSet; }
737 
738     /**
739      * <p>Specifies the unique system-assigned identifier for a server that you
740      * instantiate.</p>
741      */
SetServerId(const Aws::String & value)742     inline void SetServerId(const Aws::String& value) { m_serverIdHasBeenSet = true; m_serverId = value; }
743 
744     /**
745      * <p>Specifies the unique system-assigned identifier for a server that you
746      * instantiate.</p>
747      */
SetServerId(Aws::String && value)748     inline void SetServerId(Aws::String&& value) { m_serverIdHasBeenSet = true; m_serverId = std::move(value); }
749 
750     /**
751      * <p>Specifies the unique system-assigned identifier for a server that you
752      * instantiate.</p>
753      */
SetServerId(const char * value)754     inline void SetServerId(const char* value) { m_serverIdHasBeenSet = true; m_serverId.assign(value); }
755 
756     /**
757      * <p>Specifies the unique system-assigned identifier for a server that you
758      * instantiate.</p>
759      */
WithServerId(const Aws::String & value)760     inline DescribedServer& WithServerId(const Aws::String& value) { SetServerId(value); return *this;}
761 
762     /**
763      * <p>Specifies the unique system-assigned identifier for a server that you
764      * instantiate.</p>
765      */
WithServerId(Aws::String && value)766     inline DescribedServer& WithServerId(Aws::String&& value) { SetServerId(std::move(value)); return *this;}
767 
768     /**
769      * <p>Specifies the unique system-assigned identifier for a server that you
770      * instantiate.</p>
771      */
WithServerId(const char * value)772     inline DescribedServer& WithServerId(const char* value) { SetServerId(value); return *this;}
773 
774 
775     /**
776      * <p>Specifies the condition of a server for the server that was described. A
777      * value of <code>ONLINE</code> indicates that the server can accept jobs and
778      * transfer files. A <code>State</code> value of <code>OFFLINE</code> means that
779      * the server cannot perform file transfer operations.</p> <p>The states of
780      * <code>STARTING</code> and <code>STOPPING</code> indicate that the server is in
781      * an intermediate state, either not fully able to respond, or not fully offline.
782      * The values of <code>START_FAILED</code> or <code>STOP_FAILED</code> can indicate
783      * an error condition.</p>
784      */
GetState()785     inline const State& GetState() const{ return m_state; }
786 
787     /**
788      * <p>Specifies the condition of a server for the server that was described. A
789      * value of <code>ONLINE</code> indicates that the server can accept jobs and
790      * transfer files. A <code>State</code> value of <code>OFFLINE</code> means that
791      * the server cannot perform file transfer operations.</p> <p>The states of
792      * <code>STARTING</code> and <code>STOPPING</code> indicate that the server is in
793      * an intermediate state, either not fully able to respond, or not fully offline.
794      * The values of <code>START_FAILED</code> or <code>STOP_FAILED</code> can indicate
795      * an error condition.</p>
796      */
StateHasBeenSet()797     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
798 
799     /**
800      * <p>Specifies the condition of a server for the server that was described. A
801      * value of <code>ONLINE</code> indicates that the server can accept jobs and
802      * transfer files. A <code>State</code> value of <code>OFFLINE</code> means that
803      * the server cannot perform file transfer operations.</p> <p>The states of
804      * <code>STARTING</code> and <code>STOPPING</code> indicate that the server is in
805      * an intermediate state, either not fully able to respond, or not fully offline.
806      * The values of <code>START_FAILED</code> or <code>STOP_FAILED</code> can indicate
807      * an error condition.</p>
808      */
SetState(const State & value)809     inline void SetState(const State& value) { m_stateHasBeenSet = true; m_state = value; }
810 
811     /**
812      * <p>Specifies the condition of a server for the server that was described. A
813      * value of <code>ONLINE</code> indicates that the server can accept jobs and
814      * transfer files. A <code>State</code> value of <code>OFFLINE</code> means that
815      * the server cannot perform file transfer operations.</p> <p>The states of
816      * <code>STARTING</code> and <code>STOPPING</code> indicate that the server is in
817      * an intermediate state, either not fully able to respond, or not fully offline.
818      * The values of <code>START_FAILED</code> or <code>STOP_FAILED</code> can indicate
819      * an error condition.</p>
820      */
SetState(State && value)821     inline void SetState(State&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
822 
823     /**
824      * <p>Specifies the condition of a server for the server that was described. A
825      * value of <code>ONLINE</code> indicates that the server can accept jobs and
826      * transfer files. A <code>State</code> value of <code>OFFLINE</code> means that
827      * the server cannot perform file transfer operations.</p> <p>The states of
828      * <code>STARTING</code> and <code>STOPPING</code> indicate that the server is in
829      * an intermediate state, either not fully able to respond, or not fully offline.
830      * The values of <code>START_FAILED</code> or <code>STOP_FAILED</code> can indicate
831      * an error condition.</p>
832      */
WithState(const State & value)833     inline DescribedServer& WithState(const State& value) { SetState(value); return *this;}
834 
835     /**
836      * <p>Specifies the condition of a server for the server that was described. A
837      * value of <code>ONLINE</code> indicates that the server can accept jobs and
838      * transfer files. A <code>State</code> value of <code>OFFLINE</code> means that
839      * the server cannot perform file transfer operations.</p> <p>The states of
840      * <code>STARTING</code> and <code>STOPPING</code> indicate that the server is in
841      * an intermediate state, either not fully able to respond, or not fully offline.
842      * The values of <code>START_FAILED</code> or <code>STOP_FAILED</code> can indicate
843      * an error condition.</p>
844      */
WithState(State && value)845     inline DescribedServer& WithState(State&& value) { SetState(std::move(value)); return *this;}
846 
847 
848     /**
849      * <p>Specifies the key-value pairs that you can use to search for and group
850      * servers that were assigned to the server that was described.</p>
851      */
GetTags()852     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
853 
854     /**
855      * <p>Specifies the key-value pairs that you can use to search for and group
856      * servers that were assigned to the server that was described.</p>
857      */
TagsHasBeenSet()858     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
859 
860     /**
861      * <p>Specifies the key-value pairs that you can use to search for and group
862      * servers that were assigned to the server that was described.</p>
863      */
SetTags(const Aws::Vector<Tag> & value)864     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
865 
866     /**
867      * <p>Specifies the key-value pairs that you can use to search for and group
868      * servers that were assigned to the server that was described.</p>
869      */
SetTags(Aws::Vector<Tag> && value)870     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
871 
872     /**
873      * <p>Specifies the key-value pairs that you can use to search for and group
874      * servers that were assigned to the server that was described.</p>
875      */
WithTags(const Aws::Vector<Tag> & value)876     inline DescribedServer& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
877 
878     /**
879      * <p>Specifies the key-value pairs that you can use to search for and group
880      * servers that were assigned to the server that was described.</p>
881      */
WithTags(Aws::Vector<Tag> && value)882     inline DescribedServer& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
883 
884     /**
885      * <p>Specifies the key-value pairs that you can use to search for and group
886      * servers that were assigned to the server that was described.</p>
887      */
AddTags(const Tag & value)888     inline DescribedServer& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
889 
890     /**
891      * <p>Specifies the key-value pairs that you can use to search for and group
892      * servers that were assigned to the server that was described.</p>
893      */
AddTags(Tag && value)894     inline DescribedServer& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
895 
896 
897     /**
898      * <p>Specifies the number of users that are assigned to a server you specified
899      * with the <code>ServerId</code>.</p>
900      */
GetUserCount()901     inline int GetUserCount() const{ return m_userCount; }
902 
903     /**
904      * <p>Specifies the number of users that are assigned to a server you specified
905      * with the <code>ServerId</code>.</p>
906      */
UserCountHasBeenSet()907     inline bool UserCountHasBeenSet() const { return m_userCountHasBeenSet; }
908 
909     /**
910      * <p>Specifies the number of users that are assigned to a server you specified
911      * with the <code>ServerId</code>.</p>
912      */
SetUserCount(int value)913     inline void SetUserCount(int value) { m_userCountHasBeenSet = true; m_userCount = value; }
914 
915     /**
916      * <p>Specifies the number of users that are assigned to a server you specified
917      * with the <code>ServerId</code>.</p>
918      */
WithUserCount(int value)919     inline DescribedServer& WithUserCount(int value) { SetUserCount(value); return *this;}
920 
921 
922     /**
923      * <p>Specifies the workflow ID for the workflow to assign and the execution role
924      * used for executing the workflow.</p>
925      */
GetWorkflowDetails()926     inline const WorkflowDetails& GetWorkflowDetails() const{ return m_workflowDetails; }
927 
928     /**
929      * <p>Specifies the workflow ID for the workflow to assign and the execution role
930      * used for executing the workflow.</p>
931      */
WorkflowDetailsHasBeenSet()932     inline bool WorkflowDetailsHasBeenSet() const { return m_workflowDetailsHasBeenSet; }
933 
934     /**
935      * <p>Specifies the workflow ID for the workflow to assign and the execution role
936      * used for executing the workflow.</p>
937      */
SetWorkflowDetails(const WorkflowDetails & value)938     inline void SetWorkflowDetails(const WorkflowDetails& value) { m_workflowDetailsHasBeenSet = true; m_workflowDetails = value; }
939 
940     /**
941      * <p>Specifies the workflow ID for the workflow to assign and the execution role
942      * used for executing the workflow.</p>
943      */
SetWorkflowDetails(WorkflowDetails && value)944     inline void SetWorkflowDetails(WorkflowDetails&& value) { m_workflowDetailsHasBeenSet = true; m_workflowDetails = std::move(value); }
945 
946     /**
947      * <p>Specifies the workflow ID for the workflow to assign and the execution role
948      * used for executing the workflow.</p>
949      */
WithWorkflowDetails(const WorkflowDetails & value)950     inline DescribedServer& WithWorkflowDetails(const WorkflowDetails& value) { SetWorkflowDetails(value); return *this;}
951 
952     /**
953      * <p>Specifies the workflow ID for the workflow to assign and the execution role
954      * used for executing the workflow.</p>
955      */
WithWorkflowDetails(WorkflowDetails && value)956     inline DescribedServer& WithWorkflowDetails(WorkflowDetails&& value) { SetWorkflowDetails(std::move(value)); return *this;}
957 
958   private:
959 
960     Aws::String m_arn;
961     bool m_arnHasBeenSet;
962 
963     Aws::String m_certificate;
964     bool m_certificateHasBeenSet;
965 
966     ProtocolDetails m_protocolDetails;
967     bool m_protocolDetailsHasBeenSet;
968 
969     Domain m_domain;
970     bool m_domainHasBeenSet;
971 
972     EndpointDetails m_endpointDetails;
973     bool m_endpointDetailsHasBeenSet;
974 
975     EndpointType m_endpointType;
976     bool m_endpointTypeHasBeenSet;
977 
978     Aws::String m_hostKeyFingerprint;
979     bool m_hostKeyFingerprintHasBeenSet;
980 
981     IdentityProviderDetails m_identityProviderDetails;
982     bool m_identityProviderDetailsHasBeenSet;
983 
984     IdentityProviderType m_identityProviderType;
985     bool m_identityProviderTypeHasBeenSet;
986 
987     Aws::String m_loggingRole;
988     bool m_loggingRoleHasBeenSet;
989 
990     Aws::Vector<Protocol> m_protocols;
991     bool m_protocolsHasBeenSet;
992 
993     Aws::String m_securityPolicyName;
994     bool m_securityPolicyNameHasBeenSet;
995 
996     Aws::String m_serverId;
997     bool m_serverIdHasBeenSet;
998 
999     State m_state;
1000     bool m_stateHasBeenSet;
1001 
1002     Aws::Vector<Tag> m_tags;
1003     bool m_tagsHasBeenSet;
1004 
1005     int m_userCount;
1006     bool m_userCountHasBeenSet;
1007 
1008     WorkflowDetails m_workflowDetails;
1009     bool m_workflowDetailsHasBeenSet;
1010   };
1011 
1012 } // namespace Model
1013 } // namespace Transfer
1014 } // namespace Aws
1015