/* * 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 user that was specified. /// public partial class DescribedUser { private string _arn; private string _homeDirectory; private List _homeDirectoryMappings = new List(); private HomeDirectoryType _homeDirectoryType; private string _policy; private PosixProfile _posixProfile; private string _role; private List _sshPublicKeys = new List(); private List _tags = new List(); private string _userName; /// /// Gets and sets the property Arn. /// /// Specifies the unique Amazon Resource Name (ARN) for the user that was requested to /// be described. /// /// [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 HomeDirectory. /// /// The landing directory (folder) for a user when they log in to the server using the /// client. /// /// /// /// A HomeDirectory example is /bucket_name/home/mydirectory. /// /// [AWSProperty(Max=1024)] public string HomeDirectory { get { return this._homeDirectory; } set { this._homeDirectory = value; } } // Check to see if HomeDirectory property is set internal bool IsSetHomeDirectory() { return this._homeDirectory != null; } /// /// Gets and sets the property HomeDirectoryMappings. /// /// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys /// should be visible to your user and how you want to make them visible. You must specify /// the Entry and Target pair, where Entry shows /// how the path is made visible and Target is the actual Amazon S3 or Amazon /// EFS path. If you only specify a target, it is displayed as is. You also must ensure /// that your Identity and Access Management (IAM) role provides access to paths in Target. /// This value can be set only when HomeDirectoryType is set to LOGICAL. /// /// /// /// In most cases, you can use this value instead of the session policy to lock your user /// down to the designated home directory ("chroot"). To do this, you can /// set Entry to '/' and set Target to the HomeDirectory parameter /// value. /// /// [AWSProperty(Min=1, Max=50)] public List HomeDirectoryMappings { get { return this._homeDirectoryMappings; } set { this._homeDirectoryMappings = value; } } // Check to see if HomeDirectoryMappings property is set internal bool IsSetHomeDirectoryMappings() { return this._homeDirectoryMappings != null && this._homeDirectoryMappings.Count > 0; } /// /// Gets and sets the property HomeDirectoryType. /// /// The type of landing directory (folder) that you want your users' home directory to /// be when they log in to the server. If you set it to PATH, the user will /// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol /// clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings /// for how you want to make Amazon S3 or Amazon EFS paths visible to your users. /// /// public HomeDirectoryType HomeDirectoryType { get { return this._homeDirectoryType; } set { this._homeDirectoryType = value; } } // Check to see if HomeDirectoryType property is set internal bool IsSetHomeDirectoryType() { return this._homeDirectoryType != null; } /// /// Gets and sets the property Policy. /// /// A session policy for your user so that you can use the same Identity and Access Management /// (IAM) role across multiple users. This policy scopes down a user's access to portions /// of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, /// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. /// /// [AWSProperty(Max=2048)] public string Policy { get { return this._policy; } set { this._policy = value; } } // Check to see if Policy property is set internal bool IsSetPolicy() { return this._policy != null; } /// /// Gets and sets the property PosixProfile. /// /// Specifies the full POSIX identity, including user ID (Uid), group ID /// (Gid), and any secondary groups IDs (SecondaryGids), that /// controls your users' access to your Amazon Elastic File System (Amazon EFS) file systems. /// The POSIX permissions that are set on files and directories in your file system determine /// the level of access your users get when transferring files into and out of your Amazon /// EFS file systems. /// /// public PosixProfile PosixProfile { get { return this._posixProfile; } set { this._posixProfile = value; } } // Check to see if PosixProfile property is set internal bool IsSetPosixProfile() { return this._posixProfile != null; } /// /// Gets and sets the property Role. /// /// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that /// controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The /// policies attached to this role determine the level of access that you want to provide /// your users when transferring files into and out of your Amazon S3 bucket or Amazon /// EFS file system. The IAM role should also contain a trust relationship that allows /// the server to access your resources when servicing your users' transfer requests. /// /// [AWSProperty(Min=20, Max=2048)] public string Role { get { return this._role; } set { this._role = value; } } // Check to see if Role property is set internal bool IsSetRole() { return this._role != null; } /// /// Gets and sets the property SshPublicKeys. /// /// Specifies the public key portion of the Secure Shell (SSH) keys stored for the described /// user. /// /// [AWSProperty(Max=5)] public List SshPublicKeys { get { return this._sshPublicKeys; } set { this._sshPublicKeys = value; } } // Check to see if SshPublicKeys property is set internal bool IsSetSshPublicKeys() { return this._sshPublicKeys != null && this._sshPublicKeys.Count > 0; } /// /// Gets and sets the property Tags. /// /// Specifies the key-value pairs for the user requested. Tag can be used to search for /// and group users for a variety of purposes. /// /// [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 UserName. /// /// Specifies the name of the user that was requested to be described. User names are /// used for authentication purposes. This is the string that will be used by your user /// when they log in to your server. /// /// [AWSProperty(Min=3, Max=100)] public string UserName { get { return this._userName; } set { this._userName = value; } } // Check to see if UserName property is set internal bool IsSetUserName() { return this._userName != null; } } }