public ProgressEvent handleRequest()

in aws-licensemanager-license/src/main/java/software/amazon/licensemanager/license/ListHandler.java [25:66]


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

        final ResourceModel model = request.getDesiredResourceState();
        try {
            final List<ResourceModel> models = new ArrayList<>();

            // STEP 1 [TODO: construct a body of a request]
            final ListLicensesRequest listLicensesRequest = Translator.translateToListRequest(model, request.getNextToken());

            ListLicensesResponse listLicensesResponse = null;
            // STEP 2 [TODO: make an api call]
            try {
                listLicensesResponse = proxy.injectCredentialsAndInvokeV2(listLicensesRequest,
                        proxyClient.client()::listLicenses);
            } catch (AccessDeniedException e) {
                throw new CfnAccessDeniedException("List:License", e);
            } catch (ValidationException e) {
                throw new CfnInvalidRequestException(e);
            }

            // STEP 3 [TODO: get a token for the next page]
            String nextToken = listLicensesResponse.nextToken();

            // STEP 4 [TODO: construct resource models]
            // e.g. https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs/blob/master/aws-logs-loggroup/src/main/java/software/amazon/logs/loggroup/ListHandler.java#L19-L21

            models.addAll(Translator.translateFromListRequest(listLicensesResponse));
            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModels(models)
                    .nextToken(nextToken)
                    .status(OperationStatus.SUCCESS)
                    .build();
        } catch (final software.amazon.awssdk.services.licensemanager.model.ResourceNotFoundException e) {
            throw new ResourceNotFoundException(ResourceModel.TYPE_NAME, e.getMessage(), e);
        }

    }