cribl-control-plane 0.3.0b2__py3-none-any.whl → 0.3.0b4__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 (113) hide show
  1. cribl_control_plane/_version.py +3 -3
  2. cribl_control_plane/errors/__init__.py +8 -5
  3. cribl_control_plane/errors/{healthstatus_error.py → healthserverstatus_error.py} +10 -9
  4. cribl_control_plane/groups_sdk.py +48 -24
  5. cribl_control_plane/health.py +22 -16
  6. cribl_control_plane/models/__init__.py +152 -29
  7. cribl_control_plane/models/authtoken.py +4 -7
  8. cribl_control_plane/models/configgroup.py +8 -7
  9. cribl_control_plane/models/createconfiggroupbyproductop.py +6 -5
  10. cribl_control_plane/models/createroutesappendbyidop.py +2 -2
  11. cribl_control_plane/models/deleteoutputpqbyidop.py +2 -2
  12. cribl_control_plane/models/groupcreaterequest.py +152 -0
  13. cribl_control_plane/models/{healthstatus.py → healthserverstatus.py} +7 -7
  14. cribl_control_plane/models/input.py +15 -15
  15. cribl_control_plane/models/inputappscope.py +20 -16
  16. cribl_control_plane/models/inputconfluentcloud.py +110 -0
  17. cribl_control_plane/models/inputcriblhttp.py +20 -16
  18. cribl_control_plane/models/inputcribllakehttp.py +20 -16
  19. cribl_control_plane/models/inputcribltcp.py +20 -16
  20. cribl_control_plane/models/inputdatadogagent.py +20 -16
  21. cribl_control_plane/models/inputedgeprometheus.py +44 -36
  22. cribl_control_plane/models/inputelastic.py +44 -27
  23. cribl_control_plane/models/inputeventhub.py +118 -0
  24. cribl_control_plane/models/inputfile.py +7 -2
  25. cribl_control_plane/models/inputfirehose.py +20 -16
  26. cribl_control_plane/models/inputgrafana.py +39 -31
  27. cribl_control_plane/models/inputhttp.py +20 -16
  28. cribl_control_plane/models/inputhttpraw.py +20 -16
  29. cribl_control_plane/models/inputkafka.py +108 -0
  30. cribl_control_plane/models/inputloki.py +20 -16
  31. cribl_control_plane/models/inputmetrics.py +20 -16
  32. cribl_control_plane/models/inputmodeldriventelemetry.py +20 -16
  33. cribl_control_plane/models/inputopentelemetry.py +19 -15
  34. cribl_control_plane/models/inputprometheus.py +44 -36
  35. cribl_control_plane/models/inputprometheusrw.py +20 -16
  36. cribl_control_plane/models/inputsplunk.py +20 -16
  37. cribl_control_plane/models/inputsplunkhec.py +19 -15
  38. cribl_control_plane/models/inputsyslog.py +39 -31
  39. cribl_control_plane/models/inputsystemmetrics.py +20 -10
  40. cribl_control_plane/models/inputtcp.py +30 -16
  41. cribl_control_plane/models/inputtcpjson.py +20 -16
  42. cribl_control_plane/models/inputwindowsmetrics.py +20 -10
  43. cribl_control_plane/models/inputwineventlogs.py +14 -0
  44. cribl_control_plane/models/inputwizwebhook.py +20 -16
  45. cribl_control_plane/models/inputzscalerhec.py +19 -15
  46. cribl_control_plane/models/logininfo.py +3 -3
  47. cribl_control_plane/models/output.py +21 -21
  48. cribl_control_plane/models/outputazureblob.py +7 -0
  49. cribl_control_plane/models/outputazuredataexplorer.py +283 -93
  50. cribl_control_plane/models/outputazureeventhub.py +169 -21
  51. cribl_control_plane/models/outputazurelogs.py +49 -21
  52. cribl_control_plane/models/outputchronicle.py +49 -21
  53. cribl_control_plane/models/outputclickhouse.py +49 -21
  54. cribl_control_plane/models/outputcloudwatch.py +49 -21
  55. cribl_control_plane/models/outputconfluentcloud.py +167 -22
  56. cribl_control_plane/models/outputcriblhttp.py +49 -21
  57. cribl_control_plane/models/outputcribltcp.py +49 -21
  58. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -22
  59. cribl_control_plane/models/outputdatabricks.py +7 -0
  60. cribl_control_plane/models/outputdatadog.py +49 -21
  61. cribl_control_plane/models/outputdataset.py +49 -21
  62. cribl_control_plane/models/outputdls3.py +7 -0
  63. cribl_control_plane/models/outputdynatracehttp.py +49 -21
  64. cribl_control_plane/models/outputdynatraceotlp.py +49 -21
  65. cribl_control_plane/models/outputelastic.py +74 -21
  66. cribl_control_plane/models/outputelasticcloud.py +74 -21
  67. cribl_control_plane/models/outputfilesystem.py +7 -0
  68. cribl_control_plane/models/outputgooglechronicle.py +65 -22
  69. cribl_control_plane/models/outputgooglecloudlogging.py +50 -22
  70. cribl_control_plane/models/outputgooglecloudstorage.py +7 -0
  71. cribl_control_plane/models/outputgooglepubsub.py +49 -21
  72. cribl_control_plane/models/outputgrafanacloud.py +98 -42
  73. cribl_control_plane/models/outputgraphite.py +49 -21
  74. cribl_control_plane/models/outputhoneycomb.py +49 -21
  75. cribl_control_plane/models/outputhumiohec.py +49 -21
  76. cribl_control_plane/models/outputinfluxdb.py +49 -21
  77. cribl_control_plane/models/outputkafka.py +162 -19
  78. cribl_control_plane/models/outputkinesis.py +56 -21
  79. cribl_control_plane/models/outputloki.py +47 -19
  80. cribl_control_plane/models/outputminio.py +7 -0
  81. cribl_control_plane/models/outputmsk.py +54 -19
  82. cribl_control_plane/models/outputnewrelic.py +49 -21
  83. cribl_control_plane/models/outputnewrelicevents.py +50 -22
  84. cribl_control_plane/models/outputopentelemetry.py +49 -21
  85. cribl_control_plane/models/outputprometheus.py +49 -21
  86. cribl_control_plane/models/outputs3.py +7 -0
  87. cribl_control_plane/models/outputsentinel.py +49 -21
  88. cribl_control_plane/models/outputsentineloneaisiem.py +50 -22
  89. cribl_control_plane/models/outputservicenow.py +49 -21
  90. cribl_control_plane/models/outputsignalfx.py +49 -21
  91. cribl_control_plane/models/outputsns.py +47 -19
  92. cribl_control_plane/models/outputsplunk.py +49 -21
  93. cribl_control_plane/models/outputsplunkhec.py +124 -21
  94. cribl_control_plane/models/outputsplunklb.py +49 -21
  95. cribl_control_plane/models/outputsqs.py +47 -19
  96. cribl_control_plane/models/outputstatsd.py +49 -21
  97. cribl_control_plane/models/outputstatsdext.py +49 -21
  98. cribl_control_plane/models/outputsumologic.py +49 -21
  99. cribl_control_plane/models/outputsyslog.py +129 -99
  100. cribl_control_plane/models/outputtcpjson.py +49 -21
  101. cribl_control_plane/models/outputwavefront.py +49 -21
  102. cribl_control_plane/models/outputwebhook.py +49 -21
  103. cribl_control_plane/models/outputxsiam.py +47 -19
  104. cribl_control_plane/models/runnablejobcollection.py +12 -8
  105. cribl_control_plane/models/runnablejobexecutor.py +12 -8
  106. cribl_control_plane/models/runnablejobscheduledsearch.py +12 -8
  107. cribl_control_plane/routes_sdk.py +6 -6
  108. cribl_control_plane/tokens.py +23 -15
  109. {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/METADATA +4 -4
  110. {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/RECORD +111 -112
  111. cribl_control_plane/models/error.py +0 -16
  112. cribl_control_plane/models/gethealthinfoop.py +0 -17
  113. {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/WHEEL +0 -0
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
9
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -123,6 +123,12 @@ class InputLokiMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
125
125
  disabled: NotRequired[bool]
126
+ request_cert: NotRequired[bool]
127
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
128
+ reject_unauthorized: NotRequired[bool]
129
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
130
+ common_name_regex: NotRequired[str]
131
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
126
132
  certificate_name: NotRequired[str]
127
133
  r"""The name of the predefined certificate"""
128
134
  priv_key_path: NotRequired[str]
@@ -133,10 +139,6 @@ class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
133
139
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
134
140
  ca_path: NotRequired[str]
135
141
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
136
- request_cert: NotRequired[bool]
137
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
138
- reject_unauthorized: NotRequired[Any]
139
- common_name_regex: NotRequired[Any]
140
142
  min_version: NotRequired[InputLokiMinimumTLSVersion]
141
143
  max_version: NotRequired[InputLokiMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputLokiTLSSettingsServerSide(BaseModel):
145
147
  disabled: Optional[bool] = True
146
148
 
149
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
150
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
151
+
152
+ reject_unauthorized: Annotated[
153
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
154
+ ] = True
155
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
156
+
157
+ common_name_regex: Annotated[
158
+ Optional[str], pydantic.Field(alias="commonNameRegex")
159
+ ] = "/.*/"
160
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
161
+
147
162
  certificate_name: Annotated[
148
163
  Optional[str], pydantic.Field(alias="certificateName")
149
164
  ] = None
@@ -161,17 +176,6 @@ class InputLokiTLSSettingsServerSide(BaseModel):
161
176
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
162
177
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
163
178
 
164
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
165
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
166
-
167
- reject_unauthorized: Annotated[
168
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
169
- ] = None
170
-
171
- common_name_regex: Annotated[
172
- Optional[Any], pydantic.Field(alias="commonNameRegex")
173
- ] = None
174
-
175
179
  min_version: Annotated[
176
180
  Annotated[
177
181
  Optional[InputLokiMinimumTLSVersion],
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
9
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -123,6 +123,12 @@ class InputMetricsMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
125
125
  disabled: NotRequired[bool]
126
+ request_cert: NotRequired[bool]
127
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
128
+ reject_unauthorized: NotRequired[bool]
129
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
130
+ common_name_regex: NotRequired[str]
131
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
126
132
  certificate_name: NotRequired[str]
127
133
  r"""The name of the predefined certificate"""
128
134
  priv_key_path: NotRequired[str]
@@ -133,10 +139,6 @@ class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
133
139
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
134
140
  ca_path: NotRequired[str]
135
141
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
136
- request_cert: NotRequired[bool]
137
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
138
- reject_unauthorized: NotRequired[Any]
139
- common_name_regex: NotRequired[Any]
140
142
  min_version: NotRequired[InputMetricsMinimumTLSVersion]
141
143
  max_version: NotRequired[InputMetricsMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputMetricsTLSSettingsServerSide(BaseModel):
145
147
  disabled: Optional[bool] = True
146
148
 
149
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
150
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
151
+
152
+ reject_unauthorized: Annotated[
153
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
154
+ ] = True
155
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
156
+
157
+ common_name_regex: Annotated[
158
+ Optional[str], pydantic.Field(alias="commonNameRegex")
159
+ ] = "/.*/"
160
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
161
+
147
162
  certificate_name: Annotated[
148
163
  Optional[str], pydantic.Field(alias="certificateName")
149
164
  ] = None
@@ -161,17 +176,6 @@ class InputMetricsTLSSettingsServerSide(BaseModel):
161
176
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
162
177
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
163
178
 
164
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
165
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
166
-
167
- reject_unauthorized: Annotated[
168
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
169
- ] = None
170
-
171
- common_name_regex: Annotated[
172
- Optional[Any], pydantic.Field(alias="commonNameRegex")
173
- ] = None
174
-
175
179
  min_version: Annotated[
176
180
  Annotated[
177
181
  Optional[InputMetricsMinimumTLSVersion],
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
9
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -130,6 +130,12 @@ class InputModelDrivenTelemetryMaximumTLSVersion(
130
130
 
131
131
  class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
132
132
  disabled: NotRequired[bool]
133
+ request_cert: NotRequired[bool]
134
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
135
+ reject_unauthorized: NotRequired[bool]
136
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
137
+ common_name_regex: NotRequired[str]
138
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
133
139
  certificate_name: NotRequired[str]
134
140
  r"""The name of the predefined certificate"""
135
141
  priv_key_path: NotRequired[str]
@@ -140,10 +146,6 @@ class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
140
146
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
141
147
  ca_path: NotRequired[str]
142
148
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
143
- request_cert: NotRequired[bool]
144
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
145
- reject_unauthorized: NotRequired[Any]
146
- common_name_regex: NotRequired[Any]
147
149
  min_version: NotRequired[InputModelDrivenTelemetryMinimumTLSVersion]
148
150
  max_version: NotRequired[InputModelDrivenTelemetryMaximumTLSVersion]
149
151
 
@@ -151,6 +153,19 @@ class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
151
153
  class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
152
154
  disabled: Optional[bool] = True
153
155
 
156
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
157
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
158
+
159
+ reject_unauthorized: Annotated[
160
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
161
+ ] = True
162
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
163
+
164
+ common_name_regex: Annotated[
165
+ Optional[str], pydantic.Field(alias="commonNameRegex")
166
+ ] = "/.*/"
167
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
168
+
154
169
  certificate_name: Annotated[
155
170
  Optional[str], pydantic.Field(alias="certificateName")
156
171
  ] = None
@@ -168,17 +183,6 @@ class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
168
183
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
169
184
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
170
185
 
171
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
172
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
173
-
174
- reject_unauthorized: Annotated[
175
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
176
- ] = None
177
-
178
- common_name_regex: Annotated[
179
- Optional[Any], pydantic.Field(alias="commonNameRegex")
180
- ] = None
181
-
182
186
  min_version: Annotated[
183
187
  Annotated[
184
188
  Optional[InputModelDrivenTelemetryMinimumTLSVersion],
@@ -124,6 +124,12 @@ class InputOpenTelemetryMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMet
124
124
 
125
125
  class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
126
126
  disabled: NotRequired[bool]
127
+ request_cert: NotRequired[bool]
128
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
129
+ reject_unauthorized: NotRequired[bool]
130
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
131
+ common_name_regex: NotRequired[str]
132
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
127
133
  certificate_name: NotRequired[str]
128
134
  r"""The name of the predefined certificate"""
129
135
  priv_key_path: NotRequired[str]
@@ -134,10 +140,6 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
134
140
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
135
141
  ca_path: NotRequired[str]
136
142
  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
143
  min_version: NotRequired[InputOpenTelemetryMinimumTLSVersion]
142
144
  max_version: NotRequired[InputOpenTelemetryMaximumTLSVersion]
143
145
 
@@ -145,6 +147,19 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
145
147
  class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
146
148
  disabled: Optional[bool] = True
147
149
 
150
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
151
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
152
+
153
+ reject_unauthorized: Annotated[
154
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
155
+ ] = True
156
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
157
+
158
+ common_name_regex: Annotated[
159
+ Optional[str], pydantic.Field(alias="commonNameRegex")
160
+ ] = "/.*/"
161
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
162
+
148
163
  certificate_name: Annotated[
149
164
  Optional[str], pydantic.Field(alias="certificateName")
150
165
  ] = None
@@ -162,17 +177,6 @@ class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
162
177
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
163
178
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
164
179
 
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
180
  min_version: Annotated[
177
181
  Annotated[
178
182
  Optional[InputOpenTelemetryMinimumTLSVersion],
@@ -164,6 +164,19 @@ class MetricsProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
164
164
  HTTPS = "https"
165
165
 
166
166
 
167
+ class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
168
+ str, Enum, metaclass=utils.OpenEnumMeta
169
+ ):
170
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
171
+
172
+ # Auto
173
+ AUTO = "auto"
174
+ # Manual
175
+ MANUAL = "manual"
176
+ # Secret Key pair
177
+ SECRET = "secret"
178
+
179
+
167
180
  class InputPrometheusSearchFilterTypedDict(TypedDict):
168
181
  name: str
169
182
  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 +192,6 @@ class InputPrometheusSearchFilter(BaseModel):
179
192
  r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
180
193
 
181
194
 
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
195
  class InputPrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
196
196
  r"""Signature version to use for signing EC2 requests"""
197
197
 
@@ -244,24 +244,27 @@ class InputPrometheusTypedDict(TypedDict):
244
244
  description: NotRequired[str]
245
245
  target_list: NotRequired[List[str]]
246
246
  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
247
  record_type: NotRequired[InputPrometheusRecordType]
250
248
  r"""DNS Record type to resolve"""
249
+ scrape_port: NotRequired[float]
250
+ r"""The port number in the metrics URL for discovered targets."""
251
+ name_list: NotRequired[List[str]]
252
+ r"""List of DNS names to resolve"""
251
253
  scrape_protocol: NotRequired[MetricsProtocol]
252
254
  r"""Protocol to use when collecting metrics"""
253
255
  scrape_path: NotRequired[str]
254
256
  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
257
  aws_authentication_method: NotRequired[
262
258
  InputPrometheusAwsAuthenticationMethodAuthenticationMethod
263
259
  ]
264
260
  r"""AWS authentication method. Choose Auto to use IAM roles."""
261
+ aws_api_key: NotRequired[str]
262
+ aws_secret: NotRequired[str]
263
+ r"""Select or create a stored secret that references your access key and secret key"""
264
+ use_public_ip: NotRequired[bool]
265
+ r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
266
+ search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
267
+ r"""EC2 Instance Search Filter"""
265
268
  aws_secret_key: NotRequired[str]
266
269
  region: NotRequired[str]
267
270
  r"""Region where the EC2 is located"""
@@ -387,9 +390,6 @@ class InputPrometheus(BaseModel):
387
390
  )
388
391
  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
392
 
390
- name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
391
- r"""List of DNS names to resolve"""
392
-
393
393
  record_type: Annotated[
394
394
  Annotated[
395
395
  Optional[InputPrometheusRecordType],
@@ -399,6 +399,12 @@ class InputPrometheus(BaseModel):
399
399
  ] = InputPrometheusRecordType.SRV
400
400
  r"""DNS Record type to resolve"""
401
401
 
402
+ scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
403
+ r"""The port number in the metrics URL for discovered targets."""
404
+
405
+ name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
406
+ r"""List of DNS names to resolve"""
407
+
402
408
  scrape_protocol: Annotated[
403
409
  Annotated[Optional[MetricsProtocol], PlainValidator(validate_open_enum(False))],
404
410
  pydantic.Field(alias="scrapeProtocol"),
@@ -410,18 +416,6 @@ class InputPrometheus(BaseModel):
410
416
  )
411
417
  r"""Path to use when collecting metrics from discovered targets"""
412
418
 
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
419
  aws_authentication_method: Annotated[
426
420
  Annotated[
427
421
  Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
@@ -431,6 +425,20 @@ class InputPrometheus(BaseModel):
431
425
  ] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
432
426
  r"""AWS authentication method. Choose Auto to use IAM roles."""
433
427
 
428
+ aws_api_key: Annotated[Optional[str], pydantic.Field(alias="awsApiKey")] = None
429
+
430
+ aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
431
+ r"""Select or create a stored secret that references your access key and secret key"""
432
+
433
+ use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
434
+ r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
435
+
436
+ search_filter: Annotated[
437
+ Optional[List[InputPrometheusSearchFilter]],
438
+ pydantic.Field(alias="searchFilter"),
439
+ ] = None
440
+ r"""EC2 Instance Search Filter"""
441
+
434
442
  aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
435
443
  None
436
444
  )
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
9
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -124,6 +124,12 @@ class InputPrometheusRwMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta
124
124
 
125
125
  class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
126
126
  disabled: NotRequired[bool]
127
+ request_cert: NotRequired[bool]
128
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
129
+ reject_unauthorized: NotRequired[bool]
130
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
131
+ common_name_regex: NotRequired[str]
132
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
127
133
  certificate_name: NotRequired[str]
128
134
  r"""The name of the predefined certificate"""
129
135
  priv_key_path: NotRequired[str]
@@ -134,10 +140,6 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
134
140
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
135
141
  ca_path: NotRequired[str]
136
142
  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
143
  min_version: NotRequired[InputPrometheusRwMinimumTLSVersion]
142
144
  max_version: NotRequired[InputPrometheusRwMaximumTLSVersion]
143
145
 
@@ -145,6 +147,19 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
145
147
  class InputPrometheusRwTLSSettingsServerSide(BaseModel):
146
148
  disabled: Optional[bool] = True
147
149
 
150
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
151
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
152
+
153
+ reject_unauthorized: Annotated[
154
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
155
+ ] = True
156
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
157
+
158
+ common_name_regex: Annotated[
159
+ Optional[str], pydantic.Field(alias="commonNameRegex")
160
+ ] = "/.*/"
161
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
162
+
148
163
  certificate_name: Annotated[
149
164
  Optional[str], pydantic.Field(alias="certificateName")
150
165
  ] = None
@@ -162,17 +177,6 @@ class InputPrometheusRwTLSSettingsServerSide(BaseModel):
162
177
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
163
178
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
164
179
 
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
180
  min_version: Annotated[
177
181
  Annotated[
178
182
  Optional[InputPrometheusRwMinimumTLSVersion],
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
9
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -123,6 +123,12 @@ class InputSplunkMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputSplunkTLSSettingsServerSideTypedDict(TypedDict):
125
125
  disabled: NotRequired[bool]
126
+ request_cert: NotRequired[bool]
127
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
128
+ reject_unauthorized: NotRequired[bool]
129
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
130
+ common_name_regex: NotRequired[str]
131
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
126
132
  certificate_name: NotRequired[str]
127
133
  r"""The name of the predefined certificate"""
128
134
  priv_key_path: NotRequired[str]
@@ -133,10 +139,6 @@ class InputSplunkTLSSettingsServerSideTypedDict(TypedDict):
133
139
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
134
140
  ca_path: NotRequired[str]
135
141
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
136
- request_cert: NotRequired[bool]
137
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
138
- reject_unauthorized: NotRequired[Any]
139
- common_name_regex: NotRequired[Any]
140
142
  min_version: NotRequired[InputSplunkMinimumTLSVersion]
141
143
  max_version: NotRequired[InputSplunkMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputSplunkTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputSplunkTLSSettingsServerSide(BaseModel):
145
147
  disabled: Optional[bool] = True
146
148
 
149
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
150
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
151
+
152
+ reject_unauthorized: Annotated[
153
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
154
+ ] = True
155
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
156
+
157
+ common_name_regex: Annotated[
158
+ Optional[str], pydantic.Field(alias="commonNameRegex")
159
+ ] = "/.*/"
160
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
161
+
147
162
  certificate_name: Annotated[
148
163
  Optional[str], pydantic.Field(alias="certificateName")
149
164
  ] = None
@@ -161,17 +176,6 @@ class InputSplunkTLSSettingsServerSide(BaseModel):
161
176
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
162
177
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
163
178
 
164
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
165
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
166
-
167
- reject_unauthorized: Annotated[
168
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
169
- ] = None
170
-
171
- common_name_regex: Annotated[
172
- Optional[Any], pydantic.Field(alias="commonNameRegex")
173
- ] = None
174
-
175
179
  min_version: Annotated[
176
180
  Annotated[
177
181
  Optional[InputSplunkMinimumTLSVersion],
@@ -185,6 +185,12 @@ class InputSplunkHecMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
185
185
 
186
186
  class InputSplunkHecTLSSettingsServerSideTypedDict(TypedDict):
187
187
  disabled: NotRequired[bool]
188
+ request_cert: NotRequired[bool]
189
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
190
+ reject_unauthorized: NotRequired[bool]
191
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
192
+ common_name_regex: NotRequired[str]
193
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
188
194
  certificate_name: NotRequired[str]
189
195
  r"""The name of the predefined certificate"""
190
196
  priv_key_path: NotRequired[str]
@@ -195,10 +201,6 @@ class InputSplunkHecTLSSettingsServerSideTypedDict(TypedDict):
195
201
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
196
202
  ca_path: NotRequired[str]
197
203
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
198
- request_cert: NotRequired[bool]
199
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
200
- reject_unauthorized: NotRequired[Any]
201
- common_name_regex: NotRequired[Any]
202
204
  min_version: NotRequired[InputSplunkHecMinimumTLSVersion]
203
205
  max_version: NotRequired[InputSplunkHecMaximumTLSVersion]
204
206
 
@@ -206,6 +208,19 @@ class InputSplunkHecTLSSettingsServerSideTypedDict(TypedDict):
206
208
  class InputSplunkHecTLSSettingsServerSide(BaseModel):
207
209
  disabled: Optional[bool] = True
208
210
 
211
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
212
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
213
+
214
+ reject_unauthorized: Annotated[
215
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
216
+ ] = True
217
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
218
+
219
+ common_name_regex: Annotated[
220
+ Optional[str], pydantic.Field(alias="commonNameRegex")
221
+ ] = "/.*/"
222
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
223
+
209
224
  certificate_name: Annotated[
210
225
  Optional[str], pydantic.Field(alias="certificateName")
211
226
  ] = None
@@ -223,17 +238,6 @@ class InputSplunkHecTLSSettingsServerSide(BaseModel):
223
238
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
224
239
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
225
240
 
226
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
227
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
228
-
229
- reject_unauthorized: Annotated[
230
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
231
- ] = None
232
-
233
- common_name_regex: Annotated[
234
- Optional[Any], pydantic.Field(alias="commonNameRegex")
235
- ] = None
236
-
237
241
  min_version: Annotated[
238
242
  Annotated[
239
243
  Optional[InputSplunkHecMinimumTLSVersion],