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,557 @@
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 OutputGoogleCloudLoggingType(str, Enum, metaclass=utils.OpenEnumMeta):
15
+ GOOGLE_CLOUD_LOGGING = "google_cloud_logging"
16
+
17
+
18
+ class LogLocationType(str, Enum, metaclass=utils.OpenEnumMeta):
19
+ PROJECT = "project"
20
+ ORGANIZATION = "organization"
21
+ BILLING_ACCOUNT = "billingAccount"
22
+ FOLDER = "folder"
23
+
24
+
25
+ class PayloadFormat(str, Enum, metaclass=utils.OpenEnumMeta):
26
+ r"""Format to use when sending payload. Defaults to Text."""
27
+
28
+ TEXT = "text"
29
+ JSON = "json"
30
+
31
+
32
+ class LogLabelTypedDict(TypedDict):
33
+ label: str
34
+ r"""Label name"""
35
+ value_expression: str
36
+ r"""JavaScript expression to compute the label's value."""
37
+
38
+
39
+ class LogLabel(BaseModel):
40
+ label: str
41
+ r"""Label name"""
42
+
43
+ value_expression: Annotated[str, pydantic.Field(alias="valueExpression")]
44
+ r"""JavaScript expression to compute the label's value."""
45
+
46
+
47
+ class ResourceTypeLabelTypedDict(TypedDict):
48
+ label: str
49
+ r"""Label name"""
50
+ value_expression: str
51
+ r"""JavaScript expression to compute the label's value."""
52
+
53
+
54
+ class ResourceTypeLabel(BaseModel):
55
+ label: str
56
+ r"""Label name"""
57
+
58
+ value_expression: Annotated[str, pydantic.Field(alias="valueExpression")]
59
+ r"""JavaScript expression to compute the label's value."""
60
+
61
+
62
+ class OutputGoogleCloudLoggingGoogleAuthenticationMethod(
63
+ str, Enum, metaclass=utils.OpenEnumMeta
64
+ ):
65
+ r"""Choose Auto to use Google Application Default Credentials (ADC), Manual to enter Google service account credentials directly, or Secret to select or create a stored secret that references Google service account credentials."""
66
+
67
+ AUTO = "auto"
68
+ MANUAL = "manual"
69
+ SECRET = "secret"
70
+
71
+
72
+ class OutputGoogleCloudLoggingBackpressureBehavior(
73
+ str, Enum, metaclass=utils.OpenEnumMeta
74
+ ):
75
+ r"""How to handle events when all receivers are exerting backpressure"""
76
+
77
+ BLOCK = "block"
78
+ DROP = "drop"
79
+ QUEUE = "queue"
80
+
81
+
82
+ class OutputGoogleCloudLoggingCompression(str, Enum, metaclass=utils.OpenEnumMeta):
83
+ r"""Codec to use to compress the persisted data"""
84
+
85
+ NONE = "none"
86
+ GZIP = "gzip"
87
+
88
+
89
+ class OutputGoogleCloudLoggingQueueFullBehavior(
90
+ str, Enum, metaclass=utils.OpenEnumMeta
91
+ ):
92
+ 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."""
93
+
94
+ BLOCK = "block"
95
+ DROP = "drop"
96
+
97
+
98
+ class OutputGoogleCloudLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
99
+ 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."""
100
+
101
+ ERROR = "error"
102
+ BACKPRESSURE = "backpressure"
103
+ ALWAYS = "always"
104
+
105
+
106
+ class OutputGoogleCloudLoggingPqControlsTypedDict(TypedDict):
107
+ pass
108
+
109
+
110
+ class OutputGoogleCloudLoggingPqControls(BaseModel):
111
+ pass
112
+
113
+
114
+ class OutputGoogleCloudLoggingTypedDict(TypedDict):
115
+ log_location_type: LogLocationType
116
+ log_name_expression: str
117
+ r"""JavaScript expression to compute the value of the log name."""
118
+ log_location_expression: str
119
+ r"""JavaScript expression to compute the value of the folder ID with which log entries should be associated."""
120
+ id: NotRequired[str]
121
+ r"""Unique ID for this output"""
122
+ type: NotRequired[OutputGoogleCloudLoggingType]
123
+ pipeline: NotRequired[str]
124
+ r"""Pipeline to process data before sending out to this output"""
125
+ system_fields: NotRequired[List[str]]
126
+ r"""Fields to automatically add to events, such as cribl_pipe. Supports wildcards."""
127
+ environment: NotRequired[str]
128
+ r"""Optionally, enable this config only on a specified Git branch. If empty, will be enabled everywhere."""
129
+ streamtags: NotRequired[List[str]]
130
+ r"""Tags for filtering and grouping in @{product}"""
131
+ payload_format: NotRequired[PayloadFormat]
132
+ r"""Format to use when sending payload. Defaults to Text."""
133
+ log_labels: NotRequired[List[LogLabelTypedDict]]
134
+ r"""Labels to apply to the log entry"""
135
+ resource_type_expression: NotRequired[str]
136
+ r"""JavaScript expression to compute the value of the managed resource type field. Must evaluate to one of the valid values [here](https://cloud.google.com/logging/docs/api/v2/resource-list#resource-types). Defaults to \"global\"."""
137
+ resource_type_labels: NotRequired[List[ResourceTypeLabelTypedDict]]
138
+ r"""Labels to apply to the managed resource. These must correspond to the valid labels for the specified resource type (see [here](https://cloud.google.com/logging/docs/api/v2/resource-list#resource-types)). Otherwise, they will be dropped by Google Cloud Logging."""
139
+ severity_expression: NotRequired[str]
140
+ r"""JavaScript expression to compute the value of the severity field. Must evaluate to one of the severity values supported by Google Cloud Logging [here](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logseverity) (case insensitive). Defaults to \"DEFAULT\"."""
141
+ insert_id_expression: NotRequired[str]
142
+ r"""JavaScript expression to compute the value of the insert ID field."""
143
+ google_auth_method: NotRequired[OutputGoogleCloudLoggingGoogleAuthenticationMethod]
144
+ r"""Choose Auto to use Google Application Default Credentials (ADC), Manual to enter Google service account credentials directly, or Secret to select or create a stored secret that references Google service account credentials."""
145
+ service_account_credentials: NotRequired[str]
146
+ r"""Contents of service account credentials (JSON keys) file downloaded from Google Cloud. To upload a file, click the upload button at this field's upper right."""
147
+ secret: NotRequired[str]
148
+ r"""Select or create a stored text secret"""
149
+ max_payload_size_kb: NotRequired[float]
150
+ r"""Maximum size, in KB, of the request body."""
151
+ max_payload_events: NotRequired[float]
152
+ r"""Max number of events to include in the request body. Default is 0 (unlimited)."""
153
+ flush_period_sec: NotRequired[float]
154
+ r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Max record size."""
155
+ concurrency: NotRequired[float]
156
+ r"""Maximum number of ongoing requests before blocking."""
157
+ connection_timeout: NotRequired[float]
158
+ r"""Amount of time (milliseconds) to wait for the connection to establish before retrying"""
159
+ timeout_sec: NotRequired[float]
160
+ r"""Amount of time, in seconds, to wait for a request to complete before canceling it."""
161
+ throttle_rate_req_per_sec: NotRequired[int]
162
+ r"""Maximum number of requests to limit to per second."""
163
+ request_method_expression: NotRequired[str]
164
+ r"""A JavaScript expression that evaluates to the HTTP request method as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
165
+ request_url_expression: NotRequired[str]
166
+ r"""A JavaScript expression that evaluates to the HTTP request URL as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
167
+ request_size_expression: NotRequired[str]
168
+ r"""A JavaScript expression that evaluates to the HTTP request size as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
169
+ status_expression: NotRequired[str]
170
+ r"""A JavaScript expression that evaluates to the HTTP request method as a number. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
171
+ response_size_expression: NotRequired[str]
172
+ r"""A JavaScript expression that evaluates to the HTTP response size as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
173
+ user_agent_expression: NotRequired[str]
174
+ r"""A JavaScript expression that evaluates to the HTTP request user agent as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
175
+ remote_ip_expression: NotRequired[str]
176
+ r"""A JavaScript expression that evaluates to the HTTP request remote IP as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
177
+ server_ip_expression: NotRequired[str]
178
+ r"""A JavaScript expression that evaluates to the HTTP request server IP as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
179
+ referer_expression: NotRequired[str]
180
+ r"""A JavaScript expression that evaluates to the HTTP request referer as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
181
+ latency_expression: NotRequired[str]
182
+ r"""A JavaScript expression that evaluates to the HTTP request latency, formatted as <seconds>.<nanoseconds>s (for example, 1.23s). See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
183
+ cache_lookup_expression: NotRequired[str]
184
+ r"""A JavaScript expression that evaluates to the HTTP request cache lookup as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
185
+ cache_hit_expression: NotRequired[str]
186
+ r"""A JavaScript expression that evaluates to the HTTP request cache hit as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
187
+ cache_validated_expression: NotRequired[str]
188
+ r"""A JavaScript expression that evaluates to the HTTP request cache validated with origin server as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
189
+ cache_fill_bytes_expression: NotRequired[str]
190
+ r"""A JavaScript expression that evaluates to the HTTP request cache fill bytes as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
191
+ protocol_expression: NotRequired[str]
192
+ r"""A JavaScript expression that evaluates to the HTTP request protocol as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
193
+ id_expression: NotRequired[str]
194
+ r"""A JavaScript expression that evaluates to the log entry operation ID as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
195
+ producer_expression: NotRequired[str]
196
+ r"""A JavaScript expression that evaluates to the log entry operation producer as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
197
+ first_expression: NotRequired[str]
198
+ r"""A JavaScript expression that evaluates to the log entry operation first flag as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
199
+ last_expression: NotRequired[str]
200
+ r"""A JavaScript expression that evaluates to the log entry operation last flag as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
201
+ file_expression: NotRequired[str]
202
+ r"""A JavaScript expression that evaluates to the log entry source location file as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentrysourcelocation) for details."""
203
+ line_expression: NotRequired[str]
204
+ r"""A JavaScript expression that evaluates to the log entry source location line as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentrysourcelocation) for details."""
205
+ function_expression: NotRequired[str]
206
+ r"""A JavaScript expression that evaluates to the log entry source location function as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentrysourcelocation) for details."""
207
+ uid_expression: NotRequired[str]
208
+ r"""A JavaScript expression that evaluates to the log entry log split UID as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logsplit) for details."""
209
+ index_expression: NotRequired[str]
210
+ r"""A JavaScript expression that evaluates to the log entry log split index as a number. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logsplit) for details."""
211
+ total_splits_expression: NotRequired[str]
212
+ r"""A JavaScript expression that evaluates to the log entry log split total splits as a number. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logsplit) for details."""
213
+ trace_expression: NotRequired[str]
214
+ r"""A JavaScript expression that evaluates to the REST resource name of the trace being written as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) for details."""
215
+ span_id_expression: NotRequired[str]
216
+ r"""A JavaScript expression that evaluates to the ID of the cloud trace span associated with the current operation in which the log is being written as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) for details."""
217
+ trace_sampled_expression: NotRequired[str]
218
+ r"""A JavaScript expression that evaluates to the the sampling decision of the span associated with the log entry. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) for details."""
219
+ on_backpressure: NotRequired[OutputGoogleCloudLoggingBackpressureBehavior]
220
+ r"""How to handle events when all receivers are exerting backpressure"""
221
+ total_memory_limit_kb: NotRequired[float]
222
+ r"""Maximum total size of the batches waiting to be sent. If left blank, defaults to 5 times the max body size (if set). If 0, no limit is enforced."""
223
+ description: NotRequired[str]
224
+ payload_expression: NotRequired[str]
225
+ r"""JavaScript expression to compute the value of the payload. Must evaluate to a JavaScript object value. If an invalid value is encountered it will result in the default value instead. Defaults to the entire event."""
226
+ pq_max_file_size: NotRequired[str]
227
+ r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
228
+ pq_max_size: NotRequired[str]
229
+ 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."""
230
+ pq_path: NotRequired[str]
231
+ r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
232
+ pq_compress: NotRequired[OutputGoogleCloudLoggingCompression]
233
+ r"""Codec to use to compress the persisted data"""
234
+ pq_on_backpressure: NotRequired[OutputGoogleCloudLoggingQueueFullBehavior]
235
+ 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."""
236
+ pq_mode: NotRequired[OutputGoogleCloudLoggingMode]
237
+ 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."""
238
+ pq_controls: NotRequired[OutputGoogleCloudLoggingPqControlsTypedDict]
239
+
240
+
241
+ class OutputGoogleCloudLogging(BaseModel):
242
+ log_location_type: Annotated[
243
+ Annotated[LogLocationType, PlainValidator(validate_open_enum(False))],
244
+ pydantic.Field(alias="logLocationType"),
245
+ ]
246
+
247
+ log_name_expression: Annotated[str, pydantic.Field(alias="logNameExpression")]
248
+ r"""JavaScript expression to compute the value of the log name."""
249
+
250
+ log_location_expression: Annotated[
251
+ str, pydantic.Field(alias="logLocationExpression")
252
+ ]
253
+ r"""JavaScript expression to compute the value of the folder ID with which log entries should be associated."""
254
+
255
+ id: Optional[str] = None
256
+ r"""Unique ID for this output"""
257
+
258
+ type: Annotated[
259
+ Optional[OutputGoogleCloudLoggingType],
260
+ PlainValidator(validate_open_enum(False)),
261
+ ] = None
262
+
263
+ pipeline: Optional[str] = None
264
+ r"""Pipeline to process data before sending out to this output"""
265
+
266
+ system_fields: Annotated[
267
+ Optional[List[str]], pydantic.Field(alias="systemFields")
268
+ ] = None
269
+ r"""Fields to automatically add to events, such as cribl_pipe. Supports wildcards."""
270
+
271
+ environment: Optional[str] = None
272
+ r"""Optionally, enable this config only on a specified Git branch. If empty, will be enabled everywhere."""
273
+
274
+ streamtags: Optional[List[str]] = None
275
+ r"""Tags for filtering and grouping in @{product}"""
276
+
277
+ payload_format: Annotated[
278
+ Annotated[Optional[PayloadFormat], PlainValidator(validate_open_enum(False))],
279
+ pydantic.Field(alias="payloadFormat"),
280
+ ] = PayloadFormat.TEXT
281
+ r"""Format to use when sending payload. Defaults to Text."""
282
+
283
+ log_labels: Annotated[
284
+ Optional[List[LogLabel]], pydantic.Field(alias="logLabels")
285
+ ] = None
286
+ r"""Labels to apply to the log entry"""
287
+
288
+ resource_type_expression: Annotated[
289
+ Optional[str], pydantic.Field(alias="resourceTypeExpression")
290
+ ] = None
291
+ r"""JavaScript expression to compute the value of the managed resource type field. Must evaluate to one of the valid values [here](https://cloud.google.com/logging/docs/api/v2/resource-list#resource-types). Defaults to \"global\"."""
292
+
293
+ resource_type_labels: Annotated[
294
+ Optional[List[ResourceTypeLabel]], pydantic.Field(alias="resourceTypeLabels")
295
+ ] = None
296
+ r"""Labels to apply to the managed resource. These must correspond to the valid labels for the specified resource type (see [here](https://cloud.google.com/logging/docs/api/v2/resource-list#resource-types)). Otherwise, they will be dropped by Google Cloud Logging."""
297
+
298
+ severity_expression: Annotated[
299
+ Optional[str], pydantic.Field(alias="severityExpression")
300
+ ] = None
301
+ r"""JavaScript expression to compute the value of the severity field. Must evaluate to one of the severity values supported by Google Cloud Logging [here](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logseverity) (case insensitive). Defaults to \"DEFAULT\"."""
302
+
303
+ insert_id_expression: Annotated[
304
+ Optional[str], pydantic.Field(alias="insertIdExpression")
305
+ ] = None
306
+ r"""JavaScript expression to compute the value of the insert ID field."""
307
+
308
+ google_auth_method: Annotated[
309
+ Annotated[
310
+ Optional[OutputGoogleCloudLoggingGoogleAuthenticationMethod],
311
+ PlainValidator(validate_open_enum(False)),
312
+ ],
313
+ pydantic.Field(alias="googleAuthMethod"),
314
+ ] = OutputGoogleCloudLoggingGoogleAuthenticationMethod.MANUAL
315
+ r"""Choose Auto to use Google Application Default Credentials (ADC), Manual to enter Google service account credentials directly, or Secret to select or create a stored secret that references Google service account credentials."""
316
+
317
+ service_account_credentials: Annotated[
318
+ Optional[str], pydantic.Field(alias="serviceAccountCredentials")
319
+ ] = None
320
+ r"""Contents of service account credentials (JSON keys) file downloaded from Google Cloud. To upload a file, click the upload button at this field's upper right."""
321
+
322
+ secret: Optional[str] = None
323
+ r"""Select or create a stored text secret"""
324
+
325
+ max_payload_size_kb: Annotated[
326
+ Optional[float], pydantic.Field(alias="maxPayloadSizeKB")
327
+ ] = 4096
328
+ r"""Maximum size, in KB, of the request body."""
329
+
330
+ max_payload_events: Annotated[
331
+ Optional[float], pydantic.Field(alias="maxPayloadEvents")
332
+ ] = 0
333
+ r"""Max number of events to include in the request body. Default is 0 (unlimited)."""
334
+
335
+ flush_period_sec: Annotated[
336
+ Optional[float], pydantic.Field(alias="flushPeriodSec")
337
+ ] = 1
338
+ r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Max record size."""
339
+
340
+ concurrency: Optional[float] = 5
341
+ r"""Maximum number of ongoing requests before blocking."""
342
+
343
+ connection_timeout: Annotated[
344
+ Optional[float], pydantic.Field(alias="connectionTimeout")
345
+ ] = 10000
346
+ r"""Amount of time (milliseconds) to wait for the connection to establish before retrying"""
347
+
348
+ timeout_sec: Annotated[Optional[float], pydantic.Field(alias="timeoutSec")] = 30
349
+ r"""Amount of time, in seconds, to wait for a request to complete before canceling it."""
350
+
351
+ throttle_rate_req_per_sec: Annotated[
352
+ Optional[int], pydantic.Field(alias="throttleRateReqPerSec")
353
+ ] = None
354
+ r"""Maximum number of requests to limit to per second."""
355
+
356
+ request_method_expression: Annotated[
357
+ Optional[str], pydantic.Field(alias="requestMethodExpression")
358
+ ] = None
359
+ r"""A JavaScript expression that evaluates to the HTTP request method as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
360
+
361
+ request_url_expression: Annotated[
362
+ Optional[str], pydantic.Field(alias="requestUrlExpression")
363
+ ] = None
364
+ r"""A JavaScript expression that evaluates to the HTTP request URL as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
365
+
366
+ request_size_expression: Annotated[
367
+ Optional[str], pydantic.Field(alias="requestSizeExpression")
368
+ ] = None
369
+ r"""A JavaScript expression that evaluates to the HTTP request size as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
370
+
371
+ status_expression: Annotated[
372
+ Optional[str], pydantic.Field(alias="statusExpression")
373
+ ] = None
374
+ r"""A JavaScript expression that evaluates to the HTTP request method as a number. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
375
+
376
+ response_size_expression: Annotated[
377
+ Optional[str], pydantic.Field(alias="responseSizeExpression")
378
+ ] = None
379
+ r"""A JavaScript expression that evaluates to the HTTP response size as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
380
+
381
+ user_agent_expression: Annotated[
382
+ Optional[str], pydantic.Field(alias="userAgentExpression")
383
+ ] = None
384
+ r"""A JavaScript expression that evaluates to the HTTP request user agent as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
385
+
386
+ remote_ip_expression: Annotated[
387
+ Optional[str], pydantic.Field(alias="remoteIpExpression")
388
+ ] = None
389
+ r"""A JavaScript expression that evaluates to the HTTP request remote IP as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
390
+
391
+ server_ip_expression: Annotated[
392
+ Optional[str], pydantic.Field(alias="serverIpExpression")
393
+ ] = None
394
+ r"""A JavaScript expression that evaluates to the HTTP request server IP as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
395
+
396
+ referer_expression: Annotated[
397
+ Optional[str], pydantic.Field(alias="refererExpression")
398
+ ] = None
399
+ r"""A JavaScript expression that evaluates to the HTTP request referer as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
400
+
401
+ latency_expression: Annotated[
402
+ Optional[str], pydantic.Field(alias="latencyExpression")
403
+ ] = None
404
+ r"""A JavaScript expression that evaluates to the HTTP request latency, formatted as <seconds>.<nanoseconds>s (for example, 1.23s). See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
405
+
406
+ cache_lookup_expression: Annotated[
407
+ Optional[str], pydantic.Field(alias="cacheLookupExpression")
408
+ ] = None
409
+ r"""A JavaScript expression that evaluates to the HTTP request cache lookup as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
410
+
411
+ cache_hit_expression: Annotated[
412
+ Optional[str], pydantic.Field(alias="cacheHitExpression")
413
+ ] = None
414
+ r"""A JavaScript expression that evaluates to the HTTP request cache hit as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
415
+
416
+ cache_validated_expression: Annotated[
417
+ Optional[str], pydantic.Field(alias="cacheValidatedExpression")
418
+ ] = None
419
+ r"""A JavaScript expression that evaluates to the HTTP request cache validated with origin server as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
420
+
421
+ cache_fill_bytes_expression: Annotated[
422
+ Optional[str], pydantic.Field(alias="cacheFillBytesExpression")
423
+ ] = None
424
+ r"""A JavaScript expression that evaluates to the HTTP request cache fill bytes as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
425
+
426
+ protocol_expression: Annotated[
427
+ Optional[str], pydantic.Field(alias="protocolExpression")
428
+ ] = None
429
+ r"""A JavaScript expression that evaluates to the HTTP request protocol as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest) for details."""
430
+
431
+ id_expression: Annotated[Optional[str], pydantic.Field(alias="idExpression")] = None
432
+ r"""A JavaScript expression that evaluates to the log entry operation ID as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
433
+
434
+ producer_expression: Annotated[
435
+ Optional[str], pydantic.Field(alias="producerExpression")
436
+ ] = None
437
+ r"""A JavaScript expression that evaluates to the log entry operation producer as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
438
+
439
+ first_expression: Annotated[
440
+ Optional[str], pydantic.Field(alias="firstExpression")
441
+ ] = None
442
+ r"""A JavaScript expression that evaluates to the log entry operation first flag as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
443
+
444
+ last_expression: Annotated[
445
+ Optional[str], pydantic.Field(alias="lastExpression")
446
+ ] = None
447
+ r"""A JavaScript expression that evaluates to the log entry operation last flag as a boolean. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentryoperation) for details."""
448
+
449
+ file_expression: Annotated[
450
+ Optional[str], pydantic.Field(alias="fileExpression")
451
+ ] = None
452
+ r"""A JavaScript expression that evaluates to the log entry source location file as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentrysourcelocation) for details."""
453
+
454
+ line_expression: Annotated[
455
+ Optional[str], pydantic.Field(alias="lineExpression")
456
+ ] = None
457
+ r"""A JavaScript expression that evaluates to the log entry source location line as a string, in int64 format. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentrysourcelocation) for details."""
458
+
459
+ function_expression: Annotated[
460
+ Optional[str], pydantic.Field(alias="functionExpression")
461
+ ] = None
462
+ r"""A JavaScript expression that evaluates to the log entry source location function as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logentrysourcelocation) for details."""
463
+
464
+ uid_expression: Annotated[Optional[str], pydantic.Field(alias="uidExpression")] = (
465
+ None
466
+ )
467
+ r"""A JavaScript expression that evaluates to the log entry log split UID as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logsplit) for details."""
468
+
469
+ index_expression: Annotated[
470
+ Optional[str], pydantic.Field(alias="indexExpression")
471
+ ] = None
472
+ r"""A JavaScript expression that evaluates to the log entry log split index as a number. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logsplit) for details."""
473
+
474
+ total_splits_expression: Annotated[
475
+ Optional[str], pydantic.Field(alias="totalSplitsExpression")
476
+ ] = None
477
+ r"""A JavaScript expression that evaluates to the log entry log split total splits as a number. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logsplit) for details."""
478
+
479
+ trace_expression: Annotated[
480
+ Optional[str], pydantic.Field(alias="traceExpression")
481
+ ] = None
482
+ r"""A JavaScript expression that evaluates to the REST resource name of the trace being written as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) for details."""
483
+
484
+ span_id_expression: Annotated[
485
+ Optional[str], pydantic.Field(alias="spanIdExpression")
486
+ ] = None
487
+ r"""A JavaScript expression that evaluates to the ID of the cloud trace span associated with the current operation in which the log is being written as a string. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) for details."""
488
+
489
+ trace_sampled_expression: Annotated[
490
+ Optional[str], pydantic.Field(alias="traceSampledExpression")
491
+ ] = None
492
+ r"""A JavaScript expression that evaluates to the the sampling decision of the span associated with the log entry. See the [documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) for details."""
493
+
494
+ on_backpressure: Annotated[
495
+ Annotated[
496
+ Optional[OutputGoogleCloudLoggingBackpressureBehavior],
497
+ PlainValidator(validate_open_enum(False)),
498
+ ],
499
+ pydantic.Field(alias="onBackpressure"),
500
+ ] = OutputGoogleCloudLoggingBackpressureBehavior.BLOCK
501
+ r"""How to handle events when all receivers are exerting backpressure"""
502
+
503
+ total_memory_limit_kb: Annotated[
504
+ Optional[float], pydantic.Field(alias="totalMemoryLimitKB")
505
+ ] = None
506
+ r"""Maximum total size of the batches waiting to be sent. If left blank, defaults to 5 times the max body size (if set). If 0, no limit is enforced."""
507
+
508
+ description: Optional[str] = None
509
+
510
+ payload_expression: Annotated[
511
+ Optional[str], pydantic.Field(alias="payloadExpression")
512
+ ] = None
513
+ r"""JavaScript expression to compute the value of the payload. Must evaluate to a JavaScript object value. If an invalid value is encountered it will result in the default value instead. Defaults to the entire event."""
514
+
515
+ pq_max_file_size: Annotated[
516
+ Optional[str], pydantic.Field(alias="pqMaxFileSize")
517
+ ] = "1 MB"
518
+ r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
519
+
520
+ pq_max_size: Annotated[Optional[str], pydantic.Field(alias="pqMaxSize")] = "5GB"
521
+ 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."""
522
+
523
+ pq_path: Annotated[Optional[str], pydantic.Field(alias="pqPath")] = (
524
+ "$CRIBL_HOME/state/queues"
525
+ )
526
+ r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
527
+
528
+ pq_compress: Annotated[
529
+ Annotated[
530
+ Optional[OutputGoogleCloudLoggingCompression],
531
+ PlainValidator(validate_open_enum(False)),
532
+ ],
533
+ pydantic.Field(alias="pqCompress"),
534
+ ] = OutputGoogleCloudLoggingCompression.NONE
535
+ r"""Codec to use to compress the persisted data"""
536
+
537
+ pq_on_backpressure: Annotated[
538
+ Annotated[
539
+ Optional[OutputGoogleCloudLoggingQueueFullBehavior],
540
+ PlainValidator(validate_open_enum(False)),
541
+ ],
542
+ pydantic.Field(alias="pqOnBackpressure"),
543
+ ] = OutputGoogleCloudLoggingQueueFullBehavior.BLOCK
544
+ 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."""
545
+
546
+ pq_mode: Annotated[
547
+ Annotated[
548
+ Optional[OutputGoogleCloudLoggingMode],
549
+ PlainValidator(validate_open_enum(False)),
550
+ ],
551
+ pydantic.Field(alias="pqMode"),
552
+ ] = OutputGoogleCloudLoggingMode.ERROR
553
+ 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."""
554
+
555
+ pq_controls: Annotated[
556
+ Optional[OutputGoogleCloudLoggingPqControls], pydantic.Field(alias="pqControls")
557
+ ] = None