You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 31, 2025. It is now read-only.
[](https://docs.aws.amazon.com/sdk-for-go/api)[](https://gitter.im/aws/aws-sdk-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)[](https://github.com/aws/aws-sdk-go/actions/workflows/go.yml)[](https://github.com/aws/aws-sdk-go/blob/main/LICENSE.txt)
aws-sdk-go is the v1 AWS SDK for the Go programming language.
6
-
7
-
## :warning: This SDK is in maintenance mode
5
+
# :no_entry_sign: This SDK has reached end-of-support
8
6
9
7
We previously [announced](https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-go-v1-on-july-31-2025)
10
-
the upcoming **end-of-support for AWS SDK for Go (v1)**.
8
+
our end-of-support plan for AWS SDK for Go (v1).
11
9
12
-
Per that announcement, as of 7/31/2024, **the SDK has entered maintenance mode**.
13
-
Going forward, we will limit releases to address critical bug fixes and security
14
-
issues only. The SDK will not receive API updates for new or existing services,
15
-
or be updated to support new regions.
10
+
Per that announcement, as of 7/31/2025, **the SDK has entered end-of-support**.
11
+
It will not receive further updates.
16
12
17
-
Maintenance mode will last for 1 year. After 7/31/2025, the SDK will enter end-of-support, and no updates at all will be made.
18
13
We recommend that you migrate to [AWS SDK for Go v2](https://aws.github.io/aws-sdk-go-v2/docs/).
19
14
For additional details as well as information on how to migrate, please refer
20
15
to the linked announcement.
21
16
22
-
Jump To:
23
-
*[Getting Started](#Getting-Started)
24
-
*[Quick Examples](#Quick-Examples)
25
-
*[Getting Help](#Getting-Help)
26
-
*[Contributing](#Contributing)
27
-
*[More Resources](#Resources)
28
-
29
-
## Getting Started
30
-
31
-
### Installing
32
-
Use `go get` to retrieve the SDK to add it to your project's Go module dependencies.
33
-
34
-
go get github.com/aws/aws-sdk-go
35
-
36
-
To update the SDK use `go get -u` to retrieve the latest version of the SDK.
37
-
38
-
go get -u github.com/aws/aws-sdk-go
39
-
40
-
## Quick Examples
17
+
## Quick Examples
41
18
42
19
### Complete SDK Example
43
20
@@ -138,36 +115,36 @@ The SDK core packages are all available under the aws package at the root of
138
115
the SDK. Each client for a supported AWS service is available within its own
139
116
package under the service folder at the root of the SDK.
140
117
141
-
* aws - SDK core, provides common shared types such as Config, Logger,
142
-
and utilities to make working with API parameters easier.
118
+
- aws - SDK core, provides common shared types such as Config, Logger,
119
+
and utilities to make working with API parameters easier.
143
120
144
-
* awserr - Provides the error interface that the SDK will use for all
145
-
errors that occur in the SDK's processing. This includes service API
146
-
response errors as well. The Error type is made up of a code and message.
147
-
Cast the SDK's returned error type to awserr.Error and call the Code
148
-
method to compare returned error to specific error codes. See the package's
149
-
documentation for additional values that can be extracted such as RequestID.
121
+
- awserr - Provides the error interface that the SDK will use for all
122
+
errors that occur in the SDK's processing. This includes service API
123
+
response errors as well. The Error type is made up of a code and message.
124
+
Cast the SDK's returned error type to awserr.Error and call the Code
125
+
method to compare returned error to specific error codes. See the package's
126
+
documentation for additional values that can be extracted such as RequestID.
150
127
151
-
* credentials - Provides the types and built in credentials providers
152
-
the SDK will use to retrieve AWS credentials to make API requests with.
153
-
Nested under this folder are also additional credentials providers such as
154
-
stscreds for assuming IAM roles, and ec2rolecreds for EC2 Instance roles.
128
+
- credentials - Provides the types and built in credentials providers
129
+
the SDK will use to retrieve AWS credentials to make API requests with.
130
+
Nested under this folder are also additional credentials providers such as
131
+
stscreds for assuming IAM roles, and ec2rolecreds for EC2 Instance roles.
155
132
156
-
* endpoints - Provides the AWS Regions and Endpoints metadata for the SDK.
157
-
Use this to lookup AWS service endpoint information such as which services
158
-
are in a region, and what regions a service is in. Constants are also provided
159
-
for all region identifiers, e.g UsWest2RegionID for "us-west-2".
133
+
- endpoints - Provides the AWS Regions and Endpoints metadata for the SDK.
134
+
Use this to lookup AWS service endpoint information such as which services
135
+
are in a region, and what regions a service is in. Constants are also provided
136
+
for all region identifiers, e.g UsWest2RegionID for "us-west-2".
160
137
161
-
* session - Provides initial default configuration, and load
162
-
configuration from external sources such as environment and shared
163
-
credentials file.
138
+
- session - Provides initial default configuration, and load
139
+
configuration from external sources such as environment and shared
140
+
credentials file.
164
141
165
-
* request - Provides the API request sending, and retry logic for the SDK.
166
-
This package also includes utilities for defining your own request
167
-
retryer, and configuring how the SDK processes the request.
142
+
- request - Provides the API request sending, and retry logic for the SDK.
143
+
This package also includes utilities for defining your own request
144
+
retryer, and configuring how the SDK processes the request.
168
145
169
-
* service - Clients for AWS services. All services supported by the SDK are
170
-
available under this folder.
146
+
- service - Clients for AWS services. All services supported by the SDK are
147
+
available under this folder.
171
148
172
149
### How to Use the SDK's AWS Service Clients
173
150
@@ -216,15 +193,15 @@ its default credential chain. See the session package for more information
216
193
on this chain, and how to configure it. The common items in the credential
217
194
chain are the following:
218
195
219
-
* Environment Credentials - Set of environment variables that are useful
220
-
when sub processes are created for specific roles.
196
+
- Environment Credentials - Set of environment variables that are useful
197
+
when sub processes are created for specific roles.
221
198
222
-
* Shared Credentials file (~/.aws/credentials) - This file stores your
223
-
credentials based on a profile name and is useful for local development.
199
+
- Shared Credentials file (~/.aws/credentials) - This file stores your
200
+
credentials based on a profile name and is useful for local development.
224
201
225
-
* EC2 Instance Role Credentials - Use EC2 Instance Role to assign credentials
226
-
to application running on an EC2 instance. This removes the need to manage
227
-
credential files in production.
202
+
- EC2 Instance Role Credentials - Use EC2 Instance Role to assign credentials
203
+
to application running on an EC2 instance. This removes the need to manage
204
+
credential files in production.
228
205
229
206
Credentials can be configured in code as well by setting the Config's Credentials
230
207
value to a custom provider or using one of the providers included with the
@@ -324,40 +301,40 @@ and an error. The SDK provides methods for making the API call in multiple ways.
324
301
In this list we'll use the S3 ListObjects API as an example for the different
325
302
ways of making API requests.
326
303
327
-
* ListObjects - Base API operation that will make the API request to the service.
304
+
- ListObjects - Base API operation that will make the API request to the service.
328
305
329
-
* ListObjectsRequest - API methods suffixed with Request will construct the
330
-
API request, but not send it. This is also helpful when you want to get a
331
-
presigned URL for a request, and share the presigned URL instead of your
332
-
application making the request directly.
306
+
- ListObjectsRequest - API methods suffixed with Request will construct the
307
+
API request, but not send it. This is also helpful when you want to get a
308
+
presigned URL for a request, and share the presigned URL instead of your
309
+
application making the request directly.
333
310
334
-
* ListObjectsPages - Same as the base API operation, but uses a callback to
335
-
automatically handle pagination of the API's response.
311
+
- ListObjectsPages - Same as the base API operation, but uses a callback to
312
+
automatically handle pagination of the API's response.
336
313
337
-
* ListObjectsWithContext - Same as base API operation, but adds support for
338
-
the Context pattern. This is helpful for controlling the canceling of in
339
-
flight requests. See the Go standard library context package for more
340
-
information. This method also takes request package's Option functional
341
-
options as the variadic argument for modifying how the request will be
342
-
made, or extracting information from the raw HTTP response.
314
+
- ListObjectsWithContext - Same as base API operation, but adds support for
315
+
the Context pattern. This is helpful for controlling the canceling of in
316
+
flight requests. See the Go standard library context package for more
317
+
information. This method also takes request package's Option functional
318
+
options as the variadic argument for modifying how the request will be
319
+
made, or extracting information from the raw HTTP response.
343
320
344
-
* ListObjectsPagesWithContext - same as ListObjectsPages, but adds support for
345
-
the Context pattern. Similar to ListObjectsWithContext this method also
346
-
takes the request package's Option function option types as the variadic
347
-
argument.
321
+
- ListObjectsPagesWithContext - same as ListObjectsPages, but adds support for
322
+
the Context pattern. Similar to ListObjectsWithContext this method also
323
+
takes the request package's Option function option types as the variadic
324
+
argument.
348
325
349
326
In addition to the API operations the SDK also includes several higher level
350
327
methods that abstract checking for and waiting for an AWS resource to be in
351
328
a desired state. In this list we'll use WaitUntilBucketExists to demonstrate
352
329
the different forms of waiters.
353
330
354
-
* WaitUntilBucketExists. - Method to make API request to query an AWS service for
355
-
a resource's state. Will return successfully when that state is accomplished.
331
+
- WaitUntilBucketExists. - Method to make API request to query an AWS service for
332
+
a resource's state. Will return successfully when that state is accomplished.
356
333
357
-
* WaitUntilBucketExistsWithContext - Same as WaitUntilBucketExists, but adds
358
-
support for the Context pattern. In addition these methods take request
359
-
package's WaiterOptions to configure the waiter, and how underlying request
360
-
will be made by the SDK.
334
+
- WaitUntilBucketExistsWithContext - Same as WaitUntilBucketExists, but adds
335
+
support for the Context pattern. In addition these methods take request
336
+
package's WaiterOptions to configure the waiter, and how underlying request
337
+
will be made by the SDK.
361
338
362
339
The API method will document which error codes the service might return for
363
340
the operation. These errors will also be available as const strings prefixed
@@ -430,60 +407,15 @@ be request.WaiterResourceNotReadyErrorCode.
430
407
panic(fmt.Errorf("failed to wait for bucket to exist, %v", err))
431
408
}
432
409
fmt.Println("Bucket", myBucket, "exists")
433
-
```
434
-
435
-
## Getting Help
436
-
437
-
Please use these community resources for getting help. We use the GitHub issues
438
-
for tracking bugs and feature requests.
439
-
440
-
* Ask a question on [StackOverflow](http://stackoverflow.com/) and tag it with the [`aws-sdk-go`](http://stackoverflow.com/questions/tagged/aws-sdk-go) tag.
441
-
* Come join the AWS SDK for Go community chat on [gitter](https://gitter.im/aws/aws-sdk-go).
442
-
* Open a support ticket with [AWS Support](http://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).
443
-
* If you think you may have found a bug, please open an [issue](https://github.com/aws/aws-sdk-go/issues/new/choose).
444
-
445
-
This SDK implements AWS service APIs. For general issues regarding the AWS services and their limitations, you may also take a look at the [Amazon Web Services Discussion Forums](https://forums.aws.amazon.com/).
446
-
447
-
### Opening Issues
448
-
449
-
If you encounter a bug with the AWS SDK for Go we would like to hear about it.
450
-
Search the [existing issues](https://github.com/aws/aws-sdk-go/issues) and see
451
-
if others are also experiencing the issue before opening a new issue. Please
452
-
include the version of AWS SDK for Go, Go language, and OS you’re using. Please
453
-
also include reproduction case when appropriate.
454
-
455
-
The GitHub issues are intended for bug reports and feature requests. For help
456
-
and questions with using AWS SDK for Go please make use of the resources listed
457
-
in the [Getting Help](https://github.com/aws/aws-sdk-go#getting-help) section.
458
-
Keeping the list of open issues lean will help us respond in a timely manner.
459
-
460
-
## Contributing
461
-
462
-
We work hard to provide a high-quality and useful SDK for our AWS services, and we greatly value feedback and contributions from our community. Please review our [contributing guidelines](./CONTRIBUTING.md) before submitting any [issues] or [pull requests][pr] to ensure we have all the necessary information to effectively respond to your bug report or contribution.
463
-
464
-
## Maintenance and support for SDK major versions
465
-
466
-
For information about maintenance and support for SDK major versions and our underlying dependencies, see the following in the AWS SDKs and Tools Shared Configuration and Credentials Reference Guide:
467
-
468
-
*[AWS SDKs and Tools Maintenance Policy](https://docs.aws.amazon.com/credref/latest/refdocs/maint-policy.html)
469
-
*[AWS SDKs and Tools Version Support Matrix](https://docs.aws.amazon.com/credref/latest/refdocs/version-support-matrix.html)
470
-
471
-
### Go version support policy
472
-
473
-
The v2 SDK follows the upstream [release policy](https://go.dev/doc/devel/release#policy)
474
-
with an additional six months of support for the most recently deprecated
475
-
language version.
476
-
477
-
**AWS reserves the right to drop support for unsupported Go versions earlier to
478
-
address critical security issues.**
410
+
```
479
411
480
412
## Resources
481
413
482
414
[Developer guide](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/welcome.html) - This document
483
415
is a general introduction on how to configure and make requests with the SDK.
484
416
If this is your first time using the SDK, this documentation and the API
485
417
documentation will help you get started. This document focuses on the syntax
486
-
and behavior of the SDK. The [Service Developer Guide](https://aws.amazon.com/documentation/)
418
+
and behavior of the SDK. The [Service Developer Guide](https://aws.amazon.com/documentation/)
487
419
will help you get started using specific AWS services.
488
420
489
421
[SDK API Reference Documentation](https://docs.aws.amazon.com/sdk-for-go/api/) - Use this
@@ -494,20 +426,10 @@ API operation require parameters.
494
426
495
427
[Service Documentation](https://aws.amazon.com/documentation/) - Use this
496
428
documentation to learn how to interface with AWS services. These guides are
497
-
great for getting started with a service, or when looking for more
498
-
information about a service. While this document is not required for coding,
429
+
great for getting started with a service, or when looking for more
430
+
information about a service. While this document is not required for coding,
499
431
services may supply helpful samples to look out for.
0 commit comments