in aws-lookoutvision-project/src/main/java/software/amazon/lookoutvision/project/CreateHandler.java [21:57]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final ProxyClient<LookoutVisionClient> proxyClient,
final Logger logger) {
this.proxy = proxy;
this.request = request;
this.logger = logger;
final ResourceModel model = request.getDesiredResourceState();
// Make sure the user isn't trying to assign values to readOnly properties
if (hasReadOnlyProperties(model)) {
throw new CfnInvalidRequestException("Attempting to set a ReadOnly Property.");
}
CreateProjectResponse createProjectResponse = null;
try {
createProjectResponse = proxy.injectCredentialsAndInvokeV2(
Translator.translateToCreateRequest(model),
proxyClient.client()::createProject);
} catch (final ConflictException e) {
final ResourceAlreadyExistsException resourceAlreadyExistsException =
new ResourceAlreadyExistsException(ResourceModel.TYPE_NAME, model.getProjectName(), e);
logger.log(resourceAlreadyExistsException.getMessage());
throw resourceAlreadyExistsException;
}
final String createMessage = String.format("%s successfully created.", ResourceModel.TYPE_NAME);
logger.log(createMessage);
final ResourceModel modelFromCreateResult = Translator.translateFromCreateResponse(createProjectResponse);
return ProgressEvent.defaultSuccessHandler(modelFromCreateResult);
}