private static Map<String, AttributeValue> buildTableAttributeValuesMap(final OneTimeToken record) {
        val values = new HashMap<String, AttributeValue>();
        values.put(ColumnNames.ID.getColumnName(), AttributeValue.builder().n(String.valueOf(record.getId())).build());
        values.put(ColumnNames.USERID.getColumnName(), AttributeValue.builder().s(record.getUserId().toLowerCase(Locale.ENGLISH)).build());
        values.put(ColumnNames.TOKEN.getColumnName(), AttributeValue.builder().n(String.valueOf(record.getToken()).toLowerCase(Locale.ENGLISH)).build());
        val time = record.getIssuedDateTime().toEpochSecond(ZoneOffset.UTC);
        values.put(ColumnNames.CREATION_TIME.getColumnName(), AttributeValue.builder().n(String.valueOf(time)).build());
        values.put(ColumnNames.BODY.getColumnName(),
            FunctionUtils.doUnchecked(() -> AttributeValue.builder().s(MAPPER.writeValueAsString(record)).build()));
        LOGGER.debug("Created attribute values [{}] based on [{}]", values, record);
        return values;
    }
This is {@link GoogleAuthenticatorDynamoDbTokenRepositoryFacilitator}.

@author Misagh Moayyed
@since 6.5.0
support/cas-server-support-gauth-dynamodb/src/main/java/org/apereo/cas/gauth/token/GoogleAuthenticatorDynamoDbTokenRepositoryFacilitator.java