in src/main/java/com/amazonaws/partners/saasfactory/metering/onboarding/OnboardNewTenant.java [133:158]
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) {
if (this.tableConfig.getTableName().isEmpty() || this.tableConfig.getIndexName().isEmpty()) {
return;
}
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
EventBridgeOnboardTenantEvent event = gson.fromJson(reader, EventBridgeOnboardTenantEvent.class);
// Create onboarding event
OnboardingEvent onboardingEvent = OnboardingEvent.createOnboardingEvent(event);
if (onboardingEvent == null) {
if (event.getDetail().getTenantID() == null) {
this.logger.error("Failed to create a new tenant because tenant ID unspecified");
throw new TenantOnboardingException("Failed to create a new tenant because tenant ID unspecified");
}
if (event.getDetail().getExternalSubscriptionIdentifier() == null) {
this.logger.error("Failed to create a new tenant because external subscription identifier unspecified");
throw new TenantOnboardingException("Failed to create a new tenant because external subscription identifier unspecified");
}
return;
}
// Put the onboarding event into DynamoDB
putTenant(onboardingEvent);
this.logger.info("Created tenant with ID {}", onboardingEvent.getTenantID());
}