/* * 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 { /// /// Container for the parameters to the UpdateUser operation. /// Assigns new properties to a user. Parameters you pass modify any or all of the following: /// the home directory, role, and policy for the UserName and ServerId /// you specify. /// /// /// /// The response returns the ServerId and the UserName for the /// updated user. /// /// public partial class UpdateUserRequest : AmazonTransferRequest { private string _homeDirectory; private List _homeDirectoryMappings = new List(); private HomeDirectoryType _homeDirectoryType; private string _policy; private PosixProfile _posixProfile; private string _role; private string _serverId; private string _userName; /// /// 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. /// /// /// /// The following is an Entry and Target pair example. /// /// /// /// [ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ] /// /// /// /// /// In most cases, you can use this value instead of the session policy to lock down your /// user to the designated home directory ("chroot"). To do this, you can /// set Entry to '/' and set Target to the HomeDirectory parameter /// value. /// /// /// /// The following is an Entry and Target pair example for chroot. /// /// /// /// [ { "Entry": "/", "Target": "/bucket_name/home/mydirectory" } ] /// /// [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}. /// /// /// /// This policy applies only when the domain of ServerId is Amazon S3. Amazon /// EFS does not use session policies. /// /// /// /// For session policies, Transfer Family stores the policy as a JSON blob, instead of /// the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and /// pass it in the Policy argument. /// /// /// /// For an example of a session policy, see Creating /// a session policy. /// /// /// /// For more information, see AssumeRole /// in the Amazon Web Services Security Token Service API Reference. /// /// /// [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 Systems (Amazon EFS). The /// POSIX permissions that are set on files and directories in your file system determines /// 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 ServerId. /// /// A system-assigned unique identifier for a Transfer Family server instance that the /// user is assigned to. /// /// [AWSProperty(Required=true, 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 UserName. /// /// A unique string that identifies a user and is associated with a server as specified /// by the ServerId. This user name must be a minimum of 3 and a maximum /// of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore /// '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, /// period, or at sign. /// /// [AWSProperty(Required=true, 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; } } }