cribl-control-plane 0.0.13__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 (197) hide show
  1. cribl_control_plane/__init__.py +17 -0
  2. cribl_control_plane/_hooks/__init__.py +5 -0
  3. cribl_control_plane/_hooks/clientcredentials.py +211 -0
  4. cribl_control_plane/_hooks/registration.py +13 -0
  5. cribl_control_plane/_hooks/sdkhooks.py +81 -0
  6. cribl_control_plane/_hooks/types.py +112 -0
  7. cribl_control_plane/_version.py +15 -0
  8. cribl_control_plane/auth_sdk.py +184 -0
  9. cribl_control_plane/basesdk.py +358 -0
  10. cribl_control_plane/errors/__init__.py +60 -0
  11. cribl_control_plane/errors/apierror.py +38 -0
  12. cribl_control_plane/errors/criblcontrolplaneerror.py +26 -0
  13. cribl_control_plane/errors/error.py +24 -0
  14. cribl_control_plane/errors/healthstatus_error.py +38 -0
  15. cribl_control_plane/errors/no_response_error.py +13 -0
  16. cribl_control_plane/errors/responsevalidationerror.py +25 -0
  17. cribl_control_plane/health.py +166 -0
  18. cribl_control_plane/httpclient.py +126 -0
  19. cribl_control_plane/models/__init__.py +7305 -0
  20. cribl_control_plane/models/addhectokenrequest.py +34 -0
  21. cribl_control_plane/models/authtoken.py +13 -0
  22. cribl_control_plane/models/createinputhectokenbyidop.py +45 -0
  23. cribl_control_plane/models/createinputop.py +24 -0
  24. cribl_control_plane/models/createoutputop.py +24 -0
  25. cribl_control_plane/models/createoutputtestbyidop.py +46 -0
  26. cribl_control_plane/models/criblevent.py +14 -0
  27. cribl_control_plane/models/deleteinputbyidop.py +37 -0
  28. cribl_control_plane/models/deleteoutputbyidop.py +37 -0
  29. cribl_control_plane/models/deleteoutputpqbyidop.py +36 -0
  30. cribl_control_plane/models/getinputbyidop.py +37 -0
  31. cribl_control_plane/models/getoutputbyidop.py +37 -0
  32. cribl_control_plane/models/getoutputpqbyidop.py +36 -0
  33. cribl_control_plane/models/getoutputsamplesbyidop.py +37 -0
  34. cribl_control_plane/models/healthstatus.py +36 -0
  35. cribl_control_plane/models/input.py +199 -0
  36. cribl_control_plane/models/inputappscope.py +448 -0
  37. cribl_control_plane/models/inputazureblob.py +308 -0
  38. cribl_control_plane/models/inputcollection.py +208 -0
  39. cribl_control_plane/models/inputconfluentcloud.py +585 -0
  40. cribl_control_plane/models/inputcribl.py +165 -0
  41. cribl_control_plane/models/inputcriblhttp.py +341 -0
  42. cribl_control_plane/models/inputcribllakehttp.py +342 -0
  43. cribl_control_plane/models/inputcriblmetrics.py +175 -0
  44. cribl_control_plane/models/inputcribltcp.py +299 -0
  45. cribl_control_plane/models/inputcrowdstrike.py +410 -0
  46. cribl_control_plane/models/inputdatadogagent.py +364 -0
  47. cribl_control_plane/models/inputdatagen.py +180 -0
  48. cribl_control_plane/models/inputedgeprometheus.py +551 -0
  49. cribl_control_plane/models/inputelastic.py +494 -0
  50. cribl_control_plane/models/inputeventhub.py +360 -0
  51. cribl_control_plane/models/inputexec.py +213 -0
  52. cribl_control_plane/models/inputfile.py +259 -0
  53. cribl_control_plane/models/inputfirehose.py +341 -0
  54. cribl_control_plane/models/inputgooglepubsub.py +247 -0
  55. cribl_control_plane/models/inputgrafana_union.py +1247 -0
  56. cribl_control_plane/models/inputhttp.py +403 -0
  57. cribl_control_plane/models/inputhttpraw.py +407 -0
  58. cribl_control_plane/models/inputjournalfiles.py +208 -0
  59. cribl_control_plane/models/inputkafka.py +581 -0
  60. cribl_control_plane/models/inputkinesis.py +363 -0
  61. cribl_control_plane/models/inputkubeevents.py +182 -0
  62. cribl_control_plane/models/inputkubelogs.py +256 -0
  63. cribl_control_plane/models/inputkubemetrics.py +233 -0
  64. cribl_control_plane/models/inputloki.py +468 -0
  65. cribl_control_plane/models/inputmetrics.py +290 -0
  66. cribl_control_plane/models/inputmodeldriventelemetry.py +274 -0
  67. cribl_control_plane/models/inputmsk.py +654 -0
  68. cribl_control_plane/models/inputnetflow.py +224 -0
  69. cribl_control_plane/models/inputoffice365mgmt.py +384 -0
  70. cribl_control_plane/models/inputoffice365msgtrace.py +449 -0
  71. cribl_control_plane/models/inputoffice365service.py +377 -0
  72. cribl_control_plane/models/inputopentelemetry.py +516 -0
  73. cribl_control_plane/models/inputprometheus.py +464 -0
  74. cribl_control_plane/models/inputprometheusrw.py +470 -0
  75. cribl_control_plane/models/inputrawudp.py +207 -0
  76. cribl_control_plane/models/inputs3.py +416 -0
  77. cribl_control_plane/models/inputs3inventory.py +440 -0
  78. cribl_control_plane/models/inputsecuritylake.py +425 -0
  79. cribl_control_plane/models/inputsnmp.py +274 -0
  80. cribl_control_plane/models/inputsplunk.py +387 -0
  81. cribl_control_plane/models/inputsplunkhec.py +478 -0
  82. cribl_control_plane/models/inputsplunksearch.py +537 -0
  83. cribl_control_plane/models/inputsqs.py +320 -0
  84. cribl_control_plane/models/inputsyslog_union.py +759 -0
  85. cribl_control_plane/models/inputsystemmetrics.py +533 -0
  86. cribl_control_plane/models/inputsystemstate.py +417 -0
  87. cribl_control_plane/models/inputtcp.py +359 -0
  88. cribl_control_plane/models/inputtcpjson.py +334 -0
  89. cribl_control_plane/models/inputwef.py +498 -0
  90. cribl_control_plane/models/inputwindowsmetrics.py +457 -0
  91. cribl_control_plane/models/inputwineventlogs.py +222 -0
  92. cribl_control_plane/models/inputwiz.py +334 -0
  93. cribl_control_plane/models/inputzscalerhec.py +439 -0
  94. cribl_control_plane/models/listinputop.py +24 -0
  95. cribl_control_plane/models/listoutputop.py +24 -0
  96. cribl_control_plane/models/logininfo.py +16 -0
  97. cribl_control_plane/models/output.py +229 -0
  98. cribl_control_plane/models/outputazureblob.py +471 -0
  99. cribl_control_plane/models/outputazuredataexplorer.py +660 -0
  100. cribl_control_plane/models/outputazureeventhub.py +321 -0
  101. cribl_control_plane/models/outputazurelogs.py +386 -0
  102. cribl_control_plane/models/outputclickhouse.py +650 -0
  103. cribl_control_plane/models/outputcloudwatch.py +273 -0
  104. cribl_control_plane/models/outputconfluentcloud.py +591 -0
  105. cribl_control_plane/models/outputcriblhttp.py +494 -0
  106. cribl_control_plane/models/outputcribllake.py +396 -0
  107. cribl_control_plane/models/outputcribltcp.py +387 -0
  108. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +410 -0
  109. cribl_control_plane/models/outputdatadog.py +472 -0
  110. cribl_control_plane/models/outputdataset.py +437 -0
  111. cribl_control_plane/models/outputdefault.py +55 -0
  112. cribl_control_plane/models/outputdevnull.py +50 -0
  113. cribl_control_plane/models/outputdiskspool.py +89 -0
  114. cribl_control_plane/models/outputdls3.py +560 -0
  115. cribl_control_plane/models/outputdynatracehttp.py +454 -0
  116. cribl_control_plane/models/outputdynatraceotlp.py +486 -0
  117. cribl_control_plane/models/outputelastic.py +494 -0
  118. cribl_control_plane/models/outputelasticcloud.py +407 -0
  119. cribl_control_plane/models/outputexabeam.py +297 -0
  120. cribl_control_plane/models/outputfilesystem.py +357 -0
  121. cribl_control_plane/models/outputgooglechronicle.py +486 -0
  122. cribl_control_plane/models/outputgooglecloudlogging.py +557 -0
  123. cribl_control_plane/models/outputgooglecloudstorage.py +499 -0
  124. cribl_control_plane/models/outputgooglepubsub.py +274 -0
  125. cribl_control_plane/models/outputgrafanacloud_union.py +1024 -0
  126. cribl_control_plane/models/outputgraphite.py +225 -0
  127. cribl_control_plane/models/outputhoneycomb.py +369 -0
  128. cribl_control_plane/models/outputhumiohec.py +389 -0
  129. cribl_control_plane/models/outputinfluxdb.py +523 -0
  130. cribl_control_plane/models/outputkafka.py +581 -0
  131. cribl_control_plane/models/outputkinesis.py +312 -0
  132. cribl_control_plane/models/outputloki.py +425 -0
  133. cribl_control_plane/models/outputminio.py +512 -0
  134. cribl_control_plane/models/outputmsk.py +654 -0
  135. cribl_control_plane/models/outputnetflow.py +80 -0
  136. cribl_control_plane/models/outputnewrelic.py +424 -0
  137. cribl_control_plane/models/outputnewrelicevents.py +401 -0
  138. cribl_control_plane/models/outputopentelemetry.py +669 -0
  139. cribl_control_plane/models/outputprometheus.py +485 -0
  140. cribl_control_plane/models/outputring.py +121 -0
  141. cribl_control_plane/models/outputrouter.py +83 -0
  142. cribl_control_plane/models/outputs3.py +556 -0
  143. cribl_control_plane/models/outputsamplesresponse.py +14 -0
  144. cribl_control_plane/models/outputsecuritylake.py +505 -0
  145. cribl_control_plane/models/outputsentinel.py +488 -0
  146. cribl_control_plane/models/outputsentineloneaisiem.py +505 -0
  147. cribl_control_plane/models/outputservicenow.py +543 -0
  148. cribl_control_plane/models/outputsignalfx.py +369 -0
  149. cribl_control_plane/models/outputsnmp.py +80 -0
  150. cribl_control_plane/models/outputsns.py +274 -0
  151. cribl_control_plane/models/outputsplunk.py +383 -0
  152. cribl_control_plane/models/outputsplunkhec.py +434 -0
  153. cribl_control_plane/models/outputsplunklb.py +558 -0
  154. cribl_control_plane/models/outputsqs.py +328 -0
  155. cribl_control_plane/models/outputstatsd.py +224 -0
  156. cribl_control_plane/models/outputstatsdext.py +225 -0
  157. cribl_control_plane/models/outputsumologic.py +378 -0
  158. cribl_control_plane/models/outputsyslog.py +415 -0
  159. cribl_control_plane/models/outputtcpjson.py +413 -0
  160. cribl_control_plane/models/outputtestrequest.py +15 -0
  161. cribl_control_plane/models/outputtestresponse.py +29 -0
  162. cribl_control_plane/models/outputwavefront.py +369 -0
  163. cribl_control_plane/models/outputwebhook.py +689 -0
  164. cribl_control_plane/models/outputxsiam.py +415 -0
  165. cribl_control_plane/models/schemeclientoauth.py +24 -0
  166. cribl_control_plane/models/security.py +36 -0
  167. cribl_control_plane/models/updatehectokenrequest.py +31 -0
  168. cribl_control_plane/models/updateinputbyidop.py +44 -0
  169. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +52 -0
  170. cribl_control_plane/models/updateoutputbyidop.py +44 -0
  171. cribl_control_plane/outputs.py +1615 -0
  172. cribl_control_plane/py.typed +1 -0
  173. cribl_control_plane/sdk.py +164 -0
  174. cribl_control_plane/sdkconfiguration.py +36 -0
  175. cribl_control_plane/sources.py +1355 -0
  176. cribl_control_plane/types/__init__.py +21 -0
  177. cribl_control_plane/types/basemodel.py +39 -0
  178. cribl_control_plane/utils/__init__.py +187 -0
  179. cribl_control_plane/utils/annotations.py +55 -0
  180. cribl_control_plane/utils/datetimes.py +23 -0
  181. cribl_control_plane/utils/enums.py +74 -0
  182. cribl_control_plane/utils/eventstreaming.py +238 -0
  183. cribl_control_plane/utils/forms.py +223 -0
  184. cribl_control_plane/utils/headers.py +136 -0
  185. cribl_control_plane/utils/logger.py +27 -0
  186. cribl_control_plane/utils/metadata.py +118 -0
  187. cribl_control_plane/utils/queryparams.py +205 -0
  188. cribl_control_plane/utils/requestbodies.py +66 -0
  189. cribl_control_plane/utils/retries.py +217 -0
  190. cribl_control_plane/utils/security.py +207 -0
  191. cribl_control_plane/utils/serializers.py +249 -0
  192. cribl_control_plane/utils/unmarshal_json_response.py +24 -0
  193. cribl_control_plane/utils/url.py +155 -0
  194. cribl_control_plane/utils/values.py +137 -0
  195. cribl_control_plane-0.0.13.dist-info/METADATA +489 -0
  196. cribl_control_plane-0.0.13.dist-info/RECORD +197 -0
  197. cribl_control_plane-0.0.13.dist-info/WHEEL +4 -0
@@ -0,0 +1,386 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from cribl_control_plane import utils
5
+ from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
7
+ from enum import Enum
8
+ import pydantic
9
+ from pydantic.functional_validators import PlainValidator
10
+ from typing import List, Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class OutputAzureLogsType(str, Enum, metaclass=utils.OpenEnumMeta):
15
+ AZURE_LOGS = "azure_logs"
16
+
17
+
18
+ class OutputAzureLogsExtraHTTPHeaderTypedDict(TypedDict):
19
+ value: str
20
+ name: NotRequired[str]
21
+
22
+
23
+ class OutputAzureLogsExtraHTTPHeader(BaseModel):
24
+ value: str
25
+
26
+ name: Optional[str] = None
27
+
28
+
29
+ class OutputAzureLogsFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
30
+ r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
31
+
32
+ PAYLOAD = "payload"
33
+ PAYLOAD_AND_HEADERS = "payloadAndHeaders"
34
+ NONE = "none"
35
+
36
+
37
+ class OutputAzureLogsResponseRetrySettingTypedDict(TypedDict):
38
+ http_status: float
39
+ r"""The HTTP response status code that will trigger retries"""
40
+ initial_backoff: NotRequired[float]
41
+ r"""How long, in milliseconds, Cribl Stream should wait before initiating backoff. Maximum interval is 600,000 ms (10 minutes)."""
42
+ backoff_rate: NotRequired[float]
43
+ r"""Base for exponential backoff. A value of 2 (default) means Cribl Stream will retry after 2 seconds, then 4 seconds, then 8 seconds, etc."""
44
+ max_backoff: NotRequired[float]
45
+ r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
46
+
47
+
48
+ class OutputAzureLogsResponseRetrySetting(BaseModel):
49
+ http_status: Annotated[float, pydantic.Field(alias="httpStatus")]
50
+ r"""The HTTP response status code that will trigger retries"""
51
+
52
+ initial_backoff: Annotated[
53
+ Optional[float], pydantic.Field(alias="initialBackoff")
54
+ ] = 1000
55
+ r"""How long, in milliseconds, Cribl Stream should wait before initiating backoff. Maximum interval is 600,000 ms (10 minutes)."""
56
+
57
+ backoff_rate: Annotated[Optional[float], pydantic.Field(alias="backoffRate")] = 2
58
+ r"""Base for exponential backoff. A value of 2 (default) means Cribl Stream will retry after 2 seconds, then 4 seconds, then 8 seconds, etc."""
59
+
60
+ max_backoff: Annotated[Optional[float], pydantic.Field(alias="maxBackoff")] = 10000
61
+ r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
62
+
63
+
64
+ class OutputAzureLogsTimeoutRetrySettingsTypedDict(TypedDict):
65
+ timeout_retry: NotRequired[bool]
66
+ initial_backoff: NotRequired[float]
67
+ r"""How long, in milliseconds, Cribl Stream should wait before initiating backoff. Maximum interval is 600,000 ms (10 minutes)."""
68
+ backoff_rate: NotRequired[float]
69
+ r"""Base for exponential backoff. A value of 2 (default) means Cribl Stream will retry after 2 seconds, then 4 seconds, then 8 seconds, etc."""
70
+ max_backoff: NotRequired[float]
71
+ r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
72
+
73
+
74
+ class OutputAzureLogsTimeoutRetrySettings(BaseModel):
75
+ timeout_retry: Annotated[Optional[bool], pydantic.Field(alias="timeoutRetry")] = (
76
+ False
77
+ )
78
+
79
+ initial_backoff: Annotated[
80
+ Optional[float], pydantic.Field(alias="initialBackoff")
81
+ ] = 1000
82
+ r"""How long, in milliseconds, Cribl Stream should wait before initiating backoff. Maximum interval is 600,000 ms (10 minutes)."""
83
+
84
+ backoff_rate: Annotated[Optional[float], pydantic.Field(alias="backoffRate")] = 2
85
+ r"""Base for exponential backoff. A value of 2 (default) means Cribl Stream will retry after 2 seconds, then 4 seconds, then 8 seconds, etc."""
86
+
87
+ max_backoff: Annotated[Optional[float], pydantic.Field(alias="maxBackoff")] = 10000
88
+ r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
89
+
90
+
91
+ class OutputAzureLogsBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
92
+ r"""How to handle events when all receivers are exerting backpressure"""
93
+
94
+ BLOCK = "block"
95
+ DROP = "drop"
96
+ QUEUE = "queue"
97
+
98
+
99
+ class OutputAzureLogsAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
100
+ r"""Enter workspace ID and workspace key directly, or select a stored secret"""
101
+
102
+ MANUAL = "manual"
103
+ SECRET = "secret"
104
+
105
+
106
+ class OutputAzureLogsCompression(str, Enum, metaclass=utils.OpenEnumMeta):
107
+ r"""Codec to use to compress the persisted data"""
108
+
109
+ NONE = "none"
110
+ GZIP = "gzip"
111
+
112
+
113
+ class OutputAzureLogsQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
114
+ r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
115
+
116
+ BLOCK = "block"
117
+ DROP = "drop"
118
+
119
+
120
+ class OutputAzureLogsMode(str, Enum, metaclass=utils.OpenEnumMeta):
121
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
122
+
123
+ ERROR = "error"
124
+ BACKPRESSURE = "backpressure"
125
+ ALWAYS = "always"
126
+
127
+
128
+ class OutputAzureLogsPqControlsTypedDict(TypedDict):
129
+ pass
130
+
131
+
132
+ class OutputAzureLogsPqControls(BaseModel):
133
+ pass
134
+
135
+
136
+ class OutputAzureLogsTypedDict(TypedDict):
137
+ type: OutputAzureLogsType
138
+ id: NotRequired[str]
139
+ r"""Unique ID for this output"""
140
+ pipeline: NotRequired[str]
141
+ r"""Pipeline to process data before sending out to this output"""
142
+ system_fields: NotRequired[List[str]]
143
+ r"""Fields to automatically add to events, such as cribl_pipe. Supports wildcards."""
144
+ environment: NotRequired[str]
145
+ r"""Optionally, enable this config only on a specified Git branch. If empty, will be enabled everywhere."""
146
+ streamtags: NotRequired[List[str]]
147
+ r"""Tags for filtering and grouping in @{product}"""
148
+ log_type: NotRequired[str]
149
+ r"""The Log Type of events sent to this LogAnalytics workspace. Defaults to `Cribl`. Use only letters, numbers, and `_` characters, and can't exceed 100 characters. Can be overwritten by event field __logType."""
150
+ resource_id: NotRequired[str]
151
+ r"""Optional Resource ID of the Azure resource to associate the data with. Can be overridden by the __resourceId event field. This ID populates the _ResourceId property, allowing the data to be included in resource-centric queries. If the ID is neither specified nor overridden, resource-centric queries will omit the data."""
152
+ concurrency: NotRequired[float]
153
+ r"""Maximum number of ongoing requests before blocking"""
154
+ max_payload_size_kb: NotRequired[float]
155
+ r"""Maximum size, in KB, of the request body"""
156
+ max_payload_events: NotRequired[float]
157
+ r"""Maximum number of events to include in the request body. Default is 0 (unlimited)."""
158
+ compress: NotRequired[bool]
159
+ reject_unauthorized: NotRequired[bool]
160
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's).
161
+ Enabled by default. When this setting is also present in TLS Settings (Client Side),
162
+ that value will take precedence.
163
+ """
164
+ timeout_sec: NotRequired[float]
165
+ r"""Amount of time, in seconds, to wait for a request to complete before canceling it"""
166
+ flush_period_sec: NotRequired[float]
167
+ r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Body size limit."""
168
+ extra_http_headers: NotRequired[List[OutputAzureLogsExtraHTTPHeaderTypedDict]]
169
+ r"""Headers to add to all events"""
170
+ use_round_robin_dns: NotRequired[bool]
171
+ r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
172
+ failed_request_logging_mode: NotRequired[OutputAzureLogsFailedRequestLoggingMode]
173
+ r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
174
+ safe_headers: NotRequired[List[str]]
175
+ r"""List of headers that are safe to log in plain text"""
176
+ api_url: NotRequired[str]
177
+ r"""The DNS name of the Log API endpoint that sends log data to a Log Analytics workspace in Azure Monitor. Defaults to .ods.opinsights.azure.com. @{product} will add a prefix and suffix to construct a URI in this format: <https://<Workspace_ID><your_DNS_name>/api/logs?api-version=<API version>."""
178
+ response_retry_settings: NotRequired[
179
+ List[OutputAzureLogsResponseRetrySettingTypedDict]
180
+ ]
181
+ r"""Automatically retry after unsuccessful response status codes, such as 429 (Too Many Requests) or 503 (Service Unavailable)"""
182
+ timeout_retry_settings: NotRequired[OutputAzureLogsTimeoutRetrySettingsTypedDict]
183
+ response_honor_retry_after_header: NotRequired[bool]
184
+ r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
185
+ on_backpressure: NotRequired[OutputAzureLogsBackpressureBehavior]
186
+ r"""How to handle events when all receivers are exerting backpressure"""
187
+ auth_type: NotRequired[OutputAzureLogsAuthenticationMethod]
188
+ r"""Enter workspace ID and workspace key directly, or select a stored secret"""
189
+ description: NotRequired[str]
190
+ pq_max_file_size: NotRequired[str]
191
+ r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
192
+ pq_max_size: NotRequired[str]
193
+ r"""The maximum disk space that the queue can consume (as an average per Worker Process) before queueing stops. Enter a numeral with units of KB, MB, etc."""
194
+ pq_path: NotRequired[str]
195
+ r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
196
+ pq_compress: NotRequired[OutputAzureLogsCompression]
197
+ r"""Codec to use to compress the persisted data"""
198
+ pq_on_backpressure: NotRequired[OutputAzureLogsQueueFullBehavior]
199
+ r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
200
+ pq_mode: NotRequired[OutputAzureLogsMode]
201
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
202
+ pq_controls: NotRequired[OutputAzureLogsPqControlsTypedDict]
203
+ workspace_id: NotRequired[str]
204
+ r"""Azure Log Analytics Workspace ID. See Azure Dashboard Workspace > Advanced settings."""
205
+ workspace_key: NotRequired[str]
206
+ r"""Azure Log Analytics Workspace Primary or Secondary Shared Key. See Azure Dashboard Workspace > Advanced settings."""
207
+ keypair_secret: NotRequired[str]
208
+ r"""Select or create a stored secret that references your access key and secret key"""
209
+
210
+
211
+ class OutputAzureLogs(BaseModel):
212
+ type: Annotated[OutputAzureLogsType, PlainValidator(validate_open_enum(False))]
213
+
214
+ id: Optional[str] = None
215
+ r"""Unique ID for this output"""
216
+
217
+ pipeline: Optional[str] = None
218
+ r"""Pipeline to process data before sending out to this output"""
219
+
220
+ system_fields: Annotated[
221
+ Optional[List[str]], pydantic.Field(alias="systemFields")
222
+ ] = None
223
+ r"""Fields to automatically add to events, such as cribl_pipe. Supports wildcards."""
224
+
225
+ environment: Optional[str] = None
226
+ r"""Optionally, enable this config only on a specified Git branch. If empty, will be enabled everywhere."""
227
+
228
+ streamtags: Optional[List[str]] = None
229
+ r"""Tags for filtering and grouping in @{product}"""
230
+
231
+ log_type: Annotated[Optional[str], pydantic.Field(alias="logType")] = "Cribl"
232
+ r"""The Log Type of events sent to this LogAnalytics workspace. Defaults to `Cribl`. Use only letters, numbers, and `_` characters, and can't exceed 100 characters. Can be overwritten by event field __logType."""
233
+
234
+ resource_id: Annotated[Optional[str], pydantic.Field(alias="resourceId")] = None
235
+ r"""Optional Resource ID of the Azure resource to associate the data with. Can be overridden by the __resourceId event field. This ID populates the _ResourceId property, allowing the data to be included in resource-centric queries. If the ID is neither specified nor overridden, resource-centric queries will omit the data."""
236
+
237
+ concurrency: Optional[float] = 5
238
+ r"""Maximum number of ongoing requests before blocking"""
239
+
240
+ max_payload_size_kb: Annotated[
241
+ Optional[float], pydantic.Field(alias="maxPayloadSizeKB")
242
+ ] = 1024
243
+ r"""Maximum size, in KB, of the request body"""
244
+
245
+ max_payload_events: Annotated[
246
+ Optional[float], pydantic.Field(alias="maxPayloadEvents")
247
+ ] = 0
248
+ r"""Maximum number of events to include in the request body. Default is 0 (unlimited)."""
249
+
250
+ compress: Optional[bool] = None
251
+
252
+ reject_unauthorized: Annotated[
253
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
254
+ ] = True
255
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's).
256
+ Enabled by default. When this setting is also present in TLS Settings (Client Side),
257
+ that value will take precedence.
258
+ """
259
+
260
+ timeout_sec: Annotated[Optional[float], pydantic.Field(alias="timeoutSec")] = 30
261
+ r"""Amount of time, in seconds, to wait for a request to complete before canceling it"""
262
+
263
+ flush_period_sec: Annotated[
264
+ Optional[float], pydantic.Field(alias="flushPeriodSec")
265
+ ] = 1
266
+ r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Body size limit."""
267
+
268
+ extra_http_headers: Annotated[
269
+ Optional[List[OutputAzureLogsExtraHTTPHeader]],
270
+ pydantic.Field(alias="extraHttpHeaders"),
271
+ ] = None
272
+ r"""Headers to add to all events"""
273
+
274
+ use_round_robin_dns: Annotated[
275
+ Optional[bool], pydantic.Field(alias="useRoundRobinDns")
276
+ ] = False
277
+ r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
278
+
279
+ failed_request_logging_mode: Annotated[
280
+ Annotated[
281
+ Optional[OutputAzureLogsFailedRequestLoggingMode],
282
+ PlainValidator(validate_open_enum(False)),
283
+ ],
284
+ pydantic.Field(alias="failedRequestLoggingMode"),
285
+ ] = OutputAzureLogsFailedRequestLoggingMode.NONE
286
+ r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
287
+
288
+ safe_headers: Annotated[
289
+ Optional[List[str]], pydantic.Field(alias="safeHeaders")
290
+ ] = None
291
+ r"""List of headers that are safe to log in plain text"""
292
+
293
+ api_url: Annotated[Optional[str], pydantic.Field(alias="apiUrl")] = (
294
+ ".ods.opinsights.azure.com"
295
+ )
296
+ r"""The DNS name of the Log API endpoint that sends log data to a Log Analytics workspace in Azure Monitor. Defaults to .ods.opinsights.azure.com. @{product} will add a prefix and suffix to construct a URI in this format: <https://<Workspace_ID><your_DNS_name>/api/logs?api-version=<API version>."""
297
+
298
+ response_retry_settings: Annotated[
299
+ Optional[List[OutputAzureLogsResponseRetrySetting]],
300
+ pydantic.Field(alias="responseRetrySettings"),
301
+ ] = None
302
+ r"""Automatically retry after unsuccessful response status codes, such as 429 (Too Many Requests) or 503 (Service Unavailable)"""
303
+
304
+ timeout_retry_settings: Annotated[
305
+ Optional[OutputAzureLogsTimeoutRetrySettings],
306
+ pydantic.Field(alias="timeoutRetrySettings"),
307
+ ] = None
308
+
309
+ response_honor_retry_after_header: Annotated[
310
+ Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
311
+ ] = False
312
+ r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
313
+
314
+ on_backpressure: Annotated[
315
+ Annotated[
316
+ Optional[OutputAzureLogsBackpressureBehavior],
317
+ PlainValidator(validate_open_enum(False)),
318
+ ],
319
+ pydantic.Field(alias="onBackpressure"),
320
+ ] = OutputAzureLogsBackpressureBehavior.BLOCK
321
+ r"""How to handle events when all receivers are exerting backpressure"""
322
+
323
+ auth_type: Annotated[
324
+ Annotated[
325
+ Optional[OutputAzureLogsAuthenticationMethod],
326
+ PlainValidator(validate_open_enum(False)),
327
+ ],
328
+ pydantic.Field(alias="authType"),
329
+ ] = OutputAzureLogsAuthenticationMethod.MANUAL
330
+ r"""Enter workspace ID and workspace key directly, or select a stored secret"""
331
+
332
+ description: Optional[str] = None
333
+
334
+ pq_max_file_size: Annotated[
335
+ Optional[str], pydantic.Field(alias="pqMaxFileSize")
336
+ ] = "1 MB"
337
+ r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
338
+
339
+ pq_max_size: Annotated[Optional[str], pydantic.Field(alias="pqMaxSize")] = "5GB"
340
+ r"""The maximum disk space that the queue can consume (as an average per Worker Process) before queueing stops. Enter a numeral with units of KB, MB, etc."""
341
+
342
+ pq_path: Annotated[Optional[str], pydantic.Field(alias="pqPath")] = (
343
+ "$CRIBL_HOME/state/queues"
344
+ )
345
+ r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
346
+
347
+ pq_compress: Annotated[
348
+ Annotated[
349
+ Optional[OutputAzureLogsCompression],
350
+ PlainValidator(validate_open_enum(False)),
351
+ ],
352
+ pydantic.Field(alias="pqCompress"),
353
+ ] = OutputAzureLogsCompression.NONE
354
+ r"""Codec to use to compress the persisted data"""
355
+
356
+ pq_on_backpressure: Annotated[
357
+ Annotated[
358
+ Optional[OutputAzureLogsQueueFullBehavior],
359
+ PlainValidator(validate_open_enum(False)),
360
+ ],
361
+ pydantic.Field(alias="pqOnBackpressure"),
362
+ ] = OutputAzureLogsQueueFullBehavior.BLOCK
363
+ r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
364
+
365
+ pq_mode: Annotated[
366
+ Annotated[
367
+ Optional[OutputAzureLogsMode], PlainValidator(validate_open_enum(False))
368
+ ],
369
+ pydantic.Field(alias="pqMode"),
370
+ ] = OutputAzureLogsMode.ERROR
371
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
372
+
373
+ pq_controls: Annotated[
374
+ Optional[OutputAzureLogsPqControls], pydantic.Field(alias="pqControls")
375
+ ] = None
376
+
377
+ workspace_id: Annotated[Optional[str], pydantic.Field(alias="workspaceId")] = None
378
+ r"""Azure Log Analytics Workspace ID. See Azure Dashboard Workspace > Advanced settings."""
379
+
380
+ workspace_key: Annotated[Optional[str], pydantic.Field(alias="workspaceKey")] = None
381
+ r"""Azure Log Analytics Workspace Primary or Secondary Shared Key. See Azure Dashboard Workspace > Advanced settings."""
382
+
383
+ keypair_secret: Annotated[Optional[str], pydantic.Field(alias="keypairSecret")] = (
384
+ None
385
+ )
386
+ r"""Select or create a stored secret that references your access key and secret key"""