@vindentech/api-client 1.6.0-next.1 โ†’ 1.6.0-next.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.
@@ -17,7 +17,7 @@ export type analyticsControllerOverviewV1ResponseSuccess = (analyticsControllerO
17
17
  export type analyticsControllerOverviewV1Response = (analyticsControllerOverviewV1ResponseSuccess);
18
18
  export declare const getAnalyticsControllerOverviewV1Url: (params?: AnalyticsControllerOverviewV1Params) => string;
19
19
  /**
20
- * Point-in-time figures (`pointInTime`) are read at `asOf`, at the end of the month before, and on the same day a month earlier (clamped: 31 Oct โ†’ 30 Sep). Figures that add up over a period (`periods`) are read month-to-date, over the same days of last month, over the last full month and over the month before. Every month is a calendar month in the tenant's billing calendar, and money is per currency, never summed across currencies. Measured volume reads low until a provider-run warehouse reports its measurements, which is why estimated volume is given beside it. Figures for a past night are as known now: the nightly build fills in nights it missed. `estimatedInvoicesThisMonth` is an estimate from live billing rows. 400 as_of_not_built for an asOf after the latest night built; 400 invalid_date for a day that does not exist. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
20
+ * Point-in-time figures (`pointInTime`) are read at `asOf`, at the end of the month before, and on the same day a month earlier (clamped: 31 Oct โ†’ 30 Sep). Figures that add up over a period (`periods`) are read month-to-date, over the same days of last month, over the last full month and over the month before. Every month is a calendar month in the tenant's billing calendar, and money is per currency, never summed across currencies. Measured volume reads low until a provider-run warehouse reports its measurements, which is why estimated volume is given beside it. Figures for a past night are as known now: the nightly build fills in nights it missed. `estimatedInvoicesThisMonth` is an estimate from live billing rows. 400 as_of_not_built for an asOf after the latest night built; 400 invalid_date for a day that does not exist or falls outside 2000โ€“2999. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
21
21
  * @summary Every dashboard figure, each with its two comparisons
22
22
  */
23
23
  export declare const analyticsControllerOverviewV1: (params?: AnalyticsControllerOverviewV1Params, options?: Parameters<typeof customFetch>[1]) => Promise<analyticsControllerOverviewV1Response>;
@@ -31,7 +31,7 @@ export type analyticsControllerDailyV1ResponseSuccess = (analyticsControllerDail
31
31
  export type analyticsControllerDailyV1Response = (analyticsControllerDailyV1ResponseSuccess);
32
32
  export declare const getAnalyticsControllerDailyV1Url: (params?: AnalyticsControllerDailyV1Params) => string;
33
33
  /**
34
- * Every day of the range appears; a night with no snapshot reads zero. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
34
+ * Every day of the range appears; a night with no snapshot reads zero. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_not_built for a `to` after the latest night built, date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist or falls outside 2000โ€“2999. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
35
35
  * @summary One row per day: customers and volume in storage, new and cumulative customers
36
36
  */
37
37
  export declare const analyticsControllerDailyV1: (params?: AnalyticsControllerDailyV1Params, options?: Parameters<typeof customFetch>[1]) => Promise<analyticsControllerDailyV1Response>;
@@ -45,7 +45,7 @@ export type analyticsControllerCustomersV1ResponseSuccess = (analyticsController
45
45
  export type analyticsControllerCustomersV1Response = (analyticsControllerCustomersV1ResponseSuccess);
46
46
  export declare const getAnalyticsControllerCustomersV1Url: (params?: AnalyticsControllerCustomersV1Params) => string;
47
47
  /**
48
- * As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
48
+ * As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
49
49
  * @summary One row per customer: storage status, stays, current volume and lifetime revenue
50
50
  */
51
51
  export declare const analyticsControllerCustomersV1: (params?: AnalyticsControllerCustomersV1Params, options?: Parameters<typeof customFetch>[1]) => Promise<analyticsControllerCustomersV1Response>;
@@ -59,7 +59,7 @@ export type analyticsControllerStaysV1ResponseSuccess = (analyticsControllerStay
59
59
  export type analyticsControllerStaysV1Response = (analyticsControllerStaysV1ResponseSuccess);
60
60
  export declare const getAnalyticsControllerStaysV1Url: (params?: AnalyticsControllerStaysV1Params) => string;
61
61
  /**
62
- * A stay is a run of nights with goods in storage; it ends after `stayGapNights` consecutive empty nights (see the overview). As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
62
+ * A stay is a run of nights with goods in storage; it ends after `stayGapNights` consecutive empty nights (see the overview). As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
63
63
  * @summary One row per storage stay
64
64
  */
65
65
  export declare const analyticsControllerStaysV1: (params?: AnalyticsControllerStaysV1Params, options?: Parameters<typeof customFetch>[1]) => Promise<analyticsControllerStaysV1Response>;
@@ -73,7 +73,7 @@ export type analyticsControllerCustomerMonthsV1ResponseSuccess = (analyticsContr
73
73
  export type analyticsControllerCustomerMonthsV1Response = (analyticsControllerCustomerMonthsV1ResponseSuccess);
74
74
  export declare const getAnalyticsControllerCustomerMonthsV1Url: (params?: AnalyticsControllerCustomerMonthsV1Params) => string;
75
75
  /**
76
- * Months of the range in which the customer had at least one night with goods in storage. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
76
+ * Months of the range in which the customer had at least one night with goods in storage. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_not_built for a `to` after the latest night built, date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist or falls outside 2000โ€“2999. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
77
77
  * @summary One row per customer per month stored: stored nights, average and peak mยณ
78
78
  */
79
79
  export declare const analyticsControllerCustomerMonthsV1: (params?: AnalyticsControllerCustomerMonthsV1Params, options?: Parameters<typeof customFetch>[1]) => Promise<analyticsControllerCustomerMonthsV1Response>;
@@ -87,7 +87,7 @@ export type analyticsControllerRevenueV1ResponseSuccess = (analyticsControllerRe
87
87
  export type analyticsControllerRevenueV1Response = (analyticsControllerRevenueV1ResponseSuccess);
88
88
  export declare const getAnalyticsControllerRevenueV1Url: (params?: AnalyticsControllerRevenueV1Params) => string;
89
89
  /**
90
- * Rows of invoices sent, paid, overdue or written off, credit notes netting against them; ex VAT, after discounts, campaigns and codes, before account credits. `dateBasis` chooses whether the range and order follow the invoice month or the month the charge was for. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
90
+ * Rows of invoices sent, paid, overdue or written off, credit notes netting against them; ex VAT, after discounts, campaigns and codes, before account credits. `dateBasis` chooses whether the range and order follow the invoice month or the month the charge was for. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_not_built for a `to` after the latest night built, date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist or falls outside 2000โ€“2999. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
91
91
  * @summary Invoiced revenue per customer, invoice month, service month, article and currency
92
92
  */
93
93
  export declare const analyticsControllerRevenueV1: (params?: AnalyticsControllerRevenueV1Params, options?: Parameters<typeof customFetch>[1]) => Promise<analyticsControllerRevenueV1Response>;
@@ -11,7 +11,7 @@ export const getAnalyticsControllerOverviewV1Url = (params) => {
11
11
  return stringifiedParams.length > 0 ? `/v1/analytics/overview?${stringifiedParams}` : `/v1/analytics/overview`;
12
12
  };
13
13
  /**
14
- * Point-in-time figures (`pointInTime`) are read at `asOf`, at the end of the month before, and on the same day a month earlier (clamped: 31 Oct โ†’ 30 Sep). Figures that add up over a period (`periods`) are read month-to-date, over the same days of last month, over the last full month and over the month before. Every month is a calendar month in the tenant's billing calendar, and money is per currency, never summed across currencies. Measured volume reads low until a provider-run warehouse reports its measurements, which is why estimated volume is given beside it. Figures for a past night are as known now: the nightly build fills in nights it missed. `estimatedInvoicesThisMonth` is an estimate from live billing rows. 400 as_of_not_built for an asOf after the latest night built; 400 invalid_date for a day that does not exist. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
14
+ * Point-in-time figures (`pointInTime`) are read at `asOf`, at the end of the month before, and on the same day a month earlier (clamped: 31 Oct โ†’ 30 Sep). Figures that add up over a period (`periods`) are read month-to-date, over the same days of last month, over the last full month and over the month before. Every month is a calendar month in the tenant's billing calendar, and money is per currency, never summed across currencies. Measured volume reads low until a provider-run warehouse reports its measurements, which is why estimated volume is given beside it. Figures for a past night are as known now: the nightly build fills in nights it missed. `estimatedInvoicesThisMonth` is an estimate from live billing rows. 400 as_of_not_built for an asOf after the latest night built; 400 invalid_date for a day that does not exist or falls outside 2000โ€“2999. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
15
15
  * @summary Every dashboard figure, each with its two comparisons
16
16
  */
17
17
  export const analyticsControllerOverviewV1 = async (params, options) => {
@@ -32,7 +32,7 @@ export const getAnalyticsControllerDailyV1Url = (params) => {
32
32
  return stringifiedParams.length > 0 ? `/v1/analytics/daily?${stringifiedParams}` : `/v1/analytics/daily`;
33
33
  };
34
34
  /**
35
- * Every day of the range appears; a night with no snapshot reads zero. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
35
+ * Every day of the range appears; a night with no snapshot reads zero. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_not_built for a `to` after the latest night built, date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist or falls outside 2000โ€“2999. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
36
36
  * @summary One row per day: customers and volume in storage, new and cumulative customers
37
37
  */
38
38
  export const analyticsControllerDailyV1 = async (params, options) => {
@@ -53,7 +53,7 @@ export const getAnalyticsControllerCustomersV1Url = (params) => {
53
53
  return stringifiedParams.length > 0 ? `/v1/analytics/customers?${stringifiedParams}` : `/v1/analytics/customers`;
54
54
  };
55
55
  /**
56
- * As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
56
+ * As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
57
57
  * @summary One row per customer: storage status, stays, current volume and lifetime revenue
58
58
  */
59
59
  export const analyticsControllerCustomersV1 = async (params, options) => {
@@ -74,7 +74,7 @@ export const getAnalyticsControllerStaysV1Url = (params) => {
74
74
  return stringifiedParams.length > 0 ? `/v1/analytics/stays?${stringifiedParams}` : `/v1/analytics/stays`;
75
75
  };
76
76
  /**
77
- * A stay is a run of nights with goods in storage; it ends after `stayGapNights` consecutive empty nights (see the overview). As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
77
+ * A stay is a run of nights with goods in storage; it ends after `stayGapNights` consecutive empty nights (see the overview). As of the latest nightly build. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
78
78
  * @summary One row per storage stay
79
79
  */
80
80
  export const analyticsControllerStaysV1 = async (params, options) => {
@@ -95,7 +95,7 @@ export const getAnalyticsControllerCustomerMonthsV1Url = (params) => {
95
95
  return stringifiedParams.length > 0 ? `/v1/analytics/customer-months?${stringifiedParams}` : `/v1/analytics/customer-months`;
96
96
  };
97
97
  /**
98
- * Months of the range in which the customer had at least one night with goods in storage. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
98
+ * Months of the range in which the customer had at least one night with goods in storage. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_not_built for a `to` after the latest night built, date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist or falls outside 2000โ€“2999. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
99
99
  * @summary One row per customer per month stored: stored nights, average and peak mยณ
100
100
  */
101
101
  export const analyticsControllerCustomerMonthsV1 = async (params, options) => {
@@ -116,7 +116,7 @@ export const getAnalyticsControllerRevenueV1Url = (params) => {
116
116
  return stringifiedParams.length > 0 ? `/v1/analytics/revenue?${stringifiedParams}` : `/v1/analytics/revenue`;
117
117
  };
118
118
  /**
119
- * Rows of invoices sent, paid, overdue or written off, credit notes netting against them; ex VAT, after discounts, campaigns and codes, before account credits. `dateBasis` chooses whether the range and order follow the invoice month or the month the charge was for. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
119
+ * Rows of invoices sent, paid, overdue or written off, credit notes netting against them; ex VAT, after discounts, campaigns and codes, before account credits. `dateBasis` chooses whether the range and order follow the invoice month or the month the charge was for. `from`/`to` default to the 13 calendar months ending at the latest night built, and may span at most 25 months: 400 date_range_not_built for a `to` after the latest night built, date_range_required when from is after to, date_range_too_wide past 25 months, invalid_date for a day that does not exist or falls outside 2000โ€“2999. Pseudonymous: a customer is identified by `customerKey` only, never by organization id, and no row carries a name, email, address or identity number. Paged by keyset: pass `nextCursor` back as `cursor` until it is null; up to 5000 rows a page. 400 invalid_cursor for a cursor this dataset did not issue. 503 analytics_busy when this replica is already serving its share of analytics requests, and 503 analytics_timeout when a figure takes too long to compute; both are retryable. ๐Ÿ”’ Requires permission: analytics:read. Gate UI with hasRequiredPermissions() from @vindentech/api-client.
120
120
  * @summary Invoiced revenue per customer, invoice month, service month, article and currency
121
121
  */
122
122
  export const analyticsControllerRevenueV1 = async (params, options) => {
@@ -13620,7 +13620,7 @@ export interface AnalyticsPricePerM3MonthDto {
13620
13620
  }
13621
13621
  export interface AnalyticsPricePerM3Dto {
13622
13622
  currencyCode: string;
13623
- /** The latest service month before asOf's that has invoiced storage revenue. A month has no price until it is invoiced, so the current one never appears. */
13623
+ /** The latest service month before asOf's whose storage is fully invoiced: none of its storage charges is still unbilled or on a draft. Until then a month's revenue is a part of the month while its volume is all of it, so it has no price yet, and neither has the current month. */
13624
13624
  lastInvoicedServiceMonth: AnalyticsPricePerM3MonthDto;
13625
13625
  /** The service month before it. */
13626
13626
  monthBefore: AnalyticsPricePerM3MonthDto;
@@ -13630,9 +13630,11 @@ export interface AnalyticsEstimateCategoryDto {
13630
13630
  category: string | null;
13631
13631
  /** Priced charges of the window, storage projected to month end, minor units. */
13632
13632
  grossMinor: number;
13633
- /** Last window's invoiced net รท the priced gross it was invoiced from, for this category; 1 when last window had none. Four decimals. */
13633
+ /** Last window's net รท gross for this category's invoice rows billed from priced charges โ€” the share discounts, campaigns and codes left โ€” clamped to 0โ€“1, and 1 when last window had none. Four decimals. */
13634
13634
  ratio: number;
13635
- /** grossMinor ร— ratio, minor units. */
13635
+ /** Last window's invoice rows in this category with no priced charge behind them, such as the minimum monthly fee, carried unscaled, minor units. */
13636
+ fixedMinor: number;
13637
+ /** round(grossMinor ร— ratio) + fixedMinor, minor units. */
13636
13638
  estimateMinor: number;
13637
13639
  /** Last window's invoiced net in this category, minor units. */
13638
13640
  lastMonthActualMinor: number;
@@ -13643,8 +13645,10 @@ export interface AnalyticsEstimateCurrencyDto {
13643
13645
  grossMinor: number;
13644
13646
  /** Priced charges of the window so far, minor units. */
13645
13647
  rowsMinor: number;
13646
- /** Storage projected for the days after storageCoveredThrough, minor units. */
13648
+ /** Storage projected to the window's end, each account from its own latest priced day, minor units. */
13647
13649
  projectedMinor: number;
13650
+ /** The categories' fixedMinor, minor units. */
13651
+ fixedMinor: number;
13648
13652
  /** The estimate: the sum of the categories' estimates, minor units. */
13649
13653
  estimateMinor: number;
13650
13654
  /** The invoices of the previous window, net, minor units. */
@@ -13658,11 +13662,11 @@ export interface AnalyticsInvoiceEstimateDto {
13658
13662
  windowFrom: string;
13659
13663
  windowTo: string;
13660
13664
  /**
13661
- * The day storage is counted from priced charges through; later days are projected from it. Null when the window has no priced storage to project from.
13665
+ * The day storage is priced through for every account: each account's storage is counted through its own latest priced day (at most asOf) and projected from that day to the window's end. Null when no account has priced storage since the start of the month before.
13662
13666
  * @nullable
13663
13667
  */
13664
13668
  storageCoveredThrough: string | null;
13665
- /** Days of storage projected. */
13669
+ /** The most days of storage projected for any one account. */
13666
13670
  projectedDays: number;
13667
13671
  /** False while charges of the previous window are still to be invoiced, when lastMonthActualMinor is short and the ratios rest on the invoices built so far. */
13668
13672
  lastMonthComplete: boolean;
@@ -13682,7 +13686,7 @@ export interface AnalyticsOverviewDto {
13682
13686
  pointInTime: AnalyticsPointInTimeSetDto;
13683
13687
  periods: AnalyticsPeriodSetDto;
13684
13688
  revenueYearToDate: AnalyticsRevenueYearToDateDto;
13685
- /** One entry per currency with invoiced storage. */
13689
+ /** One entry per currency with a fully invoiced storage month. */
13686
13690
  averagePricePerM3: AnalyticsPricePerM3Dto[];
13687
13691
  estimatedInvoicesThisMonth: AnalyticsInvoiceEstimateDto;
13688
13692
  }
@@ -15681,7 +15685,7 @@ export type AnalyticsControllerDailyV1Params = {
15681
15685
  */
15682
15686
  from?: string;
15683
15687
  /**
15684
- * Last day, included. Defaults to the latest night the nightly build covers. The range may span at most 25 calendar months.
15688
+ * Last day, included. Defaults to, and may not be after, the latest night the nightly build covers. The range may span at most 25 calendar months.
15685
15689
  */
15686
15690
  to?: string;
15687
15691
  };
@@ -15725,7 +15729,7 @@ export type AnalyticsControllerCustomerMonthsV1Params = {
15725
15729
  */
15726
15730
  from?: string;
15727
15731
  /**
15728
- * Last day, included. Defaults to the latest night the nightly build covers. The range may span at most 25 calendar months.
15732
+ * Last day, included. Defaults to, and may not be after, the latest night the nightly build covers. The range may span at most 25 calendar months.
15729
15733
  */
15730
15734
  to?: string;
15731
15735
  };
@@ -15745,7 +15749,7 @@ export type AnalyticsControllerRevenueV1Params = {
15745
15749
  */
15746
15750
  from?: string;
15747
15751
  /**
15748
- * Last day, included. Defaults to the latest night the nightly build covers. The range may span at most 25 calendar months.
15752
+ * Last day, included. Defaults to, and may not be after, the latest night the nightly build covers. The range may span at most 25 calendar months.
15749
15753
  */
15750
15754
  to?: string;
15751
15755
  /**