private Instant getUpcomingInvoiceExpirationDate()

in src/main/java/com/amazonaws/partners/saasfactory/metering/aggregation/StripeBillingPublish.java [266:289]


    private Instant getUpcomingInvoiceExpirationDate(TenantConfiguration tenantConfiguration) {
        // Need to first retrieve the subscription ID with the subscription item ID
        String subscription = getSubscription(tenantConfiguration);
        if (subscription.isEmpty()) {
            return null;
        }
        InvoiceUpcomingParams invoiceUpcomingParams = InvoiceUpcomingParams.builder()
                .setSubscription(subscription)
                .build();
        Invoice upcomingInvoice = null;
        try {
            upcomingInvoice = Invoice.upcoming(invoiceUpcomingParams);
        } catch (StripeException e) {
            this.logger.error("Error retrieving upcoming invoice for tenant {}", tenantConfiguration.getTenantID());
            this.logger.error("Stripe exception:\n{}", e.getMessage());
            return null;
        }
        Instant invoiceExpiration = Instant.ofEpochSecond(upcomingInvoice.getPeriodEnd());
        this.logger.info(
                "Closing time for tenant {} is {}",
                tenantConfiguration.getTenantID(),
                invoiceExpiration);
        return invoiceExpiration;
    }