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