cribl-control-plane 0.0.50__py3-none-any.whl → 0.0.50rc2__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 (176) hide show
  1. cribl_control_plane/_version.py +3 -5
  2. cribl_control_plane/errors/healthstatus_error.py +8 -2
  3. cribl_control_plane/groups_sdk.py +4 -4
  4. cribl_control_plane/health.py +6 -2
  5. cribl_control_plane/models/__init__.py +56 -31
  6. cribl_control_plane/models/cacheconnection.py +10 -2
  7. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  8. cribl_control_plane/models/cloudprovider.py +2 -1
  9. cribl_control_plane/models/configgroup.py +24 -4
  10. cribl_control_plane/models/configgroupcloud.py +6 -2
  11. cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
  12. cribl_control_plane/models/createinputhectokenbyidop.py +6 -5
  13. cribl_control_plane/models/createversionpushop.py +5 -5
  14. cribl_control_plane/models/cribllakedataset.py +8 -2
  15. cribl_control_plane/models/datasetmetadata.py +8 -2
  16. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  17. cribl_control_plane/models/error.py +16 -0
  18. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  19. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  20. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  21. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  22. cribl_control_plane/models/gethealthinfoop.py +17 -0
  23. cribl_control_plane/models/getsummaryop.py +7 -2
  24. cribl_control_plane/models/getversionshowop.py +6 -5
  25. cribl_control_plane/models/gitinfo.py +14 -3
  26. cribl_control_plane/models/gitshowresult.py +19 -0
  27. cribl_control_plane/models/hbcriblinfo.py +24 -3
  28. cribl_control_plane/models/healthstatus.py +7 -4
  29. cribl_control_plane/models/heartbeatmetadata.py +3 -0
  30. cribl_control_plane/models/input.py +65 -63
  31. cribl_control_plane/models/inputappscope.py +34 -14
  32. cribl_control_plane/models/inputazureblob.py +17 -6
  33. cribl_control_plane/models/inputcollection.py +11 -4
  34. cribl_control_plane/models/inputconfluentcloud.py +41 -32
  35. cribl_control_plane/models/inputcribl.py +11 -4
  36. cribl_control_plane/models/inputcriblhttp.py +23 -8
  37. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  38. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  39. cribl_control_plane/models/inputcribltcp.py +23 -8
  40. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  41. cribl_control_plane/models/inputdatadogagent.py +24 -8
  42. cribl_control_plane/models/inputdatagen.py +11 -4
  43. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  44. cribl_control_plane/models/inputelastic.py +40 -14
  45. cribl_control_plane/models/inputeventhub.py +15 -6
  46. cribl_control_plane/models/inputexec.py +14 -6
  47. cribl_control_plane/models/inputfile.py +15 -6
  48. cribl_control_plane/models/inputfirehose.py +23 -8
  49. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  50. cribl_control_plane/models/inputgrafana.py +67 -24
  51. cribl_control_plane/models/inputhttp.py +23 -8
  52. cribl_control_plane/models/inputhttpraw.py +23 -8
  53. cribl_control_plane/models/inputjournalfiles.py +12 -4
  54. cribl_control_plane/models/inputkafka.py +41 -28
  55. cribl_control_plane/models/inputkinesis.py +38 -14
  56. cribl_control_plane/models/inputkubeevents.py +11 -4
  57. cribl_control_plane/models/inputkubelogs.py +16 -8
  58. cribl_control_plane/models/inputkubemetrics.py +16 -8
  59. cribl_control_plane/models/inputloki.py +29 -10
  60. cribl_control_plane/models/inputmetrics.py +23 -8
  61. cribl_control_plane/models/inputmodeldriventelemetry.py +32 -10
  62. cribl_control_plane/models/inputmsk.py +48 -30
  63. cribl_control_plane/models/inputnetflow.py +11 -4
  64. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  65. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  66. cribl_control_plane/models/inputoffice365service.py +35 -16
  67. cribl_control_plane/models/inputopentelemetry.py +38 -16
  68. cribl_control_plane/models/inputprometheus.py +50 -18
  69. cribl_control_plane/models/inputprometheusrw.py +30 -10
  70. cribl_control_plane/models/inputrawudp.py +11 -4
  71. cribl_control_plane/models/inputs3.py +21 -8
  72. cribl_control_plane/models/inputs3inventory.py +26 -10
  73. cribl_control_plane/models/inputsecuritylake.py +27 -10
  74. cribl_control_plane/models/inputsnmp.py +16 -6
  75. cribl_control_plane/models/inputsplunk.py +33 -12
  76. cribl_control_plane/models/inputsplunkhec.py +29 -10
  77. cribl_control_plane/models/inputsplunksearch.py +33 -14
  78. cribl_control_plane/models/inputsqs.py +27 -10
  79. cribl_control_plane/models/inputsyslog.py +43 -16
  80. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  81. cribl_control_plane/models/inputsystemstate.py +16 -8
  82. cribl_control_plane/models/inputtcp.py +29 -10
  83. cribl_control_plane/models/inputtcpjson.py +29 -10
  84. cribl_control_plane/models/inputwef.py +37 -14
  85. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  86. cribl_control_plane/models/inputwineventlogs.py +20 -10
  87. cribl_control_plane/models/inputwiz.py +21 -8
  88. cribl_control_plane/models/inputwizwebhook.py +23 -8
  89. cribl_control_plane/models/inputzscalerhec.py +29 -10
  90. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  91. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  92. cribl_control_plane/models/masterworkerentry.py +7 -2
  93. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  94. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  95. cribl_control_plane/models/nodeprovidedinfo.py +3 -0
  96. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  97. cribl_control_plane/models/nodeupgradestate.py +2 -1
  98. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  99. cribl_control_plane/models/output.py +84 -79
  100. cribl_control_plane/models/outputazureblob.py +48 -18
  101. cribl_control_plane/models/outputazuredataexplorer.py +73 -28
  102. cribl_control_plane/models/outputazureeventhub.py +40 -18
  103. cribl_control_plane/models/outputazurelogs.py +35 -12
  104. cribl_control_plane/models/outputclickhouse.py +55 -20
  105. cribl_control_plane/models/outputcloudwatch.py +29 -10
  106. cribl_control_plane/models/outputconfluentcloud.py +71 -44
  107. cribl_control_plane/models/outputcriblhttp.py +44 -16
  108. cribl_control_plane/models/outputcribllake.py +46 -16
  109. cribl_control_plane/models/outputcribltcp.py +45 -18
  110. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +49 -14
  111. cribl_control_plane/models/outputdatabricks.py +282 -0
  112. cribl_control_plane/models/outputdatadog.py +48 -20
  113. cribl_control_plane/models/outputdataset.py +46 -18
  114. cribl_control_plane/models/outputdiskspool.py +7 -2
  115. cribl_control_plane/models/outputdls3.py +68 -24
  116. cribl_control_plane/models/outputdynatracehttp.py +53 -20
  117. cribl_control_plane/models/outputdynatraceotlp.py +55 -22
  118. cribl_control_plane/models/outputelastic.py +43 -18
  119. cribl_control_plane/models/outputelasticcloud.py +36 -12
  120. cribl_control_plane/models/outputexabeam.py +29 -10
  121. cribl_control_plane/models/outputfilesystem.py +39 -14
  122. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  123. cribl_control_plane/models/outputgooglecloudlogging.py +50 -18
  124. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  125. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  126. cribl_control_plane/models/outputgrafanacloud.py +97 -32
  127. cribl_control_plane/models/outputgraphite.py +31 -14
  128. cribl_control_plane/models/outputhoneycomb.py +35 -12
  129. cribl_control_plane/models/outputhumiohec.py +43 -16
  130. cribl_control_plane/models/outputinfluxdb.py +42 -16
  131. cribl_control_plane/models/outputkafka.py +69 -40
  132. cribl_control_plane/models/outputkinesis.py +40 -16
  133. cribl_control_plane/models/outputloki.py +41 -16
  134. cribl_control_plane/models/outputminio.py +65 -24
  135. cribl_control_plane/models/outputmsk.py +77 -42
  136. cribl_control_plane/models/outputnewrelic.py +43 -18
  137. cribl_control_plane/models/outputnewrelicevents.py +41 -14
  138. cribl_control_plane/models/outputopentelemetry.py +67 -26
  139. cribl_control_plane/models/outputprometheus.py +35 -12
  140. cribl_control_plane/models/outputring.py +19 -8
  141. cribl_control_plane/models/outputs3.py +68 -26
  142. cribl_control_plane/models/outputsecuritylake.py +52 -18
  143. cribl_control_plane/models/outputsentinel.py +45 -18
  144. cribl_control_plane/models/outputsentineloneaisiem.py +50 -18
  145. cribl_control_plane/models/outputservicenow.py +60 -24
  146. cribl_control_plane/models/outputsignalfx.py +37 -14
  147. cribl_control_plane/models/outputsns.py +36 -14
  148. cribl_control_plane/models/outputsplunk.py +60 -24
  149. cribl_control_plane/models/outputsplunkhec.py +35 -12
  150. cribl_control_plane/models/outputsplunklb.py +77 -30
  151. cribl_control_plane/models/outputsqs.py +41 -16
  152. cribl_control_plane/models/outputstatsd.py +30 -14
  153. cribl_control_plane/models/outputstatsdext.py +29 -12
  154. cribl_control_plane/models/outputsumologic.py +35 -12
  155. cribl_control_plane/models/outputsyslog.py +58 -24
  156. cribl_control_plane/models/outputtcpjson.py +52 -20
  157. cribl_control_plane/models/outputwavefront.py +35 -12
  158. cribl_control_plane/models/outputwebhook.py +58 -22
  159. cribl_control_plane/models/outputxsiam.py +35 -14
  160. cribl_control_plane/models/productscore.py +2 -1
  161. cribl_control_plane/models/rbacresource.py +2 -1
  162. cribl_control_plane/models/resourcepolicy.py +4 -2
  163. cribl_control_plane/models/routeconf.py +3 -4
  164. cribl_control_plane/models/runnablejobcollection.py +30 -13
  165. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  166. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  167. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  168. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  169. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
  170. cribl_control_plane/models/workertypes.py +2 -1
  171. {cribl_control_plane-0.0.50.dist-info → cribl_control_plane-0.0.50rc2.dist-info}/METADATA +1 -1
  172. cribl_control_plane-0.0.50rc2.dist-info/RECORD +327 -0
  173. cribl_control_plane/models/appmode.py +0 -13
  174. cribl_control_plane/models/routecloneconf.py +0 -13
  175. cribl_control_plane-0.0.50.dist-info/RECORD +0 -325
  176. {cribl_control_plane-0.0.50.dist-info → cribl_control_plane-0.0.50rc2.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
 
@@ -23,7 +26,7 @@ class OutputSentinelExtraHTTPHeader(BaseModel):
23
26
  name: Optional[str] = None
24
27
 
25
28
 
26
- class OutputSentinelFailedRequestLoggingMode(str, Enum):
29
+ class OutputSentinelFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
28
31
 
29
32
  PAYLOAD = "payload"
@@ -85,7 +88,7 @@ class OutputSentinelTimeoutRetrySettings(BaseModel):
85
88
  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)."""
86
89
 
87
90
 
88
- class OutputSentinelBackpressureBehavior(str, Enum):
91
+ class OutputSentinelBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
89
92
  r"""How to handle events when all receivers are exerting backpressure"""
90
93
 
91
94
  BLOCK = "block"
@@ -93,39 +96,39 @@ class OutputSentinelBackpressureBehavior(str, Enum):
93
96
  QUEUE = "queue"
94
97
 
95
98
 
96
- class AuthType(str, Enum):
99
+ class AuthType(str, Enum, metaclass=utils.OpenEnumMeta):
97
100
  OAUTH = "oauth"
98
101
 
99
102
 
100
- class EndpointConfiguration(str, Enum):
103
+ class EndpointConfiguration(str, Enum, metaclass=utils.OpenEnumMeta):
101
104
  r"""Enter the data collection endpoint URL or the individual ID"""
102
105
 
103
106
  URL = "url"
104
107
  ID = "ID"
105
108
 
106
109
 
107
- class OutputSentinelFormat(str, Enum):
110
+ class OutputSentinelFormat(str, Enum, metaclass=utils.OpenEnumMeta):
108
111
  NDJSON = "ndjson"
109
112
  JSON_ARRAY = "json_array"
110
113
  CUSTOM = "custom"
111
114
  ADVANCED = "advanced"
112
115
 
113
116
 
114
- class OutputSentinelCompression(str, Enum):
117
+ class OutputSentinelCompression(str, Enum, metaclass=utils.OpenEnumMeta):
115
118
  r"""Codec to use to compress the persisted data"""
116
119
 
117
120
  NONE = "none"
118
121
  GZIP = "gzip"
119
122
 
120
123
 
121
- class OutputSentinelQueueFullBehavior(str, Enum):
124
+ class OutputSentinelQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
122
125
  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."""
123
126
 
124
127
  BLOCK = "block"
125
128
  DROP = "drop"
126
129
 
127
130
 
128
- class OutputSentinelMode(str, Enum):
131
+ class OutputSentinelMode(str, Enum, metaclass=utils.OpenEnumMeta):
129
132
  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."""
130
133
 
131
134
  ERROR = "error"
@@ -319,7 +322,10 @@ class OutputSentinel(BaseModel):
319
322
  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."""
320
323
 
321
324
  failed_request_logging_mode: Annotated[
322
- Optional[OutputSentinelFailedRequestLoggingMode],
325
+ Annotated[
326
+ Optional[OutputSentinelFailedRequestLoggingMode],
327
+ PlainValidator(validate_open_enum(False)),
328
+ ],
323
329
  pydantic.Field(alias="failedRequestLoggingMode"),
324
330
  ] = OutputSentinelFailedRequestLoggingMode.NONE
325
331
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -346,18 +352,26 @@ class OutputSentinel(BaseModel):
346
352
  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."""
347
353
 
348
354
  on_backpressure: Annotated[
349
- Optional[OutputSentinelBackpressureBehavior],
355
+ Annotated[
356
+ Optional[OutputSentinelBackpressureBehavior],
357
+ PlainValidator(validate_open_enum(False)),
358
+ ],
350
359
  pydantic.Field(alias="onBackpressure"),
351
360
  ] = OutputSentinelBackpressureBehavior.BLOCK
352
361
  r"""How to handle events when all receivers are exerting backpressure"""
353
362
 
354
- auth_type: Annotated[Optional[AuthType], pydantic.Field(alias="authType")] = None
363
+ auth_type: Annotated[
364
+ Annotated[Optional[AuthType], PlainValidator(validate_open_enum(False))],
365
+ pydantic.Field(alias="authType"),
366
+ ] = None
355
367
 
356
368
  scope: Optional[str] = "https://monitor.azure.com/.default"
357
369
  r"""Scope to pass in the OAuth request"""
358
370
 
359
371
  endpoint_url_configuration: Annotated[
360
- Optional[EndpointConfiguration],
372
+ Annotated[
373
+ Optional[EndpointConfiguration], PlainValidator(validate_open_enum(False))
374
+ ],
361
375
  pydantic.Field(alias="endpointURLConfiguration"),
362
376
  ] = EndpointConfiguration.URL
363
377
  r"""Enter the data collection endpoint URL or the individual ID"""
@@ -370,7 +384,10 @@ class OutputSentinel(BaseModel):
370
384
  description: Optional[str] = None
371
385
 
372
386
  format_: Annotated[
373
- Optional[OutputSentinelFormat], pydantic.Field(alias="format")
387
+ Annotated[
388
+ Optional[OutputSentinelFormat], PlainValidator(validate_open_enum(False))
389
+ ],
390
+ pydantic.Field(alias="format"),
374
391
  ] = None
375
392
 
376
393
  custom_source_expression: Annotated[
@@ -427,19 +444,29 @@ class OutputSentinel(BaseModel):
427
444
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
428
445
 
429
446
  pq_compress: Annotated[
430
- Optional[OutputSentinelCompression], pydantic.Field(alias="pqCompress")
447
+ Annotated[
448
+ Optional[OutputSentinelCompression],
449
+ PlainValidator(validate_open_enum(False)),
450
+ ],
451
+ pydantic.Field(alias="pqCompress"),
431
452
  ] = OutputSentinelCompression.NONE
432
453
  r"""Codec to use to compress the persisted data"""
433
454
 
434
455
  pq_on_backpressure: Annotated[
435
- Optional[OutputSentinelQueueFullBehavior],
456
+ Annotated[
457
+ Optional[OutputSentinelQueueFullBehavior],
458
+ PlainValidator(validate_open_enum(False)),
459
+ ],
436
460
  pydantic.Field(alias="pqOnBackpressure"),
437
461
  ] = OutputSentinelQueueFullBehavior.BLOCK
438
462
  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."""
439
463
 
440
- pq_mode: Annotated[Optional[OutputSentinelMode], pydantic.Field(alias="pqMode")] = (
441
- OutputSentinelMode.ERROR
442
- )
464
+ pq_mode: Annotated[
465
+ Annotated[
466
+ Optional[OutputSentinelMode], PlainValidator(validate_open_enum(False))
467
+ ],
468
+ pydantic.Field(alias="pqMode"),
469
+ ] = OutputSentinelMode.ERROR
443
470
  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."""
444
471
 
445
472
  pq_controls: Annotated[
@@ -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 OutputSentinelOneAiSiemType(str, Enum):
12
15
  SENTINEL_ONE_AI_SIEM = "sentinel_one_ai_siem"
13
16
 
14
17
 
15
- class OutputSentinelOneAiSiemRegion(str, Enum):
18
+ class OutputSentinelOneAiSiemRegion(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""The SentinelOne region to send events to. In most cases you can find the region by either looking at your SentinelOne URL or knowing what geographic region your SentinelOne instance is contained in."""
17
20
 
18
21
  US = "US"
@@ -24,7 +27,7 @@ class OutputSentinelOneAiSiemRegion(str, Enum):
24
27
  CUSTOM = "Custom"
25
28
 
26
29
 
27
- class AISIEMEndpointPath(str, Enum):
30
+ class AISIEMEndpointPath(str, Enum, metaclass=utils.OpenEnumMeta):
28
31
  r"""Endpoint to send events to. Use /services/collector/event for structured JSON payloads with standard HEC top-level fields. Use /services/collector/raw for unstructured log lines (plain text)."""
29
32
 
30
33
  ROOT_SERVICES_COLLECTOR_EVENT = "/services/collector/event"
@@ -42,7 +45,9 @@ class OutputSentinelOneAiSiemExtraHTTPHeader(BaseModel):
42
45
  name: Optional[str] = None
43
46
 
44
47
 
45
- class OutputSentinelOneAiSiemFailedRequestLoggingMode(str, Enum):
48
+ class OutputSentinelOneAiSiemFailedRequestLoggingMode(
49
+ str, Enum, metaclass=utils.OpenEnumMeta
50
+ ):
46
51
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
47
52
 
48
53
  PAYLOAD = "payload"
@@ -50,7 +55,9 @@ class OutputSentinelOneAiSiemFailedRequestLoggingMode(str, Enum):
50
55
  NONE = "none"
51
56
 
52
57
 
53
- class OutputSentinelOneAiSiemAuthenticationMethod(str, Enum):
58
+ class OutputSentinelOneAiSiemAuthenticationMethod(
59
+ str, Enum, metaclass=utils.OpenEnumMeta
60
+ ):
54
61
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
55
62
 
56
63
  MANUAL = "manual"
@@ -111,7 +118,9 @@ class OutputSentinelOneAiSiemTimeoutRetrySettings(BaseModel):
111
118
  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)."""
112
119
 
113
120
 
114
- class OutputSentinelOneAiSiemBackpressureBehavior(str, Enum):
121
+ class OutputSentinelOneAiSiemBackpressureBehavior(
122
+ str, Enum, metaclass=utils.OpenEnumMeta
123
+ ):
115
124
  r"""How to handle events when all receivers are exerting backpressure"""
116
125
 
117
126
  BLOCK = "block"
@@ -119,21 +128,21 @@ class OutputSentinelOneAiSiemBackpressureBehavior(str, Enum):
119
128
  QUEUE = "queue"
120
129
 
121
130
 
122
- class OutputSentinelOneAiSiemCompression(str, Enum):
131
+ class OutputSentinelOneAiSiemCompression(str, Enum, metaclass=utils.OpenEnumMeta):
123
132
  r"""Codec to use to compress the persisted data"""
124
133
 
125
134
  NONE = "none"
126
135
  GZIP = "gzip"
127
136
 
128
137
 
129
- class OutputSentinelOneAiSiemQueueFullBehavior(str, Enum):
138
+ class OutputSentinelOneAiSiemQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
130
139
  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."""
131
140
 
132
141
  BLOCK = "block"
133
142
  DROP = "drop"
134
143
 
135
144
 
136
- class OutputSentinelOneAiSiemMode(str, Enum):
145
+ class OutputSentinelOneAiSiemMode(str, Enum, metaclass=utils.OpenEnumMeta):
137
146
  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."""
138
147
 
139
148
  ERROR = "error"
@@ -275,12 +284,15 @@ class OutputSentinelOneAiSiem(BaseModel):
275
284
  streamtags: Optional[List[str]] = None
276
285
  r"""Tags for filtering and grouping in @{product}"""
277
286
 
278
- region: Optional[OutputSentinelOneAiSiemRegion] = OutputSentinelOneAiSiemRegion.US
287
+ region: Annotated[
288
+ Optional[OutputSentinelOneAiSiemRegion],
289
+ PlainValidator(validate_open_enum(False)),
290
+ ] = OutputSentinelOneAiSiemRegion.US
279
291
  r"""The SentinelOne region to send events to. In most cases you can find the region by either looking at your SentinelOne URL or knowing what geographic region your SentinelOne instance is contained in."""
280
292
 
281
- endpoint: Optional[AISIEMEndpointPath] = (
282
- AISIEMEndpointPath.ROOT_SERVICES_COLLECTOR_EVENT
283
- )
293
+ endpoint: Annotated[
294
+ Optional[AISIEMEndpointPath], PlainValidator(validate_open_enum(False))
295
+ ] = AISIEMEndpointPath.ROOT_SERVICES_COLLECTOR_EVENT
284
296
  r"""Endpoint to send events to. Use /services/collector/event for structured JSON payloads with standard HEC top-level fields. Use /services/collector/raw for unstructured log lines (plain text)."""
285
297
 
286
298
  concurrency: Optional[float] = 5
@@ -322,7 +334,10 @@ class OutputSentinelOneAiSiem(BaseModel):
322
334
  r"""Headers to add to all events"""
323
335
 
324
336
  failed_request_logging_mode: Annotated[
325
- Optional[OutputSentinelOneAiSiemFailedRequestLoggingMode],
337
+ Annotated[
338
+ Optional[OutputSentinelOneAiSiemFailedRequestLoggingMode],
339
+ PlainValidator(validate_open_enum(False)),
340
+ ],
326
341
  pydantic.Field(alias="failedRequestLoggingMode"),
327
342
  ] = OutputSentinelOneAiSiemFailedRequestLoggingMode.NONE
328
343
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -333,7 +348,10 @@ class OutputSentinelOneAiSiem(BaseModel):
333
348
  r"""List of headers that are safe to log in plain text"""
334
349
 
335
350
  auth_type: Annotated[
336
- Optional[OutputSentinelOneAiSiemAuthenticationMethod],
351
+ Annotated[
352
+ Optional[OutputSentinelOneAiSiemAuthenticationMethod],
353
+ PlainValidator(validate_open_enum(False)),
354
+ ],
337
355
  pydantic.Field(alias="authType"),
338
356
  ] = OutputSentinelOneAiSiemAuthenticationMethod.MANUAL
339
357
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
@@ -355,7 +373,10 @@ class OutputSentinelOneAiSiem(BaseModel):
355
373
  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."""
356
374
 
357
375
  on_backpressure: Annotated[
358
- Optional[OutputSentinelOneAiSiemBackpressureBehavior],
376
+ Annotated[
377
+ Optional[OutputSentinelOneAiSiemBackpressureBehavior],
378
+ PlainValidator(validate_open_enum(False)),
379
+ ],
359
380
  pydantic.Field(alias="onBackpressure"),
360
381
  ] = OutputSentinelOneAiSiemBackpressureBehavior.BLOCK
361
382
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -451,18 +472,29 @@ class OutputSentinelOneAiSiem(BaseModel):
451
472
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
452
473
 
453
474
  pq_compress: Annotated[
454
- Optional[OutputSentinelOneAiSiemCompression], pydantic.Field(alias="pqCompress")
475
+ Annotated[
476
+ Optional[OutputSentinelOneAiSiemCompression],
477
+ PlainValidator(validate_open_enum(False)),
478
+ ],
479
+ pydantic.Field(alias="pqCompress"),
455
480
  ] = OutputSentinelOneAiSiemCompression.NONE
456
481
  r"""Codec to use to compress the persisted data"""
457
482
 
458
483
  pq_on_backpressure: Annotated[
459
- Optional[OutputSentinelOneAiSiemQueueFullBehavior],
484
+ Annotated[
485
+ Optional[OutputSentinelOneAiSiemQueueFullBehavior],
486
+ PlainValidator(validate_open_enum(False)),
487
+ ],
460
488
  pydantic.Field(alias="pqOnBackpressure"),
461
489
  ] = OutputSentinelOneAiSiemQueueFullBehavior.BLOCK
462
490
  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."""
463
491
 
464
492
  pq_mode: Annotated[
465
- Optional[OutputSentinelOneAiSiemMode], pydantic.Field(alias="pqMode")
493
+ Annotated[
494
+ Optional[OutputSentinelOneAiSiemMode],
495
+ PlainValidator(validate_open_enum(False)),
496
+ ],
497
+ pydantic.Field(alias="pqMode"),
466
498
  ] = OutputSentinelOneAiSiemMode.ERROR
467
499
  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."""
468
500
 
@@ -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,20 +15,20 @@ class OutputServiceNowType(str, Enum):
12
15
  SERVICE_NOW = "service_now"
13
16
 
14
17
 
15
- class OutputServiceNowOTLPVersion(str, Enum):
18
+ class OutputServiceNowOTLPVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""The version of OTLP Protobuf definitions to use when structuring data to send"""
17
20
 
18
21
  ONE_DOT_3_DOT_1 = "1.3.1"
19
22
 
20
23
 
21
- class OutputServiceNowProtocol(str, Enum):
24
+ class OutputServiceNowProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
22
25
  r"""Select a transport option for OpenTelemetry"""
23
26
 
24
27
  GRPC = "grpc"
25
28
  HTTP = "http"
26
29
 
27
30
 
28
- class OutputServiceNowCompressCompression(str, Enum):
31
+ class OutputServiceNowCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
29
32
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
30
33
 
31
34
  NONE = "none"
@@ -33,7 +36,7 @@ class OutputServiceNowCompressCompression(str, Enum):
33
36
  GZIP = "gzip"
34
37
 
35
38
 
36
- class OutputServiceNowHTTPCompressCompression(str, Enum):
39
+ class OutputServiceNowHTTPCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
37
40
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
38
41
 
39
42
  NONE = "none"
@@ -51,7 +54,7 @@ class OutputServiceNowMetadatum(BaseModel):
51
54
  key: Optional[str] = ""
52
55
 
53
56
 
54
- class OutputServiceNowFailedRequestLoggingMode(str, Enum):
57
+ class OutputServiceNowFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
55
58
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
56
59
 
57
60
  PAYLOAD = "payload"
@@ -59,7 +62,7 @@ class OutputServiceNowFailedRequestLoggingMode(str, Enum):
59
62
  NONE = "none"
60
63
 
61
64
 
62
- class OutputServiceNowBackpressureBehavior(str, Enum):
65
+ class OutputServiceNowBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
63
66
  r"""How to handle events when all receivers are exerting backpressure"""
64
67
 
65
68
  BLOCK = "block"
@@ -132,14 +135,14 @@ class OutputServiceNowTimeoutRetrySettings(BaseModel):
132
135
  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)."""
133
136
 
134
137
 
135
- class OutputServiceNowMinimumTLSVersion(str, Enum):
138
+ class OutputServiceNowMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
136
139
  TL_SV1 = "TLSv1"
137
140
  TL_SV1_1 = "TLSv1.1"
138
141
  TL_SV1_2 = "TLSv1.2"
139
142
  TL_SV1_3 = "TLSv1.3"
140
143
 
141
144
 
142
- class OutputServiceNowMaximumTLSVersion(str, Enum):
145
+ class OutputServiceNowMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
143
146
  TL_SV1 = "TLSv1"
144
147
  TL_SV1_1 = "TLSv1.1"
145
148
  TL_SV1_2 = "TLSv1.2"
@@ -194,29 +197,37 @@ class OutputServiceNowTLSSettingsClientSide(BaseModel):
194
197
  r"""Passphrase to use to decrypt private key"""
195
198
 
196
199
  min_version: Annotated[
197
- Optional[OutputServiceNowMinimumTLSVersion], pydantic.Field(alias="minVersion")
200
+ Annotated[
201
+ Optional[OutputServiceNowMinimumTLSVersion],
202
+ PlainValidator(validate_open_enum(False)),
203
+ ],
204
+ pydantic.Field(alias="minVersion"),
198
205
  ] = None
199
206
 
200
207
  max_version: Annotated[
201
- Optional[OutputServiceNowMaximumTLSVersion], pydantic.Field(alias="maxVersion")
208
+ Annotated[
209
+ Optional[OutputServiceNowMaximumTLSVersion],
210
+ PlainValidator(validate_open_enum(False)),
211
+ ],
212
+ pydantic.Field(alias="maxVersion"),
202
213
  ] = None
203
214
 
204
215
 
205
- class OutputServiceNowPqCompressCompression(str, Enum):
216
+ class OutputServiceNowPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
206
217
  r"""Codec to use to compress the persisted data"""
207
218
 
208
219
  NONE = "none"
209
220
  GZIP = "gzip"
210
221
 
211
222
 
212
- class OutputServiceNowQueueFullBehavior(str, Enum):
223
+ class OutputServiceNowQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
213
224
  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."""
214
225
 
215
226
  BLOCK = "block"
216
227
  DROP = "drop"
217
228
 
218
229
 
219
- class OutputServiceNowMode(str, Enum):
230
+ class OutputServiceNowMode(str, Enum, metaclass=utils.OpenEnumMeta):
220
231
  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."""
221
232
 
222
233
  ERROR = "error"
@@ -349,7 +360,11 @@ class OutputServiceNow(BaseModel):
349
360
  )
350
361
 
351
362
  otlp_version: Annotated[
352
- Optional[OutputServiceNowOTLPVersion], pydantic.Field(alias="otlpVersion")
363
+ Annotated[
364
+ Optional[OutputServiceNowOTLPVersion],
365
+ PlainValidator(validate_open_enum(False)),
366
+ ],
367
+ pydantic.Field(alias="otlpVersion"),
353
368
  ] = OutputServiceNowOTLPVersion.ONE_DOT_3_DOT_1
354
369
  r"""The version of OTLP Protobuf definitions to use when structuring data to send"""
355
370
 
@@ -358,16 +373,22 @@ class OutputServiceNow(BaseModel):
358
373
  ] = 2048
359
374
  r"""Maximum size, in KB, of the request body"""
360
375
 
361
- protocol: Optional[OutputServiceNowProtocol] = OutputServiceNowProtocol.GRPC
376
+ protocol: Annotated[
377
+ Optional[OutputServiceNowProtocol], PlainValidator(validate_open_enum(False))
378
+ ] = OutputServiceNowProtocol.GRPC
362
379
  r"""Select a transport option for OpenTelemetry"""
363
380
 
364
- compress: Optional[OutputServiceNowCompressCompression] = (
365
- OutputServiceNowCompressCompression.GZIP
366
- )
381
+ compress: Annotated[
382
+ Optional[OutputServiceNowCompressCompression],
383
+ PlainValidator(validate_open_enum(False)),
384
+ ] = OutputServiceNowCompressCompression.GZIP
367
385
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
368
386
 
369
387
  http_compress: Annotated[
370
- Optional[OutputServiceNowHTTPCompressCompression],
388
+ Annotated[
389
+ Optional[OutputServiceNowHTTPCompressCompression],
390
+ PlainValidator(validate_open_enum(False)),
391
+ ],
371
392
  pydantic.Field(alias="httpCompress"),
372
393
  ] = OutputServiceNowHTTPCompressCompression.GZIP
373
394
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
@@ -402,7 +423,10 @@ class OutputServiceNow(BaseModel):
402
423
  r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Body size limit."""
403
424
 
404
425
  failed_request_logging_mode: Annotated[
405
- Optional[OutputServiceNowFailedRequestLoggingMode],
426
+ Annotated[
427
+ Optional[OutputServiceNowFailedRequestLoggingMode],
428
+ PlainValidator(validate_open_enum(False)),
429
+ ],
406
430
  pydantic.Field(alias="failedRequestLoggingMode"),
407
431
  ] = OutputServiceNowFailedRequestLoggingMode.NONE
408
432
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -421,7 +445,10 @@ class OutputServiceNow(BaseModel):
421
445
  r"""Disable to close the connection immediately after sending the outgoing request"""
422
446
 
423
447
  on_backpressure: Annotated[
424
- Optional[OutputServiceNowBackpressureBehavior],
448
+ Annotated[
449
+ Optional[OutputServiceNowBackpressureBehavior],
450
+ PlainValidator(validate_open_enum(False)),
451
+ ],
425
452
  pydantic.Field(alias="onBackpressure"),
426
453
  ] = OutputServiceNowBackpressureBehavior.BLOCK
427
454
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -484,19 +511,28 @@ class OutputServiceNow(BaseModel):
484
511
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
485
512
 
486
513
  pq_compress: Annotated[
487
- Optional[OutputServiceNowPqCompressCompression],
514
+ Annotated[
515
+ Optional[OutputServiceNowPqCompressCompression],
516
+ PlainValidator(validate_open_enum(False)),
517
+ ],
488
518
  pydantic.Field(alias="pqCompress"),
489
519
  ] = OutputServiceNowPqCompressCompression.NONE
490
520
  r"""Codec to use to compress the persisted data"""
491
521
 
492
522
  pq_on_backpressure: Annotated[
493
- Optional[OutputServiceNowQueueFullBehavior],
523
+ Annotated[
524
+ Optional[OutputServiceNowQueueFullBehavior],
525
+ PlainValidator(validate_open_enum(False)),
526
+ ],
494
527
  pydantic.Field(alias="pqOnBackpressure"),
495
528
  ] = OutputServiceNowQueueFullBehavior.BLOCK
496
529
  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."""
497
530
 
498
531
  pq_mode: Annotated[
499
- Optional[OutputServiceNowMode], pydantic.Field(alias="pqMode")
532
+ Annotated[
533
+ Optional[OutputServiceNowMode], PlainValidator(validate_open_enum(False))
534
+ ],
535
+ pydantic.Field(alias="pqMode"),
500
536
  ] = OutputServiceNowMode.ERROR
501
537
  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."""
502
538