@transcodely/sdk 0.3.5 → 0.3.7

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/dist/index.cjs CHANGED
@@ -149,6 +149,55 @@ protobuf.proto3.util.setEnumType(BitrateMode, "transcodely.v1.BitrateMode", [
149
149
  { no: 2, name: "BITRATE_MODE_CBR" },
150
150
  { no: 3, name: "BITRATE_MODE_VBR" }
151
151
  ]);
152
+ var BillingStanding = /* @__PURE__ */ ((BillingStanding2) => {
153
+ BillingStanding2[BillingStanding2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
154
+ BillingStanding2[BillingStanding2["FREE"] = 1] = "FREE";
155
+ BillingStanding2[BillingStanding2["ACTIVE"] = 2] = "ACTIVE";
156
+ BillingStanding2[BillingStanding2["GRACE"] = 3] = "GRACE";
157
+ BillingStanding2[BillingStanding2["DELINQUENT"] = 4] = "DELINQUENT";
158
+ return BillingStanding2;
159
+ })(BillingStanding || {});
160
+ protobuf.proto3.util.setEnumType(BillingStanding, "transcodely.v1.BillingStanding", [
161
+ { no: 0, name: "BILLING_STANDING_UNSPECIFIED" },
162
+ { no: 1, name: "BILLING_STANDING_FREE" },
163
+ { no: 2, name: "BILLING_STANDING_ACTIVE" },
164
+ { no: 3, name: "BILLING_STANDING_GRACE" },
165
+ { no: 4, name: "BILLING_STANDING_DELINQUENT" }
166
+ ]);
167
+ var BillingTreatment = /* @__PURE__ */ ((BillingTreatment2) => {
168
+ BillingTreatment2[BillingTreatment2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
169
+ BillingTreatment2[BillingTreatment2["NORMAL"] = 1] = "NORMAL";
170
+ BillingTreatment2[BillingTreatment2["TRUSTED"] = 2] = "TRUSTED";
171
+ BillingTreatment2[BillingTreatment2["EXEMPT"] = 3] = "EXEMPT";
172
+ return BillingTreatment2;
173
+ })(BillingTreatment || {});
174
+ protobuf.proto3.util.setEnumType(BillingTreatment, "transcodely.v1.BillingTreatment", [
175
+ { no: 0, name: "BILLING_TREATMENT_UNSPECIFIED" },
176
+ { no: 1, name: "BILLING_TREATMENT_NORMAL" },
177
+ { no: 2, name: "BILLING_TREATMENT_TRUSTED" },
178
+ { no: 3, name: "BILLING_TREATMENT_EXEMPT" }
179
+ ]);
180
+ var DunningStage = /* @__PURE__ */ ((DunningStage2) => {
181
+ DunningStage2[DunningStage2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
182
+ DunningStage2[DunningStage2["NONE"] = 1] = "NONE";
183
+ DunningStage2[DunningStage2["PAST_DUE"] = 2] = "PAST_DUE";
184
+ DunningStage2[DunningStage2["WARNED"] = 3] = "WARNED";
185
+ DunningStage2[DunningStage2["SOFT_LIMITED"] = 4] = "SOFT_LIMITED";
186
+ DunningStage2[DunningStage2["SUSPENDED"] = 5] = "SUSPENDED";
187
+ DunningStage2[DunningStage2["DELETION_WARNED"] = 6] = "DELETION_WARNED";
188
+ DunningStage2[DunningStage2["WRITTEN_OFF"] = 7] = "WRITTEN_OFF";
189
+ return DunningStage2;
190
+ })(DunningStage || {});
191
+ protobuf.proto3.util.setEnumType(DunningStage, "transcodely.v1.DunningStage", [
192
+ { no: 0, name: "DUNNING_STAGE_UNSPECIFIED" },
193
+ { no: 1, name: "DUNNING_STAGE_NONE" },
194
+ { no: 2, name: "DUNNING_STAGE_PAST_DUE" },
195
+ { no: 3, name: "DUNNING_STAGE_WARNED" },
196
+ { no: 4, name: "DUNNING_STAGE_SOFT_LIMITED" },
197
+ { no: 5, name: "DUNNING_STAGE_SUSPENDED" },
198
+ { no: 6, name: "DUNNING_STAGE_DELETION_WARNED" },
199
+ { no: 7, name: "DUNNING_STAGE_WRITTEN_OFF" }
200
+ ]);
152
201
  var PaginationRequest = class _PaginationRequest extends protobuf.Message {
153
202
  /**
154
203
  * Maximum number of items to return (default: 20, max: 100).
@@ -1090,6 +1139,14 @@ var App = class _App extends protobuf.Message {
1090
1139
  * @generated from field: optional double monthly_spend_limit_eur = 15;
1091
1140
  */
1092
1141
  monthlySpendLimitEur;
1142
+ /**
1143
+ * Player configuration for the app's hosted player and embeds. Unset when
1144
+ * never configured (the player uses its built-in defaults). Update via
1145
+ * AppService.UpdatePlayerConfig.
1146
+ *
1147
+ * @generated from field: optional transcodely.v1.PlayerConfig player_config = 16;
1148
+ */
1149
+ playerConfig;
1093
1150
  constructor(data) {
1094
1151
  super();
1095
1152
  protobuf.proto3.util.initPartial(data, this);
@@ -1134,7 +1191,8 @@ var App = class _App extends protobuf.Message {
1134
1191
  T: 9
1135
1192
  /* ScalarType.STRING */
1136
1193
  },
1137
- { no: 15, name: "monthly_spend_limit_eur", kind: "scalar", T: 1, opt: true }
1194
+ { no: 15, name: "monthly_spend_limit_eur", kind: "scalar", T: 1, opt: true },
1195
+ { no: 16, name: "player_config", kind: "message", T: PlayerConfig, opt: true }
1138
1196
  ]);
1139
1197
  static fromBinary(bytes, options) {
1140
1198
  return new _App().fromBinary(bytes, options);
@@ -1149,6 +1207,159 @@ var App = class _App extends protobuf.Message {
1149
1207
  return protobuf.proto3.util.equals(_App, a, b);
1150
1208
  }
1151
1209
  };
1210
+ var PlayerConfig = class _PlayerConfig extends protobuf.Message {
1211
+ /**
1212
+ * Caption (subtitle) rendering style.
1213
+ *
1214
+ * @generated from field: optional transcodely.v1.CaptionStyle captions = 1;
1215
+ */
1216
+ captions;
1217
+ constructor(data) {
1218
+ super();
1219
+ protobuf.proto3.util.initPartial(data, this);
1220
+ }
1221
+ static runtime = protobuf.proto3;
1222
+ static typeName = "transcodely.v1.PlayerConfig";
1223
+ static fields = protobuf.proto3.util.newFieldList(() => [
1224
+ { no: 1, name: "captions", kind: "message", T: CaptionStyle, opt: true }
1225
+ ]);
1226
+ static fromBinary(bytes, options) {
1227
+ return new _PlayerConfig().fromBinary(bytes, options);
1228
+ }
1229
+ static fromJson(jsonValue, options) {
1230
+ return new _PlayerConfig().fromJson(jsonValue, options);
1231
+ }
1232
+ static fromJsonString(jsonString, options) {
1233
+ return new _PlayerConfig().fromJsonString(jsonString, options);
1234
+ }
1235
+ static equals(a, b) {
1236
+ return protobuf.proto3.util.equals(_PlayerConfig, a, b);
1237
+ }
1238
+ };
1239
+ var CaptionStyle = class _CaptionStyle extends protobuf.Message {
1240
+ /**
1241
+ * Cue box background color. Player default: "#0a0a0a". Empty string clears.
1242
+ *
1243
+ * @generated from field: optional string background_color = 1;
1244
+ */
1245
+ backgroundColor;
1246
+ /**
1247
+ * Cue box background opacity, 0 (fully transparent) to 1 (solid).
1248
+ * Player default: 0.7.
1249
+ *
1250
+ * @generated from field: optional double background_opacity = 2;
1251
+ */
1252
+ backgroundOpacity;
1253
+ /**
1254
+ * Caption text color. Player default: "#ffffff". Empty string clears.
1255
+ *
1256
+ * @generated from field: optional string text_color = 3;
1257
+ */
1258
+ textColor;
1259
+ /**
1260
+ * Caption text size multiplier applied to the player's responsive base
1261
+ * size: 0.5 (half) to 2 (double). Player default: 1.
1262
+ *
1263
+ * @generated from field: optional double font_scale = 4;
1264
+ */
1265
+ fontScale;
1266
+ constructor(data) {
1267
+ super();
1268
+ protobuf.proto3.util.initPartial(data, this);
1269
+ }
1270
+ static runtime = protobuf.proto3;
1271
+ static typeName = "transcodely.v1.CaptionStyle";
1272
+ static fields = protobuf.proto3.util.newFieldList(() => [
1273
+ { no: 1, name: "background_color", kind: "scalar", T: 9, opt: true },
1274
+ { no: 2, name: "background_opacity", kind: "scalar", T: 1, opt: true },
1275
+ { no: 3, name: "text_color", kind: "scalar", T: 9, opt: true },
1276
+ { no: 4, name: "font_scale", kind: "scalar", T: 1, opt: true }
1277
+ ]);
1278
+ static fromBinary(bytes, options) {
1279
+ return new _CaptionStyle().fromBinary(bytes, options);
1280
+ }
1281
+ static fromJson(jsonValue, options) {
1282
+ return new _CaptionStyle().fromJson(jsonValue, options);
1283
+ }
1284
+ static fromJsonString(jsonString, options) {
1285
+ return new _CaptionStyle().fromJsonString(jsonString, options);
1286
+ }
1287
+ static equals(a, b) {
1288
+ return protobuf.proto3.util.equals(_CaptionStyle, a, b);
1289
+ }
1290
+ };
1291
+ var UpdatePlayerConfigRequest = class _UpdatePlayerConfigRequest extends protobuf.Message {
1292
+ /**
1293
+ * App ID.
1294
+ *
1295
+ * @generated from field: string id = 1;
1296
+ */
1297
+ id = "";
1298
+ /**
1299
+ * Player configuration to merge. Fields present here overwrite the stored
1300
+ * value; absent fields are left unchanged.
1301
+ *
1302
+ * @generated from field: transcodely.v1.PlayerConfig player_config = 2;
1303
+ */
1304
+ playerConfig;
1305
+ constructor(data) {
1306
+ super();
1307
+ protobuf.proto3.util.initPartial(data, this);
1308
+ }
1309
+ static runtime = protobuf.proto3;
1310
+ static typeName = "transcodely.v1.UpdatePlayerConfigRequest";
1311
+ static fields = protobuf.proto3.util.newFieldList(() => [
1312
+ {
1313
+ no: 1,
1314
+ name: "id",
1315
+ kind: "scalar",
1316
+ T: 9
1317
+ /* ScalarType.STRING */
1318
+ },
1319
+ { no: 2, name: "player_config", kind: "message", T: PlayerConfig }
1320
+ ]);
1321
+ static fromBinary(bytes, options) {
1322
+ return new _UpdatePlayerConfigRequest().fromBinary(bytes, options);
1323
+ }
1324
+ static fromJson(jsonValue, options) {
1325
+ return new _UpdatePlayerConfigRequest().fromJson(jsonValue, options);
1326
+ }
1327
+ static fromJsonString(jsonString, options) {
1328
+ return new _UpdatePlayerConfigRequest().fromJsonString(jsonString, options);
1329
+ }
1330
+ static equals(a, b) {
1331
+ return protobuf.proto3.util.equals(_UpdatePlayerConfigRequest, a, b);
1332
+ }
1333
+ };
1334
+ var UpdatePlayerConfigResponse = class _UpdatePlayerConfigResponse extends protobuf.Message {
1335
+ /**
1336
+ * The updated app with merged player config.
1337
+ *
1338
+ * @generated from field: transcodely.v1.App app = 1;
1339
+ */
1340
+ app;
1341
+ constructor(data) {
1342
+ super();
1343
+ protobuf.proto3.util.initPartial(data, this);
1344
+ }
1345
+ static runtime = protobuf.proto3;
1346
+ static typeName = "transcodely.v1.UpdatePlayerConfigResponse";
1347
+ static fields = protobuf.proto3.util.newFieldList(() => [
1348
+ { no: 1, name: "app", kind: "message", T: App }
1349
+ ]);
1350
+ static fromBinary(bytes, options) {
1351
+ return new _UpdatePlayerConfigResponse().fromBinary(bytes, options);
1352
+ }
1353
+ static fromJson(jsonValue, options) {
1354
+ return new _UpdatePlayerConfigResponse().fromJson(jsonValue, options);
1355
+ }
1356
+ static fromJsonString(jsonString, options) {
1357
+ return new _UpdatePlayerConfigResponse().fromJsonString(jsonString, options);
1358
+ }
1359
+ static equals(a, b) {
1360
+ return protobuf.proto3.util.equals(_UpdatePlayerConfigResponse, a, b);
1361
+ }
1362
+ };
1152
1363
  var CreateAppRequest = class _CreateAppRequest extends protobuf.Message {
1153
1364
  /**
1154
1365
  * Parent organization ID.
@@ -2089,6 +2300,20 @@ var AppService = {
2089
2300
  O: UpdateHostingConfigResponse,
2090
2301
  kind: protobuf.MethodKind.Unary
2091
2302
  },
2303
+ /**
2304
+ * Update player configuration for an app.
2305
+ * Merges provided fields into the existing player config. Applies to the
2306
+ * hosted player and embeds for every video in the app. Unlike hosting
2307
+ * config, this does not require hosting to be enabled first.
2308
+ *
2309
+ * @generated from rpc transcodely.v1.AppService.UpdatePlayerConfig
2310
+ */
2311
+ updatePlayerConfig: {
2312
+ name: "UpdatePlayerConfig",
2313
+ I: UpdatePlayerConfigRequest,
2314
+ O: UpdatePlayerConfigResponse,
2315
+ kind: protobuf.MethodKind.Unary
2316
+ },
2092
2317
  /**
2093
2318
  * Set or clear an app's monthly spend limit for transcoding charges.
2094
2319
  * Providing monthly_spend_limit_eur sets the cap (must be > 0); omitting it
@@ -2260,6 +2485,7 @@ var InvoiceLineType = /* @__PURE__ */ ((InvoiceLineType2) => {
2260
2485
  InvoiceLineType2[InvoiceLineType2["FEE"] = 2] = "FEE";
2261
2486
  InvoiceLineType2[InvoiceLineType2["MIN_CHARGE"] = 3] = "MIN_CHARGE";
2262
2487
  InvoiceLineType2[InvoiceLineType2["ADJUSTMENT"] = 4] = "ADJUSTMENT";
2488
+ InvoiceLineType2[InvoiceLineType2["HOSTING"] = 5] = "HOSTING";
2263
2489
  return InvoiceLineType2;
2264
2490
  })(InvoiceLineType || {});
2265
2491
  protobuf.proto3.util.setEnumType(InvoiceLineType, "transcodely.v1.InvoiceLineType", [
@@ -2267,7 +2493,49 @@ protobuf.proto3.util.setEnumType(InvoiceLineType, "transcodely.v1.InvoiceLineTyp
2267
2493
  { no: 1, name: "INVOICE_LINE_TYPE_USAGE" },
2268
2494
  { no: 2, name: "INVOICE_LINE_TYPE_FEE" },
2269
2495
  { no: 3, name: "INVOICE_LINE_TYPE_MIN_CHARGE" },
2270
- { no: 4, name: "INVOICE_LINE_TYPE_ADJUSTMENT" }
2496
+ { no: 4, name: "INVOICE_LINE_TYPE_ADJUSTMENT" },
2497
+ { no: 5, name: "INVOICE_LINE_TYPE_HOSTING" }
2498
+ ]);
2499
+ var TrustTier = /* @__PURE__ */ ((TrustTier2) => {
2500
+ TrustTier2[TrustTier2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
2501
+ TrustTier2[TrustTier2["NEW"] = 1] = "NEW";
2502
+ TrustTier2[TrustTier2["ESTABLISHED"] = 2] = "ESTABLISHED";
2503
+ TrustTier2[TrustTier2["PROVEN"] = 3] = "PROVEN";
2504
+ return TrustTier2;
2505
+ })(TrustTier || {});
2506
+ protobuf.proto3.util.setEnumType(TrustTier, "transcodely.v1.TrustTier", [
2507
+ { no: 0, name: "TRUST_TIER_UNSPECIFIED" },
2508
+ { no: 1, name: "TRUST_TIER_NEW" },
2509
+ { no: 2, name: "TRUST_TIER_ESTABLISHED" },
2510
+ { no: 3, name: "TRUST_TIER_PROVEN" }
2511
+ ]);
2512
+ var ExposureThresholdSource = /* @__PURE__ */ ((ExposureThresholdSource2) => {
2513
+ ExposureThresholdSource2[ExposureThresholdSource2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
2514
+ ExposureThresholdSource2[ExposureThresholdSource2["OVERRIDE"] = 1] = "OVERRIDE";
2515
+ ExposureThresholdSource2[ExposureThresholdSource2["TRUST_TIER"] = 2] = "TRUST_TIER";
2516
+ ExposureThresholdSource2[ExposureThresholdSource2["ORG_PLAN"] = 3] = "ORG_PLAN";
2517
+ ExposureThresholdSource2[ExposureThresholdSource2["PLATFORM_DEFAULT"] = 4] = "PLATFORM_DEFAULT";
2518
+ ExposureThresholdSource2[ExposureThresholdSource2["UNBOUNDED"] = 5] = "UNBOUNDED";
2519
+ return ExposureThresholdSource2;
2520
+ })(ExposureThresholdSource || {});
2521
+ protobuf.proto3.util.setEnumType(ExposureThresholdSource, "transcodely.v1.ExposureThresholdSource", [
2522
+ { no: 0, name: "EXPOSURE_THRESHOLD_SOURCE_UNSPECIFIED" },
2523
+ { no: 1, name: "EXPOSURE_THRESHOLD_SOURCE_OVERRIDE" },
2524
+ { no: 2, name: "EXPOSURE_THRESHOLD_SOURCE_TRUST_TIER" },
2525
+ { no: 3, name: "EXPOSURE_THRESHOLD_SOURCE_ORG_PLAN" },
2526
+ { no: 4, name: "EXPOSURE_THRESHOLD_SOURCE_PLATFORM_DEFAULT" },
2527
+ { no: 5, name: "EXPOSURE_THRESHOLD_SOURCE_UNBOUNDED" }
2528
+ ]);
2529
+ var PaymentMethodState = /* @__PURE__ */ ((PaymentMethodState2) => {
2530
+ PaymentMethodState2[PaymentMethodState2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
2531
+ PaymentMethodState2[PaymentMethodState2["NONE"] = 1] = "NONE";
2532
+ PaymentMethodState2[PaymentMethodState2["ON_FILE"] = 2] = "ON_FILE";
2533
+ return PaymentMethodState2;
2534
+ })(PaymentMethodState || {});
2535
+ protobuf.proto3.util.setEnumType(PaymentMethodState, "transcodely.v1.PaymentMethodState", [
2536
+ { no: 0, name: "PAYMENT_METHOD_STATE_UNSPECIFIED" },
2537
+ { no: 1, name: "PAYMENT_METHOD_STATE_NONE" },
2538
+ { no: 2, name: "PAYMENT_METHOD_STATE_ON_FILE" }
2271
2539
  ]);
2272
2540
  var Invoice = class _Invoice extends protobuf.Message {
2273
2541
  /**
@@ -2535,185 +2803,1225 @@ var InvoiceLineItem = class _InvoiceLineItem extends protobuf.Message {
2535
2803
  return protobuf.proto3.util.equals(_InvoiceLineItem, a, b);
2536
2804
  }
2537
2805
  };
2538
- var ListInvoicesRequest = class _ListInvoicesRequest extends protobuf.Message {
2806
+ var BillingProfile = class _BillingProfile extends protobuf.Message {
2539
2807
  /**
2540
- * Pagination parameters.
2808
+ * Object type, always "billing_profile".
2541
2809
  *
2542
- * @generated from field: transcodely.v1.PaginationRequest pagination = 1;
2810
+ * @generated from field: string object = 1;
2811
+ */
2812
+ object = "";
2813
+ /**
2814
+ * Organization this profile describes.
2815
+ *
2816
+ * @generated from field: string org_id = 2;
2817
+ */
2818
+ orgId = "";
2819
+ /**
2820
+ * Whether a payment method is on file. Determined by whether the payment
2821
+ * provider holds any payment method for this organization, and by nothing
2822
+ * else — in particular, a method missing its card details is still a
2823
+ * payment method.
2824
+ *
2825
+ * @generated from field: transcodely.v1.PaymentMethodState payment_method_state = 3;
2826
+ */
2827
+ paymentMethodState = 0 /* UNSPECIFIED */;
2828
+ /**
2829
+ * The methods the provider holds, for display only. Empty when the state is
2830
+ * "none", and never empty when the state is "on_file".
2831
+ *
2832
+ * @generated from field: repeated transcodely.v1.BillingPaymentMethod payment_methods = 4;
2833
+ */
2834
+ paymentMethods = [];
2835
+ /**
2836
+ * The organization's billing email, which the payment provider requires
2837
+ * before it will accept a payment method. Absent when unset.
2838
+ *
2839
+ * @generated from field: optional string billing_email = 5;
2840
+ */
2841
+ billingEmail;
2842
+ /**
2843
+ * The organization's derived payment health, and what its usage limits
2844
+ * resolve from. See BillingStanding.
2845
+ *
2846
+ * @generated from field: transcodely.v1.BillingStanding standing = 6;
2847
+ */
2848
+ standing = 0 /* UNSPECIFIED */;
2849
+ /**
2850
+ * When the current grace window closes. Present if and only if standing is
2851
+ * BILLING_STANDING_GRACE. At this instant the account is already past it —
2852
+ * the deadline is inclusive — and what it becomes is determined by
2853
+ * standing_reason: a card problem decays to FREE, an unpaid invoice to
2854
+ * DELINQUENT.
2855
+ *
2856
+ * @generated from field: optional google.protobuf.Timestamp grace_until = 7;
2857
+ */
2858
+ graceUntil;
2859
+ /**
2860
+ * Why standing is what it is, as a stable token to switch on rather than
2861
+ * copy to display:
2862
+ *
2863
+ * "" nothing is wrong
2864
+ * "exempt" the org is not required to hold a payment
2865
+ * method, so standing is always active
2866
+ * "no_payment_method" none has ever been on file
2867
+ * "card_expired" one is on file and its expiry has passed
2868
+ * "card_removed" one we had observed is gone
2869
+ * "invoice_past_due" an invoice failed to collect
2870
+ * "repeated_invoice_failure" a second consecutive failure, which earns no
2871
+ * grace window at all
2872
+ *
2873
+ * New tokens may be added; treat an unrecognized one as a generic billing
2874
+ * problem rather than failing.
2875
+ *
2876
+ * @generated from field: string standing_reason = 8;
2877
+ */
2878
+ standingReason = "";
2879
+ /**
2880
+ * Whether this organization must hold a payment method. FALSE means it is
2881
+ * exempt — organizations predating the requirement are, and an operator may
2882
+ * exempt one deliberately — in which case standing is always
2883
+ * BILLING_STANDING_ACTIVE and no banner or prompt about payment methods
2884
+ * should be shown.
2885
+ *
2886
+ * Exempt is not free service: the organization still accrues usage and is
2887
+ * still invoiced. It simply is not limited for lacking a card on file.
2888
+ *
2889
+ * @generated from field: bool payment_method_required = 9;
2890
+ */
2891
+ paymentMethodRequired = false;
2892
+ constructor(data) {
2893
+ super();
2894
+ protobuf.proto3.util.initPartial(data, this);
2895
+ }
2896
+ static runtime = protobuf.proto3;
2897
+ static typeName = "transcodely.v1.BillingProfile";
2898
+ static fields = protobuf.proto3.util.newFieldList(() => [
2899
+ {
2900
+ no: 1,
2901
+ name: "object",
2902
+ kind: "scalar",
2903
+ T: 9
2904
+ /* ScalarType.STRING */
2905
+ },
2906
+ {
2907
+ no: 2,
2908
+ name: "org_id",
2909
+ kind: "scalar",
2910
+ T: 9
2911
+ /* ScalarType.STRING */
2912
+ },
2913
+ { no: 3, name: "payment_method_state", kind: "enum", T: protobuf.proto3.getEnumType(PaymentMethodState) },
2914
+ { no: 4, name: "payment_methods", kind: "message", T: BillingPaymentMethod, repeated: true },
2915
+ { no: 5, name: "billing_email", kind: "scalar", T: 9, opt: true },
2916
+ { no: 6, name: "standing", kind: "enum", T: protobuf.proto3.getEnumType(BillingStanding) },
2917
+ { no: 7, name: "grace_until", kind: "message", T: protobuf.Timestamp, opt: true },
2918
+ {
2919
+ no: 8,
2920
+ name: "standing_reason",
2921
+ kind: "scalar",
2922
+ T: 9
2923
+ /* ScalarType.STRING */
2924
+ },
2925
+ {
2926
+ no: 9,
2927
+ name: "payment_method_required",
2928
+ kind: "scalar",
2929
+ T: 8
2930
+ /* ScalarType.BOOL */
2931
+ }
2932
+ ]);
2933
+ static fromBinary(bytes, options) {
2934
+ return new _BillingProfile().fromBinary(bytes, options);
2935
+ }
2936
+ static fromJson(jsonValue, options) {
2937
+ return new _BillingProfile().fromJson(jsonValue, options);
2938
+ }
2939
+ static fromJsonString(jsonString, options) {
2940
+ return new _BillingProfile().fromJsonString(jsonString, options);
2941
+ }
2942
+ static equals(a, b) {
2943
+ return protobuf.proto3.util.equals(_BillingProfile, a, b);
2944
+ }
2945
+ };
2946
+ var BillingPaymentMethod = class _BillingPaymentMethod extends protobuf.Message {
2947
+ /**
2948
+ * The payment provider's identifier for this method.
2949
+ *
2950
+ * @generated from field: string id = 1;
2951
+ */
2952
+ id = "";
2953
+ /**
2954
+ * Method family: "card", or "generic" for everything else the provider
2955
+ * supports (direct debit and similar). Always present.
2956
+ *
2957
+ * @generated from field: string type = 2;
2958
+ */
2959
+ type = "";
2960
+ /**
2961
+ * Card network, e.g. "visa" or "mastercard". Cards only, and only when the
2962
+ * provider exposes it.
2963
+ *
2964
+ * @generated from field: optional string brand = 3;
2965
+ */
2966
+ brand;
2967
+ /**
2968
+ * Last four digits of the card number. Cards only, and only when the
2969
+ * provider exposes it.
2970
+ *
2971
+ * @generated from field: optional string last4 = 4;
2972
+ */
2973
+ last4;
2974
+ /**
2975
+ * Expiry month, 1-12. Cards only, and only when the provider exposes it.
2976
+ *
2977
+ * @generated from field: optional int32 exp_month = 5;
2978
+ */
2979
+ expMonth;
2980
+ /**
2981
+ * Expiry year, four digits. Cards only, and only when the provider exposes
2982
+ * it.
2983
+ *
2984
+ * @generated from field: optional int32 exp_year = 6;
2985
+ */
2986
+ expYear;
2987
+ /**
2988
+ * Whether this is the method the provider charges by default. Advisory: the
2989
+ * provider does not always mark a default, so false here does not mean the
2990
+ * method is unused, and it is never a signal about the organization's
2991
+ * payment standing.
2992
+ *
2993
+ * @generated from field: bool is_default = 7;
2994
+ */
2995
+ isDefault = false;
2996
+ constructor(data) {
2997
+ super();
2998
+ protobuf.proto3.util.initPartial(data, this);
2999
+ }
3000
+ static runtime = protobuf.proto3;
3001
+ static typeName = "transcodely.v1.BillingPaymentMethod";
3002
+ static fields = protobuf.proto3.util.newFieldList(() => [
3003
+ {
3004
+ no: 1,
3005
+ name: "id",
3006
+ kind: "scalar",
3007
+ T: 9
3008
+ /* ScalarType.STRING */
3009
+ },
3010
+ {
3011
+ no: 2,
3012
+ name: "type",
3013
+ kind: "scalar",
3014
+ T: 9
3015
+ /* ScalarType.STRING */
3016
+ },
3017
+ { no: 3, name: "brand", kind: "scalar", T: 9, opt: true },
3018
+ { no: 4, name: "last4", kind: "scalar", T: 9, opt: true },
3019
+ { no: 5, name: "exp_month", kind: "scalar", T: 5, opt: true },
3020
+ { no: 6, name: "exp_year", kind: "scalar", T: 5, opt: true },
3021
+ {
3022
+ no: 7,
3023
+ name: "is_default",
3024
+ kind: "scalar",
3025
+ T: 8
3026
+ /* ScalarType.BOOL */
3027
+ }
3028
+ ]);
3029
+ static fromBinary(bytes, options) {
3030
+ return new _BillingPaymentMethod().fromBinary(bytes, options);
3031
+ }
3032
+ static fromJson(jsonValue, options) {
3033
+ return new _BillingPaymentMethod().fromJson(jsonValue, options);
3034
+ }
3035
+ static fromJsonString(jsonString, options) {
3036
+ return new _BillingPaymentMethod().fromJsonString(jsonString, options);
3037
+ }
3038
+ static equals(a, b) {
3039
+ return protobuf.proto3.util.equals(_BillingPaymentMethod, a, b);
3040
+ }
3041
+ };
3042
+ var BillingPortalSession = class _BillingPortalSession extends protobuf.Message {
3043
+ /**
3044
+ * Object type, always "billing_portal_session".
3045
+ *
3046
+ * @generated from field: string object = 1;
3047
+ */
3048
+ object = "";
3049
+ /**
3050
+ * Where to send the browser. Single-use and short-lived; request a new
3051
+ * session rather than storing this.
3052
+ *
3053
+ * Points at the portal's settings section, where payment methods are managed,
3054
+ * rather than at its landing page.
3055
+ *
3056
+ * @generated from field: string url = 2;
3057
+ */
3058
+ url = "";
3059
+ /**
3060
+ * When the session stops working. Applies to url and session_token alike —
3061
+ * they are two ways into the same session.
3062
+ *
3063
+ * @generated from field: google.protobuf.Timestamp expires_at = 3;
3064
+ */
3065
+ expiresAt;
3066
+ /**
3067
+ * Short-lived (~1h), single-customer-scoped token for the provider's embedded
3068
+ * payment-method form, so a card can be added in place instead of by
3069
+ * redirecting to the hosted portal.
3070
+ *
3071
+ * Same trust level as `url`, which reaches the same portal as the same
3072
+ * customer with no further authentication. It is still a bare credential:
3073
+ * hand it to the embed, never log or store it, and request a new session
3074
+ * instead of reusing one.
3075
+ *
3076
+ * Empty when the configured provider exposes no such token; fall back to
3077
+ * opening `url`.
3078
+ *
3079
+ * @generated from field: string session_token = 4;
3080
+ */
3081
+ sessionToken = "";
3082
+ constructor(data) {
3083
+ super();
3084
+ protobuf.proto3.util.initPartial(data, this);
3085
+ }
3086
+ static runtime = protobuf.proto3;
3087
+ static typeName = "transcodely.v1.BillingPortalSession";
3088
+ static fields = protobuf.proto3.util.newFieldList(() => [
3089
+ {
3090
+ no: 1,
3091
+ name: "object",
3092
+ kind: "scalar",
3093
+ T: 9
3094
+ /* ScalarType.STRING */
3095
+ },
3096
+ {
3097
+ no: 2,
3098
+ name: "url",
3099
+ kind: "scalar",
3100
+ T: 9
3101
+ /* ScalarType.STRING */
3102
+ },
3103
+ { no: 3, name: "expires_at", kind: "message", T: protobuf.Timestamp },
3104
+ {
3105
+ no: 4,
3106
+ name: "session_token",
3107
+ kind: "scalar",
3108
+ T: 9
3109
+ /* ScalarType.STRING */
3110
+ }
3111
+ ]);
3112
+ static fromBinary(bytes, options) {
3113
+ return new _BillingPortalSession().fromBinary(bytes, options);
3114
+ }
3115
+ static fromJson(jsonValue, options) {
3116
+ return new _BillingPortalSession().fromJson(jsonValue, options);
3117
+ }
3118
+ static fromJsonString(jsonString, options) {
3119
+ return new _BillingPortalSession().fromJsonString(jsonString, options);
3120
+ }
3121
+ static equals(a, b) {
3122
+ return protobuf.proto3.util.equals(_BillingPortalSession, a, b);
3123
+ }
3124
+ };
3125
+ var Budget = class _Budget extends protobuf.Message {
3126
+ /**
3127
+ * Object type, always "budget".
3128
+ *
3129
+ * @generated from field: string object = 1;
3130
+ */
3131
+ object = "";
3132
+ /**
3133
+ * Organization this budget belongs to.
3134
+ *
3135
+ * @generated from field: string org_id = 2;
3136
+ */
3137
+ orgId = "";
3138
+ /**
3139
+ * The monthly budget in EUR. Absent when no budget is set, which is the
3140
+ * default and means no alerts are sent.
3141
+ *
3142
+ * @generated from field: optional double amount_eur = 3;
3143
+ */
3144
+ amountEur;
3145
+ /**
3146
+ * Spend so far in the current billing period, in EUR.
3147
+ *
3148
+ * This is the same ledger, over the same window, that GetUpcomingInvoice
3149
+ * reports — it covers transcoding AND hosting for every app in the
3150
+ * organization, and it excludes usage that will never be billed. It is
3151
+ * therefore NOT the same number as AppService.GetSpend, which is scoped to
3152
+ * one app, counts estimates for jobs still running, and knows nothing about
3153
+ * hosting.
3154
+ *
3155
+ * @generated from field: double spent_eur = 4;
3156
+ */
3157
+ spentEur = 0;
3158
+ /**
3159
+ * spent_eur as a percentage of amount_eur. Absent when no budget is set.
3160
+ * Not capped at 100: an organization at 240% of its budget is shown 240.
3161
+ *
3162
+ * @generated from field: optional double used_percent = 5;
3163
+ */
3164
+ usedPercent;
3165
+ /**
3166
+ * Start of the current billing period (inclusive), UTC.
3167
+ *
3168
+ * @generated from field: google.protobuf.Timestamp period_start = 6;
3169
+ */
3170
+ periodStart;
3171
+ /**
3172
+ * End of the current billing period (exclusive), UTC. Spend resets here.
3173
+ *
3174
+ * @generated from field: google.protobuf.Timestamp period_end = 7;
3175
+ */
3176
+ periodEnd;
3177
+ /**
3178
+ * The percentage steps that send an alert email, ascending. Fixed at
3179
+ * 50, 80 and 100 today; new steps may be added.
3180
+ *
3181
+ * @generated from field: repeated int32 alert_steps = 8;
3182
+ */
3183
+ alertSteps = [];
3184
+ /**
3185
+ * The steps already emailed this billing period, ascending. Fire-once per
3186
+ * period: a step listed here does not send again, and changing the budget
3187
+ * mid-period does not re-arm it. Empty at the start of every period.
3188
+ *
3189
+ * @generated from field: repeated int32 notified_steps = 9;
3190
+ */
3191
+ notifiedSteps = [];
3192
+ /**
3193
+ * ISO 4217 currency code for every amount here. Always "EUR" today.
3194
+ *
3195
+ * @generated from field: string currency = 10;
3196
+ */
3197
+ currency = "";
3198
+ constructor(data) {
3199
+ super();
3200
+ protobuf.proto3.util.initPartial(data, this);
3201
+ }
3202
+ static runtime = protobuf.proto3;
3203
+ static typeName = "transcodely.v1.Budget";
3204
+ static fields = protobuf.proto3.util.newFieldList(() => [
3205
+ {
3206
+ no: 1,
3207
+ name: "object",
3208
+ kind: "scalar",
3209
+ T: 9
3210
+ /* ScalarType.STRING */
3211
+ },
3212
+ {
3213
+ no: 2,
3214
+ name: "org_id",
3215
+ kind: "scalar",
3216
+ T: 9
3217
+ /* ScalarType.STRING */
3218
+ },
3219
+ { no: 3, name: "amount_eur", kind: "scalar", T: 1, opt: true },
3220
+ {
3221
+ no: 4,
3222
+ name: "spent_eur",
3223
+ kind: "scalar",
3224
+ T: 1
3225
+ /* ScalarType.DOUBLE */
3226
+ },
3227
+ { no: 5, name: "used_percent", kind: "scalar", T: 1, opt: true },
3228
+ { no: 6, name: "period_start", kind: "message", T: protobuf.Timestamp },
3229
+ { no: 7, name: "period_end", kind: "message", T: protobuf.Timestamp },
3230
+ { no: 8, name: "alert_steps", kind: "scalar", T: 5, repeated: true },
3231
+ { no: 9, name: "notified_steps", kind: "scalar", T: 5, repeated: true },
3232
+ {
3233
+ no: 10,
3234
+ name: "currency",
3235
+ kind: "scalar",
3236
+ T: 9
3237
+ /* ScalarType.STRING */
3238
+ }
3239
+ ]);
3240
+ static fromBinary(bytes, options) {
3241
+ return new _Budget().fromBinary(bytes, options);
3242
+ }
3243
+ static fromJson(jsonValue, options) {
3244
+ return new _Budget().fromJson(jsonValue, options);
3245
+ }
3246
+ static fromJsonString(jsonString, options) {
3247
+ return new _Budget().fromJsonString(jsonString, options);
3248
+ }
3249
+ static equals(a, b) {
3250
+ return protobuf.proto3.util.equals(_Budget, a, b);
3251
+ }
3252
+ };
3253
+ var OutstandingBalance = class _OutstandingBalance extends protobuf.Message {
3254
+ /**
3255
+ * Object type, always "outstanding_balance".
3256
+ *
3257
+ * @generated from field: string object = 1;
3258
+ */
3259
+ object = "";
3260
+ /**
3261
+ * Organization this balance belongs to.
3262
+ *
3263
+ * @generated from field: string org_id = 2;
3264
+ */
3265
+ orgId = "";
3266
+ /**
3267
+ * The unsettled amount, in integer minor units (cents) of `currency`.
3268
+ * Rendered as a JSON string per the protobuf 64-bit integer mapping.
3269
+ *
3270
+ * @generated from field: int64 outstanding_cents = 3;
3271
+ */
3272
+ outstandingCents = protobuf.protoInt64.zero;
3273
+ /**
3274
+ * The trust tier the organization's payment history puts it on, which is what
3275
+ * sets the threshold unless an operator or a plan overrides it.
3276
+ *
3277
+ * @generated from field: transcodely.v1.TrustTier tier = 4;
3278
+ */
3279
+ tier = 0 /* UNSPECIFIED */;
3280
+ /**
3281
+ * How many statements this organization has PAID. The input behind `tier`,
3282
+ * surfaced so the path to a higher threshold is visible rather than implied.
3283
+ * A mid-cycle settlement counts once it is paid, like any other statement.
3284
+ *
3285
+ * @generated from field: int64 settled_payments = 5;
3286
+ */
3287
+ settledPayments = protobuf.protoInt64.zero;
3288
+ /**
3289
+ * The threshold, in cents. Absent when no threshold applies at all — a
3290
+ * long-standing account with no plan ceiling has none, which is the intended
3291
+ * destination of the whole ladder.
3292
+ *
3293
+ * @generated from field: optional int64 threshold_cents = 6;
3294
+ */
3295
+ thresholdCents;
3296
+ /**
3297
+ * Which rung supplied `threshold_cents`.
3298
+ *
3299
+ * @generated from field: transcodely.v1.ExposureThresholdSource threshold_source = 7;
3300
+ */
3301
+ thresholdSource = 0 /* UNSPECIFIED */;
3302
+ /**
3303
+ * The amount at which new-job admission stops: twice `threshold_cents`.
3304
+ * Absent exactly when `threshold_cents` is.
3305
+ *
3306
+ * @generated from field: optional int64 hard_stop_cents = 8;
3307
+ */
3308
+ hardStopCents;
3309
+ /**
3310
+ * Whether new jobs are being refused right now. Reads the same numbers the
3311
+ * admission gate reads, so a card showing false cannot coexist with a create
3312
+ * being rejected for this reason.
3313
+ *
3314
+ * @generated from field: bool blocked = 9;
3315
+ */
3316
+ blocked = false;
3317
+ /**
3318
+ * `outstanding_cents` as a percentage of `threshold_cents`. Absent when no
3319
+ * threshold applies. Not capped at 100: an organization at 180% is shown 180.
3320
+ *
3321
+ * @generated from field: optional double used_percent = 10;
3322
+ */
3323
+ usedPercent;
3324
+ /**
3325
+ * The percentage steps that send a reminder email, ascending. 80, 100, 125,
3326
+ * 150, 175 and 200 today; the last one is where admission stops.
3327
+ *
3328
+ * @generated from field: repeated int32 alert_steps = 11;
3329
+ */
3330
+ alertSteps = [];
3331
+ /**
3332
+ * The steps already emailed for the current accrual window, ascending.
3333
+ * Fire-once: a step listed here does not send again until the balance is
3334
+ * settled or the billing period rolls.
3335
+ *
3336
+ * @generated from field: repeated int32 notified_steps = 12;
3337
+ */
3338
+ notifiedSteps = [];
3339
+ /**
3340
+ * ISO 4217 currency code for every amount here. Always "EUR" today.
3341
+ *
3342
+ * @generated from field: string currency = 13;
3343
+ */
3344
+ currency = "";
3345
+ /**
3346
+ * Whether SettleOutstandingBalance is available on this deployment. False
3347
+ * while the settlement rail is disabled — a billing page should not render a
3348
+ * "pay now" action that can only fail.
3349
+ *
3350
+ * @generated from field: bool settlement_available = 14;
3351
+ */
3352
+ settlementAvailable = false;
3353
+ constructor(data) {
3354
+ super();
3355
+ protobuf.proto3.util.initPartial(data, this);
3356
+ }
3357
+ static runtime = protobuf.proto3;
3358
+ static typeName = "transcodely.v1.OutstandingBalance";
3359
+ static fields = protobuf.proto3.util.newFieldList(() => [
3360
+ {
3361
+ no: 1,
3362
+ name: "object",
3363
+ kind: "scalar",
3364
+ T: 9
3365
+ /* ScalarType.STRING */
3366
+ },
3367
+ {
3368
+ no: 2,
3369
+ name: "org_id",
3370
+ kind: "scalar",
3371
+ T: 9
3372
+ /* ScalarType.STRING */
3373
+ },
3374
+ {
3375
+ no: 3,
3376
+ name: "outstanding_cents",
3377
+ kind: "scalar",
3378
+ T: 3
3379
+ /* ScalarType.INT64 */
3380
+ },
3381
+ { no: 4, name: "tier", kind: "enum", T: protobuf.proto3.getEnumType(TrustTier) },
3382
+ {
3383
+ no: 5,
3384
+ name: "settled_payments",
3385
+ kind: "scalar",
3386
+ T: 3
3387
+ /* ScalarType.INT64 */
3388
+ },
3389
+ { no: 6, name: "threshold_cents", kind: "scalar", T: 3, opt: true },
3390
+ { no: 7, name: "threshold_source", kind: "enum", T: protobuf.proto3.getEnumType(ExposureThresholdSource) },
3391
+ { no: 8, name: "hard_stop_cents", kind: "scalar", T: 3, opt: true },
3392
+ {
3393
+ no: 9,
3394
+ name: "blocked",
3395
+ kind: "scalar",
3396
+ T: 8
3397
+ /* ScalarType.BOOL */
3398
+ },
3399
+ { no: 10, name: "used_percent", kind: "scalar", T: 1, opt: true },
3400
+ { no: 11, name: "alert_steps", kind: "scalar", T: 5, repeated: true },
3401
+ { no: 12, name: "notified_steps", kind: "scalar", T: 5, repeated: true },
3402
+ {
3403
+ no: 13,
3404
+ name: "currency",
3405
+ kind: "scalar",
3406
+ T: 9
3407
+ /* ScalarType.STRING */
3408
+ },
3409
+ {
3410
+ no: 14,
3411
+ name: "settlement_available",
3412
+ kind: "scalar",
3413
+ T: 8
3414
+ /* ScalarType.BOOL */
3415
+ }
3416
+ ]);
3417
+ static fromBinary(bytes, options) {
3418
+ return new _OutstandingBalance().fromBinary(bytes, options);
3419
+ }
3420
+ static fromJson(jsonValue, options) {
3421
+ return new _OutstandingBalance().fromJson(jsonValue, options);
3422
+ }
3423
+ static fromJsonString(jsonString, options) {
3424
+ return new _OutstandingBalance().fromJsonString(jsonString, options);
3425
+ }
3426
+ static equals(a, b) {
3427
+ return protobuf.proto3.util.equals(_OutstandingBalance, a, b);
3428
+ }
3429
+ };
3430
+ var Settlement = class _Settlement extends protobuf.Message {
3431
+ /**
3432
+ * Object type, always "settlement".
3433
+ *
3434
+ * @generated from field: string object = 1;
3435
+ */
3436
+ object = "";
3437
+ /**
3438
+ * The statement the balance was captured onto. It is an ordinary invoice —
3439
+ * readable through GetInvoice, listed by ListInvoices, and paid through the
3440
+ * same provider flow as any other.
3441
+ *
3442
+ * @generated from field: string invoice_id = 2;
3443
+ */
3444
+ invoiceId = "";
3445
+ /**
3446
+ * What it came to, in integer minor units (cents).
3447
+ *
3448
+ * @generated from field: int64 amount_cents = 3;
3449
+ */
3450
+ amountCents = protobuf.protoInt64.zero;
3451
+ /**
3452
+ * The window the statement covers, UTC. It starts where the previous
3453
+ * statement ended (or at the period start) and ends at the settlement
3454
+ * instant.
3455
+ *
3456
+ * @generated from field: google.protobuf.Timestamp period_start = 4;
3457
+ */
3458
+ periodStart;
3459
+ /**
3460
+ * @generated from field: google.protobuf.Timestamp period_end = 5;
3461
+ */
3462
+ periodEnd;
3463
+ /**
3464
+ * ISO 4217 currency code. Always "EUR" today.
3465
+ *
3466
+ * @generated from field: string currency = 6;
3467
+ */
3468
+ currency = "";
3469
+ constructor(data) {
3470
+ super();
3471
+ protobuf.proto3.util.initPartial(data, this);
3472
+ }
3473
+ static runtime = protobuf.proto3;
3474
+ static typeName = "transcodely.v1.Settlement";
3475
+ static fields = protobuf.proto3.util.newFieldList(() => [
3476
+ {
3477
+ no: 1,
3478
+ name: "object",
3479
+ kind: "scalar",
3480
+ T: 9
3481
+ /* ScalarType.STRING */
3482
+ },
3483
+ {
3484
+ no: 2,
3485
+ name: "invoice_id",
3486
+ kind: "scalar",
3487
+ T: 9
3488
+ /* ScalarType.STRING */
3489
+ },
3490
+ {
3491
+ no: 3,
3492
+ name: "amount_cents",
3493
+ kind: "scalar",
3494
+ T: 3
3495
+ /* ScalarType.INT64 */
3496
+ },
3497
+ { no: 4, name: "period_start", kind: "message", T: protobuf.Timestamp },
3498
+ { no: 5, name: "period_end", kind: "message", T: protobuf.Timestamp },
3499
+ {
3500
+ no: 6,
3501
+ name: "currency",
3502
+ kind: "scalar",
3503
+ T: 9
3504
+ /* ScalarType.STRING */
3505
+ }
3506
+ ]);
3507
+ static fromBinary(bytes, options) {
3508
+ return new _Settlement().fromBinary(bytes, options);
3509
+ }
3510
+ static fromJson(jsonValue, options) {
3511
+ return new _Settlement().fromJson(jsonValue, options);
3512
+ }
3513
+ static fromJsonString(jsonString, options) {
3514
+ return new _Settlement().fromJsonString(jsonString, options);
3515
+ }
3516
+ static equals(a, b) {
3517
+ return protobuf.proto3.util.equals(_Settlement, a, b);
3518
+ }
3519
+ };
3520
+ var ListInvoicesRequest = class _ListInvoicesRequest extends protobuf.Message {
3521
+ /**
3522
+ * Pagination parameters.
3523
+ *
3524
+ * @generated from field: transcodely.v1.PaginationRequest pagination = 1;
3525
+ */
3526
+ pagination;
3527
+ constructor(data) {
3528
+ super();
3529
+ protobuf.proto3.util.initPartial(data, this);
3530
+ }
3531
+ static runtime = protobuf.proto3;
3532
+ static typeName = "transcodely.v1.ListInvoicesRequest";
3533
+ static fields = protobuf.proto3.util.newFieldList(() => [
3534
+ { no: 1, name: "pagination", kind: "message", T: PaginationRequest }
3535
+ ]);
3536
+ static fromBinary(bytes, options) {
3537
+ return new _ListInvoicesRequest().fromBinary(bytes, options);
3538
+ }
3539
+ static fromJson(jsonValue, options) {
3540
+ return new _ListInvoicesRequest().fromJson(jsonValue, options);
3541
+ }
3542
+ static fromJsonString(jsonString, options) {
3543
+ return new _ListInvoicesRequest().fromJsonString(jsonString, options);
3544
+ }
3545
+ static equals(a, b) {
3546
+ return protobuf.proto3.util.equals(_ListInvoicesRequest, a, b);
3547
+ }
3548
+ };
3549
+ var ListInvoicesResponse = class _ListInvoicesResponse extends protobuf.Message {
3550
+ /**
3551
+ * Invoices, newest period first. Line items are omitted here; fetch a single
3552
+ * invoice to get them.
3553
+ *
3554
+ * @generated from field: repeated transcodely.v1.Invoice invoices = 1;
3555
+ */
3556
+ invoices = [];
3557
+ /**
3558
+ * Pagination metadata.
3559
+ *
3560
+ * @generated from field: transcodely.v1.PaginationResponse pagination = 2;
3561
+ */
3562
+ pagination;
3563
+ constructor(data) {
3564
+ super();
3565
+ protobuf.proto3.util.initPartial(data, this);
3566
+ }
3567
+ static runtime = protobuf.proto3;
3568
+ static typeName = "transcodely.v1.ListInvoicesResponse";
3569
+ static fields = protobuf.proto3.util.newFieldList(() => [
3570
+ { no: 1, name: "invoices", kind: "message", T: Invoice, repeated: true },
3571
+ { no: 2, name: "pagination", kind: "message", T: PaginationResponse }
3572
+ ]);
3573
+ static fromBinary(bytes, options) {
3574
+ return new _ListInvoicesResponse().fromBinary(bytes, options);
3575
+ }
3576
+ static fromJson(jsonValue, options) {
3577
+ return new _ListInvoicesResponse().fromJson(jsonValue, options);
3578
+ }
3579
+ static fromJsonString(jsonString, options) {
3580
+ return new _ListInvoicesResponse().fromJsonString(jsonString, options);
3581
+ }
3582
+ static equals(a, b) {
3583
+ return protobuf.proto3.util.equals(_ListInvoicesResponse, a, b);
3584
+ }
3585
+ };
3586
+ var GetInvoiceRequest = class _GetInvoiceRequest extends protobuf.Message {
3587
+ /**
3588
+ * Invoice ID (e.g., "inv_a1b2c3d4e5f6").
3589
+ *
3590
+ * @generated from field: string id = 1;
3591
+ */
3592
+ id = "";
3593
+ constructor(data) {
3594
+ super();
3595
+ protobuf.proto3.util.initPartial(data, this);
3596
+ }
3597
+ static runtime = protobuf.proto3;
3598
+ static typeName = "transcodely.v1.GetInvoiceRequest";
3599
+ static fields = protobuf.proto3.util.newFieldList(() => [
3600
+ {
3601
+ no: 1,
3602
+ name: "id",
3603
+ kind: "scalar",
3604
+ T: 9
3605
+ /* ScalarType.STRING */
3606
+ }
3607
+ ]);
3608
+ static fromBinary(bytes, options) {
3609
+ return new _GetInvoiceRequest().fromBinary(bytes, options);
3610
+ }
3611
+ static fromJson(jsonValue, options) {
3612
+ return new _GetInvoiceRequest().fromJson(jsonValue, options);
3613
+ }
3614
+ static fromJsonString(jsonString, options) {
3615
+ return new _GetInvoiceRequest().fromJsonString(jsonString, options);
3616
+ }
3617
+ static equals(a, b) {
3618
+ return protobuf.proto3.util.equals(_GetInvoiceRequest, a, b);
3619
+ }
3620
+ };
3621
+ var GetInvoiceResponse = class _GetInvoiceResponse extends protobuf.Message {
3622
+ /**
3623
+ * The requested invoice, with its line items.
3624
+ *
3625
+ * @generated from field: transcodely.v1.Invoice invoice = 1;
3626
+ */
3627
+ invoice;
3628
+ constructor(data) {
3629
+ super();
3630
+ protobuf.proto3.util.initPartial(data, this);
3631
+ }
3632
+ static runtime = protobuf.proto3;
3633
+ static typeName = "transcodely.v1.GetInvoiceResponse";
3634
+ static fields = protobuf.proto3.util.newFieldList(() => [
3635
+ { no: 1, name: "invoice", kind: "message", T: Invoice }
3636
+ ]);
3637
+ static fromBinary(bytes, options) {
3638
+ return new _GetInvoiceResponse().fromBinary(bytes, options);
3639
+ }
3640
+ static fromJson(jsonValue, options) {
3641
+ return new _GetInvoiceResponse().fromJson(jsonValue, options);
3642
+ }
3643
+ static fromJsonString(jsonString, options) {
3644
+ return new _GetInvoiceResponse().fromJsonString(jsonString, options);
3645
+ }
3646
+ static equals(a, b) {
3647
+ return protobuf.proto3.util.equals(_GetInvoiceResponse, a, b);
3648
+ }
3649
+ };
3650
+ var GetUpcomingInvoiceRequest = class _GetUpcomingInvoiceRequest extends protobuf.Message {
3651
+ constructor(data) {
3652
+ super();
3653
+ protobuf.proto3.util.initPartial(data, this);
3654
+ }
3655
+ static runtime = protobuf.proto3;
3656
+ static typeName = "transcodely.v1.GetUpcomingInvoiceRequest";
3657
+ static fields = protobuf.proto3.util.newFieldList(() => []);
3658
+ static fromBinary(bytes, options) {
3659
+ return new _GetUpcomingInvoiceRequest().fromBinary(bytes, options);
3660
+ }
3661
+ static fromJson(jsonValue, options) {
3662
+ return new _GetUpcomingInvoiceRequest().fromJson(jsonValue, options);
3663
+ }
3664
+ static fromJsonString(jsonString, options) {
3665
+ return new _GetUpcomingInvoiceRequest().fromJsonString(jsonString, options);
3666
+ }
3667
+ static equals(a, b) {
3668
+ return protobuf.proto3.util.equals(_GetUpcomingInvoiceRequest, a, b);
3669
+ }
3670
+ };
3671
+ var GetUpcomingInvoiceResponse = class _GetUpcomingInvoiceResponse extends protobuf.Message {
3672
+ /**
3673
+ * The computed statement. Its id is empty and its status is "draft". Totals
3674
+ * are zero when nothing has been billed in the period yet.
3675
+ *
3676
+ * @generated from field: transcodely.v1.Invoice invoice = 1;
3677
+ */
3678
+ invoice;
3679
+ constructor(data) {
3680
+ super();
3681
+ protobuf.proto3.util.initPartial(data, this);
3682
+ }
3683
+ static runtime = protobuf.proto3;
3684
+ static typeName = "transcodely.v1.GetUpcomingInvoiceResponse";
3685
+ static fields = protobuf.proto3.util.newFieldList(() => [
3686
+ { no: 1, name: "invoice", kind: "message", T: Invoice }
3687
+ ]);
3688
+ static fromBinary(bytes, options) {
3689
+ return new _GetUpcomingInvoiceResponse().fromBinary(bytes, options);
3690
+ }
3691
+ static fromJson(jsonValue, options) {
3692
+ return new _GetUpcomingInvoiceResponse().fromJson(jsonValue, options);
3693
+ }
3694
+ static fromJsonString(jsonString, options) {
3695
+ return new _GetUpcomingInvoiceResponse().fromJsonString(jsonString, options);
3696
+ }
3697
+ static equals(a, b) {
3698
+ return protobuf.proto3.util.equals(_GetUpcomingInvoiceResponse, a, b);
3699
+ }
3700
+ };
3701
+ var GetBillingProfileRequest = class _GetBillingProfileRequest extends protobuf.Message {
3702
+ constructor(data) {
3703
+ super();
3704
+ protobuf.proto3.util.initPartial(data, this);
3705
+ }
3706
+ static runtime = protobuf.proto3;
3707
+ static typeName = "transcodely.v1.GetBillingProfileRequest";
3708
+ static fields = protobuf.proto3.util.newFieldList(() => []);
3709
+ static fromBinary(bytes, options) {
3710
+ return new _GetBillingProfileRequest().fromBinary(bytes, options);
3711
+ }
3712
+ static fromJson(jsonValue, options) {
3713
+ return new _GetBillingProfileRequest().fromJson(jsonValue, options);
3714
+ }
3715
+ static fromJsonString(jsonString, options) {
3716
+ return new _GetBillingProfileRequest().fromJsonString(jsonString, options);
3717
+ }
3718
+ static equals(a, b) {
3719
+ return protobuf.proto3.util.equals(_GetBillingProfileRequest, a, b);
3720
+ }
3721
+ };
3722
+ var GetBillingProfileResponse = class _GetBillingProfileResponse extends protobuf.Message {
3723
+ /**
3724
+ * The organization's payment standing, read live from the payment provider.
3725
+ *
3726
+ * @generated from field: transcodely.v1.BillingProfile profile = 1;
3727
+ */
3728
+ profile;
3729
+ constructor(data) {
3730
+ super();
3731
+ protobuf.proto3.util.initPartial(data, this);
3732
+ }
3733
+ static runtime = protobuf.proto3;
3734
+ static typeName = "transcodely.v1.GetBillingProfileResponse";
3735
+ static fields = protobuf.proto3.util.newFieldList(() => [
3736
+ { no: 1, name: "profile", kind: "message", T: BillingProfile }
3737
+ ]);
3738
+ static fromBinary(bytes, options) {
3739
+ return new _GetBillingProfileResponse().fromBinary(bytes, options);
3740
+ }
3741
+ static fromJson(jsonValue, options) {
3742
+ return new _GetBillingProfileResponse().fromJson(jsonValue, options);
3743
+ }
3744
+ static fromJsonString(jsonString, options) {
3745
+ return new _GetBillingProfileResponse().fromJsonString(jsonString, options);
3746
+ }
3747
+ static equals(a, b) {
3748
+ return protobuf.proto3.util.equals(_GetBillingProfileResponse, a, b);
3749
+ }
3750
+ };
3751
+ var CreateBillingPortalSessionRequest = class _CreateBillingPortalSessionRequest extends protobuf.Message {
3752
+ constructor(data) {
3753
+ super();
3754
+ protobuf.proto3.util.initPartial(data, this);
3755
+ }
3756
+ static runtime = protobuf.proto3;
3757
+ static typeName = "transcodely.v1.CreateBillingPortalSessionRequest";
3758
+ static fields = protobuf.proto3.util.newFieldList(() => []);
3759
+ static fromBinary(bytes, options) {
3760
+ return new _CreateBillingPortalSessionRequest().fromBinary(bytes, options);
3761
+ }
3762
+ static fromJson(jsonValue, options) {
3763
+ return new _CreateBillingPortalSessionRequest().fromJson(jsonValue, options);
3764
+ }
3765
+ static fromJsonString(jsonString, options) {
3766
+ return new _CreateBillingPortalSessionRequest().fromJsonString(jsonString, options);
3767
+ }
3768
+ static equals(a, b) {
3769
+ return protobuf.proto3.util.equals(_CreateBillingPortalSessionRequest, a, b);
3770
+ }
3771
+ };
3772
+ var CreateBillingPortalSessionResponse = class _CreateBillingPortalSessionResponse extends protobuf.Message {
3773
+ /**
3774
+ * The session. Redirect the browser to its url.
3775
+ *
3776
+ * @generated from field: transcodely.v1.BillingPortalSession session = 1;
3777
+ */
3778
+ session;
3779
+ constructor(data) {
3780
+ super();
3781
+ protobuf.proto3.util.initPartial(data, this);
3782
+ }
3783
+ static runtime = protobuf.proto3;
3784
+ static typeName = "transcodely.v1.CreateBillingPortalSessionResponse";
3785
+ static fields = protobuf.proto3.util.newFieldList(() => [
3786
+ { no: 1, name: "session", kind: "message", T: BillingPortalSession }
3787
+ ]);
3788
+ static fromBinary(bytes, options) {
3789
+ return new _CreateBillingPortalSessionResponse().fromBinary(bytes, options);
3790
+ }
3791
+ static fromJson(jsonValue, options) {
3792
+ return new _CreateBillingPortalSessionResponse().fromJson(jsonValue, options);
3793
+ }
3794
+ static fromJsonString(jsonString, options) {
3795
+ return new _CreateBillingPortalSessionResponse().fromJsonString(jsonString, options);
3796
+ }
3797
+ static equals(a, b) {
3798
+ return protobuf.proto3.util.equals(_CreateBillingPortalSessionResponse, a, b);
3799
+ }
3800
+ };
3801
+ var GetBudgetRequest = class _GetBudgetRequest extends protobuf.Message {
3802
+ constructor(data) {
3803
+ super();
3804
+ protobuf.proto3.util.initPartial(data, this);
3805
+ }
3806
+ static runtime = protobuf.proto3;
3807
+ static typeName = "transcodely.v1.GetBudgetRequest";
3808
+ static fields = protobuf.proto3.util.newFieldList(() => []);
3809
+ static fromBinary(bytes, options) {
3810
+ return new _GetBudgetRequest().fromBinary(bytes, options);
3811
+ }
3812
+ static fromJson(jsonValue, options) {
3813
+ return new _GetBudgetRequest().fromJson(jsonValue, options);
3814
+ }
3815
+ static fromJsonString(jsonString, options) {
3816
+ return new _GetBudgetRequest().fromJsonString(jsonString, options);
3817
+ }
3818
+ static equals(a, b) {
3819
+ return protobuf.proto3.util.equals(_GetBudgetRequest, a, b);
3820
+ }
3821
+ };
3822
+ var GetBudgetResponse = class _GetBudgetResponse extends protobuf.Message {
3823
+ /**
3824
+ * The budget. Always present: an organization with no budget set gets one
3825
+ * with amount_eur absent and spent_eur still populated, so the current
3826
+ * period's spend can be shown before a budget exists.
3827
+ *
3828
+ * @generated from field: transcodely.v1.Budget budget = 1;
3829
+ */
3830
+ budget;
3831
+ constructor(data) {
3832
+ super();
3833
+ protobuf.proto3.util.initPartial(data, this);
3834
+ }
3835
+ static runtime = protobuf.proto3;
3836
+ static typeName = "transcodely.v1.GetBudgetResponse";
3837
+ static fields = protobuf.proto3.util.newFieldList(() => [
3838
+ { no: 1, name: "budget", kind: "message", T: Budget }
3839
+ ]);
3840
+ static fromBinary(bytes, options) {
3841
+ return new _GetBudgetResponse().fromBinary(bytes, options);
3842
+ }
3843
+ static fromJson(jsonValue, options) {
3844
+ return new _GetBudgetResponse().fromJson(jsonValue, options);
3845
+ }
3846
+ static fromJsonString(jsonString, options) {
3847
+ return new _GetBudgetResponse().fromJsonString(jsonString, options);
3848
+ }
3849
+ static equals(a, b) {
3850
+ return protobuf.proto3.util.equals(_GetBudgetResponse, a, b);
3851
+ }
3852
+ };
3853
+ var UpdateBudgetRequest = class _UpdateBudgetRequest extends protobuf.Message {
3854
+ /**
3855
+ * Monthly budget in EUR. When present, sets the budget (must be > 0). When
3856
+ * ABSENT, the budget is cleared and no further alerts are sent — that is the
3857
+ * only way to turn them off. The upper bound matches the NUMERIC(12,2)
3858
+ * storage column.
3859
+ *
3860
+ * @generated from field: optional double amount_eur = 1;
2543
3861
  */
2544
- pagination;
3862
+ amountEur;
2545
3863
  constructor(data) {
2546
3864
  super();
2547
3865
  protobuf.proto3.util.initPartial(data, this);
2548
3866
  }
2549
3867
  static runtime = protobuf.proto3;
2550
- static typeName = "transcodely.v1.ListInvoicesRequest";
3868
+ static typeName = "transcodely.v1.UpdateBudgetRequest";
2551
3869
  static fields = protobuf.proto3.util.newFieldList(() => [
2552
- { no: 1, name: "pagination", kind: "message", T: PaginationRequest }
3870
+ { no: 1, name: "amount_eur", kind: "scalar", T: 1, opt: true }
2553
3871
  ]);
2554
3872
  static fromBinary(bytes, options) {
2555
- return new _ListInvoicesRequest().fromBinary(bytes, options);
3873
+ return new _UpdateBudgetRequest().fromBinary(bytes, options);
2556
3874
  }
2557
3875
  static fromJson(jsonValue, options) {
2558
- return new _ListInvoicesRequest().fromJson(jsonValue, options);
3876
+ return new _UpdateBudgetRequest().fromJson(jsonValue, options);
2559
3877
  }
2560
3878
  static fromJsonString(jsonString, options) {
2561
- return new _ListInvoicesRequest().fromJsonString(jsonString, options);
3879
+ return new _UpdateBudgetRequest().fromJsonString(jsonString, options);
2562
3880
  }
2563
3881
  static equals(a, b) {
2564
- return protobuf.proto3.util.equals(_ListInvoicesRequest, a, b);
3882
+ return protobuf.proto3.util.equals(_UpdateBudgetRequest, a, b);
2565
3883
  }
2566
3884
  };
2567
- var ListInvoicesResponse = class _ListInvoicesResponse extends protobuf.Message {
3885
+ var UpdateBudgetResponse = class _UpdateBudgetResponse extends protobuf.Message {
2568
3886
  /**
2569
- * Invoices, newest period first. Line items are omitted here; fetch a single
2570
- * invoice to get them.
2571
- *
2572
- * @generated from field: repeated transcodely.v1.Invoice invoices = 1;
2573
- */
2574
- invoices = [];
2575
- /**
2576
- * Pagination metadata.
3887
+ * The budget as it now stands, with current-period spend recomputed, so a
3888
+ * caller that just moved the number can render the new bar without a second
3889
+ * request. amount_eur is absent when the budget was cleared.
2577
3890
  *
2578
- * @generated from field: transcodely.v1.PaginationResponse pagination = 2;
3891
+ * @generated from field: transcodely.v1.Budget budget = 1;
2579
3892
  */
2580
- pagination;
3893
+ budget;
2581
3894
  constructor(data) {
2582
3895
  super();
2583
3896
  protobuf.proto3.util.initPartial(data, this);
2584
3897
  }
2585
3898
  static runtime = protobuf.proto3;
2586
- static typeName = "transcodely.v1.ListInvoicesResponse";
3899
+ static typeName = "transcodely.v1.UpdateBudgetResponse";
2587
3900
  static fields = protobuf.proto3.util.newFieldList(() => [
2588
- { no: 1, name: "invoices", kind: "message", T: Invoice, repeated: true },
2589
- { no: 2, name: "pagination", kind: "message", T: PaginationResponse }
3901
+ { no: 1, name: "budget", kind: "message", T: Budget }
2590
3902
  ]);
2591
3903
  static fromBinary(bytes, options) {
2592
- return new _ListInvoicesResponse().fromBinary(bytes, options);
3904
+ return new _UpdateBudgetResponse().fromBinary(bytes, options);
2593
3905
  }
2594
3906
  static fromJson(jsonValue, options) {
2595
- return new _ListInvoicesResponse().fromJson(jsonValue, options);
3907
+ return new _UpdateBudgetResponse().fromJson(jsonValue, options);
2596
3908
  }
2597
3909
  static fromJsonString(jsonString, options) {
2598
- return new _ListInvoicesResponse().fromJsonString(jsonString, options);
3910
+ return new _UpdateBudgetResponse().fromJsonString(jsonString, options);
2599
3911
  }
2600
3912
  static equals(a, b) {
2601
- return protobuf.proto3.util.equals(_ListInvoicesResponse, a, b);
3913
+ return protobuf.proto3.util.equals(_UpdateBudgetResponse, a, b);
2602
3914
  }
2603
3915
  };
2604
- var GetInvoiceRequest = class _GetInvoiceRequest extends protobuf.Message {
2605
- /**
2606
- * Invoice ID (e.g., "inv_a1b2c3d4e5f6").
2607
- *
2608
- * @generated from field: string id = 1;
2609
- */
2610
- id = "";
3916
+ var GetOutstandingBalanceRequest = class _GetOutstandingBalanceRequest extends protobuf.Message {
2611
3917
  constructor(data) {
2612
3918
  super();
2613
3919
  protobuf.proto3.util.initPartial(data, this);
2614
3920
  }
2615
3921
  static runtime = protobuf.proto3;
2616
- static typeName = "transcodely.v1.GetInvoiceRequest";
2617
- static fields = protobuf.proto3.util.newFieldList(() => [
2618
- {
2619
- no: 1,
2620
- name: "id",
2621
- kind: "scalar",
2622
- T: 9
2623
- /* ScalarType.STRING */
2624
- }
2625
- ]);
3922
+ static typeName = "transcodely.v1.GetOutstandingBalanceRequest";
3923
+ static fields = protobuf.proto3.util.newFieldList(() => []);
2626
3924
  static fromBinary(bytes, options) {
2627
- return new _GetInvoiceRequest().fromBinary(bytes, options);
3925
+ return new _GetOutstandingBalanceRequest().fromBinary(bytes, options);
2628
3926
  }
2629
3927
  static fromJson(jsonValue, options) {
2630
- return new _GetInvoiceRequest().fromJson(jsonValue, options);
3928
+ return new _GetOutstandingBalanceRequest().fromJson(jsonValue, options);
2631
3929
  }
2632
3930
  static fromJsonString(jsonString, options) {
2633
- return new _GetInvoiceRequest().fromJsonString(jsonString, options);
3931
+ return new _GetOutstandingBalanceRequest().fromJsonString(jsonString, options);
2634
3932
  }
2635
3933
  static equals(a, b) {
2636
- return protobuf.proto3.util.equals(_GetInvoiceRequest, a, b);
3934
+ return protobuf.proto3.util.equals(_GetOutstandingBalanceRequest, a, b);
2637
3935
  }
2638
3936
  };
2639
- var GetInvoiceResponse = class _GetInvoiceResponse extends protobuf.Message {
3937
+ var GetOutstandingBalanceResponse = class _GetOutstandingBalanceResponse extends protobuf.Message {
2640
3938
  /**
2641
- * The requested invoice, with its line items.
3939
+ * Always present. An organization that owes nothing gets one with
3940
+ * outstanding_cents 0 and its threshold still populated, so a card can show
3941
+ * the headroom before anything has been spent.
2642
3942
  *
2643
- * @generated from field: transcodely.v1.Invoice invoice = 1;
3943
+ * @generated from field: transcodely.v1.OutstandingBalance balance = 1;
2644
3944
  */
2645
- invoice;
3945
+ balance;
2646
3946
  constructor(data) {
2647
3947
  super();
2648
3948
  protobuf.proto3.util.initPartial(data, this);
2649
3949
  }
2650
3950
  static runtime = protobuf.proto3;
2651
- static typeName = "transcodely.v1.GetInvoiceResponse";
3951
+ static typeName = "transcodely.v1.GetOutstandingBalanceResponse";
2652
3952
  static fields = protobuf.proto3.util.newFieldList(() => [
2653
- { no: 1, name: "invoice", kind: "message", T: Invoice }
3953
+ { no: 1, name: "balance", kind: "message", T: OutstandingBalance }
2654
3954
  ]);
2655
3955
  static fromBinary(bytes, options) {
2656
- return new _GetInvoiceResponse().fromBinary(bytes, options);
3956
+ return new _GetOutstandingBalanceResponse().fromBinary(bytes, options);
2657
3957
  }
2658
3958
  static fromJson(jsonValue, options) {
2659
- return new _GetInvoiceResponse().fromJson(jsonValue, options);
3959
+ return new _GetOutstandingBalanceResponse().fromJson(jsonValue, options);
2660
3960
  }
2661
3961
  static fromJsonString(jsonString, options) {
2662
- return new _GetInvoiceResponse().fromJsonString(jsonString, options);
3962
+ return new _GetOutstandingBalanceResponse().fromJsonString(jsonString, options);
2663
3963
  }
2664
3964
  static equals(a, b) {
2665
- return protobuf.proto3.util.equals(_GetInvoiceResponse, a, b);
3965
+ return protobuf.proto3.util.equals(_GetOutstandingBalanceResponse, a, b);
2666
3966
  }
2667
3967
  };
2668
- var GetUpcomingInvoiceRequest = class _GetUpcomingInvoiceRequest extends protobuf.Message {
3968
+ var SettleOutstandingBalanceRequest = class _SettleOutstandingBalanceRequest extends protobuf.Message {
2669
3969
  constructor(data) {
2670
3970
  super();
2671
3971
  protobuf.proto3.util.initPartial(data, this);
2672
3972
  }
2673
3973
  static runtime = protobuf.proto3;
2674
- static typeName = "transcodely.v1.GetUpcomingInvoiceRequest";
3974
+ static typeName = "transcodely.v1.SettleOutstandingBalanceRequest";
2675
3975
  static fields = protobuf.proto3.util.newFieldList(() => []);
2676
3976
  static fromBinary(bytes, options) {
2677
- return new _GetUpcomingInvoiceRequest().fromBinary(bytes, options);
3977
+ return new _SettleOutstandingBalanceRequest().fromBinary(bytes, options);
2678
3978
  }
2679
3979
  static fromJson(jsonValue, options) {
2680
- return new _GetUpcomingInvoiceRequest().fromJson(jsonValue, options);
3980
+ return new _SettleOutstandingBalanceRequest().fromJson(jsonValue, options);
2681
3981
  }
2682
3982
  static fromJsonString(jsonString, options) {
2683
- return new _GetUpcomingInvoiceRequest().fromJsonString(jsonString, options);
3983
+ return new _SettleOutstandingBalanceRequest().fromJsonString(jsonString, options);
2684
3984
  }
2685
3985
  static equals(a, b) {
2686
- return protobuf.proto3.util.equals(_GetUpcomingInvoiceRequest, a, b);
3986
+ return protobuf.proto3.util.equals(_SettleOutstandingBalanceRequest, a, b);
2687
3987
  }
2688
3988
  };
2689
- var GetUpcomingInvoiceResponse = class _GetUpcomingInvoiceResponse extends protobuf.Message {
3989
+ var SettleOutstandingBalanceResponse = class _SettleOutstandingBalanceResponse extends protobuf.Message {
2690
3990
  /**
2691
- * The computed statement. Its id is empty and its status is "draft". Totals
2692
- * are zero when nothing has been billed in the period yet.
3991
+ * The statement that was produced.
2693
3992
  *
2694
- * @generated from field: transcodely.v1.Invoice invoice = 1;
3993
+ * @generated from field: transcodely.v1.Settlement settlement = 1;
2695
3994
  */
2696
- invoice;
3995
+ settlement;
3996
+ /**
3997
+ * The balance as it now stands — zero, with the block lifted and the steps
3998
+ * re-armed — so a caller that just paid can render the new state without a
3999
+ * second request.
4000
+ *
4001
+ * @generated from field: transcodely.v1.OutstandingBalance balance = 2;
4002
+ */
4003
+ balance;
2697
4004
  constructor(data) {
2698
4005
  super();
2699
4006
  protobuf.proto3.util.initPartial(data, this);
2700
4007
  }
2701
4008
  static runtime = protobuf.proto3;
2702
- static typeName = "transcodely.v1.GetUpcomingInvoiceResponse";
4009
+ static typeName = "transcodely.v1.SettleOutstandingBalanceResponse";
2703
4010
  static fields = protobuf.proto3.util.newFieldList(() => [
2704
- { no: 1, name: "invoice", kind: "message", T: Invoice }
4011
+ { no: 1, name: "settlement", kind: "message", T: Settlement },
4012
+ { no: 2, name: "balance", kind: "message", T: OutstandingBalance }
2705
4013
  ]);
2706
4014
  static fromBinary(bytes, options) {
2707
- return new _GetUpcomingInvoiceResponse().fromBinary(bytes, options);
4015
+ return new _SettleOutstandingBalanceResponse().fromBinary(bytes, options);
2708
4016
  }
2709
4017
  static fromJson(jsonValue, options) {
2710
- return new _GetUpcomingInvoiceResponse().fromJson(jsonValue, options);
4018
+ return new _SettleOutstandingBalanceResponse().fromJson(jsonValue, options);
2711
4019
  }
2712
4020
  static fromJsonString(jsonString, options) {
2713
- return new _GetUpcomingInvoiceResponse().fromJsonString(jsonString, options);
4021
+ return new _SettleOutstandingBalanceResponse().fromJsonString(jsonString, options);
2714
4022
  }
2715
4023
  static equals(a, b) {
2716
- return protobuf.proto3.util.equals(_GetUpcomingInvoiceResponse, a, b);
4024
+ return protobuf.proto3.util.equals(_SettleOutstandingBalanceResponse, a, b);
2717
4025
  }
2718
4026
  };
2719
4027
  var BillingService = {
@@ -2761,6 +4069,105 @@ var BillingService = {
2761
4069
  I: GetUpcomingInvoiceRequest,
2762
4070
  O: GetUpcomingInvoiceResponse,
2763
4071
  kind: protobuf.MethodKind.Unary
4072
+ },
4073
+ /**
4074
+ * Retrieve the organization's billing profile: whether a payment method is
4075
+ * on file, and the card details the payment provider exposes for display.
4076
+ *
4077
+ * Read-only and side-effect free: it never creates provider resources. An
4078
+ * organization that has never touched billing gets payment_method_state
4079
+ * "none" and an empty payment_methods list.
4080
+ *
4081
+ * @generated from rpc transcodely.v1.BillingService.GetBillingProfile
4082
+ */
4083
+ getBillingProfile: {
4084
+ name: "GetBillingProfile",
4085
+ I: GetBillingProfileRequest,
4086
+ O: GetBillingProfileResponse,
4087
+ kind: protobuf.MethodKind.Unary
4088
+ },
4089
+ /**
4090
+ * Create a short-lived session for the payment provider's hosted billing
4091
+ * portal and return its URL. The portal is where a payment method is added
4092
+ * or replaced and where receipts live; card details never touch the
4093
+ * Transcodely API.
4094
+ *
4095
+ * First call for an organization also links it to the payment provider
4096
+ * (customer + subscription), so the returned portal is already attached to
4097
+ * this organization's billing account. Safe to call repeatedly.
4098
+ *
4099
+ * @generated from rpc transcodely.v1.BillingService.CreateBillingPortalSession
4100
+ */
4101
+ createBillingPortalSession: {
4102
+ name: "CreateBillingPortalSession",
4103
+ I: CreateBillingPortalSessionRequest,
4104
+ O: CreateBillingPortalSessionResponse,
4105
+ kind: protobuf.MethodKind.Unary
4106
+ },
4107
+ /**
4108
+ * Retrieve the organization's monthly budget together with the spend it is
4109
+ * measured against, in one call: everything a budget card needs.
4110
+ *
4111
+ * @generated from rpc transcodely.v1.BillingService.GetBudget
4112
+ */
4113
+ getBudget: {
4114
+ name: "GetBudget",
4115
+ I: GetBudgetRequest,
4116
+ O: GetBudgetResponse,
4117
+ kind: protobuf.MethodKind.Unary
4118
+ },
4119
+ /**
4120
+ * Set or clear the organization's monthly budget.
4121
+ *
4122
+ * Omitting amount_eur clears the budget and turns the alert emails off.
4123
+ * Changing the amount never re-sends an alert step already sent this period;
4124
+ * see Budget.notified_steps.
4125
+ *
4126
+ * @generated from rpc transcodely.v1.BillingService.UpdateBudget
4127
+ */
4128
+ updateBudget: {
4129
+ name: "UpdateBudget",
4130
+ I: UpdateBudgetRequest,
4131
+ O: UpdateBudgetResponse,
4132
+ kind: protobuf.MethodKind.Unary
4133
+ },
4134
+ /**
4135
+ * Retrieve the organization's outstanding balance — usage that has been
4136
+ * accrued but not yet billed — together with the threshold it is measured
4137
+ * against, in one call: everything an outstanding-balance card needs.
4138
+ *
4139
+ * Distinct from GetUpcomingInvoice, which shows what the CURRENT PERIOD has
4140
+ * accrued. This shows what is UNSETTLED, which also includes anything a
4141
+ * previous period left uncaptured, and it is the number that decides whether
4142
+ * new jobs are admitted.
4143
+ *
4144
+ * @generated from rpc transcodely.v1.BillingService.GetOutstandingBalance
4145
+ */
4146
+ getOutstandingBalance: {
4147
+ name: "GetOutstandingBalance",
4148
+ I: GetOutstandingBalanceRequest,
4149
+ O: GetOutstandingBalanceResponse,
4150
+ kind: protobuf.MethodKind.Unary
4151
+ },
4152
+ /**
4153
+ * Pay the outstanding balance now, without waiting for the period to end.
4154
+ *
4155
+ * Closes the current period at this instant and produces a real statement for
4156
+ * everything owed, which the payment provider then charges. On success the
4157
+ * outstanding balance is zero, any admission block is lifted immediately, and
4158
+ * the organization's trust tier re-evaluates once the statement is paid.
4159
+ *
4160
+ * Returns failed_precondition with error code "settlement_unavailable" when
4161
+ * the deployment has mid-cycle settlement switched off, and
4162
+ * "nothing_outstanding" when there is nothing to pay.
4163
+ *
4164
+ * @generated from rpc transcodely.v1.BillingService.SettleOutstandingBalance
4165
+ */
4166
+ settleOutstandingBalance: {
4167
+ name: "SettleOutstandingBalance",
4168
+ I: SettleOutstandingBalanceRequest,
4169
+ O: SettleOutstandingBalanceResponse,
4170
+ kind: protobuf.MethodKind.Unary
2764
4171
  }
2765
4172
  }
2766
4173
  };
@@ -2824,6 +4231,156 @@ var Billing = class {
2824
4231
  );
2825
4232
  return res.invoice;
2826
4233
  }
4234
+ /**
4235
+ * Retrieve the organization's payment standing: whether the payment provider
4236
+ * holds a chargeable method, and what it will say about it for display.
4237
+ *
4238
+ * Read-only and side-effect free — it never creates provider resources. An
4239
+ * organization that has never touched billing reports
4240
+ * `PaymentMethodState.NONE` and no payment methods.
4241
+ *
4242
+ * `paymentMethodState` is the only reliable signal. A method's `brand` and
4243
+ * `last4` are frequently absent even for a working card, because the provider
4244
+ * does not always expose card metadata; render such a method as "Card on
4245
+ * file" rather than treating the missing digits as an error.
4246
+ */
4247
+ async retrieveProfile(opts) {
4248
+ const res = await this.transport.unary(
4249
+ BillingService,
4250
+ BillingService.methods.getBillingProfile,
4251
+ new GetBillingProfileRequest({}),
4252
+ opts
4253
+ );
4254
+ return res.profile;
4255
+ }
4256
+ /**
4257
+ * Create a short-lived session for the payment provider's hosted billing
4258
+ * portal and return it. The portal is where a payment method is added or
4259
+ * replaced and where receipts live — card details never touch this SDK.
4260
+ *
4261
+ * The first call for an organization also links it to the payment provider,
4262
+ * so the returned portal is already attached to this organization's billing
4263
+ * account. Safe to call repeatedly.
4264
+ *
4265
+ * The session is single-use and expires; request a fresh one per visit rather
4266
+ * than storing the URL.
4267
+ */
4268
+ async createPortalSession(opts) {
4269
+ const res = await this.transport.unary(
4270
+ BillingService,
4271
+ BillingService.methods.createBillingPortalSession,
4272
+ new CreateBillingPortalSessionRequest({}),
4273
+ opts
4274
+ );
4275
+ return res.session;
4276
+ }
4277
+ /**
4278
+ * Retrieve the organization's monthly budget together with the spend it is
4279
+ * measured against — everything a budget card needs, in one call.
4280
+ *
4281
+ * A budget only ever **notifies**: crossing 100% sends an email and changes
4282
+ * nothing else. The hard cap is the per-app spend limit
4283
+ * (`client.apps.setSpendLimit`), which rejects new jobs at 100%.
4284
+ *
4285
+ * Always returns a budget. An organization with none set gets one with
4286
+ * `amountEur` and `usedPercent` absent and `spentEur` still populated, so the
4287
+ * current period's spend renders before a budget exists.
4288
+ */
4289
+ async retrieveBudget(opts) {
4290
+ const res = await this.transport.unary(
4291
+ BillingService,
4292
+ BillingService.methods.getBudget,
4293
+ new GetBudgetRequest({}),
4294
+ opts
4295
+ );
4296
+ return res.budget;
4297
+ }
4298
+ /**
4299
+ * Set or clear the organization's monthly budget. Provide `amountEur` (must
4300
+ * be > 0) to set it; omit it to clear the budget and stop the alert emails.
4301
+ * {@link setBudget} and {@link clearBudget} are the ergonomic shorthands.
4302
+ *
4303
+ * The returned budget has current-period spend recomputed, so a caller that
4304
+ * just moved the number can re-render without a second request.
4305
+ */
4306
+ async updateBudget(req = {}, opts) {
4307
+ const res = await this.transport.unary(
4308
+ BillingService,
4309
+ BillingService.methods.updateBudget,
4310
+ new UpdateBudgetRequest(req),
4311
+ opts
4312
+ );
4313
+ return res.budget;
4314
+ }
4315
+ /**
4316
+ * Set the organization's monthly budget in EUR (must be > 0).
4317
+ *
4318
+ * Alert emails fire once per billing period at each of `budget.alertSteps`
4319
+ * (50%, 80%, 100% today). Raising or lowering the amount mid-period never
4320
+ * re-arms a step already listed in `budget.notifiedSteps`.
4321
+ */
4322
+ setBudget(amountEur, opts) {
4323
+ return this.updateBudget({ amountEur }, opts);
4324
+ }
4325
+ /**
4326
+ * Clear the organization's monthly budget, turning the alert emails off —
4327
+ * omitting the optional amount is the only way to switch them off.
4328
+ */
4329
+ clearBudget(opts) {
4330
+ return this.updateBudget({}, opts);
4331
+ }
4332
+ /**
4333
+ * Retrieve the organization's outstanding balance — usage accrued but not yet
4334
+ * captured onto a statement — together with the threshold it is measured
4335
+ * against.
4336
+ *
4337
+ * Distinct from {@link retrieveUpcoming}, which reports what the **current
4338
+ * period** has accrued: this is what is **unsettled**, so it also carries
4339
+ * anything an earlier period left uncaptured, and it is the number that
4340
+ * decides whether new jobs are admitted.
4341
+ *
4342
+ * Nothing is restricted as it climbs — reminder emails go out at 80%, 100%,
4343
+ * 125%, 150% and 175% and service continues past the threshold on purpose.
4344
+ * Only at `hardStopCents` (twice the threshold) are new jobs refused, with
4345
+ * error code `outstanding_balance_exceeded`; queued and running work still
4346
+ * finishes and playback keeps serving. Branch on `blocked`, which reads the
4347
+ * same numbers the admission gate reads.
4348
+ */
4349
+ async retrieveOutstandingBalance(opts) {
4350
+ const res = await this.transport.unary(
4351
+ BillingService,
4352
+ BillingService.methods.getOutstandingBalance,
4353
+ new GetOutstandingBalanceRequest({}),
4354
+ opts
4355
+ );
4356
+ return res.balance;
4357
+ }
4358
+ /**
4359
+ * Pay the outstanding balance now, without waiting for the period to end.
4360
+ *
4361
+ * Closes the current period at this instant and produces a real statement —
4362
+ * an ordinary invoice, readable through {@link retrieve} — which the payment
4363
+ * provider then charges. On success the balance is zero and any admission
4364
+ * block is lifted immediately; the response carries the refreshed balance too,
4365
+ * so no follow-up read is needed.
4366
+ *
4367
+ * Takes no amount on purpose: the figure is whatever the ledger says at the
4368
+ * instant it runs, so a stale page cannot underpay and leave the difference
4369
+ * looking settled.
4370
+ *
4371
+ * Throws {@link PreconditionError} with code `settlement_unavailable` when the
4372
+ * deployment has mid-cycle settlement switched off — check
4373
+ * `balance.settlementAvailable` before offering a "pay now" action — and with
4374
+ * `nothing_outstanding` when there is nothing to pay.
4375
+ */
4376
+ settleOutstandingBalance(opts) {
4377
+ return this.transport.unary(
4378
+ BillingService,
4379
+ BillingService.methods.settleOutstandingBalance,
4380
+ new SettleOutstandingBalanceRequest({}),
4381
+ opts
4382
+ );
4383
+ }
2827
4384
  };
2828
4385
  var WebhookEndpoint = class _WebhookEndpoint extends protobuf.Message {
2829
4386
  /**
@@ -5677,6 +7234,11 @@ var StreamingConfig = class _StreamingConfig extends protobuf.Message {
5677
7234
  * Example: "video_{resolution}" produces "video_1080p.m3u8"
5678
7235
  * Default: "{codec}_{resolution}" produces "h264_1080p.m3u8"
5679
7236
  *
7237
+ * The rendered value becomes a filename and is also carried through the
7238
+ * packager's stream descriptors, so the accepted charset is deliberately
7239
+ * narrow: letters, digits, `_`, `-`, `.` and the `{}` that delimit template
7240
+ * variables. No path separators, no `..`, and none of `, : ; ' " \`.
7241
+ *
5680
7242
  * @generated from field: optional string hls_variant_pattern = 12;
5681
7243
  */
5682
7244
  hlsVariantPattern;
@@ -5746,6 +7308,12 @@ var BurnInStyle = class _BurnInStyle extends protobuf.Message {
5746
7308
  /**
5747
7309
  * Font family name. Default: "Arial".
5748
7310
  *
7311
+ * Letters, digits, spaces, `_` and `-` only. The value is embedded in the
7312
+ * renderer's style string, where a quote, comma or semicolon would terminate
7313
+ * it and let whatever follows parse as further styling arguments.
7314
+ *
7315
+ * Example: "DejaVu Sans"
7316
+ *
5749
7317
  * @generated from field: optional string font_family = 1;
5750
7318
  */
5751
7319
  fontFamily;
@@ -9277,6 +10845,11 @@ var HLSConfig = class _HLSConfig extends protobuf.Message {
9277
10845
  * Variables: {codec}, {resolution}, {bitrate}, {index}
9278
10846
  * Default: "{codec}_{resolution}"
9279
10847
  *
10848
+ * The rendered value becomes a filename and is also carried through the
10849
+ * packager's stream descriptors, so the accepted charset is deliberately
10850
+ * narrow: letters, digits, `_`, `-`, `.` and the `{}` that delimit template
10851
+ * variables. No path separators, no `..`, and none of `, : ; ' " \`.
10852
+ *
9280
10853
  * @generated from field: optional string variant_pattern = 4;
9281
10854
  */
9282
10855
  variantPattern;
@@ -10519,17 +12092,26 @@ var Job = class _Job extends protobuf.Message {
10519
12092
  *
10520
12093
  * Only completed outputs are billable, and what happened to the job as a
10521
12094
  * whole decides whether they are billed at all:
10522
- * - completed: the sum of its outputs' actual costs, raised to
10523
- * minimum_charge_eur if that minimum is in effect.
10524
- * - canceled: the sum of the outputs that had already completed and been
10525
- * delivered when the cancel landed. Identical whether the job was
10526
- * canceled through CancelJob or observed as canceled by the worker. The
10527
- * minimum charge never applies.
10528
- * - failed: zero. A job that ends failed is not billed, even if some of
10529
- * its outputs completed before the failure.
10530
- * - partial: the sum of the outputs that completed, un-floored.
10531
- * Additive fees (see fees) are included on top, and are charged only on jobs
10532
- * that ended completed or partial.
12095
+ * - completed: the sum of its outputs' actual costs, plus the fees below.
12096
+ * - partial: the sum of the outputs that completed, plus the fees below.
12097
+ * - canceled: the processing fee, if an encoder had already begun work,
12098
+ * plus the outputs that had already completed and been delivered when
12099
+ * the cancel landed. Canceling a job that was still queued bills
12100
+ * nothing. Identical whether the job was canceled through CancelJob or
12101
+ * observed as canceled by the worker.
12102
+ * - failed: zero. A job that ends failed is not billed at all — not for
12103
+ * outputs that completed before the failure, and not for the machine it
12104
+ * ran on.
12105
+ *
12106
+ * Fees (see fees) are included on top of the output costs. Which ones are
12107
+ * charged depends on the fee: the flat processing fee is charged on every
12108
+ * job an encoder began, including a canceled one, while a metered add-on
12109
+ * such as AI captions is charged only when a completed or partial job
12110
+ * actually delivered its artifact.
12111
+ *
12112
+ * Jobs created before the processing-fee model (August 2026) are billed
12113
+ * max(sum of output costs, minimum_charge_eur) + fees when completed, and
12114
+ * their canceled/partial totals are un-floored.
10533
12115
  *
10534
12116
  * @generated from field: optional double total_actual_cost = 9;
10535
12117
  */
@@ -10666,44 +12248,62 @@ var Job = class _Job extends protobuf.Message {
10666
12248
  */
10667
12249
  object = "";
10668
12250
  /**
10669
- * Minimum charge for this job in EUR, locked at creation and never changed
10670
- * retroactively. It is derived from the job's assigned billing class — a size
10671
- * band (small/medium/large/extra-large) reflecting the compute the job is
10672
- * guaranteed to cover — or, in legacy configurations, from the recommended
10673
- * machine size; either way it is a stable quote, not re-derived from the
10674
- * machine the job ultimately runs on. When the minimum charge is in effect,
10675
- * the billed total for a successfully completed job is
10676
- * max(sum of output costs, minimum_charge_eur) — see minimum_charge_applied
10677
- * for whether it determined this job's total. The minimum applies only to
10678
- * jobs that reach completed: a failed job is billed zero, and a canceled or
10679
- * partial job is billed the un-floored sum of the outputs it did complete.
10680
- * Absent when no minimum was computed for this job.
10681
- *
10682
- * @generated from field: optional double minimum_charge_eur = 30;
12251
+ * HISTORICAL — jobs created before the processing-fee model (August 2026)
12252
+ * only. Always absent on jobs created since; use fees (fee_type
12253
+ * "processing") instead.
12254
+ *
12255
+ * The per-job minimum charge, locked at creation and never changed
12256
+ * retroactively. It was derived from the job's assigned billing class — a
12257
+ * size band (small/medium/large/extra-large) reflecting the compute the job
12258
+ * is guaranteed to cover — or, in earlier configurations, from the
12259
+ * recommended machine size; either way a stable quote, not re-derived from
12260
+ * the machine the job ultimately ran on. When in effect, the billed total for
12261
+ * a successfully completed job was max(sum of output costs,
12262
+ * minimum_charge_eur) — see minimum_charge_applied for whether it determined
12263
+ * this job's total. It applied only to jobs that reached completed: a failed
12264
+ * job was billed zero, and a canceled or partial job the un-floored sum of
12265
+ * the outputs it did complete.
12266
+ *
12267
+ * Jobs quoted under this model keep settling under it, so the field is
12268
+ * populated forever on those jobs and is never removed from the API.
12269
+ *
12270
+ * @generated from field: optional double minimum_charge_eur = 30 [deprecated = true];
12271
+ * @deprecated
10683
12272
  */
10684
12273
  minimumChargeEur;
10685
12274
  /**
12275
+ * HISTORICAL — jobs created before the processing-fee model (August 2026)
12276
+ * only. Always false on jobs created since.
12277
+ *
10686
12278
  * Whether minimum_charge_eur determined the job's most recently computed
10687
12279
  * total — true when the sum of output costs came in below the minimum and
10688
12280
  * the total was raised to it (estimated total after probe; actual total
10689
12281
  * after successful completion). When true, total_estimated_cost or
10690
12282
  * total_actual_cost exceeds the sum of the per-output cost fields, which
10691
- * are never raised themselves. The minimum is a stable quote locked at
10692
- * creation (from the job's billing class, or the recommended machine size in
10693
- * legacy configurations); it is never re-derived from the machine the job
10694
- * ultimately runs on.
12283
+ * were never raised themselves.
10695
12284
  *
10696
- * @generated from field: bool minimum_charge_applied = 31;
12285
+ * @generated from field: bool minimum_charge_applied = 31 [deprecated = true];
12286
+ * @deprecated
10697
12287
  */
10698
12288
  minimumChargeApplied = false;
10699
12289
  /**
10700
- * Additive fee line items (v1: AI caption generation). Fees are charged ON
10701
- * TOP of the encode bill and sit OUTSIDE the minimum-charge floor:
10702
- * billed total = max(sum of output costs, minimum_charge_eur) + sum of fees.
12290
+ * Fee line items on the job. Two kinds appear here:
12291
+ *
12292
+ * "processing" — the flat per-job processing fee, charged once for the
12293
+ * encoder the job ran on, scaled by the job's size class. Present on every
12294
+ * job an encoder began processing. Quantity is always 1.
12295
+ * "captions" — AI caption generation, metered per source minute.
12296
+ *
12297
+ * Fees are charged ON TOP of the encode bill:
12298
+ * billed total = sum of output costs + sum of fees. (On historical jobs that
12299
+ * carry a minimum_charge_eur, the output sum is raised to that floor first;
12300
+ * fees have always sat outside the clamp.)
12301
+ *
10703
12302
  * total_estimated_cost / total_actual_cost INCLUDE fees; this list exposes
10704
- * the decomposition. Only live fees are listed — a fee that was voided
10705
- * (job failed/canceled, or the artifact was never produced) is dropped
10706
- * from the list and never charged. Server-set; read-only.
12303
+ * the decomposition. Only live fees are listed — a fee that was voided is
12304
+ * dropped from the list and never charged. A job that failed, or that was
12305
+ * canceled while still queued, therefore reports no fees at all.
12306
+ * Server-set; read-only.
10707
12307
  *
10708
12308
  * @generated from field: repeated transcodely.v1.JobFee fees = 33;
10709
12309
  */
@@ -10742,10 +12342,10 @@ var Job = class _Job extends protobuf.Message {
10742
12342
  videoId;
10743
12343
  /**
10744
12344
  * Itemized decomposition of total_estimated_cost and total_actual_cost:
10745
- * one line per output, one per fee, and the minimum-charge top-up when the
10746
- * per-job minimum raised a total. The lines always sum to the totals, so
10747
- * this is the field to render a cost from — the per-output cost fields
10748
- * alone do not add up to the bill whenever the minimum charge is in effect.
12345
+ * one line per output, one per fee, and — on jobs old enough to have a
12346
+ * minimum charge — the top-up it added. The lines always sum to the totals,
12347
+ * so this is the field to render a cost from: the per-output cost fields
12348
+ * alone do not add up to the bill, because fees are charged on top of them.
10749
12349
  * Always present. Server-set; read-only.
10750
12350
  *
10751
12351
  * @generated from field: transcodely.v1.JobCostBreakdown cost_breakdown = 38;
@@ -10870,40 +12470,47 @@ var Job = class _Job extends protobuf.Message {
10870
12470
  };
10871
12471
  var JobFee = class _JobFee extends protobuf.Message {
10872
12472
  /**
10873
- * Fee discriminator — the fee pricing rule's key. v1: "captions".
12473
+ * Fee discriminator:
12474
+ * "processing" — the flat per-job processing fee (see Job.fees).
12475
+ * "captions" — AI caption generation.
10874
12476
  *
10875
12477
  * @generated from field: string fee_type = 1;
10876
12478
  */
10877
12479
  feeType = "";
10878
12480
  /**
10879
12481
  * Human-readable description of what the fee is for
10880
- * (e.g., "AI Caption Generation").
12482
+ * (e.g., "Processing fee", "AI Caption Generation").
10881
12483
  *
10882
12484
  * @generated from field: string description = 2;
10883
12485
  */
10884
12486
  description = "";
10885
12487
  /**
10886
- * Metering unit. v1: "source_minute" (input duration in minutes).
12488
+ * Metering unit:
12489
+ * "job" — a flat per-job charge; quantity is always 1.
12490
+ * "source_minute" — input duration in minutes.
10887
12491
  *
10888
12492
  * @generated from field: string unit = 3;
10889
12493
  */
10890
12494
  unit = "";
10891
12495
  /**
10892
12496
  * Metered quantity in `unit`s — the exact fraction, e.g. a 90-second
10893
- * source is 1.5 source minutes. 0 until the input probe completes.
12497
+ * source is 1.5 source minutes. For a "source_minute" fee this is 0 until
12498
+ * the input probe completes; a "job" fee is always 1, from creation.
10894
12499
  *
10895
12500
  * @generated from field: double quantity = 4;
10896
12501
  */
10897
12502
  quantity = 0;
10898
12503
  /**
10899
- * Price per unit in `currency`, locked at job creation from the
10900
- * then-effective fee pricing rule (e.g., 0.05).
12504
+ * Price per unit in `currency`, locked at job creation (e.g., 0.05). For the
12505
+ * processing fee this is the job's size class's rate at the moment the job
12506
+ * was created; later rate changes never re-price an existing job.
10901
12507
  *
10902
12508
  * @generated from field: double rate = 5;
10903
12509
  */
10904
12510
  rate = 0;
10905
12511
  /**
10906
- * quantity x rate, in `currency`. 0 until the input probe completes.
12512
+ * quantity x rate, in `currency`. For a "source_minute" fee this is 0 until
12513
+ * the input probe completes; for a "job" fee it equals rate from creation.
10907
12514
  *
10908
12515
  * @generated from field: double amount = 6;
10909
12516
  */
@@ -11991,6 +13598,18 @@ var Video = class _Video extends protobuf.Message {
11991
13598
  */
11992
13599
  outputSizeBytes = protobuf.protoInt64.zero;
11993
13600
  /**
13601
+ * Total billed by the transcode job that produced this video, in EUR.
13602
+ *
13603
+ * Despite the name this is the job's WHOLE total, not encoding alone: a
13604
+ * job's total already includes every fee billed on it, so for a video
13605
+ * captioned inline (the auto_captions upload flag) the captions fee is part
13606
+ * of this number, as is the flat per-job processing fee. Absent until the
13607
+ * job settles.
13608
+ *
13609
+ * Prefer total_cost. This field covers one job, so it misses the cost of
13610
+ * later jobs run against the video, and adding captions_cost to it
13611
+ * double-counts inline captions.
13612
+ *
11994
13613
  * @generated from field: optional double encoding_cost = 31;
11995
13614
  */
11996
13615
  encodingCost;
@@ -12002,11 +13621,35 @@ var Video = class _Video extends protobuf.Message {
12002
13621
  * confirmed only when a caption artifact is actually delivered, so voided
12003
13622
  * and still-estimated fees are never counted. This is a per-feature
12004
13623
  * breakdown of already-billed job totals, not an extra charge on top of
12005
- * them.
13624
+ * them: it is contained in total_cost, never added to it.
12006
13625
  *
12007
13626
  * @generated from field: optional double captions_cost = 50;
12008
13627
  */
12009
13628
  captionsCost;
13629
+ /**
13630
+ * Everything this video has cost, in EUR: the sum of the settled totals of
13631
+ * every job billed for it — the transcode that produced it plus any later
13632
+ * job that took it as input (retro captions, for example).
13633
+ *
13634
+ * This is the authoritative per-video figure and the one to display. It is
13635
+ * built from the same job totals the billing ledger is written from, so it
13636
+ * reconciles with the invoice; captions_cost is a breakdown inside it.
13637
+ * Absent while no linked job has settled yet.
13638
+ *
13639
+ * @generated from field: optional double total_cost = 52;
13640
+ */
13641
+ totalCost;
13642
+ /**
13643
+ * Why this video failed, in one sentence a customer can act on. Present only
13644
+ * when status is "error"; absent for every other status.
13645
+ *
13646
+ * This is curated copy, never raw failure text — it will not contain
13647
+ * encoder output, storage-provider responses, or internal identifiers. When
13648
+ * the video has a linked job, that job's error_message says the same thing.
13649
+ *
13650
+ * @generated from field: optional string error_message = 51;
13651
+ */
13652
+ errorMessage;
12010
13653
  /**
12011
13654
  * Timestamps.
12012
13655
  *
@@ -12121,6 +13764,8 @@ var Video = class _Video extends protobuf.Message {
12121
13764
  },
12122
13765
  { no: 31, name: "encoding_cost", kind: "scalar", T: 1, opt: true },
12123
13766
  { no: 50, name: "captions_cost", kind: "scalar", T: 1, opt: true },
13767
+ { no: 52, name: "total_cost", kind: "scalar", T: 1, opt: true },
13768
+ { no: 51, name: "error_message", kind: "scalar", T: 9, opt: true },
12124
13769
  { no: 40, name: "created_at", kind: "message", T: protobuf.Timestamp },
12125
13770
  { no: 41, name: "updated_at", kind: "message", T: protobuf.Timestamp },
12126
13771
  { no: 42, name: "ready_at", kind: "message", T: protobuf.Timestamp, opt: true },
@@ -14988,7 +16633,7 @@ function backoff(attempt) {
14988
16633
  }
14989
16634
 
14990
16635
  // src/version.ts
14991
- var SDK_VERSION = "0.3.5";
16636
+ var SDK_VERSION = "0.3.7";
14992
16637
  var API_VERSION = "2026-05-03";
14993
16638
  var DEFAULT_BASE_URL = "https://api.transcodely.com";
14994
16639
 
@@ -15771,6 +17416,101 @@ var Organization = class _Organization extends protobuf.Message {
15771
17416
  * @generated from field: google.protobuf.Timestamp updated_at = 8;
15772
17417
  */
15773
17418
  updatedAt;
17419
+ /**
17420
+ * Plan assigned to the organization, applying to every app under it that has
17421
+ * no plan of its own. Absent when the org carries none.
17422
+ *
17423
+ * @generated from field: optional string plan_id = 9;
17424
+ */
17425
+ planId;
17426
+ /**
17427
+ * Display name of the org's plan. Absent exactly when plan_id is.
17428
+ *
17429
+ * @generated from field: optional string plan_name = 10;
17430
+ */
17431
+ planName;
17432
+ /**
17433
+ * Whether this org must have a payment method on file. ENFORCED: with no
17434
+ * usable payment method a required org derives a restricting
17435
+ * billing_standing, and its jobs resolve to the free tier's limits rather
17436
+ * than to its plan.
17437
+ *
17438
+ * Organizations created before the enforcement release carry false and are
17439
+ * the grandfathered population — unaffected until an operator turns it on.
17440
+ * A comped org (billing_exempt) is off the hook whatever this says.
17441
+ *
17442
+ * @generated from field: bool payment_method_required = 11;
17443
+ */
17444
+ paymentMethodRequired = false;
17445
+ /**
17446
+ * When the org was explicitly exempted from the payment-method requirement —
17447
+ * stamped when payment_method_required is turned off, cleared when it is
17448
+ * turned on. Absent for an org that has never been exempted, which today is
17449
+ * every org. Reflects the CURRENT exemption only; the change history lives in
17450
+ * the admin audit log.
17451
+ *
17452
+ * @generated from field: optional google.protobuf.Timestamp grandfathered_at = 12;
17453
+ */
17454
+ grandfatheredAt;
17455
+ /**
17456
+ * Derived payment health. Always BILLING_STANDING_ACTIVE when
17457
+ * payment_method_required is false, whatever the facts below say.
17458
+ *
17459
+ * Filled on admin reads, and on OrganizationService.Get for a member of the
17460
+ * org (JWT/portal actors). Absent on the API-key read path, which gets a
17461
+ * refusal code on the create instead, and on List.
17462
+ *
17463
+ * @generated from field: transcodely.v1.BillingStanding billing_standing = 13;
17464
+ */
17465
+ billingStanding = 0 /* UNSPECIFIED */;
17466
+ /**
17467
+ * When the current grace window closes, present only while billing_standing
17468
+ * is BILLING_STANDING_GRACE. Filled wherever billing_standing is.
17469
+ *
17470
+ * @generated from field: optional google.protobuf.Timestamp grace_until = 14;
17471
+ */
17472
+ graceUntil;
17473
+ /**
17474
+ * Stable token explaining billing_standing; same vocabulary as
17475
+ * BillingProfile.standing_reason. ADMIN reads only — tokens like
17476
+ * card_expired are payment-method detail, which a plain member never sees.
17477
+ *
17478
+ * @generated from field: string standing_reason = 15;
17479
+ */
17480
+ standingReason = "";
17481
+ /**
17482
+ * Whether a dunning episode is open right now — the payment provider has an
17483
+ * unpaid invoice for this org and is retrying it. TRUE together with
17484
+ * payment_method_required = false is the case that needs a human: the org is
17485
+ * exempt, so nothing will limit it, and the unpaid invoice will otherwise sit
17486
+ * there indefinitely.
17487
+ *
17488
+ * @generated from field: bool in_dunning = 16;
17489
+ */
17490
+ inDunning = false;
17491
+ /**
17492
+ * How many dunning episodes have run without a clean cycle in between. At 2 a
17493
+ * new episode gets no grace window at all. Reset only by an invoice that pays
17494
+ * while no episode is open — recovering INSIDE dunning does not earn the
17495
+ * window back.
17496
+ *
17497
+ * @generated from field: int32 consecutive_dunned_cycles = 17;
17498
+ */
17499
+ consecutiveDunnedCycles = 0;
17500
+ /**
17501
+ * How automation may treat this organization — see BillingTreatment.
17502
+ *
17503
+ * ADMIN reads only, like standing_reason above: it is a statement about a
17504
+ * commercial relationship, and a customer does not learn from an API field
17505
+ * that we have decided never to interrupt them.
17506
+ *
17507
+ * Orthogonal to billing_standing. A trusted org can report
17508
+ * BILLING_STANDING_DELINQUENT and still be untouched by every automated
17509
+ * path — the founder gets an email instead.
17510
+ *
17511
+ * @generated from field: transcodely.v1.BillingTreatment billing_treatment = 18;
17512
+ */
17513
+ billingTreatment = 0 /* UNSPECIFIED */;
15774
17514
  constructor(data) {
15775
17515
  super();
15776
17516
  protobuf.proto3.util.initPartial(data, this);
@@ -15809,7 +17549,41 @@ var Organization = class _Organization extends protobuf.Message {
15809
17549
  },
15810
17550
  { no: 6, name: "status", kind: "enum", T: protobuf.proto3.getEnumType(OrganizationStatus) },
15811
17551
  { no: 7, name: "created_at", kind: "message", T: protobuf.Timestamp },
15812
- { no: 8, name: "updated_at", kind: "message", T: protobuf.Timestamp }
17552
+ { no: 8, name: "updated_at", kind: "message", T: protobuf.Timestamp },
17553
+ { no: 9, name: "plan_id", kind: "scalar", T: 9, opt: true },
17554
+ { no: 10, name: "plan_name", kind: "scalar", T: 9, opt: true },
17555
+ {
17556
+ no: 11,
17557
+ name: "payment_method_required",
17558
+ kind: "scalar",
17559
+ T: 8
17560
+ /* ScalarType.BOOL */
17561
+ },
17562
+ { no: 12, name: "grandfathered_at", kind: "message", T: protobuf.Timestamp, opt: true },
17563
+ { no: 13, name: "billing_standing", kind: "enum", T: protobuf.proto3.getEnumType(BillingStanding) },
17564
+ { no: 14, name: "grace_until", kind: "message", T: protobuf.Timestamp, opt: true },
17565
+ {
17566
+ no: 15,
17567
+ name: "standing_reason",
17568
+ kind: "scalar",
17569
+ T: 9
17570
+ /* ScalarType.STRING */
17571
+ },
17572
+ {
17573
+ no: 16,
17574
+ name: "in_dunning",
17575
+ kind: "scalar",
17576
+ T: 8
17577
+ /* ScalarType.BOOL */
17578
+ },
17579
+ {
17580
+ no: 17,
17581
+ name: "consecutive_dunned_cycles",
17582
+ kind: "scalar",
17583
+ T: 5
17584
+ /* ScalarType.INT32 */
17585
+ },
17586
+ { no: 18, name: "billing_treatment", kind: "enum", T: protobuf.proto3.getEnumType(BillingTreatment) }
15813
17587
  ]);
15814
17588
  static fromBinary(bytes, options) {
15815
17589
  return new _Organization().fromBinary(bytes, options);
@@ -18050,8 +19824,7 @@ var User = class _User extends protobuf.Message {
18050
19824
  */
18051
19825
  updatedAt;
18052
19826
  /**
18053
- * Whether this user has been approved by a staff member.
18054
- * New sign-ups default to PENDING.
19827
+ * Whether this user may use the dashboard.
18055
19828
  *
18056
19829
  * @generated from field: transcodely.v1.UserApprovalStatus approval_status = 11;
18057
19830
  */
@@ -18063,7 +19836,8 @@ var User = class _User extends protobuf.Message {
18063
19836
  */
18064
19837
  approvalDecidedAt;
18065
19838
  /**
18066
- * The staff member's user_id who decided approval.
19839
+ * The staff member's user_id who decided approval. Absent when the user was
19840
+ * approved automatically rather than by a person.
18067
19841
  *
18068
19842
  * @generated from field: optional string approval_decided_by_user_id = 13;
18069
19843
  */
@@ -19626,6 +21400,8 @@ exports.API_VERSION = API_VERSION;
19626
21400
  exports.AppStatus = AppStatus;
19627
21401
  exports.AudioCodec = AudioCodec;
19628
21402
  exports.AuthenticationError = AuthenticationError;
21403
+ exports.BillingStanding = BillingStanding;
21404
+ exports.BillingTreatment = BillingTreatment;
19629
21405
  exports.BitrateMode = BitrateMode;
19630
21406
  exports.ConflictError = ConflictError;
19631
21407
  exports.Container = Container;
@@ -19635,8 +21411,10 @@ exports.DEFAULT_BASE_URL = DEFAULT_BASE_URL;
19635
21411
  exports.DEFAULT_TOLERANCE_SECONDS = DEFAULT_TOLERANCE_SECONDS;
19636
21412
  exports.DRMSystem = DRMSystem;
19637
21413
  exports.DeliveryFormat = DeliveryFormat;
21414
+ exports.DunningStage = DunningStage;
19638
21415
  exports.EVENT_ID_HEADER = EVENT_ID_HEADER;
19639
21416
  exports.EncryptionScheme = EncryptionScheme;
21417
+ exports.ExposureThresholdSource = ExposureThresholdSource;
19640
21418
  exports.GOPAlignmentMode = GOPAlignmentMode;
19641
21419
  exports.HDRFormat = HDRFormat;
19642
21420
  exports.HDRMode = HDRMode;
@@ -19658,6 +21436,7 @@ exports.OriginStatus = OriginStatus;
19658
21436
  exports.OutputFormat = OutputFormat;
19659
21437
  exports.OutputStatus = OutputStatus;
19660
21438
  exports.Page = Page;
21439
+ exports.PaymentMethodState = PaymentMethodState;
19661
21440
  exports.PermissionError = PermissionError;
19662
21441
  exports.PreconditionError = PreconditionError;
19663
21442
  exports.QualityTier = QualityTier;
@@ -19673,6 +21452,7 @@ exports.ThumbnailMode = ThumbnailMode;
19673
21452
  exports.ToneMapping = ToneMapping;
19674
21453
  exports.Transcodely = Transcodely;
19675
21454
  exports.TranscodelyError = TranscodelyError;
21455
+ exports.TrustTier = TrustTier;
19676
21456
  exports.UserApprovalStatus = UserApprovalStatus;
19677
21457
  exports.UserStatus = UserStatus;
19678
21458
  exports.VideoCodec = VideoCodec;