/*
* 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 iam-2010-05-08.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.IdentityManagement.Model
{
///
/// Contains information about an IAM user entity.
///
///
///
/// This data type is used as a response element in the following operations:
///
///
///
public partial class User
{
private string _arn;
private DateTime? _createDate;
private DateTime? _passwordLastUsed;
private string _path;
private AttachedPermissionsBoundary _permissionsBoundary;
private List _tags = new List();
private string _userId;
private string _userName;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public User() { }
///
/// Instantiates User with the parameterized properties
///
/// The path to the user. For more information about paths, see IAM identifiers in the IAM User Guide. The ARN of the policy used to set the permissions boundary for the user.
/// The friendly name identifying the user.
/// The stable and unique string identifying the user. For more information about IDs, see IAM identifiers in the IAM User Guide.
/// The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the IAM User Guide.
/// The date and time, in ISO 8601 date-time format, when the user was created.
public User(string path, string userName, string userId, string arn, DateTime createDate)
{
_path = path;
_userName = userName;
_userId = userId;
_arn = arn;
_createDate = createDate;
}
///
/// Gets and sets the property Arn.
///
/// The Amazon Resource Name (ARN) that identifies the user. For more information about
/// ARNs and how to use ARNs in policies, see IAM
/// Identifiers in the IAM User Guide.
///
///
[AWSProperty(Required=true, Min=20, Max=2048)]
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 CreateDate.
///
/// The date and time, in ISO 8601 date-time
/// format, when the user was created.
///
///
[AWSProperty(Required=true)]
public DateTime CreateDate
{
get { return this._createDate.GetValueOrDefault(); }
set { this._createDate = value; }
}
// Check to see if CreateDate property is set
internal bool IsSetCreateDate()
{
return this._createDate.HasValue;
}
///
/// Gets and sets the property PasswordLastUsed.
///
/// The date and time, in ISO 8601 date-time
/// format, when the user's password was last used to sign in to an Amazon Web Services
/// website. For a list of Amazon Web Services websites that capture a user's last sign-in
/// time, see the Credential
/// reports topic in the IAM User Guide. If a password is used more than once
/// in a five-minute span, only the first use is returned in this field. If the field
/// is null (no value), then it indicates that they never signed in with a password. This
/// can be because:
///
/// -
///
/// The user never had a password.
///
///
-
///
/// A password exists but has not been used since IAM started tracking this information
/// on October 20, 2014.
///
///
///
/// A null value does not mean that the user never had a password. Also, if the
/// user does not currently have a password but had one in the past, then this field contains
/// the date and time the most recent password was used.
///
///
///
/// This value is returned only in the GetUser and ListUsers operations.
///
///
///
public DateTime PasswordLastUsed
{
get { return this._passwordLastUsed.GetValueOrDefault(); }
set { this._passwordLastUsed = value; }
}
// Check to see if PasswordLastUsed property is set
internal bool IsSetPasswordLastUsed()
{
return this._passwordLastUsed.HasValue;
}
///
/// Gets and sets the property Path.
///
/// The path to the user. For more information about paths, see IAM
/// identifiers in the IAM User Guide.
///
///
///
/// The ARN of the policy used to set the permissions boundary for the user.
///
///
[AWSProperty(Required=true, Min=1, Max=512)]
public string Path
{
get { return this._path; }
set { this._path = value; }
}
// Check to see if Path property is set
internal bool IsSetPath()
{
return this._path != null;
}
///
/// Gets and sets the property PermissionsBoundary.
///
/// For more information about permissions boundaries, see Permissions
/// boundaries for IAM identities in the IAM User Guide.
///
///
public AttachedPermissionsBoundary PermissionsBoundary
{
get { return this._permissionsBoundary; }
set { this._permissionsBoundary = value; }
}
// Check to see if PermissionsBoundary property is set
internal bool IsSetPermissionsBoundary()
{
return this._permissionsBoundary != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of tags that are associated with the user. For more information about tagging,
/// see Tagging
/// IAM resources in the IAM User Guide.
///
///
[AWSProperty(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 UserId.
///
/// The stable and unique string identifying the user. For more information about IDs,
/// see IAM
/// identifiers in the IAM User Guide.
///
///
[AWSProperty(Required=true, Min=16, Max=128)]
public string UserId
{
get { return this._userId; }
set { this._userId = value; }
}
// Check to see if UserId property is set
internal bool IsSetUserId()
{
return this._userId != null;
}
///
/// Gets and sets the property UserName.
///
/// The friendly name identifying the user.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
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;
}
}
}