/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the transfer-2018-11-05.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Transfer.Model { /// /// Describes the properties of a file transfer protocol-enabled server that was specified. /// public partial class DescribedServer { private string _arn; private string _certificate; private Domain _domain; private EndpointDetails _endpointDetails; private EndpointType _endpointType; private string _hostKeyFingerprint; private IdentityProviderDetails _identityProviderDetails; private IdentityProviderType _identityProviderType; private string _loggingRole; private string _postAuthenticationLoginBanner; private string _preAuthenticationLoginBanner; private ProtocolDetails _protocolDetails; private List _protocols = new List(); private string _securityPolicyName; private string _serverId; private State _state; private List _structuredLogDestinations = new List(); private List _tags = new List(); private int? _userCount; private WorkflowDetails _workflowDetails; /// /// Gets and sets the property Arn. /// /// Specifies the unique Amazon Resource Name (ARN) of the server. /// /// [AWSProperty(Required=true, Min=20, Max=1600)] public string Arn { get { return this._arn; } set { this._arn = value; } } // Check to see if Arn property is set internal bool IsSetArn() { return this._arn != null; } /// /// Gets and sets the property Certificate. /// /// Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) certificate. /// Required when Protocols is set to FTPS. /// /// [AWSProperty(Max=1600)] public string Certificate { get { return this._certificate; } set { this._certificate = value; } } // Check to see if Certificate property is set internal bool IsSetCertificate() { return this._certificate != null; } /// /// Gets and sets the property Domain. /// /// Specifies the domain of the storage system that is used for file transfers. /// /// public Domain Domain { get { return this._domain; } set { this._domain = value; } } // Check to see if Domain property is set internal bool IsSetDomain() { return this._domain != null; } /// /// Gets and sets the property EndpointDetails. /// /// The virtual private cloud (VPC) endpoint settings that are configured for your server. /// When you host your endpoint within your VPC, you can make your endpoint accessible /// only to resources within your VPC, or you can attach Elastic IP addresses and make /// your endpoint accessible to clients over the internet. Your VPC's default security /// groups are automatically assigned to your endpoint. /// /// public EndpointDetails EndpointDetails { get { return this._endpointDetails; } set { this._endpointDetails = value; } } // Check to see if EndpointDetails property is set internal bool IsSetEndpointDetails() { return this._endpointDetails != null; } /// /// Gets and sets the property EndpointType. /// /// Defines the type of endpoint that your server is connected to. If your server is connected /// to a VPC endpoint, your server isn't accessible over the public internet. /// /// public EndpointType EndpointType { get { return this._endpointType; } set { this._endpointType = value; } } // Check to see if EndpointType property is set internal bool IsSetEndpointType() { return this._endpointType != null; } /// /// Gets and sets the property HostKeyFingerprint. /// /// Specifies the Base64-encoded SHA256 fingerprint of the server's host key. This value /// is equivalent to the output of the ssh-keygen -l -f my-new-server-key /// command. /// /// public string HostKeyFingerprint { get { return this._hostKeyFingerprint; } set { this._hostKeyFingerprint = value; } } // Check to see if HostKeyFingerprint property is set internal bool IsSetHostKeyFingerprint() { return this._hostKeyFingerprint != null; } /// /// Gets and sets the property IdentityProviderDetails. /// /// Specifies information to call a customer-supplied authentication API. This field is /// not populated when the IdentityProviderType of a server is AWS_DIRECTORY_SERVICE /// or SERVICE_MANAGED. /// /// public IdentityProviderDetails IdentityProviderDetails { get { return this._identityProviderDetails; } set { this._identityProviderDetails = value; } } // Check to see if IdentityProviderDetails property is set internal bool IsSetIdentityProviderDetails() { return this._identityProviderDetails != null; } /// /// Gets and sets the property IdentityProviderType. /// /// The mode of authentication for a server. The default value is SERVICE_MANAGED, /// which allows you to store and access user credentials within the Transfer Family service. /// /// /// /// Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups /// in Directory Service for Microsoft Active Directory or Microsoft Active Directory /// in your on-premises environment or in Amazon Web Services using AD Connector. This /// option also requires you to provide a Directory ID by using the IdentityProviderDetails /// parameter. /// /// /// /// Use the API_GATEWAY value to integrate with an identity provider of your /// choosing. The API_GATEWAY setting requires you to provide an Amazon API /// Gateway endpoint URL to call for authentication by using the IdentityProviderDetails /// parameter. /// /// /// /// Use the AWS_LAMBDA value to directly use an Lambda function as your identity /// provider. If you choose this value, you must specify the ARN for the Lambda function /// in the Function parameter for the IdentityProviderDetails /// data type. /// /// public IdentityProviderType IdentityProviderType { get { return this._identityProviderType; } set { this._identityProviderType = value; } } // Check to see if IdentityProviderType property is set internal bool IsSetIdentityProviderType() { return this._identityProviderType != null; } /// /// Gets and sets the property LoggingRole. /// /// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that /// allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. /// When set, you can view user activity in your CloudWatch logs. /// /// [AWSProperty(Min=20, Max=2048)] public string LoggingRole { get { return this._loggingRole; } set { this._loggingRole = value; } } // Check to see if LoggingRole property is set internal bool IsSetLoggingRole() { return this._loggingRole != null; } /// /// Gets and sets the property PostAuthenticationLoginBanner. /// /// Specifies a string to display when users connect to a server. This string is displayed /// after the user authenticates. /// /// /// /// The SFTP protocol does not support post-authentication display banners. /// /// /// [AWSProperty(Max=512)] public string PostAuthenticationLoginBanner { get { return this._postAuthenticationLoginBanner; } set { this._postAuthenticationLoginBanner = value; } } // Check to see if PostAuthenticationLoginBanner property is set internal bool IsSetPostAuthenticationLoginBanner() { return this._postAuthenticationLoginBanner != null; } /// /// Gets and sets the property PreAuthenticationLoginBanner. /// /// Specifies a string to display when users connect to a server. This string is displayed /// before the user authenticates. For example, the following banner displays details /// about using the system: /// /// /// /// This system is for the use of authorized users only. Individuals using this /// computer system without authority, or in excess of their authority, are subject to /// having all of their activities on this system monitored and recorded by system personnel. /// /// /// [AWSProperty(Max=512)] public string PreAuthenticationLoginBanner { get { return this._preAuthenticationLoginBanner; } set { this._preAuthenticationLoginBanner = value; } } // Check to see if PreAuthenticationLoginBanner property is set internal bool IsSetPreAuthenticationLoginBanner() { return this._preAuthenticationLoginBanner != null; } /// /// Gets and sets the property ProtocolDetails. /// /// The protocol settings that are configured for your server. /// ///
  • /// /// To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp /// parameter. Enter a single dotted-quad IPv4 address, such as the external IP address /// of a firewall, router, or load balancer. /// ///
  • /// /// To ignore the error that is generated when the client attempts to use the SETSTAT /// command on a file that you are uploading to an Amazon S3 bucket, use the SetStatOption /// parameter. To have the Transfer Family server ignore the SETSTAT command /// and upload files without needing to make any changes to your SFTP client, set the /// value to ENABLE_NO_OP. If you set the SetStatOption parameter /// to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon CloudWatch /// Logs, so that you can determine when the client is making a SETSTAT call. /// ///
  • /// /// To determine whether your Transfer Family server resumes recent, negotiated sessions /// through a unique session ID, use the TlsSessionResumptionMode parameter. /// ///
  • /// /// As2Transports indicates the transport method for the AS2 messages. Currently, /// only HTTP is supported. /// ///
///
public ProtocolDetails ProtocolDetails { get { return this._protocolDetails; } set { this._protocolDetails = value; } } // Check to see if ProtocolDetails property is set internal bool IsSetProtocolDetails() { return this._protocolDetails != null; } /// /// Gets and sets the property Protocols. /// /// Specifies the file transfer protocol or protocols over which your file transfer protocol /// client can connect to your server's endpoint. The available protocols are: /// ///
  • /// /// SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over /// SSH /// ///
  • /// /// FTPS (File Transfer Protocol Secure): File transfer with TLS encryption /// ///
  • /// /// FTP (File Transfer Protocol): Unencrypted file transfer /// ///
  • /// /// AS2 (Applicability Statement 2): used for transporting structured business-to-business /// data /// ///
  • /// /// If you select FTPS, you must choose a certificate stored in Certificate /// Manager (ACM) which is used to identify your server when clients connect to it over /// FTPS. /// ///
  • /// /// If Protocol includes either FTP or FTPS, then /// the EndpointType must be VPC and the IdentityProviderType /// must be either AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or API_GATEWAY. /// ///
  • /// /// If Protocol includes FTP, then AddressAllocationIds /// cannot be associated. /// ///
  • /// /// If Protocol is set only to SFTP, the EndpointType /// can be set to PUBLIC and the IdentityProviderType can be /// set any of the supported identity types: SERVICE_MANAGED, AWS_DIRECTORY_SERVICE, /// AWS_LAMBDA, or API_GATEWAY. /// ///
  • /// /// If Protocol includes AS2, then the EndpointType /// must be VPC, and domain must be Amazon S3. /// ///
///
[AWSProperty(Min=1, Max=4)] public List Protocols { get { return this._protocols; } set { this._protocols = value; } } // Check to see if Protocols property is set internal bool IsSetProtocols() { return this._protocols != null && this._protocols.Count > 0; } /// /// Gets and sets the property SecurityPolicyName. /// /// Specifies the name of the security policy that is attached to the server. /// /// [AWSProperty(Max=100)] public string SecurityPolicyName { get { return this._securityPolicyName; } set { this._securityPolicyName = value; } } // Check to see if SecurityPolicyName property is set internal bool IsSetSecurityPolicyName() { return this._securityPolicyName != null; } /// /// Gets and sets the property ServerId. /// /// Specifies the unique system-assigned identifier for a server that you instantiate. /// /// [AWSProperty(Min=19, Max=19)] public string ServerId { get { return this._serverId; } set { this._serverId = value; } } // Check to see if ServerId property is set internal bool IsSetServerId() { return this._serverId != null; } /// /// Gets and sets the property State. /// /// The condition of the server that was described. A value of ONLINE indicates /// that the server can accept jobs and transfer files. A State value of /// OFFLINE means that the server cannot perform file transfer operations. /// /// /// /// The states of STARTING and STOPPING indicate that the server /// is in an intermediate state, either not fully able to respond, or not fully offline. /// The values of START_FAILED or STOP_FAILED can indicate an /// error condition. /// /// public State State { get { return this._state; } set { this._state = value; } } // Check to see if State property is set internal bool IsSetState() { return this._state != null; } /// /// Gets and sets the property StructuredLogDestinations. /// /// Specifies the log groups to which your server logs are sent. /// /// /// /// To specify a log group, you must provide the ARN for an existing log group. In this /// case, the format of the log group is as follows: /// /// /// /// arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* /// /// /// /// /// For example, arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:* /// /// /// /// /// If you have previously specified a log group for a server, you can clear it, and in /// effect turn off structured logging, by providing an empty value for this parameter /// in an update-server call. For example: /// /// /// /// update-server --server-id s-1234567890abcdef0 --structured-log-destinations /// /// /// [AWSProperty(Min=0, Max=1)] public List StructuredLogDestinations { get { return this._structuredLogDestinations; } set { this._structuredLogDestinations = value; } } // Check to see if StructuredLogDestinations property is set internal bool IsSetStructuredLogDestinations() { return this._structuredLogDestinations != null && this._structuredLogDestinations.Count > 0; } /// /// Gets and sets the property Tags. /// /// Specifies the key-value pairs that you can use to search for and group servers that /// were assigned to the server that was described. /// /// [AWSProperty(Min=1, Max=50)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property UserCount. /// /// Specifies the number of users that are assigned to a server you specified with the /// ServerId. /// /// public int UserCount { get { return this._userCount.GetValueOrDefault(); } set { this._userCount = value; } } // Check to see if UserCount property is set internal bool IsSetUserCount() { return this._userCount.HasValue; } /// /// Gets and sets the property WorkflowDetails. /// /// Specifies the workflow ID for the workflow to assign and the execution role that's /// used for executing the workflow. /// /// /// /// In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails /// can also contain a workflow ID (and execution role) for a workflow to execute on partial /// upload. A partial upload occurs when the server session disconnects while the file /// is still being uploaded. /// /// public WorkflowDetails WorkflowDetails { get { return this._workflowDetails; } set { this._workflowDetails = value; } } // Check to see if WorkflowDetails property is set internal bool IsSetWorkflowDetails() { return this._workflowDetails != null; } } }