-
Notifications
You must be signed in to change notification settings - Fork 644
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move Endpoints out of internal directory #2886
Comments
The mega-table for endpoint information doesn't exist in v2 like it does in v1. We broke the table up across service client modules, because in-memory it was huge (something like 5mb - it was an oft-reported issue e.g. aws/aws-sdk-go#5310) and the whole thing would always exist in-memory even if you weren't using 99% of the services. So, the behavior aws-nuke was using in v1 is not possible to replicate against v2. Beyond that - the decision to make it internal goes beyond just the Go SDK, it's a decision we've made in SDKs and Tools at large that new SDKs should not expose that information directly. The endpoints/partition table is internal metadata that was previously used to hint to the SDK how to select the endpoint for a given service / region. That process has since been retired in favor of per-service, rules-based endpoint resolution that SDK v2 uses today. Two primary characteristics of the table that make it unsuitable for general-purpose use:
The usages of it in aws-nuke were not really correct in that sense, even if it worked incidentally. I'll follow up in the downstream PR with some recommendations. As far as removing |
This issue is now closed. Comments on closed issues are hard for our team to see. |
Describe the feature
There's some use cases for the endpoints package externally for example in my project aws-nuke.
Use Case
There's use cases for accessing endpoints code from external systems.
Proposed Solution
I would suggest moving endpoints out of internal.
Actually I would encourage dropping
internal
entirely. There's a bunch of good content in internal and for an open source project internal prevents any external use. Usually the argument is "we don't want to support X", but just put that in the README, use at your own risk for things you don't want to support, but otherwise it means people have to duplicate code for zero reason.Other Information
No response
Acknowledgements
AWS Go SDK V2 Module Versions Used
github.com/aws/[email protected] [email protected]
Go version used
go version go1.23.1 darwin/amd64
The text was updated successfully, but these errors were encountered: