/*
 * 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 UpdateAssumeRolePolicy operation.
    /// Updates the policy that grants an IAM entity permission to assume a role. This is
    /// typically referred to as the "role trust policy". For more information about roles,
    /// go to Using
    /// Roles to Delegate Permissions and Federate Identities.
    /// 
    public partial class UpdateAssumeRolePolicyRequest : AmazonIdentityManagementServiceRequest
    {
        private string _policyDocument;
        private string _roleName;
        /// 
        /// Gets and sets the property PolicyDocument. 
        /// 
        /// The policy that grants an entity permission to assume the role.
        /// 
        ///  
        /// 
        /// You must provide policies in JSON format in IAM. 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)
        /// 
        ///    
        /// 
        [AWSProperty(Required=true, Min=1, Max=131072)]
        public string PolicyDocument
        {
            get { return this._policyDocument; }
            set { this._policyDocument = value; }
        }
        // Check to see if PolicyDocument property is set
        internal bool IsSetPolicyDocument()
        {
            return this._policyDocument != null;
        }
        /// 
        /// Gets and sets the property RoleName. 
        /// 
        /// The name of the role to update with the new policy.
        /// 
        ///  
        /// 
        /// This parameter allows (through its regex
        /// pattern) a string of characters consisting of upper and lowercase alphanumeric
        /// characters with no spaces. You can also include any of the following characters: _+=,.@-
        /// 
        /// 
        [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;
        }
    }
}