@wix/bex-utils 2.78.0 → 2.79.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 (75) hide show
  1. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/builders.impl.d.ts +22 -0
  2. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/builders.impl.js +275 -0
  3. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/builders.impl.js.map +1 -0
  4. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/http.impl.d.ts +50 -0
  5. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/http.impl.js +250 -0
  6. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/http.impl.js.map +1 -0
  7. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/meta.impl.d.ts +16 -0
  8. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/meta.impl.js +81 -0
  9. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/meta.impl.js.map +1 -0
  10. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/proto/client/proto-generated.d.ts +7116 -0
  11. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/proto/client/proto-generated.js +2 -0
  12. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/proto/proto-generated.d.ts +3557 -0
  13. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/proto/proto-generated.js +1 -0
  14. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/proto/server/proto-generated.d.ts +7113 -0
  15. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/proto/server/proto-generated.js +2 -0
  16. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/rpc.impl.d.ts +59 -0
  17. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/rpc.impl.js +109 -0
  18. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/rpc.impl.js.map +1 -0
  19. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/types.impl.d.ts +343 -0
  20. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/types.impl.js +42 -0
  21. package/@wix/ambassador-dealer-v1-offer-event/build/cjs/types.impl.js.map +1 -0
  22. package/@wix/ambassador-dealer-v1-offer-event/build/es/builders.impl.d.ts +22 -0
  23. package/@wix/ambassador-dealer-v1-offer-event/build/es/builders.impl.js +239 -0
  24. package/@wix/ambassador-dealer-v1-offer-event/build/es/builders.impl.js.map +1 -0
  25. package/@wix/ambassador-dealer-v1-offer-event/build/es/http.impl.d.ts +50 -0
  26. package/@wix/ambassador-dealer-v1-offer-event/build/es/http.impl.js +244 -0
  27. package/@wix/ambassador-dealer-v1-offer-event/build/es/http.impl.js.map +1 -0
  28. package/@wix/ambassador-dealer-v1-offer-event/build/es/meta.impl.d.ts +16 -0
  29. package/@wix/ambassador-dealer-v1-offer-event/build/es/meta.impl.js +56 -0
  30. package/@wix/ambassador-dealer-v1-offer-event/build/es/meta.impl.js.map +1 -0
  31. package/@wix/ambassador-dealer-v1-offer-event/build/es/rpc.impl.d.ts +59 -0
  32. package/@wix/ambassador-dealer-v1-offer-event/build/es/rpc.impl.js +84 -0
  33. package/@wix/ambassador-dealer-v1-offer-event/build/es/rpc.impl.js.map +1 -0
  34. package/@wix/ambassador-dealer-v1-offer-event/build/es/types.impl.d.ts +343 -0
  35. package/@wix/ambassador-dealer-v1-offer-event/build/es/types.impl.js +39 -0
  36. package/@wix/ambassador-dealer-v1-offer-event/build/es/types.impl.js.map +1 -0
  37. package/@wix/ambassador-dealer-v1-offer-event/builders/package.json +7 -0
  38. package/@wix/ambassador-dealer-v1-offer-event/http/package.json +7 -0
  39. package/@wix/ambassador-dealer-v1-offer-event/meta/package.json +7 -0
  40. package/@wix/ambassador-dealer-v1-offer-event/package.json +52 -0
  41. package/@wix/ambassador-dealer-v1-offer-event/rpc/package.json +6 -0
  42. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/action_payload.proto +33 -0
  43. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/annotations.proto +451 -0
  44. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/api_errors.proto +142 -0
  45. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/callback.proto +163 -0
  46. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/context.proto +19 -0
  47. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/entity.proto +127 -0
  48. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/errors.proto +127 -0
  49. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/idempotency.proto +25 -0
  50. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/permissions.proto +46 -0
  51. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/sla.proto +24 -0
  52. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/subscription.proto +32 -0
  53. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/api/validations.proto +142 -0
  54. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/address.proto +148 -0
  55. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/bulk.proto +53 -0
  56. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/identification.proto +40 -0
  57. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/image.proto +8 -0
  58. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/media.proto +280 -0
  59. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/money.proto +32 -0
  60. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/pageurl.proto +32 -0
  61. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/paging.proto +121 -0
  62. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/query.proto +799 -0
  63. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/sorting.proto +36 -0
  64. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/spi.proto +85 -0
  65. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/tags.proto +55 -0
  66. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/common/wixlink.proto +203 -0
  67. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/dealerOfferEvents/api/v1/dealer-offer-events.proto +211 -0
  68. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/dealerOfferEvents/api/v1/event.proto +131 -0
  69. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/graphql/definitions.proto +13 -0
  70. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/http/field_mask.proto +46 -0
  71. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/sdk/definitions.proto +191 -0
  72. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/spi/definitions.proto +187 -0
  73. package/@wix/ambassador-dealer-v1-offer-event/src/main/proto/wix/spi/http_error_status.proto +24 -0
  74. package/@wix/ambassador-dealer-v1-offer-event/types/package.json +7 -0
  75. package/package.json +4 -3
@@ -0,0 +1,163 @@
1
+ syntax = "proto2";
2
+
3
+ package wix.api;
4
+
5
+ import "google/protobuf/descriptor.proto";
6
+ import "wix/api/annotations.proto";
7
+
8
+ option java_multiple_files = true;
9
+ option java_outer_classname = "CallbackProto";
10
+ option java_package = "com.wix.api";
11
+
12
+ /*
13
+ callback option is used to denote two separate concepts:
14
+ 1. DomainEvents- these are events your service sends on all activities in your entity. Emitted as a result of this method.
15
+ service BlooperService {
16
+ option (wix.api.service_entity).message = "com.wixpress.examples.Blooper"; //the "main" entity
17
+ rpc CreateBlooper (CreateBlooperRequest) returns (CreateBlooperResponse) {
18
+ option (wix.api.callback) = {
19
+ event_type: CREATED
20
+ };
21
+ };
22
+ rpc MissedBlooper (MissedBlooperRequest) returns (MissedBlooperResponse) {
23
+ option (wix.api.callback) = {
24
+ event_type: Action
25
+ payload: "com.wixpress.examples.BlooperWasMissed"
26
+ };
27
+ };
28
+ }
29
+ message Blooper {
30
+ option (wix.api.entity) = {
31
+ fqdn: "wix.examples.Blooper"
32
+ };
33
+ }
34
+ message BlooperWasMissed {
35
+ int32 how_funny_it_could_have_been = 1;
36
+ }
37
+
38
+
39
+ 2. Kafka events that are internal to your domain and that are not related to a specific entity. Emitted as a result of this method.
40
+ service BlooperService {
41
+ rpc Update (Request) returns (Response) {
42
+ option (wix.api.callback) = {
43
+ segment: USERS
44
+ topic: "Blooper.Update"
45
+ payload: "BlooperUpdateNotification" //name of the Message that is sent as event
46
+ permission: "Some.Permission" //permission required to consume this event as a webhook
47
+ };
48
+ };
49
+ }
50
+ */
51
+ extend google.protobuf.MethodOptions {
52
+ repeated Callback callback = 50000;
53
+ repeated Emits emits = 50001;
54
+ }
55
+
56
+ /*
57
+ event option is used to denote two separate concepts:
58
+ 1. DomainEvents- these are events your service sends on all activities in your entity (see examples above)
59
+ 2. Kafka events that are internal to your domain and that are not related to a specific entity
60
+ Both are emitted by the service, not necessarily as a result of a method call (some internal process of the service)
61
+ Internal to domain event example:
62
+ service BlooperService {
63
+ option (wix.api.event) = {
64
+ segment: PUBLIC
65
+ topic: "Blooper.Update"
66
+ payload: "BlooperUpdateNotification" //name of the Message that is sent as event
67
+ permission: "Some.Permission" //permission required to consume this event as a webhook
68
+ };
69
+ rpc Update (Request) returns (Response) {
70
+ //...
71
+ };
72
+ }
73
+ */
74
+ extend google.protobuf.ServiceOptions {
75
+ repeated Callback event = 50000;
76
+ repeated CallbackDeprecation event_deprecated = 50001;
77
+ // reserved 50002; TODO(aplus, 2024-08-13) remove when all artifact sync/GA
78
+ }
79
+
80
+ message Callback {
81
+ enum EventType {
82
+ UNKNOWN = 0;
83
+ CREATED = 1;
84
+ UPDATED = 2;
85
+ DELETED = 3;
86
+ ACTION = 4;
87
+ }
88
+
89
+ optional string topic = 1;
90
+ optional Segment.SegmentName segment = 8; // currently defaults to "legacy", will be `required` when legacy cluster is removed
91
+ optional string payload = 2;
92
+ optional string permission = 3;
93
+ optional EventType event_type = 4;
94
+ optional Exposure exposure = 6;
95
+ optional Maturity maturity = 7;
96
+ }
97
+
98
+ message DomainEvent {
99
+ enum EventType {
100
+ UNKNOWN = 0;
101
+ CREATED = 1;
102
+ UPDATED = 2;
103
+ DELETED = 3;
104
+ ACTION = 4;
105
+ }
106
+ optional string action_message_fqn = 2; // Required when event_type == ACTION, otherwise must not be set
107
+ optional string webhook_permission_override = 3;
108
+ optional EventType event_type = 4;
109
+ optional Exposure exposure = 6;
110
+ optional Maturity maturity = 7;
111
+ optional string additional_metadata_fqn = 8;
112
+ optional DomainEventDeprecation deprecated = 9; // assigned and detailed where the subject event is deprecated
113
+ }
114
+
115
+ message Emits {
116
+ required DomainEvent.EventType event_type = 1;
117
+ optional string action_message_fqn = 2; // Required when event_type == ACTION, otherwise must not be set
118
+ }
119
+
120
+ message DomainEventDeprecation {
121
+ optional string replaced_by = 1;
122
+ optional string target_removal_date = 2;
123
+ }
124
+
125
+ message CallbackDeprecation {
126
+ optional string replaced_by = 1;
127
+ optional string target_removal_date = 2;
128
+ optional Callback.EventType event_type = 3;
129
+ optional string custom_slug = 4; // required when event_type=action
130
+ optional string payload = 5;
131
+ }
132
+
133
+ message Segment {
134
+
135
+ /**
136
+ * [Segment] annotation registers to Confluent clusters.
137
+ * Existing topics might have a hard-coded segment in Greyhound, so this option is not required in proto.
138
+ * However, new topics must provide a segment, or greyhound will throw an exception.
139
+ * @see https://bo.wix.com/wix-docs/rnd/p13n-guidelines---aips/guidance-aips/design-patterns/[7016]-events#p13n-guidelines---aips_guidance-aips_design-patterns_[7016]-events_12-choose-the-right-segment
140
+ */
141
+ enum SegmentName {
142
+ UNSPECIFIED = 0; // currently means "auto-resolved for old topics", will be forbidden when legacy cluster is removed
143
+
144
+ /**
145
+ * For events that are consumed in 42 and uw2 only.
146
+ * This also includes a case where an event is produced from 84/AE1 via toMainDC
147
+ */
148
+ USERS = 1;
149
+
150
+ /**
151
+ * For events that are consumed in all DCs.
152
+ * This includes both cases where an event is published from 84/AE1 and cases where it's published from 42/uw2 and replicated via Raven to 84/AE1
153
+ */
154
+ PUBLIC = 2;
155
+
156
+ /**
157
+ * For DevEx services/migrations.
158
+ * Deployed on 42, uw2.
159
+ */
160
+ OTHERS = 3;
161
+ }
162
+ }
163
+
@@ -0,0 +1,19 @@
1
+ syntax = "proto3";
2
+
3
+ package wix.api;
4
+
5
+ option java_multiple_files = true;
6
+ option java_outer_classname = "ContextProto";
7
+ option java_package = "com.wix.api";
8
+
9
+ message RequestContext {
10
+ map<string, string> aspects = 1;
11
+ }
12
+
13
+ message ResponseContext {
14
+ repeated ResponseContextEntry aspects = 1;
15
+ }
16
+
17
+ message ResponseContextEntry {
18
+ map<string, string> aspectEntry = 1;
19
+ }
@@ -0,0 +1,127 @@
1
+ syntax = "proto2";
2
+
3
+ package wix.api;
4
+
5
+ import "google/protobuf/descriptor.proto";
6
+ import "wix/api/annotations.proto";
7
+ import "wix/api/callback.proto";
8
+
9
+ option java_multiple_files = true;
10
+ option java_outer_classname = "EntityProto";
11
+ option java_package = "com.wix.api";
12
+
13
+ /*
14
+ Marks that message X is the "main" entity of service Y
15
+ Key requirement for DomainEvents used in callback/event
16
+
17
+ package com.wixpress.examples;
18
+
19
+ service BlooperService {
20
+ option (wix.api.service_entity).message = "com.wixpress.examples.Blooper"; // the "main" entity
21
+ rpc Update (BlooperRequest) returns (BlooperResponse) {
22
+ //...
23
+ };
24
+ }
25
+
26
+ message Blooper {
27
+ option (wix.api.entity) = {
28
+ fqdn: "wix.examples.Blooper" // A fully qualified domain name for this entity. Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction
29
+ exposure: PUBLIC // Optional exposure field. Will be used by systems like corvid and webhooks to decide if to expose events related to this entity to external parties
30
+ };
31
+ }
32
+ */
33
+
34
+ extend google.protobuf.ServiceOptions {
35
+ optional ServiceEntity service_entity = 50500;
36
+ }
37
+
38
+ message ServiceEntity {
39
+ required string message = 1;
40
+ optional string namespace = 50501; // use to avoid naming collisions between functions listed under the same fqdn/entity. Business Schema service shall use it using this hierarchy: [Entity > namespace > action]
41
+ }
42
+
43
+ extend google.protobuf.MessageOptions {
44
+ optional Entity entity = 50500;
45
+ repeated DomainEvent domain_event = 50501;
46
+ }
47
+
48
+ message Entity {
49
+ required string fqdn = 1;
50
+ optional Exposure exposure = 2 [deprecated = true];
51
+ repeated MessageAppendix appendix_files = 3; // declare external configuration info
52
+ optional string old_fqdn_for_backwards_compatibility = 4; // Topic name for domain events will be based on this attribute if present (only for known legacy FQDNs)
53
+ optional Segment.SegmentName segment = 5; // the cluster to which domain events will be produced
54
+ repeated string implements = 6; // FQDNs of interfaces (i.e. SPIs) that this entity implements. Must begin with `wix.interfaces.`
55
+ optional Extensible extensible = 7; // Indicates that this entity can be extended by apps using data-extension mechanism.
56
+ optional bool trashbin = 8; // Indicates whether trash-bin is exposed on this entity.
57
+ optional string plural = 9; // plural form of this entity. e.g. singular: `entity`; plural: `entities`;
58
+ optional string domain_events_read_permission = 10; // permission to consume all event types of this entity from topic. affects internal/external consumers. For external webhook subscribers - MAY be overridden by event/callback `permission` field.
59
+ optional string app_def_id = 11; // the app in devcenter that owns this entity
60
+ optional DomainEventOptions domain_events = 12;
61
+ optional Taggable taggable = 13; // Indicates whether this entity supports tagging
62
+ optional QueryOptions query_options = 14;
63
+ optional Exposure events_exposure = 15; // default events exposure, may be overridden in `wix.api.domain_event`
64
+ optional Maturity events_maturity = 16; // default events maturity, may be overridden in `wix.api.domain_event`
65
+ optional Persistence persistence = 17; // persistence config: type and tenancy model
66
+ optional PermissionCatalogOptions permission_options = 18; // options for permissions catalog auto generation
67
+ }
68
+
69
+ message PermissionCatalogOptions {
70
+ optional bool auto_generate_permissions = 1; // indicates whether to auto-generate permissions in the catalog for this entity
71
+ optional bool auto_generate_scopes = 2; // indicates whether to auto-generate scopes in the catalog for this entity
72
+ }
73
+
74
+ message Persistence {
75
+ enum Type {
76
+ STANDARD = 0; // multiple records per tenant
77
+ SINGLETON = 1; // single record per tenant
78
+ NONE = 2; // zero records per tenant - stateless
79
+ }
80
+ optional Type type = 1;
81
+ }
82
+
83
+ message Extensible {
84
+
85
+ optional string nested_extension_field_path = 1;
86
+ // Indicates whether this entity supports filtering by extended fields which are marked in schema as `x-wix-filterable`
87
+ optional bool filterable = 2;
88
+ repeated NestedExtensionPointMapping nested_extension_point_mappings = 3; // mappings for nested extensionPoint
89
+ }
90
+
91
+ message NestedExtensionPointMapping {
92
+ required string extension_point = 1; // the logical name of the extension point
93
+ required string path = 2; // the path to the parent object that contains the `extended_fields` field
94
+ }
95
+
96
+ message MessageAppendix {
97
+ enum Type {
98
+ UNKNOWN_APPENDIX_TYPE = 0;
99
+ AUTO_VELO = 1; // auto velo configuration
100
+ DOCS_CONF = 2; // wix docs configuration: `documentation.yaml`
101
+ MULTILINGUAL = 3; // wix multilingual configuration
102
+ SEARCH = 4; // nile search configuration
103
+ AUTO_SDK = 5; // auto sdk configuration
104
+ }
105
+ required Type type = 1; // appendix type
106
+ required string path = 2; // absolute from module root
107
+ }
108
+
109
+ message DomainEventOptions {
110
+ optional bool event_sequence_number = 1; // indicated whenever `entity_event_sequence` in the envelope is set/populated for CUD events.
111
+ optional bool deleted_include_entity = 2; // indicated whenever `deleted_entity_as_json` is set/populated for EntityDeletedEvent events.
112
+ optional bool updated_include_modified_fields = 3; // indicated whenever `modified_fields` is set/populated for EntityUpdatedEvent events.
113
+ }
114
+
115
+ message Taggable {}
116
+
117
+ message QueryOptions {
118
+ required Wql wql = 1; // mark fields that are available for filtering and sorting via WixQueryLanguage
119
+ repeated Search search = 2; // mark fields that are available for search
120
+ repeated NamedQueryOptions additional_query_options = 10; //additional query options
121
+ }
122
+
123
+ message NamedQueryOptions {
124
+ required string name = 1; // additional options should be named
125
+ required Wql wql = 2; // mark fields that are available for filtering and sorting via WixQueryLanguage
126
+ repeated Search search = 3; // mark fields that are available for search
127
+ }
@@ -0,0 +1,127 @@
1
+ syntax = "proto3";
2
+
3
+ package wix.api;
4
+
5
+ option java_package = "com.wix.api";
6
+
7
+ import "google/protobuf/struct.proto";
8
+ import "google/protobuf/wrappers.proto";
9
+
10
+ message Details {
11
+ oneof kind {
12
+ ApplicationError application_error = 1;
13
+ ValidationError validation_error = 2;
14
+ SystemError system_error = 4;
15
+ }
16
+ map<string, string> tracing = 3 [deprecated = true]; // deprecated in API's - to enable migration from rendering arbitrary tracing to rest response
17
+ }
18
+
19
+ message ApplicationError {
20
+ // Error code.
21
+ string code = 1;
22
+ // Description of the error.
23
+ string description = 2;
24
+ // Data related to the error.
25
+ google.protobuf.Struct data = 3;
26
+ }
27
+
28
+ message SystemError {
29
+ // Error code.
30
+ google.protobuf.StringValue errorCode = 1;
31
+ }
32
+
33
+ /**
34
+ example result:
35
+ {
36
+ "fieldViolations": [
37
+ {
38
+ "field": "fieldA",
39
+ "description": "invalid music note. supported notes: [do,re,mi,fa,sol,la,ti]",
40
+ "violatedRule": "OTHER",
41
+ "ruleName": "INVALID_NOTE",
42
+ "data": {
43
+ "value": "FI"
44
+ }
45
+ },
46
+ {
47
+ "field": "fieldB",
48
+ "description": "field value out of range. supported range: [0-20]",
49
+ "violatedRule": "MAX",
50
+ "data": {
51
+ "threshold": 20
52
+ }
53
+ },
54
+ {
55
+ "field": "fieldC",
56
+ "description": "invalid phone number. provide a valid phone number of size: [7-12], supported characters: [0-9, +, -, (, )]",
57
+ "violatedRule": "FORMAT",
58
+ "data": {
59
+ "type": "PHONE"
60
+ }
61
+ }
62
+ ]
63
+ }
64
+ **/
65
+ message ValidationError {
66
+ enum RuleType {
67
+ VALIDATION = 0;
68
+ OTHER = 1;
69
+ MAX = 2;
70
+ MIN = 3;
71
+ MAX_LENGTH = 4;
72
+ MIN_LENGTH = 5;
73
+ MAX_SIZE = 6;
74
+ MIN_SIZE = 7;
75
+ FORMAT = 8;
76
+ DECIMAL_LTE = 9;
77
+ DECIMAL_GTE = 10;
78
+ DECIMAL_LT = 11;
79
+ DECIMAL_GT = 12;
80
+ DECIMAL_MAX_SCALE = 13;
81
+ INVALID_ENUM_VALUE = 14;
82
+ REQUIRED_FIELD = 15;
83
+ FIELD_NOT_ALLOWED = 16;
84
+ ONE_OF_ALIGNMENT = 17;
85
+ EXACT_LENGTH = 18;
86
+ EXACT_SIZE = 19;
87
+ REQUIRED_ONE_OF_FIELD = 20;
88
+ }
89
+ message FieldViolation {
90
+ string field = 1;
91
+ string description = 2;
92
+ RuleType violated_rule = 3;
93
+ google.protobuf.StringValue rule_name = 4; // applicable when violated_rule=OTHER
94
+ google.protobuf.Struct data = 5;
95
+ }
96
+ repeated FieldViolation field_violations = 1;
97
+ }
98
+
99
+ // for all kinds of min/max violations - match to type provided in annotation
100
+ message LimitRuleInt32DataPayload {
101
+ int32 threshold = 1;
102
+ }
103
+
104
+ // for all kinds of min/max violations - match to type provided in annotation
105
+ message LimitRuleDoubleDataPayload {
106
+ double threshold = 1;
107
+ }
108
+
109
+ // for all kinds of min/max violations - match to type provided in annotation
110
+ message LimitRuleStringDataPayload {
111
+ string threshold = 1;
112
+ }
113
+
114
+ // for format violations
115
+ message FormatRuleDataPayload {
116
+ string type = 1;
117
+ }
118
+
119
+ // for enum violations
120
+ message EnumRuleDataPayload {
121
+ repeated string supported = 1;
122
+ }
123
+
124
+ // for required one-of violations
125
+ message RequiredOneOfRuleDataPayload {
126
+ repeated string supported = 1;
127
+ }
@@ -0,0 +1,25 @@
1
+ syntax = "proto2";
2
+
3
+ package wix.api;
4
+
5
+ import "google/protobuf/descriptor.proto";
6
+
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "IdempotencyProto";
9
+ option java_package = "com.wix.api";
10
+
11
+ /* Idempotency annotation for Loom Prime
12
+ Configures idempotency for the method.
13
+ See ExecutionGuard README for more details: https://github.com/wix-private/server-infra/blob/master/aglianico/execution-guard/README.md#loom-prime-with-zero-code
14
+
15
+ [NOTE]:
16
+ The annotation affects only Loom Prime services.
17
+ Any other service will ignore this annotation.
18
+ */
19
+ extend google.protobuf.MethodOptions {
20
+ optional Idempotency idempotency = 50153;
21
+ }
22
+
23
+ message Idempotency {
24
+ optional string key = 1;
25
+ }
@@ -0,0 +1,46 @@
1
+ syntax = "proto2";
2
+
3
+ package wix.api;
4
+
5
+ import "google/protobuf/descriptor.proto";
6
+
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "PermissionsProto";
9
+ option java_package = "com.wix.api";
10
+
11
+ /**
12
+ * Annotation for method permission rules
13
+ * example usage:
14
+ * import "wix/api/permissions.proto";
15
+ * service Bloop {
16
+ * rpc Create (CreateBloopRequest) returns (CreateBloopResponse) {
17
+ * option (wix.api.permission).name = "SOME_PERMISSION_NAME";
18
+ * }
19
+ * rpc SpecialDelete (SpecialDeleteBloopRequest) returns (SpecialDeleteResponse) {
20
+ * option (wix.api.permission) = {
21
+ * name: "SOME_PERMISSION_NAME"
22
+ * type: MANUAL
23
+ * }
24
+ * }
25
+ * }
26
+ **/
27
+ extend google.protobuf.MethodOptions {
28
+ optional PermissionRule permission = 50301;
29
+ repeated PermissionRule additional_permission = 50302;
30
+ }
31
+
32
+ message PermissionRule {
33
+ optional string name = 1;
34
+ optional PermissionType type = 2;
35
+ optional AbacRequestValidationMode abac_request_validation = 3;
36
+ }
37
+
38
+ enum PermissionType {
39
+ AUTO = 0;
40
+ MANUAL = 1;
41
+ }
42
+
43
+ enum AbacRequestValidationMode {
44
+ ON = 0;
45
+ OFF = 1;
46
+ }
@@ -0,0 +1,24 @@
1
+ syntax = "proto2";
2
+
3
+ package wix.api;
4
+
5
+ import "google/protobuf/descriptor.proto";
6
+
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "SlaProto";
9
+ option java_package = "com.wix.api";
10
+
11
+ extend google.protobuf.MethodOptions {
12
+ optional Sla sla = 50700;
13
+ }
14
+
15
+ message Sla {
16
+ /*
17
+ * Number of milliseconds after which the method will timeout
18
+ * and return TIMEOUT (504) response for http or DEADLINE_EXCEEDED
19
+ * for grpc.
20
+ * This default deadline will be applied automatically
21
+ * if request does not contain deadline information.
22
+ */
23
+ optional int32 response_time_ms = 1;
24
+ }
@@ -0,0 +1,32 @@
1
+ syntax = "proto2";
2
+
3
+ package wix.api;
4
+
5
+ import "google/protobuf/descriptor.proto";
6
+ import "wix/api/callback.proto";
7
+
8
+ option java_multiple_files = true;
9
+ option java_outer_classname = "SubscriptionProto";
10
+ option java_package = "com.wix.api";
11
+
12
+ /*
13
+ Marks a method as a topic consumer.
14
+ service BlooperService {
15
+ rpc Update (BlooperUpdateNotification) returns (google.protobuf.Empty) {
16
+ option (wix.api.subscription) = {
17
+ topic: "Blooper.Update"
18
+ };
19
+ };
20
+ }
21
+ */
22
+ extend google.protobuf.MethodOptions {
23
+ optional Subscription subscription = 50400;
24
+ }
25
+
26
+ message Subscription {
27
+ optional string topic = 1;
28
+ optional Segment.SegmentName segment = 4; // currently defaults to "legacy", will be `required` when legacy cluster is removed
29
+ optional bool batch = 2 [deprecated = true];
30
+ optional string entity = 3;
31
+ optional bool dynamic = 5;
32
+ }