Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 29 additions & 8 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ item from that page on, and `pages()` every page, fetching the next ones on dema
the response body as received. The async client's pages have `nextPage()`, `forEach(...)`,
`forEachPage(...)` and `toList()`, returning `CompletableFuture`s.

[Add ons](#add-ons) · [Batch jobs](#batch-jobs) · [Checkout sessions](#checkout-sessions) · [Connect](#connect) · [Coupons](#coupons) · [Credit notes](#credit-notes) · [Custom properties](#custom-properties) · [Customers](#customers) · [Entitlements](#entitlements) · [Events](#events) · [Features](#features) · [Invoices](#invoices) · [Metrics](#metrics) · [Oauth](#oauth) · [Oauth apps](#oauth-apps) · [Plans](#plans) · [Product families](#product-families) · [Products](#products) · [Subscriptions](#subscriptions) · [Usage](#usage)
[Add ons](#add-ons) · [Add ons entitlements](#add-ons-entitlements) · [Batch jobs](#batch-jobs) · [Checkout sessions](#checkout-sessions) · [Connect](#connect) · [Coupons](#coupons) · [Credit notes](#credit-notes) · [Custom properties](#custom-properties) · [Customers](#customers) · [Entitlements](#entitlements) · [Events](#events) · [Features](#features) · [Invoices](#invoices) · [Metrics](#metrics) · [Oauth](#oauth) · [Oauth apps](#oauth-apps) · [Plans](#plans) · [Plans versions](#plans-versions) · [Product families](#product-families) · [Products](#products) · [Products entitlements](#products-entitlements) · [Subscriptions](#subscriptions) · [Usage](#usage)

## Add ons

Expand All @@ -27,10 +27,17 @@ the response body as received. The async client's pages have `nextPage()`, `forE
| `AddOn client.addOns().retrieve(String addonId)` | `GET /api/v1/addons/{addon_id}` | [`AddOn`](src/main/java/com/meteroid/models/AddOn.java) |
| `AddOn client.addOns().update(String addonId, UpdateAddOnRequest updateAddOnRequest)` | `PATCH /api/v1/addons/{addon_id}` | [`AddOn`](src/main/java/com/meteroid/models/AddOn.java) |
| `void client.addOns().archive(String addonId)` | `POST /api/v1/addons/{addon_id}/archive` | nothing |
| `ResolvedEntitlementListResponse client.addOns().listEntitlements(String addonId)` | `GET /api/v1/addons/{addon_id}/entitlements` | [`ResolvedEntitlementListResponse`](src/main/java/com/meteroid/models/ResolvedEntitlementListResponse.java) |
| `EntitlementListResponse client.addOns().createEntitlement(String addonId, CreateEntitlementsRequest createEntitlementsRequest)` | `POST /api/v1/addons/{addon_id}/entitlements` | [`EntitlementListResponse`](src/main/java/com/meteroid/models/EntitlementListResponse.java) |
| `void client.addOns().unarchive(String addonId)` | `POST /api/v1/addons/{addon_id}/unarchive` | nothing |

### Add ons entitlements

[`client.addOns().entitlements()`](src/main/java/com/meteroid/api/AddOnsEntitlements.java)

| Method | Request | Returns |
| --- | --- | --- |
| `ResolvedEntitlementListResponse client.addOns().entitlements().list(String addonId)` | `GET /api/v1/addons/{addon_id}/entitlements` | [`ResolvedEntitlementListResponse`](src/main/java/com/meteroid/models/ResolvedEntitlementListResponse.java) |
| `EntitlementListResponse client.addOns().entitlements().create(String addonId, CreateEntitlementsRequest createEntitlementsRequest)` | `POST /api/v1/addons/{addon_id}/entitlements` | [`EntitlementListResponse`](src/main/java/com/meteroid/models/EntitlementListResponse.java) |

## Batch jobs

[`client.batchJobs()`](src/main/java/com/meteroid/api/BatchJobs.java)
Expand Down Expand Up @@ -208,15 +215,22 @@ the response body as received. The async client's pages have `nextPage()`, `forE
| `EntitlementListResponse client.plans().createPlanVersionEntitlement(String planVersionId, CreateEntitlementsRequest createEntitlementsRequest)` | `POST /api/v1/plan-versions/{plan_version_id}/entitlements` | [`EntitlementListResponse`](src/main/java/com/meteroid/models/EntitlementListResponse.java) |
| `PlansListPage client.plans().list([PlansListOptions options])` | `GET /api/v1/plans` | [page](src/main/java/com/meteroid/api/PlansListPage.java) of [`Plan`](src/main/java/com/meteroid/models/Plan.java), with the properties of [`PlanListResponse`](src/main/java/com/meteroid/models/PlanListResponse.java) |
| `Plan client.plans().create(CreatePlanRequest createPlanRequest)` | `POST /api/v1/plans` | [`Plan`](src/main/java/com/meteroid/models/Plan.java) |
| `MinimumCommitment client.plans().updateVersionMinimum(String planVersionId, MinimumCommitment minimumCommitment)` | `PUT /api/v1/plans/versions/{plan_version_id}/minimum` | [`MinimumCommitment`](src/main/java/com/meteroid/models/MinimumCommitment.java) |
| `void client.plans().deleteVersionMinimum(String planVersionId)` | `DELETE /api/v1/plans/versions/{plan_version_id}/minimum` | nothing |
| `Plan client.plans().retrieve(String planId, [PlansRetrieveOptions options])` | `GET /api/v1/plans/{plan_id}` | [`Plan`](src/main/java/com/meteroid/models/Plan.java) |
| `Plan client.plans().replace(String planId, ReplacePlanRequest replacePlanRequest)` | `PUT /api/v1/plans/{plan_id}` | [`Plan`](src/main/java/com/meteroid/models/Plan.java) |
| `Plan client.plans().update(String planId, PatchPlanRequest patchPlanRequest)` | `PATCH /api/v1/plans/{plan_id}` | [`Plan`](src/main/java/com/meteroid/models/Plan.java) |
| `void client.plans().archive(String planId)` | `POST /api/v1/plans/{plan_id}/archive` | nothing |
| `Plan client.plans().publish(String planId)` | `POST /api/v1/plans/{plan_id}/publish` | [`Plan`](src/main/java/com/meteroid/models/Plan.java) |
| `void client.plans().unarchive(String planId)` | `POST /api/v1/plans/{plan_id}/unarchive` | nothing |
| `PlansListVersionsPage client.plans().listVersions(String planId, [PlansListVersionsOptions options])` | `GET /api/v1/plans/{plan_id}/versions` | [page](src/main/java/com/meteroid/api/PlansListVersionsPage.java) of [`PlanVersionSummary`](src/main/java/com/meteroid/models/PlanVersionSummary.java), with the properties of [`PlanVersionListResponse`](src/main/java/com/meteroid/models/PlanVersionListResponse.java) |

### Plans versions

[`client.plans().versions()`](src/main/java/com/meteroid/api/PlansVersions.java)

| Method | Request | Returns |
| --- | --- | --- |
| `MinimumCommitment client.plans().versions().updateMinimum(String planVersionId, MinimumCommitment minimumCommitment)` | `PUT /api/v1/plans/versions/{plan_version_id}/minimum` | [`MinimumCommitment`](src/main/java/com/meteroid/models/MinimumCommitment.java) |
| `void client.plans().versions().deleteMinimum(String planVersionId)` | `DELETE /api/v1/plans/versions/{plan_version_id}/minimum` | nothing |
| `PlansVersionsListPage client.plans().versions().list(String planId, [PlansVersionsListOptions options])` | `GET /api/v1/plans/{plan_id}/versions` | [page](src/main/java/com/meteroid/api/PlansVersionsListPage.java) of [`PlanVersionSummary`](src/main/java/com/meteroid/models/PlanVersionSummary.java), with the properties of [`PlanVersionListResponse`](src/main/java/com/meteroid/models/PlanVersionListResponse.java) |

## Product families

Expand All @@ -239,10 +253,17 @@ the response body as received. The async client's pages have `nextPage()`, `forE
| `Product client.products().retrieve(String productId)` | `GET /api/v1/products/{product_id}` | [`Product`](src/main/java/com/meteroid/models/Product.java) |
| `Product client.products().update(String productId, UpdateProductRequest updateProductRequest)` | `PATCH /api/v1/products/{product_id}` | [`Product`](src/main/java/com/meteroid/models/Product.java) |
| `void client.products().archive(String productId)` | `POST /api/v1/products/{product_id}/archive` | nothing |
| `ResolvedEntitlementListResponse client.products().listEntitlements(String productId)` | `GET /api/v1/products/{product_id}/entitlements` | [`ResolvedEntitlementListResponse`](src/main/java/com/meteroid/models/ResolvedEntitlementListResponse.java) |
| `EntitlementListResponse client.products().createEntitlement(String productId, CreateEntitlementsRequest createEntitlementsRequest)` | `POST /api/v1/products/{product_id}/entitlements` | [`EntitlementListResponse`](src/main/java/com/meteroid/models/EntitlementListResponse.java) |
| `void client.products().unarchive(String productId)` | `POST /api/v1/products/{product_id}/unarchive` | nothing |

### Products entitlements

[`client.products().entitlements()`](src/main/java/com/meteroid/api/ProductsEntitlements.java)

| Method | Request | Returns |
| --- | --- | --- |
| `ResolvedEntitlementListResponse client.products().entitlements().list(String productId)` | `GET /api/v1/products/{product_id}/entitlements` | [`ResolvedEntitlementListResponse`](src/main/java/com/meteroid/models/ResolvedEntitlementListResponse.java) |
| `EntitlementListResponse client.products().entitlements().create(String productId, CreateEntitlementsRequest createEntitlementsRequest)` | `POST /api/v1/products/{product_id}/entitlements` | [`EntitlementListResponse`](src/main/java/com/meteroid/models/EntitlementListResponse.java) |

## Subscriptions

[`client.subscriptions()`](src/main/java/com/meteroid/api/Subscriptions.java)
Expand Down
167 changes: 22 additions & 145 deletions src/main/java/com/meteroid/api/AddOns.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@
import com.meteroid.models.AddOn;
import com.meteroid.models.AddOnListResponse;
import com.meteroid.models.CreateAddOnRequest;
import com.meteroid.models.CreateEntitlementsRequest;
import com.meteroid.models.EntitlementListResponse;
import com.meteroid.models.ResolvedEntitlementListResponse;
import com.meteroid.models.UpdateAddOnRequest;

import okhttp3.HttpUrl;
Expand All @@ -26,6 +23,8 @@ public final class AddOns {
private final MeteroidHttpClient client;
private final WithRawResponse withRawResponse;

private final AddOnsEntitlements entitlements;

/**
* The operations, sending through {@code client}.
*
Expand All @@ -34,6 +33,8 @@ public final class AddOns {
public AddOns(MeteroidHttpClient client) {
this.client = client;
this.withRawResponse = new WithRawResponse();

this.entitlements = new AddOnsEntitlements(client);
}

/**
Expand All @@ -45,6 +46,15 @@ public WithRawResponse withRawResponse() {
return withRawResponse;
}

/**
* The {@code entitlements} operations.
*
* @return the operations
*/
public AddOnsEntitlements entitlements() {
return entitlements;
}

/**
* List add-ons
*
Expand Down Expand Up @@ -300,93 +310,6 @@ MeteroidHttpClient.Exchange<Void> exchangeArchive(
.returningNothing();
}

/**
* List add-on entitlements
*
* @param addonId the {@code addon_id} path parameter
* @return the response body
*/
public ResolvedEntitlementListResponse listEntitlements(final String addonId) {
return listEntitlements(addonId, RequestOptions.none());
}

/**
* List add-on entitlements
*
* @param addonId the {@code addon_id} path parameter
* @param requestOptions headers, timeout and retries of this call
* @return the response body
*/
public ResolvedEntitlementListResponse listEntitlements(
final String addonId, final RequestOptions requestOptions) {
return exchangeListEntitlements(addonId, requestOptions).send();
}

MeteroidHttpClient.Exchange<ResolvedEntitlementListResponse> exchangeListEntitlements(
final String addonId, final RequestOptions requestOptions) {
Objects.requireNonNull(addonId, "addon_id");
HttpUrl url =
client.newUrlBuilder()
.addPathSegments("api/v1/addons")
.addPathSegment(Utils.pathSegment("addon_id", addonId))
.addPathSegments("entitlements")
.build();
return client.call("GET", url)
.errors(com.meteroid.models.RestErrorResponse.class, "401", "404", "429")
.options(requestOptions)
.returning(ResolvedEntitlementListResponse.class);
}

/**
* Create add-on entitlements
*
* <p>Entitlements already present on this add-on are skipped.
*
* @param addonId the {@code addon_id} path parameter
* @param createEntitlementsRequest the request body
* @return the response body
*/
public EntitlementListResponse createEntitlement(
final String addonId, final CreateEntitlementsRequest createEntitlementsRequest) {
return createEntitlement(addonId, createEntitlementsRequest, RequestOptions.none());
}

/**
* Create add-on entitlements
*
* <p>Entitlements already present on this add-on are skipped.
*
* @param addonId the {@code addon_id} path parameter
* @param createEntitlementsRequest the request body
* @param requestOptions headers, timeout and retries of this call
* @return the response body
*/
public EntitlementListResponse createEntitlement(
final String addonId,
final CreateEntitlementsRequest createEntitlementsRequest,
final RequestOptions requestOptions) {
return exchangeCreateEntitlement(addonId, createEntitlementsRequest, requestOptions).send();
}

MeteroidHttpClient.Exchange<EntitlementListResponse> exchangeCreateEntitlement(
final String addonId,
final CreateEntitlementsRequest createEntitlementsRequest,
final RequestOptions requestOptions) {
Objects.requireNonNull(addonId, "addon_id");
Objects.requireNonNull(createEntitlementsRequest, "body");
HttpUrl url =
client.newUrlBuilder()
.addPathSegments("api/v1/addons")
.addPathSegment(Utils.pathSegment("addon_id", addonId))
.addPathSegments("entitlements")
.build();
return client.call("POST", url)
.json(createEntitlementsRequest)
.errors(com.meteroid.models.RestErrorResponse.class, "400", "401", "404", "429")
.options(requestOptions)
.returning(EntitlementListResponse.class);
}

/**
* Unarchive an add-on
*
Expand Down Expand Up @@ -425,6 +348,15 @@ MeteroidHttpClient.Exchange<Void> exchangeUnarchive(
public final class WithRawResponse {
private WithRawResponse() {}

/**
* The {@code entitlements} operations.
*
* @return the operations
*/
public AddOnsEntitlements.WithRawResponse entitlements() {
return AddOns.this.entitlements.withRawResponse();
}

/**
* List add-ons
*
Expand Down Expand Up @@ -566,61 +498,6 @@ public ApiResponse<Void> archive(
return AddOns.this.exchangeArchive(addonId, requestOptions).sendRaw();
}

/**
* List add-on entitlements
*
* @param addonId the {@code addon_id} path parameter
* @return the status, headers and body
*/
public ApiResponse<ResolvedEntitlementListResponse> listEntitlements(final String addonId) {
return listEntitlements(addonId, RequestOptions.none());
}

/**
* List add-on entitlements
*
* @param addonId the {@code addon_id} path parameter
* @param requestOptions headers, timeout and retries of this call
* @return the status, headers and body
*/
public ApiResponse<ResolvedEntitlementListResponse> listEntitlements(
final String addonId, final RequestOptions requestOptions) {
return AddOns.this.exchangeListEntitlements(addonId, requestOptions).sendRaw();
}

/**
* Create add-on entitlements
*
* <p>Entitlements already present on this add-on are skipped.
*
* @param addonId the {@code addon_id} path parameter
* @param createEntitlementsRequest the request body
* @return the status, headers and body
*/
public ApiResponse<EntitlementListResponse> createEntitlement(
final String addonId, final CreateEntitlementsRequest createEntitlementsRequest) {
return createEntitlement(addonId, createEntitlementsRequest, RequestOptions.none());
}

/**
* Create add-on entitlements
*
* <p>Entitlements already present on this add-on are skipped.
*
* @param addonId the {@code addon_id} path parameter
* @param createEntitlementsRequest the request body
* @param requestOptions headers, timeout and retries of this call
* @return the status, headers and body
*/
public ApiResponse<EntitlementListResponse> createEntitlement(
final String addonId,
final CreateEntitlementsRequest createEntitlementsRequest,
final RequestOptions requestOptions) {
return AddOns.this
.exchangeCreateEntitlement(addonId, createEntitlementsRequest, requestOptions)
.sendRaw();
}

/**
* Unarchive an add-on
*
Expand Down
Loading
Loading