public ProgressEvent handleRequest()

in aws-wafv2-rulegroup/src/main/java/com/amazonaws/wafv2/rulegroup/ReadHandler.java [37:90]


    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 GetRuleGroupResponse response = getRuleGroupExceptionWrapper(proxy, model).execute();

            final List<Tag> tags = HandlerHelper.getConvertedTags(proxy, client, response.ruleGroup().arn(),
                    tag -> Tag.builder()
                            .key(tag.key())
                            .value(tag.value())
                            .build());
            final ResourceModel.ResourceModelBuilder result = ResourceModel.builder()
                    // primary identifier
                    .id(response.ruleGroup().id())
                    .name(response.ruleGroup().name())
                    .scope(model.getScope())
                    // read only fields
                    .arn(response.ruleGroup().arn())
                    // other fields
                    .description(response.ruleGroup().description())
                    .rules(Optional.ofNullable(response.ruleGroup().rules()).orElse(ImmutableList.of()).stream()
                            .map(rule -> Converter.INSTANCE.invert(rule))
                            .collect(Collectors.toList()))
                    .visibilityConfig(StatementCommonsConverter.INSTANCE.invert(
                            response.ruleGroup().visibilityConfig()))
                    // capacity is specified by customer in RuleGroup
                    .capacity(new Integer(Math.toIntExact(response.ruleGroup().capacity().longValue())))
                    .tags(tags)
                    .availableLabels(Optional.ofNullable(Converter.INSTANCE.invert(response.ruleGroup().availableLabels())).orElse(ImmutableList.of()))
                    .consumedLabels(Optional.ofNullable(Converter.INSTANCE.invert(response.ruleGroup().consumedLabels())).orElse(ImmutableList.of()))
                    .labelNamespace(response.ruleGroup().labelNamespace());

            if (MapUtils.isNotEmpty(response.ruleGroup().customResponseBodies())) {
                result.customResponseBodies(
                    Converter.INSTANCE.invert(response.ruleGroup().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();
        }
    }