@wix/bex-utils 2.71.0 → 2.73.0

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 (112) hide show
  1. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/builders.impl.d.ts +115 -0
  2. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/builders.impl.js +1340 -0
  3. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/builders.impl.js.map +1 -0
  4. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/http.impl.d.ts +29 -0
  5. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/http.impl.js +524 -0
  6. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/http.impl.js.map +1 -0
  7. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/meta.impl.d.ts +20 -0
  8. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/meta.impl.js +119 -0
  9. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/meta.impl.js.map +1 -0
  10. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/client/proto-generated.d.ts +18874 -0
  11. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/client/proto-generated.js +2 -0
  12. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/proto-generated.d.ts +9468 -0
  13. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/proto-generated.js +1 -0
  14. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/server/proto-generated.d.ts +18788 -0
  15. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/server/proto-generated.js +2 -0
  16. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/rpc.impl.d.ts +39 -0
  17. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/rpc.impl.js +113 -0
  18. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/rpc.impl.js.map +1 -0
  19. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/types.impl.d.ts +1248 -0
  20. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/types.impl.js +371 -0
  21. package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/types.impl.js.map +1 -0
  22. package/@wix/ambassador-dealer-v1-serving-offer/build/es/builders.impl.d.ts +115 -0
  23. package/@wix/ambassador-dealer-v1-serving-offer/build/es/builders.impl.js +1209 -0
  24. package/@wix/ambassador-dealer-v1-serving-offer/build/es/builders.impl.js.map +1 -0
  25. package/@wix/ambassador-dealer-v1-serving-offer/build/es/http.impl.d.ts +29 -0
  26. package/@wix/ambassador-dealer-v1-serving-offer/build/es/http.impl.js +516 -0
  27. package/@wix/ambassador-dealer-v1-serving-offer/build/es/http.impl.js.map +1 -0
  28. package/@wix/ambassador-dealer-v1-serving-offer/build/es/meta.impl.d.ts +20 -0
  29. package/@wix/ambassador-dealer-v1-serving-offer/build/es/meta.impl.js +92 -0
  30. package/@wix/ambassador-dealer-v1-serving-offer/build/es/meta.impl.js.map +1 -0
  31. package/@wix/ambassador-dealer-v1-serving-offer/build/es/rpc.impl.d.ts +39 -0
  32. package/@wix/ambassador-dealer-v1-serving-offer/build/es/rpc.impl.js +86 -0
  33. package/@wix/ambassador-dealer-v1-serving-offer/build/es/rpc.impl.js.map +1 -0
  34. package/@wix/ambassador-dealer-v1-serving-offer/build/es/types.impl.d.ts +1248 -0
  35. package/@wix/ambassador-dealer-v1-serving-offer/build/es/types.impl.js +368 -0
  36. package/@wix/ambassador-dealer-v1-serving-offer/build/es/types.impl.js.map +1 -0
  37. package/@wix/ambassador-dealer-v1-serving-offer/builders/package.json +7 -0
  38. package/@wix/ambassador-dealer-v1-serving-offer/http/package.json +7 -0
  39. package/@wix/ambassador-dealer-v1-serving-offer/meta/package.json +7 -0
  40. package/@wix/ambassador-dealer-v1-serving-offer/package.json +52 -0
  41. package/@wix/ambassador-dealer-v1-serving-offer/rpc/package.json +6 -0
  42. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiment_properties.proto +46 -0
  43. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiment_results.proto +39 -0
  44. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiment_support_kpis.proto +29 -0
  45. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiments_properties_thin.proto +31 -0
  46. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/wixab_service.proto +81 -0
  47. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/action_payload.proto +33 -0
  48. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/annotations.proto +451 -0
  49. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/api_errors.proto +142 -0
  50. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/callback.proto +163 -0
  51. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/context.proto +19 -0
  52. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/entity.proto +127 -0
  53. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/errors.proto +127 -0
  54. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/idempotency.proto +25 -0
  55. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/permissions.proto +46 -0
  56. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/sla.proto +24 -0
  57. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/subscription.proto +32 -0
  58. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/validations.proto +142 -0
  59. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/address.proto +148 -0
  60. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/bulk.proto +53 -0
  61. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/data/dataextensions/extended-fields.proto +20 -0
  62. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/data/dataextensions/update-extended-fields-messages.proto +15 -0
  63. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/data/errors.proto +435 -0
  64. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/identification.proto +40 -0
  65. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/image.proto +8 -0
  66. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/media.proto +280 -0
  67. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/money.proto +32 -0
  68. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/pageurl.proto +32 -0
  69. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/paging.proto +121 -0
  70. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/query.proto +812 -0
  71. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/sorting.proto +36 -0
  72. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/spi.proto +85 -0
  73. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/tags.proto +55 -0
  74. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/wixlink.proto +203 -0
  75. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/audiences.proto +226 -0
  76. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/campaigns.proto +270 -0
  77. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/frequency-caps.proto +74 -0
  78. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/localization-managers.proto +11 -0
  79. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/managers.proto +11 -0
  80. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/offer-test.proto +338 -0
  81. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/offer.proto +298 -0
  82. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/offers-service.proto +696 -0
  83. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/placements.proto +423 -0
  84. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/schemas-service.proto +142 -0
  85. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/targeting.proto +378 -0
  86. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/upstream/wix/common/paging.proto +126 -0
  87. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/upstream/wix/common/query.proto +840 -0
  88. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/upstream/wix/common/sorting.proto +37 -0
  89. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerOffersServing/api/v1/dealer-offers-debug.proto +188 -0
  90. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerOffersServing/api/v1/dealer-offers-serving.proto +177 -0
  91. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerOffersServing/api/v1/offer.proto +87 -0
  92. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerPriority/api/v1/priority-service.proto +57 -0
  93. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerPriority/api/v1/priority.proto +132 -0
  94. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/graphql/definitions.proto +13 -0
  95. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/http/field_mask.proto +46 -0
  96. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/optimization_tester_service.proto +284 -0
  97. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/test.proto +170 -0
  98. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/bulk.proto +56 -0
  99. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/paging.proto +121 -0
  100. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/query.proto +741 -0
  101. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/sorting.proto +26 -0
  102. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/targeting/v1/targeting.proto +406 -0
  103. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/targeting/v1/targeting_service.proto +247 -0
  104. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/variants_generator/v1/variant.proto +92 -0
  105. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/variants_generator/v1/variants_generator_service.proto +73 -0
  106. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/sdk/definitions.proto +191 -0
  107. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/spi/definitions.proto +187 -0
  108. package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/spi/http_error_status.proto +24 -0
  109. package/@wix/ambassador-dealer-v1-serving-offer/types/package.json +7 -0
  110. package/@wix/bex-bundled-mini-essentials/CHANGELOG.md +4 -0
  111. package/@wix/bex-bundled-mini-essentials/package.json +1 -1
  112. package/package.json +6 -5
@@ -0,0 +1,338 @@
1
+ syntax = "proto3";
2
+
3
+ package wix.dealerBackoffice.api.v1;
4
+
5
+ import "google/protobuf/timestamp.proto";
6
+ import "google/protobuf/wrappers.proto";
7
+ import "google/protobuf/field_mask.proto";
8
+ import "google/api/annotations.proto";
9
+ import "wix/api/annotations.proto";
10
+ import "wix/api/validations.proto";
11
+ import "wix/http/field_mask.proto";
12
+ import "wix/api/entity.proto";
13
+ import "wix/api/callback.proto";
14
+ import "wix/api/sla.proto";
15
+ import "wix/dealerBackoffice/api/v1/upstream/wix/common/query.proto";
16
+ import "wix/dealerBackoffice/api/v1/upstream/wix/common/paging.proto";
17
+ import "wix/api/permissions.proto";
18
+ import "wix/personalize/optimization_test/v1/test.proto";
19
+ import "wix/personalize/variants_generator/v1/variant.proto";
20
+
21
+ option java_package = "com.wix.dealerBackoffice.api.v1";
22
+
23
+ // flynt-disable field-type-breaking-change
24
+ message OfferTest {
25
+ // flynt-disable missing-taggable-annotation
26
+ option (wix.api.entity) = {
27
+ fqdn:"wix.dealer.v1.offer_test"
28
+ segment: USERS
29
+ domain_events_read_permission: "DEALER_BACKOFFICE.OFFER_TEST_DOMAIN_EVENTS_READ"
30
+ query_options: {
31
+ wql: {
32
+ pattern: {
33
+ operator: ALL_APPLICABLE_OPERATORS
34
+ field: "id"
35
+ field: "offer_id"
36
+ field: "experiment_id"
37
+ field: "offer_schema_key"
38
+ field: "status"
39
+ sort: BOTH
40
+ }
41
+ }
42
+ }
43
+ };
44
+
45
+ option (wix.api.domain_event) = {
46
+ event_type: CREATED
47
+ exposure: PUBLIC
48
+ maturity: ALPHA
49
+ };
50
+ option (wix.api.domain_event) = {
51
+ event_type: UPDATED
52
+ exposure: PUBLIC
53
+ maturity: ALPHA
54
+ };
55
+ option (wix.api.domain_event) = {
56
+ event_type: DELETED
57
+ exposure: PUBLIC
58
+ maturity: ALPHA
59
+ };
60
+
61
+ // Unique test id
62
+ google.protobuf.StringValue id = 1 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
63
+
64
+ // The offer the test belongs to
65
+ google.protobuf.StringValue offer_id = 2 [(wix.api.format) = GUID];
66
+
67
+ // The experiment id in Petri
68
+ google.protobuf.StringValue experiment_id = 3 [(wix.api.format) = GUID];
69
+
70
+ // The text key in the offer schema
71
+ google.protobuf.StringValue offer_schema_key = 4 [(wix.api.maxLength) = 300];
72
+
73
+ // Variants list of id and the variant text
74
+ repeated Variant variants = 5 [(wix.api.maxSize) = 10];
75
+
76
+ // The test id in the Optimization Tester Service
77
+ google.protobuf.StringValue optimization_test_id = 6 [(wix.api.format) = GUID];
78
+
79
+ // The time the test created
80
+ google.protobuf.Timestamp started_at = 7 [(wix.api.readOnly) = true];
81
+
82
+ // The time the test ended
83
+ google.protobuf.Timestamp ended_at = 8 [(wix.api.readOnly) = true];
84
+
85
+ // The kpis send to Petri
86
+ repeated string kpis = 9 [(wix.api.format) = GUID, (wix.api.maxSize) = 10];
87
+
88
+ // The requested duration for the test in days
89
+ google.protobuf.Int32Value duration_in_days = 10;
90
+
91
+ // Slack Addresses for the users to send updates about the test
92
+ // flynt-disable renamed-field-breaking-change
93
+ repeated string email_addresses = 11 [(wix.api.format) = EMAIL, (wix.api.maxSize) = 10];
94
+
95
+ // The status of the test in Petri
96
+ TestStatus status = 12;
97
+
98
+ // The result of the test in Wixer
99
+ repeated wix.personalize.optimization_test.v1.Test.MvtResults experiment_results = 13 [(wix.api.maxSize) = 10];
100
+
101
+ // The user id created the offer test
102
+ google.protobuf.StringValue created_by = 14 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
103
+
104
+ // The user id last updated the offer test
105
+ google.protobuf.StringValue updated_by = 15 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
106
+
107
+ reserved 16;
108
+
109
+ // The name of the test.
110
+ google.protobuf.StringValue name = 17 [(wix.api.maxLength) = 200];
111
+
112
+ // The creation date of the test. Read-only.
113
+ google.protobuf.Timestamp created_at = 18 [(wix.api.readOnly) = true];
114
+
115
+ // The last update date of the test. Read-only.
116
+ google.protobuf.Timestamp updated_at = 19 [(wix.api.readOnly) = true];
117
+
118
+ google.protobuf.StringValue wixer_id = 20 [(wix.api.maxLength) = 10];
119
+
120
+ // The ab test id in Petri
121
+ google.protobuf.StringValue ab_test_id = 21 [(wix.api.maxLength) = 60];
122
+
123
+ // The test's ownership-tag
124
+ google.protobuf.StringValue ownership_tag = 22 [(wix.api.maxLength) = 100];
125
+
126
+ message Variant {
127
+ // The variant id, A for the original text, the rest variants B, C...
128
+ string key = 1 [(wix.api.maxLength) = 1];
129
+
130
+ // The text the variant presents
131
+ string text = 2 [(wix.api.maxLength) = 10000];
132
+
133
+ // The persona voice describes the variant.
134
+ wix.personalize.variants_generator.v1.Persona persona = 3;
135
+
136
+ // Is the persona text was edited.
137
+ google.protobuf.BoolValue custom = 4;
138
+ }
139
+
140
+ // test statuses
141
+ enum TestStatus {
142
+ UNKNOWN_TEST_STATUS = 0;
143
+ NOT_STARTED = 1;
144
+ ACTIVE = 2;
145
+ ENDED = 3;
146
+ }
147
+ }
148
+
149
+ service OfferTestService {
150
+ option (wix.api.service_entity).message = "wix.dealerBackoffice.api.v1.OfferTest";
151
+ option (wix.api.service_maturity) = ALPHA;
152
+ option (wix.api.service_exposure) = INTERNAL;
153
+
154
+ option (wix.api.event) = {
155
+ topic: "dealer.offer-test-stopped-event"
156
+ segment: USERS
157
+ exposure: INTERNAL
158
+ payload: "wix.dealerBackoffice.api.v1.OfferTestStoppedEvent"
159
+ };
160
+
161
+ rpc GetOfferTest (GetOfferTestRequest) returns (GetOfferTestResponse) {
162
+ option (google.api.http).get = "/v1/dealer/backoffice/offer-tests/{test_id}";
163
+ option (wix.api.required) = "GetOfferTestRequest.test_id";
164
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.READ_OFFER";
165
+ option (wix.api.crud) = {
166
+ method: GET_ITEM
167
+ get_options: {
168
+ id_field: "test_id",
169
+ item_field: "offer_test"
170
+ }
171
+ };
172
+ }
173
+
174
+ rpc QueryOfferTests (QueryOfferTestsRequest) returns (QueryOfferTestsResponse) {
175
+ option (google.api.http).post = "/v1/dealer/backoffice/offer-tests/query";
176
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.READ_OFFER";
177
+ }
178
+
179
+ // flynt-disable required-annotation-breaking-change
180
+ rpc CreateOfferTest (CreateOfferTestRequest) returns (CreateOfferTestResponse) {
181
+ option (google.api.http).post = "/v1/dealer/backoffice/offer-tests";
182
+ option (wix.api.required) = "CreateOfferTestRequest.offer_test.offer_id";
183
+ option (wix.api.required) = "CreateOfferTestRequest.offer_test.name";
184
+ option (wix.api.required) = "CreateOfferTestRequest.offer_test.offer_schema_key";
185
+ option (wix.api.required) = "CreateOfferTestRequest.offer_test.variants";
186
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.CREATE_OFFER";
187
+ option (wix.api.sla).response_time_ms = 50000;
188
+ option (wix.api.crud) = {
189
+ method: CREATE
190
+ create_options: {
191
+ item_field: "offer_test"
192
+ }
193
+ };
194
+ option (wix.api.emits) = {
195
+ event_type: CREATED
196
+ };
197
+ }
198
+
199
+ rpc UpdateOfferTest (UpdateOfferTestRequest) returns (UpdateOfferTestResponse) {
200
+ option (google.api.http).patch = "/v1/dealer/backoffice/offer-tests/{offer_test.id}";
201
+ option (wix.api.required) = "UpdateOfferTestRequest.offer_test.id";
202
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.UPDATE_OFFER";
203
+
204
+
205
+ option (wix.http.infer_fieldmask) = {
206
+ from: "offer_test"
207
+ fieldmask: "field_mask"
208
+ };
209
+ option (wix.api.crud) = {
210
+ method: UPDATE
211
+ update_options: {
212
+ item_field: "offer_test"
213
+ fieldmask_field: "field_mask"
214
+ }
215
+ };
216
+ option (wix.api.emits) = {
217
+ event_type: UPDATED
218
+ };
219
+ }
220
+
221
+ rpc StartOfferTest(StartOfferTestRequest) returns (StartOfferTestResponse) {
222
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.UPDATE_OFFER";
223
+ option (google.api.http).post = "/v1/dealer/backoffice/offer-tests/{test_id}/start";
224
+ option (wix.api.sla).response_time_ms = 50000;
225
+ option (wix.api.required) = "StartOfferTestRequest.test_id";
226
+ }
227
+
228
+ rpc StopOfferTest(StopOfferTestRequest) returns (StopOfferTestResponse) {
229
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.UPDATE_OFFER";
230
+ option (google.api.http).post = "/v1/dealer/backoffice/offer-tests/{test_id}/stop";
231
+ option (wix.api.sla).response_time_ms = 50000;
232
+ option (wix.api.required) = "StopOfferTestRequest.test_id";
233
+ }
234
+
235
+ rpc DeleteOfferTest (DeleteOfferTestRequest) returns (DeleteOfferTestResponse) {
236
+ option (google.api.http).delete = "/v1/dealer/backoffice/offer-tests/{test_id}";
237
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.UPDATE_OFFER";
238
+ option (wix.api.required) = "DeleteOfferTestRequest.test_id";
239
+ option (wix.api.emits) = {
240
+ event_type: DELETED
241
+ };
242
+ option (wix.api.crud) = {
243
+ method: DELETE
244
+ delete_options: {
245
+ id_field: "test_id"
246
+ }
247
+ };
248
+ }
249
+
250
+ rpc SetTimeLeft (SetTimeLeftRequest) returns (SetTimeLeftResponse) {
251
+ option (google.api.http).put = "/v1/dealer/backoffice/offer-tests/{test_id}/time-left";
252
+ option (wix.api.required) = "SetTimeLeftRequest.test_id";
253
+ option (wix.api.required) = "SetTimeLeftRequest.time_left_in_days";
254
+ option (wix.api.permission).name = "DEALER_BACKOFFICE.UPDATE_OFFER";
255
+ }
256
+ }
257
+
258
+ message GetOfferTestRequest {
259
+ string test_id = 1 [(wix.api.format) = GUID];
260
+ }
261
+
262
+ message GetOfferTestResponse {
263
+ OfferTest offer_test = 1;
264
+ }
265
+
266
+ // Supported queries:
267
+ //
268
+ // filter:
269
+ // query: { filter: { offerId: '<uuid>'}}
270
+ // query: { filter: { offerId: { $in: ['<uuid>', '<uuid>']}}}
271
+ // query: { filter: { offerSchemaKey: 'key'}}
272
+ // query: { filter: { offerSchemaKey: { $in: ['key1', 'key2']}}}
273
+ // query: { filter: { optimizationTestId: '<uuid>'}}
274
+ // query: { filter: { optimizationTestId: { $in: ['<uuid>', '<uuid>']}}}
275
+ // query: { filter: { status: 'ACTIVE'}}
276
+ // query: { filter: { status: { $in: ['ACTIVE', 'NOT_STARTED', 'ENDED']}}}
277
+
278
+ message QueryOfferTestsRequest {
279
+ wix.dealerBackoffice.api.v1.upstream.wix.common.Query query = 1;
280
+ }
281
+
282
+ message QueryOfferTestsResponse {
283
+ repeated OfferTest offer_tests = 1;
284
+ wix.dealerBackoffice.api.v1.upstream.wix.common.PagingMetadata paging_metadata = 2;
285
+ }
286
+
287
+ message CreateOfferTestRequest {
288
+ OfferTest offer_test = 1;
289
+ }
290
+
291
+ message CreateOfferTestResponse {
292
+ OfferTest offer_test = 1;
293
+ }
294
+
295
+ message UpdateOfferTestRequest {
296
+ OfferTest offer_test = 1;
297
+ google.protobuf.FieldMask field_mask = 2;
298
+ }
299
+
300
+ message UpdateOfferTestResponse {
301
+ OfferTest offer_test = 1;
302
+ }
303
+
304
+ message StartOfferTestRequest {
305
+ string test_id = 1 [(wix.api.format) = GUID];
306
+ }
307
+
308
+ message StartOfferTestResponse {
309
+ OfferTest offer_test = 1;
310
+ }
311
+
312
+ message StopOfferTestRequest {
313
+ string test_id = 1 [(wix.api.format) = GUID];
314
+ }
315
+
316
+ message StopOfferTestResponse {
317
+ OfferTest offer_test = 1;
318
+ }
319
+
320
+ message DeleteOfferTestRequest {
321
+ string test_id = 1 [(wix.api.format) = GUID];
322
+ }
323
+
324
+ message DeleteOfferTestResponse {}
325
+
326
+ message OfferTestStoppedEvent {
327
+ string offer_test_id = 1 [(wix.api.format) = GUID];
328
+ string offer_id = 2 [(wix.api.format) = GUID];
329
+ }
330
+
331
+ message SetTimeLeftRequest {
332
+ string test_id = 1 [(wix.api.format) = GUID];
333
+ int32 time_left_in_days = 2;
334
+ }
335
+
336
+ message SetTimeLeftResponse {
337
+ OfferTest offer_test = 1;
338
+ }
@@ -0,0 +1,298 @@
1
+ syntax = "proto3";
2
+
3
+ package wix.dealerBackoffice.api.v1;
4
+
5
+ import "google/protobuf/timestamp.proto";
6
+ import "google/protobuf/wrappers.proto";
7
+ import "google/protobuf/struct.proto";
8
+
9
+
10
+ import "wix/api/annotations.proto";
11
+ import "wix/api/validations.proto";
12
+ import "wix/api/entity.proto";
13
+
14
+ import "wix/dealerBackoffice/api/v1/managers.proto";
15
+ import "wix/dealerBackoffice/api/v1/frequency-caps.proto";
16
+ import "wix/personalize/targeting/v1/targeting.proto";
17
+
18
+ option java_package = "com.wix.dealerBackoffice.api.v1";
19
+
20
+
21
+
22
+ // Offer is a specific asset (payload) intended to be served to a user + targeting rules (to allow dealer
23
+ // to decide if offer is eligible for given user).
24
+ //
25
+ // Targeting is a set of conditions (rules) a user must satisfy to get an offer (offer is called "eligible"
26
+ // for the user). Asset is the actual content returned to the user.
27
+ // Offer always belongs to single dealer Placement (real estate). Offer can be standalone or part of dealer Campaign.
28
+ message Offer {
29
+ option (wix.api.entity) = {fqdn:"wix.dealer.v1.backoffice_offer", segment: USERS};
30
+
31
+ // Unique offer guid
32
+ google.protobuf.StringValue guid = 1 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
33
+
34
+ // Dealer placement id. Required.
35
+ string placement_id = 2 [(wix.api.format) = GUID];
36
+
37
+ // Dealer campaign id. Optional.
38
+ // To update — use connect/disconnect campaign endpoints.
39
+ google.protobuf.StringValue campaign_id = 3 [(wix.api.format) = GUID];
40
+
41
+ // Audience ids derived from targeting of the offer.
42
+ // All audiences found in the offer (meaning user will be checked to belong to one of them when dealer
43
+ // runtime is called)
44
+ // Default "empty" value (also on partial projection responses) is always empty array [] (protobuff
45
+ // feature).
46
+ // Readonly.
47
+ repeated string audience_ids = 4 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
48
+
49
+ // Backoffice name of offer. Required (may be null on partial projection response)
50
+ google.protobuf.StringValue name = 5 [(wix.api.minLength) = 1];
51
+
52
+ // Backoffice description of an offer. Optional.
53
+ google.protobuf.StringValue description = 6;
54
+
55
+ // Personalized user content - can be more then one in case of ab test
56
+ Asset asset = 8;
57
+
58
+ // Offer should be available to users starting from this time
59
+ google.protobuf.Timestamp start_date = 9;
60
+
61
+ // Offer should stop being available to users after this time
62
+ google.protobuf.Timestamp stop_date = 10;
63
+
64
+ // Derived status from start_date, stop_date and offer lifecycle state.
65
+ // Default "empty" value (also on partial projection responses) is UNKNOWN (protobuff feature)
66
+ Status status = 12 [(wix.api.readOnly) = true];
67
+
68
+ // Readonly priority of the offer within a placement. Can be changed using prioritize endpoint.
69
+ // Higher value means higher priority (10 should be on top of 1)
70
+ // Archived offers dont have priority.
71
+ google.protobuf.Int32Value priority_in_placement = 13 [(wix.api.readOnly) = true];
72
+
73
+ // KPI id from wix bi bank https://bo.wix.com/wix-docs/rest/drafts/bibank
74
+ google.protobuf.StringValue kpi_id = 14 [(wix.api.format) = GUID];
75
+
76
+ // The user id who created this offer. Readonly.
77
+ google.protobuf.StringValue created_by = 15 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
78
+
79
+ // The last user id who last updated this offer. Readonly.
80
+ google.protobuf.StringValue updated_by = 16 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
81
+
82
+ // The creation date of the offer. Readonly.
83
+ google.protobuf.Timestamp created_date = 17 [(wix.api.readOnly) = true];
84
+
85
+ // The last update date of the offer. Readonly.
86
+ google.protobuf.Timestamp updated_date = 18 [(wix.api.readOnly) = true];
87
+
88
+ // Current frequency caps config of the offer (if own offer frequency_caps_config is empty - offer's
89
+ // placement frequency_caps_config is returned)
90
+ FrequencyCapsConfig frequency_caps_config = 19;
91
+
92
+ // Wix users responsible for the offer (PMMs usually).
93
+ ManagerIdsWrapper managers_ids = 20;
94
+
95
+ // Unique human and URL friendly shortname of the offer
96
+ google.protobuf.StringValue slug = 21 [(wix.api.readOnly) = true];
97
+
98
+ // Unique targeting id
99
+ google.protobuf.StringValue targeting_id = 22 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
100
+
101
+ ExperimentFilter experiment_criteria = 24;
102
+
103
+ wix.personalize.targeting.v1.TargetingTree targeting_entity = 25;
104
+
105
+ reserved 26;
106
+
107
+ google.protobuf.StringValue exposure_id = 27 [(wix.api.format) = GUID, (wix.api.readOnly) = true];
108
+
109
+ // Current offer state in lifecycle
110
+ enum Status {
111
+ UNKNOWN = 0;
112
+
113
+ // Offer has internal status PAUSED (not being served by dealer runtime)
114
+ PAUSED = 1;
115
+
116
+ // Offer has internal status WIX_EMPLOYEE (served by runtime to employees only)
117
+ WIX_EMPLOYEE = 2;
118
+
119
+ // Offer has internal status READY, start_date and start_date is in the future
120
+ // (not being served by dealer runtime until start_date)
121
+ SCHEDULED = 3;
122
+
123
+ // Offer has internal status READY and neither start_date in the future, nor stop_date in the past
124
+ // (being served by dealer runtime)
125
+ LIVE = 4;
126
+
127
+ // Offer has internal status READY, stop_date and stop_date is in the past
128
+ // (not being served by dealer runtime)
129
+ ENDED = 5;
130
+
131
+ // Offer has internal status ARCHIVED (not being served by dealer runtime)
132
+ ARCHIVED = 6;
133
+
134
+ // Offer has internal status IN_REVIEW (not being served by dealer runtime)
135
+ IN_REVIEW = 7;
136
+ }
137
+
138
+ message FrequencyCapsConfig {
139
+ FrequencyCaps frequency_caps = 1;
140
+ }
141
+ }
142
+
143
+ // Asset content wrapper for A/B test offers
144
+ message AbTestAsset {
145
+ // A variant payload
146
+ AssetContent a = 1;
147
+ // B variant payload
148
+ AssetContent b = 2;
149
+
150
+ // Petri spec name for this A/B test
151
+ string spec = 3 [(wix.api.minLength) = 1, (wix.api.readOnly) = true];
152
+ }
153
+
154
+ // Actual payload of the offer
155
+ message AssetContent {
156
+ // the personlized content for the user - json string
157
+ google.protobuf.StringValue payload_json = 1 [(wix.api.minLength) = 1];
158
+ }
159
+
160
+ // Offer payload data wrapper
161
+ message Asset {
162
+ // The asset type in that placement. It's a readonly field derived from offer placement.
163
+ // i.e: Asset type for the placement "Dashboard Main - Top Right" is "banner"
164
+ google.protobuf.StringValue asset_type = 1 [(wix.api.minLength) = 1, (wix.api.readOnly) = true];
165
+
166
+ oneof asset_content {
167
+ // A/B assets (only for "banner" asset type)
168
+ AbTestAsset abtest = 2;
169
+ // actual asset payload
170
+ AssetContent content = 3;
171
+ }
172
+
173
+ reserved 4;
174
+
175
+ // Dynamic params of the offer
176
+ DynamicParamsWrapper dynamic_params_wrapper = 5;
177
+
178
+ // Localized content of the offer is an arbitrary JSON like payload for specific locale value
179
+ map<string, LocalizedContentData> localized_content = 6;
180
+ }
181
+
182
+ message TranslationMetadata {
183
+ TranslationStatus translation_status = 1;
184
+ google.protobuf.Timestamp translation_request_date = 2;
185
+ google.protobuf.Timestamp translation_completed_date = 3;
186
+ repeated string localization_managers_ids = 4;
187
+
188
+ enum TranslationStatus {
189
+ PENDING = 0;
190
+ TRANSLATED = 1;
191
+ OUTDATED = 2;
192
+ PENDING_TRANSLATION = 3;
193
+ PENDING_UPDATES = 4;
194
+ UP_TO_DATE = 5;
195
+ }
196
+ }
197
+
198
+ message LocalizedContentData {
199
+ google.protobuf.Struct content = 1;
200
+ TranslationMetadata metadata = 2 [(wix.api.readOnly) = true];
201
+ }
202
+
203
+ message DynamicParamsWrapper {
204
+ repeated DynamicParam dynamic_params = 1;
205
+ }
206
+
207
+ // Type of dynamic param, what kind of data [interpolation_key] represents. Wether it's a domain name, user
208
+ // email etc.
209
+ message DynamicParamType {
210
+ enum Enum {
211
+ UNKNOWN = 0;
212
+ DOMAIN_NAME = 1;
213
+ SITE_NAME = 2;
214
+ USER_EMAIL = 3;
215
+ SEASONAL_SALE_END_DATE = 4;
216
+ BI_PROFILE = 5;
217
+ BUSINESS_NAME = 6;
218
+ USER_FIRST_NAME = 7;
219
+ USER_LAST_NAME = 8;
220
+ }
221
+ }
222
+
223
+ message RoundFormat {
224
+ // required field default is 0
225
+ int32 decimal_places = 1 [(wix.api.min) = 0];
226
+ }
227
+
228
+ message RangeLimitFormat {
229
+ google.protobuf.Int32Value min = 1 ;
230
+ google.protobuf.Int32Value max = 2 ;
231
+ }
232
+
233
+ message PercentageFormat {
234
+ bool active = 1;
235
+ }
236
+
237
+ message DynamicParamFormatting {
238
+ // will round a number to X decimal places
239
+ // fro example when dynamic param value is 15.88 and round.decimal_places is 1 the result is 15.9
240
+ RoundFormat round = 2;
241
+
242
+ // dont return dynamic param value if value out of range
243
+ RangeLimitFormat range_limit = 3;
244
+
245
+ // multiply the dynamic param value by 100
246
+ PercentageFormat percentage = 4;
247
+ }
248
+
249
+ // Individual dynamic parameter of the offer.
250
+ // Value that should be interpolated by dealer at runtime and instead of [interpolation_key]
251
+ // actual value from BI profile should be inserted everywhere in payload returned to client.
252
+ message DynamicParam {
253
+ string interpolation_key = 1 [(wix.api.minLength) = 1];
254
+
255
+ DynamicParamType.Enum type = 2;
256
+
257
+ oneof metadata {
258
+ BiMetadata bi = 3;
259
+ }
260
+
261
+ // formatting for dynamic param value
262
+ // when using multiple formatting together the order is round then range then percentage
263
+ DynamicParamFormatting formatting = 4;
264
+ }
265
+
266
+ message BiMetadata {
267
+ string bi_profile_key = 1;
268
+
269
+ enum Level {
270
+ UNKNOWN_LEVEL = 0;
271
+ SITE = 1;
272
+ USER = 2;
273
+ }
274
+
275
+ Level level = 2;
276
+ }
277
+
278
+ message KeyValue {
279
+ string key = 1 [(wix.api.minLength) = 1];
280
+ string value = 2 [(wix.api.minLength) = 1];
281
+ }
282
+
283
+ message OfferOperationEvent {
284
+ Offer offer = 1;
285
+ Operation operation = 2;
286
+
287
+ enum Operation {
288
+ UNKNOWN = 0;
289
+ CREATED = 1;
290
+ UPDATED = 2;
291
+ ARCHIVED = 3;
292
+ }
293
+ }
294
+
295
+ message ExperimentFilter {
296
+ google.protobuf.StringValue spec = 1 [(.wix.api.maxLength) = 256];
297
+ google.protobuf.StringValue value = 2 [(.wix.api.maxLength) = 256];
298
+ }