/*
 * 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 dynamodb-2012-08-10.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.DynamoDBv2.Model
{
    /// 
    /// Represents the output of a PutItem operation.
    /// 
    public partial class PutItemResponse : AmazonWebServiceResponse
    {
        private Dictionary _attributes = new Dictionary();
        private ConsumedCapacity _consumedCapacity;
        private ItemCollectionMetrics _itemCollectionMetrics;
        /// 
        /// Gets and sets the property Attributes. 
        /// 
        /// The attribute values as they appeared before the PutItem operation, but
        /// only if ReturnValues is specified as ALL_OLD in the request.
        /// Each element consists of an attribute name and an attribute value.
        /// 
        /// 
        public Dictionary Attributes
        {
            get { return this._attributes; }
            set { this._attributes = value; }
        }
        // Check to see if Attributes property is set
        internal bool IsSetAttributes()
        {
            return this._attributes != null && this._attributes.Count > 0; 
        }
        /// 
        /// Gets and sets the property ConsumedCapacity. 
        /// 
        /// The capacity units consumed by the PutItem operation. The data returned
        /// includes the total provisioned throughput consumed, along with statistics for the
        /// table and any indexes involved in the operation. ConsumedCapacity is
        /// only returned if the ReturnConsumedCapacity parameter was specified.
        /// For more information, see Read/Write
        /// Capacity Mode in the Amazon DynamoDB Developer Guide.
        /// 
        /// 
        public ConsumedCapacity ConsumedCapacity
        {
            get { return this._consumedCapacity; }
            set { this._consumedCapacity = value; }
        }
        // Check to see if ConsumedCapacity property is set
        internal bool IsSetConsumedCapacity()
        {
            return this._consumedCapacity != null;
        }
        /// 
        /// Gets and sets the property ItemCollectionMetrics. 
        /// 
        /// Information about item collections, if any, that were affected by the PutItem
        /// operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics
        /// parameter was specified. If the table does not have any local secondary indexes, this
        /// information is not returned in the response.
        /// 
        ///  
        /// 
        /// Each ItemCollectionMetrics element consists of:
        /// 
        ///   -  
        /// 
        ///  ItemCollectionKey- The partition key value of the item collection.
        /// This is the same as the partition key value of the item itself.
        /// 
        ///
-  
        /// 
        ///  SizeEstimateRangeGB- An estimate of item collection size, in gigabytes.
        /// This value is a two-element array containing a lower bound and an upper bound for
        /// the estimate. The estimate includes the size of all the items in the table, plus the
        /// size of all attributes projected into all of the local secondary indexes on that table.
        /// Use this estimate to measure whether a local secondary index is approaching its size
        /// limit.
        /// 
        ///  
        /// 
        /// The estimate is subject to change over time; therefore, do not rely on the precision
        /// or accuracy of the estimate.
        /// 
        ///
/// 
        public ItemCollectionMetrics ItemCollectionMetrics
        {
            get { return this._itemCollectionMetrics; }
            set { this._itemCollectionMetrics = value; }
        }
        // Check to see if ItemCollectionMetrics property is set
        internal bool IsSetItemCollectionMetrics()
        {
            return this._itemCollectionMetrics != null;
        }
    }
}