/*
* 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 PutGroupPolicy operation.
/// Adds or updates an inline policy document that is embedded in the specified IAM group.
///
///
///
/// A user can also have managed policies attached to it. To attach a managed policy to
/// a group, use
/// AttachGroupPolicy
. 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 in
/// a group, 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
/// PutGroupPolicy
. For general information about using the Query API with
/// IAM, see Making
/// query requests in the IAM User Guide.
///
///
///
public partial class PutGroupPolicyRequest : AmazonIdentityManagementServiceRequest
{
private string _groupName;
private string _policyDocument;
private string _policyName;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public PutGroupPolicyRequest() { }
///
/// Instantiates PutGroupPolicyRequest with the parameterized properties
///
/// The name of the group 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 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
)
public PutGroupPolicyRequest(string groupName, string policyName, string policyDocument)
{
_groupName = groupName;
_policyName = policyName;
_policyDocument = policyDocument;
}
///
/// Gets and sets the property GroupName.
///
/// The name of the group 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 GroupName
{
get { return this._groupName; }
set { this._groupName = value; }
}
// Check to see if GroupName property is set
internal bool IsSetGroupName()
{
return this._groupName != null;
}
///
/// 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;
}
}
}