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);
});
}