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 InputCriblHTTPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputCriblHTTPTLSSettingsServerSideTypedDict(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 InputCriblHTTPTLSSettingsServerSideTypedDict(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[InputCriblHTTPMinimumTLSVersion]
141
143
  max_version: NotRequired[InputCriblHTTPMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputCriblHTTPTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputCriblHTTPTLSSettingsServerSide(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 InputCriblHTTPTLSSettingsServerSide(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[InputCriblHTTPMinimumTLSVersion],
@@ -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 InputCriblLakeHTTPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMet
124
124
 
125
125
  class InputCriblLakeHTTPTLSSettingsServerSideTypedDict(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 InputCriblLakeHTTPTLSSettingsServerSideTypedDict(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[InputCriblLakeHTTPMinimumTLSVersion]
142
144
  max_version: NotRequired[InputCriblLakeHTTPMaximumTLSVersion]
143
145
 
@@ -145,6 +147,19 @@ class InputCriblLakeHTTPTLSSettingsServerSideTypedDict(TypedDict):
145
147
  class InputCriblLakeHTTPTLSSettingsServerSide(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 InputCriblLakeHTTPTLSSettingsServerSide(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[InputCriblLakeHTTPMinimumTLSVersion],
@@ -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 InputCriblTCPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputCriblTCPTLSSettingsServerSideTypedDict(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 InputCriblTCPTLSSettingsServerSideTypedDict(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[InputCriblTCPMinimumTLSVersion]
141
143
  max_version: NotRequired[InputCriblTCPMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputCriblTCPTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputCriblTCPTLSSettingsServerSide(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 InputCriblTCPTLSSettingsServerSide(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[InputCriblTCPMinimumTLSVersion],
@@ -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 InputDatadogAgentMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta
124
124
 
125
125
  class InputDatadogAgentTLSSettingsServerSideTypedDict(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 InputDatadogAgentTLSSettingsServerSideTypedDict(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[InputDatadogAgentMinimumTLSVersion]
142
144
  max_version: NotRequired[InputDatadogAgentMaximumTLSVersion]
143
145
 
@@ -145,6 +147,19 @@ class InputDatadogAgentTLSSettingsServerSideTypedDict(TypedDict):
145
147
  class InputDatadogAgentTLSSettingsServerSide(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 InputDatadogAgentTLSSettingsServerSide(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[InputDatadogAgentMinimumTLSVersion],
@@ -237,6 +237,19 @@ class ScrapeProtocolProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
237
237
  HTTPS = "https"
238
238
 
239
239
 
240
+ class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
241
+ str, Enum, metaclass=utils.OpenEnumMeta
242
+ ):
243
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
244
+
245
+ # Auto
246
+ AUTO = "auto"
247
+ # Manual
248
+ MANUAL = "manual"
249
+ # Secret Key pair
250
+ SECRET = "secret"
251
+
252
+
240
253
  class InputEdgePrometheusSearchFilterTypedDict(TypedDict):
241
254
  name: str
242
255
  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"""
@@ -252,19 +265,6 @@ class InputEdgePrometheusSearchFilter(BaseModel):
252
265
  r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
253
266
 
254
267
 
255
- class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
256
- str, Enum, metaclass=utils.OpenEnumMeta
257
- ):
258
- r"""AWS authentication method. Choose Auto to use IAM roles."""
259
-
260
- # Auto
261
- AUTO = "auto"
262
- # Manual
263
- MANUAL = "manual"
264
- # Secret Key pair
265
- SECRET = "secret"
266
-
267
-
268
268
  class InputEdgePrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
269
269
  r"""Signature version to use for signing EC2 requests"""
270
270
 
@@ -320,24 +320,27 @@ class InputEdgePrometheusTypedDict(TypedDict):
320
320
  r"""Enter credentials directly, or select a stored secret"""
321
321
  description: NotRequired[str]
322
322
  targets: NotRequired[List[TargetTypedDict]]
323
- name_list: NotRequired[List[str]]
324
- r"""List of DNS names to resolve"""
325
323
  record_type: NotRequired[InputEdgePrometheusRecordType]
326
324
  r"""DNS Record type to resolve"""
325
+ scrape_port: NotRequired[float]
326
+ r"""The port number in the metrics URL for discovered targets."""
327
+ name_list: NotRequired[List[str]]
328
+ r"""List of DNS names to resolve"""
327
329
  scrape_protocol: NotRequired[ScrapeProtocolProtocol]
328
330
  r"""Protocol to use when collecting metrics"""
329
331
  scrape_path: NotRequired[str]
330
332
  r"""Path to use when collecting metrics from discovered targets"""
331
- use_public_ip: NotRequired[bool]
332
- r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
333
- scrape_port: NotRequired[float]
334
- r"""The port number in the metrics URL for discovered targets."""
335
- search_filter: NotRequired[List[InputEdgePrometheusSearchFilterTypedDict]]
336
- r"""EC2 Instance Search Filter"""
337
333
  aws_authentication_method: NotRequired[
338
334
  InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod
339
335
  ]
340
336
  r"""AWS authentication method. Choose Auto to use IAM roles."""
337
+ aws_api_key: NotRequired[str]
338
+ aws_secret: NotRequired[str]
339
+ r"""Select or create a stored secret that references your access key and secret key"""
340
+ use_public_ip: NotRequired[bool]
341
+ r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
342
+ search_filter: NotRequired[List[InputEdgePrometheusSearchFilterTypedDict]]
343
+ r"""EC2 Instance Search Filter"""
341
344
  aws_secret_key: NotRequired[str]
342
345
  region: NotRequired[str]
343
346
  r"""Region where the EC2 is located"""
@@ -445,9 +448,6 @@ class InputEdgePrometheus(BaseModel):
445
448
 
446
449
  targets: Optional[List[Target]] = None
447
450
 
448
- name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
449
- r"""List of DNS names to resolve"""
450
-
451
451
  record_type: Annotated[
452
452
  Annotated[
453
453
  Optional[InputEdgePrometheusRecordType],
@@ -457,6 +457,12 @@ class InputEdgePrometheus(BaseModel):
457
457
  ] = InputEdgePrometheusRecordType.SRV
458
458
  r"""DNS Record type to resolve"""
459
459
 
460
+ scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
461
+ r"""The port number in the metrics URL for discovered targets."""
462
+
463
+ name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
464
+ r"""List of DNS names to resolve"""
465
+
460
466
  scrape_protocol: Annotated[
461
467
  Annotated[
462
468
  Optional[ScrapeProtocolProtocol], PlainValidator(validate_open_enum(False))
@@ -470,18 +476,6 @@ class InputEdgePrometheus(BaseModel):
470
476
  )
471
477
  r"""Path to use when collecting metrics from discovered targets"""
472
478
 
473
- use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
474
- r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
475
-
476
- scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
477
- r"""The port number in the metrics URL for discovered targets."""
478
-
479
- search_filter: Annotated[
480
- Optional[List[InputEdgePrometheusSearchFilter]],
481
- pydantic.Field(alias="searchFilter"),
482
- ] = None
483
- r"""EC2 Instance Search Filter"""
484
-
485
479
  aws_authentication_method: Annotated[
486
480
  Annotated[
487
481
  Optional[InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod],
@@ -491,6 +485,20 @@ class InputEdgePrometheus(BaseModel):
491
485
  ] = InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
492
486
  r"""AWS authentication method. Choose Auto to use IAM roles."""
493
487
 
488
+ aws_api_key: Annotated[Optional[str], pydantic.Field(alias="awsApiKey")] = None
489
+
490
+ aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
491
+ r"""Select or create a stored secret that references your access key and secret key"""
492
+
493
+ use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
494
+ r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
495
+
496
+ search_filter: Annotated[
497
+ Optional[List[InputEdgePrometheusSearchFilter]],
498
+ pydantic.Field(alias="searchFilter"),
499
+ ] = None
500
+ r"""EC2 Instance Search Filter"""
501
+
494
502
  aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
495
503
  None
496
504
  )
@@ -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 InputElasticMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputElasticTLSSettingsServerSideTypedDict(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 InputElasticTLSSettingsServerSideTypedDict(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[InputElasticMinimumTLSVersion]
141
143
  max_version: NotRequired[InputElasticMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputElasticTLSSettingsServerSide(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 InputElasticTLSSettingsServerSide(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[InputElasticMinimumTLSVersion],
@@ -246,6 +250,12 @@ class InputElasticAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
246
250
  class InputElasticProxyModeTypedDict(TypedDict):
247
251
  enabled: NotRequired[bool]
248
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."""
253
+ auth_type: NotRequired[InputElasticAuthenticationMethod]
254
+ r"""Enter credentials directly, or select a stored secret"""
255
+ username: NotRequired[str]
256
+ password: NotRequired[str]
257
+ credentials_secret: NotRequired[str]
258
+ r"""Select or create a secret that references your credentials"""
249
259
  url: NotRequired[str]
250
260
  r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
251
261
  reject_unauthorized: NotRequired[bool]
@@ -254,14 +264,30 @@ class InputElasticProxyModeTypedDict(TypedDict):
254
264
  r"""List of headers to remove from the request to proxy"""
255
265
  timeout_sec: NotRequired[float]
256
266
  r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
257
- auth_type: NotRequired[InputElasticAuthenticationMethod]
258
- r"""Enter credentials directly, or select a stored secret"""
259
267
 
260
268
 
261
269
  class InputElasticProxyMode(BaseModel):
262
270
  enabled: Optional[bool] = False
263
271
  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."""
264
272
 
273
+ auth_type: Annotated[
274
+ Annotated[
275
+ Optional[InputElasticAuthenticationMethod],
276
+ PlainValidator(validate_open_enum(False)),
277
+ ],
278
+ pydantic.Field(alias="authType"),
279
+ ] = InputElasticAuthenticationMethod.NONE
280
+ r"""Enter credentials directly, or select a stored secret"""
281
+
282
+ username: Optional[str] = None
283
+
284
+ password: Optional[str] = None
285
+
286
+ credentials_secret: Annotated[
287
+ Optional[str], pydantic.Field(alias="credentialsSecret")
288
+ ] = None
289
+ r"""Select or create a secret that references your credentials"""
290
+
265
291
  url: Optional[str] = None
266
292
  r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
267
293
 
@@ -278,15 +304,6 @@ class InputElasticProxyMode(BaseModel):
278
304
  timeout_sec: Annotated[Optional[float], pydantic.Field(alias="timeoutSec")] = 60
279
305
  r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
280
306
 
281
- auth_type: Annotated[
282
- Annotated[
283
- Optional[InputElasticAuthenticationMethod],
284
- PlainValidator(validate_open_enum(False)),
285
- ],
286
- pydantic.Field(alias="authType"),
287
- ] = InputElasticAuthenticationMethod.NONE
288
- r"""Enter credentials directly, or select a stored secret"""
289
-
290
307
 
291
308
  class InputElasticTypedDict(TypedDict):
292
309
  type: InputElasticType