/* * Copyright 2010-2013 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. */ using System; using System.Collections.Generic; using System.Text; namespace Amazon.Auth.AccessControlPolicy { /// /// Represents a resource involved in an AWS access control policy statement. /// Resources are the service specific AWS entities owned by your account. Amazon /// SQS queues, Amazon S3 buckets and objects, and Amazon SNS topics are all /// examples of AWS resources. /// /// The standard way of specifying an AWS resource is with an Amazon Resource /// Name (ARN). /// /// /// The resource is C in the statement /// "A has permission to do B to C where D applies." /// /// public class Resource { private string resource; /// /// Constructs a new AWS access control policy resource. Resources are /// typically specified as Amazon Resource Names (ARNs). /// /// You specify the resource using the following Amazon Resource Name (ARN) /// format: arn:aws:<vendor>:<region>:<namespace>:<relative-id> /// /// /// >vendor identifies the AWS product (e.g., sns) /// /// /// region is the AWS Region the resource resides in (e.g., us-east-1), if any /// /// /// namespace is the AWS account ID with no hyphens (e.g., 123456789012) /// /// /// relative-id is the service specific portion that identifies the specific resource /// /// /// /// /// For example, an Amazon SQS queue might be addressed with the following /// ARN: arn:aws:sqs:us-east-1:987654321000:MyQueue /// /// /// Some resources may not use every field in an ARN. For example, resources /// in Amazon S3 are global, so they omit the region field: /// arn:aws:s3:::bucket/* /// /// /// The Amazon Resource Name (ARN) uniquely identifying the desired AWS resource. public Resource(string resource) { this.resource = resource; } /// /// Gets the resource ID, typically an Amazon Resource Name (ARN), /// identifying this resource. /// public string Id { get { return resource; } } } }