/*
* 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 PutUserPolicy operation.
/// Adds or updates an inline policy document that is embedded in the specified IAM user.
///
///
///
/// An IAM user can also have a managed policy attached to it. To attach a managed policy
/// to a user, use AttachUserPolicy. 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 limits on the number of inline policies that you can embed in
/// a user, see Limitations
/// on IAM Entities in the IAM User Guide.
///
///
///
/// Because policy documents can be large, you should use POST rather than GET when calling
/// PutUserPolicy
. For general information about using the Query API with
/// IAM, go to Making
/// Query Requests in the IAM User Guide.
///
///
///
public partial class PutUserPolicyRequest : AmazonIdentityManagementServiceRequest
{
private string _policyDocument;
private string _policyName;
private string _userName;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public PutUserPolicyRequest() { }
///
/// Instantiates PutUserPolicyRequest with the parameterized properties
///
/// The name of the user 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: _+=,.@-
/// 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: _+=,.@-
/// The policy document. 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
)
public PutUserPolicyRequest(string userName, string policyName, string policyDocument)
{
_userName = userName;
_policyName = policyName;
_policyDocument = policyDocument;
}
///
/// Gets and sets the property PolicyDocument.
///
/// The policy document.
///
///
///
/// 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 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 UserName.
///
/// The name of the user 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=128)]
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;
}
}
}