cribl-control-plane 0.3.0b3__py3-none-any.whl → 0.3.0b12__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 (158) hide show
  1. cribl_control_plane/_version.py +4 -4
  2. cribl_control_plane/groups_sdk.py +2 -2
  3. cribl_control_plane/lakedatasets.py +28 -0
  4. cribl_control_plane/models/__init__.py +124 -5
  5. cribl_control_plane/models/cacheconnection.py +20 -0
  6. cribl_control_plane/models/configgroup.py +20 -1
  7. cribl_control_plane/models/configgroupcloud.py +11 -1
  8. cribl_control_plane/models/createconfiggroupbyproductop.py +13 -2
  9. cribl_control_plane/models/cribllakedataset.py +15 -1
  10. cribl_control_plane/models/cribllakedatasetupdate.py +15 -1
  11. cribl_control_plane/models/datasetmetadata.py +11 -1
  12. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +11 -0
  13. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +20 -0
  14. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +20 -0
  15. cribl_control_plane/models/getconfiggroupbyproductandidop.py +11 -0
  16. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +11 -0
  17. cribl_control_plane/models/getsummaryop.py +11 -0
  18. cribl_control_plane/models/groupcreaterequest.py +20 -1
  19. cribl_control_plane/models/hbcriblinfo.py +11 -1
  20. cribl_control_plane/models/healthserverstatus.py +20 -1
  21. cribl_control_plane/models/input.py +15 -15
  22. cribl_control_plane/models/inputappscope.py +76 -17
  23. cribl_control_plane/models/inputazureblob.py +29 -1
  24. cribl_control_plane/models/inputcollection.py +20 -1
  25. cribl_control_plane/models/inputconfluentcloud.py +188 -1
  26. cribl_control_plane/models/inputcribl.py +20 -1
  27. cribl_control_plane/models/inputcriblhttp.py +58 -17
  28. cribl_control_plane/models/inputcribllakehttp.py +58 -17
  29. cribl_control_plane/models/inputcriblmetrics.py +20 -1
  30. cribl_control_plane/models/inputcribltcp.py +58 -17
  31. cribl_control_plane/models/inputcrowdstrike.py +47 -1
  32. cribl_control_plane/models/inputdatadogagent.py +58 -17
  33. cribl_control_plane/models/inputdatagen.py +20 -1
  34. cribl_control_plane/models/inputedgeprometheus.py +138 -37
  35. cribl_control_plane/models/inputelastic.py +108 -27
  36. cribl_control_plane/models/inputeventhub.py +176 -1
  37. cribl_control_plane/models/inputexec.py +29 -1
  38. cribl_control_plane/models/inputfile.py +40 -7
  39. cribl_control_plane/models/inputfirehose.py +58 -17
  40. cribl_control_plane/models/inputgooglepubsub.py +29 -1
  41. cribl_control_plane/models/inputgrafana.py +149 -32
  42. cribl_control_plane/models/inputhttp.py +58 -17
  43. cribl_control_plane/models/inputhttpraw.py +58 -17
  44. cribl_control_plane/models/inputjournalfiles.py +20 -1
  45. cribl_control_plane/models/inputkafka.py +182 -1
  46. cribl_control_plane/models/inputkinesis.py +65 -1
  47. cribl_control_plane/models/inputkubeevents.py +20 -1
  48. cribl_control_plane/models/inputkubelogs.py +29 -1
  49. cribl_control_plane/models/inputkubemetrics.py +29 -1
  50. cribl_control_plane/models/inputloki.py +67 -17
  51. cribl_control_plane/models/inputmetrics.py +58 -17
  52. cribl_control_plane/models/inputmodeldriventelemetry.py +58 -17
  53. cribl_control_plane/models/inputmsk.py +74 -1
  54. cribl_control_plane/models/inputnetflow.py +20 -1
  55. cribl_control_plane/models/inputoffice365mgmt.py +56 -1
  56. cribl_control_plane/models/inputoffice365msgtrace.py +56 -1
  57. cribl_control_plane/models/inputoffice365service.py +56 -1
  58. cribl_control_plane/models/inputopentelemetry.py +84 -16
  59. cribl_control_plane/models/inputprometheus.py +131 -37
  60. cribl_control_plane/models/inputprometheusrw.py +67 -17
  61. cribl_control_plane/models/inputrawudp.py +20 -1
  62. cribl_control_plane/models/inputs3.py +38 -1
  63. cribl_control_plane/models/inputs3inventory.py +47 -1
  64. cribl_control_plane/models/inputsecuritylake.py +47 -1
  65. cribl_control_plane/models/inputsnmp.py +29 -1
  66. cribl_control_plane/models/inputsplunk.py +76 -17
  67. cribl_control_plane/models/inputsplunkhec.py +66 -16
  68. cribl_control_plane/models/inputsplunksearch.py +56 -1
  69. cribl_control_plane/models/inputsqs.py +47 -1
  70. cribl_control_plane/models/inputsyslog.py +113 -32
  71. cribl_control_plane/models/inputsystemmetrics.py +110 -9
  72. cribl_control_plane/models/inputsystemstate.py +29 -1
  73. cribl_control_plane/models/inputtcp.py +77 -17
  74. cribl_control_plane/models/inputtcpjson.py +67 -17
  75. cribl_control_plane/models/inputwef.py +65 -1
  76. cribl_control_plane/models/inputwindowsmetrics.py +101 -9
  77. cribl_control_plane/models/inputwineventlogs.py +52 -1
  78. cribl_control_plane/models/inputwiz.py +38 -1
  79. cribl_control_plane/models/inputwizwebhook.py +58 -17
  80. cribl_control_plane/models/inputzscalerhec.py +66 -16
  81. cribl_control_plane/models/jobinfo.py +10 -4
  82. cribl_control_plane/models/jobstatus.py +34 -3
  83. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  84. cribl_control_plane/models/listconfiggroupbyproductop.py +11 -0
  85. cribl_control_plane/models/masterworkerentry.py +11 -1
  86. cribl_control_plane/models/nodeupgradestatus.py +38 -0
  87. cribl_control_plane/models/output.py +21 -21
  88. cribl_control_plane/models/outputazureblob.py +90 -1
  89. cribl_control_plane/models/outputazuredataexplorer.py +430 -93
  90. cribl_control_plane/models/outputazureeventhub.py +267 -22
  91. cribl_control_plane/models/outputazurelogs.py +105 -22
  92. cribl_control_plane/models/outputchronicle.py +105 -22
  93. cribl_control_plane/models/outputclickhouse.py +141 -22
  94. cribl_control_plane/models/outputcloudwatch.py +96 -22
  95. cribl_control_plane/models/outputconfluentcloud.py +292 -23
  96. cribl_control_plane/models/outputcriblhttp.py +123 -22
  97. cribl_control_plane/models/outputcribllake.py +76 -1
  98. cribl_control_plane/models/outputcribltcp.py +123 -22
  99. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +117 -23
  100. cribl_control_plane/models/outputdatabricks.py +76 -5
  101. cribl_control_plane/models/outputdatadog.py +132 -22
  102. cribl_control_plane/models/outputdataset.py +123 -22
  103. cribl_control_plane/models/outputdiskspool.py +11 -1
  104. cribl_control_plane/models/outputdls3.py +117 -1
  105. cribl_control_plane/models/outputdynatracehttp.py +141 -22
  106. cribl_control_plane/models/outputdynatraceotlp.py +141 -22
  107. cribl_control_plane/models/outputelastic.py +148 -22
  108. cribl_control_plane/models/outputelasticcloud.py +130 -22
  109. cribl_control_plane/models/outputexabeam.py +47 -1
  110. cribl_control_plane/models/outputfilesystem.py +72 -1
  111. cribl_control_plane/models/outputgooglechronicle.py +148 -23
  112. cribl_control_plane/models/outputgooglecloudlogging.py +115 -23
  113. cribl_control_plane/models/outputgooglecloudstorage.py +108 -1
  114. cribl_control_plane/models/outputgooglepubsub.py +96 -22
  115. cribl_control_plane/models/outputgrafanacloud.py +244 -43
  116. cribl_control_plane/models/outputgraphite.py +96 -22
  117. cribl_control_plane/models/outputhoneycomb.py +105 -22
  118. cribl_control_plane/models/outputhumiohec.py +114 -22
  119. cribl_control_plane/models/outputinfluxdb.py +114 -22
  120. cribl_control_plane/models/outputkafka.py +283 -20
  121. cribl_control_plane/models/outputkinesis.py +121 -22
  122. cribl_control_plane/models/outputloki.py +112 -20
  123. cribl_control_plane/models/outputminio.py +117 -1
  124. cribl_control_plane/models/outputmsk.py +175 -20
  125. cribl_control_plane/models/outputnewrelic.py +123 -22
  126. cribl_control_plane/models/outputnewrelicevents.py +115 -23
  127. cribl_control_plane/models/outputopentelemetry.py +159 -22
  128. cribl_control_plane/models/outputprometheus.py +105 -22
  129. cribl_control_plane/models/outputring.py +29 -1
  130. cribl_control_plane/models/outputs3.py +117 -1
  131. cribl_control_plane/models/outputsecuritylake.py +85 -1
  132. cribl_control_plane/models/outputsentinel.py +123 -22
  133. cribl_control_plane/models/outputsentineloneaisiem.py +124 -23
  134. cribl_control_plane/models/outputservicenow.py +150 -22
  135. cribl_control_plane/models/outputsignalfx.py +105 -22
  136. cribl_control_plane/models/outputsns.py +103 -20
  137. cribl_control_plane/models/outputsplunk.py +141 -22
  138. cribl_control_plane/models/outputsplunkhec.py +198 -22
  139. cribl_control_plane/models/outputsplunklb.py +170 -22
  140. cribl_control_plane/models/outputsqs.py +112 -20
  141. cribl_control_plane/models/outputstatsd.py +96 -22
  142. cribl_control_plane/models/outputstatsdext.py +96 -22
  143. cribl_control_plane/models/outputsumologic.py +105 -22
  144. cribl_control_plane/models/outputsyslog.py +238 -99
  145. cribl_control_plane/models/outputtcpjson.py +132 -22
  146. cribl_control_plane/models/outputwavefront.py +105 -22
  147. cribl_control_plane/models/outputwebhook.py +141 -22
  148. cribl_control_plane/models/outputxsiam.py +103 -20
  149. cribl_control_plane/models/resourcepolicy.py +11 -0
  150. cribl_control_plane/models/runnablejobcollection.py +68 -9
  151. cribl_control_plane/models/runnablejobexecutor.py +32 -9
  152. cribl_control_plane/models/runnablejobscheduledsearch.py +23 -9
  153. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +11 -0
  154. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +11 -0
  155. cribl_control_plane/sdk.py +2 -2
  156. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b12.dist-info}/METADATA +25 -7
  157. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b12.dist-info}/RECORD +158 -157
  158. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b12.dist-info}/WHEEL +0 -0
@@ -1,11 +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
+ from cribl_control_plane import models, 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
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import Any, List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -107,6 +108,24 @@ class InputOpenTelemetryPq(BaseModel):
107
108
  Optional[InputOpenTelemetryPqControls], pydantic.Field(alias="pqControls")
108
109
  ] = None
109
110
 
111
+ @field_serializer("mode")
112
+ def serialize_mode(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.InputOpenTelemetryMode(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.InputOpenTelemetryCompression(value)
125
+ except ValueError:
126
+ return value
127
+ return value
128
+
110
129
 
111
130
  class InputOpenTelemetryMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
112
131
  TL_SV1 = "TLSv1"
@@ -124,6 +143,12 @@ class InputOpenTelemetryMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMet
124
143
 
125
144
  class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
126
145
  disabled: NotRequired[bool]
146
+ request_cert: NotRequired[bool]
147
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
148
+ reject_unauthorized: NotRequired[bool]
149
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
150
+ common_name_regex: NotRequired[str]
151
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
127
152
  certificate_name: NotRequired[str]
128
153
  r"""The name of the predefined certificate"""
129
154
  priv_key_path: NotRequired[str]
@@ -134,10 +159,6 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
134
159
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
135
160
  ca_path: NotRequired[str]
136
161
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
137
- request_cert: NotRequired[bool]
138
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
139
- reject_unauthorized: NotRequired[Any]
140
- common_name_regex: NotRequired[Any]
141
162
  min_version: NotRequired[InputOpenTelemetryMinimumTLSVersion]
142
163
  max_version: NotRequired[InputOpenTelemetryMaximumTLSVersion]
143
164
 
@@ -145,6 +166,19 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
145
166
  class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
146
167
  disabled: Optional[bool] = True
147
168
 
169
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
170
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
171
+
172
+ reject_unauthorized: Annotated[
173
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
174
+ ] = True
175
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
176
+
177
+ common_name_regex: Annotated[
178
+ Optional[str], pydantic.Field(alias="commonNameRegex")
179
+ ] = "/.*/"
180
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
181
+
148
182
  certificate_name: Annotated[
149
183
  Optional[str], pydantic.Field(alias="certificateName")
150
184
  ] = None
@@ -162,17 +196,6 @@ class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
162
196
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
163
197
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
164
198
 
165
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
166
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
167
-
168
- reject_unauthorized: Annotated[
169
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
170
- ] = None
171
-
172
- common_name_regex: Annotated[
173
- Optional[Any], pydantic.Field(alias="commonNameRegex")
174
- ] = None
175
-
176
199
  min_version: Annotated[
177
200
  Annotated[
178
201
  Optional[InputOpenTelemetryMinimumTLSVersion],
@@ -189,6 +212,24 @@ class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
189
212
  pydantic.Field(alias="maxVersion"),
190
213
  ] = None
191
214
 
215
+ @field_serializer("min_version")
216
+ def serialize_min_version(self, value):
217
+ if isinstance(value, str):
218
+ try:
219
+ return models.InputOpenTelemetryMinimumTLSVersion(value)
220
+ except ValueError:
221
+ return value
222
+ return value
223
+
224
+ @field_serializer("max_version")
225
+ def serialize_max_version(self, value):
226
+ if isinstance(value, str):
227
+ try:
228
+ return models.InputOpenTelemetryMaximumTLSVersion(value)
229
+ except ValueError:
230
+ return value
231
+ return value
232
+
192
233
 
193
234
  class InputOpenTelemetryProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
194
235
  r"""Select whether to leverage gRPC or HTTP for OpenTelemetry"""
@@ -535,3 +576,30 @@ class InputOpenTelemetry(BaseModel):
535
576
 
536
577
  extract_logs: Annotated[Optional[bool], pydantic.Field(alias="extractLogs")] = False
537
578
  r"""Enable to extract each incoming log record to a separate event"""
579
+
580
+ @field_serializer("protocol")
581
+ def serialize_protocol(self, value):
582
+ if isinstance(value, str):
583
+ try:
584
+ return models.InputOpenTelemetryProtocol(value)
585
+ except ValueError:
586
+ return value
587
+ return value
588
+
589
+ @field_serializer("otlp_version")
590
+ def serialize_otlp_version(self, value):
591
+ if isinstance(value, str):
592
+ try:
593
+ return models.InputOpenTelemetryOTLPVersion(value)
594
+ except ValueError:
595
+ return value
596
+ return value
597
+
598
+ @field_serializer("auth_type")
599
+ def serialize_auth_type(self, value):
600
+ if isinstance(value, str):
601
+ try:
602
+ return models.InputOpenTelemetryAuthenticationType(value)
603
+ except ValueError:
604
+ return value
605
+ return value
@@ -1,11 +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
+ from cribl_control_plane import models, 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
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -106,6 +107,24 @@ class InputPrometheusPq(BaseModel):
106
107
  Optional[InputPrometheusPqControls], pydantic.Field(alias="pqControls")
107
108
  ] = None
108
109
 
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputPrometheusMode(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.InputPrometheusCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
109
128
 
110
129
  class InputPrometheusDiscoveryType(str, Enum, metaclass=utils.OpenEnumMeta):
111
130
  r"""Target discovery mechanism. Use static to manually enter a list of targets."""
@@ -164,6 +183,19 @@ class MetricsProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
164
183
  HTTPS = "https"
165
184
 
166
185
 
186
+ class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
187
+ str, Enum, metaclass=utils.OpenEnumMeta
188
+ ):
189
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
190
+
191
+ # Auto
192
+ AUTO = "auto"
193
+ # Manual
194
+ MANUAL = "manual"
195
+ # Secret Key pair
196
+ SECRET = "secret"
197
+
198
+
167
199
  class InputPrometheusSearchFilterTypedDict(TypedDict):
168
200
  name: str
169
201
  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"""
@@ -179,19 +211,6 @@ class InputPrometheusSearchFilter(BaseModel):
179
211
  r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
180
212
 
181
213
 
182
- class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
183
- str, Enum, metaclass=utils.OpenEnumMeta
184
- ):
185
- r"""AWS authentication method. Choose Auto to use IAM roles."""
186
-
187
- # Auto
188
- AUTO = "auto"
189
- # Manual
190
- MANUAL = "manual"
191
- # Secret Key pair
192
- SECRET = "secret"
193
-
194
-
195
214
  class InputPrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
196
215
  r"""Signature version to use for signing EC2 requests"""
197
216
 
@@ -244,24 +263,27 @@ class InputPrometheusTypedDict(TypedDict):
244
263
  description: NotRequired[str]
245
264
  target_list: NotRequired[List[str]]
246
265
  r"""List of Prometheus targets to pull metrics from. Values can be in URL or host[:port] format. For example: http://localhost:9090/metrics, localhost:9090, or localhost. In cases where just host[:port] is specified, the endpoint will resolve to 'http://host[:port]/metrics'."""
247
- name_list: NotRequired[List[str]]
248
- r"""List of DNS names to resolve"""
249
266
  record_type: NotRequired[InputPrometheusRecordType]
250
267
  r"""DNS Record type to resolve"""
268
+ scrape_port: NotRequired[float]
269
+ r"""The port number in the metrics URL for discovered targets."""
270
+ name_list: NotRequired[List[str]]
271
+ r"""List of DNS names to resolve"""
251
272
  scrape_protocol: NotRequired[MetricsProtocol]
252
273
  r"""Protocol to use when collecting metrics"""
253
274
  scrape_path: NotRequired[str]
254
275
  r"""Path to use when collecting metrics from discovered targets"""
255
- use_public_ip: NotRequired[bool]
256
- r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
257
- scrape_port: NotRequired[float]
258
- r"""The port number in the metrics URL for discovered targets."""
259
- search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
260
- r"""EC2 Instance Search Filter"""
261
276
  aws_authentication_method: NotRequired[
262
277
  InputPrometheusAwsAuthenticationMethodAuthenticationMethod
263
278
  ]
264
279
  r"""AWS authentication method. Choose Auto to use IAM roles."""
280
+ aws_api_key: NotRequired[str]
281
+ aws_secret: NotRequired[str]
282
+ r"""Select or create a stored secret that references your access key and secret key"""
283
+ use_public_ip: NotRequired[bool]
284
+ r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
285
+ search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
286
+ r"""EC2 Instance Search Filter"""
265
287
  aws_secret_key: NotRequired[str]
266
288
  region: NotRequired[str]
267
289
  r"""Region where the EC2 is located"""
@@ -387,9 +409,6 @@ class InputPrometheus(BaseModel):
387
409
  )
388
410
  r"""List of Prometheus targets to pull metrics from. Values can be in URL or host[:port] format. For example: http://localhost:9090/metrics, localhost:9090, or localhost. In cases where just host[:port] is specified, the endpoint will resolve to 'http://host[:port]/metrics'."""
389
411
 
390
- name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
391
- r"""List of DNS names to resolve"""
392
-
393
412
  record_type: Annotated[
394
413
  Annotated[
395
414
  Optional[InputPrometheusRecordType],
@@ -399,6 +418,12 @@ class InputPrometheus(BaseModel):
399
418
  ] = InputPrometheusRecordType.SRV
400
419
  r"""DNS Record type to resolve"""
401
420
 
421
+ scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
422
+ r"""The port number in the metrics URL for discovered targets."""
423
+
424
+ name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
425
+ r"""List of DNS names to resolve"""
426
+
402
427
  scrape_protocol: Annotated[
403
428
  Annotated[Optional[MetricsProtocol], PlainValidator(validate_open_enum(False))],
404
429
  pydantic.Field(alias="scrapeProtocol"),
@@ -410,18 +435,6 @@ class InputPrometheus(BaseModel):
410
435
  )
411
436
  r"""Path to use when collecting metrics from discovered targets"""
412
437
 
413
- use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
414
- r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
415
-
416
- scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
417
- r"""The port number in the metrics URL for discovered targets."""
418
-
419
- search_filter: Annotated[
420
- Optional[List[InputPrometheusSearchFilter]],
421
- pydantic.Field(alias="searchFilter"),
422
- ] = None
423
- r"""EC2 Instance Search Filter"""
424
-
425
438
  aws_authentication_method: Annotated[
426
439
  Annotated[
427
440
  Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
@@ -431,6 +444,20 @@ class InputPrometheus(BaseModel):
431
444
  ] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
432
445
  r"""AWS authentication method. Choose Auto to use IAM roles."""
433
446
 
447
+ aws_api_key: Annotated[Optional[str], pydantic.Field(alias="awsApiKey")] = None
448
+
449
+ aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
450
+ r"""Select or create a stored secret that references your access key and secret key"""
451
+
452
+ use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
453
+ r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
454
+
455
+ search_filter: Annotated[
456
+ Optional[List[InputPrometheusSearchFilter]],
457
+ pydantic.Field(alias="searchFilter"),
458
+ ] = None
459
+ r"""EC2 Instance Search Filter"""
460
+
434
461
  aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
435
462
  None
436
463
  )
@@ -485,3 +512,70 @@ class InputPrometheus(BaseModel):
485
512
  Optional[str], pydantic.Field(alias="credentialsSecret")
486
513
  ] = None
487
514
  r"""Select or create a secret that references your credentials"""
515
+
516
+ @field_serializer("discovery_type")
517
+ def serialize_discovery_type(self, value):
518
+ if isinstance(value, str):
519
+ try:
520
+ return models.InputPrometheusDiscoveryType(value)
521
+ except ValueError:
522
+ return value
523
+ return value
524
+
525
+ @field_serializer("log_level")
526
+ def serialize_log_level(self, value):
527
+ if isinstance(value, str):
528
+ try:
529
+ return models.InputPrometheusLogLevel(value)
530
+ except ValueError:
531
+ return value
532
+ return value
533
+
534
+ @field_serializer("auth_type")
535
+ def serialize_auth_type(self, value):
536
+ if isinstance(value, str):
537
+ try:
538
+ return models.InputPrometheusAuthTypeAuthenticationMethod(value)
539
+ except ValueError:
540
+ return value
541
+ return value
542
+
543
+ @field_serializer("record_type")
544
+ def serialize_record_type(self, value):
545
+ if isinstance(value, str):
546
+ try:
547
+ return models.InputPrometheusRecordType(value)
548
+ except ValueError:
549
+ return value
550
+ return value
551
+
552
+ @field_serializer("scrape_protocol")
553
+ def serialize_scrape_protocol(self, value):
554
+ if isinstance(value, str):
555
+ try:
556
+ return models.MetricsProtocol(value)
557
+ except ValueError:
558
+ return value
559
+ return value
560
+
561
+ @field_serializer("aws_authentication_method")
562
+ def serialize_aws_authentication_method(self, value):
563
+ if isinstance(value, str):
564
+ try:
565
+ return (
566
+ models.InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
567
+ value
568
+ )
569
+ )
570
+ except ValueError:
571
+ return value
572
+ return value
573
+
574
+ @field_serializer("signature_version")
575
+ def serialize_signature_version(self, value):
576
+ if isinstance(value, str):
577
+ try:
578
+ return models.InputPrometheusSignatureVersion(value)
579
+ except ValueError:
580
+ return value
581
+ return value
@@ -1,13 +1,14 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from cribl_control_plane import utils
4
+ from cribl_control_plane import models, 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
9
10
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
11
+ from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
12
13
 
13
14
 
@@ -107,6 +108,24 @@ class InputPrometheusRwPq(BaseModel):
107
108
  Optional[InputPrometheusRwPqControls], pydantic.Field(alias="pqControls")
108
109
  ] = None
109
110
 
111
+ @field_serializer("mode")
112
+ def serialize_mode(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.InputPrometheusRwMode(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.InputPrometheusRwCompression(value)
125
+ except ValueError:
126
+ return value
127
+ return value
128
+
110
129
 
111
130
  class InputPrometheusRwMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
112
131
  TL_SV1 = "TLSv1"
@@ -124,6 +143,12 @@ class InputPrometheusRwMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta
124
143
 
125
144
  class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
126
145
  disabled: NotRequired[bool]
146
+ request_cert: NotRequired[bool]
147
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
148
+ reject_unauthorized: NotRequired[bool]
149
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
150
+ common_name_regex: NotRequired[str]
151
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
127
152
  certificate_name: NotRequired[str]
128
153
  r"""The name of the predefined certificate"""
129
154
  priv_key_path: NotRequired[str]
@@ -134,10 +159,6 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
134
159
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
135
160
  ca_path: NotRequired[str]
136
161
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
137
- request_cert: NotRequired[bool]
138
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
139
- reject_unauthorized: NotRequired[Any]
140
- common_name_regex: NotRequired[Any]
141
162
  min_version: NotRequired[InputPrometheusRwMinimumTLSVersion]
142
163
  max_version: NotRequired[InputPrometheusRwMaximumTLSVersion]
143
164
 
@@ -145,6 +166,19 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
145
166
  class InputPrometheusRwTLSSettingsServerSide(BaseModel):
146
167
  disabled: Optional[bool] = True
147
168
 
169
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
170
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
171
+
172
+ reject_unauthorized: Annotated[
173
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
174
+ ] = True
175
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
176
+
177
+ common_name_regex: Annotated[
178
+ Optional[str], pydantic.Field(alias="commonNameRegex")
179
+ ] = "/.*/"
180
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
181
+
148
182
  certificate_name: Annotated[
149
183
  Optional[str], pydantic.Field(alias="certificateName")
150
184
  ] = None
@@ -162,17 +196,6 @@ class InputPrometheusRwTLSSettingsServerSide(BaseModel):
162
196
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
163
197
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
164
198
 
165
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
166
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
167
-
168
- reject_unauthorized: Annotated[
169
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
170
- ] = None
171
-
172
- common_name_regex: Annotated[
173
- Optional[Any], pydantic.Field(alias="commonNameRegex")
174
- ] = None
175
-
176
199
  min_version: Annotated[
177
200
  Annotated[
178
201
  Optional[InputPrometheusRwMinimumTLSVersion],
@@ -189,6 +212,24 @@ class InputPrometheusRwTLSSettingsServerSide(BaseModel):
189
212
  pydantic.Field(alias="maxVersion"),
190
213
  ] = None
191
214
 
215
+ @field_serializer("min_version")
216
+ def serialize_min_version(self, value):
217
+ if isinstance(value, str):
218
+ try:
219
+ return models.InputPrometheusRwMinimumTLSVersion(value)
220
+ except ValueError:
221
+ return value
222
+ return value
223
+
224
+ @field_serializer("max_version")
225
+ def serialize_max_version(self, value):
226
+ if isinstance(value, str):
227
+ try:
228
+ return models.InputPrometheusRwMaximumTLSVersion(value)
229
+ except ValueError:
230
+ return value
231
+ return value
232
+
192
233
 
193
234
  class InputPrometheusRwAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
194
235
  r"""Remote Write authentication type"""
@@ -485,3 +526,12 @@ class InputPrometheusRw(BaseModel):
485
526
  pydantic.Field(alias="oauthHeaders"),
486
527
  ] = None
487
528
  r"""Additional headers to send in the OAuth login request. @{product} will automatically add the content-type header 'application/x-www-form-urlencoded' when sending this request."""
529
+
530
+ @field_serializer("auth_type")
531
+ def serialize_auth_type(self, value):
532
+ if isinstance(value, str):
533
+ try:
534
+ return models.InputPrometheusRwAuthenticationType(value)
535
+ except ValueError:
536
+ return value
537
+ return value
@@ -1,11 +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
+ from cribl_control_plane import models, 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
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -106,6 +107,24 @@ class InputRawUDPPq(BaseModel):
106
107
  Optional[InputRawUDPPqControls], pydantic.Field(alias="pqControls")
107
108
  ] = None
108
109
 
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputRawUDPMode(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.InputRawUDPCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
109
128
 
110
129
  class InputRawUDPMetadatumTypedDict(TypedDict):
111
130
  name: str
@@ -1,11 +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
+ from cribl_control_plane import models, 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
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -106,6 +107,24 @@ class InputS3Pq(BaseModel):
106
107
  Optional[InputS3PqControls], pydantic.Field(alias="pqControls")
107
108
  ] = None
108
109
 
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputS3Mode(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.InputS3Compression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
109
128
 
110
129
  class InputS3AuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
111
130
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -441,3 +460,21 @@ class InputS3(BaseModel):
441
460
  Optional[str], pydantic.Field(alias="processedTagValue")
442
461
  ] = None
443
462
  r"""The value for the S3 object tag applied after processing. This field accepts an expression for dynamic generation."""
463
+
464
+ @field_serializer("aws_authentication_method")
465
+ def serialize_aws_authentication_method(self, value):
466
+ if isinstance(value, str):
467
+ try:
468
+ return models.InputS3AuthenticationMethod(value)
469
+ except ValueError:
470
+ return value
471
+ return value
472
+
473
+ @field_serializer("signature_version")
474
+ def serialize_signature_version(self, value):
475
+ if isinstance(value, str):
476
+ try:
477
+ return models.InputS3SignatureVersion(value)
478
+ except ValueError:
479
+ return value
480
+ return value