in aws-ec2-enclavecertificateiamroleassociation/src/main/java/software/amazon/ec2/enclavecertificateiamroleassociation/CreateHandler.java [17:70]
protected ProgressEvent<ResourceModel, CallbackContext> handleRequest(AmazonWebServicesClientProxy proxy,
ResourceHandlerRequest<ResourceModel> request,
CallbackContext callbackContext,
ProxyClient<Ec2Client> proxyClient,
Logger logger) {
final ResourceModel model = request.getDesiredResourceState();
try {
validateNotNull(model.getCertificateArn(), Properties.CertificateArn);
validateNotNull(model.getRoleArn(), Properties.RoleArn);
if (Helper.getAssociatedRole(proxyClient, model.getCertificateArn(),
model.getRoleArn()) != null) {
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.message(String.format("Association already exists for " +
"certificate arn %s and" +
" role arn %s",
model.getCertificateArn(), model.getRoleArn()))
.status(OperationStatus.FAILED)
.errorCode(HandlerErrorCode.AlreadyExists)
.build();
}
final AssociateEnclaveCertificateIamRoleRequest associateEnclaveCertificateIamRoleRequest =
AssociateEnclaveCertificateIamRoleRequest
.builder()
.certificateArn(model.getCertificateArn())
.roleArn(model.getRoleArn())
.build();
final AssociateEnclaveCertificateIamRoleResponse response =
proxyClient.injectCredentialsAndInvokeV2(associateEnclaveCertificateIamRoleRequest,
proxyClient.client()::associateEnclaveCertificateIamRole);
model.setCertificateS3BucketName(response.certificateS3BucketName());
model.setCertificateS3ObjectKey(response.certificateS3ObjectKey());
model.setEncryptionKmsKeyId(response.encryptionKmsKeyId());
logger.log(String.format("%s %s created successfully with " +
"CertificateS3BucketName %s, CertificateS3ObjectKey %s, " +
"EncryptionKmsKeyId %s",
ResourceModel.TYPE_NAME,
model.getPrimaryIdentifier(),
model.getCertificateS3BucketName(),
model.getCertificateS3ObjectKey(),
model.getEncryptionKmsKeyId()));
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.SUCCESS)
.build();
} catch (final Throwable e) {
return handleException(e, logger);
}
}