cribl-control-plane 0.0.50rc2__py3-none-any.whl → 0.0.52__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 (182) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +91 -41
  2. cribl_control_plane/_version.py +6 -4
  3. cribl_control_plane/errors/apierror.py +1 -1
  4. cribl_control_plane/errors/criblcontrolplaneerror.py +1 -1
  5. cribl_control_plane/errors/error.py +1 -1
  6. cribl_control_plane/errors/healthstatus_error.py +3 -9
  7. cribl_control_plane/errors/no_response_error.py +1 -1
  8. cribl_control_plane/errors/responsevalidationerror.py +1 -1
  9. cribl_control_plane/groups_sdk.py +4 -4
  10. cribl_control_plane/health.py +2 -6
  11. cribl_control_plane/models/__init__.py +31 -56
  12. cribl_control_plane/models/appmode.py +13 -0
  13. cribl_control_plane/models/cacheconnection.py +2 -10
  14. cribl_control_plane/models/cacheconnectionbackfillstatus.py +1 -2
  15. cribl_control_plane/models/cloudprovider.py +1 -2
  16. cribl_control_plane/models/configgroup.py +4 -24
  17. cribl_control_plane/models/configgroupcloud.py +2 -6
  18. cribl_control_plane/models/createconfiggroupbyproductop.py +2 -8
  19. cribl_control_plane/models/createinputhectokenbyidop.py +5 -6
  20. cribl_control_plane/models/createversionpushop.py +5 -5
  21. cribl_control_plane/models/cribllakedataset.py +2 -8
  22. cribl_control_plane/models/datasetmetadata.py +2 -8
  23. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +2 -7
  24. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +2 -4
  25. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +2 -4
  26. cribl_control_plane/models/getconfiggroupbyproductandidop.py +1 -3
  27. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +2 -7
  28. cribl_control_plane/models/getsummaryop.py +2 -7
  29. cribl_control_plane/models/getversionshowop.py +5 -6
  30. cribl_control_plane/models/gitinfo.py +3 -14
  31. cribl_control_plane/models/hbcriblinfo.py +3 -24
  32. cribl_control_plane/models/healthstatus.py +4 -7
  33. cribl_control_plane/models/heartbeatmetadata.py +0 -3
  34. cribl_control_plane/models/input.py +63 -65
  35. cribl_control_plane/models/inputappscope.py +14 -34
  36. cribl_control_plane/models/inputazureblob.py +6 -17
  37. cribl_control_plane/models/inputcollection.py +4 -11
  38. cribl_control_plane/models/inputconfluentcloud.py +32 -41
  39. cribl_control_plane/models/inputcribl.py +4 -11
  40. cribl_control_plane/models/inputcriblhttp.py +8 -23
  41. cribl_control_plane/models/inputcribllakehttp.py +10 -22
  42. cribl_control_plane/models/inputcriblmetrics.py +4 -12
  43. cribl_control_plane/models/inputcribltcp.py +8 -23
  44. cribl_control_plane/models/inputcrowdstrike.py +10 -26
  45. cribl_control_plane/models/inputdatadogagent.py +8 -24
  46. cribl_control_plane/models/inputdatagen.py +4 -11
  47. cribl_control_plane/models/inputedgeprometheus.py +24 -58
  48. cribl_control_plane/models/inputelastic.py +14 -40
  49. cribl_control_plane/models/inputeventhub.py +6 -15
  50. cribl_control_plane/models/inputexec.py +6 -14
  51. cribl_control_plane/models/inputfile.py +6 -15
  52. cribl_control_plane/models/inputfirehose.py +8 -23
  53. cribl_control_plane/models/inputgooglepubsub.py +6 -19
  54. cribl_control_plane/models/inputgrafana.py +24 -67
  55. cribl_control_plane/models/inputhttp.py +8 -23
  56. cribl_control_plane/models/inputhttpraw.py +8 -23
  57. cribl_control_plane/models/inputjournalfiles.py +4 -12
  58. cribl_control_plane/models/inputkafka.py +28 -41
  59. cribl_control_plane/models/inputkinesis.py +14 -38
  60. cribl_control_plane/models/inputkubeevents.py +4 -11
  61. cribl_control_plane/models/inputkubelogs.py +8 -16
  62. cribl_control_plane/models/inputkubemetrics.py +8 -16
  63. cribl_control_plane/models/inputloki.py +10 -29
  64. cribl_control_plane/models/inputmetrics.py +8 -23
  65. cribl_control_plane/models/inputmodeldriventelemetry.py +10 -32
  66. cribl_control_plane/models/inputmsk.py +30 -48
  67. cribl_control_plane/models/inputnetflow.py +4 -11
  68. cribl_control_plane/models/inputoffice365mgmt.py +14 -33
  69. cribl_control_plane/models/inputoffice365msgtrace.py +16 -35
  70. cribl_control_plane/models/inputoffice365service.py +16 -35
  71. cribl_control_plane/models/inputopentelemetry.py +16 -38
  72. cribl_control_plane/models/inputprometheus.py +18 -50
  73. cribl_control_plane/models/inputprometheusrw.py +10 -30
  74. cribl_control_plane/models/inputrawudp.py +4 -11
  75. cribl_control_plane/models/inputs3.py +8 -21
  76. cribl_control_plane/models/inputs3inventory.py +10 -26
  77. cribl_control_plane/models/inputsecuritylake.py +10 -27
  78. cribl_control_plane/models/inputsnmp.py +6 -16
  79. cribl_control_plane/models/inputsplunk.py +12 -33
  80. cribl_control_plane/models/inputsplunkhec.py +10 -29
  81. cribl_control_plane/models/inputsplunksearch.py +14 -33
  82. cribl_control_plane/models/inputsqs.py +10 -27
  83. cribl_control_plane/models/inputsyslog.py +16 -43
  84. cribl_control_plane/models/inputsystemmetrics.py +24 -48
  85. cribl_control_plane/models/inputsystemstate.py +8 -16
  86. cribl_control_plane/models/inputtcp.py +10 -29
  87. cribl_control_plane/models/inputtcpjson.py +10 -29
  88. cribl_control_plane/models/inputwef.py +14 -37
  89. cribl_control_plane/models/inputwindowsmetrics.py +24 -44
  90. cribl_control_plane/models/inputwineventlogs.py +10 -20
  91. cribl_control_plane/models/inputwiz.py +8 -21
  92. cribl_control_plane/models/inputwizwebhook.py +8 -23
  93. cribl_control_plane/models/inputzscalerhec.py +10 -29
  94. cribl_control_plane/models/lakehouseconnectiontype.py +1 -2
  95. cribl_control_plane/models/listconfiggroupbyproductop.py +1 -3
  96. cribl_control_plane/models/masterworkerentry.py +2 -7
  97. cribl_control_plane/models/nodeactiveupgradestatus.py +1 -2
  98. cribl_control_plane/models/nodefailedupgradestatus.py +1 -2
  99. cribl_control_plane/models/nodeprovidedinfo.py +0 -3
  100. cribl_control_plane/models/nodeskippedupgradestatus.py +1 -2
  101. cribl_control_plane/models/nodeupgradestate.py +1 -2
  102. cribl_control_plane/models/nodeupgradestatus.py +5 -13
  103. cribl_control_plane/models/output.py +79 -84
  104. cribl_control_plane/models/outputazureblob.py +18 -48
  105. cribl_control_plane/models/outputazuredataexplorer.py +28 -73
  106. cribl_control_plane/models/outputazureeventhub.py +18 -40
  107. cribl_control_plane/models/outputazurelogs.py +12 -35
  108. cribl_control_plane/models/outputclickhouse.py +20 -55
  109. cribl_control_plane/models/outputcloudwatch.py +10 -29
  110. cribl_control_plane/models/outputconfluentcloud.py +44 -71
  111. cribl_control_plane/models/outputcriblhttp.py +16 -44
  112. cribl_control_plane/models/outputcribllake.py +16 -46
  113. cribl_control_plane/models/outputcribltcp.py +18 -45
  114. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +14 -49
  115. cribl_control_plane/models/outputdatadog.py +20 -48
  116. cribl_control_plane/models/outputdataset.py +18 -46
  117. cribl_control_plane/models/outputdiskspool.py +2 -7
  118. cribl_control_plane/models/outputdls3.py +24 -68
  119. cribl_control_plane/models/outputdynatracehttp.py +20 -53
  120. cribl_control_plane/models/outputdynatraceotlp.py +22 -55
  121. cribl_control_plane/models/outputelastic.py +18 -43
  122. cribl_control_plane/models/outputelasticcloud.py +12 -36
  123. cribl_control_plane/models/outputexabeam.py +10 -29
  124. cribl_control_plane/models/outputfilesystem.py +14 -39
  125. cribl_control_plane/models/outputgooglechronicle.py +16 -50
  126. cribl_control_plane/models/outputgooglecloudlogging.py +18 -50
  127. cribl_control_plane/models/outputgooglecloudstorage.py +24 -66
  128. cribl_control_plane/models/outputgooglepubsub.py +10 -31
  129. cribl_control_plane/models/outputgrafanacloud.py +32 -97
  130. cribl_control_plane/models/outputgraphite.py +14 -31
  131. cribl_control_plane/models/outputhoneycomb.py +12 -35
  132. cribl_control_plane/models/outputhumiohec.py +16 -43
  133. cribl_control_plane/models/outputinfluxdb.py +16 -42
  134. cribl_control_plane/models/outputkafka.py +40 -69
  135. cribl_control_plane/models/outputkinesis.py +16 -40
  136. cribl_control_plane/models/outputloki.py +16 -41
  137. cribl_control_plane/models/outputminio.py +24 -65
  138. cribl_control_plane/models/outputmsk.py +42 -77
  139. cribl_control_plane/models/outputnewrelic.py +18 -43
  140. cribl_control_plane/models/outputnewrelicevents.py +14 -41
  141. cribl_control_plane/models/outputopentelemetry.py +26 -67
  142. cribl_control_plane/models/outputprometheus.py +12 -35
  143. cribl_control_plane/models/outputring.py +8 -19
  144. cribl_control_plane/models/outputs3.py +26 -68
  145. cribl_control_plane/models/outputsecuritylake.py +18 -52
  146. cribl_control_plane/models/outputsentinel.py +18 -45
  147. cribl_control_plane/models/outputsentineloneaisiem.py +18 -50
  148. cribl_control_plane/models/outputservicenow.py +24 -60
  149. cribl_control_plane/models/outputsignalfx.py +14 -37
  150. cribl_control_plane/models/outputsns.py +14 -36
  151. cribl_control_plane/models/outputsplunk.py +24 -60
  152. cribl_control_plane/models/outputsplunkhec.py +12 -35
  153. cribl_control_plane/models/outputsplunklb.py +30 -77
  154. cribl_control_plane/models/outputsqs.py +16 -41
  155. cribl_control_plane/models/outputstatsd.py +14 -30
  156. cribl_control_plane/models/outputstatsdext.py +12 -29
  157. cribl_control_plane/models/outputsumologic.py +12 -35
  158. cribl_control_plane/models/outputsyslog.py +24 -58
  159. cribl_control_plane/models/outputtcpjson.py +20 -52
  160. cribl_control_plane/models/outputwavefront.py +12 -35
  161. cribl_control_plane/models/outputwebhook.py +22 -58
  162. cribl_control_plane/models/outputxsiam.py +14 -35
  163. cribl_control_plane/models/productscore.py +1 -2
  164. cribl_control_plane/models/rbacresource.py +1 -2
  165. cribl_control_plane/models/resourcepolicy.py +2 -4
  166. cribl_control_plane/models/routecloneconf.py +13 -0
  167. cribl_control_plane/models/routeconf.py +4 -3
  168. cribl_control_plane/models/runnablejobcollection.py +13 -30
  169. cribl_control_plane/models/runnablejobexecutor.py +4 -13
  170. cribl_control_plane/models/runnablejobscheduledsearch.py +2 -7
  171. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +2 -8
  172. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +2 -8
  173. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +5 -6
  174. cribl_control_plane/models/workertypes.py +1 -2
  175. {cribl_control_plane-0.0.50rc2.dist-info → cribl_control_plane-0.0.52.dist-info}/METADATA +14 -12
  176. cribl_control_plane-0.0.52.dist-info/RECORD +325 -0
  177. cribl_control_plane/models/error.py +0 -16
  178. cribl_control_plane/models/gethealthinfoop.py +0 -17
  179. cribl_control_plane/models/gitshowresult.py +0 -19
  180. cribl_control_plane/models/outputdatabricks.py +0 -282
  181. cribl_control_plane-0.0.50rc2.dist-info/RECORD +0 -327
  182. {cribl_control_plane-0.0.50rc2.dist-info → cribl_control_plane-0.0.52.dist-info}/WHEEL +0 -0
@@ -1,12 +1,9 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
@@ -15,7 +12,7 @@ class OutputWebhookType(str, Enum):
15
12
  WEBHOOK = "webhook"
16
13
 
17
14
 
18
- class OutputWebhookMethod(str, Enum, metaclass=utils.OpenEnumMeta):
15
+ class OutputWebhookMethod(str, Enum):
19
16
  r"""The method to use when sending events"""
20
17
 
21
18
  POST = "POST"
@@ -23,7 +20,7 @@ class OutputWebhookMethod(str, Enum, metaclass=utils.OpenEnumMeta):
23
20
  PATCH = "PATCH"
24
21
 
25
22
 
26
- class OutputWebhookFormat(str, Enum, metaclass=utils.OpenEnumMeta):
23
+ class OutputWebhookFormat(str, Enum):
27
24
  r"""How to format events before sending out"""
28
25
 
29
26
  NDJSON = "ndjson"
@@ -43,7 +40,7 @@ class OutputWebhookExtraHTTPHeader(BaseModel):
43
40
  name: Optional[str] = None
44
41
 
45
42
 
46
- class OutputWebhookFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
43
+ class OutputWebhookFailedRequestLoggingMode(str, Enum):
47
44
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
48
45
 
49
46
  PAYLOAD = "payload"
@@ -105,7 +102,7 @@ class OutputWebhookTimeoutRetrySettings(BaseModel):
105
102
  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)."""
106
103
 
107
104
 
108
- class OutputWebhookBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
105
+ class OutputWebhookBackpressureBehavior(str, Enum):
109
106
  r"""How to handle events when all receivers are exerting backpressure"""
110
107
 
111
108
  BLOCK = "block"
@@ -113,7 +110,7 @@ class OutputWebhookBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta)
113
110
  QUEUE = "queue"
114
111
 
115
112
 
116
- class OutputWebhookAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
113
+ class OutputWebhookAuthenticationType(str, Enum):
117
114
  r"""Authentication method to use for the HTTP request"""
118
115
 
119
116
  NONE = "none"
@@ -124,14 +121,14 @@ class OutputWebhookAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
124
121
  OAUTH = "oauth"
125
122
 
126
123
 
127
- class OutputWebhookMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
124
+ class OutputWebhookMinimumTLSVersion(str, Enum):
128
125
  TL_SV1 = "TLSv1"
129
126
  TL_SV1_1 = "TLSv1.1"
130
127
  TL_SV1_2 = "TLSv1.2"
131
128
  TL_SV1_3 = "TLSv1.3"
132
129
 
133
130
 
134
- class OutputWebhookMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
131
+ class OutputWebhookMaximumTLSVersion(str, Enum):
135
132
  TL_SV1 = "TLSv1"
136
133
  TL_SV1_1 = "TLSv1.1"
137
134
  TL_SV1_2 = "TLSv1.2"
@@ -180,37 +177,29 @@ class OutputWebhookTLSSettingsClientSide(BaseModel):
180
177
  r"""Passphrase to use to decrypt private key"""
181
178
 
182
179
  min_version: Annotated[
183
- Annotated[
184
- Optional[OutputWebhookMinimumTLSVersion],
185
- PlainValidator(validate_open_enum(False)),
186
- ],
187
- pydantic.Field(alias="minVersion"),
180
+ Optional[OutputWebhookMinimumTLSVersion], pydantic.Field(alias="minVersion")
188
181
  ] = None
189
182
 
190
183
  max_version: Annotated[
191
- Annotated[
192
- Optional[OutputWebhookMaximumTLSVersion],
193
- PlainValidator(validate_open_enum(False)),
194
- ],
195
- pydantic.Field(alias="maxVersion"),
184
+ Optional[OutputWebhookMaximumTLSVersion], pydantic.Field(alias="maxVersion")
196
185
  ] = None
197
186
 
198
187
 
199
- class OutputWebhookCompression(str, Enum, metaclass=utils.OpenEnumMeta):
188
+ class OutputWebhookCompression(str, Enum):
200
189
  r"""Codec to use to compress the persisted data"""
201
190
 
202
191
  NONE = "none"
203
192
  GZIP = "gzip"
204
193
 
205
194
 
206
- class OutputWebhookQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
195
+ class OutputWebhookQueueFullBehavior(str, Enum):
207
196
  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."""
208
197
 
209
198
  BLOCK = "block"
210
199
  DROP = "drop"
211
200
 
212
201
 
213
- class OutputWebhookMode(str, Enum, metaclass=utils.OpenEnumMeta):
202
+ class OutputWebhookMode(str, Enum):
214
203
  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."""
215
204
 
216
205
  ERROR = "error"
@@ -415,16 +404,11 @@ class OutputWebhook(BaseModel):
415
404
  streamtags: Optional[List[str]] = None
416
405
  r"""Tags for filtering and grouping in @{product}"""
417
406
 
418
- method: Annotated[
419
- Optional[OutputWebhookMethod], PlainValidator(validate_open_enum(False))
420
- ] = OutputWebhookMethod.POST
407
+ method: Optional[OutputWebhookMethod] = OutputWebhookMethod.POST
421
408
  r"""The method to use when sending events"""
422
409
 
423
410
  format_: Annotated[
424
- Annotated[
425
- Optional[OutputWebhookFormat], PlainValidator(validate_open_enum(False))
426
- ],
427
- pydantic.Field(alias="format"),
411
+ Optional[OutputWebhookFormat], pydantic.Field(alias="format")
428
412
  ] = OutputWebhookFormat.NDJSON
429
413
  r"""How to format events before sending out"""
430
414
 
@@ -475,10 +459,7 @@ class OutputWebhook(BaseModel):
475
459
  r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
476
460
 
477
461
  failed_request_logging_mode: Annotated[
478
- Annotated[
479
- Optional[OutputWebhookFailedRequestLoggingMode],
480
- PlainValidator(validate_open_enum(False)),
481
- ],
462
+ Optional[OutputWebhookFailedRequestLoggingMode],
482
463
  pydantic.Field(alias="failedRequestLoggingMode"),
483
464
  ] = OutputWebhookFailedRequestLoggingMode.NONE
484
465
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -505,20 +486,13 @@ class OutputWebhook(BaseModel):
505
486
  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."""
506
487
 
507
488
  on_backpressure: Annotated[
508
- Annotated[
509
- Optional[OutputWebhookBackpressureBehavior],
510
- PlainValidator(validate_open_enum(False)),
511
- ],
489
+ Optional[OutputWebhookBackpressureBehavior],
512
490
  pydantic.Field(alias="onBackpressure"),
513
491
  ] = OutputWebhookBackpressureBehavior.BLOCK
514
492
  r"""How to handle events when all receivers are exerting backpressure"""
515
493
 
516
494
  auth_type: Annotated[
517
- Annotated[
518
- Optional[OutputWebhookAuthenticationType],
519
- PlainValidator(validate_open_enum(False)),
520
- ],
521
- pydantic.Field(alias="authType"),
495
+ Optional[OutputWebhookAuthenticationType], pydantic.Field(alias="authType")
522
496
  ] = OutputWebhookAuthenticationType.NONE
523
497
  r"""Authentication method to use for the HTTP request"""
524
498
 
@@ -590,29 +564,19 @@ class OutputWebhook(BaseModel):
590
564
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
591
565
 
592
566
  pq_compress: Annotated[
593
- Annotated[
594
- Optional[OutputWebhookCompression],
595
- PlainValidator(validate_open_enum(False)),
596
- ],
597
- pydantic.Field(alias="pqCompress"),
567
+ Optional[OutputWebhookCompression], pydantic.Field(alias="pqCompress")
598
568
  ] = OutputWebhookCompression.NONE
599
569
  r"""Codec to use to compress the persisted data"""
600
570
 
601
571
  pq_on_backpressure: Annotated[
602
- Annotated[
603
- Optional[OutputWebhookQueueFullBehavior],
604
- PlainValidator(validate_open_enum(False)),
605
- ],
572
+ Optional[OutputWebhookQueueFullBehavior],
606
573
  pydantic.Field(alias="pqOnBackpressure"),
607
574
  ] = OutputWebhookQueueFullBehavior.BLOCK
608
575
  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."""
609
576
 
610
- pq_mode: Annotated[
611
- Annotated[
612
- Optional[OutputWebhookMode], PlainValidator(validate_open_enum(False))
613
- ],
614
- pydantic.Field(alias="pqMode"),
615
- ] = OutputWebhookMode.ERROR
577
+ pq_mode: Annotated[Optional[OutputWebhookMode], pydantic.Field(alias="pqMode")] = (
578
+ OutputWebhookMode.ERROR
579
+ )
616
580
  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."""
617
581
 
618
582
  pq_controls: Annotated[
@@ -1,12 +1,9 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import Any, List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
@@ -26,7 +23,7 @@ class OutputXsiamExtraHTTPHeader(BaseModel):
26
23
  name: Optional[str] = None
27
24
 
28
25
 
29
- class OutputXsiamFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
26
+ class OutputXsiamFailedRequestLoggingMode(str, Enum):
30
27
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
31
28
 
32
29
  PAYLOAD = "payload"
@@ -34,7 +31,7 @@ class OutputXsiamFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMet
34
31
  NONE = "none"
35
32
 
36
33
 
37
- class OutputXsiamAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
34
+ class OutputXsiamAuthenticationMethod(str, Enum):
38
35
  r"""Enter a token directly, or provide a secret referencing a token"""
39
36
 
40
37
  TOKEN = "token"
@@ -95,7 +92,7 @@ class OutputXsiamTimeoutRetrySettings(BaseModel):
95
92
  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)."""
96
93
 
97
94
 
98
- class OutputXsiamBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
95
+ class OutputXsiamBackpressureBehavior(str, Enum):
99
96
  r"""How to handle events when all receivers are exerting backpressure"""
100
97
 
101
98
  BLOCK = "block"
@@ -116,21 +113,21 @@ class OutputXsiamURL(BaseModel):
116
113
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
117
114
 
118
115
 
119
- class OutputXsiamCompression(str, Enum, metaclass=utils.OpenEnumMeta):
116
+ class OutputXsiamCompression(str, Enum):
120
117
  r"""Codec to use to compress the persisted data"""
121
118
 
122
119
  NONE = "none"
123
120
  GZIP = "gzip"
124
121
 
125
122
 
126
- class OutputXsiamQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
123
+ class OutputXsiamQueueFullBehavior(str, Enum):
127
124
  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."""
128
125
 
129
126
  BLOCK = "block"
130
127
  DROP = "drop"
131
128
 
132
129
 
133
- class OutputXsiamMode(str, Enum, metaclass=utils.OpenEnumMeta):
130
+ class OutputXsiamMode(str, Enum):
134
131
  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."""
135
132
 
136
133
  ERROR = "error"
@@ -286,10 +283,7 @@ class OutputXsiam(BaseModel):
286
283
  r"""Headers to add to all events"""
287
284
 
288
285
  failed_request_logging_mode: Annotated[
289
- Annotated[
290
- Optional[OutputXsiamFailedRequestLoggingMode],
291
- PlainValidator(validate_open_enum(False)),
292
- ],
286
+ Optional[OutputXsiamFailedRequestLoggingMode],
293
287
  pydantic.Field(alias="failedRequestLoggingMode"),
294
288
  ] = OutputXsiamFailedRequestLoggingMode.NONE
295
289
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -300,11 +294,7 @@ class OutputXsiam(BaseModel):
300
294
  r"""List of headers that are safe to log in plain text"""
301
295
 
302
296
  auth_type: Annotated[
303
- Annotated[
304
- Optional[OutputXsiamAuthenticationMethod],
305
- PlainValidator(validate_open_enum(False)),
306
- ],
307
- pydantic.Field(alias="authType"),
297
+ Optional[OutputXsiamAuthenticationMethod], pydantic.Field(alias="authType")
308
298
  ] = OutputXsiamAuthenticationMethod.TOKEN
309
299
  r"""Enter a token directly, or provide a secret referencing a token"""
310
300
 
@@ -330,10 +320,7 @@ class OutputXsiam(BaseModel):
330
320
  r"""Maximum number of requests to limit to per second"""
331
321
 
332
322
  on_backpressure: Annotated[
333
- Annotated[
334
- Optional[OutputXsiamBackpressureBehavior],
335
- PlainValidator(validate_open_enum(False)),
336
- ],
323
+ Optional[OutputXsiamBackpressureBehavior],
337
324
  pydantic.Field(alias="onBackpressure"),
338
325
  ] = OutputXsiamBackpressureBehavior.BLOCK
339
326
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -388,26 +375,18 @@ class OutputXsiam(BaseModel):
388
375
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
389
376
 
390
377
  pq_compress: Annotated[
391
- Annotated[
392
- Optional[OutputXsiamCompression], PlainValidator(validate_open_enum(False))
393
- ],
394
- pydantic.Field(alias="pqCompress"),
378
+ Optional[OutputXsiamCompression], pydantic.Field(alias="pqCompress")
395
379
  ] = OutputXsiamCompression.NONE
396
380
  r"""Codec to use to compress the persisted data"""
397
381
 
398
382
  pq_on_backpressure: Annotated[
399
- Annotated[
400
- Optional[OutputXsiamQueueFullBehavior],
401
- PlainValidator(validate_open_enum(False)),
402
- ],
403
- pydantic.Field(alias="pqOnBackpressure"),
383
+ Optional[OutputXsiamQueueFullBehavior], pydantic.Field(alias="pqOnBackpressure")
404
384
  ] = OutputXsiamQueueFullBehavior.BLOCK
405
385
  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."""
406
386
 
407
- pq_mode: Annotated[
408
- Annotated[Optional[OutputXsiamMode], PlainValidator(validate_open_enum(False))],
409
- pydantic.Field(alias="pqMode"),
410
- ] = OutputXsiamMode.ERROR
387
+ pq_mode: Annotated[Optional[OutputXsiamMode], pydantic.Field(alias="pqMode")] = (
388
+ OutputXsiamMode.ERROR
389
+ )
411
390
  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."""
412
391
 
413
392
  pq_controls: Annotated[
@@ -1,10 +1,9 @@
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
5
4
  from enum import Enum
6
5
 
7
6
 
8
- class ProductsCore(str, Enum, metaclass=utils.OpenEnumMeta):
7
+ class ProductsCore(str, Enum):
9
8
  STREAM = "stream"
10
9
  EDGE = "edge"
@@ -1,11 +1,10 @@
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
5
4
  from enum import Enum
6
5
 
7
6
 
8
- class RbacResource(str, Enum, metaclass=utils.OpenEnumMeta):
7
+ class RbacResource(str, Enum):
9
8
  GROUPS = "groups"
10
9
  DATASETS = "datasets"
11
10
  DATASET_PROVIDERS = "dataset-providers"
@@ -3,10 +3,8 @@
3
3
  from __future__ import annotations
4
4
  from .rbacresource import RbacResource
5
5
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
- from pydantic.functional_validators import PlainValidator
8
6
  from typing import Optional
9
- from typing_extensions import Annotated, NotRequired, TypedDict
7
+ from typing_extensions import NotRequired, TypedDict
10
8
 
11
9
 
12
10
  class ResourcePolicyTypedDict(TypedDict):
@@ -21,6 +19,6 @@ class ResourcePolicy(BaseModel):
21
19
 
22
20
  policy: str
23
21
 
24
- type: Annotated[RbacResource, PlainValidator(validate_open_enum(False))]
22
+ type: RbacResource
25
23
 
26
24
  id: Optional[str] = None
@@ -0,0 +1,13 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from cribl_control_plane.types import BaseModel
5
+ from typing_extensions import TypedDict
6
+
7
+
8
+ class RouteCloneConfTypedDict(TypedDict):
9
+ pass
10
+
11
+
12
+ class RouteCloneConf(BaseModel):
13
+ pass
@@ -1,9 +1,10 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .routecloneconf import RouteCloneConf, RouteCloneConfTypedDict
4
5
  from cribl_control_plane.types import BaseModel
5
6
  import pydantic
6
- from typing import Dict, List, Optional
7
+ from typing import List, Optional
7
8
  from typing_extensions import Annotated, NotRequired, TypedDict
8
9
 
9
10
 
@@ -12,7 +13,7 @@ class RouteConfTypedDict(TypedDict):
12
13
  id: str
13
14
  name: str
14
15
  pipeline: str
15
- clones: NotRequired[List[Dict[str, str]]]
16
+ clones: NotRequired[List[RouteCloneConfTypedDict]]
16
17
  context: NotRequired[str]
17
18
  description: NotRequired[str]
18
19
  disabled: NotRequired[bool]
@@ -32,7 +33,7 @@ class RouteConf(BaseModel):
32
33
 
33
34
  pipeline: str
34
35
 
35
- clones: Optional[List[Dict[str, str]]] = None
36
+ clones: Optional[List[RouteCloneConf]] = None
36
37
 
37
38
  context: Optional[str] = None
38
39
 
@@ -1,17 +1,14 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import Any, List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
13
10
 
14
- class RunnableJobCollectionJobType(str, Enum, metaclass=utils.OpenEnumMeta):
11
+ class RunnableJobCollectionJobType(str, Enum):
15
12
  COLLECTION = "collection"
16
13
  EXECUTOR = "executor"
17
14
  SCHEDULED_SEARCH = "scheduledSearch"
@@ -240,7 +237,7 @@ class Collector(BaseModel):
240
237
  r"""Character encoding to use when parsing ingested data. When not set, @{product} will default to UTF-8 but may incorrectly interpret multi-byte characters."""
241
238
 
242
239
 
243
- class InputType(str, Enum, metaclass=utils.OpenEnumMeta):
240
+ class RunnableJobCollectionType(str, Enum):
244
241
  COLLECTION = "collection"
245
242
 
246
243
 
@@ -276,7 +273,7 @@ class RunnableJobCollectionMetadatum(BaseModel):
276
273
 
277
274
 
278
275
  class RunnableJobCollectionInputTypedDict(TypedDict):
279
- type: NotRequired[InputType]
276
+ type: NotRequired[RunnableJobCollectionType]
280
277
  breaker_rulesets: NotRequired[List[str]]
281
278
  r"""A list of event-breaking rulesets that will be applied, in order, to the input data stream"""
282
279
  stale_channel_flush_ms: NotRequired[float]
@@ -295,9 +292,7 @@ class RunnableJobCollectionInputTypedDict(TypedDict):
295
292
 
296
293
 
297
294
  class RunnableJobCollectionInput(BaseModel):
298
- type: Annotated[Optional[InputType], PlainValidator(validate_open_enum(False))] = (
299
- InputType.COLLECTION
300
- )
295
+ type: Optional[RunnableJobCollectionType] = RunnableJobCollectionType.COLLECTION
301
296
 
302
297
  breaker_rulesets: Annotated[
303
298
  Optional[List[str]], pydantic.Field(alias="breakerRulesets")
@@ -331,7 +326,7 @@ class RunnableJobCollectionInput(BaseModel):
331
326
  r"""Destination to send results to"""
332
327
 
333
328
 
334
- class RunnableJobCollectionLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
329
+ class RunnableJobCollectionLogLevel(str, Enum):
335
330
  r"""Level at which to set task logging"""
336
331
 
337
332
  ERROR = "error"
@@ -341,7 +336,7 @@ class RunnableJobCollectionLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
341
336
  SILLY = "silly"
342
337
 
343
338
 
344
- class RunnableJobCollectionMode(str, Enum, metaclass=utils.OpenEnumMeta):
339
+ class RunnableJobCollectionMode(str, Enum):
345
340
  r"""Job run mode. Preview will either return up to N matching results, or will run until capture time T is reached. Discovery will gather the list of files to turn into streaming tasks, without running the data collection job. Full Run will run the collection job."""
346
341
 
347
342
  LIST = "list"
@@ -349,7 +344,7 @@ class RunnableJobCollectionMode(str, Enum, metaclass=utils.OpenEnumMeta):
349
344
  RUN = "run"
350
345
 
351
346
 
352
- class TimeRange(str, Enum, metaclass=utils.OpenEnumMeta):
347
+ class TimeRange(str, Enum):
353
348
  ABSOLUTE = "absolute"
354
349
  RELATIVE = "relative"
355
350
 
@@ -362,7 +357,7 @@ class RunnableJobCollectionTimeWarning(BaseModel):
362
357
  pass
363
358
 
364
359
 
365
- class WhereToCapture(int, Enum, metaclass=utils.OpenEnumMeta):
360
+ class WhereToCapture(int, Enum):
366
361
  ZERO = 0
367
362
  ONE = 1
368
363
  TWO = 2
@@ -384,9 +379,7 @@ class CaptureSettings(BaseModel):
384
379
  max_events: Annotated[Optional[float], pydantic.Field(alias="maxEvents")] = 100
385
380
  r"""Maximum number of events to capture"""
386
381
 
387
- level: Annotated[
388
- Optional[WhereToCapture], PlainValidator(validate_open_enum(True))
389
- ] = WhereToCapture.ZERO
382
+ level: Optional[WhereToCapture] = WhereToCapture.ZERO
390
383
 
391
384
 
392
385
  class RunnableJobCollectionRunTypedDict(TypedDict):
@@ -453,25 +446,18 @@ class RunnableJobCollectionRun(BaseModel):
453
446
  r"""Maximum number of times a task can be rescheduled"""
454
447
 
455
448
  log_level: Annotated[
456
- Annotated[
457
- Optional[RunnableJobCollectionLogLevel],
458
- PlainValidator(validate_open_enum(False)),
459
- ],
460
- pydantic.Field(alias="logLevel"),
449
+ Optional[RunnableJobCollectionLogLevel], pydantic.Field(alias="logLevel")
461
450
  ] = RunnableJobCollectionLogLevel.INFO
462
451
  r"""Level at which to set task logging"""
463
452
 
464
453
  job_timeout: Annotated[Optional[str], pydantic.Field(alias="jobTimeout")] = "0"
465
454
  r"""Maximum time the job is allowed to run. Time unit defaults to seconds if not specified (examples: 30, 45s, 15m). Enter 0 for unlimited time."""
466
455
 
467
- mode: Annotated[
468
- Optional[RunnableJobCollectionMode], PlainValidator(validate_open_enum(False))
469
- ] = RunnableJobCollectionMode.LIST
456
+ mode: Optional[RunnableJobCollectionMode] = RunnableJobCollectionMode.LIST
470
457
  r"""Job run mode. Preview will either return up to N matching results, or will run until capture time T is reached. Discovery will gather the list of files to turn into streaming tasks, without running the data collection job. Full Run will run the collection job."""
471
458
 
472
459
  time_range_type: Annotated[
473
- Annotated[Optional[TimeRange], PlainValidator(validate_open_enum(False))],
474
- pydantic.Field(alias="timeRangeType"),
460
+ Optional[TimeRange], pydantic.Field(alias="timeRangeType")
475
461
  ] = TimeRange.RELATIVE
476
462
 
477
463
  earliest: Optional[float] = None
@@ -566,10 +552,7 @@ class RunnableJobCollection(BaseModel):
566
552
 
567
553
  description: Optional[str] = None
568
554
 
569
- type: Annotated[
570
- Optional[RunnableJobCollectionJobType],
571
- PlainValidator(validate_open_enum(False)),
572
- ] = None
555
+ type: Optional[RunnableJobCollectionJobType] = None
573
556
 
574
557
  ttl: Optional[str] = "4h"
575
558
  r"""Time to keep the job's artifacts on disk after job completion. This also affects how long a job is listed in the Job Inspector."""
@@ -1,17 +1,14 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import Any, List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
13
10
 
14
- class RunnableJobExecutorJobType(str, Enum, metaclass=utils.OpenEnumMeta):
11
+ class RunnableJobExecutorJobType(str, Enum):
15
12
  COLLECTION = "collection"
16
13
  EXECUTOR = "executor"
17
14
  SCHEDULED_SEARCH = "scheduledSearch"
@@ -235,7 +232,7 @@ class Executor(BaseModel):
235
232
  conf: Optional[ExecutorSpecificSettings] = None
236
233
 
237
234
 
238
- class RunnableJobExecutorLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
235
+ class RunnableJobExecutorLogLevel(str, Enum):
239
236
  r"""Level at which to set task logging"""
240
237
 
241
238
  ERROR = "error"
@@ -268,11 +265,7 @@ class RunnableJobExecutorRun(BaseModel):
268
265
  r"""Maximum number of times a task can be rescheduled"""
269
266
 
270
267
  log_level: Annotated[
271
- Annotated[
272
- Optional[RunnableJobExecutorLogLevel],
273
- PlainValidator(validate_open_enum(False)),
274
- ],
275
- pydantic.Field(alias="logLevel"),
268
+ Optional[RunnableJobExecutorLogLevel], pydantic.Field(alias="logLevel")
276
269
  ] = RunnableJobExecutorLogLevel.INFO
277
270
  r"""Level at which to set task logging"""
278
271
 
@@ -313,9 +306,7 @@ class RunnableJobExecutor(BaseModel):
313
306
 
314
307
  description: Optional[str] = None
315
308
 
316
- type: Annotated[
317
- Optional[RunnableJobExecutorJobType], PlainValidator(validate_open_enum(False))
318
- ] = None
309
+ type: Optional[RunnableJobExecutorJobType] = None
319
310
 
320
311
  ttl: Optional[str] = "4h"
321
312
  r"""Time to keep the job's artifacts on disk after job completion. This also affects how long a job is listed in the Job Inspector."""
@@ -1,17 +1,14 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import Any, List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
13
10
 
14
- class RunnableJobScheduledSearchJobType(str, Enum, metaclass=utils.OpenEnumMeta):
11
+ class RunnableJobScheduledSearchJobType(str, Enum):
15
12
  COLLECTION = "collection"
16
13
  EXECUTOR = "executor"
17
14
  SCHEDULED_SEARCH = "scheduledSearch"
@@ -232,9 +229,7 @@ class RunnableJobScheduledSearchTypedDict(TypedDict):
232
229
 
233
230
 
234
231
  class RunnableJobScheduledSearch(BaseModel):
235
- type: Annotated[
236
- RunnableJobScheduledSearchJobType, PlainValidator(validate_open_enum(False))
237
- ]
232
+ type: RunnableJobScheduledSearchJobType
238
233
 
239
234
  saved_query_id: Annotated[str, pydantic.Field(alias="savedQueryId")]
240
235
  r"""Identifies which search query to run"""
@@ -4,14 +4,8 @@ from __future__ import annotations
4
4
  from .configgroup import ConfigGroup, ConfigGroupTypedDict
5
5
  from .productscore import ProductsCore
6
6
  from cribl_control_plane.types import BaseModel
7
- from cribl_control_plane.utils import (
8
- FieldMetadata,
9
- PathParamMetadata,
10
- RequestMetadata,
11
- validate_open_enum,
12
- )
7
+ from cribl_control_plane.utils import FieldMetadata, PathParamMetadata, RequestMetadata
13
8
  import pydantic
14
- from pydantic.functional_validators import PlainValidator
15
9
  from typing import List, Optional
16
10
  from typing_extensions import Annotated, NotRequired, TypedDict
17
11
 
@@ -27,7 +21,7 @@ class UpdateConfigGroupByProductAndIDRequestTypedDict(TypedDict):
27
21
 
28
22
  class UpdateConfigGroupByProductAndIDRequest(BaseModel):
29
23
  product: Annotated[
30
- Annotated[ProductsCore, PlainValidator(validate_open_enum(False))],
24
+ ProductsCore,
31
25
  FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
32
26
  ]
33
27
  r"""Name of the Cribl product to get the Worker Groups or Edge Fleets for."""