-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit 9e3a5af
committed
feat: Add service-specific endpoints support to FSM config parser
Add support for parsing [services] sections with service-specific endpoint_url
configuration following AWS SDKs & Tools specification.
Changes:
- Extend Profile class with endpoint_url and servicesEndpointUrl map
- Add FSM states for [services] and [services serviceId] sections
- Add GetServiceEndpointUrl() and GetGlobalEndpointUrl() API methods
- Support case-insensitive service ID lookup
- Add comprehensive test coverage
Supports config format:
[profile default]
endpoint_url = https://global.example.com
[services s3]
endpoint_url = http://localhost:9000
Add Profile computed getters using Aws::Crt::Optional for proper null handling:
- GetServicesName() returns services definition name or empty Optional
- GetEndpointUrl() returns global endpoint URL or empty Optional
- Add static Profile::GetServiceEndpointUrl() helper for endpoint resolution
- Takes profile, services map, and serviceId as parameters
- Maintains Profile as stateless data container
- Add AWSConfigFileProfileConfigLoader::GetServices() const accessor
Uses Aws::Crt::Optional instead of empty strings to properly represent
"no value" state. Static helper pattern keeps Profile ABI-stable while
enabling service endpoint resolution without coupling to loader internals.
added a test for multiple services definition
updated test to use .find before creatng the profile
update to use a service object instead of using getvalue
added 3 more tests verifying duplication urls, modify the services object with more encapsulation1 parent 1d9dcb7 commit 9e3a5afCopy full SHA for 9e3a5af
Sorry, this diff is taking too long to generate.
It may be too large to display on GitHub.