/* * Copyright 2010-2014 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 Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.IdentityManagement.Model { /// /// Container for the parameters to the CreateRole operation. /// Creates a new role for your AWS account. For more information about roles, go to IAM /// Roles. For information about limitations on role names and the number of roles /// you can create, go to Limitations /// on IAM Entities in the IAM User Guide. /// public partial class CreateRoleRequest : AmazonIdentityManagementServiceRequest { private string _assumeRolePolicyDocument; private string _description; private int? _maxSessionDuration; private string _path; private string _permissionsBoundary; private string _roleName; private List _tags = new List(); /// /// Gets and sets the property AssumeRolePolicyDocument. /// /// The trust relationship policy document that grants an entity permission to assume /// the role. /// /// /// /// In IAM, you must provide a JSON policy that has been converted to a string. However, /// for AWS CloudFormation templates formatted in YAML, you can provide the policy in /// JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format /// before submitting it to IAM. /// /// /// /// The regex pattern used to validate this /// parameter is a string of characters consisting of the following: /// ///
  • /// /// Any printable ASCII character ranging from the space character (\u0020) /// through the end of the ASCII character range /// ///
  • /// /// The printable characters in the Basic Latin and Latin-1 Supplement character set (through /// \u00FF) /// ///
  • /// /// The special characters tab (\u0009), line feed (\u000A), /// and carriage return (\u000D) /// ///
/// /// Upon success, the response includes the same trust policy in JSON format. /// ///
[AWSProperty(Required=true, Min=1, Max=131072)] public string AssumeRolePolicyDocument { get { return this._assumeRolePolicyDocument; } set { this._assumeRolePolicyDocument = value; } } // Check to see if AssumeRolePolicyDocument property is set internal bool IsSetAssumeRolePolicyDocument() { return this._assumeRolePolicyDocument != null; } /// /// Gets and sets the property Description. /// /// A description of the role. /// /// [AWSProperty(Max=1000)] public string Description { get { return this._description; } set { this._description = value; } } // Check to see if Description property is set internal bool IsSetDescription() { return this._description != null; } /// /// Gets and sets the property MaxSessionDuration. /// /// The maximum session duration (in seconds) that you want to set for the specified role. /// If you do not specify a value for this setting, the default maximum of one hour is /// applied. This setting can have a value from 1 hour to 12 hours. /// /// /// /// Anyone who assumes the role from the AWS CLI or API can use the DurationSeconds /// API parameter or the duration-seconds CLI parameter to request a longer /// session. The MaxSessionDuration setting determines the maximum duration /// that can be requested using the DurationSeconds parameter. If users don't /// specify a value for the DurationSeconds parameter, their security credentials /// are valid for one hour by default. This applies when you use the AssumeRole* /// API operations or the assume-role* CLI operations but does not apply /// when you use those operations to create a console URL. For more information, see Using IAM /// Roles in the IAM User Guide. /// /// [AWSProperty(Min=3600, Max=43200)] public int MaxSessionDuration { get { return this._maxSessionDuration.GetValueOrDefault(); } set { this._maxSessionDuration = value; } } // Check to see if MaxSessionDuration property is set internal bool IsSetMaxSessionDuration() { return this._maxSessionDuration.HasValue; } /// /// Gets and sets the property Path. /// /// The path to the role. For more information about paths, see IAM /// Identifiers in the IAM User Guide. /// /// /// /// This parameter is optional. If it is not included, it defaults to a slash (/). /// /// /// /// This parameter allows (through its regex /// pattern) a string of characters consisting of either a forward slash (/) by itself /// or a string that must begin and end with forward slashes. In addition, it can contain /// any ASCII character from the ! (\u0021) through the DEL character (\u007F), /// including most punctuation characters, digits, and upper and lowercased letters. /// /// [AWSProperty(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. /// /// The ARN of the policy that is used to set the permissions boundary for the role. /// /// [AWSProperty(Min=20, Max=2048)] public string 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 RoleName. /// /// The name of the role to create. /// /// /// /// IAM user, group, role, and policy names must be unique within the account. Names are /// not distinguished by case. For example, you cannot create resources named both "MyResource" /// and "myresource". /// /// [AWSProperty(Required=true, Min=1, Max=64)] public string RoleName { get { return this._roleName; } set { this._roleName = value; } } // Check to see if RoleName property is set internal bool IsSetRoleName() { return this._roleName != null; } /// /// Gets and sets the property Tags. /// /// A list of tags that you want to attach to the newly created role. Each tag consists /// of a key name and an associated value. For more information about tagging, see Tagging IAM Identities /// in the IAM User Guide. /// /// /// /// If any one of the tags is invalid or if you exceed the allowed number of tags per /// role, then the entire request fails and the role is not created. /// /// /// [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; } } }