@transcodely/sdk 0.3.0 → 0.3.2
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/CHANGELOG.md +28 -0
- package/README.md +78 -12
- package/dist/index.cjs +5930 -2921
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2389 -112
- package/dist/index.d.ts +2389 -112
- package/dist/index.mjs +5926 -2922
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -2
package/dist/index.d.cts
CHANGED
|
@@ -900,6 +900,15 @@ interface Service {
|
|
|
900
900
|
}
|
|
901
901
|
interface TransportConfig {
|
|
902
902
|
apiKey: string;
|
|
903
|
+
/**
|
|
904
|
+
* Organization every request is made against, sent as `X-Organization-ID`.
|
|
905
|
+
*
|
|
906
|
+
* API-key callers never need this — a key is already scoped to one app, and
|
|
907
|
+
* therefore to one organization. It is required for the org-scoped surfaces a
|
|
908
|
+
* dashboard session token reaches, `client.billing` among them, which answer
|
|
909
|
+
* 400 invalid_argument without it.
|
|
910
|
+
*/
|
|
911
|
+
organizationId?: string;
|
|
903
912
|
baseUrl?: string;
|
|
904
913
|
timeoutMs?: number;
|
|
905
914
|
maxRetries?: number;
|
|
@@ -935,6 +944,7 @@ interface CallOptions {
|
|
|
935
944
|
declare class Transport {
|
|
936
945
|
readonly baseUrl: string;
|
|
937
946
|
readonly apiKey: string;
|
|
947
|
+
readonly organizationId: string | undefined;
|
|
938
948
|
readonly timeoutMs: number;
|
|
939
949
|
readonly maxRetries: number;
|
|
940
950
|
readonly apiVersion: string;
|
|
@@ -997,7 +1007,15 @@ declare enum AppStatus {
|
|
|
997
1007
|
*
|
|
998
1008
|
* @generated from enum value: APP_STATUS_ARCHIVED = 2;
|
|
999
1009
|
*/
|
|
1000
|
-
ARCHIVED = 2
|
|
1010
|
+
ARCHIVED = 2,
|
|
1011
|
+
/**
|
|
1012
|
+
* Cut off by platform admin action. API keys scoped to the app are rejected
|
|
1013
|
+
* with 403 until it is set back to active. Unlike archived, this is
|
|
1014
|
+
* reversible and preserves all of the app's resources.
|
|
1015
|
+
*
|
|
1016
|
+
* @generated from enum value: APP_STATUS_SUSPENDED = 3;
|
|
1017
|
+
*/
|
|
1018
|
+
SUSPENDED = 3
|
|
1001
1019
|
}
|
|
1002
1020
|
/**
|
|
1003
1021
|
* An app is a project within an organization.
|
|
@@ -1088,6 +1106,18 @@ declare class App extends Message<App> {
|
|
|
1088
1106
|
* @generated from field: string object = 14;
|
|
1089
1107
|
*/
|
|
1090
1108
|
object: string;
|
|
1109
|
+
/**
|
|
1110
|
+
* Monthly spend limit in EUR for transcoding charges. Unset = unlimited (the
|
|
1111
|
+
* default). Once the app's spend for the current period reaches this limit,
|
|
1112
|
+
* new jobs are rejected with `limit_exceeded`; in-flight jobs are never
|
|
1113
|
+
* stopped. A warning webhook (`app.spend_limit_warning`) fires once at 80% of
|
|
1114
|
+
* the limit and `app.spend_limit_exceeded` fires once on breach. The period
|
|
1115
|
+
* follows the app's billing anchor day in UTC. Set or clear via
|
|
1116
|
+
* AppService.UpdateSpendLimit; read current spend via AppService.GetSpend.
|
|
1117
|
+
*
|
|
1118
|
+
* @generated from field: optional double monthly_spend_limit_eur = 15;
|
|
1119
|
+
*/
|
|
1120
|
+
monthlySpendLimitEur?: number;
|
|
1091
1121
|
constructor(data?: PartialMessage<App>);
|
|
1092
1122
|
static readonly runtime: typeof proto3;
|
|
1093
1123
|
static readonly typeName = "transcodely.v1.App";
|
|
@@ -1410,6 +1440,19 @@ declare class HostingConfig extends Message<HostingConfig> {
|
|
|
1410
1440
|
* @generated from field: optional transcodely.v1.AutoProfileDefaults auto_profile_defaults = 4;
|
|
1411
1441
|
*/
|
|
1412
1442
|
autoProfileDefaults?: AutoProfileDefaults;
|
|
1443
|
+
/**
|
|
1444
|
+
* Days after a hosted video becomes ready before its ORIGINAL SOURCE FILE is
|
|
1445
|
+
* deleted from managed storage (0 = disabled/clear). Applies ONLY to the
|
|
1446
|
+
* uploaded source object; renditions and playback are NEVER affected, and BYO
|
|
1447
|
+
* origins are out of scope. A warning webhook (video.source_scheduled_for_deletion)
|
|
1448
|
+
* fires at least the configured warning lead ahead of deletion. Once the source
|
|
1449
|
+
* is deleted, future re-processing (new codecs/renditions, retro-captions) falls
|
|
1450
|
+
* back to the best available rendition. Per-video source_pinned exempts an
|
|
1451
|
+
* individual video from this rule.
|
|
1452
|
+
*
|
|
1453
|
+
* @generated from field: optional int32 delete_source_after_days = 5;
|
|
1454
|
+
*/
|
|
1455
|
+
deleteSourceAfterDays?: number;
|
|
1413
1456
|
constructor(data?: PartialMessage<HostingConfig>);
|
|
1414
1457
|
static readonly runtime: typeof proto3;
|
|
1415
1458
|
static readonly typeName = "transcodely.v1.HostingConfig";
|
|
@@ -1514,6 +1557,142 @@ declare class UpdateHostingConfigResponse extends Message<UpdateHostingConfigRes
|
|
|
1514
1557
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateHostingConfigResponse;
|
|
1515
1558
|
static equals(a: UpdateHostingConfigResponse | PlainMessage<UpdateHostingConfigResponse> | undefined, b: UpdateHostingConfigResponse | PlainMessage<UpdateHostingConfigResponse> | undefined): boolean;
|
|
1516
1559
|
}
|
|
1560
|
+
/**
|
|
1561
|
+
* Request to set or clear an app's monthly spend limit.
|
|
1562
|
+
*
|
|
1563
|
+
* @generated from message transcodely.v1.UpdateSpendLimitRequest
|
|
1564
|
+
*/
|
|
1565
|
+
declare class UpdateSpendLimitRequest extends Message<UpdateSpendLimitRequest> {
|
|
1566
|
+
/**
|
|
1567
|
+
* App ID.
|
|
1568
|
+
*
|
|
1569
|
+
* @generated from field: string app_id = 1;
|
|
1570
|
+
*/
|
|
1571
|
+
appId: string;
|
|
1572
|
+
/**
|
|
1573
|
+
* Monthly spend limit in EUR. When present, sets the cap (must be > 0). When
|
|
1574
|
+
* ABSENT, the cap is cleared and the app returns to unlimited (the default).
|
|
1575
|
+
* The upper bound matches the NUMERIC(12,2) storage column.
|
|
1576
|
+
*
|
|
1577
|
+
* @generated from field: optional double monthly_spend_limit_eur = 2;
|
|
1578
|
+
*/
|
|
1579
|
+
monthlySpendLimitEur?: number;
|
|
1580
|
+
constructor(data?: PartialMessage<UpdateSpendLimitRequest>);
|
|
1581
|
+
static readonly runtime: typeof proto3;
|
|
1582
|
+
static readonly typeName = "transcodely.v1.UpdateSpendLimitRequest";
|
|
1583
|
+
static readonly fields: FieldList;
|
|
1584
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateSpendLimitRequest;
|
|
1585
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateSpendLimitRequest;
|
|
1586
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateSpendLimitRequest;
|
|
1587
|
+
static equals(a: UpdateSpendLimitRequest | PlainMessage<UpdateSpendLimitRequest> | undefined, b: UpdateSpendLimitRequest | PlainMessage<UpdateSpendLimitRequest> | undefined): boolean;
|
|
1588
|
+
}
|
|
1589
|
+
/**
|
|
1590
|
+
* Response from updating a spend limit.
|
|
1591
|
+
*
|
|
1592
|
+
* @generated from message transcodely.v1.UpdateSpendLimitResponse
|
|
1593
|
+
*/
|
|
1594
|
+
declare class UpdateSpendLimitResponse extends Message<UpdateSpendLimitResponse> {
|
|
1595
|
+
/**
|
|
1596
|
+
* The updated app (monthly_spend_limit_eur reflects the new value, or is
|
|
1597
|
+
* unset when the limit was cleared).
|
|
1598
|
+
*
|
|
1599
|
+
* @generated from field: transcodely.v1.App app = 1;
|
|
1600
|
+
*/
|
|
1601
|
+
app?: App;
|
|
1602
|
+
constructor(data?: PartialMessage<UpdateSpendLimitResponse>);
|
|
1603
|
+
static readonly runtime: typeof proto3;
|
|
1604
|
+
static readonly typeName = "transcodely.v1.UpdateSpendLimitResponse";
|
|
1605
|
+
static readonly fields: FieldList;
|
|
1606
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateSpendLimitResponse;
|
|
1607
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateSpendLimitResponse;
|
|
1608
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateSpendLimitResponse;
|
|
1609
|
+
static equals(a: UpdateSpendLimitResponse | PlainMessage<UpdateSpendLimitResponse> | undefined, b: UpdateSpendLimitResponse | PlainMessage<UpdateSpendLimitResponse> | undefined): boolean;
|
|
1610
|
+
}
|
|
1611
|
+
/**
|
|
1612
|
+
* Request to read an app's current-period transcoding spend.
|
|
1613
|
+
*
|
|
1614
|
+
* @generated from message transcodely.v1.GetSpendRequest
|
|
1615
|
+
*/
|
|
1616
|
+
declare class GetSpendRequest extends Message<GetSpendRequest> {
|
|
1617
|
+
/**
|
|
1618
|
+
* App ID.
|
|
1619
|
+
*
|
|
1620
|
+
* @generated from field: string app_id = 1;
|
|
1621
|
+
*/
|
|
1622
|
+
appId: string;
|
|
1623
|
+
constructor(data?: PartialMessage<GetSpendRequest>);
|
|
1624
|
+
static readonly runtime: typeof proto3;
|
|
1625
|
+
static readonly typeName = "transcodely.v1.GetSpendRequest";
|
|
1626
|
+
static readonly fields: FieldList;
|
|
1627
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetSpendRequest;
|
|
1628
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetSpendRequest;
|
|
1629
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetSpendRequest;
|
|
1630
|
+
static equals(a: GetSpendRequest | PlainMessage<GetSpendRequest> | undefined, b: GetSpendRequest | PlainMessage<GetSpendRequest> | undefined): boolean;
|
|
1631
|
+
}
|
|
1632
|
+
/**
|
|
1633
|
+
* Response with an app's current-period transcoding spend.
|
|
1634
|
+
*
|
|
1635
|
+
* Spend is the sum of billed charges for terminal jobs plus recorded estimates
|
|
1636
|
+
* for in-flight jobs, and includes the per-job minimum charge where applied.
|
|
1637
|
+
* Jobs are attributed to the period by their creation time. All amounts are in
|
|
1638
|
+
* EUR.
|
|
1639
|
+
*
|
|
1640
|
+
* @generated from message transcodely.v1.GetSpendResponse
|
|
1641
|
+
*/
|
|
1642
|
+
declare class GetSpendResponse extends Message<GetSpendResponse> {
|
|
1643
|
+
/**
|
|
1644
|
+
* Start of the current billing period (inclusive), UTC.
|
|
1645
|
+
*
|
|
1646
|
+
* @generated from field: google.protobuf.Timestamp period_start = 1;
|
|
1647
|
+
*/
|
|
1648
|
+
periodStart?: Timestamp;
|
|
1649
|
+
/**
|
|
1650
|
+
* End of the current billing period (exclusive), UTC.
|
|
1651
|
+
*
|
|
1652
|
+
* @generated from field: google.protobuf.Timestamp period_end = 2;
|
|
1653
|
+
*/
|
|
1654
|
+
periodEnd?: Timestamp;
|
|
1655
|
+
/**
|
|
1656
|
+
* Transcoding spend recorded so far this period, in EUR.
|
|
1657
|
+
*
|
|
1658
|
+
* @generated from field: double spent_eur = 3;
|
|
1659
|
+
*/
|
|
1660
|
+
spentEur: number;
|
|
1661
|
+
/**
|
|
1662
|
+
* The app's monthly spend limit in EUR. Unset = unlimited.
|
|
1663
|
+
*
|
|
1664
|
+
* @generated from field: optional double monthly_spend_limit_eur = 4;
|
|
1665
|
+
*/
|
|
1666
|
+
monthlySpendLimitEur?: number;
|
|
1667
|
+
/**
|
|
1668
|
+
* Currency of all amounts in this response. Always "EUR".
|
|
1669
|
+
*
|
|
1670
|
+
* @generated from field: string currency = 5;
|
|
1671
|
+
*/
|
|
1672
|
+
currency: string;
|
|
1673
|
+
/**
|
|
1674
|
+
* True once the 80% warning event (`app.spend_limit_warning`) has fired this
|
|
1675
|
+
* period. Fire-once per period; not re-armed by a mid-period limit change.
|
|
1676
|
+
*
|
|
1677
|
+
* @generated from field: bool warning_triggered = 6;
|
|
1678
|
+
*/
|
|
1679
|
+
warningTriggered: boolean;
|
|
1680
|
+
/**
|
|
1681
|
+
* True once the breach event (`app.spend_limit_exceeded`) has fired this
|
|
1682
|
+
* period. Fire-once per period; not re-armed by a mid-period limit change.
|
|
1683
|
+
*
|
|
1684
|
+
* @generated from field: bool limit_reached = 7;
|
|
1685
|
+
*/
|
|
1686
|
+
limitReached: boolean;
|
|
1687
|
+
constructor(data?: PartialMessage<GetSpendResponse>);
|
|
1688
|
+
static readonly runtime: typeof proto3;
|
|
1689
|
+
static readonly typeName = "transcodely.v1.GetSpendResponse";
|
|
1690
|
+
static readonly fields: FieldList;
|
|
1691
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetSpendResponse;
|
|
1692
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetSpendResponse;
|
|
1693
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetSpendResponse;
|
|
1694
|
+
static equals(a: GetSpendResponse | PlainMessage<GetSpendResponse> | undefined, b: GetSpendResponse | PlainMessage<GetSpendResponse> | undefined): boolean;
|
|
1695
|
+
}
|
|
1517
1696
|
|
|
1518
1697
|
declare class Apps {
|
|
1519
1698
|
private readonly transport;
|
|
@@ -1525,6 +1704,466 @@ declare class Apps {
|
|
|
1525
1704
|
archive(id: string, opts?: CallOptions): Promise<App>;
|
|
1526
1705
|
enableHosting(req: PartialMessage<EnableHostingRequest>, opts?: CallOptions): Promise<EnableHostingResponse>;
|
|
1527
1706
|
updateHostingConfig(req: PartialMessage<UpdateHostingConfigRequest>, opts?: CallOptions): Promise<UpdateHostingConfigResponse>;
|
|
1707
|
+
/**
|
|
1708
|
+
* Set or clear an app's monthly transcoding spend cap. Provide
|
|
1709
|
+
* `monthlySpendLimitEur` (must be > 0) to set the cap; omit it to clear the
|
|
1710
|
+
* cap and return the app to unlimited. {@link setSpendLimit} and
|
|
1711
|
+
* {@link clearSpendLimit} are the ergonomic shorthands.
|
|
1712
|
+
*/
|
|
1713
|
+
updateSpendLimit(req: PartialMessage<UpdateSpendLimitRequest>, opts?: CallOptions): Promise<App>;
|
|
1714
|
+
/**
|
|
1715
|
+
* Set the app's monthly transcoding spend cap in EUR (must be > 0). Once
|
|
1716
|
+
* recorded spend for the current billing period reaches the cap, new jobs are
|
|
1717
|
+
* rejected with the `limit_exceeded` error code; in-flight jobs are never
|
|
1718
|
+
* stopped. Use {@link clearSpendLimit} to return the app to unlimited.
|
|
1719
|
+
*/
|
|
1720
|
+
setSpendLimit(id: string, monthlySpendLimitEur: number, opts?: CallOptions): Promise<App>;
|
|
1721
|
+
/**
|
|
1722
|
+
* Clear the app's monthly spend cap, returning it to unlimited (the default).
|
|
1723
|
+
* Omitting the optional limit field tells the server to clear any existing cap.
|
|
1724
|
+
*/
|
|
1725
|
+
clearSpendLimit(id: string, opts?: CallOptions): Promise<App>;
|
|
1726
|
+
/**
|
|
1727
|
+
* Get the app's current-period transcoding spend against its limit: the
|
|
1728
|
+
* billing-period bounds, EUR spent so far, the cap (if set), and whether the
|
|
1729
|
+
* 80% warning and 100% breach events have fired this period.
|
|
1730
|
+
*/
|
|
1731
|
+
getSpend(id: string, opts?: CallOptions): Promise<GetSpendResponse>;
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
/**
|
|
1735
|
+
* Invoice lifecycle.
|
|
1736
|
+
*
|
|
1737
|
+
* draft -> open -> paid | void | uncollectible. Only "open" and later states
|
|
1738
|
+
* are ever returned by ListInvoices; "draft" appears only on the upcoming
|
|
1739
|
+
* invoice.
|
|
1740
|
+
*
|
|
1741
|
+
* @generated from enum transcodely.v1.InvoiceStatus
|
|
1742
|
+
*/
|
|
1743
|
+
declare enum InvoiceStatus {
|
|
1744
|
+
/**
|
|
1745
|
+
* @generated from enum value: INVOICE_STATUS_UNSPECIFIED = 0;
|
|
1746
|
+
*/
|
|
1747
|
+
UNSPECIFIED = 0,
|
|
1748
|
+
/**
|
|
1749
|
+
* Being generated, or the live upcoming statement. Not a bill yet.
|
|
1750
|
+
*
|
|
1751
|
+
* @generated from enum value: INVOICE_STATUS_DRAFT = 1;
|
|
1752
|
+
*/
|
|
1753
|
+
DRAFT = 1,
|
|
1754
|
+
/**
|
|
1755
|
+
* Finalized and awaiting payment.
|
|
1756
|
+
*
|
|
1757
|
+
* @generated from enum value: INVOICE_STATUS_OPEN = 2;
|
|
1758
|
+
*/
|
|
1759
|
+
OPEN = 2,
|
|
1760
|
+
/**
|
|
1761
|
+
* Paid in full.
|
|
1762
|
+
*
|
|
1763
|
+
* @generated from enum value: INVOICE_STATUS_PAID = 3;
|
|
1764
|
+
*/
|
|
1765
|
+
PAID = 3,
|
|
1766
|
+
/**
|
|
1767
|
+
* Canceled without payment; nothing is owed.
|
|
1768
|
+
*
|
|
1769
|
+
* @generated from enum value: INVOICE_STATUS_VOID = 4;
|
|
1770
|
+
*/
|
|
1771
|
+
VOID = 4,
|
|
1772
|
+
/**
|
|
1773
|
+
* Written off as unpayable after collection attempts failed.
|
|
1774
|
+
*
|
|
1775
|
+
* @generated from enum value: INVOICE_STATUS_UNCOLLECTIBLE = 5;
|
|
1776
|
+
*/
|
|
1777
|
+
UNCOLLECTIBLE = 5
|
|
1778
|
+
}
|
|
1779
|
+
/**
|
|
1780
|
+
* What an invoice line represents.
|
|
1781
|
+
*
|
|
1782
|
+
* @generated from enum transcodely.v1.InvoiceLineType
|
|
1783
|
+
*/
|
|
1784
|
+
declare enum InvoiceLineType {
|
|
1785
|
+
/**
|
|
1786
|
+
* @generated from enum value: INVOICE_LINE_TYPE_UNSPECIFIED = 0;
|
|
1787
|
+
*/
|
|
1788
|
+
UNSPECIFIED = 0,
|
|
1789
|
+
/**
|
|
1790
|
+
* Encoding work, grouped by app, codec, resolution and quality tier.
|
|
1791
|
+
*
|
|
1792
|
+
* @generated from enum value: INVOICE_LINE_TYPE_USAGE = 1;
|
|
1793
|
+
*/
|
|
1794
|
+
USAGE = 1,
|
|
1795
|
+
/**
|
|
1796
|
+
* A metered add-on, such as AI captions.
|
|
1797
|
+
*
|
|
1798
|
+
* @generated from enum value: INVOICE_LINE_TYPE_FEE = 2;
|
|
1799
|
+
*/
|
|
1800
|
+
FEE = 2,
|
|
1801
|
+
/**
|
|
1802
|
+
* The per-job minimum charge, summed over the jobs it applied to.
|
|
1803
|
+
*
|
|
1804
|
+
* @generated from enum value: INVOICE_LINE_TYPE_MIN_CHARGE = 3;
|
|
1805
|
+
*/
|
|
1806
|
+
MIN_CHARGE = 3,
|
|
1807
|
+
/**
|
|
1808
|
+
* The residue that reconciles the itemized lines with the amount charged.
|
|
1809
|
+
* Per-line rounding cannot always add up to the sum of per-job rounding; this
|
|
1810
|
+
* line carries the difference so the breakdown always matches the total.
|
|
1811
|
+
*
|
|
1812
|
+
* @generated from enum value: INVOICE_LINE_TYPE_ADJUSTMENT = 4;
|
|
1813
|
+
*/
|
|
1814
|
+
ADJUSTMENT = 4
|
|
1815
|
+
}
|
|
1816
|
+
/**
|
|
1817
|
+
* A billing statement for one period.
|
|
1818
|
+
*
|
|
1819
|
+
* All monetary amounts are integer minor units (cents) of the invoice's
|
|
1820
|
+
* currency — 1250 in EUR is €12.50. Following the protobuf JSON mapping for
|
|
1821
|
+
* 64-bit integers, they are rendered as JSON strings ("1250"), not numbers.
|
|
1822
|
+
*
|
|
1823
|
+
* @generated from message transcodely.v1.Invoice
|
|
1824
|
+
*/
|
|
1825
|
+
declare class Invoice extends Message<Invoice> {
|
|
1826
|
+
/**
|
|
1827
|
+
* Unique identifier (e.g., "inv_a1b2c3d4e5f6").
|
|
1828
|
+
* Empty on the upcoming invoice, which is computed and not yet stored.
|
|
1829
|
+
*
|
|
1830
|
+
* @generated from field: string id = 1;
|
|
1831
|
+
*/
|
|
1832
|
+
id: string;
|
|
1833
|
+
/**
|
|
1834
|
+
* Object type, always "invoice".
|
|
1835
|
+
*
|
|
1836
|
+
* @generated from field: string object = 2;
|
|
1837
|
+
*/
|
|
1838
|
+
object: string;
|
|
1839
|
+
/**
|
|
1840
|
+
* Organization this statement bills.
|
|
1841
|
+
*
|
|
1842
|
+
* @generated from field: string org_id = 3;
|
|
1843
|
+
*/
|
|
1844
|
+
orgId: string;
|
|
1845
|
+
/**
|
|
1846
|
+
* Lifecycle state. The upcoming invoice reports "draft".
|
|
1847
|
+
*
|
|
1848
|
+
* @generated from field: transcodely.v1.InvoiceStatus status = 4;
|
|
1849
|
+
*/
|
|
1850
|
+
status: InvoiceStatus;
|
|
1851
|
+
/**
|
|
1852
|
+
* Start of the billing period (inclusive).
|
|
1853
|
+
*
|
|
1854
|
+
* @generated from field: google.protobuf.Timestamp period_start = 5;
|
|
1855
|
+
*/
|
|
1856
|
+
periodStart?: Timestamp;
|
|
1857
|
+
/**
|
|
1858
|
+
* End of the billing period (exclusive). A job that settles at or after this
|
|
1859
|
+
* instant belongs to the next period, even if it started before it.
|
|
1860
|
+
*
|
|
1861
|
+
* @generated from field: google.protobuf.Timestamp period_end = 6;
|
|
1862
|
+
*/
|
|
1863
|
+
periodEnd?: Timestamp;
|
|
1864
|
+
/**
|
|
1865
|
+
* ISO 4217 currency code. Always "EUR" today.
|
|
1866
|
+
*
|
|
1867
|
+
* @generated from field: string currency = 7;
|
|
1868
|
+
*/
|
|
1869
|
+
currency: string;
|
|
1870
|
+
/**
|
|
1871
|
+
* Sum of the itemized lines, excluding the rounding adjustment, in cents.
|
|
1872
|
+
*
|
|
1873
|
+
* @generated from field: int64 subtotal_cents = 8;
|
|
1874
|
+
*/
|
|
1875
|
+
subtotalCents: bigint;
|
|
1876
|
+
/**
|
|
1877
|
+
* Amount charged, in cents. Equals the sum of every line item including the
|
|
1878
|
+
* rounding adjustment, and equals the sum of the settled jobs it covers.
|
|
1879
|
+
*
|
|
1880
|
+
* @generated from field: int64 total_cents = 9;
|
|
1881
|
+
*/
|
|
1882
|
+
totalCents: bigint;
|
|
1883
|
+
/**
|
|
1884
|
+
* The payment provider's invoice number, once the statement has been matched
|
|
1885
|
+
* to the provider's own record. Absent until then; its absence never means
|
|
1886
|
+
* unpaid.
|
|
1887
|
+
*
|
|
1888
|
+
* @generated from field: optional string provider_invoice_number = 10;
|
|
1889
|
+
*/
|
|
1890
|
+
providerInvoiceNumber?: string;
|
|
1891
|
+
/**
|
|
1892
|
+
* When the statement was finalized and became visible. Absent on the
|
|
1893
|
+
* upcoming invoice.
|
|
1894
|
+
*
|
|
1895
|
+
* @generated from field: google.protobuf.Timestamp finalized_at = 11;
|
|
1896
|
+
*/
|
|
1897
|
+
finalizedAt?: Timestamp;
|
|
1898
|
+
/**
|
|
1899
|
+
* When payment was received. Absent unless status is "paid".
|
|
1900
|
+
*
|
|
1901
|
+
* @generated from field: google.protobuf.Timestamp paid_at = 12;
|
|
1902
|
+
*/
|
|
1903
|
+
paidAt?: Timestamp;
|
|
1904
|
+
/**
|
|
1905
|
+
* The itemized breakdown, in display order.
|
|
1906
|
+
*
|
|
1907
|
+
* @generated from field: repeated transcodely.v1.InvoiceLineItem line_items = 13;
|
|
1908
|
+
*/
|
|
1909
|
+
lineItems: InvoiceLineItem[];
|
|
1910
|
+
/**
|
|
1911
|
+
* When the statement row was created.
|
|
1912
|
+
*
|
|
1913
|
+
* @generated from field: google.protobuf.Timestamp created_at = 14;
|
|
1914
|
+
*/
|
|
1915
|
+
createdAt?: Timestamp;
|
|
1916
|
+
constructor(data?: PartialMessage<Invoice>);
|
|
1917
|
+
static readonly runtime: typeof proto3;
|
|
1918
|
+
static readonly typeName = "transcodely.v1.Invoice";
|
|
1919
|
+
static readonly fields: FieldList;
|
|
1920
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Invoice;
|
|
1921
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Invoice;
|
|
1922
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Invoice;
|
|
1923
|
+
static equals(a: Invoice | PlainMessage<Invoice> | undefined, b: Invoice | PlainMessage<Invoice> | undefined): boolean;
|
|
1924
|
+
}
|
|
1925
|
+
/**
|
|
1926
|
+
* One line of an invoice's breakdown.
|
|
1927
|
+
*
|
|
1928
|
+
* Line items explain the total; they do not compute it. They are regenerated
|
|
1929
|
+
* wholesale whenever a statement is rebuilt before finalization, so a line item
|
|
1930
|
+
* id is not stable until the invoice is finalized.
|
|
1931
|
+
*
|
|
1932
|
+
* @generated from message transcodely.v1.InvoiceLineItem
|
|
1933
|
+
*/
|
|
1934
|
+
declare class InvoiceLineItem extends Message<InvoiceLineItem> {
|
|
1935
|
+
/**
|
|
1936
|
+
* Unique identifier (e.g., "li_a1b2c3d4e5f6g7"). Empty on the upcoming
|
|
1937
|
+
* invoice, whose lines are computed rather than stored.
|
|
1938
|
+
*
|
|
1939
|
+
* @generated from field: string id = 1;
|
|
1940
|
+
*/
|
|
1941
|
+
id: string;
|
|
1942
|
+
/**
|
|
1943
|
+
* What kind of charge this line represents.
|
|
1944
|
+
*
|
|
1945
|
+
* @generated from field: transcodely.v1.InvoiceLineType line_type = 2;
|
|
1946
|
+
*/
|
|
1947
|
+
lineType: InvoiceLineType;
|
|
1948
|
+
/**
|
|
1949
|
+
* Human-readable description, e.g. "Encoding — h264 1080p standard".
|
|
1950
|
+
*
|
|
1951
|
+
* @generated from field: string description = 3;
|
|
1952
|
+
*/
|
|
1953
|
+
description: string;
|
|
1954
|
+
/**
|
|
1955
|
+
* How many units the line covers (e.g. 12 outputs). Absent for lines that
|
|
1956
|
+
* are not metered, such as the rounding adjustment.
|
|
1957
|
+
*
|
|
1958
|
+
* @generated from field: optional double quantity = 4;
|
|
1959
|
+
*/
|
|
1960
|
+
quantity?: number;
|
|
1961
|
+
/**
|
|
1962
|
+
* Unit that quantity is counted in, e.g. "output" or "minute".
|
|
1963
|
+
*
|
|
1964
|
+
* @generated from field: string unit = 5;
|
|
1965
|
+
*/
|
|
1966
|
+
unit: string;
|
|
1967
|
+
/**
|
|
1968
|
+
* Amount for this line, in cents. Signed: the rounding adjustment is
|
|
1969
|
+
* routinely negative.
|
|
1970
|
+
*
|
|
1971
|
+
* @generated from field: int64 amount_cents = 6;
|
|
1972
|
+
*/
|
|
1973
|
+
amountCents: bigint;
|
|
1974
|
+
/**
|
|
1975
|
+
* The grouping key that produced this line, e.g.
|
|
1976
|
+
* {"app_id": "app_k1l2m3n4o5", "codec": "h264", "resolution": "1080p"}.
|
|
1977
|
+
* Keys vary by line_type and new ones may be added.
|
|
1978
|
+
*
|
|
1979
|
+
* @generated from field: map<string, string> dimensions = 7;
|
|
1980
|
+
*/
|
|
1981
|
+
dimensions: {
|
|
1982
|
+
[key: string]: string;
|
|
1983
|
+
};
|
|
1984
|
+
constructor(data?: PartialMessage<InvoiceLineItem>);
|
|
1985
|
+
static readonly runtime: typeof proto3;
|
|
1986
|
+
static readonly typeName = "transcodely.v1.InvoiceLineItem";
|
|
1987
|
+
static readonly fields: FieldList;
|
|
1988
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): InvoiceLineItem;
|
|
1989
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): InvoiceLineItem;
|
|
1990
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): InvoiceLineItem;
|
|
1991
|
+
static equals(a: InvoiceLineItem | PlainMessage<InvoiceLineItem> | undefined, b: InvoiceLineItem | PlainMessage<InvoiceLineItem> | undefined): boolean;
|
|
1992
|
+
}
|
|
1993
|
+
/**
|
|
1994
|
+
* Request to list the organization's invoices.
|
|
1995
|
+
*
|
|
1996
|
+
* @generated from message transcodely.v1.ListInvoicesRequest
|
|
1997
|
+
*/
|
|
1998
|
+
declare class ListInvoicesRequest extends Message<ListInvoicesRequest> {
|
|
1999
|
+
/**
|
|
2000
|
+
* Pagination parameters.
|
|
2001
|
+
*
|
|
2002
|
+
* @generated from field: transcodely.v1.PaginationRequest pagination = 1;
|
|
2003
|
+
*/
|
|
2004
|
+
pagination?: PaginationRequest;
|
|
2005
|
+
constructor(data?: PartialMessage<ListInvoicesRequest>);
|
|
2006
|
+
static readonly runtime: typeof proto3;
|
|
2007
|
+
static readonly typeName = "transcodely.v1.ListInvoicesRequest";
|
|
2008
|
+
static readonly fields: FieldList;
|
|
2009
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListInvoicesRequest;
|
|
2010
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListInvoicesRequest;
|
|
2011
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListInvoicesRequest;
|
|
2012
|
+
static equals(a: ListInvoicesRequest | PlainMessage<ListInvoicesRequest> | undefined, b: ListInvoicesRequest | PlainMessage<ListInvoicesRequest> | undefined): boolean;
|
|
2013
|
+
}
|
|
2014
|
+
/**
|
|
2015
|
+
* Response from listing invoices.
|
|
2016
|
+
*
|
|
2017
|
+
* @generated from message transcodely.v1.ListInvoicesResponse
|
|
2018
|
+
*/
|
|
2019
|
+
declare class ListInvoicesResponse extends Message<ListInvoicesResponse> {
|
|
2020
|
+
/**
|
|
2021
|
+
* Invoices, newest period first. Line items are omitted here; fetch a single
|
|
2022
|
+
* invoice to get them.
|
|
2023
|
+
*
|
|
2024
|
+
* @generated from field: repeated transcodely.v1.Invoice invoices = 1;
|
|
2025
|
+
*/
|
|
2026
|
+
invoices: Invoice[];
|
|
2027
|
+
/**
|
|
2028
|
+
* Pagination metadata.
|
|
2029
|
+
*
|
|
2030
|
+
* @generated from field: transcodely.v1.PaginationResponse pagination = 2;
|
|
2031
|
+
*/
|
|
2032
|
+
pagination?: PaginationResponse;
|
|
2033
|
+
constructor(data?: PartialMessage<ListInvoicesResponse>);
|
|
2034
|
+
static readonly runtime: typeof proto3;
|
|
2035
|
+
static readonly typeName = "transcodely.v1.ListInvoicesResponse";
|
|
2036
|
+
static readonly fields: FieldList;
|
|
2037
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListInvoicesResponse;
|
|
2038
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListInvoicesResponse;
|
|
2039
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListInvoicesResponse;
|
|
2040
|
+
static equals(a: ListInvoicesResponse | PlainMessage<ListInvoicesResponse> | undefined, b: ListInvoicesResponse | PlainMessage<ListInvoicesResponse> | undefined): boolean;
|
|
2041
|
+
}
|
|
2042
|
+
/**
|
|
2043
|
+
* Request to retrieve one invoice.
|
|
2044
|
+
*
|
|
2045
|
+
* @generated from message transcodely.v1.GetInvoiceRequest
|
|
2046
|
+
*/
|
|
2047
|
+
declare class GetInvoiceRequest extends Message<GetInvoiceRequest> {
|
|
2048
|
+
/**
|
|
2049
|
+
* Invoice ID (e.g., "inv_a1b2c3d4e5f6").
|
|
2050
|
+
*
|
|
2051
|
+
* @generated from field: string id = 1;
|
|
2052
|
+
*/
|
|
2053
|
+
id: string;
|
|
2054
|
+
constructor(data?: PartialMessage<GetInvoiceRequest>);
|
|
2055
|
+
static readonly runtime: typeof proto3;
|
|
2056
|
+
static readonly typeName = "transcodely.v1.GetInvoiceRequest";
|
|
2057
|
+
static readonly fields: FieldList;
|
|
2058
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetInvoiceRequest;
|
|
2059
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetInvoiceRequest;
|
|
2060
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetInvoiceRequest;
|
|
2061
|
+
static equals(a: GetInvoiceRequest | PlainMessage<GetInvoiceRequest> | undefined, b: GetInvoiceRequest | PlainMessage<GetInvoiceRequest> | undefined): boolean;
|
|
2062
|
+
}
|
|
2063
|
+
/**
|
|
2064
|
+
* Response from retrieving an invoice.
|
|
2065
|
+
*
|
|
2066
|
+
* @generated from message transcodely.v1.GetInvoiceResponse
|
|
2067
|
+
*/
|
|
2068
|
+
declare class GetInvoiceResponse extends Message<GetInvoiceResponse> {
|
|
2069
|
+
/**
|
|
2070
|
+
* The requested invoice, with its line items.
|
|
2071
|
+
*
|
|
2072
|
+
* @generated from field: transcodely.v1.Invoice invoice = 1;
|
|
2073
|
+
*/
|
|
2074
|
+
invoice?: Invoice;
|
|
2075
|
+
constructor(data?: PartialMessage<GetInvoiceResponse>);
|
|
2076
|
+
static readonly runtime: typeof proto3;
|
|
2077
|
+
static readonly typeName = "transcodely.v1.GetInvoiceResponse";
|
|
2078
|
+
static readonly fields: FieldList;
|
|
2079
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetInvoiceResponse;
|
|
2080
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetInvoiceResponse;
|
|
2081
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetInvoiceResponse;
|
|
2082
|
+
static equals(a: GetInvoiceResponse | PlainMessage<GetInvoiceResponse> | undefined, b: GetInvoiceResponse | PlainMessage<GetInvoiceResponse> | undefined): boolean;
|
|
2083
|
+
}
|
|
2084
|
+
/**
|
|
2085
|
+
* Request to retrieve the statement for the period currently accruing.
|
|
2086
|
+
*
|
|
2087
|
+
* @generated from message transcodely.v1.GetUpcomingInvoiceRequest
|
|
2088
|
+
*/
|
|
2089
|
+
declare class GetUpcomingInvoiceRequest extends Message<GetUpcomingInvoiceRequest> {
|
|
2090
|
+
constructor(data?: PartialMessage<GetUpcomingInvoiceRequest>);
|
|
2091
|
+
static readonly runtime: typeof proto3;
|
|
2092
|
+
static readonly typeName = "transcodely.v1.GetUpcomingInvoiceRequest";
|
|
2093
|
+
static readonly fields: FieldList;
|
|
2094
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUpcomingInvoiceRequest;
|
|
2095
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUpcomingInvoiceRequest;
|
|
2096
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUpcomingInvoiceRequest;
|
|
2097
|
+
static equals(a: GetUpcomingInvoiceRequest | PlainMessage<GetUpcomingInvoiceRequest> | undefined, b: GetUpcomingInvoiceRequest | PlainMessage<GetUpcomingInvoiceRequest> | undefined): boolean;
|
|
2098
|
+
}
|
|
2099
|
+
/**
|
|
2100
|
+
* Response carrying the upcoming statement.
|
|
2101
|
+
*
|
|
2102
|
+
* @generated from message transcodely.v1.GetUpcomingInvoiceResponse
|
|
2103
|
+
*/
|
|
2104
|
+
declare class GetUpcomingInvoiceResponse extends Message<GetUpcomingInvoiceResponse> {
|
|
2105
|
+
/**
|
|
2106
|
+
* The computed statement. Its id is empty and its status is "draft". Totals
|
|
2107
|
+
* are zero when nothing has been billed in the period yet.
|
|
2108
|
+
*
|
|
2109
|
+
* @generated from field: transcodely.v1.Invoice invoice = 1;
|
|
2110
|
+
*/
|
|
2111
|
+
invoice?: Invoice;
|
|
2112
|
+
constructor(data?: PartialMessage<GetUpcomingInvoiceResponse>);
|
|
2113
|
+
static readonly runtime: typeof proto3;
|
|
2114
|
+
static readonly typeName = "transcodely.v1.GetUpcomingInvoiceResponse";
|
|
2115
|
+
static readonly fields: FieldList;
|
|
2116
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUpcomingInvoiceResponse;
|
|
2117
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUpcomingInvoiceResponse;
|
|
2118
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUpcomingInvoiceResponse;
|
|
2119
|
+
static equals(a: GetUpcomingInvoiceResponse | PlainMessage<GetUpcomingInvoiceResponse> | undefined, b: GetUpcomingInvoiceResponse | PlainMessage<GetUpcomingInvoiceResponse> | undefined): boolean;
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
/**
|
|
2123
|
+
* An organization's billing statements — read-only.
|
|
2124
|
+
*
|
|
2125
|
+
* Unlike every other namespace, billing settles a whole organization rather
|
|
2126
|
+
* than a single app, so it is **not** available to API-key callers: a key is
|
|
2127
|
+
* scoped to one app, and there is no app-scoped subset of an invoice worth
|
|
2128
|
+
* serving. An API key gets a `PermissionError`.
|
|
2129
|
+
*
|
|
2130
|
+
* Reading invoices needs a dashboard session token for an organization
|
|
2131
|
+
* **owner**, plus the organization the request is for:
|
|
2132
|
+
*
|
|
2133
|
+
* ```ts
|
|
2134
|
+
* const client = new Transcodely({
|
|
2135
|
+
* apiKey: sessionToken,
|
|
2136
|
+
* organizationId: "org_f6g7h8i9j0",
|
|
2137
|
+
* });
|
|
2138
|
+
* const upcoming = await client.billing.retrieveUpcoming();
|
|
2139
|
+
* ```
|
|
2140
|
+
*
|
|
2141
|
+
* Invoices are generated automatically when a period closes. There is no API to
|
|
2142
|
+
* create, edit, or delete one — a statement records what happened.
|
|
2143
|
+
*/
|
|
2144
|
+
declare class Billing {
|
|
2145
|
+
private readonly transport;
|
|
2146
|
+
constructor(transport: Transport);
|
|
2147
|
+
/**
|
|
2148
|
+
* Page through the organization's finalized invoices, newest period first.
|
|
2149
|
+
*
|
|
2150
|
+
* Line items are omitted here; use {@link retrieve} for one invoice's
|
|
2151
|
+
* breakdown. A statement still being generated for a just-ended period is
|
|
2152
|
+
* never returned — for the period currently accruing use
|
|
2153
|
+
* {@link retrieveUpcoming}.
|
|
2154
|
+
*/
|
|
2155
|
+
listInvoices(req?: PartialMessage<ListInvoicesRequest>, opts?: CallOptions): Page<Invoice>;
|
|
2156
|
+
/** Retrieve one invoice by ID (`inv_*`), including its line items. */
|
|
2157
|
+
retrieve(id: string, opts?: CallOptions): Promise<Invoice>;
|
|
2158
|
+
/**
|
|
2159
|
+
* Retrieve the statement for the period currently accruing.
|
|
2160
|
+
*
|
|
2161
|
+
* Computed live from settled jobs rather than stored, so its `id` is empty,
|
|
2162
|
+
* its status is `draft`, and its totals move as jobs finish. Jobs still
|
|
2163
|
+
* running are not included at any price — a job is billed only once it
|
|
2164
|
+
* settles.
|
|
2165
|
+
*/
|
|
2166
|
+
retrieveUpcoming(opts?: CallOptions): Promise<Invoice>;
|
|
1528
2167
|
}
|
|
1529
2168
|
|
|
1530
2169
|
/**
|
|
@@ -1560,10 +2199,13 @@ declare class WebhookEndpoint extends Message<WebhookEndpoint> {
|
|
|
1560
2199
|
/**
|
|
1561
2200
|
* Event types this endpoint subscribes to.
|
|
1562
2201
|
* Use "*" to subscribe to all event types.
|
|
1563
|
-
* Possible values: "job.created", "job.
|
|
1564
|
-
* "job.
|
|
1565
|
-
* "output.
|
|
1566
|
-
* "video.
|
|
2202
|
+
* Possible values: "job.created", "job.succeeded", "job.failed",
|
|
2203
|
+
* "job.canceled", "job.progress", "output.created", "output.ready",
|
|
2204
|
+
* "output.failed", "output.progress", "video.uploaded", "video.ready",
|
|
2205
|
+
* "video.failed", "video.deleted", "video.source_scheduled_for_deletion",
|
|
2206
|
+
* "app.created", "app.updated", "app.spend_limit_warning",
|
|
2207
|
+
* "app.spend_limit_exceeded", or "*".
|
|
2208
|
+
* Keep in sync with domain.WebhookEventTypes() ("job.updated" does not exist).
|
|
1567
2209
|
*
|
|
1568
2210
|
* @generated from field: repeated string enabled_events = 5;
|
|
1569
2211
|
*/
|
|
@@ -1614,8 +2256,9 @@ declare class WebhookEndpoint extends Message<WebhookEndpoint> {
|
|
|
1614
2256
|
* Reason the endpoint is in `status: "disabled"`. Absent when status is "enabled".
|
|
1615
2257
|
* One of:
|
|
1616
2258
|
* "manual" — operator paused via UpdateWebhookEndpoint
|
|
1617
|
-
* "auto_failures" — scheduler tripped after
|
|
1618
|
-
*
|
|
2259
|
+
* "auto_failures" — scheduler tripped after an opt-in sustained-failure
|
|
2260
|
+
* rule: 50+ consecutive terminal failures with zero
|
|
2261
|
+
* successes for at least 168 h (7 days)
|
|
1619
2262
|
* Wire value is lowercase per project convention.
|
|
1620
2263
|
*
|
|
1621
2264
|
* @generated from field: optional string disabled_reason = 12;
|
|
@@ -1637,6 +2280,15 @@ declare class WebhookEndpoint extends Message<WebhookEndpoint> {
|
|
|
1637
2280
|
* @generated from field: optional google.protobuf.Timestamp previous_secret_expires_at = 14;
|
|
1638
2281
|
*/
|
|
1639
2282
|
previousSecretExpiresAt?: Timestamp;
|
|
2283
|
+
/**
|
|
2284
|
+
* Compact rolling-24h delivery-health summary. Populated ONLY by
|
|
2285
|
+
* ListWebhookEndpoints when the request sets include_health=true; absent on
|
|
2286
|
+
* every other RPC and when include_health is false. Shares the
|
|
2287
|
+
* GetEndpointHealth cache, so values may be up to ~30 s stale.
|
|
2288
|
+
*
|
|
2289
|
+
* @generated from field: optional transcodely.v1.EndpointHealthSummary health = 15;
|
|
2290
|
+
*/
|
|
2291
|
+
health?: EndpointHealthSummary;
|
|
1640
2292
|
constructor(data?: PartialMessage<WebhookEndpoint>);
|
|
1641
2293
|
static readonly runtime: typeof proto3;
|
|
1642
2294
|
static readonly typeName = "transcodely.v1.WebhookEndpoint";
|
|
@@ -1646,6 +2298,44 @@ declare class WebhookEndpoint extends Message<WebhookEndpoint> {
|
|
|
1646
2298
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WebhookEndpoint;
|
|
1647
2299
|
static equals(a: WebhookEndpoint | PlainMessage<WebhookEndpoint> | undefined, b: WebhookEndpoint | PlainMessage<WebhookEndpoint> | undefined): boolean;
|
|
1648
2300
|
}
|
|
2301
|
+
/**
|
|
2302
|
+
* Compact delivery-health summary attached to a WebhookEndpoint in
|
|
2303
|
+
* ListWebhookEndpoints responses when include_health=true. A minimal
|
|
2304
|
+
* rolling-24h rollup; call GetEndpointHealth for the full bucketed series,
|
|
2305
|
+
* pending count, and latency percentiles. Values may be up to ~30 s stale.
|
|
2306
|
+
*
|
|
2307
|
+
* @generated from message transcodely.v1.EndpointHealthSummary
|
|
2308
|
+
*/
|
|
2309
|
+
declare class EndpointHealthSummary extends Message<EndpointHealthSummary> {
|
|
2310
|
+
/**
|
|
2311
|
+
* Total delivery attempts in the last 24 h.
|
|
2312
|
+
*
|
|
2313
|
+
* @generated from field: int32 total_attempts = 1;
|
|
2314
|
+
*/
|
|
2315
|
+
totalAttempts: number;
|
|
2316
|
+
/**
|
|
2317
|
+
* Failed terminal attempts in the last 24 h.
|
|
2318
|
+
*
|
|
2319
|
+
* @generated from field: int32 failed = 2;
|
|
2320
|
+
*/
|
|
2321
|
+
failed: number;
|
|
2322
|
+
/**
|
|
2323
|
+
* succeeded / (succeeded + failed) over the last 24 h; in-flight (pending)
|
|
2324
|
+
* attempts are excluded from the denominator. Zero when there were no
|
|
2325
|
+
* terminal attempts in the window.
|
|
2326
|
+
*
|
|
2327
|
+
* @generated from field: double success_rate = 3;
|
|
2328
|
+
*/
|
|
2329
|
+
successRate: number;
|
|
2330
|
+
constructor(data?: PartialMessage<EndpointHealthSummary>);
|
|
2331
|
+
static readonly runtime: typeof proto3;
|
|
2332
|
+
static readonly typeName = "transcodely.v1.EndpointHealthSummary";
|
|
2333
|
+
static readonly fields: FieldList;
|
|
2334
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): EndpointHealthSummary;
|
|
2335
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): EndpointHealthSummary;
|
|
2336
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): EndpointHealthSummary;
|
|
2337
|
+
static equals(a: EndpointHealthSummary | PlainMessage<EndpointHealthSummary> | undefined, b: EndpointHealthSummary | PlainMessage<EndpointHealthSummary> | undefined): boolean;
|
|
2338
|
+
}
|
|
1649
2339
|
/**
|
|
1650
2340
|
* An immutable record of a platform event emitted for an app.
|
|
1651
2341
|
*
|
|
@@ -2088,6 +2778,19 @@ declare class ListWebhookEndpointsRequest extends Message<ListWebhookEndpointsRe
|
|
|
2088
2778
|
* @generated from field: transcodely.v1.PaginationRequest pagination = 2;
|
|
2089
2779
|
*/
|
|
2090
2780
|
pagination?: PaginationRequest;
|
|
2781
|
+
/**
|
|
2782
|
+
* When true, populate each returned endpoint's `health` field with a compact
|
|
2783
|
+
* rolling-24h delivery summary (success_rate, total_attempts, failed),
|
|
2784
|
+
* replacing N client-side GetEndpointHealth calls with this one list call.
|
|
2785
|
+
* The summary is computed from the same server-side rollup as
|
|
2786
|
+
* GetEndpointHealth and shares its ~30 s cache, so values may be up to ~30 s
|
|
2787
|
+
* stale; on a cold cache the server still computes one rollup per listed
|
|
2788
|
+
* endpoint, so expect a slower first response on apps with many endpoints.
|
|
2789
|
+
* Defaults to false (health omitted).
|
|
2790
|
+
*
|
|
2791
|
+
* @generated from field: bool include_health = 3;
|
|
2792
|
+
*/
|
|
2793
|
+
includeHealth: boolean;
|
|
2091
2794
|
constructor(data?: PartialMessage<ListWebhookEndpointsRequest>);
|
|
2092
2795
|
static readonly runtime: typeof proto3;
|
|
2093
2796
|
static readonly typeName = "transcodely.v1.ListWebhookEndpointsRequest";
|
|
@@ -2203,6 +2906,18 @@ declare class ListEventsRequest extends Message<ListEventsRequest> {
|
|
|
2203
2906
|
* @generated from field: transcodely.v1.PaginationRequest pagination = 5;
|
|
2204
2907
|
*/
|
|
2205
2908
|
pagination?: PaginationRequest;
|
|
2909
|
+
/**
|
|
2910
|
+
* Filter to events concerning a specific resource, matched against the
|
|
2911
|
+
* resource id embedded in the event's data snapshot (data.id). Accepts any
|
|
2912
|
+
* prefixed Transcodely resource id — e.g. a job ("job_…") or a video
|
|
2913
|
+
* ("vid_…") — and returns every event whose snapshot carries that id. Lets a
|
|
2914
|
+
* dashboard resource page (e.g. a job page) load that resource's webhook
|
|
2915
|
+
* history in one call. Synthetic SendTestWebhook events are stored separately
|
|
2916
|
+
* and never match.
|
|
2917
|
+
*
|
|
2918
|
+
* @generated from field: optional string object_id = 6;
|
|
2919
|
+
*/
|
|
2920
|
+
objectId?: string;
|
|
2206
2921
|
constructor(data?: PartialMessage<ListEventsRequest>);
|
|
2207
2922
|
static readonly runtime: typeof proto3;
|
|
2208
2923
|
static readonly typeName = "transcodely.v1.ListEventsRequest";
|
|
@@ -3246,7 +3961,11 @@ declare enum HDRMode {
|
|
|
3246
3961
|
*/
|
|
3247
3962
|
HDR_MODE_PASSTHROUGH = 1,
|
|
3248
3963
|
/**
|
|
3249
|
-
* Convert HDR to SDR via tone mapping.
|
|
3964
|
+
* Convert HDR to SDR via tone mapping. Requires an HDR input: whether the
|
|
3965
|
+
* input carries HDR color signaling is only knowable once it has been
|
|
3966
|
+
* probed, so a tone-map job on an SDR source is accepted at create and then
|
|
3967
|
+
* fails at probe time with error code `input_not_hdr`, before any encode
|
|
3968
|
+
* starts.
|
|
3250
3969
|
*
|
|
3251
3970
|
* @generated from enum value: HDR_MODE_TONEMAP = 2;
|
|
3252
3971
|
*/
|
|
@@ -3609,7 +4328,14 @@ declare enum SubtitleOperation {
|
|
|
3609
4328
|
*
|
|
3610
4329
|
* @generated from enum value: SUBTITLE_OPERATION_EXTRACT = 4;
|
|
3611
4330
|
*/
|
|
3612
|
-
EXTRACT = 4
|
|
4331
|
+
EXTRACT = 4,
|
|
4332
|
+
/**
|
|
4333
|
+
* Generate captions from the audio track using automatic speech
|
|
4334
|
+
* recognition. Tracks produced this way carry auto_generated: true.
|
|
4335
|
+
*
|
|
4336
|
+
* @generated from enum value: SUBTITLE_OPERATION_GENERATE = 5;
|
|
4337
|
+
*/
|
|
4338
|
+
GENERATE = 5
|
|
3613
4339
|
}
|
|
3614
4340
|
/**
|
|
3615
4341
|
* Subtitle format.
|
|
@@ -3728,7 +4454,11 @@ declare class SubtitleTrack extends Message<SubtitleTrack> {
|
|
|
3728
4454
|
*/
|
|
3729
4455
|
outputFormat: SubtitleFormat;
|
|
3730
4456
|
/**
|
|
3731
|
-
* ISO 639-2 language code (e.g., "eng", "spa", "fra").
|
|
4457
|
+
* ISO 639-2 language code (e.g., "eng", "spa", "fra"), or "auto".
|
|
4458
|
+
* "auto" is valid only for the generate operation and selects
|
|
4459
|
+
* automatic language detection; it is the default when empty on a
|
|
4460
|
+
* generate track. The other operations require a real ISO 639-2 code
|
|
4461
|
+
* (or empty) and reject "auto".
|
|
3732
4462
|
*
|
|
3733
4463
|
* @generated from field: optional string language = 6;
|
|
3734
4464
|
*/
|
|
@@ -3763,6 +4493,19 @@ declare class SubtitleTrack extends Message<SubtitleTrack> {
|
|
|
3763
4493
|
* @generated from field: optional transcodely.v1.BurnInStyle burn_in_style = 11;
|
|
3764
4494
|
*/
|
|
3765
4495
|
burnInStyle?: BurnInStyle;
|
|
4496
|
+
/**
|
|
4497
|
+
* Generate an AI chapters track from the transcript this track produces.
|
|
4498
|
+
*
|
|
4499
|
+
* Only meaningful together with the `generate` subtitle operation: when
|
|
4500
|
+
* enabled, an AI pass over the generated transcript produces a chapters
|
|
4501
|
+
* track delivered as WebVTT plus JSON. Free — no pricing impact. The
|
|
4502
|
+
* transcript text is processed via the Anthropic API (an external
|
|
4503
|
+
* subprocessor). Caption generation is available; the auto-chapters pass is
|
|
4504
|
+
* not yet, so setting this is still rejected at job creation.
|
|
4505
|
+
*
|
|
4506
|
+
* @generated from field: optional bool generate_chapters = 12;
|
|
4507
|
+
*/
|
|
4508
|
+
generateChapters?: boolean;
|
|
3766
4509
|
constructor(data?: PartialMessage<SubtitleTrack>);
|
|
3767
4510
|
static readonly runtime: typeof proto3;
|
|
3768
4511
|
static readonly typeName = "transcodely.v1.SubtitleTrack";
|
|
@@ -3772,6 +4515,201 @@ declare class SubtitleTrack extends Message<SubtitleTrack> {
|
|
|
3772
4515
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SubtitleTrack;
|
|
3773
4516
|
static equals(a: SubtitleTrack | PlainMessage<SubtitleTrack> | undefined, b: SubtitleTrack | PlainMessage<SubtitleTrack> | undefined): boolean;
|
|
3774
4517
|
}
|
|
4518
|
+
/**
|
|
4519
|
+
* ChapterPoint is one chapter marker. Times are seconds from the start of the
|
|
4520
|
+
* video.
|
|
4521
|
+
*
|
|
4522
|
+
* @generated from message transcodely.v1.ChapterPoint
|
|
4523
|
+
*/
|
|
4524
|
+
declare class ChapterPoint extends Message<ChapterPoint> {
|
|
4525
|
+
/**
|
|
4526
|
+
* Chapter start, in seconds from the start of the video.
|
|
4527
|
+
*
|
|
4528
|
+
* @generated from field: double start_seconds = 1;
|
|
4529
|
+
*/
|
|
4530
|
+
startSeconds: number;
|
|
4531
|
+
/**
|
|
4532
|
+
* Chapter end, in seconds from the start of the video.
|
|
4533
|
+
*
|
|
4534
|
+
* @generated from field: double end_seconds = 2;
|
|
4535
|
+
*/
|
|
4536
|
+
endSeconds: number;
|
|
4537
|
+
/**
|
|
4538
|
+
* Short, human-readable chapter title, in the caption track's language.
|
|
4539
|
+
*
|
|
4540
|
+
* @generated from field: string title = 3;
|
|
4541
|
+
*/
|
|
4542
|
+
title: string;
|
|
4543
|
+
constructor(data?: PartialMessage<ChapterPoint>);
|
|
4544
|
+
static readonly runtime: typeof proto3;
|
|
4545
|
+
static readonly typeName = "transcodely.v1.ChapterPoint";
|
|
4546
|
+
static readonly fields: FieldList;
|
|
4547
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ChapterPoint;
|
|
4548
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ChapterPoint;
|
|
4549
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ChapterPoint;
|
|
4550
|
+
static equals(a: ChapterPoint | PlainMessage<ChapterPoint> | undefined, b: ChapterPoint | PlainMessage<ChapterPoint> | undefined): boolean;
|
|
4551
|
+
}
|
|
4552
|
+
/**
|
|
4553
|
+
* ChapterResult reports an auto-generated chapters track (read-only on Job
|
|
4554
|
+
* responses). It is produced by the opt-in auto-chapters pass over generated
|
|
4555
|
+
* captions (SubtitleTrack.generate_chapters).
|
|
4556
|
+
*
|
|
4557
|
+
* Not yet populated: the auto-chapters pass has not shipped yet. Fields are
|
|
4558
|
+
* documented here so consumers can code against the shape ahead of the
|
|
4559
|
+
* rollout.
|
|
4560
|
+
*
|
|
4561
|
+
* @generated from message transcodely.v1.ChapterResult
|
|
4562
|
+
*/
|
|
4563
|
+
declare class ChapterResult extends Message<ChapterResult> {
|
|
4564
|
+
/**
|
|
4565
|
+
* The out_… output the generate track was configured on.
|
|
4566
|
+
*
|
|
4567
|
+
* @generated from field: string output_id = 1;
|
|
4568
|
+
*/
|
|
4569
|
+
outputId: string;
|
|
4570
|
+
/**
|
|
4571
|
+
* ISO 639-2 language code, matching the caption track's language.
|
|
4572
|
+
*
|
|
4573
|
+
* @generated from field: string language = 2;
|
|
4574
|
+
*/
|
|
4575
|
+
language: string;
|
|
4576
|
+
/**
|
|
4577
|
+
* Storage key of the WebVTT chapters file in the output destination.
|
|
4578
|
+
*
|
|
4579
|
+
* @generated from field: string storage_key = 3;
|
|
4580
|
+
*/
|
|
4581
|
+
storageKey: string;
|
|
4582
|
+
/**
|
|
4583
|
+
* Resolved URL for the chapters file (same resolution rules as the caption
|
|
4584
|
+
* artifact URL).
|
|
4585
|
+
*
|
|
4586
|
+
* @generated from field: string url = 4;
|
|
4587
|
+
*/
|
|
4588
|
+
url: string;
|
|
4589
|
+
/**
|
|
4590
|
+
* The chapter markers, ordered by start time.
|
|
4591
|
+
*
|
|
4592
|
+
* @generated from field: repeated transcodely.v1.ChapterPoint chapters = 5;
|
|
4593
|
+
*/
|
|
4594
|
+
chapters: ChapterPoint[];
|
|
4595
|
+
constructor(data?: PartialMessage<ChapterResult>);
|
|
4596
|
+
static readonly runtime: typeof proto3;
|
|
4597
|
+
static readonly typeName = "transcodely.v1.ChapterResult";
|
|
4598
|
+
static readonly fields: FieldList;
|
|
4599
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ChapterResult;
|
|
4600
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ChapterResult;
|
|
4601
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ChapterResult;
|
|
4602
|
+
static equals(a: ChapterResult | PlainMessage<ChapterResult> | undefined, b: ChapterResult | PlainMessage<ChapterResult> | undefined): boolean;
|
|
4603
|
+
}
|
|
4604
|
+
/**
|
|
4605
|
+
* A generated or processed subtitle artifact, reported by the worker on job
|
|
4606
|
+
* completion and surfaced on the Job response. Mirrors the rendition pattern:
|
|
4607
|
+
* the worker computes both the storage key and the storage URL, and the API
|
|
4608
|
+
* persists them verbatim (the same way JobOutput.output_url works). Read-only
|
|
4609
|
+
* on Job responses.
|
|
4610
|
+
*
|
|
4611
|
+
* @generated from message transcodely.v1.SubtitleResult
|
|
4612
|
+
*/
|
|
4613
|
+
declare class SubtitleResult extends Message<SubtitleResult> {
|
|
4614
|
+
/**
|
|
4615
|
+
* Output ID (out_…) the subtitle track was configured on.
|
|
4616
|
+
*
|
|
4617
|
+
* @generated from field: string output_id = 1;
|
|
4618
|
+
*/
|
|
4619
|
+
outputId: string;
|
|
4620
|
+
/**
|
|
4621
|
+
* Processing operation that produced this artifact
|
|
4622
|
+
* (generate | extract | convert). Lowercase string on the wire.
|
|
4623
|
+
*
|
|
4624
|
+
* @generated from field: transcodely.v1.SubtitleOperation operation = 2;
|
|
4625
|
+
*/
|
|
4626
|
+
operation: SubtitleOperation;
|
|
4627
|
+
/**
|
|
4628
|
+
* Subtitle file format: webvtt | srt | ttml | ass.
|
|
4629
|
+
*
|
|
4630
|
+
* @generated from field: transcodely.v1.SubtitleFormat format = 3;
|
|
4631
|
+
*/
|
|
4632
|
+
format: SubtitleFormat;
|
|
4633
|
+
/**
|
|
4634
|
+
* Detected language (generate with auto-detect) or the configured
|
|
4635
|
+
* ISO 639-2 language code.
|
|
4636
|
+
*
|
|
4637
|
+
* @generated from field: string language = 4;
|
|
4638
|
+
*/
|
|
4639
|
+
language: string;
|
|
4640
|
+
/**
|
|
4641
|
+
* Human-readable label (e.g., "English", "Spanish (CC)").
|
|
4642
|
+
*
|
|
4643
|
+
* @generated from field: string label = 5;
|
|
4644
|
+
*/
|
|
4645
|
+
label: string;
|
|
4646
|
+
/**
|
|
4647
|
+
* True iff this track was produced by the generate operation
|
|
4648
|
+
* (automatic speech recognition).
|
|
4649
|
+
*
|
|
4650
|
+
* @generated from field: bool auto_generated = 6;
|
|
4651
|
+
*/
|
|
4652
|
+
autoGenerated: boolean;
|
|
4653
|
+
/**
|
|
4654
|
+
* Caption file storage key in the output destination
|
|
4655
|
+
* (e.g. "job_xxx/subtitles/out_yyy_eng.vtt").
|
|
4656
|
+
*
|
|
4657
|
+
* @generated from field: string storage_key = 7;
|
|
4658
|
+
*/
|
|
4659
|
+
storageKey: string;
|
|
4660
|
+
/**
|
|
4661
|
+
* Fully-qualified storage URL as built by the worker, stored as-is and
|
|
4662
|
+
* echoed on the Job response, exactly like JobOutput.output_url.
|
|
4663
|
+
*
|
|
4664
|
+
* @generated from field: string url = 8;
|
|
4665
|
+
*/
|
|
4666
|
+
url: string;
|
|
4667
|
+
/**
|
|
4668
|
+
* Segment-level transcript JSON storage key. Set only for generate
|
|
4669
|
+
* tracks (the machine-readable transcript consumed by auto-chapters).
|
|
4670
|
+
*
|
|
4671
|
+
* @generated from field: string transcript_storage_key = 9;
|
|
4672
|
+
*/
|
|
4673
|
+
transcriptStorageKey: string;
|
|
4674
|
+
/**
|
|
4675
|
+
* Fully-qualified transcript URL. Set only for generate tracks.
|
|
4676
|
+
*
|
|
4677
|
+
* @generated from field: string transcript_url = 10;
|
|
4678
|
+
*/
|
|
4679
|
+
transcriptUrl: string;
|
|
4680
|
+
/**
|
|
4681
|
+
* Ready-to-fetch HTTPS URL for the caption file, signed and time-limited.
|
|
4682
|
+
*
|
|
4683
|
+
* Points at the same object as url, but as a CDN URL a browser or player can
|
|
4684
|
+
* load — url is a raw storage URI ("s3://…") that no client can fetch.
|
|
4685
|
+
* Present only for jobs writing to Transcodely-managed storage (an
|
|
4686
|
+
* output_origin with provider "transcodely"); jobs writing to your own bucket
|
|
4687
|
+
* get nothing here and should sign url with their own credentials.
|
|
4688
|
+
*
|
|
4689
|
+
* Emitted on single-job reads (Get, Watch) and never on List, and expires —
|
|
4690
|
+
* 6 hours by default — so re-read the job for a fresh one rather than
|
|
4691
|
+
* storing it.
|
|
4692
|
+
*
|
|
4693
|
+
* @generated from field: optional string signed_url = 11;
|
|
4694
|
+
*/
|
|
4695
|
+
signedUrl?: string;
|
|
4696
|
+
/**
|
|
4697
|
+
* Ready-to-fetch HTTPS URL for the segment transcript, signed and
|
|
4698
|
+
* time-limited. Same rules and lifetime as signed_url; set only for generate
|
|
4699
|
+
* tracks, which are the only ones carrying a transcript.
|
|
4700
|
+
*
|
|
4701
|
+
* @generated from field: optional string transcript_signed_url = 12;
|
|
4702
|
+
*/
|
|
4703
|
+
transcriptSignedUrl?: string;
|
|
4704
|
+
constructor(data?: PartialMessage<SubtitleResult>);
|
|
4705
|
+
static readonly runtime: typeof proto3;
|
|
4706
|
+
static readonly typeName = "transcodely.v1.SubtitleResult";
|
|
4707
|
+
static readonly fields: FieldList;
|
|
4708
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SubtitleResult;
|
|
4709
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SubtitleResult;
|
|
4710
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SubtitleResult;
|
|
4711
|
+
static equals(a: SubtitleResult | PlainMessage<SubtitleResult> | undefined, b: SubtitleResult | PlainMessage<SubtitleResult> | undefined): boolean;
|
|
4712
|
+
}
|
|
3775
4713
|
|
|
3776
4714
|
/**
|
|
3777
4715
|
* DRM system.
|
|
@@ -3829,41 +4767,59 @@ declare enum EncryptionScheme {
|
|
|
3829
4767
|
* Bring Your Own Key configuration.
|
|
3830
4768
|
* Client provides their own encryption keys.
|
|
3831
4769
|
*
|
|
4770
|
+
* Write-only apart from key_id. Every read — CreateJob, GetJob, ListJobs, the
|
|
4771
|
+
* Watch snapshots and the webhook payloads — returns key_id and nothing else;
|
|
4772
|
+
* the content key, the PSSH boxes and the FairPlay IV/URI are never echoed
|
|
4773
|
+
* back. Because key is a non-optional scalar it still appears on the wire as
|
|
4774
|
+
* the empty string; that means "never returned", not "empty key". A job read
|
|
4775
|
+
* back from the API therefore cannot be resubmitted verbatim — repopulate key
|
|
4776
|
+
* from your own records first.
|
|
4777
|
+
*
|
|
4778
|
+
* Outputs created before the key id got its own storage column (2026-07-30)
|
|
4779
|
+
* carry no key id and return no byok block at all. There is no backfill:
|
|
4780
|
+
* recovering their id would mean opening the encrypted config envelope.
|
|
4781
|
+
*
|
|
3832
4782
|
* @generated from message transcodely.v1.BYOKConfig
|
|
3833
4783
|
*/
|
|
3834
4784
|
declare class BYOKConfig extends Message<BYOKConfig> {
|
|
3835
4785
|
/**
|
|
3836
4786
|
* Key identifier (32 hex characters).
|
|
3837
4787
|
*
|
|
4788
|
+
* The one BYOK field returned on reads. It names which key encrypted an
|
|
4789
|
+
* output — the way an API key's prefix and last-4 name the key — so the
|
|
4790
|
+
* key in use can be confirmed without keeping separate records.
|
|
4791
|
+
*
|
|
3838
4792
|
* @generated from field: string key_id = 1;
|
|
3839
4793
|
*/
|
|
3840
4794
|
keyId: string;
|
|
3841
4795
|
/**
|
|
3842
4796
|
* Content encryption key (32 hex characters).
|
|
3843
4797
|
*
|
|
4798
|
+
* Write-only: encrypted at rest and never returned on any read.
|
|
4799
|
+
*
|
|
3844
4800
|
* @generated from field: string key = 2;
|
|
3845
4801
|
*/
|
|
3846
4802
|
key: string;
|
|
3847
4803
|
/**
|
|
3848
|
-
* Widevine PSSH box (base64-encoded, optional).
|
|
4804
|
+
* Widevine PSSH box (base64-encoded, optional). Write-only.
|
|
3849
4805
|
*
|
|
3850
4806
|
* @generated from field: optional string pssh_widevine = 3;
|
|
3851
4807
|
*/
|
|
3852
4808
|
psshWidevine?: string;
|
|
3853
4809
|
/**
|
|
3854
|
-
* PlayReady PSSH XML (optional).
|
|
4810
|
+
* PlayReady PSSH XML (optional). Write-only.
|
|
3855
4811
|
*
|
|
3856
4812
|
* @generated from field: optional string pssh_playready = 4;
|
|
3857
4813
|
*/
|
|
3858
4814
|
psshPlayready?: string;
|
|
3859
4815
|
/**
|
|
3860
|
-
* FairPlay initialization vector (32 hex characters).
|
|
4816
|
+
* FairPlay initialization vector (32 hex characters). Write-only.
|
|
3861
4817
|
*
|
|
3862
4818
|
* @generated from field: optional string fairplay_iv = 5;
|
|
3863
4819
|
*/
|
|
3864
4820
|
fairplayIv?: string;
|
|
3865
4821
|
/**
|
|
3866
|
-
* FairPlay key server URI (skd:// scheme).
|
|
4822
|
+
* FairPlay key server URI (skd:// scheme). Write-only.
|
|
3867
4823
|
*
|
|
3868
4824
|
* @generated from field: optional string fairplay_uri = 6;
|
|
3869
4825
|
*/
|
|
@@ -3893,6 +4849,9 @@ declare class KeyServerConfig extends Message<KeyServerConfig> {
|
|
|
3893
4849
|
/**
|
|
3894
4850
|
* Authentication token for the key server.
|
|
3895
4851
|
*
|
|
4852
|
+
* Write-only: encrypted at rest and never returned on any read. The other
|
|
4853
|
+
* two fields of this message are echoed back normally.
|
|
4854
|
+
*
|
|
3896
4855
|
* @generated from field: optional string auth_token = 2;
|
|
3897
4856
|
*/
|
|
3898
4857
|
authToken?: string;
|
|
@@ -3933,6 +4892,9 @@ declare class DRMConfig extends Message<DRMConfig> {
|
|
|
3933
4892
|
/**
|
|
3934
4893
|
* BYOK configuration (mutually exclusive with key_server).
|
|
3935
4894
|
*
|
|
4895
|
+
* On reads this is a partial reveal: present with only key_id populated,
|
|
4896
|
+
* or absent entirely for outputs predating the key id column.
|
|
4897
|
+
*
|
|
3936
4898
|
* @generated from field: optional transcodely.v1.BYOKConfig byok = 3;
|
|
3937
4899
|
*/
|
|
3938
4900
|
byok?: BYOKConfig;
|
|
@@ -3962,6 +4924,11 @@ declare class DRMConfig extends Message<DRMConfig> {
|
|
|
3962
4924
|
/**
|
|
3963
4925
|
* Content-aware encoding mode.
|
|
3964
4926
|
*
|
|
4927
|
+
* NOT YET SUPPORTED. The worker pipeline does not yet act on content-aware
|
|
4928
|
+
* encoding, so any output carrying a ContentAwareConfig is rejected at CreateJob
|
|
4929
|
+
* with error code `parameter_unsupported` (see issue #167). The enum values are
|
|
4930
|
+
* retained for wire compatibility and will become active when the feature ships.
|
|
4931
|
+
*
|
|
3965
4932
|
* @generated from enum transcodely.v1.ContentAwareMode
|
|
3966
4933
|
*/
|
|
3967
4934
|
declare enum ContentAwareMode {
|
|
@@ -3970,13 +4937,15 @@ declare enum ContentAwareMode {
|
|
|
3970
4937
|
*/
|
|
3971
4938
|
UNSPECIFIED = 0,
|
|
3972
4939
|
/**
|
|
3973
|
-
* Optimize CRF for target VMAF on specific content.
|
|
4940
|
+
* Optimize CRF for target VMAF on specific content. NOT YET SUPPORTED —
|
|
4941
|
+
* rejected at create.
|
|
3974
4942
|
*
|
|
3975
4943
|
* @generated from enum value: CONTENT_AWARE_MODE_PER_TITLE = 1;
|
|
3976
4944
|
*/
|
|
3977
4945
|
PER_TITLE = 1,
|
|
3978
4946
|
/**
|
|
3979
|
-
* Generate optimal bitrate ladder automatically.
|
|
4947
|
+
* Generate optimal bitrate ladder automatically. NOT YET SUPPORTED —
|
|
4948
|
+
* rejected at create.
|
|
3980
4949
|
*
|
|
3981
4950
|
* @generated from enum value: CONTENT_AWARE_MODE_AUTO_ABR = 2;
|
|
3982
4951
|
*/
|
|
@@ -3985,6 +4954,10 @@ declare enum ContentAwareMode {
|
|
|
3985
4954
|
/**
|
|
3986
4955
|
* Auto ABR ladder generation constraints.
|
|
3987
4956
|
*
|
|
4957
|
+
* NOT YET SUPPORTED — see ContentAwareConfig. These constraints are validated
|
|
4958
|
+
* for shape but never applied, because a request carrying content_aware is
|
|
4959
|
+
* rejected at create.
|
|
4960
|
+
*
|
|
3988
4961
|
* @generated from message transcodely.v1.AutoABRConfig
|
|
3989
4962
|
*/
|
|
3990
4963
|
declare class AutoABRConfig extends Message<AutoABRConfig> {
|
|
@@ -4001,100 +4974,277 @@ declare class AutoABRConfig extends Message<AutoABRConfig> {
|
|
|
4001
4974
|
*
|
|
4002
4975
|
* @generated from field: optional int32 max_variants = 2;
|
|
4003
4976
|
*/
|
|
4004
|
-
maxVariants?: number;
|
|
4977
|
+
maxVariants?: number;
|
|
4978
|
+
/**
|
|
4979
|
+
* Lowest resolution in the generated ladder.
|
|
4980
|
+
*
|
|
4981
|
+
* @generated from field: transcodely.v1.Resolution min_resolution = 3;
|
|
4982
|
+
*/
|
|
4983
|
+
minResolution: Resolution;
|
|
4984
|
+
/**
|
|
4985
|
+
* Highest resolution in the generated ladder.
|
|
4986
|
+
*
|
|
4987
|
+
* @generated from field: transcodely.v1.Resolution max_resolution = 4;
|
|
4988
|
+
*/
|
|
4989
|
+
maxResolution: Resolution;
|
|
4990
|
+
constructor(data?: PartialMessage<AutoABRConfig>);
|
|
4991
|
+
static readonly runtime: typeof proto3;
|
|
4992
|
+
static readonly typeName = "transcodely.v1.AutoABRConfig";
|
|
4993
|
+
static readonly fields: FieldList;
|
|
4994
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AutoABRConfig;
|
|
4995
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AutoABRConfig;
|
|
4996
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AutoABRConfig;
|
|
4997
|
+
static equals(a: AutoABRConfig | PlainMessage<AutoABRConfig> | undefined, b: AutoABRConfig | PlainMessage<AutoABRConfig> | undefined): boolean;
|
|
4998
|
+
}
|
|
4999
|
+
/**
|
|
5000
|
+
* Content-aware encoding configuration for an output.
|
|
5001
|
+
*
|
|
5002
|
+
* NOT YET SUPPORTED. Setting content_aware on any output causes CreateJob to
|
|
5003
|
+
* fail with error code `parameter_unsupported` and the message "content-aware
|
|
5004
|
+
* encoding (per_title/auto_abr) is not yet supported". The worker does not yet
|
|
5005
|
+
* implement per-title CRF optimization or auto-ABR ladder generation — both
|
|
5006
|
+
* modes would run the identical plain-encode path — so the API rejects the
|
|
5007
|
+
* request rather than silently no-op it while charging the content-aware
|
|
5008
|
+
* multiplier (issue #167 / transcodely/worker#90). The message and fields are
|
|
5009
|
+
* retained for wire compatibility and forward-planning.
|
|
5010
|
+
*
|
|
5011
|
+
* @generated from message transcodely.v1.ContentAwareConfig
|
|
5012
|
+
*/
|
|
5013
|
+
declare class ContentAwareConfig extends Message<ContentAwareConfig> {
|
|
5014
|
+
/**
|
|
5015
|
+
* Encoding mode (required). NOT YET SUPPORTED — any value here causes the
|
|
5016
|
+
* request to be rejected at create.
|
|
5017
|
+
*
|
|
5018
|
+
* @generated from field: transcodely.v1.ContentAwareMode mode = 1;
|
|
5019
|
+
*/
|
|
5020
|
+
mode: ContentAwareMode;
|
|
5021
|
+
/**
|
|
5022
|
+
* Override VMAF target (70-99). NOT YET SUPPORTED — content-aware encoding is
|
|
5023
|
+
* rejected at create, so this value is never applied.
|
|
5024
|
+
*
|
|
5025
|
+
* @generated from field: optional double vmaf_target = 2;
|
|
5026
|
+
*/
|
|
5027
|
+
vmafTarget?: number;
|
|
5028
|
+
/**
|
|
5029
|
+
* Auto ABR constraints (only for auto_abr mode). NOT YET SUPPORTED — rejected
|
|
5030
|
+
* at create.
|
|
5031
|
+
*
|
|
5032
|
+
* @generated from field: optional transcodely.v1.AutoABRConfig auto_abr = 3;
|
|
5033
|
+
*/
|
|
5034
|
+
autoAbr?: AutoABRConfig;
|
|
5035
|
+
constructor(data?: PartialMessage<ContentAwareConfig>);
|
|
5036
|
+
static readonly runtime: typeof proto3;
|
|
5037
|
+
static readonly typeName = "transcodely.v1.ContentAwareConfig";
|
|
5038
|
+
static readonly fields: FieldList;
|
|
5039
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ContentAwareConfig;
|
|
5040
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ContentAwareConfig;
|
|
5041
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ContentAwareConfig;
|
|
5042
|
+
static equals(a: ContentAwareConfig | PlainMessage<ContentAwareConfig> | undefined, b: ContentAwareConfig | PlainMessage<ContentAwareConfig> | undefined): boolean;
|
|
5043
|
+
}
|
|
5044
|
+
/**
|
|
5045
|
+
* Content analysis results from extended probe.
|
|
5046
|
+
*
|
|
5047
|
+
* NOT YET POPULATED. Produced only when content-aware analysis is wired in the
|
|
5048
|
+
* worker; today no job carries it, because content_aware requests are rejected
|
|
5049
|
+
* at create (see ContentAwareConfig).
|
|
5050
|
+
*
|
|
5051
|
+
* @generated from message transcodely.v1.ContentAnalysis
|
|
5052
|
+
*/
|
|
5053
|
+
declare class ContentAnalysis extends Message<ContentAnalysis> {
|
|
5054
|
+
/**
|
|
5055
|
+
* Overall encoding complexity (0-1).
|
|
5056
|
+
*
|
|
5057
|
+
* @generated from field: double complexity_score = 1;
|
|
5058
|
+
*/
|
|
5059
|
+
complexityScore: number;
|
|
5060
|
+
/**
|
|
5061
|
+
* Temporal complexity - amount of motion (0-1).
|
|
5062
|
+
*
|
|
5063
|
+
* @generated from field: double motion_score = 2;
|
|
5064
|
+
*/
|
|
5065
|
+
motionScore: number;
|
|
5066
|
+
/**
|
|
5067
|
+
* Spatial detail complexity (0-1).
|
|
5068
|
+
*
|
|
5069
|
+
* @generated from field: double texture_score = 3;
|
|
5070
|
+
*/
|
|
5071
|
+
textureScore: number;
|
|
5072
|
+
/**
|
|
5073
|
+
* Detected content type.
|
|
5074
|
+
*
|
|
5075
|
+
* @generated from field: string content_type = 4;
|
|
5076
|
+
*/
|
|
5077
|
+
contentType: string;
|
|
5078
|
+
constructor(data?: PartialMessage<ContentAnalysis>);
|
|
5079
|
+
static readonly runtime: typeof proto3;
|
|
5080
|
+
static readonly typeName = "transcodely.v1.ContentAnalysis";
|
|
5081
|
+
static readonly fields: FieldList;
|
|
5082
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ContentAnalysis;
|
|
5083
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ContentAnalysis;
|
|
5084
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ContentAnalysis;
|
|
5085
|
+
static equals(a: ContentAnalysis | PlainMessage<ContentAnalysis> | undefined, b: ContentAnalysis | PlainMessage<ContentAnalysis> | undefined): boolean;
|
|
5086
|
+
}
|
|
5087
|
+
|
|
5088
|
+
/**
|
|
5089
|
+
* Anchor position for a relatively-placed watermark. The watermark is aligned
|
|
5090
|
+
* to the named region of each rendition's frame, so a single config places the
|
|
5091
|
+
* overlay consistently across every ABR rung regardless of output resolution.
|
|
5092
|
+
* Wire form is lowercase (e.g. "bottom_right") via the codec.
|
|
5093
|
+
*
|
|
5094
|
+
* @generated from enum transcodely.v1.WatermarkAnchor
|
|
5095
|
+
*/
|
|
5096
|
+
declare enum WatermarkAnchor {
|
|
5097
|
+
/**
|
|
5098
|
+
* Default value; treated as bottom_right when unset.
|
|
5099
|
+
*
|
|
5100
|
+
* @generated from enum value: WATERMARK_ANCHOR_UNSPECIFIED = 0;
|
|
5101
|
+
*/
|
|
5102
|
+
UNSPECIFIED = 0,
|
|
5103
|
+
/**
|
|
5104
|
+
* @generated from enum value: WATERMARK_ANCHOR_TOP_LEFT = 1;
|
|
5105
|
+
*/
|
|
5106
|
+
TOP_LEFT = 1,
|
|
5107
|
+
/**
|
|
5108
|
+
* @generated from enum value: WATERMARK_ANCHOR_TOP_CENTER = 2;
|
|
5109
|
+
*/
|
|
5110
|
+
TOP_CENTER = 2,
|
|
5111
|
+
/**
|
|
5112
|
+
* @generated from enum value: WATERMARK_ANCHOR_TOP_RIGHT = 3;
|
|
5113
|
+
*/
|
|
5114
|
+
TOP_RIGHT = 3,
|
|
5115
|
+
/**
|
|
5116
|
+
* @generated from enum value: WATERMARK_ANCHOR_MIDDLE_LEFT = 4;
|
|
5117
|
+
*/
|
|
5118
|
+
MIDDLE_LEFT = 4,
|
|
5119
|
+
/**
|
|
5120
|
+
* @generated from enum value: WATERMARK_ANCHOR_MIDDLE_CENTER = 5;
|
|
5121
|
+
*/
|
|
5122
|
+
MIDDLE_CENTER = 5,
|
|
5123
|
+
/**
|
|
5124
|
+
* @generated from enum value: WATERMARK_ANCHOR_MIDDLE_RIGHT = 6;
|
|
5125
|
+
*/
|
|
5126
|
+
MIDDLE_RIGHT = 6,
|
|
5127
|
+
/**
|
|
5128
|
+
* @generated from enum value: WATERMARK_ANCHOR_BOTTOM_LEFT = 7;
|
|
5129
|
+
*/
|
|
5130
|
+
BOTTOM_LEFT = 7,
|
|
4005
5131
|
/**
|
|
4006
|
-
*
|
|
4007
|
-
*
|
|
4008
|
-
* @generated from field: transcodely.v1.Resolution min_resolution = 3;
|
|
5132
|
+
* @generated from enum value: WATERMARK_ANCHOR_BOTTOM_CENTER = 8;
|
|
4009
5133
|
*/
|
|
4010
|
-
|
|
5134
|
+
BOTTOM_CENTER = 8,
|
|
4011
5135
|
/**
|
|
4012
|
-
*
|
|
4013
|
-
*
|
|
4014
|
-
* @generated from field: transcodely.v1.Resolution max_resolution = 4;
|
|
5136
|
+
* @generated from enum value: WATERMARK_ANCHOR_BOTTOM_RIGHT = 9;
|
|
4015
5137
|
*/
|
|
4016
|
-
|
|
4017
|
-
constructor(data?: PartialMessage<AutoABRConfig>);
|
|
4018
|
-
static readonly runtime: typeof proto3;
|
|
4019
|
-
static readonly typeName = "transcodely.v1.AutoABRConfig";
|
|
4020
|
-
static readonly fields: FieldList;
|
|
4021
|
-
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AutoABRConfig;
|
|
4022
|
-
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AutoABRConfig;
|
|
4023
|
-
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AutoABRConfig;
|
|
4024
|
-
static equals(a: AutoABRConfig | PlainMessage<AutoABRConfig> | undefined, b: AutoABRConfig | PlainMessage<AutoABRConfig> | undefined): boolean;
|
|
5138
|
+
BOTTOM_RIGHT = 9
|
|
4025
5139
|
}
|
|
4026
5140
|
/**
|
|
4027
|
-
*
|
|
5141
|
+
* Absolute pixel placement for a watermark (advanced / "hacker mode"). The
|
|
5142
|
+
* overlay is drawn at an exact pixel offset and scaled to an exact pixel width;
|
|
5143
|
+
* unlike the relative anchor/width_pct fields, these coordinates do NOT adapt
|
|
5144
|
+
* across ABR rungs — a placement tuned for a 1080p rung will sit at the same
|
|
5145
|
+
* pixel offset on a 360p rung, so this is intended for single-rendition outputs
|
|
5146
|
+
* or advanced users who accept that trade-off.
|
|
4028
5147
|
*
|
|
4029
|
-
* @generated from message transcodely.v1.
|
|
5148
|
+
* @generated from message transcodely.v1.WatermarkPixelPlacement
|
|
4030
5149
|
*/
|
|
4031
|
-
declare class
|
|
5150
|
+
declare class WatermarkPixelPlacement extends Message<WatermarkPixelPlacement> {
|
|
4032
5151
|
/**
|
|
4033
|
-
*
|
|
5152
|
+
* Horizontal offset in pixels from the top-left origin of the frame.
|
|
4034
5153
|
*
|
|
4035
|
-
* @generated from field:
|
|
5154
|
+
* @generated from field: int32 x = 1;
|
|
4036
5155
|
*/
|
|
4037
|
-
|
|
5156
|
+
x: number;
|
|
4038
5157
|
/**
|
|
4039
|
-
*
|
|
4040
|
-
* Defaults from quality tier: economy=88, standard=93, premium=97.
|
|
5158
|
+
* Vertical offset in pixels from the top-left origin of the frame.
|
|
4041
5159
|
*
|
|
4042
|
-
* @generated from field:
|
|
5160
|
+
* @generated from field: int32 y = 2;
|
|
4043
5161
|
*/
|
|
4044
|
-
|
|
5162
|
+
y: number;
|
|
4045
5163
|
/**
|
|
4046
|
-
*
|
|
5164
|
+
* Watermark width in pixels. The overlay image is scaled to this width and
|
|
5165
|
+
* its height is derived automatically from the source aspect ratio.
|
|
4047
5166
|
*
|
|
4048
|
-
* @generated from field:
|
|
5167
|
+
* @generated from field: int32 width = 3;
|
|
4049
5168
|
*/
|
|
4050
|
-
|
|
4051
|
-
constructor(data?: PartialMessage<
|
|
5169
|
+
width: number;
|
|
5170
|
+
constructor(data?: PartialMessage<WatermarkPixelPlacement>);
|
|
4052
5171
|
static readonly runtime: typeof proto3;
|
|
4053
|
-
static readonly typeName = "transcodely.v1.
|
|
5172
|
+
static readonly typeName = "transcodely.v1.WatermarkPixelPlacement";
|
|
4054
5173
|
static readonly fields: FieldList;
|
|
4055
|
-
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>):
|
|
4056
|
-
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>):
|
|
4057
|
-
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>):
|
|
4058
|
-
static equals(a:
|
|
5174
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WatermarkPixelPlacement;
|
|
5175
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WatermarkPixelPlacement;
|
|
5176
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WatermarkPixelPlacement;
|
|
5177
|
+
static equals(a: WatermarkPixelPlacement | PlainMessage<WatermarkPixelPlacement> | undefined, b: WatermarkPixelPlacement | PlainMessage<WatermarkPixelPlacement> | undefined): boolean;
|
|
4059
5178
|
}
|
|
4060
5179
|
/**
|
|
4061
|
-
*
|
|
5180
|
+
* Watermark / logo overlay baked into the encoded video of an output.
|
|
4062
5181
|
*
|
|
4063
|
-
*
|
|
5182
|
+
* Two placement modes exist and are mutually exclusive:
|
|
5183
|
+
* * Relative (default): anchor + width_pct + margin_pct scale the overlay
|
|
5184
|
+
* consistently across every ABR rung.
|
|
5185
|
+
* * Pixel (advanced): the `pixel` submessage places the overlay at an exact
|
|
5186
|
+
* pixel offset and width (does not adapt across rungs).
|
|
5187
|
+
* `image_url` and `opacity` apply in both modes. The mutual exclusivity of
|
|
5188
|
+
* `pixel` with the relative fields is enforced server-side by the feature
|
|
5189
|
+
* validator.
|
|
5190
|
+
*
|
|
5191
|
+
* @generated from message transcodely.v1.WatermarkConfig
|
|
4064
5192
|
*/
|
|
4065
|
-
declare class
|
|
5193
|
+
declare class WatermarkConfig extends Message<WatermarkConfig> {
|
|
4066
5194
|
/**
|
|
4067
|
-
*
|
|
5195
|
+
* Public http(s) URL of the overlay image. Must be a PNG or WebP image
|
|
5196
|
+
* (alpha-capable formats only). Validated server-side at job creation: the
|
|
5197
|
+
* image is fetched through the SSRF-guarded transport, its format is checked
|
|
5198
|
+
* by magic bytes + decode, and size/dimension caps are enforced.
|
|
4068
5199
|
*
|
|
4069
|
-
* @generated from field:
|
|
5200
|
+
* @generated from field: string image_url = 1;
|
|
4070
5201
|
*/
|
|
4071
|
-
|
|
5202
|
+
imageUrl: string;
|
|
4072
5203
|
/**
|
|
4073
|
-
*
|
|
5204
|
+
* Anchor region the overlay is aligned to (relative mode). Defaults to
|
|
5205
|
+
* bottom_right when unset. Ignored when `pixel` is set.
|
|
4074
5206
|
*
|
|
4075
|
-
* @generated from field:
|
|
5207
|
+
* @generated from field: optional transcodely.v1.WatermarkAnchor anchor = 2;
|
|
4076
5208
|
*/
|
|
4077
|
-
|
|
5209
|
+
anchor?: WatermarkAnchor;
|
|
4078
5210
|
/**
|
|
4079
|
-
*
|
|
5211
|
+
* Watermark width as a percentage of each rendition's output width (relative
|
|
5212
|
+
* mode). Scales consistently across every ABR rung. Range (0, 100].
|
|
5213
|
+
* Defaults to 15 when unset. Ignored when `pixel` is set.
|
|
4080
5214
|
*
|
|
4081
|
-
* @generated from field: double
|
|
5215
|
+
* @generated from field: optional double width_pct = 3;
|
|
4082
5216
|
*/
|
|
4083
|
-
|
|
5217
|
+
widthPct?: number;
|
|
4084
5218
|
/**
|
|
4085
|
-
*
|
|
5219
|
+
* Margin from the anchored edges as a percentage of output width (relative
|
|
5220
|
+
* mode). Range [0, 40]. Defaults to 2 when unset. Ignored when `pixel` is set.
|
|
4086
5221
|
*
|
|
4087
|
-
* @generated from field:
|
|
5222
|
+
* @generated from field: optional double margin_pct = 4;
|
|
4088
5223
|
*/
|
|
4089
|
-
|
|
4090
|
-
|
|
5224
|
+
marginPct?: number;
|
|
5225
|
+
/**
|
|
5226
|
+
* Overlay opacity. Range (0, 1]. Defaults to 1.0 (fully opaque) when unset.
|
|
5227
|
+
* Applies in both relative and pixel modes.
|
|
5228
|
+
*
|
|
5229
|
+
* @generated from field: optional double opacity = 5;
|
|
5230
|
+
*/
|
|
5231
|
+
opacity?: number;
|
|
5232
|
+
/**
|
|
5233
|
+
* Absolute pixel placement (advanced mode). Mutually exclusive with anchor,
|
|
5234
|
+
* width_pct, and margin_pct — supplying `pixel` together with any of those is
|
|
5235
|
+
* rejected at job creation.
|
|
5236
|
+
*
|
|
5237
|
+
* @generated from field: optional transcodely.v1.WatermarkPixelPlacement pixel = 6;
|
|
5238
|
+
*/
|
|
5239
|
+
pixel?: WatermarkPixelPlacement;
|
|
5240
|
+
constructor(data?: PartialMessage<WatermarkConfig>);
|
|
4091
5241
|
static readonly runtime: typeof proto3;
|
|
4092
|
-
static readonly typeName = "transcodely.v1.
|
|
5242
|
+
static readonly typeName = "transcodely.v1.WatermarkConfig";
|
|
4093
5243
|
static readonly fields: FieldList;
|
|
4094
|
-
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>):
|
|
4095
|
-
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>):
|
|
4096
|
-
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>):
|
|
4097
|
-
static equals(a:
|
|
5244
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WatermarkConfig;
|
|
5245
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WatermarkConfig;
|
|
5246
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WatermarkConfig;
|
|
5247
|
+
static equals(a: WatermarkConfig | PlainMessage<WatermarkConfig> | undefined, b: WatermarkConfig | PlainMessage<WatermarkConfig> | undefined): boolean;
|
|
4098
5248
|
}
|
|
4099
5249
|
|
|
4100
5250
|
/**
|
|
@@ -5443,7 +6593,33 @@ declare enum ThumbnailMode {
|
|
|
5443
6593
|
*
|
|
5444
6594
|
* @generated from enum value: THUMBNAIL_MODE_TIMESTAMPS = 4;
|
|
5445
6595
|
*/
|
|
5446
|
-
TIMESTAMPS = 4
|
|
6596
|
+
TIMESTAMPS = 4,
|
|
6597
|
+
/**
|
|
6598
|
+
* Generate short animated hover-preview loops for card/grid previews.
|
|
6599
|
+
*
|
|
6600
|
+
* Free and bundled — animated previews add NO cost to a job (thumbnails are
|
|
6601
|
+
* priced at 0). By default the worker produces BOTH an animated WebP and a
|
|
6602
|
+
* muted MP4 loop from the same samples, so a consumer can pick whichever its
|
|
6603
|
+
* surface supports. Set `format = webp` to emit only the WebP.
|
|
6604
|
+
*
|
|
6605
|
+
* Sampling is deterministic: unless `start_offsets` is set, clips are taken at
|
|
6606
|
+
* fixed 25% / 50% / 75% marks of the source duration (no scene detection).
|
|
6607
|
+
* Smart defaults (applied worker-side; the API stores exactly what was sent):
|
|
6608
|
+
* ~4 s total duration, 12 fps, 320 px wide.
|
|
6609
|
+
*
|
|
6610
|
+
* The animated WebP is hard-capped at 10 s: when `duration_seconds` exceeds
|
|
6611
|
+
* 10 the WebP is skipped and the output is MP4-only (documented, not an
|
|
6612
|
+
* error) — unless `format = webp` is set explicitly, in which case a
|
|
6613
|
+
* `duration_seconds` above 10 is rejected at job creation.
|
|
6614
|
+
*
|
|
6615
|
+
* Valid config for this mode: `width`, `height`, `quality` (maps to WebP
|
|
6616
|
+
* encode quality), `duration_seconds`, `fps`, `start_offsets`, `path_template`.
|
|
6617
|
+
* The single/interval/sprite/timestamps fields (`timestamp`,
|
|
6618
|
+
* `interval_seconds`, `timestamps`, `sprite_columns`) are not valid here.
|
|
6619
|
+
*
|
|
6620
|
+
* @generated from enum value: THUMBNAIL_MODE_ANIMATED = 5;
|
|
6621
|
+
*/
|
|
6622
|
+
ANIMATED = 5
|
|
5447
6623
|
}
|
|
5448
6624
|
/**
|
|
5449
6625
|
* Thumbnail output format.
|
|
@@ -5506,7 +6682,10 @@ declare class ThumbnailSpec extends Message<ThumbnailSpec> {
|
|
|
5506
6682
|
*/
|
|
5507
6683
|
quality?: number;
|
|
5508
6684
|
/**
|
|
5509
|
-
* Timestamp in seconds for single mode.
|
|
6685
|
+
* Timestamp in seconds for single mode. When omitted, the worker
|
|
6686
|
+
* smart-selects a representative non-black frame from the opening of the
|
|
6687
|
+
* video (deterministic per input) instead of extracting the frame at t=0.
|
|
6688
|
+
* An explicit value — including 0 — extracts exactly that frame.
|
|
5510
6689
|
*
|
|
5511
6690
|
* @generated from field: optional double timestamp = 6;
|
|
5512
6691
|
*/
|
|
@@ -5542,6 +6721,13 @@ declare class ThumbnailSpec extends Message<ThumbnailSpec> {
|
|
|
5542
6721
|
* {format} (image format: jpeg|png|webp), {thumb_index} (0-based),
|
|
5543
6722
|
* {thumb_time} (seconds, file-safe), {thumb_time_ms} (milliseconds).
|
|
5544
6723
|
*
|
|
6724
|
+
* Output-only variables ({output_id}, {codec}, {resolution}, {bitrate},
|
|
6725
|
+
* {quality}, {preset_id}, {output_index}, {segment_*}) are NOT valid here — a
|
|
6726
|
+
* thumbnail is not a rendition, so a thumbnail render context can't resolve
|
|
6727
|
+
* them and the literal token would land in the storage key. Setting one is a
|
|
6728
|
+
* validation error. (When a thumbnail INHERITS the output origin's template
|
|
6729
|
+
* instead, those variables are stripped automatically.)
|
|
6730
|
+
*
|
|
5545
6731
|
* Example: "video/{video_id}/poster/{thumb_index}".
|
|
5546
6732
|
*
|
|
5547
6733
|
* Must not start with `/` or contain `..` (no path traversal). When set, it
|
|
@@ -5552,6 +6738,34 @@ declare class ThumbnailSpec extends Message<ThumbnailSpec> {
|
|
|
5552
6738
|
* @generated from field: optional string path_template = 10;
|
|
5553
6739
|
*/
|
|
5554
6740
|
pathTemplate?: string;
|
|
6741
|
+
/**
|
|
6742
|
+
* Total length of each animated preview clip, in seconds (animated mode only).
|
|
6743
|
+
* Range: 2-30. Default (unset): ~4 s, applied worker-side. The animated WebP
|
|
6744
|
+
* is hard-capped at 10 s: above 10 s the WebP is skipped and only the MP4 loop
|
|
6745
|
+
* is produced (unless format=webp is set explicitly, which then rejects
|
|
6746
|
+
* duration_seconds > 10). Only valid for animated mode.
|
|
6747
|
+
*
|
|
6748
|
+
* @generated from field: optional double duration_seconds = 11;
|
|
6749
|
+
*/
|
|
6750
|
+
durationSeconds?: number;
|
|
6751
|
+
/**
|
|
6752
|
+
* Frames per second of the animated preview (animated mode only).
|
|
6753
|
+
* Range: 8-15. Default (unset): 12, applied worker-side. Only valid for
|
|
6754
|
+
* animated mode.
|
|
6755
|
+
*
|
|
6756
|
+
* @generated from field: optional int32 fps = 12;
|
|
6757
|
+
*/
|
|
6758
|
+
fps?: number;
|
|
6759
|
+
/**
|
|
6760
|
+
* Explicit clip start offsets in seconds from the source start (animated mode
|
|
6761
|
+
* only). When set (max 3 entries, each >= 0), these replace the default
|
|
6762
|
+
* 25%/50%/75% sampling marks; the worker clamps each offset to the source
|
|
6763
|
+
* duration. Unset → the deterministic 25%/50%/75% marks. Only valid for
|
|
6764
|
+
* animated mode.
|
|
6765
|
+
*
|
|
6766
|
+
* @generated from field: repeated double start_offsets = 13;
|
|
6767
|
+
*/
|
|
6768
|
+
startOffsets: number[];
|
|
5555
6769
|
constructor(data?: PartialMessage<ThumbnailSpec>);
|
|
5556
6770
|
static readonly runtime: typeof proto3;
|
|
5557
6771
|
static readonly typeName = "transcodely.v1.ThumbnailSpec";
|
|
@@ -5589,14 +6803,16 @@ declare class ThumbnailResult extends Message<ThumbnailResult> {
|
|
|
5589
6803
|
url: string;
|
|
5590
6804
|
/**
|
|
5591
6805
|
* Generation mode that produced this file: single | interval | sprite |
|
|
5592
|
-
* timestamps. Lowercase string on the wire.
|
|
6806
|
+
* timestamps | animated. Lowercase string on the wire.
|
|
5593
6807
|
*
|
|
5594
6808
|
* @generated from field: string mode = 3;
|
|
5595
6809
|
*/
|
|
5596
6810
|
mode: string;
|
|
5597
6811
|
/**
|
|
5598
6812
|
* File format: jpeg | png | webp. The sprite mode's WebVTT sidecar uses
|
|
5599
|
-
* "vtt".
|
|
6813
|
+
* "vtt". Animated mode yields "webp" (the animated WebP) and "mp4" (the muted
|
|
6814
|
+
* MP4 loop) — "mp4" rides this free-form string; it is not a ThumbnailFormat
|
|
6815
|
+
* enum value.
|
|
5600
6816
|
*
|
|
5601
6817
|
* @generated from field: string format = 4;
|
|
5602
6818
|
*/
|
|
@@ -5617,6 +6833,24 @@ declare class ThumbnailResult extends Message<ThumbnailResult> {
|
|
|
5617
6833
|
* @generated from field: int32 index = 7;
|
|
5618
6834
|
*/
|
|
5619
6835
|
index: number;
|
|
6836
|
+
/**
|
|
6837
|
+
* Ready-to-fetch HTTPS URL for this thumbnail file, signed and time-limited.
|
|
6838
|
+
*
|
|
6839
|
+
* Points at the same object as url, but as a CDN URL a browser can load —
|
|
6840
|
+
* url is a raw storage URI ("s3://…") that no client can fetch. Present only
|
|
6841
|
+
* for jobs writing to Transcodely-managed storage (an output_origin with
|
|
6842
|
+
* provider "transcodely"); jobs writing to your own bucket get nothing here
|
|
6843
|
+
* and should sign url with their own credentials.
|
|
6844
|
+
*
|
|
6845
|
+
* Emitted on single-job reads (Get, Watch) and never on List, and expires —
|
|
6846
|
+
* 6 hours by default — so re-read the job for a fresh one rather than storing
|
|
6847
|
+
* it. The sprite mode's WebVTT sidecar (format "vtt") is signed so that the
|
|
6848
|
+
* sprite image its cues reference relatively inherits the same
|
|
6849
|
+
* authorization.
|
|
6850
|
+
*
|
|
6851
|
+
* @generated from field: optional string signed_url = 8;
|
|
6852
|
+
*/
|
|
6853
|
+
signedUrl?: string;
|
|
5620
6854
|
constructor(data?: PartialMessage<ThumbnailResult>);
|
|
5621
6855
|
static readonly runtime: typeof proto3;
|
|
5622
6856
|
static readonly typeName = "transcodely.v1.ThumbnailResult";
|
|
@@ -6164,6 +7398,16 @@ declare class OutputSpec extends Message<OutputSpec> {
|
|
|
6164
7398
|
* @generated from field: optional bool disable_audio = 16;
|
|
6165
7399
|
*/
|
|
6166
7400
|
disableAudio?: boolean;
|
|
7401
|
+
/**
|
|
7402
|
+
* Watermark / logo overlay for this output. When set, the overlay is baked
|
|
7403
|
+
* into the encoded video of this output (like subtitle burn-in). Billed under
|
|
7404
|
+
* the unified overlay multiplier class: 1.1x once per output regardless of how
|
|
7405
|
+
* many pixel-burning overlays are enabled (a watermark and burned-in subtitles
|
|
7406
|
+
* together are still a single 1.1x, never 1.21x).
|
|
7407
|
+
*
|
|
7408
|
+
* @generated from field: optional transcodely.v1.WatermarkConfig watermark = 17;
|
|
7409
|
+
*/
|
|
7410
|
+
watermark?: WatermarkConfig;
|
|
6167
7411
|
constructor(data?: PartialMessage<OutputSpec>);
|
|
6168
7412
|
static readonly runtime: typeof proto3;
|
|
6169
7413
|
static readonly typeName = "transcodely.v1.OutputSpec";
|
|
@@ -6453,8 +7697,9 @@ declare class JobOutput extends Message<JobOutput> {
|
|
|
6453
7697
|
estimatedCost?: number;
|
|
6454
7698
|
/**
|
|
6455
7699
|
* Actual cost (calculated after encoding using locked pricing and actual duration).
|
|
6456
|
-
*
|
|
6457
|
-
*
|
|
7700
|
+
* Only a completed output is billable, so this is zero for both canceled and
|
|
7701
|
+
* failed outputs — a canceled output produced nothing usable, no matter how
|
|
7702
|
+
* far its encode got.
|
|
6458
7703
|
*
|
|
6459
7704
|
* @generated from field: optional double actual_cost = 11;
|
|
6460
7705
|
*/
|
|
@@ -6466,7 +7711,14 @@ declare class JobOutput extends Message<JobOutput> {
|
|
|
6466
7711
|
*/
|
|
6467
7712
|
errorCode?: string;
|
|
6468
7713
|
/**
|
|
6469
|
-
*
|
|
7714
|
+
* Human-readable summary of why this output failed, in one or two sentences.
|
|
7715
|
+
*
|
|
7716
|
+
* Derived from error_code, not from the transcoder: this field never carries
|
|
7717
|
+
* raw tool output, command lines, stack traces, or file paths. Where a short
|
|
7718
|
+
* safe detail is available it is appended in parentheses, e.g. "(HTTP 404)".
|
|
7719
|
+
*
|
|
7720
|
+
* Match on error_code, not on this text. The wording is documentation, not
|
|
7721
|
+
* API surface, and may be reworded in any release.
|
|
6470
7722
|
*
|
|
6471
7723
|
* @generated from field: optional string error_message = 13;
|
|
6472
7724
|
*/
|
|
@@ -6545,6 +7797,28 @@ declare class JobOutput extends Message<JobOutput> {
|
|
|
6545
7797
|
* @generated from field: repeated transcodely.v1.OutputVariantResult variant_results = 25;
|
|
6546
7798
|
*/
|
|
6547
7799
|
variantResults: OutputVariantResult[];
|
|
7800
|
+
/**
|
|
7801
|
+
* Ready-to-fetch HTTPS URL for this output, signed and time-limited.
|
|
7802
|
+
*
|
|
7803
|
+
* Points at the same object as output_url — the media file for a progressive
|
|
7804
|
+
* output, the master playlist or MPD for HLS/DASH — but as a CDN URL a
|
|
7805
|
+
* browser or player can load, where output_url is a raw storage URI
|
|
7806
|
+
* ("s3://…") that no client can fetch.
|
|
7807
|
+
*
|
|
7808
|
+
* Present only when the job writes to Transcodely-managed storage (an
|
|
7809
|
+
* output_origin with provider "transcodely") and the output has completed.
|
|
7810
|
+
* Jobs writing to your own bucket get nothing here: we hold no delivery
|
|
7811
|
+
* domain for it, so read output_url and sign it with your own credentials.
|
|
7812
|
+
*
|
|
7813
|
+
* Emitted on single-job reads (Get, Watch) and never on List. The URL expires
|
|
7814
|
+
* — 6 hours by default — so treat it as a fetch handle, not a durable link:
|
|
7815
|
+
* re-read the job for a fresh one rather than storing it. For HLS and DASH it
|
|
7816
|
+
* is signed so that variant playlists and segments referenced by the manifest
|
|
7817
|
+
* inherit the same authorization.
|
|
7818
|
+
*
|
|
7819
|
+
* @generated from field: optional string signed_url = 26;
|
|
7820
|
+
*/
|
|
7821
|
+
signedUrl?: string;
|
|
6548
7822
|
constructor(data?: PartialMessage<JobOutput>);
|
|
6549
7823
|
static readonly runtime: typeof proto3;
|
|
6550
7824
|
static readonly typeName = "transcodely.v1.JobOutput";
|
|
@@ -6839,7 +8113,9 @@ declare class Job extends Message<Job> {
|
|
|
6839
8113
|
*/
|
|
6840
8114
|
inputMetadata?: InputMetadata;
|
|
6841
8115
|
/**
|
|
6842
|
-
* Output renditions
|
|
8116
|
+
* Output renditions, in the same order as the create request's `outputs`.
|
|
8117
|
+
* The order is stable across every read of the job, so indexing into this
|
|
8118
|
+
* array to find the rendition you asked for is safe.
|
|
6843
8119
|
*
|
|
6844
8120
|
* @generated from field: repeated transcodely.v1.JobOutput outputs = 7;
|
|
6845
8121
|
*/
|
|
@@ -6851,8 +8127,21 @@ declare class Job extends Message<Job> {
|
|
|
6851
8127
|
*/
|
|
6852
8128
|
totalEstimatedCost?: number;
|
|
6853
8129
|
/**
|
|
6854
|
-
* Total actual cost
|
|
6855
|
-
*
|
|
8130
|
+
* Total actual cost — what the job is billed, in the job's currency.
|
|
8131
|
+
*
|
|
8132
|
+
* Only completed outputs are billable, and what happened to the job as a
|
|
8133
|
+
* whole decides whether they are billed at all:
|
|
8134
|
+
* - completed: the sum of its outputs' actual costs, raised to
|
|
8135
|
+
* minimum_charge_eur if that minimum is in effect.
|
|
8136
|
+
* - canceled: the sum of the outputs that had already completed and been
|
|
8137
|
+
* delivered when the cancel landed. Identical whether the job was
|
|
8138
|
+
* canceled through CancelJob or observed as canceled by the worker. The
|
|
8139
|
+
* minimum charge never applies.
|
|
8140
|
+
* - failed: zero. A job that ends failed is not billed, even if some of
|
|
8141
|
+
* its outputs completed before the failure.
|
|
8142
|
+
* - partial: the sum of the outputs that completed, un-floored.
|
|
8143
|
+
* Additive fees (see fees) are included on top, and are charged only on jobs
|
|
8144
|
+
* that ended completed or partial.
|
|
6856
8145
|
*
|
|
6857
8146
|
* @generated from field: optional double total_actual_cost = 9;
|
|
6858
8147
|
*/
|
|
@@ -6864,7 +8153,15 @@ declare class Job extends Message<Job> {
|
|
|
6864
8153
|
*/
|
|
6865
8154
|
errorCode?: string;
|
|
6866
8155
|
/**
|
|
6867
|
-
*
|
|
8156
|
+
* Human-readable summary of why the job failed, in one or two sentences.
|
|
8157
|
+
*
|
|
8158
|
+
* Derived from error_code, not from the transcoder: this field never carries
|
|
8159
|
+
* raw tool output, command lines, stack traces, or file paths. Where a short
|
|
8160
|
+
* safe detail is available it is appended in parentheses, e.g. "(HTTP 404)".
|
|
8161
|
+
* The same text reaches you on the job.failed webhook payload.
|
|
8162
|
+
*
|
|
8163
|
+
* Match on error_code, not on this text. The wording is documentation, not
|
|
8164
|
+
* API surface, and may be reworded in any release.
|
|
6868
8165
|
*
|
|
6869
8166
|
* @generated from field: optional string error_message = 11;
|
|
6870
8167
|
*/
|
|
@@ -6954,6 +8251,16 @@ declare class Job extends Message<Job> {
|
|
|
6954
8251
|
* @generated from field: repeated transcodely.v1.ThumbnailResult thumbnail_results = 28;
|
|
6955
8252
|
*/
|
|
6956
8253
|
thumbnailResults: ThumbnailResult[];
|
|
8254
|
+
/**
|
|
8255
|
+
* Generated/processed subtitle artifacts (populated after the job
|
|
8256
|
+
* completes). Each entry carries the worker-built storage `url` plus the
|
|
8257
|
+
* `output_id` it was configured on. Auto-generated captions (operation
|
|
8258
|
+
* generate) additionally expose a segment-level transcript. Mirrors how
|
|
8259
|
+
* JobOutput.output_url surfaces rendition results.
|
|
8260
|
+
*
|
|
8261
|
+
* @generated from field: repeated transcodely.v1.SubtitleResult subtitle_results = 32;
|
|
8262
|
+
*/
|
|
8263
|
+
subtitleResults: SubtitleResult[];
|
|
6957
8264
|
/**
|
|
6958
8265
|
* Job-level output path template (echoed from request).
|
|
6959
8266
|
* Variables: {job_id}, {output_id}, {date}, {timestamp}, {codec}, {resolution}, {format}, {quality}, {output_index}, {uuid}
|
|
@@ -6972,6 +8279,72 @@ declare class Job extends Message<Job> {
|
|
|
6972
8279
|
* @generated from field: string object = 27;
|
|
6973
8280
|
*/
|
|
6974
8281
|
object: string;
|
|
8282
|
+
/**
|
|
8283
|
+
* Minimum charge for this job in EUR, locked at creation and never changed
|
|
8284
|
+
* retroactively. It is derived from the job's assigned billing class — a size
|
|
8285
|
+
* band (small/medium/large/extra-large) reflecting the compute the job is
|
|
8286
|
+
* guaranteed to cover — or, in legacy configurations, from the recommended
|
|
8287
|
+
* machine size; either way it is a stable quote, not re-derived from the
|
|
8288
|
+
* machine the job ultimately runs on. When the minimum charge is in effect,
|
|
8289
|
+
* the billed total for a successfully completed job is
|
|
8290
|
+
* max(sum of output costs, minimum_charge_eur) — see minimum_charge_applied
|
|
8291
|
+
* for whether it determined this job's total. The minimum applies only to
|
|
8292
|
+
* jobs that reach completed: a failed job is billed zero, and a canceled or
|
|
8293
|
+
* partial job is billed the un-floored sum of the outputs it did complete.
|
|
8294
|
+
* Absent when no minimum was computed for this job.
|
|
8295
|
+
*
|
|
8296
|
+
* @generated from field: optional double minimum_charge_eur = 30;
|
|
8297
|
+
*/
|
|
8298
|
+
minimumChargeEur?: number;
|
|
8299
|
+
/**
|
|
8300
|
+
* Whether minimum_charge_eur determined the job's most recently computed
|
|
8301
|
+
* total — true when the sum of output costs came in below the minimum and
|
|
8302
|
+
* the total was raised to it (estimated total after probe; actual total
|
|
8303
|
+
* after successful completion). When true, total_estimated_cost or
|
|
8304
|
+
* total_actual_cost exceeds the sum of the per-output cost fields, which
|
|
8305
|
+
* are never raised themselves. The minimum is a stable quote locked at
|
|
8306
|
+
* creation (from the job's billing class, or the recommended machine size in
|
|
8307
|
+
* legacy configurations); it is never re-derived from the machine the job
|
|
8308
|
+
* ultimately runs on.
|
|
8309
|
+
*
|
|
8310
|
+
* @generated from field: bool minimum_charge_applied = 31;
|
|
8311
|
+
*/
|
|
8312
|
+
minimumChargeApplied: boolean;
|
|
8313
|
+
/**
|
|
8314
|
+
* Additive fee line items (v1: AI caption generation). Fees are charged ON
|
|
8315
|
+
* TOP of the encode bill and sit OUTSIDE the minimum-charge floor:
|
|
8316
|
+
* billed total = max(sum of output costs, minimum_charge_eur) + sum of fees.
|
|
8317
|
+
* total_estimated_cost / total_actual_cost INCLUDE fees; this list exposes
|
|
8318
|
+
* the decomposition. Only live fees are listed — a fee that was voided
|
|
8319
|
+
* (job failed/canceled, or the artifact was never produced) is dropped
|
|
8320
|
+
* from the list and never charged. Server-set; read-only.
|
|
8321
|
+
*
|
|
8322
|
+
* @generated from field: repeated transcodely.v1.JobFee fees = 33;
|
|
8323
|
+
*/
|
|
8324
|
+
fees: JobFee[];
|
|
8325
|
+
/**
|
|
8326
|
+
* Hosted video ID used as the input source (video mode), echoed from the
|
|
8327
|
+
* request. Empty when the job was created with input_url or
|
|
8328
|
+
* input_origin_id. Server-set; read-only.
|
|
8329
|
+
*
|
|
8330
|
+
* @generated from field: string input_video_id = 34;
|
|
8331
|
+
*/
|
|
8332
|
+
inputVideoId: string;
|
|
8333
|
+
/**
|
|
8334
|
+
* Auto-generated chapter tracks, one per output whose generated caption track
|
|
8335
|
+
* had chapters enabled (SubtitleTrack.generate_chapters). Populated once the
|
|
8336
|
+
* auto-chapters pass ships; empty until then.
|
|
8337
|
+
*
|
|
8338
|
+
* @generated from field: repeated transcodely.v1.ChapterResult chapter_results = 35;
|
|
8339
|
+
*/
|
|
8340
|
+
chapterResults: ChapterResult[];
|
|
8341
|
+
/**
|
|
8342
|
+
* Clip range this job encodes (echoed from request). Absent when the job
|
|
8343
|
+
* encodes the full input.
|
|
8344
|
+
*
|
|
8345
|
+
* @generated from field: optional transcodely.v1.ClipConfig clip = 36;
|
|
8346
|
+
*/
|
|
8347
|
+
clip?: ClipConfig;
|
|
6975
8348
|
constructor(data?: PartialMessage<Job>);
|
|
6976
8349
|
static readonly runtime: typeof proto3;
|
|
6977
8350
|
static readonly typeName = "transcodely.v1.Job";
|
|
@@ -6981,6 +8354,120 @@ declare class Job extends Message<Job> {
|
|
|
6981
8354
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Job;
|
|
6982
8355
|
static equals(a: Job | PlainMessage<Job> | undefined, b: Job | PlainMessage<Job> | undefined): boolean;
|
|
6983
8356
|
}
|
|
8357
|
+
/**
|
|
8358
|
+
* A single additive fee line item on a job (see Job.fees). Fees are metered
|
|
8359
|
+
* charges for services performed alongside the encode (v1: AI caption
|
|
8360
|
+
* generation at EUR 0.05 per source minute). A fee is charged once per job,
|
|
8361
|
+
* estimated when the input probe supplies the source duration, and only
|
|
8362
|
+
* billed when the completion report shows the fee's artifact was actually
|
|
8363
|
+
* produced (no artifact, no fee). Fees are never absorbed by the per-job
|
|
8364
|
+
* minimum charge: billed total = max(sum of output costs, minimum_charge_eur)
|
|
8365
|
+
* + sum of fees. Read-only.
|
|
8366
|
+
*
|
|
8367
|
+
* @generated from message transcodely.v1.JobFee
|
|
8368
|
+
*/
|
|
8369
|
+
declare class JobFee extends Message<JobFee> {
|
|
8370
|
+
/**
|
|
8371
|
+
* Fee discriminator — the fee pricing rule's key. v1: "captions".
|
|
8372
|
+
*
|
|
8373
|
+
* @generated from field: string fee_type = 1;
|
|
8374
|
+
*/
|
|
8375
|
+
feeType: string;
|
|
8376
|
+
/**
|
|
8377
|
+
* Human-readable description of what the fee is for
|
|
8378
|
+
* (e.g., "AI Caption Generation").
|
|
8379
|
+
*
|
|
8380
|
+
* @generated from field: string description = 2;
|
|
8381
|
+
*/
|
|
8382
|
+
description: string;
|
|
8383
|
+
/**
|
|
8384
|
+
* Metering unit. v1: "source_minute" (input duration in minutes).
|
|
8385
|
+
*
|
|
8386
|
+
* @generated from field: string unit = 3;
|
|
8387
|
+
*/
|
|
8388
|
+
unit: string;
|
|
8389
|
+
/**
|
|
8390
|
+
* Metered quantity in `unit`s — the exact fraction, e.g. a 90-second
|
|
8391
|
+
* source is 1.5 source minutes. 0 until the input probe completes.
|
|
8392
|
+
*
|
|
8393
|
+
* @generated from field: double quantity = 4;
|
|
8394
|
+
*/
|
|
8395
|
+
quantity: number;
|
|
8396
|
+
/**
|
|
8397
|
+
* Price per unit in `currency`, locked at job creation from the
|
|
8398
|
+
* then-effective fee pricing rule (e.g., 0.05).
|
|
8399
|
+
*
|
|
8400
|
+
* @generated from field: double rate = 5;
|
|
8401
|
+
*/
|
|
8402
|
+
rate: number;
|
|
8403
|
+
/**
|
|
8404
|
+
* quantity x rate, in `currency`. 0 until the input probe completes.
|
|
8405
|
+
*
|
|
8406
|
+
* @generated from field: double amount = 6;
|
|
8407
|
+
*/
|
|
8408
|
+
amount: number;
|
|
8409
|
+
/**
|
|
8410
|
+
* Currency for rate/amount (ISO 4217 code, e.g., "EUR"). Matches the
|
|
8411
|
+
* job-level currency field.
|
|
8412
|
+
*
|
|
8413
|
+
* @generated from field: string currency = 7;
|
|
8414
|
+
*/
|
|
8415
|
+
currency: string;
|
|
8416
|
+
constructor(data?: PartialMessage<JobFee>);
|
|
8417
|
+
static readonly runtime: typeof proto3;
|
|
8418
|
+
static readonly typeName = "transcodely.v1.JobFee";
|
|
8419
|
+
static readonly fields: FieldList;
|
|
8420
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): JobFee;
|
|
8421
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): JobFee;
|
|
8422
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): JobFee;
|
|
8423
|
+
static equals(a: JobFee | PlainMessage<JobFee> | undefined, b: JobFee | PlainMessage<JobFee> | undefined): boolean;
|
|
8424
|
+
}
|
|
8425
|
+
/**
|
|
8426
|
+
* ClipConfig selects a sub-range of the input to encode instead of the full
|
|
8427
|
+
* duration. Applies to the whole job: every output is encoded from the
|
|
8428
|
+
* clipped range, and thumbnails/sprites are computed within it. Cuts are
|
|
8429
|
+
* frame-accurate (outputs are always re-encoded). Billing keys off the
|
|
8430
|
+
* produced output duration, so clipping reduces cost accordingly (the
|
|
8431
|
+
* per-job minimum charge, when in effect, still applies).
|
|
8432
|
+
*
|
|
8433
|
+
* Bounds are stored with 0.1ms (4-decimal) precision; finer-grained values
|
|
8434
|
+
* are rounded. The minimum clip length is 1ms. A clip of {0, 0} is treated
|
|
8435
|
+
* as no clip (encode the full input).
|
|
8436
|
+
*
|
|
8437
|
+
* @generated from message transcodely.v1.ClipConfig
|
|
8438
|
+
*/
|
|
8439
|
+
declare class ClipConfig extends Message<ClipConfig> {
|
|
8440
|
+
/**
|
|
8441
|
+
* Where the clip starts, in seconds from the beginning of the input.
|
|
8442
|
+
* Default 0 (start of input). Must be within the input's duration:
|
|
8443
|
+
* validated against the probed duration, failing the job with error code
|
|
8444
|
+
* `input_clip_out_of_range` when out of range.
|
|
8445
|
+
* The upper bound is a CEL expression rather than double.lte: combining
|
|
8446
|
+
* gte+lte trips a broken double.gte_lte composite rule in the pinned
|
|
8447
|
+
* protovalidate-go ("no such attribute(s): rules").
|
|
8448
|
+
*
|
|
8449
|
+
* @generated from field: double start_seconds = 1;
|
|
8450
|
+
*/
|
|
8451
|
+
startSeconds: number;
|
|
8452
|
+
/**
|
|
8453
|
+
* Where the clip ends, in seconds from the beginning of the input.
|
|
8454
|
+
* 0 (or unset) means end of input. When set, must be at least 0.001s
|
|
8455
|
+
* greater than start_seconds and no greater than the probed input
|
|
8456
|
+
* duration; otherwise the job fails at probe time with error code
|
|
8457
|
+
* `input_clip_out_of_range`.
|
|
8458
|
+
*
|
|
8459
|
+
* @generated from field: double end_seconds = 2;
|
|
8460
|
+
*/
|
|
8461
|
+
endSeconds: number;
|
|
8462
|
+
constructor(data?: PartialMessage<ClipConfig>);
|
|
8463
|
+
static readonly runtime: typeof proto3;
|
|
8464
|
+
static readonly typeName = "transcodely.v1.ClipConfig";
|
|
8465
|
+
static readonly fields: FieldList;
|
|
8466
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ClipConfig;
|
|
8467
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ClipConfig;
|
|
8468
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ClipConfig;
|
|
8469
|
+
static equals(a: ClipConfig | PlainMessage<ClipConfig> | undefined, b: ClipConfig | PlainMessage<ClipConfig> | undefined): boolean;
|
|
8470
|
+
}
|
|
6984
8471
|
/**
|
|
6985
8472
|
* Request to create a new job.
|
|
6986
8473
|
*
|
|
@@ -7011,6 +8498,18 @@ declare class CreateJobRequest extends Message<CreateJobRequest> {
|
|
|
7011
8498
|
* @generated from field: optional string input_path = 10;
|
|
7012
8499
|
*/
|
|
7013
8500
|
inputPath?: string;
|
|
8501
|
+
/**
|
|
8502
|
+
* Hosted video ID to use as the input source (video mode).
|
|
8503
|
+
* The job's input is resolved server-side from the referenced video's
|
|
8504
|
+
* original source (falling back to its highest-bitrate rendition if the
|
|
8505
|
+
* ingest source is gone). Outputs are written to the video's managed
|
|
8506
|
+
* storage and linked to it. Use this OR input_url OR input_origin_id.
|
|
8507
|
+
* Primarily for retro-captioning an existing hosted video with a
|
|
8508
|
+
* captions-only output.
|
|
8509
|
+
*
|
|
8510
|
+
* @generated from field: optional string input_video_id = 13;
|
|
8511
|
+
*/
|
|
8512
|
+
inputVideoId?: string;
|
|
7014
8513
|
/**
|
|
7015
8514
|
* Origin ID for outputs (origin mode).
|
|
7016
8515
|
* If specified, all outputs will be written to this origin.
|
|
@@ -7026,7 +8525,8 @@ declare class CreateJobRequest extends Message<CreateJobRequest> {
|
|
|
7026
8525
|
*/
|
|
7027
8526
|
outputs: OutputSpec[];
|
|
7028
8527
|
/**
|
|
7029
|
-
* Job priority (affects
|
|
8528
|
+
* Job priority (affects worker selection and scheduling order; has no
|
|
8529
|
+
* effect on cost — pricing is driven by codec/resolution/framerate/quality).
|
|
7030
8530
|
*
|
|
7031
8531
|
* @generated from field: transcodely.v1.JobPriority priority = 3;
|
|
7032
8532
|
*/
|
|
@@ -7105,6 +8605,14 @@ declare class CreateJobRequest extends Message<CreateJobRequest> {
|
|
|
7105
8605
|
* @generated from field: optional string app_id = 21;
|
|
7106
8606
|
*/
|
|
7107
8607
|
appId?: string;
|
|
8608
|
+
/**
|
|
8609
|
+
* Encode only a sub-range of the input (job-level; applies to all outputs).
|
|
8610
|
+
* Omit to encode the full input. See ClipConfig for range semantics and
|
|
8611
|
+
* probe-time validation.
|
|
8612
|
+
*
|
|
8613
|
+
* @generated from field: optional transcodely.v1.ClipConfig clip = 22;
|
|
8614
|
+
*/
|
|
8615
|
+
clip?: ClipConfig;
|
|
7108
8616
|
constructor(data?: PartialMessage<CreateJobRequest>);
|
|
7109
8617
|
static readonly runtime: typeof proto3;
|
|
7110
8618
|
static readonly typeName = "transcodely.v1.CreateJobRequest";
|
|
@@ -7186,11 +8694,14 @@ declare class GetJobResponse extends Message<GetJobResponse> {
|
|
|
7186
8694
|
/**
|
|
7187
8695
|
* Request to list jobs.
|
|
7188
8696
|
*
|
|
8697
|
+
* Filters combine with AND: a job is returned only if it satisfies every filter
|
|
8698
|
+
* supplied on the request. Omitted filters are not applied.
|
|
8699
|
+
*
|
|
7189
8700
|
* @generated from message transcodely.v1.ListJobsRequest
|
|
7190
8701
|
*/
|
|
7191
8702
|
declare class ListJobsRequest extends Message<ListJobsRequest> {
|
|
7192
8703
|
/**
|
|
7193
|
-
* Optional status filter.
|
|
8704
|
+
* Optional status filter. Superseded by `statuses` — see that field.
|
|
7194
8705
|
*
|
|
7195
8706
|
* @generated from field: optional transcodely.v1.JobStatus status = 1;
|
|
7196
8707
|
*/
|
|
@@ -7210,6 +8721,45 @@ declare class ListJobsRequest extends Message<ListJobsRequest> {
|
|
|
7210
8721
|
* @generated from field: optional string app_id = 3;
|
|
7211
8722
|
*/
|
|
7212
8723
|
appId?: string;
|
|
8724
|
+
/**
|
|
8725
|
+
* Only include jobs created at or after this timestamp (RFC 3339). Inclusive.
|
|
8726
|
+
*
|
|
8727
|
+
* @generated from field: optional google.protobuf.Timestamp created_after = 4;
|
|
8728
|
+
*/
|
|
8729
|
+
createdAfter?: Timestamp;
|
|
8730
|
+
/**
|
|
8731
|
+
* Only include jobs created at or before this timestamp (RFC 3339). Inclusive.
|
|
8732
|
+
*
|
|
8733
|
+
* @generated from field: optional google.protobuf.Timestamp created_before = 5;
|
|
8734
|
+
*/
|
|
8735
|
+
createdBefore?: Timestamp;
|
|
8736
|
+
/**
|
|
8737
|
+
* Filter by several statuses at once: a job matches if its status is any one
|
|
8738
|
+
* of the listed values (OR within the field), e.g. [failed, canceled] to list
|
|
8739
|
+
* everything that did not finish.
|
|
8740
|
+
*
|
|
8741
|
+
* Precedence: when this field is non-empty it replaces `status` entirely and
|
|
8742
|
+
* `status` is ignored — the two are never intersected. Send one or the other.
|
|
8743
|
+
* `status` remains supported for existing clients.
|
|
8744
|
+
*
|
|
8745
|
+
* @generated from field: repeated transcodely.v1.JobStatus statuses = 6;
|
|
8746
|
+
*/
|
|
8747
|
+
statuses: JobStatus[];
|
|
8748
|
+
/**
|
|
8749
|
+
* Filter on the job's user-provided metadata (the `metadata` map supplied at
|
|
8750
|
+
* create time). Every pair must be present on the job with exactly that value
|
|
8751
|
+
* (AND across pairs); a job carrying additional metadata keys still matches.
|
|
8752
|
+
* Values are compared as exact strings — no prefix, range, or wildcard match.
|
|
8753
|
+
* Jobs created without metadata never match a non-empty filter.
|
|
8754
|
+
*
|
|
8755
|
+
* Example: {"batch": "2026-07", "tenant": "acme"} returns only jobs tagged
|
|
8756
|
+
* with both.
|
|
8757
|
+
*
|
|
8758
|
+
* @generated from field: map<string, string> metadata = 7;
|
|
8759
|
+
*/
|
|
8760
|
+
metadata: {
|
|
8761
|
+
[key: string]: string;
|
|
8762
|
+
};
|
|
7213
8763
|
constructor(data?: PartialMessage<ListJobsRequest>);
|
|
7214
8764
|
static readonly runtime: typeof proto3;
|
|
7215
8765
|
static readonly typeName = "transcodely.v1.ListJobsRequest";
|
|
@@ -7459,7 +9009,11 @@ declare enum VideoVisibility {
|
|
|
7459
9009
|
*/
|
|
7460
9010
|
UNLISTED = 2,
|
|
7461
9011
|
/**
|
|
7462
|
-
*
|
|
9012
|
+
* Not playable via the public player or embed: the player page returns 404 and
|
|
9013
|
+
* embed_url/embed_code are never populated. Authenticated API reads
|
|
9014
|
+
* (VideoService.Get/List/Watch) for the owning app DO return signed, expiring
|
|
9015
|
+
* playback_url/poster_url once the video is "ready", so the owner can watch a
|
|
9016
|
+
* private video via the API even though it stays off the public player.
|
|
7463
9017
|
*
|
|
7464
9018
|
* @generated from enum value: VIDEO_VISIBILITY_PRIVATE = 3;
|
|
7465
9019
|
*/
|
|
@@ -7484,7 +9038,8 @@ declare class Video extends Message<Video> {
|
|
|
7484
9038
|
*/
|
|
7485
9039
|
appId: string;
|
|
7486
9040
|
/**
|
|
7487
|
-
* How the video was created: "upload" (direct upload
|
|
9041
|
+
* How the video was created: "upload" (direct upload or CreateFromUrl ingest)
|
|
9042
|
+
* or "job" (from a managed transcoding job created via JobService.Create).
|
|
7488
9043
|
*
|
|
7489
9044
|
* @generated from field: string source = 3;
|
|
7490
9045
|
*/
|
|
@@ -7540,20 +9095,38 @@ declare class Video extends Message<Video> {
|
|
|
7540
9095
|
*/
|
|
7541
9096
|
preset?: string;
|
|
7542
9097
|
/**
|
|
7543
|
-
* Playback
|
|
9098
|
+
* Playback surface — all computed per-request and never stored. Populated for
|
|
9099
|
+
* "ready" videos of any visibility (public, unlisted, and — on authenticated
|
|
9100
|
+
* owner reads — private); absent otherwise. On apps with CDN token auth
|
|
9101
|
+
* enabled the URL is signed and expiring (HMAC token + expiry query params);
|
|
9102
|
+
* it is re-issued on every read, so clients should use the value from the
|
|
9103
|
+
* latest response rather than caching it. On apps not yet migrated to token
|
|
9104
|
+
* auth the URL is unsigned and access control comes from the managed-storage
|
|
9105
|
+
* bucket policy; unsigned URLs are never issued for private videos.
|
|
7544
9106
|
*
|
|
7545
9107
|
* @generated from field: optional string playback_url = 20;
|
|
7546
9108
|
*/
|
|
7547
9109
|
playbackUrl?: string;
|
|
7548
9110
|
/**
|
|
9111
|
+
* Public embed surface — populated only for playable videos (status "ready"
|
|
9112
|
+
* and NOT private). Always absent for private videos.
|
|
9113
|
+
*
|
|
7549
9114
|
* @generated from field: optional string embed_url = 21;
|
|
7550
9115
|
*/
|
|
7551
9116
|
embedUrl?: string;
|
|
7552
9117
|
/**
|
|
9118
|
+
* Ready-to-paste responsive HTML embed snippet: a 16:9 aspect-ratio wrapper
|
|
9119
|
+
* div containing a lazy-loaded, borderless <iframe src=embed_url> that fills
|
|
9120
|
+
* its container (no fixed width/height). Same population rules as embed_url.
|
|
9121
|
+
*
|
|
7553
9122
|
* @generated from field: optional string embed_code = 22;
|
|
7554
9123
|
*/
|
|
7555
9124
|
embedCode?: string;
|
|
7556
9125
|
/**
|
|
9126
|
+
* Poster image URL, resolved from the worker-reported poster key. Signed and
|
|
9127
|
+
* expiring on token-auth apps, unsigned otherwise — same rules and per-request
|
|
9128
|
+
* re-issuance as playback_url. Absent when the video has no generated poster.
|
|
9129
|
+
*
|
|
7557
9130
|
* @generated from field: optional string poster_url = 23;
|
|
7558
9131
|
*/
|
|
7559
9132
|
posterUrl?: string;
|
|
@@ -7561,12 +9134,36 @@ declare class Video extends Message<Video> {
|
|
|
7561
9134
|
* @generated from field: optional double duration_seconds = 24;
|
|
7562
9135
|
*/
|
|
7563
9136
|
durationSeconds?: number;
|
|
9137
|
+
/**
|
|
9138
|
+
* Animated hover-preview URLs, populated when the video was created with
|
|
9139
|
+
* hover_previews enabled and its transcode produced the animated artifacts.
|
|
9140
|
+
* Same resolution and per-request re-issuance rules as poster_url: signed and
|
|
9141
|
+
* expiring on token-auth apps, unsigned otherwise, absent for private videos
|
|
9142
|
+
* without a signable key. hover_preview_url is the animated WebP; the muted
|
|
9143
|
+
* MP4 loop rides hover_preview_mp4_url. Either may be absent (e.g. the WebP is
|
|
9144
|
+
* skipped for previews longer than 10 s). Field numbers 44/45.
|
|
9145
|
+
*
|
|
9146
|
+
* @generated from field: optional string hover_preview_url = 44;
|
|
9147
|
+
*/
|
|
9148
|
+
hoverPreviewUrl?: string;
|
|
9149
|
+
/**
|
|
9150
|
+
* @generated from field: optional string hover_preview_mp4_url = 45;
|
|
9151
|
+
*/
|
|
9152
|
+
hoverPreviewMp4Url?: string;
|
|
7564
9153
|
/**
|
|
7565
9154
|
* Renditions available for playback.
|
|
7566
9155
|
*
|
|
7567
9156
|
* @generated from field: repeated transcodely.v1.VideoRendition renditions = 25;
|
|
7568
9157
|
*/
|
|
7569
9158
|
renditions: VideoRendition[];
|
|
9159
|
+
/**
|
|
9160
|
+
* Caption/subtitle tracks attached to this video, in the order they were
|
|
9161
|
+
* attached. Populated for videos whose transcode produced caption files —
|
|
9162
|
+
* either in the same job or by a later captions-only job. Empty otherwise.
|
|
9163
|
+
*
|
|
9164
|
+
* @generated from field: repeated transcodely.v1.VideoTextTrack text_tracks = 49;
|
|
9165
|
+
*/
|
|
9166
|
+
textTracks: VideoTextTrack[];
|
|
7570
9167
|
/**
|
|
7571
9168
|
* Storage and cost transparency.
|
|
7572
9169
|
*
|
|
@@ -7591,6 +9188,31 @@ declare class Video extends Message<Video> {
|
|
|
7591
9188
|
* @generated from field: optional google.protobuf.Timestamp ready_at = 42;
|
|
7592
9189
|
*/
|
|
7593
9190
|
readyAt?: Timestamp;
|
|
9191
|
+
/**
|
|
9192
|
+
* Source lifecycle (managed hosting only). These concern ONLY the original
|
|
9193
|
+
* uploaded source file; renditions and playback are never affected.
|
|
9194
|
+
*
|
|
9195
|
+
* Whether this video's source file is exempt from the app's
|
|
9196
|
+
* delete_source_after_days lifecycle rule. Set via UpdateVideo.
|
|
9197
|
+
*
|
|
9198
|
+
* @generated from field: bool source_pinned = 46;
|
|
9199
|
+
*/
|
|
9200
|
+
sourcePinned: boolean;
|
|
9201
|
+
/**
|
|
9202
|
+
* When the source file is scheduled to be deleted by the app's
|
|
9203
|
+
* delete_source_after_days rule. Server-set, read-only; present only while a
|
|
9204
|
+
* deletion is scheduled (cleared on pin, on setting change, and on delete).
|
|
9205
|
+
*
|
|
9206
|
+
* @generated from field: optional google.protobuf.Timestamp source_scheduled_for_deletion_at = 47;
|
|
9207
|
+
*/
|
|
9208
|
+
sourceScheduledForDeletionAt?: Timestamp;
|
|
9209
|
+
/**
|
|
9210
|
+
* When the source file was deleted by the lifecycle rule. Server-set,
|
|
9211
|
+
* read-only. Once set, re-processing falls back to the best rendition.
|
|
9212
|
+
*
|
|
9213
|
+
* @generated from field: optional google.protobuf.Timestamp source_deleted_at = 48;
|
|
9214
|
+
*/
|
|
9215
|
+
sourceDeletedAt?: Timestamp;
|
|
7594
9216
|
/**
|
|
7595
9217
|
* Resource type discriminator. Always "video" for this message.
|
|
7596
9218
|
* Lets webhook consumers and polyglot SDKs identify the resource without
|
|
@@ -7651,19 +9273,103 @@ declare class VideoRendition extends Message<VideoRendition> {
|
|
|
7651
9273
|
*/
|
|
7652
9274
|
height: number;
|
|
7653
9275
|
/**
|
|
7654
|
-
* Encoded file size in bytes.
|
|
9276
|
+
* Encoded file size in bytes.
|
|
9277
|
+
*
|
|
9278
|
+
* @generated from field: int64 size_bytes = 7;
|
|
9279
|
+
*/
|
|
9280
|
+
sizeBytes: bigint;
|
|
9281
|
+
constructor(data?: PartialMessage<VideoRendition>);
|
|
9282
|
+
static readonly runtime: typeof proto3;
|
|
9283
|
+
static readonly typeName = "transcodely.v1.VideoRendition";
|
|
9284
|
+
static readonly fields: FieldList;
|
|
9285
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoRendition;
|
|
9286
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoRendition;
|
|
9287
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoRendition;
|
|
9288
|
+
static equals(a: VideoRendition | PlainMessage<VideoRendition> | undefined, b: VideoRendition | PlainMessage<VideoRendition> | undefined): boolean;
|
|
9289
|
+
}
|
|
9290
|
+
/**
|
|
9291
|
+
* A caption/subtitle track attached to a video for playback.
|
|
9292
|
+
*
|
|
9293
|
+
* @generated from message transcodely.v1.VideoTextTrack
|
|
9294
|
+
*/
|
|
9295
|
+
declare class VideoTextTrack extends Message<VideoTextTrack> {
|
|
9296
|
+
/**
|
|
9297
|
+
* Unique text track identifier (e.g., "trk_a1b2c3d4e5f6g7").
|
|
9298
|
+
*
|
|
9299
|
+
* @generated from field: string id = 1;
|
|
9300
|
+
*/
|
|
9301
|
+
id: string;
|
|
9302
|
+
/**
|
|
9303
|
+
* Track role, as understood by players: "subtitles", "captions", "chapters",
|
|
9304
|
+
* or "descriptions".
|
|
9305
|
+
*
|
|
9306
|
+
* @generated from field: string kind = 2;
|
|
9307
|
+
*/
|
|
9308
|
+
kind: string;
|
|
9309
|
+
/**
|
|
9310
|
+
* Language of the track: the ISO 639-2 code that was requested, or the code
|
|
9311
|
+
* detected by speech recognition when the track was generated with "auto".
|
|
9312
|
+
* Empty when the producing job recorded no language.
|
|
9313
|
+
*
|
|
9314
|
+
* @generated from field: string language = 3;
|
|
9315
|
+
*/
|
|
9316
|
+
language: string;
|
|
9317
|
+
/**
|
|
9318
|
+
* Human-readable track label shown in the player's caption menu (e.g.
|
|
9319
|
+
* "English"). Empty when none was supplied.
|
|
9320
|
+
*
|
|
9321
|
+
* @generated from field: string label = 4;
|
|
9322
|
+
*/
|
|
9323
|
+
label: string;
|
|
9324
|
+
/**
|
|
9325
|
+
* Subtitle file format: "webvtt", "srt", "ttml", or "ass".
|
|
9326
|
+
*
|
|
9327
|
+
* @generated from field: string format = 5;
|
|
9328
|
+
*/
|
|
9329
|
+
format: string;
|
|
9330
|
+
/**
|
|
9331
|
+
* Whether the track was produced by speech recognition (a subtitle track with
|
|
9332
|
+
* the "generate" operation) rather than supplied or extracted from the source.
|
|
9333
|
+
*
|
|
9334
|
+
* @generated from field: bool auto_generated = 6;
|
|
9335
|
+
*/
|
|
9336
|
+
autoGenerated: boolean;
|
|
9337
|
+
/**
|
|
9338
|
+
* Whether the track is already listed inside the video's HLS/DASH manifest.
|
|
9339
|
+
* When true, players discover it from the manifest during normal playback and
|
|
9340
|
+
* must NOT also attach it as a separate track — doing so lists the language
|
|
9341
|
+
* twice. False for tracks produced by a captions-only job that ran after the
|
|
9342
|
+
* transcode, which are attached as sidecar files instead.
|
|
9343
|
+
*
|
|
9344
|
+
* @generated from field: bool in_manifest = 7;
|
|
9345
|
+
*/
|
|
9346
|
+
inManifest: boolean;
|
|
9347
|
+
/**
|
|
9348
|
+
* URL of the caption file. Computed per-request and never stored: on apps with
|
|
9349
|
+
* CDN token auth enabled it is signed and expiring, and it is re-issued on
|
|
9350
|
+
* every read, so clients should use the value from the latest response rather
|
|
9351
|
+
* than caching it. On apps not yet migrated to token auth it is unsigned and
|
|
9352
|
+
* access control comes from the managed-storage bucket policy; unsigned URLs
|
|
9353
|
+
* are never issued for private videos. Absent when no URL may be issued —
|
|
9354
|
+
* same rules as poster_url.
|
|
9355
|
+
*
|
|
9356
|
+
* @generated from field: optional string url = 8;
|
|
9357
|
+
*/
|
|
9358
|
+
url?: string;
|
|
9359
|
+
/**
|
|
9360
|
+
* When the track was attached to the video.
|
|
7655
9361
|
*
|
|
7656
|
-
* @generated from field:
|
|
9362
|
+
* @generated from field: google.protobuf.Timestamp created_at = 9;
|
|
7657
9363
|
*/
|
|
7658
|
-
|
|
7659
|
-
constructor(data?: PartialMessage<
|
|
9364
|
+
createdAt?: Timestamp;
|
|
9365
|
+
constructor(data?: PartialMessage<VideoTextTrack>);
|
|
7660
9366
|
static readonly runtime: typeof proto3;
|
|
7661
|
-
static readonly typeName = "transcodely.v1.
|
|
9367
|
+
static readonly typeName = "transcodely.v1.VideoTextTrack";
|
|
7662
9368
|
static readonly fields: FieldList;
|
|
7663
|
-
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>):
|
|
7664
|
-
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>):
|
|
7665
|
-
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>):
|
|
7666
|
-
static equals(a:
|
|
9369
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoTextTrack;
|
|
9370
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoTextTrack;
|
|
9371
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoTextTrack;
|
|
9372
|
+
static equals(a: VideoTextTrack | PlainMessage<VideoTextTrack> | undefined, b: VideoTextTrack | PlainMessage<VideoTextTrack> | undefined): boolean;
|
|
7667
9373
|
}
|
|
7668
9374
|
/**
|
|
7669
9375
|
* Request to create a presigned upload URL for direct client upload.
|
|
@@ -7672,7 +9378,8 @@ declare class VideoRendition extends Message<VideoRendition> {
|
|
|
7672
9378
|
*/
|
|
7673
9379
|
declare class CreateUploadRequest extends Message<CreateUploadRequest> {
|
|
7674
9380
|
/**
|
|
7675
|
-
* App to create the video under. Required
|
|
9381
|
+
* App to create the video under. Required. The app must have managed hosting
|
|
9382
|
+
* enabled (AppService.EnableHosting) or the call fails with FailedPrecondition.
|
|
7676
9383
|
*
|
|
7677
9384
|
* @generated from field: string app_id = 8;
|
|
7678
9385
|
*/
|
|
@@ -7714,7 +9421,7 @@ declare class CreateUploadRequest extends Message<CreateUploadRequest> {
|
|
|
7714
9421
|
*/
|
|
7715
9422
|
tags: string[];
|
|
7716
9423
|
/**
|
|
7717
|
-
* Visibility setting. Defaults to "
|
|
9424
|
+
* Visibility setting. Defaults to "unlisted" if not specified.
|
|
7718
9425
|
*
|
|
7719
9426
|
* @generated from field: optional string visibility = 7;
|
|
7720
9427
|
*/
|
|
@@ -7729,6 +9436,15 @@ declare class CreateUploadRequest extends Message<CreateUploadRequest> {
|
|
|
7729
9436
|
* @generated from field: optional string preset = 9;
|
|
7730
9437
|
*/
|
|
7731
9438
|
preset?: string;
|
|
9439
|
+
/**
|
|
9440
|
+
* When true, attach an animated hover-preview (mode=animated, worker smart
|
|
9441
|
+
* defaults: ~4 s, 12 fps, 320 px) to the managed transcode, in addition to the
|
|
9442
|
+
* poster. Free — animated previews add no cost. The produced WebP/MP4 loop
|
|
9443
|
+
* surface as Video.hover_preview_url / hover_preview_mp4_url once ready.
|
|
9444
|
+
*
|
|
9445
|
+
* @generated from field: bool hover_previews = 10;
|
|
9446
|
+
*/
|
|
9447
|
+
hoverPreviews: boolean;
|
|
7732
9448
|
constructor(data?: PartialMessage<CreateUploadRequest>);
|
|
7733
9449
|
static readonly runtime: typeof proto3;
|
|
7734
9450
|
static readonly typeName = "transcodely.v1.CreateUploadRequest";
|
|
@@ -7813,6 +9529,102 @@ declare class CompleteUploadResponse extends Message<CompleteUploadResponse> {
|
|
|
7813
9529
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CompleteUploadResponse;
|
|
7814
9530
|
static equals(a: CompleteUploadResponse | PlainMessage<CompleteUploadResponse> | undefined, b: CompleteUploadResponse | PlainMessage<CompleteUploadResponse> | undefined): boolean;
|
|
7815
9531
|
}
|
|
9532
|
+
/**
|
|
9533
|
+
* Request to create a hosted video from a remote URL (one-call ingest).
|
|
9534
|
+
*
|
|
9535
|
+
* @generated from message transcodely.v1.CreateFromUrlRequest
|
|
9536
|
+
*/
|
|
9537
|
+
declare class CreateFromUrlRequest extends Message<CreateFromUrlRequest> {
|
|
9538
|
+
/**
|
|
9539
|
+
* App to create the video under. Required. The app must have managed hosting
|
|
9540
|
+
* enabled (AppService.EnableHosting) or the call fails with FailedPrecondition.
|
|
9541
|
+
*
|
|
9542
|
+
* @generated from field: string app_id = 1;
|
|
9543
|
+
*/
|
|
9544
|
+
appId: string;
|
|
9545
|
+
/**
|
|
9546
|
+
* Publicly-reachable source URL to ingest. Must be http:// or https:// —
|
|
9547
|
+
* storage-origin schemes (gs://, s3://) are not accepted here; use an origin
|
|
9548
|
+
* and JobService.Create for those. The URL is fetched by the worker at
|
|
9549
|
+
* transcode time (the API never fetches it); private/internal addresses are
|
|
9550
|
+
* rejected up front and again, authoritatively, at fetch time (SSRF defense).
|
|
9551
|
+
*
|
|
9552
|
+
* @generated from field: string url = 2;
|
|
9553
|
+
*/
|
|
9554
|
+
url: string;
|
|
9555
|
+
/**
|
|
9556
|
+
* Optional title for the video.
|
|
9557
|
+
*
|
|
9558
|
+
* @generated from field: optional string title = 3;
|
|
9559
|
+
*/
|
|
9560
|
+
title?: string;
|
|
9561
|
+
/**
|
|
9562
|
+
* Optional description.
|
|
9563
|
+
*
|
|
9564
|
+
* @generated from field: optional string description = 4;
|
|
9565
|
+
*/
|
|
9566
|
+
description?: string;
|
|
9567
|
+
/**
|
|
9568
|
+
* Optional tags for categorization (max 20).
|
|
9569
|
+
*
|
|
9570
|
+
* @generated from field: repeated string tags = 5;
|
|
9571
|
+
*/
|
|
9572
|
+
tags: string[];
|
|
9573
|
+
/**
|
|
9574
|
+
* Visibility setting. Defaults to "unlisted" if not specified.
|
|
9575
|
+
*
|
|
9576
|
+
* @generated from field: optional string visibility = 6;
|
|
9577
|
+
*/
|
|
9578
|
+
visibility?: string;
|
|
9579
|
+
/**
|
|
9580
|
+
* Optional preset reference for the auto-transcode job.
|
|
9581
|
+
* Accepts either a preset ID (e.g., "pst_abc123") or slug (e.g., "gaming_1080p_60_standard").
|
|
9582
|
+
* When provided, the preset's settings drive the encoding instead of the
|
|
9583
|
+
* app's default auto-profile ABR ladder.
|
|
9584
|
+
*
|
|
9585
|
+
* @generated from field: optional string preset = 7;
|
|
9586
|
+
*/
|
|
9587
|
+
preset?: string;
|
|
9588
|
+
/**
|
|
9589
|
+
* When true, attach an animated hover-preview (mode=animated, worker smart
|
|
9590
|
+
* defaults) to the managed transcode, in addition to the poster. Free. The
|
|
9591
|
+
* produced loop surfaces as Video.hover_preview_url / hover_preview_mp4_url.
|
|
9592
|
+
*
|
|
9593
|
+
* @generated from field: bool hover_previews = 8;
|
|
9594
|
+
*/
|
|
9595
|
+
hoverPreviews: boolean;
|
|
9596
|
+
constructor(data?: PartialMessage<CreateFromUrlRequest>);
|
|
9597
|
+
static readonly runtime: typeof proto3;
|
|
9598
|
+
static readonly typeName = "transcodely.v1.CreateFromUrlRequest";
|
|
9599
|
+
static readonly fields: FieldList;
|
|
9600
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateFromUrlRequest;
|
|
9601
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateFromUrlRequest;
|
|
9602
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateFromUrlRequest;
|
|
9603
|
+
static equals(a: CreateFromUrlRequest | PlainMessage<CreateFromUrlRequest> | undefined, b: CreateFromUrlRequest | PlainMessage<CreateFromUrlRequest> | undefined): boolean;
|
|
9604
|
+
}
|
|
9605
|
+
/**
|
|
9606
|
+
* Response from creating a video from a URL.
|
|
9607
|
+
*
|
|
9608
|
+
* @generated from message transcodely.v1.CreateFromUrlResponse
|
|
9609
|
+
*/
|
|
9610
|
+
declare class CreateFromUrlResponse extends Message<CreateFromUrlResponse> {
|
|
9611
|
+
/**
|
|
9612
|
+
* The created video (status: "processing"). No video.uploaded event fires for
|
|
9613
|
+
* URL ingest (no bytes are uploaded); the job lifecycle plus video.ready /
|
|
9614
|
+
* video.failed cover the outcome.
|
|
9615
|
+
*
|
|
9616
|
+
* @generated from field: transcodely.v1.Video video = 1;
|
|
9617
|
+
*/
|
|
9618
|
+
video?: Video;
|
|
9619
|
+
constructor(data?: PartialMessage<CreateFromUrlResponse>);
|
|
9620
|
+
static readonly runtime: typeof proto3;
|
|
9621
|
+
static readonly typeName = "transcodely.v1.CreateFromUrlResponse";
|
|
9622
|
+
static readonly fields: FieldList;
|
|
9623
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateFromUrlResponse;
|
|
9624
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateFromUrlResponse;
|
|
9625
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateFromUrlResponse;
|
|
9626
|
+
static equals(a: CreateFromUrlResponse | PlainMessage<CreateFromUrlResponse> | undefined, b: CreateFromUrlResponse | PlainMessage<CreateFromUrlResponse> | undefined): boolean;
|
|
9627
|
+
}
|
|
7816
9628
|
/**
|
|
7817
9629
|
* A single part in a multipart upload with its presigned URL.
|
|
7818
9630
|
*
|
|
@@ -7874,7 +9686,8 @@ declare class CompletedPart extends Message<CompletedPart> {
|
|
|
7874
9686
|
*/
|
|
7875
9687
|
declare class CreateMultipartUploadRequest extends Message<CreateMultipartUploadRequest> {
|
|
7876
9688
|
/**
|
|
7877
|
-
* App to create the video under. Required
|
|
9689
|
+
* App to create the video under. Required. The app must have managed hosting
|
|
9690
|
+
* enabled (AppService.EnableHosting) or the call fails with FailedPrecondition.
|
|
7878
9691
|
*
|
|
7879
9692
|
* @generated from field: string app_id = 1;
|
|
7880
9693
|
*/
|
|
@@ -7941,6 +9754,14 @@ declare class CreateMultipartUploadRequest extends Message<CreateMultipartUpload
|
|
|
7941
9754
|
* @generated from field: optional string preset = 14;
|
|
7942
9755
|
*/
|
|
7943
9756
|
preset?: string;
|
|
9757
|
+
/**
|
|
9758
|
+
* When true, attach an animated hover-preview (mode=animated, worker smart
|
|
9759
|
+
* defaults) to the managed transcode, in addition to the poster. Free. The
|
|
9760
|
+
* produced loop surfaces as Video.hover_preview_url / hover_preview_mp4_url.
|
|
9761
|
+
*
|
|
9762
|
+
* @generated from field: bool hover_previews = 15;
|
|
9763
|
+
*/
|
|
9764
|
+
hoverPreviews: boolean;
|
|
7944
9765
|
constructor(data?: PartialMessage<CreateMultipartUploadRequest>);
|
|
7945
9766
|
static readonly runtime: typeof proto3;
|
|
7946
9767
|
static readonly typeName = "transcodely.v1.CreateMultipartUploadRequest";
|
|
@@ -8288,7 +10109,9 @@ declare class UpdateVideoRequest extends Message<UpdateVideoRequest> {
|
|
|
8288
10109
|
*/
|
|
8289
10110
|
description?: string;
|
|
8290
10111
|
/**
|
|
8291
|
-
* Updated tags (replaces existing tags).
|
|
10112
|
+
* Updated tags (replaces existing tags). Because proto3 repeated fields carry
|
|
10113
|
+
* no presence, an empty list is indistinguishable from "unset" on the wire
|
|
10114
|
+
* and leaves existing tags unchanged. To remove all tags, set clear_tags.
|
|
8292
10115
|
*
|
|
8293
10116
|
* @generated from field: repeated string tags = 4;
|
|
8294
10117
|
*/
|
|
@@ -8299,6 +10122,21 @@ declare class UpdateVideoRequest extends Message<UpdateVideoRequest> {
|
|
|
8299
10122
|
* @generated from field: optional string visibility = 5;
|
|
8300
10123
|
*/
|
|
8301
10124
|
visibility?: string;
|
|
10125
|
+
/**
|
|
10126
|
+
* Set to true to remove all tags. Mutually exclusive with tags.
|
|
10127
|
+
*
|
|
10128
|
+
* @generated from field: optional bool clear_tags = 6;
|
|
10129
|
+
*/
|
|
10130
|
+
clearTags?: boolean;
|
|
10131
|
+
/**
|
|
10132
|
+
* Pin or unpin this video's source file against the app's
|
|
10133
|
+
* delete_source_after_days lifecycle rule. Pinning also immediately clears any
|
|
10134
|
+
* pending deletion schedule. Unpinning does NOT reschedule — the sweeper
|
|
10135
|
+
* re-evaluates later with a fresh warning webhook.
|
|
10136
|
+
*
|
|
10137
|
+
* @generated from field: optional bool source_pinned = 7;
|
|
10138
|
+
*/
|
|
10139
|
+
sourcePinned?: boolean;
|
|
8302
10140
|
constructor(data?: PartialMessage<UpdateVideoRequest>);
|
|
8303
10141
|
static readonly runtime: typeof proto3;
|
|
8304
10142
|
static readonly typeName = "transcodely.v1.UpdateVideoRequest";
|
|
@@ -8508,6 +10346,19 @@ declare class UsageSummary extends Message<UsageSummary> {
|
|
|
8508
10346
|
* @generated from field: string currency = 31;
|
|
8509
10347
|
*/
|
|
8510
10348
|
currency: string;
|
|
10349
|
+
/**
|
|
10350
|
+
* Per-day usage breakdown for the billing period identified by
|
|
10351
|
+
* billing_month, oldest day first. With a billing anchor day other than 1,
|
|
10352
|
+
* the period spans into the following calendar month, so dates are not
|
|
10353
|
+
* limited to the named month. Only days with recorded activity are present
|
|
10354
|
+
* (no zero-fill): a day is omitted when it had no storage snapshot, no
|
|
10355
|
+
* egress, and no video encoded. Powers the dashboard's usage-trend charts.
|
|
10356
|
+
* Populated for both app-scoped and org-scoped (aggregated across the
|
|
10357
|
+
* org's apps) calls.
|
|
10358
|
+
*
|
|
10359
|
+
* @generated from field: repeated transcodely.v1.DailyUsage daily = 40;
|
|
10360
|
+
*/
|
|
10361
|
+
daily: DailyUsage[];
|
|
8511
10362
|
constructor(data?: PartialMessage<UsageSummary>);
|
|
8512
10363
|
static readonly runtime: typeof proto3;
|
|
8513
10364
|
static readonly typeName = "transcodely.v1.UsageSummary";
|
|
@@ -8517,6 +10368,311 @@ declare class UsageSummary extends Message<UsageSummary> {
|
|
|
8517
10368
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UsageSummary;
|
|
8518
10369
|
static equals(a: UsageSummary | PlainMessage<UsageSummary> | undefined, b: UsageSummary | PlainMessage<UsageSummary> | undefined): boolean;
|
|
8519
10370
|
}
|
|
10371
|
+
/**
|
|
10372
|
+
* One calendar day's slice of usage within a billing period (see
|
|
10373
|
+
* UsageSummary.daily for period semantics). All monetary fields are in the
|
|
10374
|
+
* parent UsageSummary's `currency`.
|
|
10375
|
+
*
|
|
10376
|
+
* @generated from message transcodely.v1.DailyUsage
|
|
10377
|
+
*/
|
|
10378
|
+
declare class DailyUsage extends Message<DailyUsage> {
|
|
10379
|
+
/**
|
|
10380
|
+
* Calendar day in YYYY-MM-DD format (UTC).
|
|
10381
|
+
*
|
|
10382
|
+
* @generated from field: string date = 1;
|
|
10383
|
+
*/
|
|
10384
|
+
date: string;
|
|
10385
|
+
/**
|
|
10386
|
+
* Total stored bytes as of this day's snapshot. Point-in-time (the day's
|
|
10387
|
+
* recorded storage level), not an increment over the prior day. Zero when
|
|
10388
|
+
* no snapshot was taken that day.
|
|
10389
|
+
*
|
|
10390
|
+
* @generated from field: int64 storage_bytes = 2;
|
|
10391
|
+
*/
|
|
10392
|
+
storageBytes: bigint;
|
|
10393
|
+
/**
|
|
10394
|
+
* Bytes egressed during this day (sum of the day's hourly egress records).
|
|
10395
|
+
*
|
|
10396
|
+
* @generated from field: int64 egress_bytes = 3;
|
|
10397
|
+
*/
|
|
10398
|
+
egressBytes: bigint;
|
|
10399
|
+
/**
|
|
10400
|
+
* CDN requests served during this day (sum of the day's hourly records).
|
|
10401
|
+
*
|
|
10402
|
+
* @generated from field: int64 request_count = 4;
|
|
10403
|
+
*/
|
|
10404
|
+
requestCount: bigint;
|
|
10405
|
+
/**
|
|
10406
|
+
* Encoding cost for videos created on this day, derived from the linked
|
|
10407
|
+
* transcoding jobs' actual cost. Zero when no billable video was created.
|
|
10408
|
+
*
|
|
10409
|
+
* @generated from field: double encoding_cost = 5;
|
|
10410
|
+
*/
|
|
10411
|
+
encodingCost: number;
|
|
10412
|
+
constructor(data?: PartialMessage<DailyUsage>);
|
|
10413
|
+
static readonly runtime: typeof proto3;
|
|
10414
|
+
static readonly typeName = "transcodely.v1.DailyUsage";
|
|
10415
|
+
static readonly fields: FieldList;
|
|
10416
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DailyUsage;
|
|
10417
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DailyUsage;
|
|
10418
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DailyUsage;
|
|
10419
|
+
static equals(a: DailyUsage | PlainMessage<DailyUsage> | undefined, b: DailyUsage | PlainMessage<DailyUsage> | undefined): boolean;
|
|
10420
|
+
}
|
|
10421
|
+
/**
|
|
10422
|
+
* Request for a single video's playback stats.
|
|
10423
|
+
*
|
|
10424
|
+
* @generated from message transcodely.v1.GetStatsRequest
|
|
10425
|
+
*/
|
|
10426
|
+
declare class GetStatsRequest extends Message<GetStatsRequest> {
|
|
10427
|
+
/**
|
|
10428
|
+
* Video ID to fetch stats for.
|
|
10429
|
+
*
|
|
10430
|
+
* @generated from field: string video_id = 1;
|
|
10431
|
+
*/
|
|
10432
|
+
videoId: string;
|
|
10433
|
+
/**
|
|
10434
|
+
* Optional inclusive start of the UTC date range, YYYY-MM-DD (e.g.
|
|
10435
|
+
* "2026-07-01"). Omitted means unbounded (all retained history).
|
|
10436
|
+
*
|
|
10437
|
+
* @generated from field: optional string start_date = 2;
|
|
10438
|
+
*/
|
|
10439
|
+
startDate?: string;
|
|
10440
|
+
/**
|
|
10441
|
+
* Optional inclusive end of the UTC date range, YYYY-MM-DD. Omitted means
|
|
10442
|
+
* unbounded (up to today).
|
|
10443
|
+
*
|
|
10444
|
+
* @generated from field: optional string end_date = 3;
|
|
10445
|
+
*/
|
|
10446
|
+
endDate?: string;
|
|
10447
|
+
constructor(data?: PartialMessage<GetStatsRequest>);
|
|
10448
|
+
static readonly runtime: typeof proto3;
|
|
10449
|
+
static readonly typeName = "transcodely.v1.GetStatsRequest";
|
|
10450
|
+
static readonly fields: FieldList;
|
|
10451
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetStatsRequest;
|
|
10452
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetStatsRequest;
|
|
10453
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetStatsRequest;
|
|
10454
|
+
static equals(a: GetStatsRequest | PlainMessage<GetStatsRequest> | undefined, b: GetStatsRequest | PlainMessage<GetStatsRequest> | undefined): boolean;
|
|
10455
|
+
}
|
|
10456
|
+
/**
|
|
10457
|
+
* Response with a video's daily playback stats and range totals.
|
|
10458
|
+
*
|
|
10459
|
+
* @generated from message transcodely.v1.GetStatsResponse
|
|
10460
|
+
*/
|
|
10461
|
+
declare class GetStatsResponse extends Message<GetStatsResponse> {
|
|
10462
|
+
/**
|
|
10463
|
+
* Per-day rows within the requested range, oldest day first. Only days with
|
|
10464
|
+
* recorded activity are present (no zero-fill).
|
|
10465
|
+
*
|
|
10466
|
+
* @generated from field: repeated transcodely.v1.VideoStatsDay daily = 1;
|
|
10467
|
+
*/
|
|
10468
|
+
daily: VideoStatsDay[];
|
|
10469
|
+
/**
|
|
10470
|
+
* Totals across the returned days.
|
|
10471
|
+
*
|
|
10472
|
+
* @generated from field: transcodely.v1.VideoStatsTotals totals = 2;
|
|
10473
|
+
*/
|
|
10474
|
+
totals?: VideoStatsTotals;
|
|
10475
|
+
constructor(data?: PartialMessage<GetStatsResponse>);
|
|
10476
|
+
static readonly runtime: typeof proto3;
|
|
10477
|
+
static readonly typeName = "transcodely.v1.GetStatsResponse";
|
|
10478
|
+
static readonly fields: FieldList;
|
|
10479
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetStatsResponse;
|
|
10480
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetStatsResponse;
|
|
10481
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetStatsResponse;
|
|
10482
|
+
static equals(a: GetStatsResponse | PlainMessage<GetStatsResponse> | undefined, b: GetStatsResponse | PlainMessage<GetStatsResponse> | undefined): boolean;
|
|
10483
|
+
}
|
|
10484
|
+
/**
|
|
10485
|
+
* One UTC day of playback stats for a video.
|
|
10486
|
+
*
|
|
10487
|
+
* @generated from message transcodely.v1.VideoStatsDay
|
|
10488
|
+
*/
|
|
10489
|
+
declare class VideoStatsDay extends Message<VideoStatsDay> {
|
|
10490
|
+
/**
|
|
10491
|
+
* Calendar day in YYYY-MM-DD format (UTC).
|
|
10492
|
+
*
|
|
10493
|
+
* @generated from field: string date = 1;
|
|
10494
|
+
*/
|
|
10495
|
+
date: string;
|
|
10496
|
+
/**
|
|
10497
|
+
* Number of playback starts (one 'play' beacon per pageview that began
|
|
10498
|
+
* playing).
|
|
10499
|
+
*
|
|
10500
|
+
* @generated from field: int32 plays = 2;
|
|
10501
|
+
*/
|
|
10502
|
+
plays: number;
|
|
10503
|
+
/**
|
|
10504
|
+
* Approximate watch time in seconds. Derived from playback heartbeats
|
|
10505
|
+
* (heartbeat count × the ~10s heartbeat interval), not exact wall-clock
|
|
10506
|
+
* time — a partial final interval still counts as a whole one.
|
|
10507
|
+
*
|
|
10508
|
+
* @generated from field: int64 watch_seconds = 3;
|
|
10509
|
+
*/
|
|
10510
|
+
watchSeconds: bigint;
|
|
10511
|
+
/**
|
|
10512
|
+
* Distinct viewers, counted by an anonymous per-pageview session id (no PII).
|
|
10513
|
+
*
|
|
10514
|
+
* @generated from field: int32 unique_viewers = 4;
|
|
10515
|
+
*/
|
|
10516
|
+
uniqueViewers: number;
|
|
10517
|
+
constructor(data?: PartialMessage<VideoStatsDay>);
|
|
10518
|
+
static readonly runtime: typeof proto3;
|
|
10519
|
+
static readonly typeName = "transcodely.v1.VideoStatsDay";
|
|
10520
|
+
static readonly fields: FieldList;
|
|
10521
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoStatsDay;
|
|
10522
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoStatsDay;
|
|
10523
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoStatsDay;
|
|
10524
|
+
static equals(a: VideoStatsDay | PlainMessage<VideoStatsDay> | undefined, b: VideoStatsDay | PlainMessage<VideoStatsDay> | undefined): boolean;
|
|
10525
|
+
}
|
|
10526
|
+
/**
|
|
10527
|
+
* Aggregated playback totals over a date range.
|
|
10528
|
+
*
|
|
10529
|
+
* @generated from message transcodely.v1.VideoStatsTotals
|
|
10530
|
+
*/
|
|
10531
|
+
declare class VideoStatsTotals extends Message<VideoStatsTotals> {
|
|
10532
|
+
/**
|
|
10533
|
+
* Sum of daily plays.
|
|
10534
|
+
*
|
|
10535
|
+
* @generated from field: int32 plays = 1;
|
|
10536
|
+
*/
|
|
10537
|
+
plays: number;
|
|
10538
|
+
/**
|
|
10539
|
+
* Sum of daily approximate watch seconds.
|
|
10540
|
+
*
|
|
10541
|
+
* @generated from field: int64 watch_seconds = 2;
|
|
10542
|
+
*/
|
|
10543
|
+
watchSeconds: bigint;
|
|
10544
|
+
/**
|
|
10545
|
+
* Sum of per-day unique viewers. A viewer active on N distinct days counts N
|
|
10546
|
+
* times (it is not de-duplicated across days); for a single-day range it is
|
|
10547
|
+
* exact.
|
|
10548
|
+
*
|
|
10549
|
+
* @generated from field: int32 unique_viewers = 3;
|
|
10550
|
+
*/
|
|
10551
|
+
uniqueViewers: number;
|
|
10552
|
+
constructor(data?: PartialMessage<VideoStatsTotals>);
|
|
10553
|
+
static readonly runtime: typeof proto3;
|
|
10554
|
+
static readonly typeName = "transcodely.v1.VideoStatsTotals";
|
|
10555
|
+
static readonly fields: FieldList;
|
|
10556
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoStatsTotals;
|
|
10557
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoStatsTotals;
|
|
10558
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoStatsTotals;
|
|
10559
|
+
static equals(a: VideoStatsTotals | PlainMessage<VideoStatsTotals> | undefined, b: VideoStatsTotals | PlainMessage<VideoStatsTotals> | undefined): boolean;
|
|
10560
|
+
}
|
|
10561
|
+
/**
|
|
10562
|
+
* Request for an app's top videos by plays.
|
|
10563
|
+
*
|
|
10564
|
+
* @generated from message transcodely.v1.ListTopVideosRequest
|
|
10565
|
+
*/
|
|
10566
|
+
declare class ListTopVideosRequest extends Message<ListTopVideosRequest> {
|
|
10567
|
+
/**
|
|
10568
|
+
* Optional app filter. API-key callers may omit it (their key's app is used)
|
|
10569
|
+
* or pass their own app; a different app is rejected with PermissionDenied.
|
|
10570
|
+
* Portal/JWT callers pass the app to scope the leaderboard; omitted resolves
|
|
10571
|
+
* to the org's first app.
|
|
10572
|
+
*
|
|
10573
|
+
* @generated from field: optional string app_id = 1;
|
|
10574
|
+
*/
|
|
10575
|
+
appId?: string;
|
|
10576
|
+
/**
|
|
10577
|
+
* Optional inclusive UTC date range bounds, YYYY-MM-DD. Omitted means
|
|
10578
|
+
* unbounded on that side.
|
|
10579
|
+
*
|
|
10580
|
+
* @generated from field: optional string start_date = 2;
|
|
10581
|
+
*/
|
|
10582
|
+
startDate?: string;
|
|
10583
|
+
/**
|
|
10584
|
+
* @generated from field: optional string end_date = 3;
|
|
10585
|
+
*/
|
|
10586
|
+
endDate?: string;
|
|
10587
|
+
/**
|
|
10588
|
+
* Maximum number of videos to return (1-100). Defaults to 10.
|
|
10589
|
+
*
|
|
10590
|
+
* @generated from field: optional int32 limit = 4;
|
|
10591
|
+
*/
|
|
10592
|
+
limit?: number;
|
|
10593
|
+
constructor(data?: PartialMessage<ListTopVideosRequest>);
|
|
10594
|
+
static readonly runtime: typeof proto3;
|
|
10595
|
+
static readonly typeName = "transcodely.v1.ListTopVideosRequest";
|
|
10596
|
+
static readonly fields: FieldList;
|
|
10597
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListTopVideosRequest;
|
|
10598
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListTopVideosRequest;
|
|
10599
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListTopVideosRequest;
|
|
10600
|
+
static equals(a: ListTopVideosRequest | PlainMessage<ListTopVideosRequest> | undefined, b: ListTopVideosRequest | PlainMessage<ListTopVideosRequest> | undefined): boolean;
|
|
10601
|
+
}
|
|
10602
|
+
/**
|
|
10603
|
+
* Response with an app's ranked videos.
|
|
10604
|
+
*
|
|
10605
|
+
* @generated from message transcodely.v1.ListTopVideosResponse
|
|
10606
|
+
*/
|
|
10607
|
+
declare class ListTopVideosResponse extends Message<ListTopVideosResponse> {
|
|
10608
|
+
/**
|
|
10609
|
+
* Videos ordered by plays (then watch time) descending.
|
|
10610
|
+
*
|
|
10611
|
+
* @generated from field: repeated transcodely.v1.TopVideo items = 1;
|
|
10612
|
+
*/
|
|
10613
|
+
items: TopVideo[];
|
|
10614
|
+
constructor(data?: PartialMessage<ListTopVideosResponse>);
|
|
10615
|
+
static readonly runtime: typeof proto3;
|
|
10616
|
+
static readonly typeName = "transcodely.v1.ListTopVideosResponse";
|
|
10617
|
+
static readonly fields: FieldList;
|
|
10618
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListTopVideosResponse;
|
|
10619
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListTopVideosResponse;
|
|
10620
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListTopVideosResponse;
|
|
10621
|
+
static equals(a: ListTopVideosResponse | PlainMessage<ListTopVideosResponse> | undefined, b: ListTopVideosResponse | PlainMessage<ListTopVideosResponse> | undefined): boolean;
|
|
10622
|
+
}
|
|
10623
|
+
/**
|
|
10624
|
+
* A single ranked video with its playback totals over the requested range.
|
|
10625
|
+
*
|
|
10626
|
+
* @generated from message transcodely.v1.TopVideo
|
|
10627
|
+
*/
|
|
10628
|
+
declare class TopVideo extends Message<TopVideo> {
|
|
10629
|
+
/**
|
|
10630
|
+
* Video ID.
|
|
10631
|
+
*
|
|
10632
|
+
* @generated from field: string video_id = 1;
|
|
10633
|
+
*/
|
|
10634
|
+
videoId: string;
|
|
10635
|
+
/**
|
|
10636
|
+
* Video title, if set.
|
|
10637
|
+
*
|
|
10638
|
+
* @generated from field: optional string title = 2;
|
|
10639
|
+
*/
|
|
10640
|
+
title?: string;
|
|
10641
|
+
/**
|
|
10642
|
+
* Poster image URL, computed from the app's CDN config. Absent when no CDN
|
|
10643
|
+
* is configured or the video has no poster.
|
|
10644
|
+
*
|
|
10645
|
+
* @generated from field: optional string poster_url = 3;
|
|
10646
|
+
*/
|
|
10647
|
+
posterUrl?: string;
|
|
10648
|
+
/**
|
|
10649
|
+
* Total plays over the range.
|
|
10650
|
+
*
|
|
10651
|
+
* @generated from field: int64 plays = 4;
|
|
10652
|
+
*/
|
|
10653
|
+
plays: bigint;
|
|
10654
|
+
/**
|
|
10655
|
+
* Total approximate watch seconds over the range.
|
|
10656
|
+
*
|
|
10657
|
+
* @generated from field: int64 watch_seconds = 5;
|
|
10658
|
+
*/
|
|
10659
|
+
watchSeconds: bigint;
|
|
10660
|
+
/**
|
|
10661
|
+
* Unique viewers over the range, summed per day (a viewer active on N days
|
|
10662
|
+
* counts N times; exact for a single-day range). See VideoStatsTotals.
|
|
10663
|
+
*
|
|
10664
|
+
* @generated from field: int64 unique_viewers = 6;
|
|
10665
|
+
*/
|
|
10666
|
+
uniqueViewers: bigint;
|
|
10667
|
+
constructor(data?: PartialMessage<TopVideo>);
|
|
10668
|
+
static readonly runtime: typeof proto3;
|
|
10669
|
+
static readonly typeName = "transcodely.v1.TopVideo";
|
|
10670
|
+
static readonly fields: FieldList;
|
|
10671
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TopVideo;
|
|
10672
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TopVideo;
|
|
10673
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TopVideo;
|
|
10674
|
+
static equals(a: TopVideo | PlainMessage<TopVideo> | undefined, b: TopVideo | PlainMessage<TopVideo> | undefined): boolean;
|
|
10675
|
+
}
|
|
8520
10676
|
|
|
8521
10677
|
/**
|
|
8522
10678
|
* Public types for the webhook surface — the discriminated union customers
|
|
@@ -8548,12 +10704,18 @@ interface EventBase {
|
|
|
8548
10704
|
};
|
|
8549
10705
|
}
|
|
8550
10706
|
/**
|
|
8551
|
-
* Every event
|
|
8552
|
-
* `
|
|
8553
|
-
*
|
|
8554
|
-
*
|
|
10707
|
+
* Every event this SDK version knows, discriminated by `type`. Each arm's
|
|
10708
|
+
* `data` is a decoded resource, so once an event is narrowed to this union —
|
|
10709
|
+
* via {@link isKnownEvent} (then a `switch`) or {@link isEventType} — reading
|
|
10710
|
+
* `event.data` yields the exact resource type.
|
|
10711
|
+
*
|
|
10712
|
+
* Kept free of any `string` catch-all arm on purpose: a `type: string` member
|
|
10713
|
+
* is a supertype of every literal, so TypeScript keeps it live in every
|
|
10714
|
+
* `case`, collapsing `data` back to `unknown` and defeating narrowing (the
|
|
10715
|
+
* bug in transcodely-js#34). Forward-compat lives in the sibling
|
|
10716
|
+
* {@link UnknownWebhookEvent} instead.
|
|
8555
10717
|
*/
|
|
8556
|
-
type
|
|
10718
|
+
type KnownWebhookEvent = (EventBase & {
|
|
8557
10719
|
type: "job.created";
|
|
8558
10720
|
data: Job;
|
|
8559
10721
|
}) | (EventBase & {
|
|
@@ -8583,9 +10745,18 @@ type WebhookEvent = (EventBase & {
|
|
|
8583
10745
|
}) | (EventBase & {
|
|
8584
10746
|
type: "video.uploaded";
|
|
8585
10747
|
data: Video;
|
|
10748
|
+
}) | (EventBase & {
|
|
10749
|
+
type: "video.ready";
|
|
10750
|
+
data: Video;
|
|
10751
|
+
}) | (EventBase & {
|
|
10752
|
+
type: "video.failed";
|
|
10753
|
+
data: Video;
|
|
8586
10754
|
}) | (EventBase & {
|
|
8587
10755
|
type: "video.deleted";
|
|
8588
10756
|
data: Video;
|
|
10757
|
+
}) | (EventBase & {
|
|
10758
|
+
type: "video.source_scheduled_for_deletion";
|
|
10759
|
+
data: Video;
|
|
8589
10760
|
}) | (EventBase & {
|
|
8590
10761
|
type: "app.created";
|
|
8591
10762
|
data: App;
|
|
@@ -8593,11 +10764,60 @@ type WebhookEvent = (EventBase & {
|
|
|
8593
10764
|
type: "app.updated";
|
|
8594
10765
|
data: App;
|
|
8595
10766
|
}) | (EventBase & {
|
|
10767
|
+
type: "app.spend_limit_warning";
|
|
10768
|
+
data: SpendLimitNotification;
|
|
10769
|
+
}) | (EventBase & {
|
|
10770
|
+
type: "app.spend_limit_exceeded";
|
|
10771
|
+
data: SpendLimitNotification;
|
|
10772
|
+
});
|
|
10773
|
+
/**
|
|
10774
|
+
* Forward-compat arm: an event whose `type` this SDK version does not know
|
|
10775
|
+
* because the API added it after this release. The envelope still verifies
|
|
10776
|
+
* and parses; `data` is the raw decoded JSON object, left as `unknown` for the
|
|
10777
|
+
* consumer to inspect. Handle it in the `else` branch of {@link isKnownEvent}
|
|
10778
|
+
* or the `default:` of a `switch`.
|
|
10779
|
+
*/
|
|
10780
|
+
interface UnknownWebhookEvent extends EventBase {
|
|
8596
10781
|
type: string;
|
|
8597
10782
|
data: unknown;
|
|
8598
|
-
}
|
|
10783
|
+
}
|
|
8599
10784
|
/**
|
|
8600
|
-
*
|
|
10785
|
+
* A verified, decoded webhook event: the closed, precisely-typed
|
|
10786
|
+
* {@link KnownWebhookEvent} union plus the open {@link UnknownWebhookEvent}
|
|
10787
|
+
* forward-compat arm.
|
|
10788
|
+
*
|
|
10789
|
+
* This is a structural superset of `KnownWebhookEvent` — every known arm is
|
|
10790
|
+
* still assignable to `WebhookEvent`, and `WebhookEvent["type"]` is still
|
|
10791
|
+
* `string` — so code written against the previous single-union shape keeps
|
|
10792
|
+
* compiling. To *narrow* by `type`, first funnel through {@link isKnownEvent}
|
|
10793
|
+
* or {@link isEventType}; a bare `switch (event.type)` on the open union
|
|
10794
|
+
* cannot narrow (see {@link KnownWebhookEvent}).
|
|
10795
|
+
*/
|
|
10796
|
+
type WebhookEvent = KnownWebhookEvent | UnknownWebhookEvent;
|
|
10797
|
+
/**
|
|
10798
|
+
* Payload of the `app.spend_limit_warning` and `app.spend_limit_exceeded`
|
|
10799
|
+
* events. Unlike the resource-carrying events, these carry a small notification
|
|
10800
|
+
* object (snake_case, as delivered on the wire) rather than a resource snapshot,
|
|
10801
|
+
* so `data` is the raw parsed JSON — it is not run through the resource codec.
|
|
10802
|
+
*/
|
|
10803
|
+
interface SpendLimitNotification {
|
|
10804
|
+
/** The app the spend limit belongs to (`app_*`). */
|
|
10805
|
+
app_id: string;
|
|
10806
|
+
/** Inclusive start of the billing period, an RFC 3339 full-date in UTC (e.g. `"2026-01-01"`). */
|
|
10807
|
+
period_start: string;
|
|
10808
|
+
/** Exclusive end of the billing period, an RFC 3339 full-date in UTC (e.g. `"2026-02-01"`). */
|
|
10809
|
+
period_end: string;
|
|
10810
|
+
/** The app's monthly spend limit in EUR. */
|
|
10811
|
+
limit_eur: number;
|
|
10812
|
+
/** Recorded spend for the period in EUR at the time the event fired. */
|
|
10813
|
+
spent_eur: number;
|
|
10814
|
+
/** Threshold crossed: `80` for the warning event, `100` for the breach event. */
|
|
10815
|
+
threshold_pct: 80 | 100;
|
|
10816
|
+
/** Currency of the amounts in this payload. Always `"EUR"`. */
|
|
10817
|
+
currency: "EUR";
|
|
10818
|
+
}
|
|
10819
|
+
/**
|
|
10820
|
+
* The 18 concrete webhook event types the API can emit. Mirrors the source of
|
|
8601
10821
|
* truth in `domain.WebhookEventTypes()` (api/internal/domain/webhook.go). The
|
|
8602
10822
|
* `"*"` wildcard is a subscription-only value and is intentionally absent.
|
|
8603
10823
|
*
|
|
@@ -8605,9 +10825,45 @@ type WebhookEvent = (EventBase & {
|
|
|
8605
10825
|
* catalog-drift regression test can compare this set against the discriminated
|
|
8606
10826
|
* union literals above.
|
|
8607
10827
|
*/
|
|
8608
|
-
declare const WEBHOOK_EVENT_TYPES: readonly ["job.created", "job.succeeded", "job.failed", "job.canceled", "job.progress", "output.created", "output.ready", "output.failed", "output.progress", "video.uploaded", "video.deleted", "app.created", "app.updated"];
|
|
10828
|
+
declare const WEBHOOK_EVENT_TYPES: readonly ["job.created", "job.succeeded", "job.failed", "job.canceled", "job.progress", "output.created", "output.ready", "output.failed", "output.progress", "video.uploaded", "video.ready", "video.failed", "video.deleted", "video.source_scheduled_for_deletion", "app.created", "app.updated", "app.spend_limit_warning", "app.spend_limit_exceeded"];
|
|
8609
10829
|
/** A concrete event type the API can emit (excludes the `"*"` wildcard). */
|
|
8610
10830
|
type WebhookEventType = (typeof WEBHOOK_EVENT_TYPES)[number];
|
|
10831
|
+
/**
|
|
10832
|
+
* Narrow an event to the closed {@link KnownWebhookEvent} union, which this
|
|
10833
|
+
* SDK version types precisely. Gate a `switch (event.type)` on it so each
|
|
10834
|
+
* `case` narrows `event.data` to the right resource (with exhaustiveness
|
|
10835
|
+
* checking); the `else` branch keeps {@link UnknownWebhookEvent} — a raw
|
|
10836
|
+
* `data: unknown` — so events added to the API after this SDK release still
|
|
10837
|
+
* flow through untyped rather than being dropped.
|
|
10838
|
+
*
|
|
10839
|
+
* @example
|
|
10840
|
+
* ```ts
|
|
10841
|
+
* if (Webhooks.isKnownEvent(event)) {
|
|
10842
|
+
* switch (event.type) {
|
|
10843
|
+
* case "job.succeeded":
|
|
10844
|
+
* console.log(event.data.id); // event.data is a fully-typed Job
|
|
10845
|
+
* break;
|
|
10846
|
+
* }
|
|
10847
|
+
* } else {
|
|
10848
|
+
* console.log("unhandled future event", event.type);
|
|
10849
|
+
* }
|
|
10850
|
+
* ```
|
|
10851
|
+
*/
|
|
10852
|
+
declare function isKnownEvent(event: WebhookEvent): event is KnownWebhookEvent;
|
|
10853
|
+
/**
|
|
10854
|
+
* Narrow an event to a single known type. Convenient for a receiver that only
|
|
10855
|
+
* cares about one or two events and would rather not `switch`.
|
|
10856
|
+
*
|
|
10857
|
+
* @example
|
|
10858
|
+
* ```ts
|
|
10859
|
+
* if (Webhooks.isEventType(event, "output.ready")) {
|
|
10860
|
+
* console.log(event.data.outputUrl); // event.data is a fully-typed JobOutput
|
|
10861
|
+
* }
|
|
10862
|
+
* ```
|
|
10863
|
+
*/
|
|
10864
|
+
declare function isEventType<T extends WebhookEventType>(event: WebhookEvent, type: T): event is Extract<KnownWebhookEvent, {
|
|
10865
|
+
type: T;
|
|
10866
|
+
}>;
|
|
8611
10867
|
|
|
8612
10868
|
/**
|
|
8613
10869
|
* Query and replay events. Each event the SDK hands back is the same
|
|
@@ -10883,6 +13139,11 @@ declare class Videos {
|
|
|
10883
13139
|
constructor(transport: Transport);
|
|
10884
13140
|
createUpload(req: PartialMessage<CreateUploadRequest>, opts?: CallOptions): Promise<CreateUploadResponse>;
|
|
10885
13141
|
completeUpload(req: PartialMessage<CompleteUploadRequest>, opts?: CallOptions): Promise<CompleteUploadResponse>;
|
|
13142
|
+
/** Create a hosted video from a publicly-reachable http(s) URL in one call —
|
|
13143
|
+
* no separate upload step. Returns the video in "processing" status; the
|
|
13144
|
+
* app must have managed hosting enabled. Playback/embed URLs populate once
|
|
13145
|
+
* the video reaches "ready" (subscribe to `video.ready` or `watch`). */
|
|
13146
|
+
createFromUrl(req: PartialMessage<CreateFromUrlRequest>, opts?: CallOptions): Promise<Video>;
|
|
10886
13147
|
createMultipartUpload(req: PartialMessage<CreateMultipartUploadRequest>, opts?: CallOptions): Promise<CreateMultipartUploadResponse>;
|
|
10887
13148
|
getUploadPartUrls(req: PartialMessage<GetUploadPartUrlsRequest>, opts?: CallOptions): Promise<GetUploadPartUrlsResponse>;
|
|
10888
13149
|
completeMultipartUpload(req: PartialMessage<CompleteMultipartUploadRequest>, opts?: CallOptions): Promise<CompleteMultipartUploadResponse>;
|
|
@@ -10897,6 +13158,14 @@ declare class Videos {
|
|
|
10897
13158
|
includeHeartbeats?: boolean;
|
|
10898
13159
|
}): AsyncIterable<WatchVideoResponse>;
|
|
10899
13160
|
getUsage(req?: PartialMessage<GetUsageRequest>, opts?: CallOptions): Promise<GetUsageResponse>;
|
|
13161
|
+
/** Get playback analytics for a single video: plays, watch time, and unique
|
|
13162
|
+
* viewers aggregated per UTC day, plus range totals. Stats come from a
|
|
13163
|
+
* best-effort playback beacon rolled up hourly, so recent activity may lag by
|
|
13164
|
+
* up to an hour. Returns the full response (`daily` rows + `totals`). */
|
|
13165
|
+
getStats(req: PartialMessage<GetStatsRequest>, opts?: CallOptions): Promise<GetStatsResponse>;
|
|
13166
|
+
/** List an app's top videos ranked by plays over a date range. Returns the
|
|
13167
|
+
* full response (`items`). */
|
|
13168
|
+
listTopVideos(req?: PartialMessage<ListTopVideosRequest>, opts?: CallOptions): Promise<ListTopVideosResponse>;
|
|
10900
13169
|
}
|
|
10901
13170
|
|
|
10902
13171
|
/**
|
|
@@ -10985,6 +13254,8 @@ declare function constructEvent(rawBody: string | Uint8Array | Buffer, sigHeader
|
|
|
10985
13254
|
|
|
10986
13255
|
declare const Webhooks: {
|
|
10987
13256
|
readonly constructEvent: typeof constructEvent;
|
|
13257
|
+
readonly isKnownEvent: typeof isKnownEvent;
|
|
13258
|
+
readonly isEventType: typeof isEventType;
|
|
10988
13259
|
readonly WebhookError: typeof WebhookError;
|
|
10989
13260
|
readonly WebhookSignatureError: typeof WebhookSignatureError;
|
|
10990
13261
|
readonly WebhookTimestampError: typeof WebhookTimestampError;
|
|
@@ -11015,6 +13286,7 @@ declare class Transcodely {
|
|
|
11015
13286
|
private _health;
|
|
11016
13287
|
private _webhookEndpoints;
|
|
11017
13288
|
private _events;
|
|
13289
|
+
private _billing;
|
|
11018
13290
|
constructor(config: TranscodelyConfig);
|
|
11019
13291
|
/** ID of the most recent successful or failed request, Stripe-style. */
|
|
11020
13292
|
get lastRequestId(): string | undefined;
|
|
@@ -11030,6 +13302,11 @@ declare class Transcodely {
|
|
|
11030
13302
|
get health(): Health;
|
|
11031
13303
|
get webhookEndpoints(): WebhookEndpoints;
|
|
11032
13304
|
get events(): Events;
|
|
13305
|
+
/**
|
|
13306
|
+
* The organization's invoices. Needs a dashboard session token for an org
|
|
13307
|
+
* owner plus `organizationId` in the client config; API keys are rejected.
|
|
13308
|
+
*/
|
|
13309
|
+
get billing(): Billing;
|
|
11033
13310
|
/**
|
|
11034
13311
|
* Stateless verify-and-decode helper. `client.webhooks.constructEvent(...)`
|
|
11035
13312
|
* mirrors the Stripe SDK convention. The namespace is also exported at the
|
|
@@ -11040,7 +13317,7 @@ declare class Transcodely {
|
|
|
11040
13317
|
}
|
|
11041
13318
|
|
|
11042
13319
|
/** SDK version. Bumped by release-please from package.json on each tag. */
|
|
11043
|
-
declare const SDK_VERSION = "0.3.
|
|
13320
|
+
declare const SDK_VERSION = "0.3.2";
|
|
11044
13321
|
/**
|
|
11045
13322
|
* API version this SDK release is pinned to. Sent on every request as
|
|
11046
13323
|
* `Transcodely-Version`. Customers can override per-client via the
|
|
@@ -11050,4 +13327,4 @@ declare const API_VERSION = "2026-05-03";
|
|
|
11050
13327
|
/** Default base URL for the production Transcodely API. */
|
|
11051
13328
|
declare const DEFAULT_BASE_URL = "https://api.transcodely.com";
|
|
11052
13329
|
|
|
11053
|
-
export { APIConnectionError, APIError, Event as APIEvent, APIKey, API_VERSION, AV1Options, AbortMultipartUploadRequest, App, AppStatus, ArchiveAppRequest, ArchiveOriginRequest, ArchivePresetRequest, AudioCodec, AudioSettings, AudioStreamInfo, AudioTrackConfig, AuthenticationError, AutoABRConfig, AutoProfileDefaults, BYOKConfig, BitrateMode, BurnInStyle, type CallOptions, CancelJobRequest, CancelJobResponse, CheckSlugRequest, CheckSlugResponse, CompleteMultipartUploadRequest, CompleteMultipartUploadResponse, CompleteUploadRequest, CompleteUploadResponse, CompletedPart, ConfirmJobRequest, ConfirmJobResponse, ConflictError, Container, ContentAnalysis, ContentAwareConfig, ContentAwareMode, ContentType, CreateAPIKeyRequest, CreateAPIKeyResponse, CreateAppRequest, CreateAppResponse, CreateJobRequest, CreateJobResponse, CreateMultipartUploadRequest, CreateMultipartUploadResponse, CreateOrganizationRequest, CreateOrganizationResponse, CreateOriginRequest, CreateOriginResponse, CreatePresetRequest, CreatePresetResponse, CreateUploadRequest, CreateUploadResponse, CreateWebhookEndpointRequest, CreateWebhookEndpointResponse, DASHConfig, DEFAULT_BASE_URL, DEFAULT_TOLERANCE_SECONDS, DRMConfig, DRMSystem, DeleteVideoRequest, DeleteWebhookEndpointRequest, DeleteWebhookEndpointResponse, DeliveryFormat, DuplicatePresetRequest, DuplicatePresetResponse, EVENT_ID_HEADER, EnableHostingRequest, EnableHostingResponse, EncryptionScheme, ErrorDetails, type EventBase, ExecutionTiming, type FieldViolation, GOPAlignmentMode, GcsCredentials, GcsOriginConfig, GetAPIKeyRequest, GetAPIKeyResponse, GetAppRequest, GetAppResponse, GetEndpointHealthRequest, GetEndpointHealthResponse, GetJobRequest, GetJobResponse, GetMeRequest, GetMeResponse, GetMembershipRequest, GetMembershipResponse, GetOrganizationRequest, GetOrganizationResponse, GetOriginRequest, GetOriginResponse, GetPresetBySlugRequest, GetPresetBySlugResponse, GetPresetRequest, GetPresetResponse, GetUploadPartUrlsRequest, GetUploadPartUrlsResponse, GetUsageRequest, GetUsageResponse, GetUserRequest, GetUserResponse, GetVideoRequest, GetVideoResponse, H264Options, H265Options, HDRConfig, HDRFormat, HDRMode, HLSConfig, HLSPlaylistType, HLSSegmentFormat, HealthBucket, HostingConfig, HttpCredentials, HttpOriginConfig, InputMetadata, InvalidRequestError, Job, JobOutput, JobPriority, JobStatus, KeyServerConfig, ListAPIKeysRequest, ListAPIKeysResponse, ListAppsRequest, ListAppsResponse, ListEventsRequest, ListEventsResponse, ListJobsRequest, ListJobsResponse, ListMembershipsRequest, ListMembershipsResponse, ListOrganizationsRequest, ListOrganizationsResponse, ListOriginsRequest, ListOriginsResponse, ListPresetsRequest, ListPresetsResponse, ListUsersRequest, ListUsersResponse, ListVideosRequest, ListVideosResponse, ListWebhookDeliveriesRequest, ListWebhookDeliveriesResponse, ListWebhookEndpointsRequest, ListWebhookEndpointsResponse, type LogEvent, Membership, MembershipRole, MembershipStatus, MembershipWithUser, NotFoundError, Organization, OrganizationStatus, Origin, OriginPermission, OriginProvider, OriginRef, OriginStatus, OutputFormat, OutputSpec, OutputStatus, OutputVariantResult, Page, PaginationRequest, PaginationResponse, PermissionError, PreconditionError, Preset, PresetVariant, PricingSnapshot, QualityTier, R2Jurisdiction, R2OriginConfig, RateLimitError, RemoveMembershipRequest, ResendEventRequest, ResendEventResponse, Resolution, RetrieveEventRequest, RetrieveEventResponse, RetrieveWebhookEndpointRequest, RetrieveWebhookEndpointResponse, RevokeAPIKeyRequest, RotateWebhookSecretRequest, RotateWebhookSecretResponse, S3Credentials, S3OriginConfig, SDK_VERSION, SIGNATURE_HEADER, SegmentConfig, SendTestWebhookRequest, SendTestWebhookResponse, StreamingConfig, SubtitleFormat, SubtitleOperation, SubtitleStreamInfo, SubtitleTrack, ThumbnailFormat, ThumbnailMode, ThumbnailResult, ThumbnailSpec, ToneMapping, Transcodely, type TranscodelyConfig, TranscodelyError, UpdateAppRequest, UpdateAppResponse, UpdateHostingConfigRequest, UpdateHostingConfigResponse, UpdateMeRequest, UpdateMeResponse, UpdateMembershipRoleRequest, UpdateMembershipRoleResponse, UpdateOrganizationRequest, UpdateOrganizationResponse, UpdateOriginRequest, UpdateOriginResponse, UpdatePresetRequest, UpdatePresetResponse, UpdateVideoRequest, UpdateVideoResponse, UpdateWebhookEndpointRequest, UpdateWebhookEndpointResponse, UploadPart, UsageSummary, User, UserApprovalStatus, UserOrganization, UserStatus, UserWithOrganizations, VP9Options, ValidateOriginRequest, ValidateOriginResponse, ValidationResult, VariantPricingSnapshot, type VerifyOptions, Video, VideoCodec, VideoRendition, VideoSettings, VideoStatus, VideoStreamInfo, VideoVariant, VideoVisibility, WEBHOOK_EVENT_TYPES, WatchEventType, WatchJobRequest, WatchJobResponse, WatchVideoRequest, WatchVideoResponse, WebhookDelivery, WebhookEndpoint, WebhookError, type WebhookEvent, type WebhookEventType, WebhookPayloadError, WebhookSignatureError, WebhookTimestampError, Webhooks, constructEvent, verifySignature };
|
|
13330
|
+
export { APIConnectionError, APIError, Event as APIEvent, APIKey, API_VERSION, AV1Options, AbortMultipartUploadRequest, App, AppStatus, ArchiveAppRequest, ArchiveOriginRequest, ArchivePresetRequest, AudioCodec, AudioSettings, AudioStreamInfo, AudioTrackConfig, AuthenticationError, AutoABRConfig, AutoProfileDefaults, BYOKConfig, BitrateMode, BurnInStyle, type CallOptions, CancelJobRequest, CancelJobResponse, ChapterPoint, ChapterResult, CheckSlugRequest, CheckSlugResponse, ClipConfig, CompleteMultipartUploadRequest, CompleteMultipartUploadResponse, CompleteUploadRequest, CompleteUploadResponse, CompletedPart, ConfirmJobRequest, ConfirmJobResponse, ConflictError, Container, ContentAnalysis, ContentAwareConfig, ContentAwareMode, ContentType, CreateAPIKeyRequest, CreateAPIKeyResponse, CreateAppRequest, CreateAppResponse, CreateFromUrlRequest, CreateFromUrlResponse, CreateJobRequest, CreateJobResponse, CreateMultipartUploadRequest, CreateMultipartUploadResponse, CreateOrganizationRequest, CreateOrganizationResponse, CreateOriginRequest, CreateOriginResponse, CreatePresetRequest, CreatePresetResponse, CreateUploadRequest, CreateUploadResponse, CreateWebhookEndpointRequest, CreateWebhookEndpointResponse, DASHConfig, DEFAULT_BASE_URL, DEFAULT_TOLERANCE_SECONDS, DRMConfig, DRMSystem, DailyUsage, DeleteVideoRequest, DeleteWebhookEndpointRequest, DeleteWebhookEndpointResponse, DeliveryFormat, DuplicatePresetRequest, DuplicatePresetResponse, EVENT_ID_HEADER, EnableHostingRequest, EnableHostingResponse, EncryptionScheme, EndpointHealthSummary, ErrorDetails, type EventBase, ExecutionTiming, type FieldViolation, GOPAlignmentMode, GcsCredentials, GcsOriginConfig, GetAPIKeyRequest, GetAPIKeyResponse, GetAppRequest, GetAppResponse, GetEndpointHealthRequest, GetEndpointHealthResponse, GetInvoiceRequest, GetInvoiceResponse, GetJobRequest, GetJobResponse, GetMeRequest, GetMeResponse, GetMembershipRequest, GetMembershipResponse, GetOrganizationRequest, GetOrganizationResponse, GetOriginRequest, GetOriginResponse, GetPresetBySlugRequest, GetPresetBySlugResponse, GetPresetRequest, GetPresetResponse, GetSpendRequest, GetSpendResponse, GetStatsRequest, GetStatsResponse, GetUpcomingInvoiceRequest, GetUpcomingInvoiceResponse, GetUploadPartUrlsRequest, GetUploadPartUrlsResponse, GetUsageRequest, GetUsageResponse, GetUserRequest, GetUserResponse, GetVideoRequest, GetVideoResponse, H264Options, H265Options, HDRConfig, HDRFormat, HDRMode, HLSConfig, HLSPlaylistType, HLSSegmentFormat, HealthBucket, HostingConfig, HttpCredentials, HttpOriginConfig, InputMetadata, InvalidRequestError, Invoice, InvoiceLineItem, InvoiceLineType, InvoiceStatus, Job, JobFee, JobOutput, JobPriority, JobStatus, KeyServerConfig, type KnownWebhookEvent, ListAPIKeysRequest, ListAPIKeysResponse, ListAppsRequest, ListAppsResponse, ListEventsRequest, ListEventsResponse, ListInvoicesRequest, ListInvoicesResponse, ListJobsRequest, ListJobsResponse, ListMembershipsRequest, ListMembershipsResponse, ListOrganizationsRequest, ListOrganizationsResponse, ListOriginsRequest, ListOriginsResponse, ListPresetsRequest, ListPresetsResponse, ListTopVideosRequest, ListTopVideosResponse, ListUsersRequest, ListUsersResponse, ListVideosRequest, ListVideosResponse, ListWebhookDeliveriesRequest, ListWebhookDeliveriesResponse, ListWebhookEndpointsRequest, ListWebhookEndpointsResponse, type LogEvent, Membership, MembershipRole, MembershipStatus, MembershipWithUser, NotFoundError, Organization, OrganizationStatus, Origin, OriginPermission, OriginProvider, OriginRef, OriginStatus, OutputFormat, OutputSpec, OutputStatus, OutputVariantResult, Page, PaginationRequest, PaginationResponse, PermissionError, PreconditionError, Preset, PresetVariant, PricingSnapshot, QualityTier, R2Jurisdiction, R2OriginConfig, RateLimitError, RemoveMembershipRequest, ResendEventRequest, ResendEventResponse, Resolution, RetrieveEventRequest, RetrieveEventResponse, RetrieveWebhookEndpointRequest, RetrieveWebhookEndpointResponse, RevokeAPIKeyRequest, RotateWebhookSecretRequest, RotateWebhookSecretResponse, S3Credentials, S3OriginConfig, SDK_VERSION, SIGNATURE_HEADER, SegmentConfig, SendTestWebhookRequest, SendTestWebhookResponse, type SpendLimitNotification, StreamingConfig, SubtitleFormat, SubtitleOperation, SubtitleResult, SubtitleStreamInfo, SubtitleTrack, ThumbnailFormat, ThumbnailMode, ThumbnailResult, ThumbnailSpec, ToneMapping, TopVideo, Transcodely, type TranscodelyConfig, TranscodelyError, type UnknownWebhookEvent, UpdateAppRequest, UpdateAppResponse, UpdateHostingConfigRequest, UpdateHostingConfigResponse, UpdateMeRequest, UpdateMeResponse, UpdateMembershipRoleRequest, UpdateMembershipRoleResponse, UpdateOrganizationRequest, UpdateOrganizationResponse, UpdateOriginRequest, UpdateOriginResponse, UpdatePresetRequest, UpdatePresetResponse, UpdateSpendLimitRequest, UpdateSpendLimitResponse, UpdateVideoRequest, UpdateVideoResponse, UpdateWebhookEndpointRequest, UpdateWebhookEndpointResponse, UploadPart, UsageSummary, User, UserApprovalStatus, UserOrganization, UserStatus, UserWithOrganizations, VP9Options, ValidateOriginRequest, ValidateOriginResponse, ValidationResult, VariantPricingSnapshot, type VerifyOptions, Video, VideoCodec, VideoRendition, VideoSettings, VideoStatsDay, VideoStatsTotals, VideoStatus, VideoStreamInfo, VideoTextTrack, VideoVariant, VideoVisibility, WEBHOOK_EVENT_TYPES, WatchEventType, WatchJobRequest, WatchJobResponse, WatchVideoRequest, WatchVideoResponse, WatermarkAnchor, WatermarkConfig, WatermarkPixelPlacement, WebhookDelivery, WebhookEndpoint, WebhookError, type WebhookEvent, type WebhookEventType, WebhookPayloadError, WebhookSignatureError, WebhookTimestampError, Webhooks, constructEvent, isEventType, isKnownEvent, verifySignature };
|