api_op_GetUserData.go

 1package imds
 2
 3import (
 4	"context"
 5	"io"
 6
 7	"github.com/aws/smithy-go/middleware"
 8	smithyhttp "github.com/aws/smithy-go/transport/http"
 9)
10
11const getUserDataPath = "/latest/user-data"
12
13// GetUserData uses the path provided to request information from the EC2
14// instance metadata service for dynamic data. The content will be returned
15// as a string, or error if the request failed.
16func (c *Client) GetUserData(ctx context.Context, params *GetUserDataInput, optFns ...func(*Options)) (*GetUserDataOutput, error) {
17	if params == nil {
18		params = &GetUserDataInput{}
19	}
20
21	result, metadata, err := c.invokeOperation(ctx, "GetUserData", params, optFns,
22		addGetUserDataMiddleware,
23	)
24	if err != nil {
25		return nil, err
26	}
27
28	out := result.(*GetUserDataOutput)
29	out.ResultMetadata = metadata
30	return out, nil
31}
32
33// GetUserDataInput provides the input parameters for the GetUserData
34// operation.
35type GetUserDataInput struct{}
36
37// GetUserDataOutput provides the output parameters for the GetUserData
38// operation.
39type GetUserDataOutput struct {
40	Content io.ReadCloser
41
42	ResultMetadata middleware.Metadata
43}
44
45func addGetUserDataMiddleware(stack *middleware.Stack, options Options) error {
46	return addAPIRequestMiddleware(stack,
47		options,
48		"GetUserData",
49		buildGetUserDataPath,
50		buildGetUserDataOutput)
51}
52
53func buildGetUserDataPath(params interface{}) (string, error) {
54	return getUserDataPath, nil
55}
56
57func buildGetUserDataOutput(resp *smithyhttp.Response) (interface{}, error) {
58	return &GetUserDataOutput{
59		Content: resp.Body,
60	}, nil
61}