public ProgressEvent handleRequest()

in aws-wafv2-webacl/src/main/java/com/amazonaws/wafv2/webacl/ReadHandler.java [34:82]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
            final AmazonWebServicesClientProxy proxy,
            final ResourceHandlerRequest<ResourceModel> request,
            final CallbackContext callbackContext,
            final Logger logger) {

        final ResourceModel model = request.getDesiredResourceState();

        try {
            final GetWebAclResponse response = getWebACLExceptionWrapper(proxy, model).execute();
            final List<Tag> tags = HandlerHelper.getConvertedTags(proxy, client, response.webACL().arn(),
                    tag -> Tag.builder()
                            .key(tag.key())
                            .value(tag.value())
                            .build());
            final ResourceModel.ResourceModelBuilder result = ResourceModel.builder()
                    // primary identifiers
                    .id(response.webACL().id())
                    .name(response.webACL().name())
                    .scope(model.getScope())
                    // read only fields
                    .arn(response.webACL().arn())
                    .capacity(new Integer(Math.toIntExact(response.webACL().capacity().longValue())))
                    // other fields
                    .description(response.webACL().description())
                    .defaultAction(StatementCommonsConverter.INSTANCE.invert(response.webACL().defaultAction()))
                    .rules(Optional.ofNullable(response.webACL().rules()).orElse(ImmutableList.of()).stream()
                            .map(rule -> Converter.INSTANCE.invert(rule))
                            .collect(Collectors.toList()))
                    .visibilityConfig(StatementCommonsConverter.INSTANCE.invert(response.webACL().visibilityConfig()))
                    .labelNamespace(response.webACL().labelNamespace())
                    .tags(tags);

            if (MapUtils.isNotEmpty(response.webACL().customResponseBodies())) {
                result.customResponseBodies(
                    Converter.INSTANCE.invert(response.webACL().customResponseBodies()));
            }
            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModel(result.build())
                    .status(OperationStatus.SUCCESS)
                    .build();
        } catch (RuntimeException e) {
            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .status(OperationStatus.FAILED)
                    .errorCode(ExceptionTranslationWrapper.translateExceptionIntoErrorCode(e))
                    .message(e.getMessage())
                    .build();
        }
    }