docs: def get_item(self, table_name, key_dict,
                   consistent_read=False,
                   expression_attribute_names=None,
                   projection_expression=None,
                   return_consumed_capacity=None):
          """
          Invoke the `GetItem`_ function.
  
          :param str table_name: table to retrieve the item from
          :param dict key_dict: key to use for retrieval.  This will
              be marshalled for you so a native :class:`dict` works.
          :param bool consistent_read: Determines the read consistency model: If
              set to :py:data`True`, then the operation uses strongly consistent
              reads; otherwise, the operation uses eventually consistent reads.
          :param dict expression_attribute_names: One or more substitution tokens
              for attribute names in an expression.
          :param str projection_expression: A string that identifies one or more
              attributes to retrieve from the table. These attributes can include
              scalars, sets, or elements of a JSON document. The attributes in
              the expression must be separated by commas. If no attribute names
              are specified, then all attributes will be returned. If any of the
              requested attributes are not found, they will not appear in the
              result.
          :param str return_consumed_capacity: Determines the level of detail
              about provisioned throughput consumption that is returned in the
              response:
  
                - INDEXES: The response includes the aggregate consumed
                  capacity for the operation, together with consumed capacity for
                  each table and secondary index that was accessed. Note that
                  some operations, such as *GetItem* and *BatchGetItem*, do not
                  access any indexes at all. In these cases, specifying INDEXES
                  will only return consumed capacity information for table(s).
                - TOTAL: The response includes only the aggregate consumed
                  capacity for the operation.
                - NONE: No consumed capacity details are included in the
                  response.
          :rtype: tornado.concurrent.Future
  
          .. _GetItem: http://docs.aws.amazon.com/amazondynamodb/
             latest/APIReference/API_GetItem.html
  
          """
          payload = {'TableName': table_name,
                     'Key': utils.marshall(key_dict),
                     'ConsistentRead': consistent_read}
          if expression_attribute_names:
              payload['ExpressionAttributeNames'] = expression_attribute_names
          if projection_expression:
              payload['ProjectionExpression'] = projection_expression
          if return_consumed_capacity:
              _validate_return_consumed_capacity(return_consumed_capacity)
              payload['ReturnConsumedCapacity'] = return_consumed_capacity
          return self.execute('GetItem', payload)