export async function createExportAndWaitForCompletion()

in src/ExportJournal.ts [130:163]


export async function createExportAndWaitForCompletion(
    ledgerName: string,
    bucketName: string,
    prefix: string,
    encryptionConfig: S3EncryptionConfiguration,
    roleArn: string,
    qldbClient: QLDB
): Promise<ExportJournalToS3Response> {
    if (roleArn === null) {
        roleArn = await createExportRole(EXPORT_ROLE_NAME, encryptionConfig.KmsKeyArn, ROLE_POLICY_NAME, bucketName);
    }
    try {
        const exclusiveEndTime: Date = new Date();
        const inclusiveStartTime: Date = new Date(exclusiveEndTime);
        inclusiveStartTime.setMinutes(exclusiveEndTime.getMinutes() - 10);

        const result: ExportJournalToS3Response = await createExport(
            ledgerName,
            inclusiveStartTime,
            exclusiveEndTime,
            bucketName,
            prefix,
            encryptionConfig,
            roleArn,
            qldbClient
        );
        await waitForExportToComplete(ledgerName, result.ExportId, qldbClient);
        log(`JournalS3Export for exportId ${result.ExportId} is completed.`);
        return result;
    } catch (e) {
        error("Unable to create an export!");
        throw e;
    }
}