cribl-control-plane 0.2.1rc7__py3-none-any.whl → 0.3.0a1__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 (179) hide show
  1. cribl_control_plane/_version.py +4 -4
  2. cribl_control_plane/errors/__init__.py +5 -8
  3. cribl_control_plane/errors/{healthserverstatus_error.py → healthstatus_error.py} +9 -10
  4. cribl_control_plane/groups_sdk.py +28 -52
  5. cribl_control_plane/health.py +16 -22
  6. cribl_control_plane/models/__init__.py +54 -217
  7. cribl_control_plane/models/appmode.py +14 -0
  8. cribl_control_plane/models/authtoken.py +1 -5
  9. cribl_control_plane/models/cacheconnection.py +0 -20
  10. cribl_control_plane/models/configgroup.py +7 -55
  11. cribl_control_plane/models/configgroupcloud.py +1 -11
  12. cribl_control_plane/models/createconfiggroupbyproductop.py +5 -17
  13. cribl_control_plane/models/createroutesappendbyidop.py +2 -2
  14. cribl_control_plane/models/createversionundoop.py +3 -3
  15. cribl_control_plane/models/cribllakedataset.py +1 -11
  16. cribl_control_plane/models/cribllakedatasetupdate.py +1 -11
  17. cribl_control_plane/models/datasetmetadata.py +1 -11
  18. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +0 -11
  19. cribl_control_plane/models/deleteoutputpqbyidop.py +2 -2
  20. cribl_control_plane/models/distributedsummary.py +0 -6
  21. cribl_control_plane/models/error.py +16 -0
  22. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +0 -20
  23. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +0 -20
  24. cribl_control_plane/models/getconfiggroupbyproductandidop.py +0 -11
  25. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +0 -11
  26. cribl_control_plane/models/gethealthinfoop.py +17 -0
  27. cribl_control_plane/models/getsummaryop.py +0 -11
  28. cribl_control_plane/models/hbcriblinfo.py +3 -24
  29. cribl_control_plane/models/{healthserverstatus.py → healthstatus.py} +8 -27
  30. cribl_control_plane/models/heartbeatmetadata.py +0 -3
  31. cribl_control_plane/models/input.py +78 -80
  32. cribl_control_plane/models/inputappscope.py +17 -80
  33. cribl_control_plane/models/inputazureblob.py +1 -33
  34. cribl_control_plane/models/inputcollection.py +1 -24
  35. cribl_control_plane/models/inputconfluentcloud.py +18 -195
  36. cribl_control_plane/models/inputcribl.py +1 -24
  37. cribl_control_plane/models/inputcriblhttp.py +17 -62
  38. cribl_control_plane/models/inputcribllakehttp.py +17 -62
  39. cribl_control_plane/models/inputcriblmetrics.py +1 -24
  40. cribl_control_plane/models/inputcribltcp.py +17 -62
  41. cribl_control_plane/models/inputcrowdstrike.py +1 -54
  42. cribl_control_plane/models/inputdatadogagent.py +17 -62
  43. cribl_control_plane/models/inputdatagen.py +1 -24
  44. cribl_control_plane/models/inputedgeprometheus.py +34 -147
  45. cribl_control_plane/models/inputelastic.py +27 -119
  46. cribl_control_plane/models/inputeventhub.py +1 -182
  47. cribl_control_plane/models/inputexec.py +1 -33
  48. cribl_control_plane/models/inputfile.py +3 -42
  49. cribl_control_plane/models/inputfirehose.py +17 -62
  50. cribl_control_plane/models/inputgooglepubsub.py +1 -36
  51. cribl_control_plane/models/inputgrafana.py +32 -157
  52. cribl_control_plane/models/inputhttp.py +17 -62
  53. cribl_control_plane/models/inputhttpraw.py +17 -62
  54. cribl_control_plane/models/inputjournalfiles.py +1 -24
  55. cribl_control_plane/models/inputkafka.py +17 -189
  56. cribl_control_plane/models/inputkinesis.py +1 -80
  57. cribl_control_plane/models/inputkubeevents.py +1 -24
  58. cribl_control_plane/models/inputkubelogs.py +1 -33
  59. cribl_control_plane/models/inputkubemetrics.py +1 -33
  60. cribl_control_plane/models/inputloki.py +17 -71
  61. cribl_control_plane/models/inputmetrics.py +17 -62
  62. cribl_control_plane/models/inputmodeldriventelemetry.py +17 -62
  63. cribl_control_plane/models/inputmsk.py +18 -81
  64. cribl_control_plane/models/inputnetflow.py +1 -24
  65. cribl_control_plane/models/inputoffice365mgmt.py +1 -67
  66. cribl_control_plane/models/inputoffice365msgtrace.py +1 -67
  67. cribl_control_plane/models/inputoffice365service.py +1 -67
  68. cribl_control_plane/models/inputopentelemetry.py +16 -92
  69. cribl_control_plane/models/inputprometheus.py +34 -138
  70. cribl_control_plane/models/inputprometheusrw.py +17 -71
  71. cribl_control_plane/models/inputrawudp.py +1 -24
  72. cribl_control_plane/models/inputs3.py +1 -45
  73. cribl_control_plane/models/inputs3inventory.py +1 -54
  74. cribl_control_plane/models/inputsecuritylake.py +1 -54
  75. cribl_control_plane/models/inputsnmp.py +1 -40
  76. cribl_control_plane/models/inputsplunk.py +17 -85
  77. cribl_control_plane/models/inputsplunkhec.py +16 -70
  78. cribl_control_plane/models/inputsplunksearch.py +1 -63
  79. cribl_control_plane/models/inputsqs.py +1 -56
  80. cribl_control_plane/models/inputsyslog.py +32 -121
  81. cribl_control_plane/models/inputsystemmetrics.py +9 -142
  82. cribl_control_plane/models/inputsystemstate.py +1 -33
  83. cribl_control_plane/models/inputtcp.py +17 -81
  84. cribl_control_plane/models/inputtcpjson.py +17 -71
  85. cribl_control_plane/models/inputwef.py +1 -71
  86. cribl_control_plane/models/inputwindowsmetrics.py +9 -129
  87. cribl_control_plane/models/inputwineventlogs.py +1 -60
  88. cribl_control_plane/models/inputwiz.py +1 -45
  89. cribl_control_plane/models/inputwizwebhook.py +17 -62
  90. cribl_control_plane/models/inputzscalerhec.py +16 -70
  91. cribl_control_plane/models/jobinfo.py +1 -4
  92. cribl_control_plane/models/jobstatus.py +3 -34
  93. cribl_control_plane/models/listconfiggroupbyproductop.py +0 -11
  94. cribl_control_plane/models/logininfo.py +3 -3
  95. cribl_control_plane/models/masterworkerentry.py +1 -11
  96. cribl_control_plane/models/nodeprovidedinfo.py +1 -11
  97. cribl_control_plane/models/nodeupgradestatus.py +0 -38
  98. cribl_control_plane/models/output.py +88 -93
  99. cribl_control_plane/models/outputazureblob.py +1 -110
  100. cribl_control_plane/models/outputazuredataexplorer.py +87 -452
  101. cribl_control_plane/models/outputazureeventhub.py +19 -281
  102. cribl_control_plane/models/outputazurelogs.py +19 -115
  103. cribl_control_plane/models/outputchronicle.py +19 -115
  104. cribl_control_plane/models/outputclickhouse.py +19 -155
  105. cribl_control_plane/models/outputcloudwatch.py +19 -106
  106. cribl_control_plane/models/outputconfluentcloud.py +38 -311
  107. cribl_control_plane/models/outputcriblhttp.py +19 -135
  108. cribl_control_plane/models/outputcribllake.py +1 -97
  109. cribl_control_plane/models/outputcribltcp.py +19 -132
  110. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +20 -129
  111. cribl_control_plane/models/outputdatadog.py +19 -159
  112. cribl_control_plane/models/outputdataset.py +19 -143
  113. cribl_control_plane/models/outputdiskspool.py +1 -11
  114. cribl_control_plane/models/outputdls3.py +1 -152
  115. cribl_control_plane/models/outputdynatracehttp.py +19 -160
  116. cribl_control_plane/models/outputdynatraceotlp.py +19 -160
  117. cribl_control_plane/models/outputelastic.py +19 -163
  118. cribl_control_plane/models/outputelasticcloud.py +19 -140
  119. cribl_control_plane/models/outputexabeam.py +1 -61
  120. cribl_control_plane/models/outputfilesystem.py +1 -87
  121. cribl_control_plane/models/outputgooglechronicle.py +20 -166
  122. cribl_control_plane/models/outputgooglecloudlogging.py +20 -131
  123. cribl_control_plane/models/outputgooglecloudstorage.py +1 -136
  124. cribl_control_plane/models/outputgooglepubsub.py +19 -106
  125. cribl_control_plane/models/outputgrafanacloud.py +37 -288
  126. cribl_control_plane/models/outputgraphite.py +19 -105
  127. cribl_control_plane/models/outputhoneycomb.py +19 -115
  128. cribl_control_plane/models/outputhumiohec.py +19 -126
  129. cribl_control_plane/models/outputinfluxdb.py +19 -130
  130. cribl_control_plane/models/outputkafka.py +34 -302
  131. cribl_control_plane/models/outputkinesis.py +19 -133
  132. cribl_control_plane/models/outputloki.py +17 -129
  133. cribl_control_plane/models/outputminio.py +1 -145
  134. cribl_control_plane/models/outputmsk.py +34 -193
  135. cribl_control_plane/models/outputnewrelic.py +19 -136
  136. cribl_control_plane/models/outputnewrelicevents.py +20 -128
  137. cribl_control_plane/models/outputopentelemetry.py +19 -178
  138. cribl_control_plane/models/outputprometheus.py +19 -115
  139. cribl_control_plane/models/outputring.py +1 -31
  140. cribl_control_plane/models/outputs3.py +1 -152
  141. cribl_control_plane/models/outputsecuritylake.py +1 -114
  142. cribl_control_plane/models/outputsentinel.py +19 -135
  143. cribl_control_plane/models/outputsentineloneaisiem.py +20 -134
  144. cribl_control_plane/models/outputservicenow.py +19 -168
  145. cribl_control_plane/models/outputsignalfx.py +19 -115
  146. cribl_control_plane/models/outputsns.py +17 -113
  147. cribl_control_plane/models/outputsplunk.py +19 -153
  148. cribl_control_plane/models/outputsplunkhec.py +19 -208
  149. cribl_control_plane/models/outputsplunklb.py +19 -182
  150. cribl_control_plane/models/outputsqs.py +17 -124
  151. cribl_control_plane/models/outputstatsd.py +19 -105
  152. cribl_control_plane/models/outputstatsdext.py +19 -105
  153. cribl_control_plane/models/outputsumologic.py +19 -117
  154. cribl_control_plane/models/outputsyslog.py +96 -259
  155. cribl_control_plane/models/outputtcpjson.py +19 -141
  156. cribl_control_plane/models/outputwavefront.py +19 -115
  157. cribl_control_plane/models/outputwebhook.py +19 -161
  158. cribl_control_plane/models/outputxsiam.py +17 -113
  159. cribl_control_plane/models/packinfo.py +5 -8
  160. cribl_control_plane/models/packinstallinfo.py +5 -8
  161. cribl_control_plane/models/resourcepolicy.py +0 -11
  162. cribl_control_plane/models/{uploadpackresponse.py → routecloneconf.py} +4 -4
  163. cribl_control_plane/models/routeconf.py +4 -3
  164. cribl_control_plane/models/runnablejobcollection.py +9 -72
  165. cribl_control_plane/models/runnablejobexecutor.py +9 -32
  166. cribl_control_plane/models/runnablejobscheduledsearch.py +9 -23
  167. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +0 -11
  168. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +0 -11
  169. cribl_control_plane/packs.py +7 -202
  170. cribl_control_plane/routes_sdk.py +6 -6
  171. cribl_control_plane/tokens.py +15 -23
  172. {cribl_control_plane-0.2.1rc7.dist-info → cribl_control_plane-0.3.0a1.dist-info}/METADATA +9 -50
  173. cribl_control_plane-0.3.0a1.dist-info/RECORD +330 -0
  174. cribl_control_plane/models/groupcreaterequest.py +0 -171
  175. cribl_control_plane/models/outpostnodeinfo.py +0 -16
  176. cribl_control_plane/models/outputdatabricks.py +0 -482
  177. cribl_control_plane/models/updatepacksop.py +0 -25
  178. cribl_control_plane-0.2.1rc7.dist-info/RECORD +0 -331
  179. {cribl_control_plane-0.2.1rc7.dist-info → cribl_control_plane-0.3.0a1.dist-info}/WHEEL +0 -0
@@ -1,12 +1,11 @@
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 models, utils
4
+ from cribl_control_plane import utils
5
5
  from cribl_control_plane.types import BaseModel
6
6
  from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
- from pydantic import field_serializer
10
9
  from pydantic.functional_validators import PlainValidator
11
10
  from typing import List, Optional
12
11
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -30,18 +29,14 @@ class InputEdgePrometheusConnection(BaseModel):
30
29
  class InputEdgePrometheusMode(str, Enum, metaclass=utils.OpenEnumMeta):
31
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."""
32
31
 
33
- # Smart
34
32
  SMART = "smart"
35
- # Always On
36
33
  ALWAYS = "always"
37
34
 
38
35
 
39
36
  class InputEdgePrometheusPqCompression(str, Enum, metaclass=utils.OpenEnumMeta):
40
37
  r"""Codec to use to compress the persisted data"""
41
38
 
42
- # None
43
39
  NONE = "none"
44
- # Gzip
45
40
  GZIP = "gzip"
46
41
 
47
42
 
@@ -108,37 +103,14 @@ class InputEdgePrometheusPq(BaseModel):
108
103
  Optional[InputEdgePrometheusPqControls], pydantic.Field(alias="pqControls")
109
104
  ] = None
110
105
 
111
- @field_serializer("mode")
112
- def serialize_mode(self, value):
113
- if isinstance(value, str):
114
- try:
115
- return models.InputEdgePrometheusMode(value)
116
- except ValueError:
117
- return value
118
- return value
119
-
120
- @field_serializer("compress")
121
- def serialize_compress(self, value):
122
- if isinstance(value, str):
123
- try:
124
- return models.InputEdgePrometheusPqCompression(value)
125
- except ValueError:
126
- return value
127
- return value
128
-
129
106
 
130
107
  class InputEdgePrometheusDiscoveryType(str, Enum, metaclass=utils.OpenEnumMeta):
131
108
  r"""Target discovery mechanism. Use static to manually enter a list of targets."""
132
109
 
133
- # Static
134
110
  STATIC = "static"
135
- # DNS
136
111
  DNS = "dns"
137
- # AWS EC2
138
112
  EC2 = "ec2"
139
- # Kubernetes Node
140
113
  K8S_NODE = "k8s-node"
141
- # Kubernetes Pods
142
114
  K8S_PODS = "k8s-pods"
143
115
 
144
116
 
@@ -183,15 +155,6 @@ class InputEdgePrometheusDiskSpooling(BaseModel):
183
155
  ] = InputEdgePrometheusPersistenceCompression.GZIP
184
156
  r"""Data compression format. Default is gzip."""
185
157
 
186
- @field_serializer("compress")
187
- def serialize_compress(self, value):
188
- if isinstance(value, str):
189
- try:
190
- return models.InputEdgePrometheusPersistenceCompression(value)
191
- except ValueError:
192
- return value
193
- return value
194
-
195
158
 
196
159
  class InputEdgePrometheusMetadatumTypedDict(TypedDict):
197
160
  name: str
@@ -249,15 +212,6 @@ class Target(BaseModel):
249
212
  path: Optional[str] = "/metrics"
250
213
  r"""Path to use when collecting metrics from discovered targets"""
251
214
 
252
- @field_serializer("protocol")
253
- def serialize_protocol(self, value):
254
- if isinstance(value, str):
255
- try:
256
- return models.TargetProtocol(value)
257
- except ValueError:
258
- return value
259
- return value
260
-
261
215
 
262
216
  class InputEdgePrometheusRecordType(str, Enum, metaclass=utils.OpenEnumMeta):
263
217
  r"""DNS Record type to resolve"""
@@ -274,19 +228,6 @@ class ScrapeProtocolProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
274
228
  HTTPS = "https"
275
229
 
276
230
 
277
- class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
278
- str, Enum, metaclass=utils.OpenEnumMeta
279
- ):
280
- r"""AWS authentication method. Choose Auto to use IAM roles."""
281
-
282
- # Auto
283
- AUTO = "auto"
284
- # Manual
285
- MANUAL = "manual"
286
- # Secret Key pair
287
- SECRET = "secret"
288
-
289
-
290
231
  class InputEdgePrometheusSearchFilterTypedDict(TypedDict):
291
232
  name: str
292
233
  r"""Search filter attribute name, see: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html for more information. Attributes can be manually entered if not present in the drop down list"""
@@ -302,6 +243,16 @@ class InputEdgePrometheusSearchFilter(BaseModel):
302
243
  r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
303
244
 
304
245
 
246
+ class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
247
+ str, Enum, metaclass=utils.OpenEnumMeta
248
+ ):
249
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
250
+
251
+ AUTO = "auto"
252
+ MANUAL = "manual"
253
+ SECRET = "secret"
254
+
255
+
305
256
  class InputEdgePrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
306
257
  r"""Signature version to use for signing EC2 requests"""
307
258
 
@@ -357,27 +308,24 @@ class InputEdgePrometheusTypedDict(TypedDict):
357
308
  r"""Enter credentials directly, or select a stored secret"""
358
309
  description: NotRequired[str]
359
310
  targets: NotRequired[List[TargetTypedDict]]
360
- record_type: NotRequired[InputEdgePrometheusRecordType]
361
- r"""DNS Record type to resolve"""
362
- scrape_port: NotRequired[float]
363
- r"""The port number in the metrics URL for discovered targets."""
364
311
  name_list: NotRequired[List[str]]
365
312
  r"""List of DNS names to resolve"""
313
+ record_type: NotRequired[InputEdgePrometheusRecordType]
314
+ r"""DNS Record type to resolve"""
366
315
  scrape_protocol: NotRequired[ScrapeProtocolProtocol]
367
316
  r"""Protocol to use when collecting metrics"""
368
317
  scrape_path: NotRequired[str]
369
318
  r"""Path to use when collecting metrics from discovered targets"""
370
- aws_authentication_method: NotRequired[
371
- InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod
372
- ]
373
- r"""AWS authentication method. Choose Auto to use IAM roles."""
374
- aws_api_key: NotRequired[str]
375
- aws_secret: NotRequired[str]
376
- r"""Select or create a stored secret that references your access key and secret key"""
377
319
  use_public_ip: NotRequired[bool]
378
320
  r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
321
+ scrape_port: NotRequired[float]
322
+ r"""The port number in the metrics URL for discovered targets."""
379
323
  search_filter: NotRequired[List[InputEdgePrometheusSearchFilterTypedDict]]
380
324
  r"""EC2 Instance Search Filter"""
325
+ aws_authentication_method: NotRequired[
326
+ InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod
327
+ ]
328
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
381
329
  aws_secret_key: NotRequired[str]
382
330
  region: NotRequired[str]
383
331
  r"""Region where the EC2 is located"""
@@ -485,6 +433,9 @@ class InputEdgePrometheus(BaseModel):
485
433
 
486
434
  targets: Optional[List[Target]] = None
487
435
 
436
+ name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
437
+ r"""List of DNS names to resolve"""
438
+
488
439
  record_type: Annotated[
489
440
  Annotated[
490
441
  Optional[InputEdgePrometheusRecordType],
@@ -494,12 +445,6 @@ class InputEdgePrometheus(BaseModel):
494
445
  ] = InputEdgePrometheusRecordType.SRV
495
446
  r"""DNS Record type to resolve"""
496
447
 
497
- scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
498
- r"""The port number in the metrics URL for discovered targets."""
499
-
500
- name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
501
- r"""List of DNS names to resolve"""
502
-
503
448
  scrape_protocol: Annotated[
504
449
  Annotated[
505
450
  Optional[ScrapeProtocolProtocol], PlainValidator(validate_open_enum(False))
@@ -513,29 +458,27 @@ class InputEdgePrometheus(BaseModel):
513
458
  )
514
459
  r"""Path to use when collecting metrics from discovered targets"""
515
460
 
516
- aws_authentication_method: Annotated[
517
- Annotated[
518
- Optional[InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod],
519
- PlainValidator(validate_open_enum(False)),
520
- ],
521
- pydantic.Field(alias="awsAuthenticationMethod"),
522
- ] = InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
523
- r"""AWS authentication method. Choose Auto to use IAM roles."""
524
-
525
- aws_api_key: Annotated[Optional[str], pydantic.Field(alias="awsApiKey")] = None
526
-
527
- aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
528
- r"""Select or create a stored secret that references your access key and secret key"""
529
-
530
461
  use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
531
462
  r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
532
463
 
464
+ scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
465
+ r"""The port number in the metrics URL for discovered targets."""
466
+
533
467
  search_filter: Annotated[
534
468
  Optional[List[InputEdgePrometheusSearchFilter]],
535
469
  pydantic.Field(alias="searchFilter"),
536
470
  ] = None
537
471
  r"""EC2 Instance Search Filter"""
538
472
 
473
+ aws_authentication_method: Annotated[
474
+ Annotated[
475
+ Optional[InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod],
476
+ PlainValidator(validate_open_enum(False)),
477
+ ],
478
+ pydantic.Field(alias="awsAuthenticationMethod"),
479
+ ] = InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
480
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
481
+
539
482
  aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
540
483
  None
541
484
  )
@@ -619,59 +562,3 @@ class InputEdgePrometheus(BaseModel):
619
562
  Optional[str], pydantic.Field(alias="credentialsSecret")
620
563
  ] = None
621
564
  r"""Select or create a secret that references your credentials"""
622
-
623
- @field_serializer("discovery_type")
624
- def serialize_discovery_type(self, value):
625
- if isinstance(value, str):
626
- try:
627
- return models.InputEdgePrometheusDiscoveryType(value)
628
- except ValueError:
629
- return value
630
- return value
631
-
632
- @field_serializer("auth_type")
633
- def serialize_auth_type(self, value):
634
- if isinstance(value, str):
635
- try:
636
- return models.InputEdgePrometheusAuthTypeAuthenticationMethod(value)
637
- except ValueError:
638
- return value
639
- return value
640
-
641
- @field_serializer("record_type")
642
- def serialize_record_type(self, value):
643
- if isinstance(value, str):
644
- try:
645
- return models.InputEdgePrometheusRecordType(value)
646
- except ValueError:
647
- return value
648
- return value
649
-
650
- @field_serializer("scrape_protocol")
651
- def serialize_scrape_protocol(self, value):
652
- if isinstance(value, str):
653
- try:
654
- return models.ScrapeProtocolProtocol(value)
655
- except ValueError:
656
- return value
657
- return value
658
-
659
- @field_serializer("aws_authentication_method")
660
- def serialize_aws_authentication_method(self, value):
661
- if isinstance(value, str):
662
- try:
663
- return models.InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
664
- value
665
- )
666
- except ValueError:
667
- return value
668
- return value
669
-
670
- @field_serializer("signature_version")
671
- def serialize_signature_version(self, value):
672
- if isinstance(value, str):
673
- try:
674
- return models.InputEdgePrometheusSignatureVersion(value)
675
- except ValueError:
676
- return value
677
- return value
@@ -1,14 +1,13 @@
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 models, utils
4
+ from cribl_control_plane import utils
5
5
  from cribl_control_plane.types import BaseModel
6
6
  from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
- from pydantic import field_serializer
10
9
  from pydantic.functional_validators import PlainValidator
11
- from typing import List, Optional
10
+ from typing import Any, List, Optional
12
11
  from typing_extensions import Annotated, NotRequired, TypedDict
13
12
 
14
13
 
@@ -30,18 +29,14 @@ class InputElasticConnection(BaseModel):
30
29
  class InputElasticMode(str, Enum, metaclass=utils.OpenEnumMeta):
31
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."""
32
31
 
33
- # Smart
34
32
  SMART = "smart"
35
- # Always On
36
33
  ALWAYS = "always"
37
34
 
38
35
 
39
36
  class InputElasticCompression(str, Enum, metaclass=utils.OpenEnumMeta):
40
37
  r"""Codec to use to compress the persisted data"""
41
38
 
42
- # None
43
39
  NONE = "none"
44
- # Gzip
45
40
  GZIP = "gzip"
46
41
 
47
42
 
@@ -107,24 +102,6 @@ class InputElasticPq(BaseModel):
107
102
  Optional[InputElasticPqControls], pydantic.Field(alias="pqControls")
108
103
  ] = None
109
104
 
110
- @field_serializer("mode")
111
- def serialize_mode(self, value):
112
- if isinstance(value, str):
113
- try:
114
- return models.InputElasticMode(value)
115
- except ValueError:
116
- return value
117
- return value
118
-
119
- @field_serializer("compress")
120
- def serialize_compress(self, value):
121
- if isinstance(value, str):
122
- try:
123
- return models.InputElasticCompression(value)
124
- except ValueError:
125
- return value
126
- return value
127
-
128
105
 
129
106
  class InputElasticMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
130
107
  TL_SV1 = "TLSv1"
@@ -142,12 +119,6 @@ class InputElasticMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
142
119
 
143
120
  class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
144
121
  disabled: NotRequired[bool]
145
- request_cert: NotRequired[bool]
146
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
147
- reject_unauthorized: NotRequired[bool]
148
- r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
149
- common_name_regex: NotRequired[str]
150
- r"""Regex matching allowable common names in peer certificates' subject attribute"""
151
122
  certificate_name: NotRequired[str]
152
123
  r"""The name of the predefined certificate"""
153
124
  priv_key_path: NotRequired[str]
@@ -158,6 +129,10 @@ class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
158
129
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
159
130
  ca_path: NotRequired[str]
160
131
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
132
+ request_cert: NotRequired[bool]
133
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
134
+ reject_unauthorized: NotRequired[Any]
135
+ common_name_regex: NotRequired[Any]
161
136
  min_version: NotRequired[InputElasticMinimumTLSVersion]
162
137
  max_version: NotRequired[InputElasticMaximumTLSVersion]
163
138
 
@@ -165,19 +140,6 @@ class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
165
140
  class InputElasticTLSSettingsServerSide(BaseModel):
166
141
  disabled: Optional[bool] = True
167
142
 
168
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
169
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
170
-
171
- reject_unauthorized: Annotated[
172
- Optional[bool], pydantic.Field(alias="rejectUnauthorized")
173
- ] = True
174
- r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
175
-
176
- common_name_regex: Annotated[
177
- Optional[str], pydantic.Field(alias="commonNameRegex")
178
- ] = "/.*/"
179
- r"""Regex matching allowable common names in peer certificates' subject attribute"""
180
-
181
143
  certificate_name: Annotated[
182
144
  Optional[str], pydantic.Field(alias="certificateName")
183
145
  ] = None
@@ -195,6 +157,17 @@ class InputElasticTLSSettingsServerSide(BaseModel):
195
157
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
196
158
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
197
159
 
160
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
161
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
162
+
163
+ reject_unauthorized: Annotated[
164
+ Optional[Any], pydantic.Field(alias="rejectUnauthorized")
165
+ ] = None
166
+
167
+ common_name_regex: Annotated[
168
+ Optional[Any], pydantic.Field(alias="commonNameRegex")
169
+ ] = None
170
+
198
171
  min_version: Annotated[
199
172
  Annotated[
200
173
  Optional[InputElasticMinimumTLSVersion],
@@ -211,44 +184,19 @@ class InputElasticTLSSettingsServerSide(BaseModel):
211
184
  pydantic.Field(alias="maxVersion"),
212
185
  ] = None
213
186
 
214
- @field_serializer("min_version")
215
- def serialize_min_version(self, value):
216
- if isinstance(value, str):
217
- try:
218
- return models.InputElasticMinimumTLSVersion(value)
219
- except ValueError:
220
- return value
221
- return value
222
-
223
- @field_serializer("max_version")
224
- def serialize_max_version(self, value):
225
- if isinstance(value, str):
226
- try:
227
- return models.InputElasticMaximumTLSVersion(value)
228
- except ValueError:
229
- return value
230
- return value
231
-
232
187
 
233
188
  class InputElasticAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
234
- # None
235
189
  NONE = "none"
236
- # Basic
237
190
  BASIC = "basic"
238
- # Basic (credentials secret)
239
191
  CREDENTIALS_SECRET = "credentialsSecret"
240
- # Auth Tokens
241
192
  AUTH_TOKENS = "authTokens"
242
193
 
243
194
 
244
195
  class InputElasticAPIVersion(str, Enum, metaclass=utils.OpenEnumMeta):
245
196
  r"""The API version to use for communicating with the server"""
246
197
 
247
- # 6.8.4
248
198
  SIX_DOT_8_DOT_4 = "6.8.4"
249
- # 8.3.2
250
199
  EIGHT_DOT_3_DOT_2 = "8.3.2"
251
- # Custom
252
200
  CUSTOM = "custom"
253
201
 
254
202
 
@@ -287,12 +235,6 @@ class InputElasticAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
287
235
  class InputElasticProxyModeTypedDict(TypedDict):
288
236
  enabled: NotRequired[bool]
289
237
  r"""Enable proxying of non-bulk API requests to an external Elastic server. Enable this only if you understand the implications. See [Cribl Docs](https://docs.cribl.io/stream/sources-elastic/#proxy-mode) for more details."""
290
- auth_type: NotRequired[InputElasticAuthenticationMethod]
291
- r"""Enter credentials directly, or select a stored secret"""
292
- username: NotRequired[str]
293
- password: NotRequired[str]
294
- credentials_secret: NotRequired[str]
295
- r"""Select or create a secret that references your credentials"""
296
238
  url: NotRequired[str]
297
239
  r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
298
240
  reject_unauthorized: NotRequired[bool]
@@ -301,30 +243,14 @@ class InputElasticProxyModeTypedDict(TypedDict):
301
243
  r"""List of headers to remove from the request to proxy"""
302
244
  timeout_sec: NotRequired[float]
303
245
  r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
246
+ auth_type: NotRequired[InputElasticAuthenticationMethod]
247
+ r"""Enter credentials directly, or select a stored secret"""
304
248
 
305
249
 
306
250
  class InputElasticProxyMode(BaseModel):
307
251
  enabled: Optional[bool] = False
308
252
  r"""Enable proxying of non-bulk API requests to an external Elastic server. Enable this only if you understand the implications. See [Cribl Docs](https://docs.cribl.io/stream/sources-elastic/#proxy-mode) for more details."""
309
253
 
310
- auth_type: Annotated[
311
- Annotated[
312
- Optional[InputElasticAuthenticationMethod],
313
- PlainValidator(validate_open_enum(False)),
314
- ],
315
- pydantic.Field(alias="authType"),
316
- ] = InputElasticAuthenticationMethod.NONE
317
- r"""Enter credentials directly, or select a stored secret"""
318
-
319
- username: Optional[str] = None
320
-
321
- password: Optional[str] = None
322
-
323
- credentials_secret: Annotated[
324
- Optional[str], pydantic.Field(alias="credentialsSecret")
325
- ] = None
326
- r"""Select or create a secret that references your credentials"""
327
-
328
254
  url: Optional[str] = None
329
255
  r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
330
256
 
@@ -341,14 +267,14 @@ class InputElasticProxyMode(BaseModel):
341
267
  timeout_sec: Annotated[Optional[float], pydantic.Field(alias="timeoutSec")] = 60
342
268
  r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
343
269
 
344
- @field_serializer("auth_type")
345
- def serialize_auth_type(self, value):
346
- if isinstance(value, str):
347
- try:
348
- return models.InputElasticAuthenticationMethod(value)
349
- except ValueError:
350
- return value
351
- return value
270
+ auth_type: Annotated[
271
+ Annotated[
272
+ Optional[InputElasticAuthenticationMethod],
273
+ PlainValidator(validate_open_enum(False)),
274
+ ],
275
+ pydantic.Field(alias="authType"),
276
+ ] = InputElasticAuthenticationMethod.NONE
277
+ r"""Enter credentials directly, or select a stored secret"""
352
278
 
353
279
 
354
280
  class InputElasticTypedDict(TypedDict):
@@ -579,21 +505,3 @@ class InputElastic(BaseModel):
579
505
  "}"
580
506
  )
581
507
  r"""Custom version information to respond to requests"""
582
-
583
- @field_serializer("auth_type")
584
- def serialize_auth_type(self, value):
585
- if isinstance(value, str):
586
- try:
587
- return models.InputElasticAuthenticationType(value)
588
- except ValueError:
589
- return value
590
- return value
591
-
592
- @field_serializer("api_version")
593
- def serialize_api_version(self, value):
594
- if isinstance(value, str):
595
- try:
596
- return models.InputElasticAPIVersion(value)
597
- except ValueError:
598
- return value
599
- return value