File: api_op_CreateLocationS3.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.30.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 662,428 kB
  • sloc: java: 16,875; makefile: 432; sh: 175
file content (213 lines) | stat: -rw-r--r-- 7,212 bytes parent folder | download
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
// Code generated by smithy-go-codegen DO NOT EDIT.

package datasync

import (
	"context"
	"fmt"
	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
	"github.com/aws/aws-sdk-go-v2/service/datasync/types"
	"github.com/aws/smithy-go/middleware"
	smithyhttp "github.com/aws/smithy-go/transport/http"
)

// Creates a transfer location for an Amazon S3 bucket. DataSync can use this
// location as a source or destination for transferring data.
//
// Before you begin, make sure that you read the following topics:
//
// [Storage class considerations with Amazon S3 locations]
//
// [Evaluating S3 request costs when using DataSync]
//
// For more information, see [Configuring transfers with Amazon S3].
//
// [Storage class considerations with Amazon S3 locations]: https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes
// [Configuring transfers with Amazon S3]: https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html
// [Evaluating S3 request costs when using DataSync]: https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#create-s3-location-s3-requests
func (c *Client) CreateLocationS3(ctx context.Context, params *CreateLocationS3Input, optFns ...func(*Options)) (*CreateLocationS3Output, error) {
	if params == nil {
		params = &CreateLocationS3Input{}
	}

	result, metadata, err := c.invokeOperation(ctx, "CreateLocationS3", params, optFns, c.addOperationCreateLocationS3Middlewares)
	if err != nil {
		return nil, err
	}

	out := result.(*CreateLocationS3Output)
	out.ResultMetadata = metadata
	return out, nil
}

// CreateLocationS3Request
type CreateLocationS3Input struct {

	// Specifies the ARN of the S3 bucket that you want to use as a location. (When
	// creating your DataSync task later, you specify whether this location is a
	// transfer source or destination.)
	//
	// If your S3 bucket is located on an Outposts resource, you must specify an
	// Amazon S3 access point. For more information, see [Managing data access with Amazon S3 access points]in the Amazon S3 User Guide.
	//
	// [Managing data access with Amazon S3 access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
	//
	// This member is required.
	S3BucketArn *string

	// Specifies the Amazon Resource Name (ARN) of the Identity and Access Management
	// (IAM) role that DataSync uses to access your S3 bucket.
	//
	// For more information, see [Accessing S3 buckets].
	//
	// [Accessing S3 buckets]: https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#create-s3-location-access
	//
	// This member is required.
	S3Config *types.S3Config

	// (Amazon S3 on Outposts only) Specifies the Amazon Resource Name (ARN) of the
	// DataSync agent on your Outpost.
	//
	// For more information, see [Deploy your DataSync agent on Outposts].
	//
	// [Deploy your DataSync agent on Outposts]: https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent
	AgentArns []string

	// Specifies the storage class that you want your objects to use when Amazon S3 is
	// a transfer destination.
	//
	// For buckets in Amazon Web Services Regions, the storage class defaults to
	// STANDARD . For buckets on Outposts, the storage class defaults to OUTPOSTS .
	//
	// For more information, see [Storage class considerations with Amazon S3 transfers].
	//
	// [Storage class considerations with Amazon S3 transfers]: https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes
	S3StorageClass types.S3StorageClass

	// Specifies a prefix in the S3 bucket that DataSync reads from or writes to
	// (depending on whether the bucket is a source or destination location).
	//
	// DataSync can't transfer objects with a prefix that begins with a slash ( / ) or
	// includes // , /./ , or /../ patterns. For example:
	//
	//   - /photos
	//
	//   - photos//2006/January
	//
	//   - photos/./2006/February
	//
	//   - photos/../2006/March
	Subdirectory *string

	// Specifies labels that help you categorize, filter, and search for your Amazon
	// Web Services resources. We recommend creating at least a name tag for your
	// transfer location.
	Tags []types.TagListEntry

	noSmithyDocumentSerde
}

// CreateLocationS3Response
type CreateLocationS3Output struct {

	// The ARN of the S3 location that you created.
	LocationArn *string

	// Metadata pertaining to the operation's result.
	ResultMetadata middleware.Metadata

	noSmithyDocumentSerde
}

func (c *Client) addOperationCreateLocationS3Middlewares(stack *middleware.Stack, options Options) (err error) {
	if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
		return err
	}
	err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateLocationS3{}, middleware.After)
	if err != nil {
		return err
	}
	err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateLocationS3{}, middleware.After)
	if err != nil {
		return err
	}
	if err := addProtocolFinalizerMiddlewares(stack, options, "CreateLocationS3"); err != nil {
		return fmt.Errorf("add protocol finalizers: %v", err)
	}

	if err = addlegacyEndpointContextSetter(stack, options); err != nil {
		return err
	}
	if err = addSetLoggerMiddleware(stack, options); err != nil {
		return err
	}
	if err = addClientRequestID(stack); err != nil {
		return err
	}
	if err = addComputeContentLength(stack); err != nil {
		return err
	}
	if err = addResolveEndpointMiddleware(stack, options); err != nil {
		return err
	}
	if err = addComputePayloadSHA256(stack); err != nil {
		return err
	}
	if err = addRetry(stack, options); err != nil {
		return err
	}
	if err = addRawResponseToMetadata(stack); err != nil {
		return err
	}
	if err = addRecordResponseTiming(stack); err != nil {
		return err
	}
	if err = addClientUserAgent(stack, options); err != nil {
		return err
	}
	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
		return err
	}
	if err = addTimeOffsetBuild(stack, c); err != nil {
		return err
	}
	if err = addUserAgentRetryMode(stack, options); err != nil {
		return err
	}
	if err = addOpCreateLocationS3ValidationMiddleware(stack); err != nil {
		return err
	}
	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateLocationS3(options.Region), middleware.Before); err != nil {
		return err
	}
	if err = addRecursionDetection(stack); err != nil {
		return err
	}
	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
		return err
	}
	if err = addResponseErrorMiddleware(stack); err != nil {
		return err
	}
	if err = addRequestResponseLogging(stack, options); err != nil {
		return err
	}
	if err = addDisableHTTPSMiddleware(stack, options); err != nil {
		return err
	}
	return nil
}

func newServiceMetadataMiddleware_opCreateLocationS3(region string) *awsmiddleware.RegisterServiceMetadata {
	return &awsmiddleware.RegisterServiceMetadata{
		Region:        region,
		ServiceID:     ServiceID,
		OperationName: "CreateLocationS3",
	}
}