cribl-control-plane 0.0.44a1__py3-none-any.whl → 0.0.44a2__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.

Potentially problematic release.


This version of cribl-control-plane might be problematic. Click here for more details.

Files changed (174) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +1 -1
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +5 -3
  4. cribl_control_plane/auth_sdk.py +6 -3
  5. cribl_control_plane/basesdk.py +11 -1
  6. cribl_control_plane/commits.py +5 -3
  7. cribl_control_plane/destinations.py +6 -4
  8. cribl_control_plane/errors/__init__.py +15 -3
  9. cribl_control_plane/errors/healthstatus_error.py +8 -2
  10. cribl_control_plane/groups_configs.py +8 -3
  11. cribl_control_plane/groups_sdk.py +6 -4
  12. cribl_control_plane/models/__init__.py +17 -4
  13. cribl_control_plane/models/appmode.py +2 -1
  14. cribl_control_plane/models/cacheconnection.py +10 -2
  15. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  16. cribl_control_plane/models/cloudprovider.py +2 -1
  17. cribl_control_plane/models/configgroup.py +7 -2
  18. cribl_control_plane/models/configgroupcloud.py +6 -2
  19. cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
  20. cribl_control_plane/models/cribllakedataset.py +8 -2
  21. cribl_control_plane/models/datasetmetadata.py +8 -2
  22. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  23. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  24. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  25. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  26. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  27. cribl_control_plane/models/getsummaryop.py +7 -2
  28. cribl_control_plane/models/hbcriblinfo.py +6 -1
  29. cribl_control_plane/models/healthstatus.py +7 -4
  30. cribl_control_plane/models/inputappscope.py +34 -14
  31. cribl_control_plane/models/inputazureblob.py +17 -6
  32. cribl_control_plane/models/inputcollection.py +11 -4
  33. cribl_control_plane/models/inputconfluentcloud.py +47 -20
  34. cribl_control_plane/models/inputcribl.py +11 -4
  35. cribl_control_plane/models/inputcriblhttp.py +23 -8
  36. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  37. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  38. cribl_control_plane/models/inputcribltcp.py +23 -8
  39. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  40. cribl_control_plane/models/inputdatadogagent.py +24 -8
  41. cribl_control_plane/models/inputdatagen.py +11 -4
  42. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  43. cribl_control_plane/models/inputelastic.py +40 -14
  44. cribl_control_plane/models/inputeventhub.py +15 -6
  45. cribl_control_plane/models/inputexec.py +14 -6
  46. cribl_control_plane/models/inputfile.py +15 -6
  47. cribl_control_plane/models/inputfirehose.py +23 -8
  48. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  49. cribl_control_plane/models/inputgrafana.py +67 -24
  50. cribl_control_plane/models/inputhttp.py +23 -8
  51. cribl_control_plane/models/inputhttpraw.py +23 -8
  52. cribl_control_plane/models/inputjournalfiles.py +12 -4
  53. cribl_control_plane/models/inputkafka.py +46 -16
  54. cribl_control_plane/models/inputkinesis.py +38 -14
  55. cribl_control_plane/models/inputkubeevents.py +11 -4
  56. cribl_control_plane/models/inputkubelogs.py +16 -8
  57. cribl_control_plane/models/inputkubemetrics.py +16 -8
  58. cribl_control_plane/models/inputloki.py +29 -10
  59. cribl_control_plane/models/inputmetrics.py +23 -8
  60. cribl_control_plane/models/inputmodeldriventelemetry.py +27 -10
  61. cribl_control_plane/models/inputmsk.py +53 -18
  62. cribl_control_plane/models/inputnetflow.py +11 -4
  63. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  64. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  65. cribl_control_plane/models/inputoffice365service.py +35 -16
  66. cribl_control_plane/models/inputopentelemetry.py +38 -16
  67. cribl_control_plane/models/inputprometheus.py +50 -18
  68. cribl_control_plane/models/inputprometheusrw.py +30 -10
  69. cribl_control_plane/models/inputrawudp.py +11 -4
  70. cribl_control_plane/models/inputs3.py +21 -8
  71. cribl_control_plane/models/inputs3inventory.py +26 -10
  72. cribl_control_plane/models/inputsecuritylake.py +27 -10
  73. cribl_control_plane/models/inputsnmp.py +16 -6
  74. cribl_control_plane/models/inputsplunk.py +33 -12
  75. cribl_control_plane/models/inputsplunkhec.py +29 -10
  76. cribl_control_plane/models/inputsplunksearch.py +33 -14
  77. cribl_control_plane/models/inputsqs.py +27 -10
  78. cribl_control_plane/models/inputsyslog.py +43 -16
  79. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  80. cribl_control_plane/models/inputsystemstate.py +16 -8
  81. cribl_control_plane/models/inputtcp.py +29 -10
  82. cribl_control_plane/models/inputtcpjson.py +29 -10
  83. cribl_control_plane/models/inputwef.py +37 -14
  84. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  85. cribl_control_plane/models/inputwineventlogs.py +20 -10
  86. cribl_control_plane/models/inputwiz.py +21 -8
  87. cribl_control_plane/models/inputwizwebhook.py +23 -8
  88. cribl_control_plane/models/inputzscalerhec.py +29 -10
  89. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  90. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  91. cribl_control_plane/models/masterworkerentry.py +7 -2
  92. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  93. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  94. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  95. cribl_control_plane/models/nodeupgradestate.py +2 -1
  96. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  97. cribl_control_plane/models/outputazureblob.py +48 -18
  98. cribl_control_plane/models/outputazuredataexplorer.py +74 -29
  99. cribl_control_plane/models/outputazureeventhub.py +40 -18
  100. cribl_control_plane/models/outputazurelogs.py +36 -13
  101. cribl_control_plane/models/outputclickhouse.py +56 -21
  102. cribl_control_plane/models/outputcloudwatch.py +29 -10
  103. cribl_control_plane/models/outputconfluentcloud.py +77 -32
  104. cribl_control_plane/models/outputcriblhttp.py +46 -18
  105. cribl_control_plane/models/outputcribllake.py +46 -16
  106. cribl_control_plane/models/outputcribltcp.py +45 -18
  107. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -15
  108. cribl_control_plane/models/outputdatadog.py +48 -20
  109. cribl_control_plane/models/outputdataset.py +46 -18
  110. cribl_control_plane/models/outputdiskspool.py +7 -2
  111. cribl_control_plane/models/outputdls3.py +68 -24
  112. cribl_control_plane/models/outputdynatracehttp.py +54 -21
  113. cribl_control_plane/models/outputdynatraceotlp.py +56 -23
  114. cribl_control_plane/models/outputelastic.py +44 -19
  115. cribl_control_plane/models/outputelasticcloud.py +37 -13
  116. cribl_control_plane/models/outputexabeam.py +29 -10
  117. cribl_control_plane/models/outputfilesystem.py +39 -14
  118. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  119. cribl_control_plane/models/outputgooglecloudlogging.py +41 -14
  120. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  121. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  122. cribl_control_plane/models/outputgrafanacloud.py +99 -34
  123. cribl_control_plane/models/outputgraphite.py +31 -14
  124. cribl_control_plane/models/outputhoneycomb.py +36 -13
  125. cribl_control_plane/models/outputhumiohec.py +44 -17
  126. cribl_control_plane/models/outputinfluxdb.py +43 -17
  127. cribl_control_plane/models/outputkafka.py +74 -28
  128. cribl_control_plane/models/outputkinesis.py +40 -16
  129. cribl_control_plane/models/outputloki.py +41 -16
  130. cribl_control_plane/models/outputminio.py +65 -24
  131. cribl_control_plane/models/outputmsk.py +82 -30
  132. cribl_control_plane/models/outputnewrelic.py +43 -18
  133. cribl_control_plane/models/outputnewrelicevents.py +42 -15
  134. cribl_control_plane/models/outputopentelemetry.py +68 -27
  135. cribl_control_plane/models/outputprometheus.py +36 -13
  136. cribl_control_plane/models/outputring.py +19 -8
  137. cribl_control_plane/models/outputs3.py +68 -26
  138. cribl_control_plane/models/outputsecuritylake.py +52 -18
  139. cribl_control_plane/models/outputsentinel.py +45 -18
  140. cribl_control_plane/models/outputsentineloneaisiem.py +51 -19
  141. cribl_control_plane/models/outputservicenow.py +61 -25
  142. cribl_control_plane/models/outputsignalfx.py +38 -15
  143. cribl_control_plane/models/outputsns.py +36 -14
  144. cribl_control_plane/models/outputsplunk.py +60 -24
  145. cribl_control_plane/models/outputsplunkhec.py +36 -13
  146. cribl_control_plane/models/outputsplunklb.py +77 -30
  147. cribl_control_plane/models/outputsqs.py +41 -16
  148. cribl_control_plane/models/outputstatsd.py +30 -14
  149. cribl_control_plane/models/outputstatsdext.py +29 -12
  150. cribl_control_plane/models/outputsumologic.py +35 -12
  151. cribl_control_plane/models/outputsyslog.py +58 -24
  152. cribl_control_plane/models/outputtcpjson.py +52 -20
  153. cribl_control_plane/models/outputwavefront.py +36 -13
  154. cribl_control_plane/models/outputwebhook.py +58 -22
  155. cribl_control_plane/models/outputxsiam.py +36 -15
  156. cribl_control_plane/models/productscore.py +2 -1
  157. cribl_control_plane/models/rbacresource.py +2 -1
  158. cribl_control_plane/models/resourcepolicy.py +4 -2
  159. cribl_control_plane/models/runnablejobcollection.py +30 -13
  160. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  161. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  162. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  163. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  164. cribl_control_plane/models/workertypes.py +2 -1
  165. cribl_control_plane/nodes.py +5 -3
  166. cribl_control_plane/sdk.py +15 -2
  167. cribl_control_plane/sources.py +5 -3
  168. cribl_control_plane/utils/__init__.py +15 -3
  169. cribl_control_plane/utils/eventstreaming.py +10 -0
  170. cribl_control_plane/versions.py +11 -6
  171. {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.44a2.dist-info}/METADATA +1 -1
  172. cribl_control_plane-0.0.44a2.dist-info/RECORD +325 -0
  173. cribl_control_plane-0.0.44a1.dist-info/RECORD +0 -325
  174. {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.44a2.dist-info}/WHEEL +0 -0
@@ -1,9 +1,12 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -12,7 +15,7 @@ class OutputFilesystemType(str, Enum):
12
15
  FILESYSTEM = "filesystem"
13
16
 
14
17
 
15
- class OutputFilesystemDataFormat(str, Enum):
18
+ class OutputFilesystemDataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Format of the output data"""
17
20
 
18
21
  JSON = "json"
@@ -20,28 +23,28 @@ class OutputFilesystemDataFormat(str, Enum):
20
23
  PARQUET = "parquet"
21
24
 
22
25
 
23
- class OutputFilesystemBackpressureBehavior(str, Enum):
26
+ class OutputFilesystemBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
24
27
  r"""How to handle events when all receivers are exerting backpressure"""
25
28
 
26
29
  BLOCK = "block"
27
30
  DROP = "drop"
28
31
 
29
32
 
30
- class OutputFilesystemDiskSpaceProtection(str, Enum):
33
+ class OutputFilesystemDiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
31
34
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
32
35
 
33
36
  BLOCK = "block"
34
37
  DROP = "drop"
35
38
 
36
39
 
37
- class OutputFilesystemCompression(str, Enum):
40
+ class OutputFilesystemCompression(str, Enum, metaclass=utils.OpenEnumMeta):
38
41
  r"""Data compression format to apply to HTTP content before it is delivered"""
39
42
 
40
43
  NONE = "none"
41
44
  GZIP = "gzip"
42
45
 
43
46
 
44
- class OutputFilesystemCompressionLevel(str, Enum):
47
+ class OutputFilesystemCompressionLevel(str, Enum, metaclass=utils.OpenEnumMeta):
45
48
  r"""Compression level to apply before moving files to final destination"""
46
49
 
47
50
  BEST_SPEED = "best_speed"
@@ -49,7 +52,7 @@ class OutputFilesystemCompressionLevel(str, Enum):
49
52
  BEST_COMPRESSION = "best_compression"
50
53
 
51
54
 
52
- class OutputFilesystemParquetVersion(str, Enum):
55
+ class OutputFilesystemParquetVersion(str, Enum, metaclass=utils.OpenEnumMeta):
53
56
  r"""Determines which data types are supported and how they are represented"""
54
57
 
55
58
  PARQUET_1_0 = "PARQUET_1_0"
@@ -57,7 +60,7 @@ class OutputFilesystemParquetVersion(str, Enum):
57
60
  PARQUET_2_6 = "PARQUET_2_6"
58
61
 
59
62
 
60
- class OutputFilesystemDataPageVersion(str, Enum):
63
+ class OutputFilesystemDataPageVersion(str, Enum, metaclass=utils.OpenEnumMeta):
61
64
  r"""Serialization format of data pages. Note that some reader implementations use Data page V2's attributes to work more efficiently, while others ignore it."""
62
65
 
63
66
  DATA_PAGE_V1 = "DATA_PAGE_V1"
@@ -196,7 +199,11 @@ class OutputFilesystem(BaseModel):
196
199
  r"""JavaScript expression defining how files are partitioned and organized. Default is date-based. If blank, Stream will fall back to the event's __partition field value – if present – otherwise to each location's root directory."""
197
200
 
198
201
  format_: Annotated[
199
- Optional[OutputFilesystemDataFormat], pydantic.Field(alias="format")
202
+ Annotated[
203
+ Optional[OutputFilesystemDataFormat],
204
+ PlainValidator(validate_open_enum(False)),
205
+ ],
206
+ pydantic.Field(alias="format"),
200
207
  ] = OutputFilesystemDataFormat.JSON
201
208
  r"""Format of the output data"""
202
209
 
@@ -239,7 +246,10 @@ class OutputFilesystem(BaseModel):
239
246
  r"""Buffer size used to write to a file"""
240
247
 
241
248
  on_backpressure: Annotated[
242
- Optional[OutputFilesystemBackpressureBehavior],
249
+ Annotated[
250
+ Optional[OutputFilesystemBackpressureBehavior],
251
+ PlainValidator(validate_open_enum(False)),
252
+ ],
243
253
  pydantic.Field(alias="onBackpressure"),
244
254
  ] = OutputFilesystemBackpressureBehavior.BLOCK
245
255
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -250,18 +260,26 @@ class OutputFilesystem(BaseModel):
250
260
  r"""If a file fails to move to its final destination after the maximum number of retries, move it to a designated directory to prevent further errors"""
251
261
 
252
262
  on_disk_full_backpressure: Annotated[
253
- Optional[OutputFilesystemDiskSpaceProtection],
263
+ Annotated[
264
+ Optional[OutputFilesystemDiskSpaceProtection],
265
+ PlainValidator(validate_open_enum(False)),
266
+ ],
254
267
  pydantic.Field(alias="onDiskFullBackpressure"),
255
268
  ] = OutputFilesystemDiskSpaceProtection.BLOCK
256
269
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
257
270
 
258
271
  description: Optional[str] = None
259
272
 
260
- compress: Optional[OutputFilesystemCompression] = OutputFilesystemCompression.GZIP
273
+ compress: Annotated[
274
+ Optional[OutputFilesystemCompression], PlainValidator(validate_open_enum(False))
275
+ ] = OutputFilesystemCompression.GZIP
261
276
  r"""Data compression format to apply to HTTP content before it is delivered"""
262
277
 
263
278
  compression_level: Annotated[
264
- Optional[OutputFilesystemCompressionLevel],
279
+ Annotated[
280
+ Optional[OutputFilesystemCompressionLevel],
281
+ PlainValidator(validate_open_enum(False)),
282
+ ],
265
283
  pydantic.Field(alias="compressionLevel"),
266
284
  ] = OutputFilesystemCompressionLevel.BEST_SPEED
267
285
  r"""Compression level to apply before moving files to final destination"""
@@ -272,12 +290,19 @@ class OutputFilesystem(BaseModel):
272
290
  r"""Automatically calculate the schema based on the events of each Parquet file generated"""
273
291
 
274
292
  parquet_version: Annotated[
275
- Optional[OutputFilesystemParquetVersion], pydantic.Field(alias="parquetVersion")
293
+ Annotated[
294
+ Optional[OutputFilesystemParquetVersion],
295
+ PlainValidator(validate_open_enum(False)),
296
+ ],
297
+ pydantic.Field(alias="parquetVersion"),
276
298
  ] = OutputFilesystemParquetVersion.PARQUET_2_6
277
299
  r"""Determines which data types are supported and how they are represented"""
278
300
 
279
301
  parquet_data_page_version: Annotated[
280
- Optional[OutputFilesystemDataPageVersion],
302
+ Annotated[
303
+ Optional[OutputFilesystemDataPageVersion],
304
+ PlainValidator(validate_open_enum(False)),
305
+ ],
281
306
  pydantic.Field(alias="parquetDataPageVersion"),
282
307
  ] = OutputFilesystemDataPageVersion.DATA_PAGE_V2
283
308
  r"""Serialization format of data pages. Note that some reader implementations use Data page V2's attributes to work more efficiently, while others ignore it."""
@@ -1,9 +1,12 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -12,12 +15,14 @@ class OutputGoogleChronicleType(str, Enum):
12
15
  GOOGLE_CHRONICLE = "google_chronicle"
13
16
 
14
17
 
15
- class OutputGoogleChronicleAPIVersion(str, Enum):
18
+ class OutputGoogleChronicleAPIVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  V1 = "v1"
17
20
  V2 = "v2"
18
21
 
19
22
 
20
- class OutputGoogleChronicleAuthenticationMethod(str, Enum):
23
+ class OutputGoogleChronicleAuthenticationMethod(
24
+ str, Enum, metaclass=utils.OpenEnumMeta
25
+ ):
21
26
  MANUAL = "manual"
22
27
  SECRET = "secret"
23
28
  SERVICE_ACCOUNT = "serviceAccount"
@@ -78,7 +83,7 @@ class OutputGoogleChronicleTimeoutRetrySettings(BaseModel):
78
83
  r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
79
84
 
80
85
 
81
- class SendEventsAs(str, Enum):
86
+ class SendEventsAs(str, Enum, metaclass=utils.OpenEnumMeta):
82
87
  UNSTRUCTURED = "unstructured"
83
88
  UDM = "udm"
84
89
 
@@ -94,7 +99,9 @@ class OutputGoogleChronicleExtraHTTPHeader(BaseModel):
94
99
  name: Optional[str] = None
95
100
 
96
101
 
97
- class OutputGoogleChronicleFailedRequestLoggingMode(str, Enum):
102
+ class OutputGoogleChronicleFailedRequestLoggingMode(
103
+ str, Enum, metaclass=utils.OpenEnumMeta
104
+ ):
98
105
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
99
106
 
100
107
  PAYLOAD = "payload"
@@ -102,7 +109,9 @@ class OutputGoogleChronicleFailedRequestLoggingMode(str, Enum):
102
109
  NONE = "none"
103
110
 
104
111
 
105
- class OutputGoogleChronicleBackpressureBehavior(str, Enum):
112
+ class OutputGoogleChronicleBackpressureBehavior(
113
+ str, Enum, metaclass=utils.OpenEnumMeta
114
+ ):
106
115
  r"""How to handle events when all receivers are exerting backpressure"""
107
116
 
108
117
  BLOCK = "block"
@@ -132,21 +141,21 @@ class CustomLabel(BaseModel):
132
141
  value: str
133
142
 
134
143
 
135
- class OutputGoogleChronicleCompression(str, Enum):
144
+ class OutputGoogleChronicleCompression(str, Enum, metaclass=utils.OpenEnumMeta):
136
145
  r"""Codec to use to compress the persisted data"""
137
146
 
138
147
  NONE = "none"
139
148
  GZIP = "gzip"
140
149
 
141
150
 
142
- class OutputGoogleChronicleQueueFullBehavior(str, Enum):
151
+ class OutputGoogleChronicleQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
143
152
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
144
153
 
145
154
  BLOCK = "block"
146
155
  DROP = "drop"
147
156
 
148
157
 
149
- class OutputGoogleChronicleMode(str, Enum):
158
+ class OutputGoogleChronicleMode(str, Enum, metaclass=utils.OpenEnumMeta):
150
159
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
151
160
 
152
161
  ERROR = "error"
@@ -276,11 +285,18 @@ class OutputGoogleChronicle(BaseModel):
276
285
  r"""Tags for filtering and grouping in @{product}"""
277
286
 
278
287
  api_version: Annotated[
279
- Optional[OutputGoogleChronicleAPIVersion], pydantic.Field(alias="apiVersion")
288
+ Annotated[
289
+ Optional[OutputGoogleChronicleAPIVersion],
290
+ PlainValidator(validate_open_enum(False)),
291
+ ],
292
+ pydantic.Field(alias="apiVersion"),
280
293
  ] = OutputGoogleChronicleAPIVersion.V1
281
294
 
282
295
  authentication_method: Annotated[
283
- Optional[OutputGoogleChronicleAuthenticationMethod],
296
+ Annotated[
297
+ Optional[OutputGoogleChronicleAuthenticationMethod],
298
+ PlainValidator(validate_open_enum(False)),
299
+ ],
284
300
  pydantic.Field(alias="authenticationMethod"),
285
301
  ] = OutputGoogleChronicleAuthenticationMethod.SERVICE_ACCOUNT
286
302
 
@@ -301,7 +317,8 @@ class OutputGoogleChronicle(BaseModel):
301
317
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
302
318
 
303
319
  log_format_type: Annotated[
304
- Optional[SendEventsAs], pydantic.Field(alias="logFormatType")
320
+ Annotated[Optional[SendEventsAs], PlainValidator(validate_open_enum(False))],
321
+ pydantic.Field(alias="logFormatType"),
305
322
  ] = SendEventsAs.UNSTRUCTURED
306
323
 
307
324
  region: Optional[str] = None
@@ -346,7 +363,10 @@ class OutputGoogleChronicle(BaseModel):
346
363
  r"""Headers to add to all events"""
347
364
 
348
365
  failed_request_logging_mode: Annotated[
349
- Optional[OutputGoogleChronicleFailedRequestLoggingMode],
366
+ Annotated[
367
+ Optional[OutputGoogleChronicleFailedRequestLoggingMode],
368
+ PlainValidator(validate_open_enum(False)),
369
+ ],
350
370
  pydantic.Field(alias="failedRequestLoggingMode"),
351
371
  ] = OutputGoogleChronicleFailedRequestLoggingMode.NONE
352
372
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -362,7 +382,10 @@ class OutputGoogleChronicle(BaseModel):
362
382
  r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned."""
363
383
 
364
384
  on_backpressure: Annotated[
365
- Optional[OutputGoogleChronicleBackpressureBehavior],
385
+ Annotated[
386
+ Optional[OutputGoogleChronicleBackpressureBehavior],
387
+ PlainValidator(validate_open_enum(False)),
388
+ ],
366
389
  pydantic.Field(alias="onBackpressure"),
367
390
  ] = OutputGoogleChronicleBackpressureBehavior.BLOCK
368
391
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -430,18 +453,29 @@ class OutputGoogleChronicle(BaseModel):
430
453
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
431
454
 
432
455
  pq_compress: Annotated[
433
- Optional[OutputGoogleChronicleCompression], pydantic.Field(alias="pqCompress")
456
+ Annotated[
457
+ Optional[OutputGoogleChronicleCompression],
458
+ PlainValidator(validate_open_enum(False)),
459
+ ],
460
+ pydantic.Field(alias="pqCompress"),
434
461
  ] = OutputGoogleChronicleCompression.NONE
435
462
  r"""Codec to use to compress the persisted data"""
436
463
 
437
464
  pq_on_backpressure: Annotated[
438
- Optional[OutputGoogleChronicleQueueFullBehavior],
465
+ Annotated[
466
+ Optional[OutputGoogleChronicleQueueFullBehavior],
467
+ PlainValidator(validate_open_enum(False)),
468
+ ],
439
469
  pydantic.Field(alias="pqOnBackpressure"),
440
470
  ] = OutputGoogleChronicleQueueFullBehavior.BLOCK
441
471
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
442
472
 
443
473
  pq_mode: Annotated[
444
- Optional[OutputGoogleChronicleMode], pydantic.Field(alias="pqMode")
474
+ Annotated[
475
+ Optional[OutputGoogleChronicleMode],
476
+ PlainValidator(validate_open_enum(False)),
477
+ ],
478
+ pydantic.Field(alias="pqMode"),
445
479
  ] = OutputGoogleChronicleMode.ERROR
446
480
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
447
481
 
@@ -1,9 +1,12 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -12,14 +15,14 @@ class OutputGoogleCloudLoggingType(str, Enum):
12
15
  GOOGLE_CLOUD_LOGGING = "google_cloud_logging"
13
16
 
14
17
 
15
- class LogLocationType(str, Enum):
18
+ class LogLocationType(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  PROJECT = "project"
17
20
  ORGANIZATION = "organization"
18
21
  BILLING_ACCOUNT = "billingAccount"
19
22
  FOLDER = "folder"
20
23
 
21
24
 
22
- class PayloadFormat(str, Enum):
25
+ class PayloadFormat(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""Format to use when sending payload. Defaults to Text."""
24
27
 
25
28
  TEXT = "text"
@@ -56,7 +59,9 @@ class ResourceTypeLabel(BaseModel):
56
59
  r"""JavaScript expression to compute the label's value."""
57
60
 
58
61
 
59
- class OutputGoogleCloudLoggingGoogleAuthenticationMethod(str, Enum):
62
+ class OutputGoogleCloudLoggingGoogleAuthenticationMethod(
63
+ str, Enum, metaclass=utils.OpenEnumMeta
64
+ ):
60
65
  r"""Choose Auto to use Google Application Default Credentials (ADC), Manual to enter Google service account credentials directly, or Secret to select or create a stored secret that references Google service account credentials."""
61
66
 
62
67
  AUTO = "auto"
@@ -64,7 +69,9 @@ class OutputGoogleCloudLoggingGoogleAuthenticationMethod(str, Enum):
64
69
  SECRET = "secret"
65
70
 
66
71
 
67
- class OutputGoogleCloudLoggingBackpressureBehavior(str, Enum):
72
+ class OutputGoogleCloudLoggingBackpressureBehavior(
73
+ str, Enum, metaclass=utils.OpenEnumMeta
74
+ ):
68
75
  r"""How to handle events when all receivers are exerting backpressure"""
69
76
 
70
77
  BLOCK = "block"
@@ -72,21 +79,23 @@ class OutputGoogleCloudLoggingBackpressureBehavior(str, Enum):
72
79
  QUEUE = "queue"
73
80
 
74
81
 
75
- class OutputGoogleCloudLoggingCompression(str, Enum):
82
+ class OutputGoogleCloudLoggingCompression(str, Enum, metaclass=utils.OpenEnumMeta):
76
83
  r"""Codec to use to compress the persisted data"""
77
84
 
78
85
  NONE = "none"
79
86
  GZIP = "gzip"
80
87
 
81
88
 
82
- class OutputGoogleCloudLoggingQueueFullBehavior(str, Enum):
89
+ class OutputGoogleCloudLoggingQueueFullBehavior(
90
+ str, Enum, metaclass=utils.OpenEnumMeta
91
+ ):
83
92
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
84
93
 
85
94
  BLOCK = "block"
86
95
  DROP = "drop"
87
96
 
88
97
 
89
- class OutputGoogleCloudLoggingMode(str, Enum):
98
+ class OutputGoogleCloudLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
90
99
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
91
100
 
92
101
  ERROR = "error"
@@ -233,7 +242,8 @@ class OutputGoogleCloudLogging(BaseModel):
233
242
  type: OutputGoogleCloudLoggingType
234
243
 
235
244
  log_location_type: Annotated[
236
- LogLocationType, pydantic.Field(alias="logLocationType")
245
+ Annotated[LogLocationType, PlainValidator(validate_open_enum(False))],
246
+ pydantic.Field(alias="logLocationType"),
237
247
  ]
238
248
 
239
249
  log_name_expression: Annotated[str, pydantic.Field(alias="logNameExpression")]
@@ -262,7 +272,8 @@ class OutputGoogleCloudLogging(BaseModel):
262
272
  r"""Tags for filtering and grouping in @{product}"""
263
273
 
264
274
  payload_format: Annotated[
265
- Optional[PayloadFormat], pydantic.Field(alias="payloadFormat")
275
+ Annotated[Optional[PayloadFormat], PlainValidator(validate_open_enum(False))],
276
+ pydantic.Field(alias="payloadFormat"),
266
277
  ] = PayloadFormat.TEXT
267
278
  r"""Format to use when sending payload. Defaults to Text."""
268
279
 
@@ -292,7 +303,10 @@ class OutputGoogleCloudLogging(BaseModel):
292
303
  r"""JavaScript expression to compute the value of the insert ID field."""
293
304
 
294
305
  google_auth_method: Annotated[
295
- Optional[OutputGoogleCloudLoggingGoogleAuthenticationMethod],
306
+ Annotated[
307
+ Optional[OutputGoogleCloudLoggingGoogleAuthenticationMethod],
308
+ PlainValidator(validate_open_enum(False)),
309
+ ],
296
310
  pydantic.Field(alias="googleAuthMethod"),
297
311
  ] = OutputGoogleCloudLoggingGoogleAuthenticationMethod.MANUAL
298
312
  r"""Choose Auto to use Google Application Default Credentials (ADC), Manual to enter Google service account credentials directly, or Secret to select or create a stored secret that references Google service account credentials."""
@@ -475,7 +489,10 @@ class OutputGoogleCloudLogging(BaseModel):
475
489
  r"""A JavaScript expression that evaluates to the the sampling decision of the span associated with the log entry. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) for details."""
476
490
 
477
491
  on_backpressure: Annotated[
478
- Optional[OutputGoogleCloudLoggingBackpressureBehavior],
492
+ Annotated[
493
+ Optional[OutputGoogleCloudLoggingBackpressureBehavior],
494
+ PlainValidator(validate_open_enum(False)),
495
+ ],
479
496
  pydantic.Field(alias="onBackpressure"),
480
497
  ] = OutputGoogleCloudLoggingBackpressureBehavior.BLOCK
481
498
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -506,19 +523,29 @@ class OutputGoogleCloudLogging(BaseModel):
506
523
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
507
524
 
508
525
  pq_compress: Annotated[
509
- Optional[OutputGoogleCloudLoggingCompression],
526
+ Annotated[
527
+ Optional[OutputGoogleCloudLoggingCompression],
528
+ PlainValidator(validate_open_enum(False)),
529
+ ],
510
530
  pydantic.Field(alias="pqCompress"),
511
531
  ] = OutputGoogleCloudLoggingCompression.NONE
512
532
  r"""Codec to use to compress the persisted data"""
513
533
 
514
534
  pq_on_backpressure: Annotated[
515
- Optional[OutputGoogleCloudLoggingQueueFullBehavior],
535
+ Annotated[
536
+ Optional[OutputGoogleCloudLoggingQueueFullBehavior],
537
+ PlainValidator(validate_open_enum(False)),
538
+ ],
516
539
  pydantic.Field(alias="pqOnBackpressure"),
517
540
  ] = OutputGoogleCloudLoggingQueueFullBehavior.BLOCK
518
541
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
519
542
 
520
543
  pq_mode: Annotated[
521
- Optional[OutputGoogleCloudLoggingMode], pydantic.Field(alias="pqMode")
544
+ Annotated[
545
+ Optional[OutputGoogleCloudLoggingMode],
546
+ PlainValidator(validate_open_enum(False)),
547
+ ],
548
+ pydantic.Field(alias="pqMode"),
522
549
  ] = OutputGoogleCloudLoggingMode.ERROR
523
550
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
524
551