/* * 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 sns-2010-03-31.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.SimpleNotificationService.Model { /// /// Container for the parameters to the AddPermission operation. /// Adds a statement to a topic's access control policy, granting access for the specified /// AWS accounts to the specified actions. /// public partial class AddPermissionRequest : AmazonSimpleNotificationServiceRequest { private List _actionName = new List(); private List _awsAccountId = new List(); private string _label; private string _topicArn; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public AddPermissionRequest() { } /// /// Instantiates AddPermissionRequest with the parameterized properties /// /// The ARN of the topic whose access control policy you wish to modify. /// A unique identifier for the new policy statement. /// The AWS account IDs of the users (principals) who will be given access to the specified actions. The users must have AWS accounts, but do not need to be signed up for this service. /// The action you want to allow for the specified principal(s). Valid values: Any Amazon SNS action name, for example Publish. public AddPermissionRequest(string topicArn, string label, List awsAccountId, List actionName) { _topicArn = topicArn; _label = label; _awsAccountId = awsAccountId; _actionName = actionName; } /// /// Gets and sets the property ActionName. /// /// The action you want to allow for the specified principal(s). /// /// /// /// Valid values: Any Amazon SNS action name, for example Publish. /// /// [AWSProperty(Required=true)] public List ActionName { get { return this._actionName; } set { this._actionName = value; } } // Check to see if ActionName property is set internal bool IsSetActionName() { return this._actionName != null && this._actionName.Count > 0; } /// /// Gets and sets the property AWSAccountId. /// /// The AWS account IDs of the users (principals) who will be given access to the specified /// actions. The users must have AWS accounts, but do not need to be signed up for this /// service. /// /// [AWSProperty(Required=true)] public List AWSAccountId { get { return this._awsAccountId; } set { this._awsAccountId = value; } } // Check to see if AWSAccountId property is set internal bool IsSetAWSAccountId() { return this._awsAccountId != null && this._awsAccountId.Count > 0; } /// /// Gets and sets the property Label. /// /// A unique identifier for the new policy statement. /// /// [AWSProperty(Required=true)] public string Label { get { return this._label; } set { this._label = value; } } // Check to see if Label property is set internal bool IsSetLabel() { return this._label != null; } /// /// Gets and sets the property TopicArn. /// /// The ARN of the topic whose access control policy you wish to modify. /// /// [AWSProperty(Required=true)] public string TopicArn { get { return this._topicArn; } set { this._topicArn = value; } } // Check to see if TopicArn property is set internal bool IsSetTopicArn() { return this._topicArn != null; } } }