/*
* 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
{
///
/// Container for the parameters to the PutRolePolicy operation.
/// Adds or updates an inline policy document that is embedded in the specified IAM role.
///
///
///
/// When you embed an inline policy in a role, the inline policy is used as part of the
/// role's access (permissions) policy. The role's trust policy is created at the same
/// time as the role, using
/// CreateRole
. You can update a role's trust policy using
/// UpdateAssumeRolePolicy
. For more information about roles, see IAM roles
/// in the IAM User Guide.
///
///
///
/// A role can also have a managed policy attached to it. To attach a managed policy to
/// a role, use
/// AttachRolePolicy
. To create a new managed policy, use
/// CreatePolicy
. For information about policies, see Managed
/// policies and inline policies in the IAM User Guide.
///
///
///
/// For information about the maximum number of inline policies that you can embed with
/// a role, see IAM
/// and STS quotas in the IAM User Guide.
///
///
///
/// Because policy documents can be large, you should use POST rather than GET when calling
/// PutRolePolicy
. For general information about using the Query API with
/// IAM, see Making
/// query requests in the IAM User Guide.
///
///
///
public partial class PutRolePolicyRequest : AmazonIdentityManagementServiceRequest
{
private string _policyDocument;
private string _policyName;
private string _roleName;
///
/// Gets and sets the property PolicyDocument.
///
/// The policy document.
///
///
///
/// You must provide policies in JSON format in IAM. However, for CloudFormation templates
/// formatted in YAML, you can provide the policy in JSON or YAML format. 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 PolicyName.
///
/// The name of the policy document.
///
///
///
/// 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=128)]
public string PolicyName
{
get { return this._policyName; }
set { this._policyName = value; }
}
// Check to see if PolicyName property is set
internal bool IsSetPolicyName()
{
return this._policyName != null;
}
///
/// Gets and sets the property RoleName.
///
/// The name of the role to associate the policy with.
///
///
///
/// 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;
}
}
}