private ProgressEvent getRepositoryPolicy()

in aws-codeartifact-repository/src/main/java/software/amazon/codeartifact/repository/ReadHandler.java [73:105]


    private ProgressEvent<ResourceModel, CallbackContext> getRepositoryPolicy(
        AmazonWebServicesClientProxy proxy,
        ProgressEvent<ResourceModel, CallbackContext> progress,
        ResourceHandlerRequest<ResourceModel> request,
        ProxyClient<CodeartifactClient> proxyClient
    ) {
        return proxy.initiate("AWS-CodeArtifact-Repository::GetRepositoryPolicy", proxyClient,
            progress.getResourceModel(),
            progress.getCallbackContext())
            .translateToServiceRequest(Translator::translateToGetRepositoryPermissionsPolicy)
            .makeServiceCall((awsRequest, client) -> {
                logger.log(String.format("%s getRepositoryPolicy is being invoked", ResourceModel.TYPE_NAME));
                GetRepositoryPermissionsPolicyResponse getRepositoryPermissionsPolicyResponse = null;
                try {
                    getRepositoryPermissionsPolicyResponse = client.injectCredentialsAndInvokeV2(awsRequest, proxyClient.client()::getRepositoryPermissionsPolicy);
                } catch (final ResourceNotFoundException e) {
                    // Do nothing since there is no policy
                } catch (final AwsServiceException e) {
                    String repositoryName = request.getDesiredResourceState().getRepositoryName();
                    Translator.throwCfnException(e, Constants.GET_REPOSITORY_PERMISSION_POLICY, repositoryName);
                }
                logger.log(String.format("Repository policy of %s has successfully been read.", ResourceModel.TYPE_NAME));
                return getRepositoryPermissionsPolicyResponse;
            })
            .done((getRepositoryPermissionsPolicyRequest, getRepositoryPermissionsPolicyResponse, proxyInvocation, resourceModel, context) -> {
                if (getRepositoryPermissionsPolicyResponse != null) {
                    String repositoryPolicy = getRepositoryPermissionsPolicyResponse.policy().document();
                    resourceModel.setPermissionsPolicyDocument(Translator.deserializePolicy(repositoryPolicy));
                }
                return ProgressEvent.progress(resourceModel, context);
            });

    }