// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package dynamodb import ( "context" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" ) // Represents the input of a GetItem operation. type GetItemInput struct { _ struct{} `type:"structure"` // This is a legacy parameter. Use ProjectionExpression instead. For more information, // see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html) // in the Amazon DynamoDB Developer Guide. AttributesToGet []string `min:"1" type:"list"` // Determines the read consistency model: If set to true, then the operation // uses strongly consistent reads; otherwise, the operation uses eventually // consistent reads. ConsistentRead *bool `type:"boolean"` // One or more substitution tokens for attribute names in an expression. The // following are some use cases for using ExpressionAttributeNames: // // * To access an attribute whose name conflicts with a DynamoDB reserved // word. // // * To create a placeholder for repeating occurrences of an attribute name // in an expression. // // * To prevent special characters in an attribute name from being misinterpreted // in an expression. // // Use the # character in an expression to dereference an attribute name. For // example, consider the following attribute name: // // * Percentile // // 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 Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) // in the Amazon DynamoDB Developer Guide). To work around this, you could specify // the following for ExpressionAttributeNames: // // * {"#P":"Percentile"} // // You could then use this substitution in an expression, as in this example: // // * #P = :val // // Tokens that begin with the : character are expression attribute values, which // are placeholders for the actual value at runtime. // // For more information on expression attribute names, see Specifying Item Attributes // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) // in the Amazon DynamoDB Developer Guide. ExpressionAttributeNames map[string]string `type:"map"` // A map of attribute names to AttributeValue objects, representing the primary // key of the item to retrieve. // // 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. // // Key is a required field Key map[string]AttributeValue `type:"map" required:"true"` // 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 are returned. If // any of the requested attributes are not found, they do not appear in the // result. // // For more information, see Specifying Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) // in the Amazon DynamoDB Developer Guide. ProjectionExpression *string `type:"string"` // Determines the level of detail about provisioned throughput consumption that // is returned in the response: // // * INDEXES - The response includes the aggregate ConsumedCapacity for the // operation, together with ConsumedCapacity 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 ConsumedCapacity information for table(s). // // * TOTAL - The response includes only the aggregate ConsumedCapacity for // the operation. // // * NONE - No ConsumedCapacity details are included in the response. ReturnConsumedCapacity ReturnConsumedCapacity `type:"string" enum:"true"` // The name of the table containing the requested item. // // TableName is a required field TableName *string `min:"3" type:"string" required:"true"` } // String returns the string representation func (s GetItemInput) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. func (s *GetItemInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "GetItemInput"} if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 { invalidParams.Add(aws.NewErrParamMinLen("AttributesToGet", 1)) } if s.Key == nil { invalidParams.Add(aws.NewErrParamRequired("Key")) } if s.TableName == nil { invalidParams.Add(aws.NewErrParamRequired("TableName")) } if s.TableName != nil && len(*s.TableName) < 3 { invalidParams.Add(aws.NewErrParamMinLen("TableName", 3)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // Represents the output of a GetItem operation. type GetItemOutput struct { _ struct{} `type:"structure"` // The capacity units consumed by the GetItem 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 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) // in the Amazon DynamoDB Developer Guide. ConsumedCapacity *ConsumedCapacity `type:"structure"` // A map of attribute names to AttributeValue objects, as specified by ProjectionExpression. Item map[string]AttributeValue `type:"map"` } // String returns the string representation func (s GetItemOutput) String() string { return awsutil.Prettify(s) } const opGetItem = "GetItem" // GetItemRequest returns a request value for making API operation for // Amazon DynamoDB. // // The GetItem operation returns a set of attributes for the item with the given // primary key. If there is no matching item, GetItem does not return any data // and there will be no Item element in the response. // // GetItem provides an eventually consistent read by default. If your application // requires a strongly consistent read, set ConsistentRead to true. Although // a strongly consistent read might take more time than an eventually consistent // read, it always returns the last updated value. // // // Example sending a request using GetItemRequest. // req := client.GetItemRequest(params) // resp, err := req.Send(context.TODO()) // if err == nil { // fmt.Println(resp) // } // // Please also see https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GetItem func (c *Client) GetItemRequest(input *GetItemInput) GetItemRequest { op := &aws.Operation{ Name: opGetItem, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetItemInput{} } req := c.newRequest(op, input, &GetItemOutput{}) if req.Config.EnableEndpointDiscovery { de := discovererDescribeEndpoints{ Client: c, Required: false, EndpointCache: c.endpointCache, Params: map[string]*string{ "op": &req.Operation.Name, }, } for k, v := range de.Params { if v == nil { delete(de.Params, k) } } req.Handlers.Build.PushFrontNamed(aws.NamedHandler{ Name: "crr.endpointdiscovery", Fn: de.Handler, }) } return GetItemRequest{Request: req, Input: input, Copy: c.GetItemRequest} } // GetItemRequest is the request type for the // GetItem API operation. type GetItemRequest struct { *aws.Request Input *GetItemInput Copy func(*GetItemInput) GetItemRequest } // Send marshals and sends the GetItem API request. func (r GetItemRequest) Send(ctx context.Context) (*GetItemResponse, error) { r.Request.SetContext(ctx) err := r.Request.Send() if err != nil { return nil, err } resp := &GetItemResponse{ GetItemOutput: r.Request.Data.(*GetItemOutput), response: &aws.Response{Request: r.Request}, } return resp, nil } // GetItemResponse is the response type for the // GetItem API operation. type GetItemResponse struct { *GetItemOutput response *aws.Response } // SDKResponseMetdata returns the response metadata for the // GetItem request. func (r *GetItemResponse) SDKResponseMetdata() *aws.Response { return r.response }