BatchPutAttributes
Description
With the BatchPutAttributes operation, you can perform multiple PutAttribute
		operations in a single call. This helps you yield savings in round trips and latencies, and enables Amazon SimpleDB to optimize
		requests, which generally yields better throughput.
		
		You can specify attributes and values for items using a combination of the
		Item.Y.Attribute.X.Name and Item.Y.Attribute.X.Value parameters.
		To specify attributes and values for the first item, you use Item.1.Attribute.1.Name and
		Item.1.Attribute.1.Value for the first attribute, Item.1.Attribute.2.Name
		and Item.1.Attribute.2.Value for the second attribute, and so on. 
		To specify attributes and values for the second item, you use Item.2.Attribute.1.Name and
		Item.2.Attribute.1.Value for the first attribute, Item.2.Attribute.2.Name
		and Item.2.Attribute.2.Value for the second attribute, and so on.
		
Amazon SimpleDB uniquely identifies attributes in an item by their name/value combinations. For example, a
			single item can have the attributes { "first_name", "first_value" } and  {
				"first_name", second_value" }. However, it cannot have two attribute instances where
			both the Item.Y.Attribute.X.Name and Item.Y.Attribute.X.Value are
			the same.
Optionally, you can supply the Replace parameter for each
			individual attribute. Setting this value to true causes the new attribute value to
			replace the existing attribute value(s) if any exist. Otherwise, Amazon SimpleDB simply inserts the attribute values.
			For example, if an item has the attributes { 'a', '1' }, { 'b', '2'}, and
			{ 'b', '3' } and the requester calls BatchPutAttributes using the
			attributes { 'b', '4' } with the Replace parameter set to
			true, the final attributes of the item are changed to { 'a', '1' } and
			{ 'b', '4' }. This occurs because the new 'b' attribute replaces the old value. 
Note
You cannot specify an empty string as an item or attribute name.
The BatchPutAttributes operation succeeds or fails in its entirety. There are
			no partial puts.
You can execute multiple BatchPutAttributes operations and other operations in parallel.
			However, large numbers of concurrent BatchPutAttributes calls can result in Service Unavailable (503)
			responses.
			
This operation is vulnerable to exceeding the maximum URL size when making a REST request using the HTTP GET method.
This operation does not support conditions using Expected.Name,
					Expected.Value, or
				Expected.Exists.
The following limitations are enforced for this operation:
- 
				256 attribute name-value pairs per item 
- 
				1 MB request size 
- 
				1 billion attributes per domain 
- 
				10 GB of total user data storage per domain 
- 
				25 item limit per BatchPutAttributesoperation
Request Parameters
| Name | Description | Required | 
|---|---|---|
| Item.Y.ItemName | The name of the item. Type: String. Default: None. | Yes | 
| 
 | The name of the attribute for the specified item. Y or X can be any positive integer or 0. Type: String. Default: None. | Yes | 
| 
 | The value of the attribute for the specified item. Y or X can be any positive integer or 0. Type: String. Default: None. | Yes | 
| 
 |  Flag to specify whether to replace the Attribute/Value or to add a new
							Attribute/Value. The  To reduce the request size and latencies, we recommend that you do not specify this request parameter at all. Type: Boolean.  Default:  | No | 
| DomainName | The name of the domain in which to perform the operation. Type: String Default: None. | Yes | 
Note
When using eventually consistent reads, a GetAttributes or Select request (read) immediately after a DeleteAttributes or PutAttributes request (write) might not return the updated data. Some items might be updated before others, despite the fact that the operation never partially succeeds. A consistent read always reflects all writes that received a successful response prior to the read. For more information, see Consistency.
Response Elements
Special Errors
| Error | Description | 
|---|---|
| DuplicateItemName | Item item_namewas specified more than once. | 
| InvalidParameterValue | Value valuefor parameter Name is invalid. Value exceeds maximum
							length of 1024. | 
| InvalidParameterValue | Value valuefor parameter Value is invalid. Value exceeds maximum
							length of 1024. | 
| InvalidParameterValue | Value valuefor parameter Item is invalid. Value exceeds max length
							of 1024. | 
| InvalidParameterValue | Value valuefor parameter Replace is invalid. The Replace flag
							should be eithertrueorfalse. | 
| MissingParameter | The request must contain the parameter DomainName. | 
| MissingParameter | The request must contain the parameter ItemName. | 
| MissingParameter | Attribute.Valuemissing forAttribute.Name=attribute_name. | 
| MissingParameter | Attribute.Namemissing forAttribute.Value=attribute_name. | 
| MissingParameter | No attributes for item item_name. | 
| NoSuchDomain | The specified domain does not exist. | 
| NumberItemAttributesExceeded | Too many attributes in this item. | 
| NumberDomainAttributesExceeded | Too many attributes in this domain. | 
| NumberDomainBytesExceeded | Too many bytes in this domain. | 
| 
 | Too many items in a single call. Up to 25 items per call allowed. | 
| 
 | Too many attributes for item itemNamein a single call. Up to 256 attributes per call allowed. | 
Examples
Sample Request
The following example uses BatchPutAttributes on Shirt1, which
				has attributes (Color=Blue), (Size=Med), and
				(Price=0014.99) in MyDomain. If Shirt1 already had the
					Price attribute, this operation would replace the values for that attribute.
					Otherwise, a new (additional) Price attribute is created with the value 0014.99.
			The example also uses BatchPutAttributes on Shirt2 which
			has attributes (Color=Red), (Size=Large), and
			(Price=0019.99).
			
https://sdb.amazonaws.com/ ?Action=BatchPutAttributes &Item.1.ItemName=Shirt1 &Item.1.Attribute.1.Name=Color &Item.1.Attribute.1.Value=Blue &Item.1.Attribute.2.Name=Size &Item.1.Attribute.2.Value=Med &Item.1.Attribute.3.Name=Price &Item.1.Attribute.3.Value=0014.99 &Item.1.Attribute.3.Replace=true &Item.2.ItemName=Shirt2 &Item.2.Attribute.1.Name=Color &Item.2.Attribute.1.Value=Red &Item.2.Attribute.2.Name=Size &Item.2.Attribute.2.Value=Large &Item.2.Attribute.3.Name=Price &Item.2.Attribute.3.Value=0019.99 &AWSAccessKeyId=[valid access key id] &DomainName=MyDomain &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-01-12T15%3A03%3A05-07%3A00 &Version=2009-04-15 &Signature=[valid signature]
Sample Response
<BatchPutAttributesResponse> <ResponseMetadata> <RequestId>490206ce-8292-456c-a00f-61b335eb202b</RequestId> <BoxUsage>0.0000219907</BoxUsage> </ResponseMetadata> </BatchPutAttributesResponse>