killbill-memoizeit

jaxrs, profile: Update api for swagger generation. Warning:

3/23/2018 11:34:31 PM

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
index 8f1145d..f785888 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
@@ -37,14 +37,13 @@ import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriInfo;
 
-import org.joda.time.DateTime;
 import org.killbill.billing.ObjectType;
 import org.killbill.billing.account.api.AccountUserApi;
 import org.killbill.billing.callcontext.DefaultCallContext;
 import org.killbill.billing.catalog.api.CatalogApiException;
 import org.killbill.billing.catalog.api.CatalogUserApi;
 import org.killbill.billing.jaxrs.json.TenantJson;
-import org.killbill.billing.jaxrs.json.TenantKeyJson;
+import org.killbill.billing.jaxrs.json.TenantKeyValueJson;
 import org.killbill.billing.jaxrs.util.Context;
 import org.killbill.billing.jaxrs.util.JaxrsUriBuilder;
 import org.killbill.billing.payment.api.PaymentApi;
@@ -153,7 +152,7 @@ public class TenantResource extends JaxRsResourceBase {
     @Path("/" + REGISTER_NOTIFICATION_CALLBACK)
     @Consumes(APPLICATION_JSON)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Create a push notification", response = TenantKeyJson.class)
+    @ApiOperation(value = "Create a push notification", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response registerPushNotificationCallback(@QueryParam(QUERY_NOTIFICATION_CALLBACK) final String notificationCallback,
                                                      @HeaderParam(HDR_CREATED_BY) final String createdBy,
@@ -168,7 +167,7 @@ public class TenantResource extends JaxRsResourceBase {
     @GET
     @Path("/" + REGISTER_NOTIFICATION_CALLBACK)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve a push notification", response = TenantKeyJson.class)
+    @ApiOperation(value = "Retrieve a push notification", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response getPushNotificationCallbacks(@javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
         return getTenantKey(TenantKey.PUSH_NOTIFICATION_CB, null, request);
@@ -191,7 +190,7 @@ public class TenantResource extends JaxRsResourceBase {
     @Path("/" + UPLOAD_PLUGIN_CONFIG + "/{pluginName:" + ANYTHING_PATTERN + "}")
     @Consumes(TEXT_PLAIN)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Add a per tenant configuration for a plugin", response = TenantKeyJson.class)
+    @ApiOperation(value = "Add a per tenant configuration for a plugin", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response uploadPluginConfiguration(final String pluginConfig,
                                               @PathParam("pluginName") final String pluginName,
@@ -209,7 +208,7 @@ public class TenantResource extends JaxRsResourceBase {
     @GET
     @Path("/" + UPLOAD_PLUGIN_CONFIG + "/{pluginName:" + ANYTHING_PATTERN + "}")
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve a per tenant configuration for a plugin", response = TenantKeyJson.class)
+    @ApiOperation(value = "Retrieve a per tenant configuration for a plugin", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response getPluginConfiguration(@PathParam("pluginName") final String pluginName,
                                            @javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
@@ -234,16 +233,16 @@ public class TenantResource extends JaxRsResourceBase {
     @GET
     @Path("/" + UPLOAD_PER_TENANT_CONFIG + "/{keyPrefix:" + ANYTHING_PATTERN + "}" + "/" + SEARCH)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve a per tenant key value based on key prefix", response = TenantKeyJson.class)
+    @ApiOperation(value = "Retrieve a per tenant key value based on key prefix", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response getAllPluginConfiguration(@PathParam("keyPrefix") final String keyPrefix,
                                               @javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
 
         final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
         final Map<String, List<String>> apiResult = tenantApi.searchTenantKeyValues(keyPrefix, tenantContext);
-        final List<TenantKeyJson> result = new ArrayList<TenantKeyJson>();
+        final List<TenantKeyValueJson> result = new ArrayList<TenantKeyValueJson>();
         for (final String cur : apiResult.keySet()) {
-            result.add(new TenantKeyJson(cur, apiResult.get(cur)));
+            result.add(new TenantKeyValueJson(cur, apiResult.get(cur)));
         }
         return Response.status(Status.OK).entity(result).build();
     }
@@ -254,7 +253,7 @@ public class TenantResource extends JaxRsResourceBase {
     @Path("/" + UPLOAD_PER_TENANT_CONFIG)
     @Consumes(TEXT_PLAIN)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Add a per tenant configuration (system properties)", response = TenantKeyJson.class)
+    @ApiOperation(value = "Add a per tenant configuration (system properties)", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response uploadPerTenantConfiguration(final String perTenantConfig,
                                                  @HeaderParam(HDR_CREATED_BY) final String createdBy,
@@ -269,7 +268,7 @@ public class TenantResource extends JaxRsResourceBase {
     @GET
     @Path("/" + UPLOAD_PER_TENANT_CONFIG)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve a per tenant configuration (system properties)", response = TenantKeyJson.class)
+    @ApiOperation(value = "Retrieve a per tenant configuration (system properties)", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response getPerTenantConfiguration(@javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
         return getTenantKey(TenantKey.PER_TENANT_CONFIG, null, request);
@@ -292,7 +291,7 @@ public class TenantResource extends JaxRsResourceBase {
     @Path("/" + UPLOAD_PLUGIN_PAYMENT_STATE_MACHINE_CONFIG + "/{pluginName:" + ANYTHING_PATTERN + "}")
     @Consumes(TEXT_PLAIN)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Add a per tenant payment state machine for a plugin", response = TenantKeyJson.class)
+    @ApiOperation(value = "Add a per tenant payment state machine for a plugin", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response uploadPluginPaymentStateMachineConfig(final String paymentStateMachineConfig,
                                                           @PathParam("pluginName") final String pluginName,
@@ -308,7 +307,7 @@ public class TenantResource extends JaxRsResourceBase {
     @GET
     @Path("/" + UPLOAD_PLUGIN_PAYMENT_STATE_MACHINE_CONFIG + "/{pluginName:" + ANYTHING_PATTERN + "}")
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve a per tenant payment state machine for a plugin", response = TenantKeyJson.class)
+    @ApiOperation(value = "Retrieve a per tenant payment state machine for a plugin", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response getPluginPaymentStateMachineConfig(@PathParam("pluginName") final String pluginName,
                                                        @javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
@@ -333,7 +332,7 @@ public class TenantResource extends JaxRsResourceBase {
     @Path("/" + USER_KEY_VALUE + "/{keyName:" + ANYTHING_PATTERN + "}")
     @Consumes(TEXT_PLAIN)
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Add a per tenant user key/value", response = TenantKeyJson.class)
+    @ApiOperation(value = "Add a per tenant user key/value", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response insertUserKeyValue(@PathParam("keyName") final String key,
                                final String value,
@@ -351,13 +350,13 @@ public class TenantResource extends JaxRsResourceBase {
     @GET
     @Path("/" + USER_KEY_VALUE + "/{keyName:" + ANYTHING_PATTERN + "}")
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve a per tenant user key/value", response = TenantKeyJson.class)
+    @ApiOperation(value = "Retrieve a per tenant user key/value", response = TenantKeyValueJson.class)
     @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
     public Response getUserKeyValue(@PathParam("keyName") final String key,
                                            @javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
         final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
         final List<String> values = tenantApi.getTenantValuesForKey(key, tenantContext);
-        final TenantKeyJson result = new TenantKeyJson(key, values);
+        final TenantKeyValueJson result = new TenantKeyValueJson(key, values);
         return Response.status(Status.OK).entity(result).build();
     }
 
@@ -403,7 +402,7 @@ public class TenantResource extends JaxRsResourceBase {
         final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
         final String tenantKey = keyPostfix != null ? key.toString() + keyPostfix : key.toString();
         final List<String> values = tenantApi.getTenantValuesForKey(tenantKey, tenantContext);
-        final TenantKeyJson result = new TenantKeyJson(tenantKey, values);
+        final TenantKeyValueJson result = new TenantKeyValueJson(tenantKey, values);
         return Response.status(Status.OK).entity(result).build();
     }
 
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
index da41b6f..deb7659 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
@@ -80,7 +80,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
 
 
 
-    protected final int DEFAULT_WAIT_COMPLETION_TIMEOUT_SEC = 10;
+    protected final long DEFAULT_WAIT_COMPLETION_TIMEOUT_SEC = 10;
 
     protected static final String PLUGIN_NAME = "noop";
 
@@ -195,7 +195,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         return accountApi.createAccount(input, requestOptions);
     }
 
-    protected Subscription createEntitlement(final UUID accountId, final String bundleExternalKey, final String productName,
+    protected Subscription createSubscription(final UUID accountId, final String bundleExternalKey, final String productName,
                                              final ProductCategory productCategory, final BillingPeriod billingPeriod, final boolean waitCompletion) throws Exception {
         final Subscription input = new Subscription();
         input.setAccountId(accountId);
@@ -204,7 +204,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         input.setProductCategory(productCategory);
         input.setBillingPeriod(billingPeriod);
         input.setPriceList(PriceListSet.DEFAULT_PRICELIST_NAME);
-        return subscriptionApi.createEntitlement(input, null, null, true, false, null, waitCompletion, waitCompletion ? DEFAULT_WAIT_COMPLETION_TIMEOUT_SEC : -1L, NULL_PLUGIN_PROPERTIES, requestOptions);
+        return subscriptionApi.createSubscription(input, null, null, true, false, null, waitCompletion, waitCompletion ? DEFAULT_WAIT_COMPLETION_TIMEOUT_SEC : -1L, NULL_PLUGIN_PROPERTIES, requestOptions);
     }
 
     protected Account createAccountWithPMBundleAndSubscriptionAndWaitForFirstInvoice() throws Exception {
@@ -212,7 +212,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         assertNotNull(accountJson);
 
         // Add a bundle, subscription and move the clock to get the first invoice
-        final Subscription subscriptionJson = createEntitlement(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
+        final Subscription subscriptionJson = createSubscription(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
                                                                 ProductCategory.BASE, BillingPeriod.MONTHLY, true);
         assertNotNull(subscriptionJson);
         clock.addDays(32);
@@ -230,7 +230,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         assertEquals(accountTag.get(0).getTagDefinitionId(), ControlTagType.MANUAL_PAY.getId());
 
         // Add a bundle, subscription and move the clock to get the first invoice
-        final Subscription subscriptionJson = createEntitlement(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
+        final Subscription subscriptionJson = createSubscription(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
                                                                 ProductCategory.BASE, BillingPeriod.MONTHLY, true);
         assertNotNull(subscriptionJson);
         clock.addDays(32);
@@ -245,7 +245,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         assertNotNull(accountJson);
 
         // Add a bundle, subscription and move the clock to get the first invoice
-        final Subscription subscriptionJson = createEntitlement(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
+        final Subscription subscriptionJson = createSubscription(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
                                                                 ProductCategory.BASE, BillingPeriod.MONTHLY, true);
         assertNotNull(subscriptionJson);
 
@@ -258,7 +258,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         assertNotNull(accountJson);
 
         // Add a bundle, subscription and move the clock to get the first invoice
-        final Subscription subscriptionJson = createEntitlement(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
+        final Subscription subscriptionJson = createSubscription(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
                                                                 ProductCategory.BASE, BillingPeriod.MONTHLY, true);
         assertNotNull(subscriptionJson);
         clock.addMonths(1);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccountEmail.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccountEmail.java
index f0ef8d6..f09de1e 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccountEmail.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccountEmail.java
@@ -21,8 +21,8 @@ package org.killbill.billing.jaxrs;
 import java.util.List;
 import java.util.UUID;
 
-import org.killbill.billing.client.model.Account;
-import org.killbill.billing.client.model.AccountEmail;
+import org.killbill.billing.client.model.gen.Account;
+import org.killbill.billing.client.model.gen.AccountEmail;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -35,27 +35,27 @@ public class TestAccountEmail extends TestJaxrsBase {
 
         final String email1 = UUID.randomUUID().toString();
         final String email2 = UUID.randomUUID().toString();
-        final AccountEmail accountEmailJson1 = new AccountEmail(accountId, email1);
-        final AccountEmail accountEmailJson2 = new AccountEmail(accountId, email2);
+        final AccountEmail accountEmailJson1 = new AccountEmail(accountId, email1, null);
+        final AccountEmail accountEmailJson2 = new AccountEmail(accountId, email2, null);
 
         // Verify the initial state
-        final List<AccountEmail> firstEmails = killBillClient.getEmailsForAccount(accountId);
+        final List<AccountEmail> firstEmails = accountApi.getEmails(accountId, requestOptions);
         Assert.assertEquals(firstEmails.size(), 0);
 
         // Add an email
-        killBillClient.addEmailToAccount(accountEmailJson1, createdBy, reason, comment);
+        accountApi.addEmail(accountEmailJson1, accountId, requestOptions);
 
         // Verify we can retrieve it
-        final List<AccountEmail> secondEmails = killBillClient.getEmailsForAccount(accountId);
+        final List<AccountEmail> secondEmails = accountApi.getEmails(accountId, requestOptions);
         Assert.assertEquals(secondEmails.size(), 1);
         Assert.assertEquals(secondEmails.get(0).getAccountId(), accountId);
         Assert.assertEquals(secondEmails.get(0).getEmail(), email1);
 
         // Add another email
-        killBillClient.addEmailToAccount(accountEmailJson2, createdBy, reason, comment);
+        accountApi.addEmail(accountEmailJson2, accountId, requestOptions);
 
         // Verify we can retrieve both
-        final List<AccountEmail> thirdEmails = killBillClient.getEmailsForAccount(accountId);
+        final List<AccountEmail> thirdEmails = accountApi.getEmails(accountId, requestOptions);
         Assert.assertEquals(thirdEmails.size(), 2);
         Assert.assertEquals(thirdEmails.get(0).getAccountId(), accountId);
         Assert.assertEquals(thirdEmails.get(1).getAccountId(), accountId);
@@ -63,16 +63,16 @@ public class TestAccountEmail extends TestJaxrsBase {
         Assert.assertTrue(thirdEmails.get(1).getEmail().equals(email1) || thirdEmails.get(1).getEmail().equals(email2));
 
         // Delete the first email
-        killBillClient.removeEmailFromAccount(accountEmailJson1, createdBy, reason, comment);
+        accountApi.removeEmail(accountId, accountEmailJson1.getEmail(), requestOptions);
 
         // Verify it has been deleted
-        final List<AccountEmail> fourthEmails = killBillClient.getEmailsForAccount(accountId);
+        final List<AccountEmail> fourthEmails = accountApi.getEmails(accountId, requestOptions);
         Assert.assertEquals(fourthEmails.size(), 1);
         Assert.assertEquals(fourthEmails.get(0).getAccountId(), accountId);
         Assert.assertEquals(fourthEmails.get(0).getEmail(), email2);
 
         // Try to add the same email
-        killBillClient.addEmailToAccount(accountEmailJson2, createdBy, reason, comment);
-        Assert.assertEquals(killBillClient.getEmailsForAccount(accountId), fourthEmails);
+        accountApi.addEmail(accountEmailJson2, accountId, requestOptions);
+        Assert.assertEquals(accountApi.getEmails(accountId, requestOptions), fourthEmails);
     }
 }
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java
index e323ac2..5a604ba 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java
@@ -23,9 +23,10 @@ import java.util.UUID;
 
 import org.joda.time.DateTime;
 import org.killbill.billing.client.KillBillClientException;
-import org.killbill.billing.client.model.Account;
-import org.killbill.billing.client.model.Credit;
-import org.killbill.billing.client.model.Invoice;
+import org.killbill.billing.client.model.gen.Account;
+import org.killbill.billing.client.model.gen.Credit;
+import org.killbill.billing.client.model.gen.Invoice;
+import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
@@ -44,19 +45,17 @@ public class TestCredit extends TestJaxrsBase {
 
     @Test(groups = "slow", description = "Can add a credit to an existing invoice")
     public void testAddCreditToInvoice() throws Exception {
-        //final Invoice invoice = killBillClient.getInvoicesForAccount(accountJson.getAccountId()).get(1);
-
         final DateTime effectiveDate = clock.getUTCNow();
         final BigDecimal creditAmount = BigDecimal.ONE;
         final Credit credit = new Credit();
         credit.setAccountId(accountJson.getAccountId());
         credit.setCreditAmount(creditAmount);
         credit.setDescription("description");
-        Credit objFromJson = killBillClient.createCredit(credit, false, createdBy, reason, comment);
+        Credit objFromJson = creditApi.createCredit(credit, false, requestOptions);
 
         final UUID invoiceId = objFromJson.getInvoiceId();
         credit.setInvoiceId(invoiceId);
-        objFromJson = killBillClient.createCredit(credit, false, createdBy, reason, comment);
+        objFromJson = creditApi.createCredit(credit, false, requestOptions);
 
         // We can't just compare the object via .equals() due e.g. to the invoice id
         assertEquals(objFromJson.getAccountId(), accountJson.getAccountId());
@@ -69,15 +68,15 @@ public class TestCredit extends TestJaxrsBase {
     @Test(groups = "slow", description = "Can add a credit to an existing account",
             expectedExceptions = KillBillClientException.class, expectedExceptionsMessageRegExp = ".*it is already in COMMITTED status")
     public void testAddCreditToCommittedInvoice() throws Exception {
-        final Invoice invoice = killBillClient.getInvoicesForAccount(accountJson.getAccountId()).get(1);
+        final Invoice invoice = accountApi.getInvoices(accountJson.getAccountId(), requestOptions).get(1);
 
-        final DateTime effectiveDate = clock.getUTCNow();
         final BigDecimal creditAmount = BigDecimal.ONE;
         final Credit credit = new Credit();
         credit.setAccountId(accountJson.getAccountId());
         credit.setInvoiceId(invoice.getInvoiceId());
         credit.setCreditAmount(creditAmount);
-        final Credit objFromJson = killBillClient.createCredit(credit, true, createdBy, reason, comment);
+        final Credit objFromJson = creditApi.createCredit(credit, true, requestOptions);
+        Assert.assertTrue(objFromJson.getCreditAmount().compareTo(creditAmount) == 0);
     }
 
     @Test(groups = "slow", description = "Cannot add a credit if the account doesn't exist")
@@ -87,7 +86,7 @@ public class TestCredit extends TestJaxrsBase {
         credit.setCreditAmount(BigDecimal.TEN);
 
         // Try to create the credit
-        assertNull(killBillClient.createCredit(credit, true, createdBy, reason, comment));
+        assertNull(creditApi.createCredit(credit, true, requestOptions));
     }
 
     @Test(groups = "slow", description = "Cannot credit a badly formatted credit")
@@ -98,7 +97,7 @@ public class TestCredit extends TestJaxrsBase {
 
         // Try to create the credit
         try {
-            killBillClient.createCredit(credit, true, createdBy, reason, comment);
+            creditApi.createCredit(credit, true, requestOptions);
             fail();
         } catch (final KillBillClientException e) {
         }
@@ -106,6 +105,6 @@ public class TestCredit extends TestJaxrsBase {
 
     @Test(groups = "slow", description = "Cannot retrieve a non existing credit")
     public void testCreditDoesNotExist() throws Exception {
-        assertNull(killBillClient.getCredit(UUID.randomUUID()));
+        assertNull(creditApi.getCredit(UUID.randomUUID(), requestOptions));
     }
 }
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java
index 5d08db5..683c3c6 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java
@@ -39,7 +39,7 @@ import org.joda.time.DateTime;
 import org.killbill.CreatorName;
 import org.killbill.billing.api.FlakyRetryAnalyzer;
 import org.killbill.billing.client.KillBillClientException;
-import org.killbill.billing.client.model.TenantKey;
+import org.killbill.billing.client.model.gen.TenantKeyValue;
 import org.killbill.billing.jaxrs.json.NotificationJson;
 import org.killbill.billing.notification.plugin.api.ExtBusEventType;
 import org.killbill.billing.server.DefaultServerService;
@@ -115,7 +115,7 @@ public class TestPushNotification extends TestJaxrsBase {
     public void retrieveAccountWithAsserts(final UUID accountId) {
         try {
             // Just check we can retrieve the account with the id from the callback
-            killBillClient.getAccount(accountId, requestOptions);
+            accountApi.getAccount(accountId, requestOptions);
         } catch (final Exception e) {
             Assert.fail(e.getMessage());
         }
@@ -209,20 +209,20 @@ public class TestPushNotification extends TestJaxrsBase {
     }
 
     private void unregisterTenantForCallback(final String callback) throws KillBillClientException {
-        final TenantKey result = killBillClient.getCallbackNotificationForTenant(requestOptions);
+        final TenantKeyValue result = tenantApi.registerPushNotificationCallback(callback, requestOptions);
         Assert.assertEquals(result.getKey(), TenantKV.TenantKey.PUSH_NOTIFICATION_CB.toString());
         Assert.assertEquals(result.getValues().size(), 1);
         Assert.assertEquals(result.getValues().get(0), callback);
 
-        killBillClient.unregisterCallbackNotificationForTenant(requestOptions);
-        final TenantKey result2 = killBillClient.getCallbackNotificationForTenant(requestOptions);
+        tenantApi.deletePushNotificationCallbacks(requestOptions);
+        final TenantKeyValue result2 = tenantApi.getPushNotificationCallbacks(requestOptions);
         Assert.assertEquals(result2.getKey(), TenantKV.TenantKey.PUSH_NOTIFICATION_CB.toString());
         Assert.assertEquals(result2.getValues().size(), 0);
     }
 
     private String registerTenantForCallback() throws KillBillClientException, InterruptedException {// Register tenant for callback
         final String callback = "http://127.0.0.1:" + SERVER_PORT + CALLBACK_ENDPOINT;
-        final TenantKey result0 = killBillClient.registerCallbackNotificationForTenant(callback, requestOptions);
+        final TenantKeyValue result0 = tenantApi.registerPushNotificationCallback(callback, requestOptions);
 
         Assert.assertTrue(waitForCallbacksToComplete());
 
@@ -232,6 +232,7 @@ public class TestPushNotification extends TestJaxrsBase {
 
         // reset values
         resetCallbackStatusProperties();
+
         return callback;
     }
 
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestSecurity.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestSecurity.java
index 47e92ac..ccca414 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestSecurity.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestSecurity.java
@@ -18,10 +18,11 @@
 
 package org.killbill.billing.jaxrs;
 
+import java.io.File;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 import java.util.UUID;
 
 import javax.annotation.Nullable;
@@ -29,17 +30,15 @@ import javax.ws.rs.core.Response.Status;
 
 import org.killbill.billing.client.KillBillClientException;
 import org.killbill.billing.client.RequestOptions;
-import org.killbill.billing.client.model.Permissions;
-import org.killbill.billing.client.model.RoleDefinition;
-import org.killbill.billing.client.model.UserRoles;
+import org.killbill.billing.client.model.gen.RoleDefinition;
+import org.killbill.billing.client.model.gen.UserRoles;
 import org.killbill.billing.security.Permission;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.http.client.Response;
-
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Files;
 import com.google.common.io.Resources;
 
 public class TestSecurity extends TestJaxrsBase {
@@ -49,7 +48,7 @@ public class TestSecurity extends TestJaxrsBase {
         logout();
 
         try {
-            killBillClient.getPermissions();
+            securityApi.getCurrentUserPermissions(requestOptions);
             Assert.fail();
         } catch (final KillBillClientException e) {
             Assert.assertEquals(e.getResponse().getStatusCode(), Status.UNAUTHORIZED.getStatusCode());
@@ -73,12 +72,12 @@ public class TestSecurity extends TestJaxrsBase {
 
     @Test(groups = "slow")
     public void testDynamicUserRolesAllCatalogPermissions() throws Exception {
-        testDynamicUserRolesInternal("wqeqsdswe", "jsddsh763s", "allcatalog", ImmutableList.of("catalog:*","tenant_kvs:add"), true);
+        testDynamicUserRolesInternal("wqeqsdswe", "jsddsh763s", "allcatalog", ImmutableList.of("catalog:*", "tenant_kvs:add"), true);
     }
 
     @Test(groups = "slow")
     public void testDynamicUserRolesCorrectCatalogPermissions() throws Exception {
-        testDynamicUserRolesInternal("wqeq23f6we", "jds5gh763s", "correctcatalog", ImmutableList.of("catalog:config_upload","tenant_kvs:add"), true);
+        testDynamicUserRolesInternal("wqeq23f6we", "jds5gh763s", "correctcatalog", ImmutableList.of("catalog:config_upload", "tenant_kvs:add"), true);
     }
 
     @Test(groups = "slow")
@@ -93,7 +92,7 @@ public class TestSecurity extends TestJaxrsBase {
         final String role = UUID.randomUUID().toString();
         testDynamicUserRolesInternal(username, password, role, ImmutableList.of(""), false);
 
-        final Permissions permissions = killBillClient.getPermissions(RequestOptions.builder().withUser(username).withPassword(password).build());
+        final List<String> permissions = securityApi.getCurrentUserPermissions(RequestOptions.builder().withUser(username).withPassword(password).build());
         Assert.assertEquals(permissions.size(), 0);
     }
 
@@ -108,13 +107,11 @@ public class TestSecurity extends TestJaxrsBase {
                 permissions.add(cur.toString());
             }
         }
-        Response response = killBillClient.addRoleDefinition(new RoleDefinition(roleDefinition, permissions), createdBy, reason, comment);
-        Assert.assertEquals(response.getStatusCode(), 201);
+        securityApi.addRoleDefinition(new RoleDefinition(roleDefinition, permissions), requestOptions);
 
         final String username = "candy";
         final String password = "lolipop";
-        response = killBillClient.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), createdBy, reason, comment);
-        Assert.assertEquals(response.getStatusCode(), 201);
+        securityApi.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), requestOptions);
 
         // Now 'login' as new user (along with roles to make an API call requiring permissions), and check behavior
         logout();
@@ -122,7 +119,7 @@ public class TestSecurity extends TestJaxrsBase {
 
         boolean success = false;
         try {
-            killBillClient.addRoleDefinition(new RoleDefinition("dsfdsfds", ImmutableList.of("*")), createdBy, reason, comment);
+            securityApi.addRoleDefinition(new RoleDefinition("dsfdsfds", ImmutableList.of("*")), requestOptions);
             success = true;
         } catch (final Exception e) {
         } finally {
@@ -131,7 +128,7 @@ public class TestSecurity extends TestJaxrsBase {
 
         success = false;
         try {
-            killBillClient.addUserRoles(new UserRoles("sdsd", "sdsdsd", ImmutableList.of(roleDefinition)), createdBy, reason, comment);
+            securityApi.addUserRoles(new UserRoles("sdsd", "sdsdsd", ImmutableList.of(roleDefinition)), requestOptions);
             success = true;
         } catch (final Exception e) {
         } finally {
@@ -148,55 +145,49 @@ public class TestSecurity extends TestJaxrsBase {
         final String username = "GuanYu";
         final String password = "IamAGreatWarrior";
 
-        Response response = killBillClient.addRoleDefinition(new RoleDefinition(roleDefinition, ImmutableList.of(allPermissions)), createdBy, reason, comment);
-        Assert.assertEquals(response.getStatusCode(), 201);
+        securityApi.addRoleDefinition(new RoleDefinition(roleDefinition, ImmutableList.of(allPermissions)), requestOptions);
 
-        response = killBillClient.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), createdBy, reason, comment);
-        Assert.assertEquals(response.getStatusCode(), 201);
+        securityApi.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), requestOptions);
 
         logout();
         login(username, password);
-        Permissions permissions =  killBillClient.getPermissions();
+        List<String> permissions = securityApi.getCurrentUserPermissions(requestOptions);
         Assert.assertEquals(permissions.size(), Permission.values().length);
 
         String newPassword = "IamTheBestWarrior";
-        killBillClient.updateUserPassword(username, newPassword, createdBy, reason, comment);
+        securityApi.updateUserPassword(new UserRoles(username, newPassword, null), username, requestOptions);
 
         logout();
         login(username, newPassword);
-        permissions =  killBillClient.getPermissions();
+        permissions = securityApi.getCurrentUserPermissions(requestOptions);
         Assert.assertEquals(permissions.size(), Permission.values().length);
 
         final String newRoleDefinition = "somethingLessNice";
         // Only enough permissions to invalidate itself in the last step...
         final String littlePermissions = "user";
 
-        response = killBillClient.addRoleDefinition(new RoleDefinition(newRoleDefinition, ImmutableList.of(littlePermissions)), createdBy, reason, comment);
-        Assert.assertEquals(response.getStatusCode(), 201);
+        securityApi.addRoleDefinition(new RoleDefinition(newRoleDefinition, ImmutableList.of(littlePermissions)), requestOptions);
 
-        killBillClient.updateUserRoles(username, ImmutableList.of(newRoleDefinition), createdBy, reason, comment);
-        permissions =  killBillClient.getPermissions();
+        securityApi.updateUserRoles(new UserRoles(username, null, ImmutableList.of(newRoleDefinition)), username, requestOptions);
+        permissions = securityApi.getCurrentUserPermissions(requestOptions);
         // This will only work if correct shiro cache invalidation was performed... requires lots of sweat to get it to work ;-)
         Assert.assertEquals(permissions.size(), 2);
 
-        killBillClient.invalidateUser(username, createdBy, reason, comment);
+        securityApi.invalidateUser(username, requestOptions);
         try {
-            killBillClient.getPermissions();
+            securityApi.getCurrentUserPermissions(requestOptions);
             Assert.fail();
         } catch (final KillBillClientException e) {
             Assert.assertEquals(e.getResponse().getStatusCode(), Status.UNAUTHORIZED.getStatusCode());
         }
 
-
     }
 
     private void testDynamicUserRolesInternal(final String username, final String password, final String roleDefinition, final List<String> permissions, final boolean expectPermissionSuccess) throws Exception {
 
-        Response response = killBillClient.addRoleDefinition(new RoleDefinition(roleDefinition, permissions), createdBy, reason, comment);
-        Assert.assertEquals(response.getStatusCode(), 201);
+        securityApi.addRoleDefinition(new RoleDefinition(roleDefinition, permissions), requestOptions);
 
-        response = killBillClient.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), createdBy, reason, comment);
-        Assert.assertEquals(response.getStatusCode(), 201);
+        securityApi.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), requestOptions);
 
         // Now 'login' as new user (along with roles to make an API call requiring permissions), and check behavior
         logout();
@@ -205,7 +196,9 @@ public class TestSecurity extends TestJaxrsBase {
         boolean success = false;
         try {
             final String catalogPath = Resources.getResource("SpyCarBasic.xml").getPath();
-            killBillClient.uploadXMLCatalog(catalogPath, createdBy, reason, comment);
+            final File catalogFile = new File(catalogPath);
+            final String body = Files.toString(catalogFile, Charset.forName("UTF-8"));
+            catalogApi.uploadCatalogXml(body, requestOptions);
             success = true;
         } catch (final Exception e) {
             if (expectPermissionSuccess ||
@@ -219,6 +212,6 @@ public class TestSecurity extends TestJaxrsBase {
 
     private List<String> getPermissions(@Nullable final String username, @Nullable final String password) throws Exception {
         login(username, password);
-        return killBillClient.getPermissions();
+        return securityApi.getCurrentUserPermissions(requestOptions);
     }
 }