Code review comment: To be clear all versions in a detail object will be of the same type. The Vault API will not allow mixing asymmetric and symmetric key versions. So, with your suggestion, you'd have two separate maps of versions and one would always be empty. You'd have to check the size of the maps to see which one is not empty and use that one. That's more work and more confusing than checking the detail object's type and casting the detail object to get the correctly typed versions.

Code under review:
public void symmetricReadAESKey() {

        assertFalse(transitSecretEngine.listKeys().contains(KEY_NAME));
        transitSecretEngine.createKey(KEY_NAME, new KeyCreationRequestDetail().setType("aes256-gcm96"));
        assertTrue(transitSecretEngine.listKeys().contains(KEY_NAME));

        VaultTransitKeyDetail mykey = transitSecretEngine.readKey(KEY_NAME);
        assertTrue(mykey instanceof VaultTransitSymmetricKeyDetail);
        assertEquals(KEY_NAME, mykey.getName());
        assertFalse(mykey.isExportable());
        assertFalse(mykey.isDeletionAllowed());
        assertTrue(mykey.isSupportsDecryption());
        assertTrue(mykey.isSupportsEncryption());
        assertTrue(mykey.isSupportsDerivation());
        assertFalse(mykey.isSupportsSigning());
        assertEquals(mykey.getType(), "aes256-gcm96");
        assertEquals(1, mykey.getKeys().size());
        assertTrue(mykey.getKeys().containsKey("1"));
        assertEquals(1, mykey.getVersions().size());
        assertTrue(mykey.getVersions().containsKey("1"));
        assertNotNull(mykey.getVersions().get("1").getCreationTime());
        assertTrue(mykey.getVersions().get("1") instanceof VaultTransitSymmetricKeyVersion);
        assertEquals(1, mykey.getLatestVersion());
        assertEquals(0, mykey.getMinAvailableVersion());
        assertEquals(1, mykey.getMinDecryptionVersion());
        assertEquals(0, mykey.getMinEncryptionVersion());

        transitSecretEngine.updateKeyConfiguration(KEY_NAME, new KeyConfigRequestDetail().setDeletionAllowed(true));
        mykey = transitSecretEngine.readKey(KEY_NAME);
        assertTrue(mykey.isDeletionAllowed());

        transitSecretEngine.deleteKey(KEY_NAME);
        assertNull(transitSecretEngine.readKey(KEY_NAME));
    }

Line commented on: assertEquals(mykey.getType(), "aes256-gcm96");

Revised code:
public void symmetricReadAESKey() {

        assertFalse(transitSecretEngine.listKeys().contains(KEY_NAME));
        transitSecretEngine.createKey(KEY_NAME, new KeyCreationRequestDetail().setType("aes256-gcm96"));
        assertTrue(transitSecretEngine.listKeys().contains(KEY_NAME));

        VaultTransitKeyDetail<?> mykey = transitSecretEngine.readKey(KEY_NAME);
        assertTrue(mykey instanceof VaultTransitSymmetricKeyDetail);
        assertEquals(KEY_NAME, mykey.getName());
        assertFalse(mykey.isExportable());
        assertFalse(mykey.isDeletionAllowed());
        assertTrue(mykey.isSupportsDecryption());
        assertTrue(mykey.isSupportsEncryption());
        assertTrue(mykey.isSupportsDerivation());
        assertFalse(mykey.isSupportsSigning());
        assertEquals(mykey.getType(), "aes256-gcm96");
        assertEquals(1, mykey.getKeys().size());
        assertTrue(mykey.getKeys().containsKey("1"));
        assertEquals(1, mykey.getVersions().size());
        assertTrue(mykey.getVersions().containsKey("1"));
        assertNotNull(mykey.getVersions().get("1").getCreationTime());
        assertTrue(mykey.getVersions().get("1") instanceof VaultTransitSymmetricKeyVersion);
        assertEquals(1, mykey.getLatestVersion());
        assertEquals(0, mykey.getMinAvailableVersion());
        assertEquals(1, mykey.getMinDecryptionVersion());
        assertEquals(0, mykey.getMinEncryptionVersion());

        transitSecretEngine.updateKeyConfiguration(KEY_NAME, new KeyConfigRequestDetail().setDeletionAllowed(true));
        mykey = transitSecretEngine.readKey(KEY_NAME);
        assertTrue(mykey.isDeletionAllowed());

        transitSecretEngine.deleteKey(KEY_NAME);
        assertNull(transitSecretEngine.readKey(KEY_NAME));
    }