openfeature-provider-flagd 0.1.5__py3-none-any.whl → 0.2.1__py3-none-any.whl

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 (44) hide show
  1. openfeature/.gitignore +2 -0
  2. openfeature/contrib/provider/flagd/config.py +214 -23
  3. openfeature/contrib/provider/flagd/provider.py +88 -12
  4. openfeature/contrib/provider/flagd/resolvers/__init__.py +1 -47
  5. openfeature/contrib/provider/flagd/resolvers/grpc.py +229 -17
  6. openfeature/contrib/provider/flagd/resolvers/in_process.py +40 -31
  7. openfeature/contrib/provider/flagd/resolvers/process/connector/__init__.py +11 -0
  8. openfeature/contrib/provider/flagd/resolvers/process/connector/file_watcher.py +107 -0
  9. openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py +218 -0
  10. openfeature/contrib/provider/flagd/resolvers/process/custom_ops.py +58 -19
  11. openfeature/contrib/provider/flagd/resolvers/process/flags.py +50 -6
  12. openfeature/contrib/provider/flagd/resolvers/process/targeting.py +35 -0
  13. openfeature/contrib/provider/flagd/resolvers/protocol.py +47 -0
  14. openfeature/contrib/provider/flagd/sync_metadata_hook.py +14 -0
  15. openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2.py +72 -0
  16. openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2.pyi +450 -0
  17. openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2_grpc.py +358 -0
  18. openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2_grpc.pyi +155 -0
  19. openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2.py +50 -0
  20. openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2.pyi +148 -0
  21. openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2_grpc.py +186 -0
  22. openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2_grpc.pyi +86 -0
  23. openfeature/schemas/protobuf/schema/v1/schema_pb2.py +72 -0
  24. openfeature/schemas/protobuf/schema/v1/schema_pb2.pyi +451 -0
  25. openfeature/schemas/protobuf/schema/v1/schema_pb2_grpc.py +358 -0
  26. openfeature/schemas/protobuf/schema/v1/schema_pb2_grpc.pyi +156 -0
  27. openfeature/schemas/protobuf/sync/v1/sync_service_pb2.py +47 -0
  28. openfeature/schemas/protobuf/sync/v1/sync_service_pb2.pyi +174 -0
  29. openfeature/schemas/protobuf/sync/v1/sync_service_pb2_grpc.py +143 -0
  30. openfeature/schemas/protobuf/sync/v1/sync_service_pb2_grpc.pyi +70 -0
  31. {openfeature_provider_flagd-0.1.5.dist-info → openfeature_provider_flagd-0.2.1.dist-info}/METADATA +116 -15
  32. openfeature_provider_flagd-0.2.1.dist-info/RECORD +36 -0
  33. {openfeature_provider_flagd-0.1.5.dist-info → openfeature_provider_flagd-0.2.1.dist-info}/WHEEL +1 -1
  34. {openfeature_provider_flagd-0.1.5.dist-info → openfeature_provider_flagd-0.2.1.dist-info}/licenses/LICENSE +1 -1
  35. openfeature/contrib/provider/flagd/proto/flagd/evaluation/v1/evaluation_pb2.py +0 -62
  36. openfeature/contrib/provider/flagd/proto/flagd/evaluation/v1/evaluation_pb2_grpc.py +0 -267
  37. openfeature/contrib/provider/flagd/proto/flagd/sync/v1/sync_pb2.py +0 -40
  38. openfeature/contrib/provider/flagd/proto/flagd/sync/v1/sync_pb2_grpc.py +0 -135
  39. openfeature/contrib/provider/flagd/proto/schema/v1/schema_pb2.py +0 -62
  40. openfeature/contrib/provider/flagd/proto/schema/v1/schema_pb2_grpc.py +0 -267
  41. openfeature/contrib/provider/flagd/proto/sync/v1/sync_service_pb2.py +0 -37
  42. openfeature/contrib/provider/flagd/proto/sync/v1/sync_service_pb2_grpc.py +0 -102
  43. openfeature/contrib/provider/flagd/resolvers/process/file_watcher.py +0 -89
  44. openfeature_provider_flagd-0.1.5.dist-info/RECORD +0 -22
@@ -0,0 +1,451 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ *
5
+ DEPRECATED; use flagd.evaluation.v1
6
+ Flag evaluation API
7
+
8
+ This proto forms the basis of a flag-evaluation API.
9
+ It supports single and bulk evaluation RPCs, and flags of various types, as well as establishing a stream for getting notifications about changes in a flag definition.
10
+ It supports the inclusion of a "context" with each evaluation, which may contain arbitrary attributes relevant to flag evaluation.
11
+ """
12
+
13
+ import builtins
14
+ import collections.abc
15
+ import google.protobuf.descriptor
16
+ import google.protobuf.internal.containers
17
+ import google.protobuf.message
18
+ import google.protobuf.struct_pb2
19
+ import typing
20
+
21
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
22
+
23
+ @typing.final
24
+ class ResolveAllRequest(google.protobuf.message.Message):
25
+ """Request body for bulk flag evaluation, used by the ResolveAll rpc."""
26
+
27
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
28
+
29
+ CONTEXT_FIELD_NUMBER: builtins.int
30
+ @property
31
+ def context(self) -> google.protobuf.struct_pb2.Struct:
32
+ """Object structure describing the EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context"""
33
+
34
+ def __init__(
35
+ self,
36
+ *,
37
+ context: google.protobuf.struct_pb2.Struct | None = ...,
38
+ ) -> None: ...
39
+ def HasField(self, field_name: typing.Literal["context", b"context"]) -> builtins.bool: ...
40
+ def ClearField(self, field_name: typing.Literal["context", b"context"]) -> None: ...
41
+
42
+ global___ResolveAllRequest = ResolveAllRequest
43
+
44
+ @typing.final
45
+ class ResolveAllResponse(google.protobuf.message.Message):
46
+ """Response body for bulk flag evaluation, used by the ResolveAll rpc."""
47
+
48
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
49
+
50
+ @typing.final
51
+ class FlagsEntry(google.protobuf.message.Message):
52
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
53
+
54
+ KEY_FIELD_NUMBER: builtins.int
55
+ VALUE_FIELD_NUMBER: builtins.int
56
+ key: builtins.str
57
+ @property
58
+ def value(self) -> global___AnyFlag: ...
59
+ def __init__(
60
+ self,
61
+ *,
62
+ key: builtins.str = ...,
63
+ value: global___AnyFlag | None = ...,
64
+ ) -> None: ...
65
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
66
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
67
+
68
+ FLAGS_FIELD_NUMBER: builtins.int
69
+ @property
70
+ def flags(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___AnyFlag]:
71
+ """Object structure describing the evaluated flags for the provided context."""
72
+
73
+ def __init__(
74
+ self,
75
+ *,
76
+ flags: collections.abc.Mapping[builtins.str, global___AnyFlag] | None = ...,
77
+ ) -> None: ...
78
+ def ClearField(self, field_name: typing.Literal["flags", b"flags"]) -> None: ...
79
+
80
+ global___ResolveAllResponse = ResolveAllResponse
81
+
82
+ @typing.final
83
+ class AnyFlag(google.protobuf.message.Message):
84
+ """A variant type flag response."""
85
+
86
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
87
+
88
+ REASON_FIELD_NUMBER: builtins.int
89
+ VARIANT_FIELD_NUMBER: builtins.int
90
+ BOOL_VALUE_FIELD_NUMBER: builtins.int
91
+ STRING_VALUE_FIELD_NUMBER: builtins.int
92
+ DOUBLE_VALUE_FIELD_NUMBER: builtins.int
93
+ OBJECT_VALUE_FIELD_NUMBER: builtins.int
94
+ reason: builtins.str
95
+ """The reason for the given return value, see https://openfeature.dev/docs/specification/types#resolution-details"""
96
+ variant: builtins.str
97
+ """The variant name of the returned flag value."""
98
+ bool_value: builtins.bool
99
+ string_value: builtins.str
100
+ double_value: builtins.float
101
+ @property
102
+ def object_value(self) -> google.protobuf.struct_pb2.Struct: ...
103
+ def __init__(
104
+ self,
105
+ *,
106
+ reason: builtins.str = ...,
107
+ variant: builtins.str = ...,
108
+ bool_value: builtins.bool = ...,
109
+ string_value: builtins.str = ...,
110
+ double_value: builtins.float = ...,
111
+ object_value: google.protobuf.struct_pb2.Struct | None = ...,
112
+ ) -> None: ...
113
+ def HasField(self, field_name: typing.Literal["bool_value", b"bool_value", "double_value", b"double_value", "object_value", b"object_value", "string_value", b"string_value", "value", b"value"]) -> builtins.bool: ...
114
+ def ClearField(self, field_name: typing.Literal["bool_value", b"bool_value", "double_value", b"double_value", "object_value", b"object_value", "reason", b"reason", "string_value", b"string_value", "value", b"value", "variant", b"variant"]) -> None: ...
115
+ def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["bool_value", "string_value", "double_value", "object_value"] | None: ...
116
+
117
+ global___AnyFlag = AnyFlag
118
+
119
+ @typing.final
120
+ class ResolveBooleanRequest(google.protobuf.message.Message):
121
+ """Request body for boolean flag evaluation, used by the ResolveBoolean rpc."""
122
+
123
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
124
+
125
+ FLAG_KEY_FIELD_NUMBER: builtins.int
126
+ CONTEXT_FIELD_NUMBER: builtins.int
127
+ flag_key: builtins.str
128
+ """Flag key of the requested flag."""
129
+ @property
130
+ def context(self) -> google.protobuf.struct_pb2.Struct:
131
+ """Object structure describing the EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context"""
132
+
133
+ def __init__(
134
+ self,
135
+ *,
136
+ flag_key: builtins.str = ...,
137
+ context: google.protobuf.struct_pb2.Struct | None = ...,
138
+ ) -> None: ...
139
+ def HasField(self, field_name: typing.Literal["context", b"context"]) -> builtins.bool: ...
140
+ def ClearField(self, field_name: typing.Literal["context", b"context", "flag_key", b"flag_key"]) -> None: ...
141
+
142
+ global___ResolveBooleanRequest = ResolveBooleanRequest
143
+
144
+ @typing.final
145
+ class ResolveBooleanResponse(google.protobuf.message.Message):
146
+ """Response body for boolean flag evaluation. used by the ResolveBoolean rpc."""
147
+
148
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
149
+
150
+ VALUE_FIELD_NUMBER: builtins.int
151
+ REASON_FIELD_NUMBER: builtins.int
152
+ VARIANT_FIELD_NUMBER: builtins.int
153
+ METADATA_FIELD_NUMBER: builtins.int
154
+ value: builtins.bool
155
+ """The response value of the boolean flag evaluation, will be unset in the case of error."""
156
+ reason: builtins.str
157
+ """The reason for the given return value, see https://openfeature.dev/docs/specification/types#resolution-details"""
158
+ variant: builtins.str
159
+ """The variant name of the returned flag value."""
160
+ @property
161
+ def metadata(self) -> google.protobuf.struct_pb2.Struct:
162
+ """Metadata for this evaluation"""
163
+
164
+ def __init__(
165
+ self,
166
+ *,
167
+ value: builtins.bool = ...,
168
+ reason: builtins.str = ...,
169
+ variant: builtins.str = ...,
170
+ metadata: google.protobuf.struct_pb2.Struct | None = ...,
171
+ ) -> None: ...
172
+ def HasField(self, field_name: typing.Literal["metadata", b"metadata"]) -> builtins.bool: ...
173
+ def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "reason", b"reason", "value", b"value", "variant", b"variant"]) -> None: ...
174
+
175
+ global___ResolveBooleanResponse = ResolveBooleanResponse
176
+
177
+ @typing.final
178
+ class ResolveStringRequest(google.protobuf.message.Message):
179
+ """Request body for string flag evaluation, used by the ResolveString rpc."""
180
+
181
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
182
+
183
+ FLAG_KEY_FIELD_NUMBER: builtins.int
184
+ CONTEXT_FIELD_NUMBER: builtins.int
185
+ flag_key: builtins.str
186
+ """Flag key of the requested flag."""
187
+ @property
188
+ def context(self) -> google.protobuf.struct_pb2.Struct:
189
+ """Object structure describing the EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context"""
190
+
191
+ def __init__(
192
+ self,
193
+ *,
194
+ flag_key: builtins.str = ...,
195
+ context: google.protobuf.struct_pb2.Struct | None = ...,
196
+ ) -> None: ...
197
+ def HasField(self, field_name: typing.Literal["context", b"context"]) -> builtins.bool: ...
198
+ def ClearField(self, field_name: typing.Literal["context", b"context", "flag_key", b"flag_key"]) -> None: ...
199
+
200
+ global___ResolveStringRequest = ResolveStringRequest
201
+
202
+ @typing.final
203
+ class ResolveStringResponse(google.protobuf.message.Message):
204
+ """Response body for string flag evaluation. used by the ResolveString rpc."""
205
+
206
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
207
+
208
+ VALUE_FIELD_NUMBER: builtins.int
209
+ REASON_FIELD_NUMBER: builtins.int
210
+ VARIANT_FIELD_NUMBER: builtins.int
211
+ METADATA_FIELD_NUMBER: builtins.int
212
+ value: builtins.str
213
+ """The response value of the string flag evaluation, will be unset in the case of error."""
214
+ reason: builtins.str
215
+ """The reason for the given return value, see https://openfeature.dev/docs/specification/types#resolution-details"""
216
+ variant: builtins.str
217
+ """The variant name of the returned flag value."""
218
+ @property
219
+ def metadata(self) -> google.protobuf.struct_pb2.Struct:
220
+ """Metadata for this evaluation"""
221
+
222
+ def __init__(
223
+ self,
224
+ *,
225
+ value: builtins.str = ...,
226
+ reason: builtins.str = ...,
227
+ variant: builtins.str = ...,
228
+ metadata: google.protobuf.struct_pb2.Struct | None = ...,
229
+ ) -> None: ...
230
+ def HasField(self, field_name: typing.Literal["metadata", b"metadata"]) -> builtins.bool: ...
231
+ def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "reason", b"reason", "value", b"value", "variant", b"variant"]) -> None: ...
232
+
233
+ global___ResolveStringResponse = ResolveStringResponse
234
+
235
+ @typing.final
236
+ class ResolveFloatRequest(google.protobuf.message.Message):
237
+ """Request body for float flag evaluation, used by the ResolveFloat rpc."""
238
+
239
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
240
+
241
+ FLAG_KEY_FIELD_NUMBER: builtins.int
242
+ CONTEXT_FIELD_NUMBER: builtins.int
243
+ flag_key: builtins.str
244
+ """Flag key of the requested flag."""
245
+ @property
246
+ def context(self) -> google.protobuf.struct_pb2.Struct:
247
+ """Object structure describing the EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context"""
248
+
249
+ def __init__(
250
+ self,
251
+ *,
252
+ flag_key: builtins.str = ...,
253
+ context: google.protobuf.struct_pb2.Struct | None = ...,
254
+ ) -> None: ...
255
+ def HasField(self, field_name: typing.Literal["context", b"context"]) -> builtins.bool: ...
256
+ def ClearField(self, field_name: typing.Literal["context", b"context", "flag_key", b"flag_key"]) -> None: ...
257
+
258
+ global___ResolveFloatRequest = ResolveFloatRequest
259
+
260
+ @typing.final
261
+ class ResolveFloatResponse(google.protobuf.message.Message):
262
+ """Response body for float flag evaluation. used by the ResolveFloat rpc."""
263
+
264
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
265
+
266
+ VALUE_FIELD_NUMBER: builtins.int
267
+ REASON_FIELD_NUMBER: builtins.int
268
+ VARIANT_FIELD_NUMBER: builtins.int
269
+ METADATA_FIELD_NUMBER: builtins.int
270
+ value: builtins.float
271
+ """The response value of the float flag evaluation, will be empty in the case of error."""
272
+ reason: builtins.str
273
+ """The reason for the given return value, see https://openfeature.dev/docs/specification/types#resolution-details"""
274
+ variant: builtins.str
275
+ """The variant name of the returned flag value."""
276
+ @property
277
+ def metadata(self) -> google.protobuf.struct_pb2.Struct:
278
+ """Metadata for this evaluation"""
279
+
280
+ def __init__(
281
+ self,
282
+ *,
283
+ value: builtins.float = ...,
284
+ reason: builtins.str = ...,
285
+ variant: builtins.str = ...,
286
+ metadata: google.protobuf.struct_pb2.Struct | None = ...,
287
+ ) -> None: ...
288
+ def HasField(self, field_name: typing.Literal["metadata", b"metadata"]) -> builtins.bool: ...
289
+ def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "reason", b"reason", "value", b"value", "variant", b"variant"]) -> None: ...
290
+
291
+ global___ResolveFloatResponse = ResolveFloatResponse
292
+
293
+ @typing.final
294
+ class ResolveIntRequest(google.protobuf.message.Message):
295
+ """Request body for int flag evaluation, used by the ResolveInt rpc."""
296
+
297
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
298
+
299
+ FLAG_KEY_FIELD_NUMBER: builtins.int
300
+ CONTEXT_FIELD_NUMBER: builtins.int
301
+ flag_key: builtins.str
302
+ """Flag key of the requested flag."""
303
+ @property
304
+ def context(self) -> google.protobuf.struct_pb2.Struct:
305
+ """Object structure describing the EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context"""
306
+
307
+ def __init__(
308
+ self,
309
+ *,
310
+ flag_key: builtins.str = ...,
311
+ context: google.protobuf.struct_pb2.Struct | None = ...,
312
+ ) -> None: ...
313
+ def HasField(self, field_name: typing.Literal["context", b"context"]) -> builtins.bool: ...
314
+ def ClearField(self, field_name: typing.Literal["context", b"context", "flag_key", b"flag_key"]) -> None: ...
315
+
316
+ global___ResolveIntRequest = ResolveIntRequest
317
+
318
+ @typing.final
319
+ class ResolveIntResponse(google.protobuf.message.Message):
320
+ """Response body for int flag evaluation. used by the ResolveInt rpc."""
321
+
322
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
323
+
324
+ VALUE_FIELD_NUMBER: builtins.int
325
+ REASON_FIELD_NUMBER: builtins.int
326
+ VARIANT_FIELD_NUMBER: builtins.int
327
+ METADATA_FIELD_NUMBER: builtins.int
328
+ value: builtins.int
329
+ """The response value of the int flag evaluation, will be unset in the case of error."""
330
+ reason: builtins.str
331
+ """The reason for the given return value, see https://openfeature.dev/docs/specification/types#resolution-details"""
332
+ variant: builtins.str
333
+ """The variant name of the returned flag value."""
334
+ @property
335
+ def metadata(self) -> google.protobuf.struct_pb2.Struct:
336
+ """Metadata for this evaluation"""
337
+
338
+ def __init__(
339
+ self,
340
+ *,
341
+ value: builtins.int = ...,
342
+ reason: builtins.str = ...,
343
+ variant: builtins.str = ...,
344
+ metadata: google.protobuf.struct_pb2.Struct | None = ...,
345
+ ) -> None: ...
346
+ def HasField(self, field_name: typing.Literal["metadata", b"metadata"]) -> builtins.bool: ...
347
+ def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "reason", b"reason", "value", b"value", "variant", b"variant"]) -> None: ...
348
+
349
+ global___ResolveIntResponse = ResolveIntResponse
350
+
351
+ @typing.final
352
+ class ResolveObjectRequest(google.protobuf.message.Message):
353
+ """Request body for object flag evaluation, used by the ResolveObject rpc."""
354
+
355
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
356
+
357
+ FLAG_KEY_FIELD_NUMBER: builtins.int
358
+ CONTEXT_FIELD_NUMBER: builtins.int
359
+ flag_key: builtins.str
360
+ """Flag key of the requested flag."""
361
+ @property
362
+ def context(self) -> google.protobuf.struct_pb2.Struct:
363
+ """Object structure describing the EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context"""
364
+
365
+ def __init__(
366
+ self,
367
+ *,
368
+ flag_key: builtins.str = ...,
369
+ context: google.protobuf.struct_pb2.Struct | None = ...,
370
+ ) -> None: ...
371
+ def HasField(self, field_name: typing.Literal["context", b"context"]) -> builtins.bool: ...
372
+ def ClearField(self, field_name: typing.Literal["context", b"context", "flag_key", b"flag_key"]) -> None: ...
373
+
374
+ global___ResolveObjectRequest = ResolveObjectRequest
375
+
376
+ @typing.final
377
+ class ResolveObjectResponse(google.protobuf.message.Message):
378
+ """Response body for object flag evaluation. used by the ResolveObject rpc."""
379
+
380
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
381
+
382
+ VALUE_FIELD_NUMBER: builtins.int
383
+ REASON_FIELD_NUMBER: builtins.int
384
+ VARIANT_FIELD_NUMBER: builtins.int
385
+ METADATA_FIELD_NUMBER: builtins.int
386
+ reason: builtins.str
387
+ """The reason for the given return value, see https://openfeature.dev/docs/specification/types#resolution-details"""
388
+ variant: builtins.str
389
+ """The variant name of the returned flag value."""
390
+ @property
391
+ def value(self) -> google.protobuf.struct_pb2.Struct:
392
+ """The response value of the object flag evaluation, will be unset in the case of error.
393
+
394
+ NOTE: This structure will need to be decoded from google/protobuf/struct.proto before it is returned to the SDK
395
+ """
396
+
397
+ @property
398
+ def metadata(self) -> google.protobuf.struct_pb2.Struct:
399
+ """Metadata for this evaluation"""
400
+
401
+ def __init__(
402
+ self,
403
+ *,
404
+ value: google.protobuf.struct_pb2.Struct | None = ...,
405
+ reason: builtins.str = ...,
406
+ variant: builtins.str = ...,
407
+ metadata: google.protobuf.struct_pb2.Struct | None = ...,
408
+ ) -> None: ...
409
+ def HasField(self, field_name: typing.Literal["metadata", b"metadata", "value", b"value"]) -> builtins.bool: ...
410
+ def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "reason", b"reason", "value", b"value", "variant", b"variant"]) -> None: ...
411
+
412
+ global___ResolveObjectResponse = ResolveObjectResponse
413
+
414
+ @typing.final
415
+ class EventStreamResponse(google.protobuf.message.Message):
416
+ """Response body for the EventStream stream response"""
417
+
418
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
419
+
420
+ TYPE_FIELD_NUMBER: builtins.int
421
+ DATA_FIELD_NUMBER: builtins.int
422
+ type: builtins.str
423
+ """String key indicating the type of event that is being received, for example, provider_ready or configuration_change"""
424
+ @property
425
+ def data(self) -> google.protobuf.struct_pb2.Struct:
426
+ """Object structure for use when sending relevant metadata to provide context to the event.
427
+ Can be left unset when it is not required.
428
+ """
429
+
430
+ def __init__(
431
+ self,
432
+ *,
433
+ type: builtins.str = ...,
434
+ data: google.protobuf.struct_pb2.Struct | None = ...,
435
+ ) -> None: ...
436
+ def HasField(self, field_name: typing.Literal["data", b"data"]) -> builtins.bool: ...
437
+ def ClearField(self, field_name: typing.Literal["data", b"data", "type", b"type"]) -> None: ...
438
+
439
+ global___EventStreamResponse = EventStreamResponse
440
+
441
+ @typing.final
442
+ class EventStreamRequest(google.protobuf.message.Message):
443
+ """Empty stream request body"""
444
+
445
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
446
+
447
+ def __init__(
448
+ self,
449
+ ) -> None: ...
450
+
451
+ global___EventStreamRequest = EventStreamRequest