@wix/bex-utils 2.71.0 → 2.72.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.
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/builders.impl.d.ts +115 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/builders.impl.js +1340 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/builders.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/http.impl.d.ts +29 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/http.impl.js +524 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/http.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/meta.impl.d.ts +20 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/meta.impl.js +119 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/meta.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/client/proto-generated.d.ts +18874 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/client/proto-generated.js +2 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/proto-generated.d.ts +9468 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/proto-generated.js +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/server/proto-generated.d.ts +18788 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/proto/server/proto-generated.js +2 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/rpc.impl.d.ts +39 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/rpc.impl.js +113 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/rpc.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/types.impl.d.ts +1248 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/types.impl.js +371 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/cjs/types.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/builders.impl.d.ts +115 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/builders.impl.js +1209 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/builders.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/http.impl.d.ts +29 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/http.impl.js +516 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/http.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/meta.impl.d.ts +20 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/meta.impl.js +92 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/meta.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/rpc.impl.d.ts +39 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/rpc.impl.js +86 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/rpc.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/types.impl.d.ts +1248 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/types.impl.js +368 -0
- package/@wix/ambassador-dealer-v1-serving-offer/build/es/types.impl.js.map +1 -0
- package/@wix/ambassador-dealer-v1-serving-offer/builders/package.json +7 -0
- package/@wix/ambassador-dealer-v1-serving-offer/http/package.json +7 -0
- package/@wix/ambassador-dealer-v1-serving-offer/meta/package.json +7 -0
- package/@wix/ambassador-dealer-v1-serving-offer/package.json +52 -0
- package/@wix/ambassador-dealer-v1-serving-offer/rpc/package.json +6 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiment_properties.proto +46 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiment_results.proto +39 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiment_support_kpis.proto +29 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/experiments_properties_thin.proto +31 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/abtest/v2/wixab_service.proto +81 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/action_payload.proto +33 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/annotations.proto +451 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/api_errors.proto +142 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/callback.proto +163 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/context.proto +19 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/entity.proto +127 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/errors.proto +127 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/idempotency.proto +25 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/permissions.proto +46 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/sla.proto +24 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/subscription.proto +32 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/api/validations.proto +142 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/address.proto +148 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/bulk.proto +53 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/data/dataextensions/extended-fields.proto +20 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/data/dataextensions/update-extended-fields-messages.proto +15 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/data/errors.proto +435 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/identification.proto +40 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/image.proto +8 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/media.proto +280 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/money.proto +32 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/pageurl.proto +32 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/paging.proto +121 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/query.proto +812 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/sorting.proto +36 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/spi.proto +85 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/tags.proto +55 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/common/wixlink.proto +203 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/audiences.proto +226 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/campaigns.proto +270 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/frequency-caps.proto +74 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/localization-managers.proto +11 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/managers.proto +11 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/offer-test.proto +338 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/offer.proto +298 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/offers-service.proto +696 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/placements.proto +423 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/schemas-service.proto +142 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/targeting.proto +378 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/upstream/wix/common/paging.proto +126 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/upstream/wix/common/query.proto +840 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerBackoffice/api/v1/upstream/wix/common/sorting.proto +37 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerOffersServing/api/v1/dealer-offers-debug.proto +188 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerOffersServing/api/v1/dealer-offers-serving.proto +177 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerOffersServing/api/v1/offer.proto +87 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerPriority/api/v1/priority-service.proto +57 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/dealerPriority/api/v1/priority.proto +132 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/graphql/definitions.proto +13 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/http/field_mask.proto +46 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/optimization_tester_service.proto +284 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/test.proto +170 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/bulk.proto +56 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/paging.proto +121 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/query.proto +741 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/optimization_test/v1/upstream/wix/common/sorting.proto +26 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/targeting/v1/targeting.proto +406 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/targeting/v1/targeting_service.proto +247 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/variants_generator/v1/variant.proto +92 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/personalize/variants_generator/v1/variants_generator_service.proto +73 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/sdk/definitions.proto +191 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/spi/definitions.proto +187 -0
- package/@wix/ambassador-dealer-v1-serving-offer/src/main/proto/wix/spi/http_error_status.proto +24 -0
- package/@wix/ambassador-dealer-v1-serving-offer/types/package.json +7 -0
- package/package.json +5 -4
|
@@ -0,0 +1,142 @@
|
|
|
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 = "ApiErrorsProto";
|
|
10
|
+
option java_package = "com.wix.api";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Annotation for method returned errors.
|
|
14
|
+
* Example usage:
|
|
15
|
+
**/
|
|
16
|
+
//import "google/protobuf/empty.proto";
|
|
17
|
+
//service FooService {
|
|
18
|
+
// // Definition of a service-level error.
|
|
19
|
+
// // Accepts `markdown` and multiline.
|
|
20
|
+
// option (wix.api.error_def) = {
|
|
21
|
+
// http_code: FAILED_PRECONDITION
|
|
22
|
+
// application_code: "NO_FOO_SUPPLY"
|
|
23
|
+
// };
|
|
24
|
+
//
|
|
25
|
+
// rpc CreateFoo (google.protobuf.Empty) returns (google.protobuf.Empty) {
|
|
26
|
+
// // Reference to a service-level error.
|
|
27
|
+
// option (wix.api.error_ref) = {
|
|
28
|
+
// application_code: "NO_FOO_SUPPLY"
|
|
29
|
+
// };
|
|
30
|
+
// // Definition of a method-level error.
|
|
31
|
+
// // Accepts `markdown` and multiline.
|
|
32
|
+
// option (wix.api.error) = {
|
|
33
|
+
// http_code: FAILED_PRECONDITION
|
|
34
|
+
// application_code: "NO_FOO_SUPPLY"
|
|
35
|
+
// data: "com.wixpress.foo.v1.NoFooSupplyError"
|
|
36
|
+
// };
|
|
37
|
+
// // You can specify multiple errors.
|
|
38
|
+
// option (wix.api.custom_validation_error) = {
|
|
39
|
+
// rule_name: "INVALID_NOTE"
|
|
40
|
+
// data: "com.wixpress.foo.v1.MyRuleViolationError"
|
|
41
|
+
// };
|
|
42
|
+
// // This method MAY throw standard crud errors of BULK_UPDATE method type.
|
|
43
|
+
// option (wix.api.inherit_crud_errors) = {
|
|
44
|
+
// method: BULK_UPDATE
|
|
45
|
+
// };
|
|
46
|
+
// }
|
|
47
|
+
//}
|
|
48
|
+
|
|
49
|
+
extend google.protobuf.ServiceOptions {
|
|
50
|
+
repeated Error error_def = 50600;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
extend google.protobuf.MethodOptions {
|
|
54
|
+
repeated Error error = 50801;
|
|
55
|
+
repeated CustomValidationError custom_validation_error = 50802;
|
|
56
|
+
repeated InheritCrudErrors inherit_crud_errors = 50803;
|
|
57
|
+
repeated ErrorRef error_ref = 50804;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
ApplicationError: named Error for backwards compatibility
|
|
62
|
+
**/
|
|
63
|
+
message Error {
|
|
64
|
+
required StatusCodes.HttpStatusCode http_code = 1;
|
|
65
|
+
optional string application_code = 2;
|
|
66
|
+
optional string data = 3; // FQN path to the message that will be sent as payload for this error
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
Method-level reference to a service-level error.
|
|
71
|
+
**/
|
|
72
|
+
message ErrorRef {
|
|
73
|
+
// Must match existing service-level error application code.
|
|
74
|
+
required string application_code = 1;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
CustomValidationError: field level validation, only declare when you have specific validation in your service that is not coming from infra
|
|
79
|
+
**/
|
|
80
|
+
message CustomValidationError {
|
|
81
|
+
required string rule_name = 1;
|
|
82
|
+
optional string data = 2; // FQN path to the message that will be sent as payload for this error
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
InheritCrudErrors: does this method throw standard crud errors?
|
|
87
|
+
**/
|
|
88
|
+
message InheritCrudErrors {
|
|
89
|
+
required Crud.Method method = 1; // types of crud methods to inherit default errors from
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
message StatusCodes {
|
|
93
|
+
enum HttpStatusCode {
|
|
94
|
+
OK = 0; // 200
|
|
95
|
+
|
|
96
|
+
//Default error codes (applicable to all endpoints)
|
|
97
|
+
|
|
98
|
+
// 401 - Identity missing (missing, invalid or expired oAuth token,
|
|
99
|
+
// signed instance or cookies)
|
|
100
|
+
UNAUTHENTICATED = 1;
|
|
101
|
+
|
|
102
|
+
// 403 - Identity does not have the permission needed for this method / resource
|
|
103
|
+
PERMISSION_DENIED = 2;
|
|
104
|
+
|
|
105
|
+
// 400 - Bad Request. The client sent malformed body
|
|
106
|
+
// or one of the arguments was invalid
|
|
107
|
+
INVALID_ARGUMENT = 3;
|
|
108
|
+
|
|
109
|
+
// 404 - Resource does not exist
|
|
110
|
+
NOT_FOUND = 4;
|
|
111
|
+
|
|
112
|
+
// 500 - Internal Server Error
|
|
113
|
+
INTERNAL = 5;
|
|
114
|
+
|
|
115
|
+
// 503 - Come back later, server is currently unavailable
|
|
116
|
+
UNAVAILABLE = 6;
|
|
117
|
+
|
|
118
|
+
// 429 - The client has sent too many requests
|
|
119
|
+
// in a given amount of time (rate limit)
|
|
120
|
+
RESOURCE_EXHAUSTED = 7;
|
|
121
|
+
|
|
122
|
+
//Custom error codes - need to be documented
|
|
123
|
+
|
|
124
|
+
// 499 - Request cancelled by the client
|
|
125
|
+
CANCELED = 8;
|
|
126
|
+
|
|
127
|
+
// 409 - Can't recreate same resource or concurrency conflict
|
|
128
|
+
ALREADY_EXISTS = 9; //409
|
|
129
|
+
|
|
130
|
+
// 428 - request cannot be executed in current system state
|
|
131
|
+
// such as deleting a non-empty folder or paying with no funds
|
|
132
|
+
FAILED_PRECONDITION = 10;
|
|
133
|
+
|
|
134
|
+
//DO NOT USE IN WIX
|
|
135
|
+
// ABORTED = 11; // 409
|
|
136
|
+
// OUT_OF_RANGE = 12; // 400
|
|
137
|
+
// DEADLINE_EXEEDED = 13; // 504
|
|
138
|
+
// DATA_LOSS = 14; // 500
|
|
139
|
+
// UNIMPLEMENTED = 15; // 501
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
@@ -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
|
+
}
|