class AWS::S3::AccessControlList::Grantee

the grantee. This is provided by S3 when reading an ACL.
@attr [String] display_name The display name associated with
group of users.
@attr [String] group_uri A URI that identifies a particular
AWS customer.
@attr [String] canonical_user_id The canonical user ID of an
an AWS customer.
@attr [String] amazon_customer_email The e-mail address of
* ‘group_uri`
* `canonical_user_id`
* `amazon_customer_email`
exactly one of the following attributes:
When constructing a grantee, you must provide a value for
For more details about group URIs, see:
Grantee.new(:group_uri => ’acs.amazonaws.com/groups/global/AllUsers’)
* You can specify a group URI, for example:
Grantee.new(:amazon_customer_email => ‘foo@example.com’)
* You can specify the e-mail address of an AWS customer, for example:
Grantee.new(:canonical_user_id => “8a6925ce4adf588a4f21c32aa379004fef”)
this way, and the display_name attribute will also be provided.
you read an ACL from S3, all grantees will be identified
* You can specify the canonical user ID, for example. When
through a Grant. There are three ways to specify a grantee:
Represents a user who is granted some kind of permission

def signal_attribute

Other tags:
    Api: - private
def signal_attribute
  SIGNAL_ATTRIBUTES.find { |att| send(att) }
end

def stag

Other tags:
    Api: - private
def stag
  if attr = signal_attribute
    super + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
      " xsi:type=\"#{type_for_attr(attr)}\""
  else
    super
  end
end

def type_for_attr(attr)

Other tags:
    Api: - private
def type_for_attr(attr)
  {
    :amazon_customer_email => "AmazonCustomerByEmail",
    :canonical_user_id => "CanonicalUser",
    :group_uri => "Group",
    :uri => "Group",
  }[attr]
end

def validate!

(see ACLObject#validate!)
def validate!
  attr = signal_attribute
  raise "missing amazon_customer_email, canonical_user_id, "+
    "or group_uri" unless attr
  raise "display_name is invalid with #{attr}" if
    attr != :canonical_user_id and display_name
end