cribl-control-plane 0.0.49__py3-none-any.whl → 0.1.0b1__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 (173) hide show
  1. cribl_control_plane/_version.py +4 -6
  2. cribl_control_plane/errors/healthstatus_error.py +8 -2
  3. cribl_control_plane/health.py +6 -2
  4. cribl_control_plane/models/__init__.py +68 -30
  5. cribl_control_plane/models/cacheconnection.py +10 -2
  6. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  7. cribl_control_plane/models/cloudprovider.py +2 -1
  8. cribl_control_plane/models/configgroup.py +7 -2
  9. cribl_control_plane/models/configgroupcloud.py +6 -2
  10. cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
  11. cribl_control_plane/models/createinputhectokenbyidop.py +6 -5
  12. cribl_control_plane/models/createversionpushop.py +5 -5
  13. cribl_control_plane/models/cribllakedataset.py +8 -2
  14. cribl_control_plane/models/datasetmetadata.py +8 -2
  15. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  16. cribl_control_plane/models/error.py +16 -0
  17. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  18. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  19. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  20. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  21. cribl_control_plane/models/gethealthinfoop.py +17 -0
  22. cribl_control_plane/models/getsummaryop.py +7 -2
  23. cribl_control_plane/models/getversionshowop.py +6 -5
  24. cribl_control_plane/models/gitshowresult.py +19 -0
  25. cribl_control_plane/models/hbcriblinfo.py +24 -3
  26. cribl_control_plane/models/healthstatus.py +7 -4
  27. cribl_control_plane/models/heartbeatmetadata.py +3 -0
  28. cribl_control_plane/models/inputappscope.py +34 -14
  29. cribl_control_plane/models/inputazureblob.py +17 -6
  30. cribl_control_plane/models/inputcollection.py +11 -4
  31. cribl_control_plane/models/inputconfluentcloud.py +41 -32
  32. cribl_control_plane/models/inputcribl.py +11 -4
  33. cribl_control_plane/models/inputcriblhttp.py +23 -8
  34. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  35. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  36. cribl_control_plane/models/inputcribltcp.py +23 -8
  37. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  38. cribl_control_plane/models/inputdatadogagent.py +24 -8
  39. cribl_control_plane/models/inputdatagen.py +11 -4
  40. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  41. cribl_control_plane/models/inputelastic.py +40 -14
  42. cribl_control_plane/models/inputeventhub.py +15 -6
  43. cribl_control_plane/models/inputexec.py +14 -6
  44. cribl_control_plane/models/inputfile.py +15 -6
  45. cribl_control_plane/models/inputfirehose.py +23 -8
  46. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  47. cribl_control_plane/models/inputgrafana.py +67 -24
  48. cribl_control_plane/models/inputhttp.py +23 -8
  49. cribl_control_plane/models/inputhttpraw.py +23 -8
  50. cribl_control_plane/models/inputjournalfiles.py +12 -4
  51. cribl_control_plane/models/inputkafka.py +41 -28
  52. cribl_control_plane/models/inputkinesis.py +38 -14
  53. cribl_control_plane/models/inputkubeevents.py +11 -4
  54. cribl_control_plane/models/inputkubelogs.py +16 -8
  55. cribl_control_plane/models/inputkubemetrics.py +16 -8
  56. cribl_control_plane/models/inputloki.py +29 -10
  57. cribl_control_plane/models/inputmetrics.py +23 -8
  58. cribl_control_plane/models/inputmodeldriventelemetry.py +32 -10
  59. cribl_control_plane/models/inputmsk.py +48 -30
  60. cribl_control_plane/models/inputnetflow.py +11 -4
  61. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  62. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  63. cribl_control_plane/models/inputoffice365service.py +35 -16
  64. cribl_control_plane/models/inputopentelemetry.py +38 -16
  65. cribl_control_plane/models/inputprometheus.py +50 -18
  66. cribl_control_plane/models/inputprometheusrw.py +30 -10
  67. cribl_control_plane/models/inputrawudp.py +11 -4
  68. cribl_control_plane/models/inputs3.py +21 -8
  69. cribl_control_plane/models/inputs3inventory.py +26 -10
  70. cribl_control_plane/models/inputsecuritylake.py +27 -10
  71. cribl_control_plane/models/inputsnmp.py +16 -6
  72. cribl_control_plane/models/inputsplunk.py +33 -12
  73. cribl_control_plane/models/inputsplunkhec.py +29 -10
  74. cribl_control_plane/models/inputsplunksearch.py +33 -14
  75. cribl_control_plane/models/inputsqs.py +27 -10
  76. cribl_control_plane/models/inputsyslog.py +43 -16
  77. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  78. cribl_control_plane/models/inputsystemstate.py +16 -8
  79. cribl_control_plane/models/inputtcp.py +29 -10
  80. cribl_control_plane/models/inputtcpjson.py +29 -10
  81. cribl_control_plane/models/inputwef.py +37 -14
  82. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  83. cribl_control_plane/models/inputwineventlogs.py +20 -10
  84. cribl_control_plane/models/inputwiz.py +21 -8
  85. cribl_control_plane/models/inputwizwebhook.py +23 -8
  86. cribl_control_plane/models/inputzscalerhec.py +29 -10
  87. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  88. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  89. cribl_control_plane/models/masterworkerentry.py +7 -2
  90. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  91. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  92. cribl_control_plane/models/nodeprovidedinfo.py +3 -0
  93. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  94. cribl_control_plane/models/nodeupgradestate.py +2 -1
  95. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  96. cribl_control_plane/models/output.py +3 -0
  97. cribl_control_plane/models/outputazureblob.py +48 -18
  98. cribl_control_plane/models/outputazuredataexplorer.py +73 -28
  99. cribl_control_plane/models/outputazureeventhub.py +40 -18
  100. cribl_control_plane/models/outputazurelogs.py +35 -12
  101. cribl_control_plane/models/outputclickhouse.py +55 -20
  102. cribl_control_plane/models/outputcloudwatch.py +29 -10
  103. cribl_control_plane/models/outputconfluentcloud.py +71 -44
  104. cribl_control_plane/models/outputcriblhttp.py +44 -16
  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 +49 -14
  108. cribl_control_plane/models/outputdatabricks.py +439 -0
  109. cribl_control_plane/models/outputdatadog.py +48 -20
  110. cribl_control_plane/models/outputdataset.py +46 -18
  111. cribl_control_plane/models/outputdiskspool.py +7 -2
  112. cribl_control_plane/models/outputdls3.py +68 -24
  113. cribl_control_plane/models/outputdynatracehttp.py +53 -20
  114. cribl_control_plane/models/outputdynatraceotlp.py +55 -22
  115. cribl_control_plane/models/outputelastic.py +43 -18
  116. cribl_control_plane/models/outputelasticcloud.py +36 -12
  117. cribl_control_plane/models/outputexabeam.py +29 -10
  118. cribl_control_plane/models/outputfilesystem.py +39 -14
  119. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  120. cribl_control_plane/models/outputgooglecloudlogging.py +41 -14
  121. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  122. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  123. cribl_control_plane/models/outputgrafanacloud.py +97 -32
  124. cribl_control_plane/models/outputgraphite.py +31 -14
  125. cribl_control_plane/models/outputhoneycomb.py +35 -12
  126. cribl_control_plane/models/outputhumiohec.py +43 -16
  127. cribl_control_plane/models/outputinfluxdb.py +42 -16
  128. cribl_control_plane/models/outputkafka.py +69 -40
  129. cribl_control_plane/models/outputkinesis.py +40 -16
  130. cribl_control_plane/models/outputloki.py +41 -16
  131. cribl_control_plane/models/outputminio.py +65 -24
  132. cribl_control_plane/models/outputmsk.py +77 -42
  133. cribl_control_plane/models/outputnewrelic.py +43 -18
  134. cribl_control_plane/models/outputnewrelicevents.py +41 -14
  135. cribl_control_plane/models/outputopentelemetry.py +67 -26
  136. cribl_control_plane/models/outputprometheus.py +35 -12
  137. cribl_control_plane/models/outputring.py +19 -8
  138. cribl_control_plane/models/outputs3.py +68 -26
  139. cribl_control_plane/models/outputsecuritylake.py +52 -18
  140. cribl_control_plane/models/outputsentinel.py +45 -18
  141. cribl_control_plane/models/outputsentineloneaisiem.py +50 -18
  142. cribl_control_plane/models/outputservicenow.py +60 -24
  143. cribl_control_plane/models/outputsignalfx.py +37 -14
  144. cribl_control_plane/models/outputsns.py +36 -14
  145. cribl_control_plane/models/outputsplunk.py +60 -24
  146. cribl_control_plane/models/outputsplunkhec.py +35 -12
  147. cribl_control_plane/models/outputsplunklb.py +77 -30
  148. cribl_control_plane/models/outputsqs.py +41 -16
  149. cribl_control_plane/models/outputstatsd.py +30 -14
  150. cribl_control_plane/models/outputstatsdext.py +29 -12
  151. cribl_control_plane/models/outputsumologic.py +35 -12
  152. cribl_control_plane/models/outputsyslog.py +58 -24
  153. cribl_control_plane/models/outputtcpjson.py +52 -20
  154. cribl_control_plane/models/outputwavefront.py +35 -12
  155. cribl_control_plane/models/outputwebhook.py +58 -22
  156. cribl_control_plane/models/outputxsiam.py +35 -14
  157. cribl_control_plane/models/productscore.py +2 -1
  158. cribl_control_plane/models/rbacresource.py +2 -1
  159. cribl_control_plane/models/resourcepolicy.py +4 -2
  160. cribl_control_plane/models/routeconf.py +3 -4
  161. cribl_control_plane/models/runnablejobcollection.py +30 -13
  162. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  163. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  164. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  165. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  166. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
  167. cribl_control_plane/models/workertypes.py +2 -1
  168. {cribl_control_plane-0.0.49.dist-info → cribl_control_plane-0.1.0b1.dist-info}/METADATA +1 -1
  169. cribl_control_plane-0.1.0b1.dist-info/RECORD +327 -0
  170. cribl_control_plane/models/appmode.py +0 -13
  171. cribl_control_plane/models/routecloneconf.py +0 -13
  172. cribl_control_plane-0.0.49.dist-info/RECORD +0 -325
  173. {cribl_control_plane-0.0.49.dist-info → cribl_control_plane-0.1.0b1.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,14 +26,14 @@ class InputCrowdstrikeConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputCrowdstrikeMode(str, Enum):
29
+ class InputCrowdstrikeMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputCrowdstrikeCompression(str, Enum):
36
+ class InputCrowdstrikeCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputCrowdstrikePqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputCrowdstrikePq(BaseModel):
67
- mode: Optional[InputCrowdstrikeMode] = InputCrowdstrikeMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputCrowdstrikeMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputCrowdstrikeMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,9 @@ class InputCrowdstrikePq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputCrowdstrikeCompression] = InputCrowdstrikeCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputCrowdstrikeCompression], PlainValidator(validate_open_enum(False))
98
+ ] = InputCrowdstrikeCompression.NONE
92
99
  r"""Codec to use to compress the persisted data"""
93
100
 
94
101
  pq_controls: Annotated[
@@ -96,7 +103,7 @@ class InputCrowdstrikePq(BaseModel):
96
103
  ] = None
97
104
 
98
105
 
99
- class InputCrowdstrikeAuthenticationMethod(str, Enum):
106
+ class InputCrowdstrikeAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
100
107
  r"""AWS authentication method. Choose Auto to use IAM roles."""
101
108
 
102
109
  AUTO = "auto"
@@ -104,7 +111,7 @@ class InputCrowdstrikeAuthenticationMethod(str, Enum):
104
111
  SECRET = "secret"
105
112
 
106
113
 
107
- class InputCrowdstrikeSignatureVersion(str, Enum):
114
+ class InputCrowdstrikeSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
108
115
  r"""Signature version to use for signing S3 requests"""
109
116
 
110
117
  V2 = "v2"
@@ -157,7 +164,7 @@ class InputCrowdstrikeCheckpointing(BaseModel):
157
164
  r"""The number of times to retry processing when a processing error occurs. If Skip file on error is enabled, this setting is ignored."""
158
165
 
159
166
 
160
- class InputCrowdstrikeTagAfterProcessing(str, Enum):
167
+ class InputCrowdstrikeTagAfterProcessing(str, Enum, metaclass=utils.OpenEnumMeta):
161
168
  FALSE = "false"
162
169
  TRUE = "true"
163
170
 
@@ -286,7 +293,10 @@ class InputCrowdstrike(BaseModel):
286
293
  r"""SQS queue owner's AWS account ID. Leave empty if SQS queue is in same AWS account."""
287
294
 
288
295
  aws_authentication_method: Annotated[
289
- Optional[InputCrowdstrikeAuthenticationMethod],
296
+ Annotated[
297
+ Optional[InputCrowdstrikeAuthenticationMethod],
298
+ PlainValidator(validate_open_enum(False)),
299
+ ],
290
300
  pydantic.Field(alias="awsAuthenticationMethod"),
291
301
  ] = InputCrowdstrikeAuthenticationMethod.AUTO
292
302
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -302,7 +312,10 @@ class InputCrowdstrike(BaseModel):
302
312
  r"""S3 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to S3-compatible endpoint."""
303
313
 
304
314
  signature_version: Annotated[
305
- Optional[InputCrowdstrikeSignatureVersion],
315
+ Annotated[
316
+ Optional[InputCrowdstrikeSignatureVersion],
317
+ PlainValidator(validate_open_enum(False)),
318
+ ],
306
319
  pydantic.Field(alias="signatureVersion"),
307
320
  ] = InputCrowdstrikeSignatureVersion.V4
308
321
  r"""Signature version to use for signing S3 requests"""
@@ -399,7 +412,10 @@ class InputCrowdstrike(BaseModel):
399
412
  r"""Select or create a stored secret that references your access key and secret key"""
400
413
 
401
414
  tag_after_processing: Annotated[
402
- Optional[InputCrowdstrikeTagAfterProcessing],
415
+ Annotated[
416
+ Optional[InputCrowdstrikeTagAfterProcessing],
417
+ PlainValidator(validate_open_enum(False)),
418
+ ],
403
419
  pydantic.Field(alias="tagAfterProcessing"),
404
420
  ] = None
405
421
 
@@ -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 Any, List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,14 +26,14 @@ class InputDatadogAgentConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputDatadogAgentMode(str, Enum):
29
+ class InputDatadogAgentMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputDatadogAgentCompression(str, Enum):
36
+ class InputDatadogAgentCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputDatadogAgentPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputDatadogAgentPq(BaseModel):
67
- mode: Optional[InputDatadogAgentMode] = InputDatadogAgentMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputDatadogAgentMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputDatadogAgentMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,10 @@ class InputDatadogAgentPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputDatadogAgentCompression] = InputDatadogAgentCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputDatadogAgentCompression],
98
+ PlainValidator(validate_open_enum(False)),
99
+ ] = InputDatadogAgentCompression.NONE
92
100
  r"""Codec to use to compress the persisted data"""
93
101
 
94
102
  pq_controls: Annotated[
@@ -96,14 +104,14 @@ class InputDatadogAgentPq(BaseModel):
96
104
  ] = None
97
105
 
98
106
 
99
- class InputDatadogAgentMinimumTLSVersion(str, Enum):
107
+ class InputDatadogAgentMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
100
108
  TL_SV1 = "TLSv1"
101
109
  TL_SV1_1 = "TLSv1.1"
102
110
  TL_SV1_2 = "TLSv1.2"
103
111
  TL_SV1_3 = "TLSv1.3"
104
112
 
105
113
 
106
- class InputDatadogAgentMaximumTLSVersion(str, Enum):
114
+ class InputDatadogAgentMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
107
115
  TL_SV1 = "TLSv1"
108
116
  TL_SV1_1 = "TLSv1.1"
109
117
  TL_SV1_2 = "TLSv1.2"
@@ -162,11 +170,19 @@ class InputDatadogAgentTLSSettingsServerSide(BaseModel):
162
170
  ] = None
163
171
 
164
172
  min_version: Annotated[
165
- Optional[InputDatadogAgentMinimumTLSVersion], pydantic.Field(alias="minVersion")
173
+ Annotated[
174
+ Optional[InputDatadogAgentMinimumTLSVersion],
175
+ PlainValidator(validate_open_enum(False)),
176
+ ],
177
+ pydantic.Field(alias="minVersion"),
166
178
  ] = None
167
179
 
168
180
  max_version: Annotated[
169
- Optional[InputDatadogAgentMaximumTLSVersion], pydantic.Field(alias="maxVersion")
181
+ Annotated[
182
+ Optional[InputDatadogAgentMaximumTLSVersion],
183
+ PlainValidator(validate_open_enum(False)),
184
+ ],
185
+ pydantic.Field(alias="maxVersion"),
170
186
  ] = None
171
187
 
172
188
 
@@ -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,14 +26,14 @@ class InputDatagenConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputDatagenMode(str, Enum):
29
+ class InputDatagenMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputDatagenCompression(str, Enum):
36
+ class InputDatagenCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputDatagenPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputDatagenPq(BaseModel):
67
- mode: Optional[InputDatagenMode] = InputDatagenMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputDatagenMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputDatagenMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,9 @@ class InputDatagenPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputDatagenCompression] = InputDatagenCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputDatagenCompression], PlainValidator(validate_open_enum(False))
98
+ ] = InputDatagenCompression.NONE
92
99
  r"""Codec to use to compress the persisted data"""
93
100
 
94
101
  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
 
@@ -23,14 +26,14 @@ class InputEdgePrometheusConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputEdgePrometheusMode(str, Enum):
29
+ class InputEdgePrometheusMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputEdgePrometheusPqCompression(str, Enum):
36
+ class InputEdgePrometheusPqCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputEdgePrometheusPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputEdgePrometheusPq(BaseModel):
67
- mode: Optional[InputEdgePrometheusMode] = InputEdgePrometheusMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputEdgePrometheusMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputEdgePrometheusMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,9 +93,10 @@ class InputEdgePrometheusPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputEdgePrometheusPqCompression] = (
92
- InputEdgePrometheusPqCompression.NONE
93
- )
96
+ compress: Annotated[
97
+ Optional[InputEdgePrometheusPqCompression],
98
+ PlainValidator(validate_open_enum(False)),
99
+ ] = InputEdgePrometheusPqCompression.NONE
94
100
  r"""Codec to use to compress the persisted data"""
95
101
 
96
102
  pq_controls: Annotated[
@@ -98,7 +104,7 @@ class InputEdgePrometheusPq(BaseModel):
98
104
  ] = None
99
105
 
100
106
 
101
- class InputEdgePrometheusDiscoveryType(str, Enum):
107
+ class InputEdgePrometheusDiscoveryType(str, Enum, metaclass=utils.OpenEnumMeta):
102
108
  r"""Target discovery mechanism. Use static to manually enter a list of targets."""
103
109
 
104
110
  STATIC = "static"
@@ -108,7 +114,9 @@ class InputEdgePrometheusDiscoveryType(str, Enum):
108
114
  K8S_PODS = "k8s-pods"
109
115
 
110
116
 
111
- class InputEdgePrometheusPersistenceCompression(str, Enum):
117
+ class InputEdgePrometheusPersistenceCompression(
118
+ str, Enum, metaclass=utils.OpenEnumMeta
119
+ ):
112
120
  r"""Data compression format. Default is gzip."""
113
121
 
114
122
  NONE = "none"
@@ -141,9 +149,10 @@ class InputEdgePrometheusDiskSpooling(BaseModel):
141
149
  max_data_time: Annotated[Optional[str], pydantic.Field(alias="maxDataTime")] = "24h"
142
150
  r"""Maximum amount of time to retain data before older buckets are deleted. Examples: 2h, 4d. Default is 24h."""
143
151
 
144
- compress: Optional[InputEdgePrometheusPersistenceCompression] = (
145
- InputEdgePrometheusPersistenceCompression.GZIP
146
- )
152
+ compress: Annotated[
153
+ Optional[InputEdgePrometheusPersistenceCompression],
154
+ PlainValidator(validate_open_enum(False)),
155
+ ] = InputEdgePrometheusPersistenceCompression.GZIP
147
156
  r"""Data compression format. Default is gzip."""
148
157
 
149
158
 
@@ -160,7 +169,9 @@ class InputEdgePrometheusMetadatum(BaseModel):
160
169
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
161
170
 
162
171
 
163
- class InputEdgePrometheusAuthTypeAuthenticationMethod(str, Enum):
172
+ class InputEdgePrometheusAuthTypeAuthenticationMethod(
173
+ str, Enum, metaclass=utils.OpenEnumMeta
174
+ ):
164
175
  r"""Enter credentials directly, or select a stored secret"""
165
176
 
166
177
  MANUAL = "manual"
@@ -168,7 +179,7 @@ class InputEdgePrometheusAuthTypeAuthenticationMethod(str, Enum):
168
179
  KUBERNETES = "kubernetes"
169
180
 
170
181
 
171
- class TargetProtocol(str, Enum):
182
+ class TargetProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
172
183
  r"""Protocol to use when collecting metrics"""
173
184
 
174
185
  HTTP = "http"
@@ -190,7 +201,9 @@ class Target(BaseModel):
190
201
  host: str
191
202
  r"""Name of host from which to pull metrics."""
192
203
 
193
- protocol: Optional[TargetProtocol] = TargetProtocol.HTTP
204
+ protocol: Annotated[
205
+ Optional[TargetProtocol], PlainValidator(validate_open_enum(False))
206
+ ] = TargetProtocol.HTTP
194
207
  r"""Protocol to use when collecting metrics"""
195
208
 
196
209
  port: Optional[float] = 9090
@@ -200,7 +213,7 @@ class Target(BaseModel):
200
213
  r"""Path to use when collecting metrics from discovered targets"""
201
214
 
202
215
 
203
- class InputEdgePrometheusRecordType(str, Enum):
216
+ class InputEdgePrometheusRecordType(str, Enum, metaclass=utils.OpenEnumMeta):
204
217
  r"""DNS Record type to resolve"""
205
218
 
206
219
  SRV = "SRV"
@@ -208,7 +221,7 @@ class InputEdgePrometheusRecordType(str, Enum):
208
221
  AAAA = "AAAA"
209
222
 
210
223
 
211
- class ScrapeProtocolProtocol(str, Enum):
224
+ class ScrapeProtocolProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
212
225
  r"""Protocol to use when collecting metrics"""
213
226
 
214
227
  HTTP = "http"
@@ -230,7 +243,9 @@ class InputEdgePrometheusSearchFilter(BaseModel):
230
243
  r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
231
244
 
232
245
 
233
- class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(str, Enum):
246
+ class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
247
+ str, Enum, metaclass=utils.OpenEnumMeta
248
+ ):
234
249
  r"""AWS authentication method. Choose Auto to use IAM roles."""
235
250
 
236
251
  AUTO = "auto"
@@ -238,7 +253,7 @@ class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(str, Enum):
238
253
  SECRET = "secret"
239
254
 
240
255
 
241
- class InputEdgePrometheusSignatureVersion(str, Enum):
256
+ class InputEdgePrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
242
257
  r"""Signature version to use for signing EC2 requests"""
243
258
 
244
259
  V2 = "v2"
@@ -386,7 +401,10 @@ class InputEdgePrometheus(BaseModel):
386
401
  r"""Other dimensions to include in events"""
387
402
 
388
403
  discovery_type: Annotated[
389
- Optional[InputEdgePrometheusDiscoveryType],
404
+ Annotated[
405
+ Optional[InputEdgePrometheusDiscoveryType],
406
+ PlainValidator(validate_open_enum(False)),
407
+ ],
390
408
  pydantic.Field(alias="discoveryType"),
391
409
  ] = InputEdgePrometheusDiscoveryType.STATIC
392
410
  r"""Target discovery mechanism. Use static to manually enter a list of targets."""
@@ -403,7 +421,10 @@ class InputEdgePrometheus(BaseModel):
403
421
  r"""Fields to add to events from this input"""
404
422
 
405
423
  auth_type: Annotated[
406
- Optional[InputEdgePrometheusAuthTypeAuthenticationMethod],
424
+ Annotated[
425
+ Optional[InputEdgePrometheusAuthTypeAuthenticationMethod],
426
+ PlainValidator(validate_open_enum(False)),
427
+ ],
407
428
  pydantic.Field(alias="authType"),
408
429
  ] = InputEdgePrometheusAuthTypeAuthenticationMethod.MANUAL
409
430
  r"""Enter credentials directly, or select a stored secret"""
@@ -416,12 +437,19 @@ class InputEdgePrometheus(BaseModel):
416
437
  r"""List of DNS names to resolve"""
417
438
 
418
439
  record_type: Annotated[
419
- Optional[InputEdgePrometheusRecordType], pydantic.Field(alias="recordType")
440
+ Annotated[
441
+ Optional[InputEdgePrometheusRecordType],
442
+ PlainValidator(validate_open_enum(False)),
443
+ ],
444
+ pydantic.Field(alias="recordType"),
420
445
  ] = InputEdgePrometheusRecordType.SRV
421
446
  r"""DNS Record type to resolve"""
422
447
 
423
448
  scrape_protocol: Annotated[
424
- Optional[ScrapeProtocolProtocol], pydantic.Field(alias="scrapeProtocol")
449
+ Annotated[
450
+ Optional[ScrapeProtocolProtocol], PlainValidator(validate_open_enum(False))
451
+ ],
452
+ pydantic.Field(alias="scrapeProtocol"),
425
453
  ] = ScrapeProtocolProtocol.HTTP
426
454
  r"""Protocol to use when collecting metrics"""
427
455
 
@@ -443,7 +471,10 @@ class InputEdgePrometheus(BaseModel):
443
471
  r"""EC2 Instance Search Filter"""
444
472
 
445
473
  aws_authentication_method: Annotated[
446
- Optional[InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod],
474
+ Annotated[
475
+ Optional[InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod],
476
+ PlainValidator(validate_open_enum(False)),
477
+ ],
447
478
  pydantic.Field(alias="awsAuthenticationMethod"),
448
479
  ] = InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
449
480
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -459,7 +490,10 @@ class InputEdgePrometheus(BaseModel):
459
490
  r"""EC2 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to EC2-compatible endpoint."""
460
491
 
461
492
  signature_version: Annotated[
462
- Optional[InputEdgePrometheusSignatureVersion],
493
+ Annotated[
494
+ Optional[InputEdgePrometheusSignatureVersion],
495
+ PlainValidator(validate_open_enum(False)),
496
+ ],
463
497
  pydantic.Field(alias="signatureVersion"),
464
498
  ] = InputEdgePrometheusSignatureVersion.V4
465
499
  r"""Signature version to use for signing EC2 requests"""
@@ -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 Any, List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,14 +26,14 @@ class InputElasticConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputElasticMode(str, Enum):
29
+ class InputElasticMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputElasticCompression(str, Enum):
36
+ class InputElasticCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputElasticPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputElasticPq(BaseModel):
67
- mode: Optional[InputElasticMode] = InputElasticMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputElasticMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputElasticMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,9 @@ class InputElasticPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputElasticCompression] = InputElasticCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputElasticCompression], PlainValidator(validate_open_enum(False))
98
+ ] = InputElasticCompression.NONE
92
99
  r"""Codec to use to compress the persisted data"""
93
100
 
94
101
  pq_controls: Annotated[
@@ -96,14 +103,14 @@ class InputElasticPq(BaseModel):
96
103
  ] = None
97
104
 
98
105
 
99
- class InputElasticMinimumTLSVersion(str, Enum):
106
+ class InputElasticMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
100
107
  TL_SV1 = "TLSv1"
101
108
  TL_SV1_1 = "TLSv1.1"
102
109
  TL_SV1_2 = "TLSv1.2"
103
110
  TL_SV1_3 = "TLSv1.3"
104
111
 
105
112
 
106
- class InputElasticMaximumTLSVersion(str, Enum):
113
+ class InputElasticMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
107
114
  TL_SV1 = "TLSv1"
108
115
  TL_SV1_1 = "TLSv1.1"
109
116
  TL_SV1_2 = "TLSv1.2"
@@ -162,22 +169,30 @@ class InputElasticTLSSettingsServerSide(BaseModel):
162
169
  ] = None
163
170
 
164
171
  min_version: Annotated[
165
- Optional[InputElasticMinimumTLSVersion], pydantic.Field(alias="minVersion")
172
+ Annotated[
173
+ Optional[InputElasticMinimumTLSVersion],
174
+ PlainValidator(validate_open_enum(False)),
175
+ ],
176
+ pydantic.Field(alias="minVersion"),
166
177
  ] = None
167
178
 
168
179
  max_version: Annotated[
169
- Optional[InputElasticMaximumTLSVersion], pydantic.Field(alias="maxVersion")
180
+ Annotated[
181
+ Optional[InputElasticMaximumTLSVersion],
182
+ PlainValidator(validate_open_enum(False)),
183
+ ],
184
+ pydantic.Field(alias="maxVersion"),
170
185
  ] = None
171
186
 
172
187
 
173
- class InputElasticAuthenticationType(str, Enum):
188
+ class InputElasticAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
174
189
  NONE = "none"
175
190
  BASIC = "basic"
176
191
  CREDENTIALS_SECRET = "credentialsSecret"
177
192
  AUTH_TOKENS = "authTokens"
178
193
 
179
194
 
180
- class InputElasticAPIVersion(str, Enum):
195
+ class InputElasticAPIVersion(str, Enum, metaclass=utils.OpenEnumMeta):
181
196
  r"""The API version to use for communicating with the server"""
182
197
 
183
198
  SIX_DOT_8_DOT_4 = "6.8.4"
@@ -209,7 +224,7 @@ class InputElasticMetadatum(BaseModel):
209
224
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
210
225
 
211
226
 
212
- class InputElasticAuthenticationMethod(str, Enum):
227
+ class InputElasticAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
213
228
  r"""Enter credentials directly, or select a stored secret"""
214
229
 
215
230
  NONE = "none"
@@ -253,7 +268,11 @@ class InputElasticProxyMode(BaseModel):
253
268
  r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
254
269
 
255
270
  auth_type: Annotated[
256
- Optional[InputElasticAuthenticationMethod], pydantic.Field(alias="authType")
271
+ Annotated[
272
+ Optional[InputElasticAuthenticationMethod],
273
+ PlainValidator(validate_open_enum(False)),
274
+ ],
275
+ pydantic.Field(alias="authType"),
257
276
  ] = InputElasticAuthenticationMethod.NONE
258
277
  r"""Enter credentials directly, or select a stored secret"""
259
278
 
@@ -421,11 +440,18 @@ class InputElastic(BaseModel):
421
440
  r"""Absolute path on which to listen for Elasticsearch API requests. Defaults to /. _bulk will be appended automatically. For example, /myPath becomes /myPath/_bulk. Requests can then be made to either /myPath/_bulk or /myPath/<myIndexName>/_bulk. Other entries are faked as success."""
422
441
 
423
442
  auth_type: Annotated[
424
- Optional[InputElasticAuthenticationType], pydantic.Field(alias="authType")
443
+ Annotated[
444
+ Optional[InputElasticAuthenticationType],
445
+ PlainValidator(validate_open_enum(False)),
446
+ ],
447
+ pydantic.Field(alias="authType"),
425
448
  ] = InputElasticAuthenticationType.NONE
426
449
 
427
450
  api_version: Annotated[
428
- Optional[InputElasticAPIVersion], pydantic.Field(alias="apiVersion")
451
+ Annotated[
452
+ Optional[InputElasticAPIVersion], PlainValidator(validate_open_enum(False))
453
+ ],
454
+ pydantic.Field(alias="apiVersion"),
429
455
  ] = InputElasticAPIVersion.EIGHT_DOT_3_DOT_2
430
456
  r"""The API version to use for communicating with the server"""
431
457