Description
Is your feature request related to a problem? Please describe.
Timestream is a cellular service and as such requires discovering cell endpoint to call before executing request. It is done by calling the DescribeEndpoints
API in our discovery service (which has DNS name ingest.timestream.{region}.amazonaws.com
and similar for query). The response contains cell endpoint in format ingest-cell{x}.timestream.{region}.amazonaws.com
which should be used for all subsequent calls.
Currently only the DescribeEndpoints
API is working in V3 SDK and everything else fails with com.amazon.coral.service#UnknownOperationException
. Because other APIs are expect to use the endpoints returned from DescribeEndpoints
API. However, the SDK only supports making request with default endpoint ingest.timestream.{region}.amazonaws.com
.
Describe the solution you'd like
SDK should call DescribeEndpoints
API automatically prior to make other API calls, and use the returned endpoint for following calls. This feature is implemented in V2 SDK but not supported V3 yet.
Additional context
To workaround the issue, users need to implement the logic to call DescribeEndpoints
by themselves. After endpoint is returned, they can create a separate client with returned endpoint and call the intended API.
// Got endpoints from DescribeEndpoints()
const regionalizedClient = new TimeStreamWriteClient({ region, endpoint: /**returned endpoint**/ });
await regionalizedClient.send(new CreateDatabaseCommand(params));