- Type Parameters:
RequestT - , the web service request that was made
ResponseT - the response or the fault (Exception) that needs to
handled
ClientT - , the client that was used to invoke
ModelT - , the resource model object that we are currently working
against
CallbackT - , the callback context that contains results
- All Superinterfaces:
CallChain.Completed<RequestT,ResponseT,ClientT,ModelT,CallbackT>, CallChain.Exceptional<RequestT,ResponseT,ClientT,ModelT,CallbackT>
- Enclosing interface:
- CallChain
public static interface CallChain.Stabilizer<RequestT,ResponseT,ClientT,ModelT,CallbackT extends StdCallbackContext>
extends CallChain.Exceptional<RequestT,ResponseT,ClientT,ModelT,CallbackT>
This provides an optional stabilization function to be incorporate before we
are done with the actual web service request. This is useful to ensure that
the web request created a resource that takes time to be live or available
before additional properties can be set on it. E.g. when one creates a
Kinesis stream is takes some time before the stream is active to do other
operations on it like set the retention period.
private Boolean isStreamActive(
CreateStreamRequest req,
CreateStreamResponse res,
ProxyClient<KinesisClient> client,
ResourceModel model,
CallbackContext cxt) {
DescribeStreamRequest r =
DescribeStreamRequest.builder().streamName(req.streamName()).build();
DescribeStreamResponse dr = client.injectCredentialsAndInvokeV2(
r, client.client()::describeStream);
StreamDescription description = dr.streamDescription();
model.setArn(description.streamARN()); return
(description.streamStatus() == StreamStatus.ACTIVE); }