/* * 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 CreatePolicy operation. /// Creates a new managed policy for your Amazon Web Services account. /// /// /// /// This operation creates a policy version with a version identifier of v1 /// and sets v1 as the policy's default version. For more information about policy versions, /// see Versioning /// for managed policies in the IAM User Guide. /// /// /// /// As a best practice, you can validate your IAM policies. To learn more, see Validating /// IAM policies in the IAM User Guide. /// /// /// /// For more information about managed policies in general, see Managed /// policies and inline policies in the IAM User Guide. /// /// public partial class CreatePolicyRequest : AmazonIdentityManagementServiceRequest { private string _description; private string _path; private string _policyDocument; private string _policyName; private List _tags = new List(); /// /// Gets and sets the property Description. /// /// A friendly description of the policy. /// /// /// /// Typically used to store information about the permissions defined in the policy. For /// example, "Grants access to production DynamoDB tables." /// /// /// /// The policy description is immutable. After a value is assigned, it cannot be changed. /// /// [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 Path. /// /// The path for the policy. /// /// /// /// 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. /// /// /// /// You cannot use an asterisk (*) in the path name. /// /// /// [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 PolicyDocument. /// /// The JSON policy document that you want to use as the content for the new policy. /// /// /// /// 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 maximum length of the policy document that you can pass in this operation, including /// whitespace, is listed below. To view the maximum character counts of a managed policy /// with no whitespaces, see IAM /// and STS character quotas. /// /// /// /// To learn more about JSON policy grammar, see Grammar /// of the IAM JSON policy language in the IAM User Guide. /// /// /// /// 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 friendly name of the policy. /// /// /// /// 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=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 Tags. /// /// A list of tags that you want to attach to the new IAM customer managed policy. Each /// tag consists of a key name and an associated value. For more information about tagging, /// see Tagging /// IAM resources in the IAM User Guide. /// /// /// /// If any one of the tags is invalid or if you exceed the allowed maximum number of tags, /// then the entire request fails and the resource 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; } } }