com.amazonaws.services.transfer.model.ProtocolDetails Maven / Gradle / Ivy
Show all versions of aws-java-sdk-transfer Show documentation
/*
* Copyright 2019-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.transfer.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
*
* The protocol settings that are configured for your server.
*
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class ProtocolDetails implements Serializable, Cloneable, StructuredPojo {
/**
*
* Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of
* a firewall, router, or load balancer. For example:
*
*
* aws transfer update-server --protocol-details PassiveIp=0.0.0.0
*
*
* Replace 0.0.0.0
in the example above with the actual IP address you want to use.
*
*
*
* If you change the PassiveIp
value, you must stop and then restart your Transfer Family server for
* the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Transfer Family.
*
*
*
* Special values
*
*
* The AUTO
and 0.0.0.0
are special values for the PassiveIp
parameter. The
* value PassiveIp=AUTO
is assigned by default to FTP and FTPS type servers. In this case, the server
* automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0
has
* a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer
* (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the
* PassiveIp
parameter. This reduces the effectiveness of having High Availability. In this case, you
* can specify PassiveIp=0.0.0.0
. This tells the client to use the same IP address as the Control
* connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the
* PassiveIp=0.0.0.0
response. FileZilla and WinSCP do support it. If you are using other clients,
* check to see if your client supports the PassiveIp=0.0.0.0
response.
*
*/
private String passiveIp;
/**
*
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session.
* TlsSessionResumptionMode
determines whether or not the server resumes recent, negotiated sessions
* through a unique session ID. This property is available during CreateServer
and
* UpdateServer
calls. If a TlsSessionResumptionMode
value is not specified during
* CreateServer
, it is set to ENFORCED
by default.
*
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a new TLS
* session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption. The
* server doesn't reject client data connections that do not perform the TLS session resumption client processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session resumption. The
* server rejects client data connections that do not perform the TLS session resumption client processing. Before
* you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you
* prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or
* not you can use the ENFORCED
value, you need to test your clients.
*
*
*
*/
private String tlsSessionResumptionMode;
/**
*
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and
* permissions, using commands, such as SETSTAT
when uploading the file. However, these commands are
* not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from
* these clients can result in errors even when the file is otherwise successfully uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the SETSTAT
* command, and upload files without needing to make any changes to your SFTP client. While the
* SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate a log entry in
* Amazon CloudWatch Logs, so you can determine when the client is making a SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
*
*/
private String setStatOption;
/**
*
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
*
*/
private java.util.List as2Transports;
/**
*
* Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of
* a firewall, router, or load balancer. For example:
*
*
* aws transfer update-server --protocol-details PassiveIp=0.0.0.0
*
*
* Replace 0.0.0.0
in the example above with the actual IP address you want to use.
*
*
*
* If you change the PassiveIp
value, you must stop and then restart your Transfer Family server for
* the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Transfer Family.
*
*
*
* Special values
*
*
* The AUTO
and 0.0.0.0
are special values for the PassiveIp
parameter. The
* value PassiveIp=AUTO
is assigned by default to FTP and FTPS type servers. In this case, the server
* automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0
has
* a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer
* (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the
* PassiveIp
parameter. This reduces the effectiveness of having High Availability. In this case, you
* can specify PassiveIp=0.0.0.0
. This tells the client to use the same IP address as the Control
* connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the
* PassiveIp=0.0.0.0
response. FileZilla and WinSCP do support it. If you are using other clients,
* check to see if your client supports the PassiveIp=0.0.0.0
response.
*
*
* @param passiveIp
* Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP
* address of a firewall, router, or load balancer. For example:
*
* aws transfer update-server --protocol-details PassiveIp=0.0.0.0
*
*
* Replace 0.0.0.0
in the example above with the actual IP address you want to use.
*
*
*
* If you change the PassiveIp
value, you must stop and then restart your Transfer Family server
* for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Transfer Family.
*
*
*
* Special values
*
*
* The AUTO
and 0.0.0.0
are special values for the PassiveIp
* parameter. The value PassiveIp=AUTO
is assigned by default to FTP and FTPS type servers. In
* this case, the server automatically responds with one of the endpoint IPs within the PASV response.
* PassiveIp=0.0.0.0
has a more unique application for its usage. For example, if you have a
* High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only
* specify a single IP address using the PassiveIp
parameter. This reduces the effectiveness of
* having High Availability. In this case, you can specify PassiveIp=0.0.0.0
. This tells the
* client to use the same IP address as the Control connection and utilize all AZs for their connections.
* Note, however, that not all FTP clients support the PassiveIp=0.0.0.0
response. FileZilla and
* WinSCP do support it. If you are using other clients, check to see if your client supports the
* PassiveIp=0.0.0.0
response.
*/
public void setPassiveIp(String passiveIp) {
this.passiveIp = passiveIp;
}
/**
*
* Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of
* a firewall, router, or load balancer. For example:
*
*
* aws transfer update-server --protocol-details PassiveIp=0.0.0.0
*
*
* Replace 0.0.0.0
in the example above with the actual IP address you want to use.
*
*
*
* If you change the PassiveIp
value, you must stop and then restart your Transfer Family server for
* the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Transfer Family.
*
*
*
* Special values
*
*
* The AUTO
and 0.0.0.0
are special values for the PassiveIp
parameter. The
* value PassiveIp=AUTO
is assigned by default to FTP and FTPS type servers. In this case, the server
* automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0
has
* a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer
* (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the
* PassiveIp
parameter. This reduces the effectiveness of having High Availability. In this case, you
* can specify PassiveIp=0.0.0.0
. This tells the client to use the same IP address as the Control
* connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the
* PassiveIp=0.0.0.0
response. FileZilla and WinSCP do support it. If you are using other clients,
* check to see if your client supports the PassiveIp=0.0.0.0
response.
*
*
* @return Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP
* address of a firewall, router, or load balancer. For example:
*
* aws transfer update-server --protocol-details PassiveIp=0.0.0.0
*
*
* Replace 0.0.0.0
in the example above with the actual IP address you want to use.
*
*
*
* If you change the PassiveIp
value, you must stop and then restart your Transfer Family
* server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see
* Configuring your FTPS server behind a firewall or NAT with Transfer Family.
*
*
*
* Special values
*
*
* The AUTO
and 0.0.0.0
are special values for the PassiveIp
* parameter. The value PassiveIp=AUTO
is assigned by default to FTP and FTPS type servers. In
* this case, the server automatically responds with one of the endpoint IPs within the PASV response.
* PassiveIp=0.0.0.0
has a more unique application for its usage. For example, if you have a
* High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only
* specify a single IP address using the PassiveIp
parameter. This reduces the effectiveness of
* having High Availability. In this case, you can specify PassiveIp=0.0.0.0
. This tells the
* client to use the same IP address as the Control connection and utilize all AZs for their connections.
* Note, however, that not all FTP clients support the PassiveIp=0.0.0.0
response. FileZilla
* and WinSCP do support it. If you are using other clients, check to see if your client supports the
* PassiveIp=0.0.0.0
response.
*/
public String getPassiveIp() {
return this.passiveIp;
}
/**
*
* Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of
* a firewall, router, or load balancer. For example:
*
*
* aws transfer update-server --protocol-details PassiveIp=0.0.0.0
*
*
* Replace 0.0.0.0
in the example above with the actual IP address you want to use.
*
*
*
* If you change the PassiveIp
value, you must stop and then restart your Transfer Family server for
* the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Transfer Family.
*
*
*
* Special values
*
*
* The AUTO
and 0.0.0.0
are special values for the PassiveIp
parameter. The
* value PassiveIp=AUTO
is assigned by default to FTP and FTPS type servers. In this case, the server
* automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0
has
* a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer
* (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the
* PassiveIp
parameter. This reduces the effectiveness of having High Availability. In this case, you
* can specify PassiveIp=0.0.0.0
. This tells the client to use the same IP address as the Control
* connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the
* PassiveIp=0.0.0.0
response. FileZilla and WinSCP do support it. If you are using other clients,
* check to see if your client supports the PassiveIp=0.0.0.0
response.
*
*
* @param passiveIp
* Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP
* address of a firewall, router, or load balancer. For example:
*
* aws transfer update-server --protocol-details PassiveIp=0.0.0.0
*
*
* Replace 0.0.0.0
in the example above with the actual IP address you want to use.
*
*
*
* If you change the PassiveIp
value, you must stop and then restart your Transfer Family server
* for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Transfer Family.
*
*
*
* Special values
*
*
* The AUTO
and 0.0.0.0
are special values for the PassiveIp
* parameter. The value PassiveIp=AUTO
is assigned by default to FTP and FTPS type servers. In
* this case, the server automatically responds with one of the endpoint IPs within the PASV response.
* PassiveIp=0.0.0.0
has a more unique application for its usage. For example, if you have a
* High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only
* specify a single IP address using the PassiveIp
parameter. This reduces the effectiveness of
* having High Availability. In this case, you can specify PassiveIp=0.0.0.0
. This tells the
* client to use the same IP address as the Control connection and utilize all AZs for their connections.
* Note, however, that not all FTP clients support the PassiveIp=0.0.0.0
response. FileZilla and
* WinSCP do support it. If you are using other clients, check to see if your client supports the
* PassiveIp=0.0.0.0
response.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ProtocolDetails withPassiveIp(String passiveIp) {
setPassiveIp(passiveIp);
return this;
}
/**
*
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session.
* TlsSessionResumptionMode
determines whether or not the server resumes recent, negotiated sessions
* through a unique session ID. This property is available during CreateServer
and
* UpdateServer
calls. If a TlsSessionResumptionMode
value is not specified during
* CreateServer
, it is set to ENFORCED
by default.
*
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a new TLS
* session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption. The
* server doesn't reject client data connections that do not perform the TLS session resumption client processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session resumption. The
* server rejects client data connections that do not perform the TLS session resumption client processing. Before
* you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you
* prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or
* not you can use the ENFORCED
value, you need to test your clients.
*
*
*
*
* @param tlsSessionResumptionMode
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS
* session. TlsSessionResumptionMode
determines whether or not the server resumes recent,
* negotiated sessions through a unique session ID. This property is available during
* CreateServer
and UpdateServer
calls. If a TlsSessionResumptionMode
* value is not specified during CreateServer
, it is set to ENFORCED
by
* default.
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a
* new TLS session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption.
* The server doesn't reject client data connections that do not perform the TLS session resumption client
* processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session
* resumption. The server rejects client data connections that do not perform the TLS session resumption
* client processing. Before you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption,
* you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine
* whether or not you can use the ENFORCED
value, you need to test your clients.
*
*
* @see TlsSessionResumptionMode
*/
public void setTlsSessionResumptionMode(String tlsSessionResumptionMode) {
this.tlsSessionResumptionMode = tlsSessionResumptionMode;
}
/**
*
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session.
* TlsSessionResumptionMode
determines whether or not the server resumes recent, negotiated sessions
* through a unique session ID. This property is available during CreateServer
and
* UpdateServer
calls. If a TlsSessionResumptionMode
value is not specified during
* CreateServer
, it is set to ENFORCED
by default.
*
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a new TLS
* session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption. The
* server doesn't reject client data connections that do not perform the TLS session resumption client processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session resumption. The
* server rejects client data connections that do not perform the TLS session resumption client processing. Before
* you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you
* prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or
* not you can use the ENFORCED
value, you need to test your clients.
*
*
*
*
* @return A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides
* a mechanism to resume or share a negotiated secret key between the control and data connection for an
* FTPS session. TlsSessionResumptionMode
determines whether or not the server resumes recent,
* negotiated sessions through a unique session ID. This property is available during
* CreateServer
and UpdateServer
calls. If a TlsSessionResumptionMode
* value is not specified during CreateServer
, it is set to ENFORCED
by
* default.
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a
* new TLS session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session
* resumption. The server doesn't reject client data connections that do not perform the TLS session
* resumption client processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session
* resumption. The server rejects client data connections that do not perform the TLS session resumption
* client processing. Before you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption,
* you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine
* whether or not you can use the ENFORCED
value, you need to test your clients.
*
*
* @see TlsSessionResumptionMode
*/
public String getTlsSessionResumptionMode() {
return this.tlsSessionResumptionMode;
}
/**
*
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session.
* TlsSessionResumptionMode
determines whether or not the server resumes recent, negotiated sessions
* through a unique session ID. This property is available during CreateServer
and
* UpdateServer
calls. If a TlsSessionResumptionMode
value is not specified during
* CreateServer
, it is set to ENFORCED
by default.
*
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a new TLS
* session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption. The
* server doesn't reject client data connections that do not perform the TLS session resumption client processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session resumption. The
* server rejects client data connections that do not perform the TLS session resumption client processing. Before
* you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you
* prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or
* not you can use the ENFORCED
value, you need to test your clients.
*
*
*
*
* @param tlsSessionResumptionMode
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS
* session. TlsSessionResumptionMode
determines whether or not the server resumes recent,
* negotiated sessions through a unique session ID. This property is available during
* CreateServer
and UpdateServer
calls. If a TlsSessionResumptionMode
* value is not specified during CreateServer
, it is set to ENFORCED
by
* default.
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a
* new TLS session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption.
* The server doesn't reject client data connections that do not perform the TLS session resumption client
* processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session
* resumption. The server rejects client data connections that do not perform the TLS session resumption
* client processing. Before you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption,
* you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine
* whether or not you can use the ENFORCED
value, you need to test your clients.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see TlsSessionResumptionMode
*/
public ProtocolDetails withTlsSessionResumptionMode(String tlsSessionResumptionMode) {
setTlsSessionResumptionMode(tlsSessionResumptionMode);
return this;
}
/**
*
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session.
* TlsSessionResumptionMode
determines whether or not the server resumes recent, negotiated sessions
* through a unique session ID. This property is available during CreateServer
and
* UpdateServer
calls. If a TlsSessionResumptionMode
value is not specified during
* CreateServer
, it is set to ENFORCED
by default.
*
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a new TLS
* session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption. The
* server doesn't reject client data connections that do not perform the TLS session resumption client processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session resumption. The
* server rejects client data connections that do not perform the TLS session resumption client processing. Before
* you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you
* prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or
* not you can use the ENFORCED
value, you need to test your clients.
*
*
*
*
* @param tlsSessionResumptionMode
* A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a
* mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS
* session. TlsSessionResumptionMode
determines whether or not the server resumes recent,
* negotiated sessions through a unique session ID. This property is available during
* CreateServer
and UpdateServer
calls. If a TlsSessionResumptionMode
* value is not specified during CreateServer
, it is set to ENFORCED
by
* default.
*
* -
*
* DISABLED
: the server does not process TLS session resumption client requests and creates a
* new TLS session for each request.
*
*
* -
*
* ENABLED
: the server processes and accepts clients that are performing TLS session resumption.
* The server doesn't reject client data connections that do not perform the TLS session resumption client
* processing.
*
*
* -
*
* ENFORCED
: the server processes and accepts clients that are performing TLS session
* resumption. The server rejects client data connections that do not perform the TLS session resumption
* client processing. Before you set the value to ENFORCED
, test your clients.
*
*
*
* Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption,
* you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine
* whether or not you can use the ENFORCED
value, you need to test your clients.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see TlsSessionResumptionMode
*/
public ProtocolDetails withTlsSessionResumptionMode(TlsSessionResumptionMode tlsSessionResumptionMode) {
this.tlsSessionResumptionMode = tlsSessionResumptionMode.toString();
return this;
}
/**
*
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and
* permissions, using commands, such as SETSTAT
when uploading the file. However, these commands are
* not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from
* these clients can result in errors even when the file is otherwise successfully uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the SETSTAT
* command, and upload files without needing to make any changes to your SFTP client. While the
* SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate a log entry in
* Amazon CloudWatch Logs, so you can determine when the client is making a SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
*
*
* @param setStatOption
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp
* and permissions, using commands, such as SETSTAT
when uploading the file. However, these
* commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility,
* file uploads from these clients can result in errors even when the file is otherwise successfully
* uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the
* SETSTAT
command, and upload files without needing to make any changes to your SFTP client.
* While the SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate
* a log entry in Amazon CloudWatch Logs, so you can determine when the client is making a
* SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
* @see SetStatOption
*/
public void setSetStatOption(String setStatOption) {
this.setStatOption = setStatOption;
}
/**
*
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and
* permissions, using commands, such as SETSTAT
when uploading the file. However, these commands are
* not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from
* these clients can result in errors even when the file is otherwise successfully uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the SETSTAT
* command, and upload files without needing to make any changes to your SFTP client. While the
* SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate a log entry in
* Amazon CloudWatch Logs, so you can determine when the client is making a SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
*
*
* @return Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp
* and permissions, using commands, such as SETSTAT
when uploading the file. However, these
* commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility,
* file uploads from these clients can result in errors even when the file is otherwise successfully
* uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the
* SETSTAT
command, and upload files without needing to make any changes to your SFTP client.
* While the SetStatOption
ENABLE_NO_OP
setting ignores the error, it does
* generate a log entry in Amazon CloudWatch Logs, so you can determine when the client is making a
* SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
* @see SetStatOption
*/
public String getSetStatOption() {
return this.setStatOption;
}
/**
*
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and
* permissions, using commands, such as SETSTAT
when uploading the file. However, these commands are
* not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from
* these clients can result in errors even when the file is otherwise successfully uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the SETSTAT
* command, and upload files without needing to make any changes to your SFTP client. While the
* SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate a log entry in
* Amazon CloudWatch Logs, so you can determine when the client is making a SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
*
*
* @param setStatOption
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp
* and permissions, using commands, such as SETSTAT
when uploading the file. However, these
* commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility,
* file uploads from these clients can result in errors even when the file is otherwise successfully
* uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the
* SETSTAT
command, and upload files without needing to make any changes to your SFTP client.
* While the SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate
* a log entry in Amazon CloudWatch Logs, so you can determine when the client is making a
* SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see SetStatOption
*/
public ProtocolDetails withSetStatOption(String setStatOption) {
setSetStatOption(setStatOption);
return this;
}
/**
*
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and
* permissions, using commands, such as SETSTAT
when uploading the file. However, these commands are
* not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from
* these clients can result in errors even when the file is otherwise successfully uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the SETSTAT
* command, and upload files without needing to make any changes to your SFTP client. While the
* SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate a log entry in
* Amazon CloudWatch Logs, so you can determine when the client is making a SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
*
*
* @param setStatOption
* Use the SetStatOption
to ignore the error that is generated when the client attempts to use
* SETSTAT
on a file you are uploading to an S3 bucket.
*
* Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp
* and permissions, using commands, such as SETSTAT
when uploading the file. However, these
* commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility,
* file uploads from these clients can result in errors even when the file is otherwise successfully
* uploaded.
*
*
* Set the value to ENABLE_NO_OP
to have the Transfer Family server ignore the
* SETSTAT
command, and upload files without needing to make any changes to your SFTP client.
* While the SetStatOption
ENABLE_NO_OP
setting ignores the error, it does generate
* a log entry in Amazon CloudWatch Logs, so you can determine when the client is making a
* SETSTAT
call.
*
*
*
* If you want to preserve the original timestamp for your file, and modify other file attributes using
* SETSTAT
, you can use Amazon EFS as backend storage with Transfer Family.
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see SetStatOption
*/
public ProtocolDetails withSetStatOption(SetStatOption setStatOption) {
this.setStatOption = setStatOption.toString();
return this;
}
/**
*
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
*
*
* @return Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
* @see As2Transport
*/
public java.util.List getAs2Transports() {
return as2Transports;
}
/**
*
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
*
*
* @param as2Transports
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
* @see As2Transport
*/
public void setAs2Transports(java.util.Collection as2Transports) {
if (as2Transports == null) {
this.as2Transports = null;
return;
}
this.as2Transports = new java.util.ArrayList(as2Transports);
}
/**
*
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setAs2Transports(java.util.Collection)} or {@link #withAs2Transports(java.util.Collection)} if you want
* to override the existing values.
*
*
* @param as2Transports
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
* @return Returns a reference to this object so that method calls can be chained together.
* @see As2Transport
*/
public ProtocolDetails withAs2Transports(String... as2Transports) {
if (this.as2Transports == null) {
setAs2Transports(new java.util.ArrayList(as2Transports.length));
}
for (String ele : as2Transports) {
this.as2Transports.add(ele);
}
return this;
}
/**
*
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
*
*
* @param as2Transports
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
* @return Returns a reference to this object so that method calls can be chained together.
* @see As2Transport
*/
public ProtocolDetails withAs2Transports(java.util.Collection as2Transports) {
setAs2Transports(as2Transports);
return this;
}
/**
*
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
*
*
* @param as2Transports
* Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
* @return Returns a reference to this object so that method calls can be chained together.
* @see As2Transport
*/
public ProtocolDetails withAs2Transports(As2Transport... as2Transports) {
java.util.ArrayList as2TransportsCopy = new java.util.ArrayList(as2Transports.length);
for (As2Transport value : as2Transports) {
as2TransportsCopy.add(value.toString());
}
if (getAs2Transports() == null) {
setAs2Transports(as2TransportsCopy);
} else {
getAs2Transports().addAll(as2TransportsCopy);
}
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getPassiveIp() != null)
sb.append("PassiveIp: ").append(getPassiveIp()).append(",");
if (getTlsSessionResumptionMode() != null)
sb.append("TlsSessionResumptionMode: ").append(getTlsSessionResumptionMode()).append(",");
if (getSetStatOption() != null)
sb.append("SetStatOption: ").append(getSetStatOption()).append(",");
if (getAs2Transports() != null)
sb.append("As2Transports: ").append(getAs2Transports());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof ProtocolDetails == false)
return false;
ProtocolDetails other = (ProtocolDetails) obj;
if (other.getPassiveIp() == null ^ this.getPassiveIp() == null)
return false;
if (other.getPassiveIp() != null && other.getPassiveIp().equals(this.getPassiveIp()) == false)
return false;
if (other.getTlsSessionResumptionMode() == null ^ this.getTlsSessionResumptionMode() == null)
return false;
if (other.getTlsSessionResumptionMode() != null && other.getTlsSessionResumptionMode().equals(this.getTlsSessionResumptionMode()) == false)
return false;
if (other.getSetStatOption() == null ^ this.getSetStatOption() == null)
return false;
if (other.getSetStatOption() != null && other.getSetStatOption().equals(this.getSetStatOption()) == false)
return false;
if (other.getAs2Transports() == null ^ this.getAs2Transports() == null)
return false;
if (other.getAs2Transports() != null && other.getAs2Transports().equals(this.getAs2Transports()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getPassiveIp() == null) ? 0 : getPassiveIp().hashCode());
hashCode = prime * hashCode + ((getTlsSessionResumptionMode() == null) ? 0 : getTlsSessionResumptionMode().hashCode());
hashCode = prime * hashCode + ((getSetStatOption() == null) ? 0 : getSetStatOption().hashCode());
hashCode = prime * hashCode + ((getAs2Transports() == null) ? 0 : getAs2Transports().hashCode());
return hashCode;
}
@Override
public ProtocolDetails clone() {
try {
return (ProtocolDetails) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.transfer.model.transform.ProtocolDetailsMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}