1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`GetItem`](crate::operation::get_item::builders::GetItemFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`table_name(impl ::std::convert::Into<String>)`](crate::operation::get_item::builders::GetItemFluentBuilder::table_name) / [`set_table_name(Option<String>)`](crate::operation::get_item::builders::GetItemFluentBuilder::set_table_name): <p>The name of the table containing the requested item.</p>
    ///   - [`key(HashMap<String, AttributeValue>)`](crate::operation::get_item::builders::GetItemFluentBuilder::key) / [`set_key(Option<HashMap<String, AttributeValue>>)`](crate::operation::get_item::builders::GetItemFluentBuilder::set_key): <p>A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to retrieve.</p>  <p>For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
    ///   - [`attributes_to_get(Vec<String>)`](crate::operation::get_item::builders::GetItemFluentBuilder::attributes_to_get) / [`set_attributes_to_get(Option<Vec<String>>)`](crate::operation::get_item::builders::GetItemFluentBuilder::set_attributes_to_get): <p>This is a legacy parameter. Use <code>ProjectionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html">AttributesToGet</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
    ///   - [`consistent_read(bool)`](crate::operation::get_item::builders::GetItemFluentBuilder::consistent_read) / [`set_consistent_read(Option<bool>)`](crate::operation::get_item::builders::GetItemFluentBuilder::set_consistent_read): <p>Determines the read consistency model: If set to <code>true</code>, then the operation uses strongly consistent reads; otherwise, the operation uses eventually consistent reads.</p>
    ///   - [`return_consumed_capacity(ReturnConsumedCapacity)`](crate::operation::get_item::builders::GetItemFluentBuilder::return_consumed_capacity) / [`set_return_consumed_capacity(Option<ReturnConsumedCapacity>)`](crate::operation::get_item::builders::GetItemFluentBuilder::set_return_consumed_capacity): <p>Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:</p>  <ul>   <li> <p> <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p> <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p> </li>   <li> <p> <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p> </li>   <li> <p> <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p> </li>  </ul>
    ///   - [`projection_expression(impl ::std::convert::Into<String>)`](crate::operation::get_item::builders::GetItemFluentBuilder::projection_expression) / [`set_projection_expression(Option<String>)`](crate::operation::get_item::builders::GetItemFluentBuilder::set_projection_expression): <p>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.</p>  <p>If no attribute names are specified, then all attributes are returned. If any of the requested attributes are not found, they do not appear in the result.</p>  <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
    ///   - [`expression_attribute_names(HashMap<String, String>)`](crate::operation::get_item::builders::GetItemFluentBuilder::expression_attribute_names) / [`set_expression_attribute_names(Option<HashMap<String, String>>)`](crate::operation::get_item::builders::GetItemFluentBuilder::set_expression_attribute_names): <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>  <ul>   <li> <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p> </li>   <li> <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p> </li>   <li> <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p> </li>  </ul>  <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>  <ul>   <li> <p> <code>Percentile</code> </p> </li>  </ul>  <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>  <ul>   <li> <p> <code>{"#P":"Percentile"}</code> </p> </li>  </ul>  <p>You could then use this substitution in an expression, as in this example:</p>  <ul>   <li> <p> <code>#P = :val</code> </p> </li>  </ul> <note>   <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>  </note>  <p>For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
    /// - On success, responds with [`GetItemOutput`](crate::operation::get_item::GetItemOutput) with field(s):
    ///   - [`item(Option<HashMap<String, AttributeValue>>)`](crate::operation::get_item::GetItemOutput::item): <p>A map of attribute names to <code>AttributeValue</code> objects, as specified by <code>ProjectionExpression</code>.</p>
    ///   - [`consumed_capacity(Option<ConsumedCapacity>)`](crate::operation::get_item::GetItemOutput::consumed_capacity): <p>The capacity units consumed by the <code>GetItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html#ItemSizeCalculations.Reads">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
    /// - On failure, responds with [`SdkError<GetItemError>`](crate::operation::get_item::GetItemError)
    pub fn get_item(&self) -> crate::operation::get_item::builders::GetItemFluentBuilder {
        crate::operation::get_item::builders::GetItemFluentBuilder::new(self.handle.clone())
    }
}