private ProgressEvent getDomainPolicy()

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


    private ProgressEvent<ResourceModel, CallbackContext> getDomainPolicy(
        AmazonWebServicesClientProxy proxy,
        ProgressEvent<ResourceModel, CallbackContext> progress,
        ResourceHandlerRequest<ResourceModel> request,
        ProxyClient<CodeartifactClient> proxyClient
    ) {
        return proxy.initiate("AWS-CodeArtifact-Domain::GetDomainPolicy", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
            .translateToServiceRequest(Translator::translateGetDomainPermissionsPolicyRequest)
            .makeServiceCall((awsRequest, client) -> {
                logger.log(String.format("%s getDomainPolicy is being invoked", ResourceModel.TYPE_NAME));

                GetDomainPermissionsPolicyResponse getDomainPermissionsPolicyResponse = null;
                try {
                    getDomainPermissionsPolicyResponse = client.injectCredentialsAndInvokeV2(awsRequest, proxyClient.client()::getDomainPermissionsPolicy);
                } catch (final ResourceNotFoundException e) {
                    // Do nothing since there is no policy
                } catch (final AwsServiceException e) {
                    String domainName = request.getDesiredResourceState().getDomainName();
                    Translator.throwCfnException(e, Constants.GET_DOMAIN_PERMISSION_POLICY, domainName);
                }
                logger.log(String.format("Domain policy of %s has successfully been read.", ResourceModel.TYPE_NAME));
                return getDomainPermissionsPolicyResponse;
            })
            .done((getDomainPermissionsPolicyRequest, getDomainPermissionsPolicyResponse, proxyInvocation, resourceModel, context) -> {
                    if (getDomainPermissionsPolicyResponse != null) {
                        String domainPolicy = getDomainPermissionsPolicyResponse.policy().document();
                        resourceModel.setPermissionsPolicyDocument(Translator.deserializePolicy(domainPolicy));
                    }
                    return ProgressEvent.progress(resourceModel, context);
                });
    }