@wevion/cli 1.0.3946 → 1.0.3957

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.
Files changed (2) hide show
  1. package/openapi.json +179 -6
  2. package/package.json +1 -1
package/openapi.json CHANGED
@@ -590,6 +590,9 @@
590
590
  "security": [
591
591
  {
592
592
  "bearerAuth": []
593
+ },
594
+ {
595
+ "apiKeyAuth": []
593
596
  }
594
597
  ],
595
598
  "responses": {
@@ -696,6 +699,32 @@
696
699
  }
697
700
  }
698
701
  },
702
+ "403": {
703
+ "description": "Forbidden - caller lacks the required role/permission",
704
+ "content": {
705
+ "application/json": {
706
+ "schema": {
707
+ "type": "object",
708
+ "required": [
709
+ "statusCode",
710
+ "error",
711
+ "message"
712
+ ],
713
+ "properties": {
714
+ "statusCode": {
715
+ "type": "number"
716
+ },
717
+ "error": {
718
+ "type": "string"
719
+ },
720
+ "message": {
721
+ "type": "string"
722
+ }
723
+ }
724
+ }
725
+ }
726
+ }
727
+ },
699
728
  "422": {
700
729
  "description": "Unprocessable entity - semantic validation failed",
701
730
  "content": {
@@ -722,6 +751,16 @@
722
751
  }
723
752
  }
724
753
  },
754
+ "429": {
755
+ "description": "Too many requests - rate limit exceeded. Reachable on every API-key operation: the per-key cap sold with the plan answers `code: API_KEY_RATE_LIMITED` with `retry_after_seconds` and the `Retry-After` header. The global per-IP limiter can answer here too, with the same status and only `statusCode`, `error` and `message`.",
756
+ "content": {
757
+ "application/json": {
758
+ "schema": {
759
+ "$ref": "#/components/schemas/RateLimitedResponse"
760
+ }
761
+ }
762
+ }
763
+ },
725
764
  "500": {
726
765
  "description": "Internal server error",
727
766
  "content": {
@@ -862,6 +901,9 @@
862
901
  "security": [
863
902
  {
864
903
  "bearerAuth": []
904
+ },
905
+ {
906
+ "apiKeyAuth": []
865
907
  }
866
908
  ],
867
909
  "responses": {
@@ -968,6 +1010,32 @@
968
1010
  }
969
1011
  }
970
1012
  },
1013
+ "403": {
1014
+ "description": "Forbidden - caller lacks the required role/permission",
1015
+ "content": {
1016
+ "application/json": {
1017
+ "schema": {
1018
+ "type": "object",
1019
+ "required": [
1020
+ "statusCode",
1021
+ "error",
1022
+ "message"
1023
+ ],
1024
+ "properties": {
1025
+ "statusCode": {
1026
+ "type": "number"
1027
+ },
1028
+ "error": {
1029
+ "type": "string"
1030
+ },
1031
+ "message": {
1032
+ "type": "string"
1033
+ }
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+ },
971
1039
  "422": {
972
1040
  "description": "Unprocessable entity - semantic validation failed",
973
1041
  "content": {
@@ -994,6 +1062,16 @@
994
1062
  }
995
1063
  }
996
1064
  },
1065
+ "429": {
1066
+ "description": "Too many requests - rate limit exceeded. Reachable on every API-key operation: the per-key cap sold with the plan answers `code: API_KEY_RATE_LIMITED` with `retry_after_seconds` and the `Retry-After` header. The global per-IP limiter can answer here too, with the same status and only `statusCode`, `error` and `message`.",
1067
+ "content": {
1068
+ "application/json": {
1069
+ "schema": {
1070
+ "$ref": "#/components/schemas/RateLimitedResponse"
1071
+ }
1072
+ }
1073
+ }
1074
+ },
997
1075
  "500": {
998
1076
  "description": "Internal server error",
999
1077
  "content": {
@@ -201276,7 +201354,7 @@
201276
201354
  "tags": [
201277
201355
  "profitability"
201278
201356
  ],
201279
- "description": "Scans enabled profitability configurations and returns campaign-level margin alerts below each configured threshold.",
201357
+ "description": "Scans the accessible sessions' profitability configurations, whether or not the margin alert is switched on, and returns campaign-level margins below each configured threshold. Each row states whether its revenue is tracked or estimated.",
201280
201358
  "security": [
201281
201359
  {
201282
201360
  "bearerAuth": []
@@ -201306,8 +201384,11 @@
201306
201384
  "external_campaign_id",
201307
201385
  "lookback_days",
201308
201386
  "platform",
201387
+ "revenue_net_total",
201309
201388
  "severity",
201310
- "threshold"
201389
+ "spend_total",
201390
+ "threshold",
201391
+ "tracked_revenue"
201311
201392
  ],
201312
201393
  "properties": {
201313
201394
  "avg_margin": {
@@ -201332,6 +201413,10 @@
201332
201413
  "platform": {
201333
201414
  "type": "string"
201334
201415
  },
201416
+ "revenue_net_total": {
201417
+ "description": "Net revenue over the lookback window, in the session base currency.",
201418
+ "type": "number"
201419
+ },
201335
201420
  "severity": {
201336
201421
  "anyOf": [
201337
201422
  {
@@ -201348,8 +201433,16 @@
201348
201433
  }
201349
201434
  ]
201350
201435
  },
201436
+ "spend_total": {
201437
+ "description": "Ad spend over the lookback window, in the session base currency.",
201438
+ "type": "number"
201439
+ },
201351
201440
  "threshold": {
201352
201441
  "type": "number"
201442
+ },
201443
+ "tracked_revenue": {
201444
+ "description": "True when every day in the window has revenue from a tracked source (Shopify, WooCommerce, tracker). False means the margin is estimated from the ad platform conversion value.",
201445
+ "type": "boolean"
201353
201446
  }
201354
201447
  }
201355
201448
  }
@@ -202745,7 +202838,7 @@
202745
202838
  "tags": [
202746
202839
  "profitability"
202747
202840
  ],
202748
- "description": "Returns the profitability defaults and alert settings for the first accessible session, creating defaults when needed.",
202841
+ "description": "Returns the profitability defaults and alert settings for the first accessible session, creating defaults when needed. margin_alert_available says whether the margin alert can be switched on.",
202749
202842
  "security": [
202750
202843
  {
202751
202844
  "bearerAuth": []
@@ -202767,7 +202860,8 @@
202767
202860
  "margin_alert_threshold",
202768
202861
  "margin_alert_enabled",
202769
202862
  "margin_alert_lookback_days",
202770
- "keitaro_sku_field"
202863
+ "keitaro_sku_field",
202864
+ "margin_alert_available"
202771
202865
  ],
202772
202866
  "properties": {
202773
202867
  "default_cogs_pct": {
@@ -202816,6 +202910,10 @@
202816
202910
  "type": "null"
202817
202911
  }
202818
202912
  ]
202913
+ },
202914
+ "margin_alert_available": {
202915
+ "description": "True when a tracked revenue source (Shopify, WooCommerce or a tracker) is connected and active. The margin alert can be switched on only when true.",
202916
+ "type": "boolean"
202819
202917
  }
202820
202918
  }
202821
202919
  }
@@ -202884,7 +202982,7 @@
202884
202982
  "tags": [
202885
202983
  "profitability"
202886
202984
  ],
202887
- "description": "Updates profitability defaults and alert settings for the first accessible session, then schedules recent rematerialization.",
202985
+ "description": "Updates profitability defaults and alert settings for the first accessible session, then schedules recent rematerialization. Switching the margin alert on is refused with 422 MARGIN_ALERT_REQUIRES_TRACKED_REVENUE when no tracked revenue source (Shopify, WooCommerce or a tracker) is connected.",
202888
202986
  "requestBody": {
202889
202987
  "required": true,
202890
202988
  "content": {
@@ -202965,7 +203063,8 @@
202965
203063
  "margin_alert_threshold",
202966
203064
  "margin_alert_enabled",
202967
203065
  "margin_alert_lookback_days",
202968
- "keitaro_sku_field"
203066
+ "keitaro_sku_field",
203067
+ "margin_alert_available"
202969
203068
  ],
202970
203069
  "properties": {
202971
203070
  "default_cogs_pct": {
@@ -203014,6 +203113,10 @@
203014
203113
  "type": "null"
203015
203114
  }
203016
203115
  ]
203116
+ },
203117
+ "margin_alert_available": {
203118
+ "description": "True when a tracked revenue source (Shopify, WooCommerce or a tracker) is connected and active. The margin alert can be switched on only when true.",
203119
+ "type": "boolean"
203017
203120
  }
203018
203121
  }
203019
203122
  }
@@ -203030,6 +203133,32 @@
203030
203133
  }
203031
203134
  }
203032
203135
  },
203136
+ "422": {
203137
+ "description": "Unprocessable entity - semantic validation failed",
203138
+ "content": {
203139
+ "application/json": {
203140
+ "schema": {
203141
+ "type": "object",
203142
+ "required": [
203143
+ "statusCode",
203144
+ "error",
203145
+ "message"
203146
+ ],
203147
+ "properties": {
203148
+ "statusCode": {
203149
+ "type": "number"
203150
+ },
203151
+ "error": {
203152
+ "type": "string"
203153
+ },
203154
+ "message": {
203155
+ "type": "string"
203156
+ }
203157
+ }
203158
+ }
203159
+ }
203160
+ }
203161
+ },
203033
203162
  "500": {
203034
203163
  "description": "Internal server error",
203035
203164
  "content": {
@@ -203921,6 +204050,7 @@
203921
204050
  "break_even_roas",
203922
204051
  "data_source",
203923
204052
  "data_quality",
204053
+ "tracked_revenue",
203924
204054
  "currency"
203925
204055
  ],
203926
204056
  "properties": {
@@ -204078,6 +204208,10 @@
204078
204208
  "data_quality": {
204079
204209
  "type": "string"
204080
204210
  },
204211
+ "tracked_revenue": {
204212
+ "description": "True when every day with revenue in the row has revenue from a tracked source (Shopify, WooCommerce, tracker). False means the margin is estimated from the ad platform conversion value.",
204213
+ "type": "boolean"
204214
+ },
204081
204215
  "currency": {
204082
204216
  "type": "string"
204083
204217
  }
@@ -393671,6 +393805,9 @@
393671
393805
  "security": [
393672
393806
  {
393673
393807
  "bearerAuth": []
393808
+ },
393809
+ {
393810
+ "apiKeyAuth": []
393674
393811
  }
393675
393812
  ],
393676
393813
  "responses": {
@@ -393777,6 +393914,32 @@
393777
393914
  }
393778
393915
  }
393779
393916
  },
393917
+ "403": {
393918
+ "description": "Forbidden - caller lacks the required role/permission",
393919
+ "content": {
393920
+ "application/json": {
393921
+ "schema": {
393922
+ "type": "object",
393923
+ "required": [
393924
+ "statusCode",
393925
+ "error",
393926
+ "message"
393927
+ ],
393928
+ "properties": {
393929
+ "statusCode": {
393930
+ "type": "number"
393931
+ },
393932
+ "error": {
393933
+ "type": "string"
393934
+ },
393935
+ "message": {
393936
+ "type": "string"
393937
+ }
393938
+ }
393939
+ }
393940
+ }
393941
+ }
393942
+ },
393780
393943
  "422": {
393781
393944
  "description": "Unprocessable entity - semantic validation failed",
393782
393945
  "content": {
@@ -393803,6 +393966,16 @@
393803
393966
  }
393804
393967
  }
393805
393968
  },
393969
+ "429": {
393970
+ "description": "Too many requests - rate limit exceeded. Reachable on every API-key operation: the per-key cap sold with the plan answers `code: API_KEY_RATE_LIMITED` with `retry_after_seconds` and the `Retry-After` header. The global per-IP limiter can answer here too, with the same status and only `statusCode`, `error` and `message`.",
393971
+ "content": {
393972
+ "application/json": {
393973
+ "schema": {
393974
+ "$ref": "#/components/schemas/RateLimitedResponse"
393975
+ }
393976
+ }
393977
+ }
393978
+ },
393806
393979
  "500": {
393807
393980
  "description": "Internal server error",
393808
393981
  "content": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wevion/cli",
3
- "version": "1.0.3946",
3
+ "version": "1.0.3957",
4
4
  "description": "Wevion API command-line interface — generated from the public OpenAPI spec",
5
5
  "type": "module",
6
6
  "bin": {