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 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"""
@@ -351,11 +369,14 @@ class OutputSentinelOneAiSiem(BaseModel):
351
369
 
352
370
  response_honor_retry_after_header: Annotated[
353
371
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
354
- ] = False
372
+ ] = True
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"""
@@ -465,7 +492,7 @@ class OutputServiceNow(BaseModel):
465
492
 
466
493
  response_honor_retry_after_header: Annotated[
467
494
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
468
- ] = False
495
+ ] = True
469
496
  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."""
470
497
 
471
498
  tls: Optional[OutputServiceNowTLSSettingsClientSide] = None
@@ -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
 
@@ -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 OutputSignalfxType(str, Enum):
12
15
  SIGNALFX = "signalfx"
13
16
 
14
17
 
15
- class OutputSignalfxAuthenticationMethod(str, Enum):
18
+ class OutputSignalfxAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
17
20
 
18
21
  MANUAL = "manual"
@@ -30,7 +33,7 @@ class OutputSignalfxExtraHTTPHeader(BaseModel):
30
33
  name: Optional[str] = None
31
34
 
32
35
 
33
- class OutputSignalfxFailedRequestLoggingMode(str, Enum):
36
+ class OutputSignalfxFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
35
38
 
36
39
  PAYLOAD = "payload"
@@ -92,7 +95,7 @@ class OutputSignalfxTimeoutRetrySettings(BaseModel):
92
95
  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)."""
93
96
 
94
97
 
95
- class OutputSignalfxBackpressureBehavior(str, Enum):
98
+ class OutputSignalfxBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
96
99
  r"""How to handle events when all receivers are exerting backpressure"""
97
100
 
98
101
  BLOCK = "block"
@@ -100,21 +103,21 @@ class OutputSignalfxBackpressureBehavior(str, Enum):
100
103
  QUEUE = "queue"
101
104
 
102
105
 
103
- class OutputSignalfxCompression(str, Enum):
106
+ class OutputSignalfxCompression(str, Enum, metaclass=utils.OpenEnumMeta):
104
107
  r"""Codec to use to compress the persisted data"""
105
108
 
106
109
  NONE = "none"
107
110
  GZIP = "gzip"
108
111
 
109
112
 
110
- class OutputSignalfxQueueFullBehavior(str, Enum):
113
+ class OutputSignalfxQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
111
114
  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."""
112
115
 
113
116
  BLOCK = "block"
114
117
  DROP = "drop"
115
118
 
116
119
 
117
- class OutputSignalfxMode(str, Enum):
120
+ class OutputSignalfxMode(str, Enum, metaclass=utils.OpenEnumMeta):
118
121
  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."""
119
122
 
120
123
  ERROR = "error"
@@ -221,7 +224,11 @@ class OutputSignalfx(BaseModel):
221
224
  r"""Tags for filtering and grouping in @{product}"""
222
225
 
223
226
  auth_type: Annotated[
224
- Optional[OutputSignalfxAuthenticationMethod], pydantic.Field(alias="authType")
227
+ Annotated[
228
+ Optional[OutputSignalfxAuthenticationMethod],
229
+ PlainValidator(validate_open_enum(False)),
230
+ ],
231
+ pydantic.Field(alias="authType"),
225
232
  ] = OutputSignalfxAuthenticationMethod.MANUAL
226
233
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
227
234
 
@@ -272,7 +279,10 @@ class OutputSignalfx(BaseModel):
272
279
  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."""
273
280
 
274
281
  failed_request_logging_mode: Annotated[
275
- Optional[OutputSignalfxFailedRequestLoggingMode],
282
+ Annotated[
283
+ Optional[OutputSignalfxFailedRequestLoggingMode],
284
+ PlainValidator(validate_open_enum(False)),
285
+ ],
276
286
  pydantic.Field(alias="failedRequestLoggingMode"),
277
287
  ] = OutputSignalfxFailedRequestLoggingMode.NONE
278
288
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -295,11 +305,14 @@ class OutputSignalfx(BaseModel):
295
305
 
296
306
  response_honor_retry_after_header: Annotated[
297
307
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
298
- ] = False
308
+ ] = True
299
309
  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."""
300
310
 
301
311
  on_backpressure: Annotated[
302
- Optional[OutputSignalfxBackpressureBehavior],
312
+ Annotated[
313
+ Optional[OutputSignalfxBackpressureBehavior],
314
+ PlainValidator(validate_open_enum(False)),
315
+ ],
303
316
  pydantic.Field(alias="onBackpressure"),
304
317
  ] = OutputSignalfxBackpressureBehavior.BLOCK
305
318
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -326,19 +339,29 @@ class OutputSignalfx(BaseModel):
326
339
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
327
340
 
328
341
  pq_compress: Annotated[
329
- Optional[OutputSignalfxCompression], pydantic.Field(alias="pqCompress")
342
+ Annotated[
343
+ Optional[OutputSignalfxCompression],
344
+ PlainValidator(validate_open_enum(False)),
345
+ ],
346
+ pydantic.Field(alias="pqCompress"),
330
347
  ] = OutputSignalfxCompression.NONE
331
348
  r"""Codec to use to compress the persisted data"""
332
349
 
333
350
  pq_on_backpressure: Annotated[
334
- Optional[OutputSignalfxQueueFullBehavior],
351
+ Annotated[
352
+ Optional[OutputSignalfxQueueFullBehavior],
353
+ PlainValidator(validate_open_enum(False)),
354
+ ],
335
355
  pydantic.Field(alias="pqOnBackpressure"),
336
356
  ] = OutputSignalfxQueueFullBehavior.BLOCK
337
357
  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."""
338
358
 
339
- pq_mode: Annotated[Optional[OutputSignalfxMode], pydantic.Field(alias="pqMode")] = (
340
- OutputSignalfxMode.ERROR
341
- )
359
+ pq_mode: Annotated[
360
+ Annotated[
361
+ Optional[OutputSignalfxMode], PlainValidator(validate_open_enum(False))
362
+ ],
363
+ pydantic.Field(alias="pqMode"),
364
+ ] = OutputSignalfxMode.ERROR
342
365
  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."""
343
366
 
344
367
  pq_controls: Annotated[