/
GetObjectTaggingCommand.ts
130 lines (120 loc) · 5.37 KB
/
GetObjectTaggingCommand.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// smithy-typescript generated code
import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint";
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
import { Command as $Command } from "@aws-sdk/smithy-client";
import {
FinalizeHandlerArguments,
Handler,
HandlerExecutionContext,
HttpHandlerOptions as __HttpHandlerOptions,
MetadataBearer as __MetadataBearer,
MiddlewareStack,
SerdeContext as __SerdeContext,
} from "@aws-sdk/types";
import { GetObjectTaggingOutput, GetObjectTaggingRequest } from "../models/models_0";
import {
deserializeAws_restXmlGetObjectTaggingCommand,
serializeAws_restXmlGetObjectTaggingCommand,
} from "../protocols/Aws_restXml";
import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client";
export interface GetObjectTaggingCommandInput extends GetObjectTaggingRequest {}
export interface GetObjectTaggingCommandOutput extends GetObjectTaggingOutput, __MetadataBearer {}
/**
* <p>Returns the tag-set of an object. You send the GET request against the tagging
* subresource associated with the object.</p>
*
* <p>To use this operation, you must have permission to perform the
* <code>s3:GetObjectTagging</code> action. By default, the GET action returns
* information about current version of an object. For a versioned bucket, you can have
* multiple versions of an object in your bucket. To retrieve tags of any other version, use
* the versionId query parameter. You also need permission for the
* <code>s3:GetObjectVersionTagging</code> action.</p>
*
* <p> By default, the bucket owner has this permission and can grant this permission to
* others.</p>
*
* <p> For information about the Amazon S3 object tagging feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object Tagging</a>.</p>
*
* <p>The following actions are related to <code>GetObjectTagging</code>:</p>
* <ul>
* <li>
* <p>
* <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
* </p>
* </li>
* <li>
* <p>
* <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html">GetObjectAttributes</a>
* </p>
* </li>
* <li>
* <p>
* <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
* </p>
* </li>
* </ul>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { S3Client, GetObjectTaggingCommand } from "@aws-sdk/client-s3"; // ES Modules import
* // const { S3Client, GetObjectTaggingCommand } = require("@aws-sdk/client-s3"); // CommonJS import
* const client = new S3Client(config);
* const command = new GetObjectTaggingCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link GetObjectTaggingCommandInput} for command's `input` shape.
* @see {@link GetObjectTaggingCommandOutput} for command's `response` shape.
* @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape.
*
*/
export class GetObjectTaggingCommand extends $Command<
GetObjectTaggingCommandInput,
GetObjectTaggingCommandOutput,
S3ClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties
constructor(readonly input: GetObjectTaggingCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}
/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: S3ClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<GetObjectTaggingCommandInput, GetObjectTaggingCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
this.middlewareStack.use(getBucketEndpointPlugin(configuration));
const stack = clientStack.concat(this.middlewareStack);
const { logger } = configuration;
const clientName = "S3Client";
const commandName = "GetObjectTaggingCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: GetObjectTaggingRequest.filterSensitiveLog,
outputFilterSensitiveLog: GetObjectTaggingOutput.filterSensitiveLog,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}
private serialize(input: GetObjectTaggingCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
return serializeAws_restXmlGetObjectTaggingCommand(input, context);
}
private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<GetObjectTaggingCommandOutput> {
return deserializeAws_restXmlGetObjectTaggingCommand(output, context);
}
// Start section: command_body_extra
// End section: command_body_extra
}