in aws-logs-resourcepolicy/src/main/java/software/amazon/logs/resourcepolicy/ReadHandler.java [21:53]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
final ResourceModel model = request.getDesiredResourceState();
DescribeResourcePoliciesResponse describeResourcePoliciesResponse;
String nextToken = null;
do {
try {
describeResourcePoliciesResponse = proxy.injectCredentialsAndInvokeV2(Translator.translateToListRequest(nextToken),
ClientBuilder.getLogsClient()::describeResourcePolicies);
nextToken = describeResourcePoliciesResponse.nextToken();
Optional<ResourcePolicy> resourcePolicy = describeResourcePoliciesResponse.resourcePolicies().stream()
.filter(rp -> rp.policyName().equals(model.getPolicyName()))
.findAny();
if (resourcePolicy.isPresent()) {
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.SUCCESS)
.build();
}
} catch (InvalidParameterException ex) {
throw new CfnInvalidRequestException(ResourceModel.TYPE_NAME, ex);
} catch (ServiceUnavailableException ex) {
throw new CfnServiceInternalErrorException(ResourceModel.TYPE_NAME, ex);
}
} while (nextToken != null);
throw new CfnNotFoundException(ResourceModel.TYPE_NAME, model.getPrimaryIdentifier().toString());
}