zuplo 6.70.15 → 6.70.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/articles/monetization/billing-models.md +17 -28
- package/docs/articles/monetization/monetization-policy.md +16 -14
- package/docs/articles/monetization/stripe-integration.md +2 -10
- package/docs/articles/monetization/subscription-lifecycle.md +99 -42
- package/docs/cli/ca-certificate-create.mdx +76 -0
- package/docs/cli/ca-certificate-delete.mdx +67 -0
- package/docs/cli/ca-certificate-describe.mdx +67 -0
- package/docs/cli/ca-certificate-list.mdx +59 -0
- package/docs/cli/ca-certificate-update.mdx +71 -0
- package/docs/policies/_index.md +5 -3
- package/docs/policies/akamai-firewall-for-ai-inbound/doc.md +79 -0
- package/docs/policies/akamai-firewall-for-ai-inbound/intro.md +13 -0
- package/docs/policies/akamai-firewall-for-ai-inbound/schema.json +126 -0
- package/docs/policies/akamai-firewall-for-ai-outbound/doc.md +79 -0
- package/docs/policies/akamai-firewall-for-ai-outbound/intro.md +13 -0
- package/docs/policies/akamai-firewall-for-ai-outbound/schema.json +126 -0
- package/docs/policies/monetization-inbound/schema.json +2 -2
- package/docs/policies/mtls-auth-inbound/intro.md +32 -6
- package/docs/policies/mtls-auth-inbound/schema.json +9 -15
- package/docs/policies/prompt-injection-outbound/schema.json +1 -1
- package/docs/policies/semantic-cache-inbound/schema.json +1 -1
- package/docs/policies/xml-to-json-outbound/schema.json +1 -1
- package/package.json +4 -4
|
@@ -479,8 +479,7 @@ Stripe Invoice that includes both:
|
|
|
479
479
|
period, charged in arrears.
|
|
480
480
|
|
|
481
481
|
Stripe collects payment for the full invoice. The first billing period's invoice
|
|
482
|
-
contains only the $499, since there's no prior period to bill overage for.
|
|
483
|
-
Stripe Subscription is created.
|
|
482
|
+
contains only the $499, since there's no prior period to bill overage for.
|
|
484
483
|
|
|
485
484
|
## Credits / tokens (prepaid)
|
|
486
485
|
|
|
@@ -509,10 +508,10 @@ credits run out, then buy more. No ongoing subscription commitment.
|
|
|
509
508
|
|
|
510
509
|
```json
|
|
511
510
|
{
|
|
512
|
-
"key": "
|
|
511
|
+
"key": "credits_small",
|
|
513
512
|
"name": "50,000 Credits",
|
|
514
513
|
"currency": "USD",
|
|
515
|
-
"billingCadence":
|
|
514
|
+
"billingCadence": "P1M",
|
|
516
515
|
"phases": [
|
|
517
516
|
{
|
|
518
517
|
"key": "default",
|
|
@@ -520,20 +519,15 @@ credits run out, then buy more. No ongoing subscription commitment.
|
|
|
520
519
|
"duration": null,
|
|
521
520
|
"rateCards": [
|
|
522
521
|
{
|
|
523
|
-
"type": "
|
|
524
|
-
"key": "
|
|
525
|
-
"name": "API Credits",
|
|
526
|
-
"featureKey": "
|
|
522
|
+
"type": "flat_fee",
|
|
523
|
+
"key": "api_requests",
|
|
524
|
+
"name": "50,000 API Credits",
|
|
525
|
+
"featureKey": "api_requests",
|
|
527
526
|
"billingCadence": null,
|
|
528
527
|
"price": {
|
|
529
|
-
"type": "
|
|
528
|
+
"type": "flat",
|
|
530
529
|
"amount": "49.00",
|
|
531
|
-
"
|
|
532
|
-
},
|
|
533
|
-
"entitlementTemplate": {
|
|
534
|
-
"type": "metered",
|
|
535
|
-
"issueAfterReset": 50000,
|
|
536
|
-
"isSoftLimit": false
|
|
530
|
+
"paymentTerm": "in_advance"
|
|
537
531
|
}
|
|
538
532
|
}
|
|
539
533
|
]
|
|
@@ -546,10 +540,10 @@ credits run out, then buy more. No ongoing subscription commitment.
|
|
|
546
540
|
|
|
547
541
|
```json
|
|
548
542
|
{
|
|
549
|
-
"key": "
|
|
543
|
+
"key": "credits_large",
|
|
550
544
|
"name": "500,000 Credits",
|
|
551
545
|
"currency": "USD",
|
|
552
|
-
"billingCadence":
|
|
546
|
+
"billingCadence": "P1M",
|
|
553
547
|
"phases": [
|
|
554
548
|
{
|
|
555
549
|
"key": "default",
|
|
@@ -557,20 +551,15 @@ credits run out, then buy more. No ongoing subscription commitment.
|
|
|
557
551
|
"duration": null,
|
|
558
552
|
"rateCards": [
|
|
559
553
|
{
|
|
560
|
-
"type": "
|
|
561
|
-
"key": "
|
|
562
|
-
"name": "API Credits",
|
|
563
|
-
"featureKey": "
|
|
554
|
+
"type": "flat_fee",
|
|
555
|
+
"key": "api_requests",
|
|
556
|
+
"name": "500,000 API Credits",
|
|
557
|
+
"featureKey": "api_requests",
|
|
564
558
|
"billingCadence": null,
|
|
565
559
|
"price": {
|
|
566
|
-
"type": "
|
|
560
|
+
"type": "flat",
|
|
567
561
|
"amount": "299.00",
|
|
568
|
-
"
|
|
569
|
-
},
|
|
570
|
-
"entitlementTemplate": {
|
|
571
|
-
"type": "metered",
|
|
572
|
-
"issueAfterReset": 500000,
|
|
573
|
-
"isSoftLimit": false
|
|
562
|
+
"paymentTerm": "in_advance"
|
|
574
563
|
}
|
|
575
564
|
}
|
|
576
565
|
]
|
|
@@ -296,20 +296,22 @@ the RFC 7807 Problem Details format:
|
|
|
296
296
|
|
|
297
297
|
Common error details:
|
|
298
298
|
|
|
299
|
-
| Condition
|
|
300
|
-
|
|
|
301
|
-
| No auth header
|
|
302
|
-
| Wrong auth scheme
|
|
303
|
-
| Empty key after the auth scheme
|
|
304
|
-
| Cached invalid key or 401
|
|
305
|
-
| Invalid API key
|
|
306
|
-
| Expired API key
|
|
307
|
-
| Expired subscription
|
|
308
|
-
| Subscription has no payment
|
|
309
|
-
| Payment not made
|
|
310
|
-
| Payment overdue
|
|
311
|
-
|
|
|
312
|
-
| Meter not in subscription
|
|
299
|
+
| Condition | `detail` message |
|
|
300
|
+
| -------------------------------- | ------------------------------------------------------------------- |
|
|
301
|
+
| No auth header | `"No Authorization Header"` |
|
|
302
|
+
| Wrong auth scheme | `"Invalid Authorization Scheme"` |
|
|
303
|
+
| Empty key after the auth scheme | `"No key present"` |
|
|
304
|
+
| Cached invalid key or 401 | `"Authorization Failed"` |
|
|
305
|
+
| Invalid API key | `"API Key is invalid or does not have access to the API"` |
|
|
306
|
+
| Expired API key | `"API Key has expired."` |
|
|
307
|
+
| Expired subscription | `"API Key has an expired subscription."` |
|
|
308
|
+
| Subscription has no payment | `"Subscription payment status is not available."` |
|
|
309
|
+
| Payment not made | `"Payment has not been made."` |
|
|
310
|
+
| Payment overdue | `"Payment is overdue. Please update your payment method."` |
|
|
311
|
+
| Subscription has no entitlements | `"Subscription entitlements are not available."` |
|
|
312
|
+
| Meter not in subscription | `"API Key does not have \"X\" meter provided by the subscription."` |
|
|
313
|
+
| Quota exhausted | `"API Key has exceeded the allowed limit for \"X\" meter."` |
|
|
314
|
+
| Meter access denied | `"API Key does not have access to \"X\" meter."` |
|
|
313
315
|
|
|
314
316
|
## Pipeline ordering
|
|
315
317
|
|
|
@@ -46,7 +46,7 @@ in Stripe at the moment a charge is needed (as invoice line items).
|
|
|
46
46
|
[**Services**](https://portal.zuplo.com/+/account/project/services) page,
|
|
47
47
|
select the Monetization Service, then go to **Payment Provider**
|
|
48
48
|
2. Click **Configure** on the Stripe card
|
|
49
|
-
3.
|
|
49
|
+
3. Paste your **Stripe API Key**
|
|
50
50
|
4. Click **Save**
|
|
51
51
|
|
|
52
52
|
:::tip
|
|
@@ -229,13 +229,6 @@ For programmatic cancellation, see
|
|
|
229
229
|
Lifecycle guide — the API endpoint accepts a `timing` parameter to control this
|
|
230
230
|
same behavior explicitly.
|
|
231
231
|
|
|
232
|
-
## Proration
|
|
233
|
-
|
|
234
|
-
When customers upgrade or downgrade mid-billing-period, charges are prorated
|
|
235
|
-
automatically. Upgrades are charged the prorated difference for the remainder of
|
|
236
|
-
the billing period. Downgrades result in a prorated credit applied to the next
|
|
237
|
-
invoice.
|
|
238
|
-
|
|
239
232
|
## Usage-based billing
|
|
240
233
|
|
|
241
234
|
For plans with usage-based pricing (per-unit, tiered, pay-as-you-go), usage is
|
|
@@ -278,8 +271,7 @@ To enable the Stripe Customer Portal:
|
|
|
278
271
|
|
|
279
272
|
1. Configure the Customer Portal in your
|
|
280
273
|
[Stripe Dashboard → Settings → Billing → Customer Portal](https://dashboard.stripe.com/settings/billing/portal)
|
|
281
|
-
2. Enable the features you want (update payment method, view invoices
|
|
282
|
-
subscription)
|
|
274
|
+
2. Enable the features you want (update payment method, view invoices)
|
|
283
275
|
3. The Developer Portal automatically includes a "Manage Billing" link that
|
|
284
276
|
opens the Stripe Customer Portal
|
|
285
277
|
|
|
@@ -17,20 +17,38 @@ trials, upgrades, downgrades, cancellation, and reactivation.
|
|
|
17
17
|
|
|
18
18
|
## Subscription states
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
|
20
|
+
A subscription's lifecycle status is computed from its `activeFrom`/`activeTo`
|
|
21
|
+
window — it is not a stored field, and transitions happen automatically as time
|
|
22
|
+
passes. The four possible values reflect lifecycle only; payment status is
|
|
23
|
+
tracked separately (see the note below).
|
|
24
|
+
|
|
25
|
+
| Status | API access | Description |
|
|
26
|
+
| ----------- | ---------- | ------------------------------------------------------------------- |
|
|
27
|
+
| `active` | Yes | Currently in effect with no scheduled end |
|
|
28
|
+
| `canceled` | Yes | Scheduled to end at a future date; access continues until that date |
|
|
29
|
+
| `inactive` | No | Has ended, or was canceled before becoming active |
|
|
30
|
+
| `scheduled` | No | Has not yet started — `activeFrom` is in the future |
|
|
31
|
+
|
|
32
|
+
When a customer cancels a subscription with `next_billing_cycle` timing, its
|
|
33
|
+
status flips from `active` to `canceled` immediately (with `activeTo` set to the
|
|
34
|
+
period end). The customer keeps access throughout the `canceled` window, and the
|
|
35
|
+
status transitions to `inactive` once `activeTo` passes. A subscription in the
|
|
36
|
+
`canceled` state can be reactivated — see [Reactivation](#reactivation) below.
|
|
26
37
|
|
|
27
38
|
:::note
|
|
28
39
|
|
|
29
|
-
Access is also governed by payment status
|
|
30
|
-
grace period (default 3 days), access is blocked
|
|
31
|
-
The grace period is configurable per-customer,
|
|
40
|
+
Access is also governed by payment status, which is tracked separately. If a
|
|
41
|
+
payment is overdue beyond the grace period (default 3 days), access is blocked
|
|
42
|
+
even for `active` subscriptions. The grace period is configurable per-customer,
|
|
43
|
+
per-plan, or per-bucket — see
|
|
32
44
|
[Subscription and payment validation](./monetization-policy.md#subscription-and-payment-validation).
|
|
33
45
|
|
|
46
|
+
In the Zuplo admin UI, lifecycle status and payment status are combined into
|
|
47
|
+
derived display labels such as "Access Blocked" or "Payment Failed" to surface
|
|
48
|
+
the effective state at a glance. In the Developer Portal, a subscription with a
|
|
49
|
+
future `activeTo` (whether `active` or `canceled`) is shown with an "Expiring"
|
|
50
|
+
badge and the upcoming end date.
|
|
51
|
+
|
|
34
52
|
:::
|
|
35
53
|
|
|
36
54
|
## Creating subscriptions
|
|
@@ -43,8 +61,9 @@ completes Stripe Checkout, and gets their API key immediately.
|
|
|
43
61
|
1. Customer visits the pricing page
|
|
44
62
|
2. Clicks "Subscribe" on their chosen plan
|
|
45
63
|
3. Completes Stripe Checkout (enters payment details)
|
|
46
|
-
4.
|
|
47
|
-
5.
|
|
64
|
+
4. Returns to the Developer Portal to review the subscription summary
|
|
65
|
+
5. Clicks "Confirm & Subscribe" to finalize
|
|
66
|
+
6. Subscription is active, API key is generated
|
|
48
67
|
|
|
49
68
|
### Programmatic (API)
|
|
50
69
|
|
|
@@ -63,7 +82,7 @@ curl -X POST https://dev.zuplo.com/v3/metering/{bucketId}/subscriptions \
|
|
|
63
82
|
```
|
|
64
83
|
|
|
65
84
|
`plan` references the target plan by its `key` (and optionally `version`).
|
|
66
|
-
Provide either `customerId` (the
|
|
85
|
+
Provide either `customerId` (the metering customer ULID, format
|
|
67
86
|
`^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$`) or `customerKey` (your own
|
|
68
87
|
identifier). Optional fields include `timing` (`"immediate"` by default,
|
|
69
88
|
`"next_billing_cycle"`, or an RFC 3339 timestamp), `startingPhase`, `name`,
|
|
@@ -168,23 +187,31 @@ If the plan has a paid phase after the trial:
|
|
|
168
187
|
- On success: subscription transitions to the paid phase with paid entitlements
|
|
169
188
|
- On failure: access depends on the payment grace period configuration
|
|
170
189
|
|
|
171
|
-
|
|
190
|
+
What happens if the customer cancels during the trial depends on whether the
|
|
191
|
+
trial phase has billable rate cards:
|
|
172
192
|
|
|
173
|
-
-
|
|
174
|
-
|
|
175
|
-
|
|
193
|
+
- **Free trial** (no priced rate cards in the trial phase, like the example
|
|
194
|
+
above): access ends immediately, no payment is charged, and the trial does not
|
|
195
|
+
convert to the paid phase. Cancellation cannot defer to a billing-cycle end
|
|
196
|
+
because the trial phase has nothing to bill
|
|
197
|
+
- **Paid trial** (the trial phase has a price, e.g., a $1 introductory rate):
|
|
198
|
+
access continues until the end of the trial period (default
|
|
199
|
+
`next_billing_cycle` timing), the trial fee is billed on the final invoice,
|
|
200
|
+
and the trial does not convert to the subsequent paid phase
|
|
176
201
|
|
|
177
202
|
## Plan changes (upgrades and downgrades)
|
|
178
203
|
|
|
179
204
|
### Customer-initiated (Developer Portal)
|
|
180
205
|
|
|
181
|
-
Customers can change plans from the
|
|
206
|
+
Customers can change plans from the **Manage Subscription** section in the
|
|
207
|
+
Developer Portal:
|
|
182
208
|
|
|
183
|
-
1. Customer clicks "
|
|
209
|
+
1. Customer clicks "Switch Plan" on their active subscription
|
|
184
210
|
2. Sees available plans with pricing comparison
|
|
185
211
|
3. Selects the new plan
|
|
186
212
|
4. Stripe handles proration (charge or credit the difference)
|
|
187
|
-
5.
|
|
213
|
+
5. For an upgrade, new entitlements take effect immediately; for a downgrade,
|
|
214
|
+
they apply at the next billing cycle
|
|
188
215
|
6. The API key stays the same
|
|
189
216
|
|
|
190
217
|
### Programmatic (API)
|
|
@@ -203,14 +230,16 @@ curl -X POST https://dev.zuplo.com/v3/metering/{bucketId}/subscriptions/{subscri
|
|
|
203
230
|
```
|
|
204
231
|
|
|
205
232
|
`timing` accepts `"immediate"`, `"next_billing_cycle"`, or an RFC 3339
|
|
206
|
-
timestamp.
|
|
233
|
+
timestamp. Optional fields include `startingPhase`, `name`, `description`,
|
|
234
|
+
`metadata`, `alignment`, and `billingAnchor`. To preview the proration credit
|
|
235
|
+
before committing, call
|
|
207
236
|
`POST /v3/metering/{bucketId}/subscriptions/{subscriptionId}/change/estimate-credit`
|
|
208
237
|
with the same body.
|
|
209
238
|
|
|
210
239
|
### Proration behavior
|
|
211
240
|
|
|
212
241
|
When a customer changes plans mid-billing-period, Zuplo uses
|
|
213
|
-
**
|
|
242
|
+
**max_consumption_based proration** to calculate a fair credit from the old
|
|
214
243
|
plan. Instead of only considering how much time has passed, the system looks at
|
|
215
244
|
both elapsed time and actual quota usage, then uses whichever is greater.
|
|
216
245
|
|
|
@@ -227,8 +256,8 @@ does not reflect their actual usage.
|
|
|
227
256
|
**Downgrade (e.g., Pro → Starter):**
|
|
228
257
|
|
|
229
258
|
- New (lower) entitlements take effect at the next billing cycle
|
|
230
|
-
-
|
|
231
|
-
|
|
259
|
+
- No proration credit is issued. The customer keeps the higher-tier entitlements
|
|
260
|
+
for the remainder of the current cycle they already paid for.
|
|
232
261
|
|
|
233
262
|
**Example:** A customer on Starter ($29/month, 10,000 requests) upgrades to Pro
|
|
234
263
|
on day 15 of a 30-day period, having used 7,000 requests.
|
|
@@ -240,23 +269,39 @@ on day 15 of a 30-day period, having used 7,000 requests.
|
|
|
240
269
|
| Max of the two | 70% |
|
|
241
270
|
| **Credit applied** | **$8.70** |
|
|
242
271
|
|
|
243
|
-
The credit is
|
|
272
|
+
The credit amount is calculated once at the moment of the plan change. It is
|
|
273
|
+
applied as a line-item discount on the next invoice's upfront flat-fee line. If
|
|
274
|
+
the credit exceeds that line's amount, the remainder cascades onto subsequent
|
|
275
|
+
invoices in chronological order until it is fully consumed.
|
|
276
|
+
|
|
277
|
+
### Quota on plan change
|
|
278
|
+
|
|
279
|
+
Each subscription tracks its own quota independently. When a customer changes
|
|
280
|
+
plans, a brand-new subscription is created and its entitlement starts measuring
|
|
281
|
+
usage from the switch time — usage from the previous plan does not count against
|
|
282
|
+
the new plan's quota.
|
|
244
283
|
|
|
245
|
-
|
|
284
|
+
Walking through the example above: a customer used 8,000 of their 10,000-request
|
|
285
|
+
Starter quota in the first 15 days. After upgrading to Pro on day 15, the
|
|
286
|
+
customer has the full 50,000-request Pro quota available from day 15 onward,
|
|
287
|
+
regardless of how much was used on Starter. The 8,000 stays attributed to the
|
|
288
|
+
Starter subscription for billing purposes only.
|
|
246
289
|
|
|
247
|
-
|
|
248
|
-
customer used 8,000 of their 10,000-request Starter quota and upgrades to Pro
|
|
249
|
-
(50,000 requests), they have 42,000 remaining for the current period — not
|
|
250
|
-
50,000.
|
|
290
|
+
Gaming via short-lived upgrades is constrained by two other mechanisms:
|
|
251
291
|
|
|
252
|
-
|
|
253
|
-
|
|
292
|
+
- Downgrades take effect at the next billing cycle (not immediately), so a
|
|
293
|
+
customer cannot briefly upgrade and immediately downgrade to grab a fresh
|
|
294
|
+
quota.
|
|
295
|
+
- Max-consumption-based proration issues zero refund when the old plan's quota
|
|
296
|
+
was already mostly consumed (see [Proration behavior](#proration-behavior)
|
|
297
|
+
above), so paying for a short-lived upgrade is not economical.
|
|
254
298
|
|
|
255
299
|
## Cancellation
|
|
256
300
|
|
|
257
301
|
### Customer-initiated
|
|
258
302
|
|
|
259
|
-
Customers can cancel from the
|
|
303
|
+
Customers can cancel from the **Manage Subscription** section in the Developer
|
|
304
|
+
Portal:
|
|
260
305
|
|
|
261
306
|
1. Customer clicks "Cancel Subscription"
|
|
262
307
|
2. Confirmation dialog explains what happens
|
|
@@ -264,6 +309,10 @@ Customers can cancel from the Developer Portal subscriptions page:
|
|
|
264
309
|
4. Customer retains full access until the period ends
|
|
265
310
|
5. At period end, access is revoked and the API key stops working
|
|
266
311
|
|
|
312
|
+
For free plans and subscriptions still in their free trial phase, cancellation
|
|
313
|
+
is immediate — there are no billable items left to consume, so end-of-period
|
|
314
|
+
behavior does not apply.
|
|
315
|
+
|
|
267
316
|
### Programmatic cancellation
|
|
268
317
|
|
|
269
318
|
```bash
|
|
@@ -285,11 +334,11 @@ curl -X POST https://dev.zuplo.com/v3/metering/{bucketId}/subscriptions/{subscri
|
|
|
285
334
|
|
|
286
335
|
### Cancellation behavior
|
|
287
336
|
|
|
288
|
-
| Scenario
|
|
289
|
-
|
|
|
290
|
-
| Active subscription canceled
|
|
291
|
-
|
|
|
292
|
-
| Subscription with overage
|
|
337
|
+
| Scenario | Default behavior |
|
|
338
|
+
| ---------------------------------------- | ------------------------------------------- |
|
|
339
|
+
| Active subscription canceled | Access until period end, then revoked |
|
|
340
|
+
| Free trial or free subscription canceled | Access ends immediately, no payment charged |
|
|
341
|
+
| Subscription with overage | Overage billed on final invoice |
|
|
293
342
|
|
|
294
343
|
## Reactivation
|
|
295
344
|
|
|
@@ -305,14 +354,22 @@ This removes the pending cancellation. The subscription continues as normal. For
|
|
|
305
354
|
a subscription whose period has already ended, create a new subscription on the
|
|
306
355
|
same plan instead.
|
|
307
356
|
|
|
308
|
-
##
|
|
357
|
+
## Subscriptions per customer
|
|
358
|
+
|
|
359
|
+
By default, each customer can hold one active subscription at a time. The
|
|
360
|
+
Developer Portal returns `409 Conflict` ("the maximum number of active
|
|
361
|
+
subscriptions has been reached") when a customer tries to subscribe while
|
|
362
|
+
another subscription is still active or pending cancellation — a subscription in
|
|
363
|
+
the `canceled` wind-down state still counts toward the cap.
|
|
309
364
|
|
|
310
|
-
|
|
311
|
-
|
|
365
|
+
Multi-subscription support is available on request. Contact
|
|
366
|
+
[sales@zuplo.com](mailto:sales@zuplo.com) to enable it for your bucket if you
|
|
367
|
+
need scenarios like:
|
|
312
368
|
|
|
313
369
|
- A primary monthly subscription plus a credit pack top-up
|
|
314
370
|
- Separate subscriptions for different API products
|
|
315
371
|
- A team subscription and a personal subscription
|
|
316
372
|
|
|
317
|
-
Each subscription
|
|
318
|
-
|
|
373
|
+
Each subscription is bound to its own consumer record and its own API key, both
|
|
374
|
+
generated when the subscription is created. When a customer holds multiple
|
|
375
|
+
subscriptions, they use the appropriate key for each.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Zuplo CLI: Ca Certificate Create"
|
|
3
|
+
sidebar_label: ca-certificate create
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<CliCommand
|
|
7
|
+
command="ca-certificate create"
|
|
8
|
+
description="Creates a new CA certificate for client mTLS verification"
|
|
9
|
+
options={[
|
|
10
|
+
{
|
|
11
|
+
"name": "name",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The name of the CA certificate (must be a valid JavaScript identifier: starts with a letter, _, or $; contains only letters, digits, _, or $)",
|
|
14
|
+
"required": false,
|
|
15
|
+
"deprecated": false,
|
|
16
|
+
"hidden": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "cert",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Path to a PEM-encoded CA certificate file (.pem, .crt, or .cer with a -----BEGIN CERTIFICATE----- header). DER inputs are not accepted",
|
|
22
|
+
"required": false,
|
|
23
|
+
"deprecated": false,
|
|
24
|
+
"hidden": false,
|
|
25
|
+
"normalize": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "account",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "The account name",
|
|
31
|
+
"required": false,
|
|
32
|
+
"deprecated": false,
|
|
33
|
+
"hidden": false
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "output",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Output format",
|
|
39
|
+
"default": "default",
|
|
40
|
+
"required": false,
|
|
41
|
+
"deprecated": false,
|
|
42
|
+
"hidden": false,
|
|
43
|
+
"alias": [
|
|
44
|
+
"o"
|
|
45
|
+
],
|
|
46
|
+
"choices": [
|
|
47
|
+
"default",
|
|
48
|
+
"json"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
]}
|
|
52
|
+
examples={[
|
|
53
|
+
[
|
|
54
|
+
"$0 ca-certificate create --name my_ca --cert ./ca.pem",
|
|
55
|
+
"Create a CA certificate for client mTLS verification"
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
"$0 ca-certificate create --name my_ca --cert ./ca.pem --output json",
|
|
59
|
+
"Create a CA certificate and output the result as JSON"
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
"$0 ca-certificate create --name my_ca --cert ./ca.pem --account my-account",
|
|
63
|
+
"Explicitly specify the account"
|
|
64
|
+
]
|
|
65
|
+
]}
|
|
66
|
+
usage="$0 ca-certificate create --name <name> --cert <file> [options]"
|
|
67
|
+
>
|
|
68
|
+
|
|
69
|
+
</CliCommand>
|
|
70
|
+
|
|
71
|
+
## Global options
|
|
72
|
+
|
|
73
|
+
The following global options are available for all commands:
|
|
74
|
+
|
|
75
|
+
- [`--help`](./global-options.mdx#help)
|
|
76
|
+
- [`--api-key`](./global-options.mdx#api-key)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Zuplo CLI: Ca Certificate Delete"
|
|
3
|
+
sidebar_label: ca-certificate delete
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<CliCommand
|
|
7
|
+
command="ca-certificate delete"
|
|
8
|
+
description="Deletes a CA certificate by ID"
|
|
9
|
+
options={[
|
|
10
|
+
{
|
|
11
|
+
"name": "cert-id",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The ID of the CA certificate to delete",
|
|
14
|
+
"required": false,
|
|
15
|
+
"deprecated": false,
|
|
16
|
+
"hidden": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "account",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The account name",
|
|
22
|
+
"required": false,
|
|
23
|
+
"deprecated": false,
|
|
24
|
+
"hidden": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "output",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Output format",
|
|
30
|
+
"default": "default",
|
|
31
|
+
"required": false,
|
|
32
|
+
"deprecated": false,
|
|
33
|
+
"hidden": false,
|
|
34
|
+
"alias": [
|
|
35
|
+
"o"
|
|
36
|
+
],
|
|
37
|
+
"choices": [
|
|
38
|
+
"default",
|
|
39
|
+
"json"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
]}
|
|
43
|
+
examples={[
|
|
44
|
+
[
|
|
45
|
+
"$0 ca-certificate delete --cert-id mtlsca_abc123",
|
|
46
|
+
"Delete a CA certificate"
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
"$0 ca-certificate delete --cert-id mtlsca_abc123 --output json",
|
|
50
|
+
"Delete a CA certificate and output the result as JSON"
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
"$0 ca-certificate delete --cert-id mtlsca_abc123 --account my-account",
|
|
54
|
+
"Explicitly specify the account"
|
|
55
|
+
]
|
|
56
|
+
]}
|
|
57
|
+
usage="$0 ca-certificate delete --cert-id <id> [options]"
|
|
58
|
+
>
|
|
59
|
+
|
|
60
|
+
</CliCommand>
|
|
61
|
+
|
|
62
|
+
## Global options
|
|
63
|
+
|
|
64
|
+
The following global options are available for all commands:
|
|
65
|
+
|
|
66
|
+
- [`--help`](./global-options.mdx#help)
|
|
67
|
+
- [`--api-key`](./global-options.mdx#api-key)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Zuplo CLI: Ca Certificate Describe"
|
|
3
|
+
sidebar_label: ca-certificate describe
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<CliCommand
|
|
7
|
+
command="ca-certificate describe"
|
|
8
|
+
description="Describes a CA certificate"
|
|
9
|
+
options={[
|
|
10
|
+
{
|
|
11
|
+
"name": "cert-id",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The ID of the CA certificate to describe",
|
|
14
|
+
"required": false,
|
|
15
|
+
"deprecated": false,
|
|
16
|
+
"hidden": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "account",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The account name",
|
|
22
|
+
"required": false,
|
|
23
|
+
"deprecated": false,
|
|
24
|
+
"hidden": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "output",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Output format",
|
|
30
|
+
"default": "default",
|
|
31
|
+
"required": false,
|
|
32
|
+
"deprecated": false,
|
|
33
|
+
"hidden": false,
|
|
34
|
+
"alias": [
|
|
35
|
+
"o"
|
|
36
|
+
],
|
|
37
|
+
"choices": [
|
|
38
|
+
"default",
|
|
39
|
+
"json"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
]}
|
|
43
|
+
examples={[
|
|
44
|
+
[
|
|
45
|
+
"$0 ca-certificate describe --cert-id mtlsca_abc123",
|
|
46
|
+
"Get details about a CA certificate"
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
"$0 ca-certificate describe --cert-id mtlsca_abc123 --output json",
|
|
50
|
+
"Get details as JSON"
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
"$0 ca-certificate describe --cert-id mtlsca_abc123 --account my-account",
|
|
54
|
+
"Explicitly specify the account"
|
|
55
|
+
]
|
|
56
|
+
]}
|
|
57
|
+
usage="$0 ca-certificate describe --cert-id <id> [options]"
|
|
58
|
+
>
|
|
59
|
+
|
|
60
|
+
</CliCommand>
|
|
61
|
+
|
|
62
|
+
## Global options
|
|
63
|
+
|
|
64
|
+
The following global options are available for all commands:
|
|
65
|
+
|
|
66
|
+
- [`--help`](./global-options.mdx#help)
|
|
67
|
+
- [`--api-key`](./global-options.mdx#api-key)
|