google_cloudevents/
lib.rs

1pub mod google;
2pub static ALL_EVENT_PATHS: &[&str] = &[
3    // alloydb/v1
4    "google_cloudevents::google::events::cloud::alloydb::v1::ClusterCreatedEvent",
5    "google_cloudevents::google::events::cloud::alloydb::v1::ClusterUpdatedEvent",
6    "google_cloudevents::google::events::cloud::alloydb::v1::ClusterDeletedEvent",
7    "google_cloudevents::google::events::cloud::alloydb::v1::InstanceCreatedEvent",
8    "google_cloudevents::google::events::cloud::alloydb::v1::InstanceUpdatedEvent",
9    "google_cloudevents::google::events::cloud::alloydb::v1::InstanceDeletedEvent",
10    "google_cloudevents::google::events::cloud::alloydb::v1::BackupCreatedEvent",
11    "google_cloudevents::google::events::cloud::alloydb::v1::BackupUpdatedEvent",
12    "google_cloudevents::google::events::cloud::alloydb::v1::BackupDeletedEvent",
13
14    // apigateway/v1
15    "google_cloudevents::google::events::cloud::apigateway::v1::GatewayCreatedEvent",
16    "google_cloudevents::google::events::cloud::apigateway::v1::GatewayUpdatedEvent",
17    "google_cloudevents::google::events::cloud::apigateway::v1::GatewayDeletedEvent",
18    "google_cloudevents::google::events::cloud::apigateway::v1::ApiCreatedEvent",
19    "google_cloudevents::google::events::cloud::apigateway::v1::ApiUpdatedEvent",
20    "google_cloudevents::google::events::cloud::apigateway::v1::ApiDeletedEvent",
21    "google_cloudevents::google::events::cloud::apigateway::v1::ApiConfigCreatedEvent",
22    "google_cloudevents::google::events::cloud::apigateway::v1::ApiConfigUpdatedEvent",
23    "google_cloudevents::google::events::cloud::apigateway::v1::ApiConfigDeletedEvent",
24
25    // apigeeregistry/v1
26    "google_cloudevents::google::events::cloud::apigeeregistry::v1::InstanceCreatedEvent",
27    "google_cloudevents::google::events::cloud::apigeeregistry::v1::InstanceDeletedEvent",
28    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiCreatedEvent",
29    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiUpdatedEvent",
30    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiDeletedEvent",
31    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiVersionCreatedEvent",
32    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiVersionUpdatedEvent",
33    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiVersionDeletedEvent",
34    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiSpecCreatedEvent",
35    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiSpecUpdatedEvent",
36    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiSpecDeletedEvent",
37    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiDeploymentCreatedEvent",
38    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiDeploymentUpdatedEvent",
39    "google_cloudevents::google::events::cloud::apigeeregistry::v1::ApiDeploymentDeletedEvent",
40
41    // audit/v1
42    "google_cloudevents::google::events::cloud::audit::v1::AuditLogWrittenEvent",
43
44    // batch/v1
45    "google_cloudevents::google::events::cloud::batch::v1::StatusEvent",
46    "google_cloudevents::google::events::cloud::batch::v1::JobCreatedEvent",
47    "google_cloudevents::google::events::cloud::batch::v1::JobDeletedEvent",
48
49    // beyondcorp/appconnections/v1
50    "google_cloudevents::google::events::cloud::beyondcorp::appconnections::v1::AppConnectionCreatedEvent",
51    "google_cloudevents::google::events::cloud::beyondcorp::appconnections::v1::AppConnectionUpdatedEvent",
52    "google_cloudevents::google::events::cloud::beyondcorp::appconnections::v1::AppConnectionDeletedEvent",
53
54    // beyondcorp/appconnectors/v1
55    "google_cloudevents::google::events::cloud::beyondcorp::appconnectors::v1::AppConnectorCreatedEvent",
56    "google_cloudevents::google::events::cloud::beyondcorp::appconnectors::v1::AppConnectorUpdatedEvent",
57    "google_cloudevents::google::events::cloud::beyondcorp::appconnectors::v1::AppConnectorDeletedEvent",
58
59    // beyondcorp/appgateways/v1
60    "google_cloudevents::google::events::cloud::beyondcorp::appgateways::v1::AppGatewayCreatedEvent",
61    "google_cloudevents::google::events::cloud::beyondcorp::appgateways::v1::AppGatewayDeletedEvent",
62
63    // beyondcorp/clientconnectorservices/v1
64    "google_cloudevents::google::events::cloud::beyondcorp::clientconnectorservices::v1::ClientConnectorServiceCreatedEvent",
65    "google_cloudevents::google::events::cloud::beyondcorp::clientconnectorservices::v1::ClientConnectorServiceUpdatedEvent",
66    "google_cloudevents::google::events::cloud::beyondcorp::clientconnectorservices::v1::ClientConnectorServiceDeletedEvent",
67
68    // beyondcorp/clientgateways/v1
69    "google_cloudevents::google::events::cloud::beyondcorp::clientgateways::v1::ClientGatewayCreatedEvent",
70    "google_cloudevents::google::events::cloud::beyondcorp::clientgateways::v1::ClientGatewayDeletedEvent",
71
72    // certificatemanager/v1
73    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateCreatedEvent",
74    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateUpdatedEvent",
75    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateDeletedEvent",
76    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateMapCreatedEvent",
77    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateMapUpdatedEvent",
78    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateMapDeletedEvent",
79    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateMapEntryCreatedEvent",
80    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateMapEntryUpdatedEvent",
81    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateMapEntryDeletedEvent",
82    "google_cloudevents::google::events::cloud::certificatemanager::v1::DnsAuthorizationCreatedEvent",
83    "google_cloudevents::google::events::cloud::certificatemanager::v1::DnsAuthorizationUpdatedEvent",
84    "google_cloudevents::google::events::cloud::certificatemanager::v1::DnsAuthorizationDeletedEvent",
85    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateIssuanceConfigCreatedEvent",
86    "google_cloudevents::google::events::cloud::certificatemanager::v1::CertificateIssuanceConfigDeletedEvent",
87
88    // cloudbuild/v1
89    "google_cloudevents::google::events::cloud::cloudbuild::v1::CloudBuildEvent",
90
91    // clouddms/v1
92    "google_cloudevents::google::events::cloud::clouddms::v1::MigrationJobCreatedEvent",
93    "google_cloudevents::google::events::cloud::clouddms::v1::MigrationJobUpdatedEvent",
94    "google_cloudevents::google::events::cloud::clouddms::v1::MigrationJobDeletedEvent",
95    "google_cloudevents::google::events::cloud::clouddms::v1::ConnectionProfileCreatedEvent",
96    "google_cloudevents::google::events::cloud::clouddms::v1::ConnectionProfileUpdatedEvent",
97    "google_cloudevents::google::events::cloud::clouddms::v1::ConnectionProfileDeletedEvent",
98
99    // dataflow/v1beta3
100    "google_cloudevents::google::events::cloud::dataflow::v1beta3::JobStatusChangedEvent",
101
102    // datafusion/v1
103    "google_cloudevents::google::events::cloud::datafusion::v1::InstanceCreatedEvent",
104    "google_cloudevents::google::events::cloud::datafusion::v1::InstanceDeletedEvent",
105    "google_cloudevents::google::events::cloud::datafusion::v1::InstanceUpdatedEvent",
106    "google_cloudevents::google::events::cloud::datafusion::v1::DnsPeeringCreatedEvent",
107    "google_cloudevents::google::events::cloud::datafusion::v1::DnsPeeringDeletedEvent",
108
109    // dataplex/v1
110    "google_cloudevents::google::events::cloud::dataplex::v1::DataTaxonomyCreatedEvent",
111    "google_cloudevents::google::events::cloud::dataplex::v1::DataTaxonomyUpdatedEvent",
112    "google_cloudevents::google::events::cloud::dataplex::v1::DataTaxonomyDeletedEvent",
113    "google_cloudevents::google::events::cloud::dataplex::v1::DataAttributeBindingCreatedEvent",
114    "google_cloudevents::google::events::cloud::dataplex::v1::DataAttributeBindingUpdatedEvent",
115    "google_cloudevents::google::events::cloud::dataplex::v1::DataAttributeBindingDeletedEvent",
116    "google_cloudevents::google::events::cloud::dataplex::v1::DataAttributeCreatedEvent",
117    "google_cloudevents::google::events::cloud::dataplex::v1::DataAttributeUpdatedEvent",
118    "google_cloudevents::google::events::cloud::dataplex::v1::DataAttributeDeletedEvent",
119    "google_cloudevents::google::events::cloud::dataplex::v1::DataScanCreatedEvent",
120    "google_cloudevents::google::events::cloud::dataplex::v1::DataScanUpdatedEvent",
121    "google_cloudevents::google::events::cloud::dataplex::v1::DataScanDeletedEvent",
122    "google_cloudevents::google::events::cloud::dataplex::v1::LakeCreatedEvent",
123    "google_cloudevents::google::events::cloud::dataplex::v1::LakeUpdatedEvent",
124    "google_cloudevents::google::events::cloud::dataplex::v1::LakeDeletedEvent",
125    "google_cloudevents::google::events::cloud::dataplex::v1::ZoneCreatedEvent",
126    "google_cloudevents::google::events::cloud::dataplex::v1::ZoneUpdatedEvent",
127    "google_cloudevents::google::events::cloud::dataplex::v1::ZoneDeletedEvent",
128    "google_cloudevents::google::events::cloud::dataplex::v1::AssetCreatedEvent",
129    "google_cloudevents::google::events::cloud::dataplex::v1::AssetUpdatedEvent",
130    "google_cloudevents::google::events::cloud::dataplex::v1::AssetDeletedEvent",
131    "google_cloudevents::google::events::cloud::dataplex::v1::TaskCreatedEvent",
132    "google_cloudevents::google::events::cloud::dataplex::v1::TaskUpdatedEvent",
133    "google_cloudevents::google::events::cloud::dataplex::v1::TaskDeletedEvent",
134    "google_cloudevents::google::events::cloud::dataplex::v1::EnvironmentCreatedEvent",
135    "google_cloudevents::google::events::cloud::dataplex::v1::EnvironmentUpdatedEvent",
136    "google_cloudevents::google::events::cloud::dataplex::v1::EnvironmentDeletedEvent",
137
138    // datastore/v1
139    "google_cloudevents::google::events::cloud::datastore::v1::EntityCreatedEvent",
140    "google_cloudevents::google::events::cloud::datastore::v1::EntityUpdatedEvent",
141    "google_cloudevents::google::events::cloud::datastore::v1::EntityDeletedEvent",
142    "google_cloudevents::google::events::cloud::datastore::v1::EntityWrittenEvent",
143
144    // datastream/v1
145    "google_cloudevents::google::events::cloud::datastream::v1::ConnectionProfileCreatedEvent",
146    "google_cloudevents::google::events::cloud::datastream::v1::ConnectionProfileUpdatedEvent",
147    "google_cloudevents::google::events::cloud::datastream::v1::ConnectionProfileDeletedEvent",
148    "google_cloudevents::google::events::cloud::datastream::v1::StreamCreatedEvent",
149    "google_cloudevents::google::events::cloud::datastream::v1::StreamUpdatedEvent",
150    "google_cloudevents::google::events::cloud::datastream::v1::StreamDeletedEvent",
151    "google_cloudevents::google::events::cloud::datastream::v1::PrivateConnectionCreatedEvent",
152    "google_cloudevents::google::events::cloud::datastream::v1::PrivateConnectionDeletedEvent",
153    "google_cloudevents::google::events::cloud::datastream::v1::RouteCreatedEvent",
154    "google_cloudevents::google::events::cloud::datastream::v1::RouteDeletedEvent",
155
156    // deploy/v1
157    "google_cloudevents::google::events::cloud::deploy::v1::DeliveryPipelineCreatedEvent",
158    "google_cloudevents::google::events::cloud::deploy::v1::DeliveryPipelineUpdatedEvent",
159    "google_cloudevents::google::events::cloud::deploy::v1::DeliveryPipelineDeletedEvent",
160    "google_cloudevents::google::events::cloud::deploy::v1::TargetCreatedEvent",
161    "google_cloudevents::google::events::cloud::deploy::v1::TargetUpdatedEvent",
162    "google_cloudevents::google::events::cloud::deploy::v1::TargetDeletedEvent",
163    "google_cloudevents::google::events::cloud::deploy::v1::CustomTargetTypeCreatedEvent",
164    "google_cloudevents::google::events::cloud::deploy::v1::CustomTargetTypeUpdatedEvent",
165    "google_cloudevents::google::events::cloud::deploy::v1::CustomTargetTypeDeletedEvent",
166    "google_cloudevents::google::events::cloud::deploy::v1::ReleaseCreatedEvent",
167    "google_cloudevents::google::events::cloud::deploy::v1::RolloutCreatedEvent",
168    "google_cloudevents::google::events::cloud::deploy::v1::AutomationCreatedEvent",
169    "google_cloudevents::google::events::cloud::deploy::v1::AutomationUpdatedEvent",
170    "google_cloudevents::google::events::cloud::deploy::v1::AutomationDeletedEvent",
171
172    // eventarc/v1
173    "google_cloudevents::google::events::cloud::eventarc::v1::TriggerCreatedEvent",
174    "google_cloudevents::google::events::cloud::eventarc::v1::TriggerUpdatedEvent",
175    "google_cloudevents::google::events::cloud::eventarc::v1::TriggerDeletedEvent",
176    "google_cloudevents::google::events::cloud::eventarc::v1::ChannelCreatedEvent",
177    "google_cloudevents::google::events::cloud::eventarc::v1::ChannelUpdatedEvent",
178    "google_cloudevents::google::events::cloud::eventarc::v1::ChannelDeletedEvent",
179    "google_cloudevents::google::events::cloud::eventarc::v1::ChannelConnectionCreatedEvent",
180    "google_cloudevents::google::events::cloud::eventarc::v1::ChannelConnectionDeletedEvent",
181
182    // firestore/v1
183    "google_cloudevents::google::events::cloud::firestore::v1::DocumentCreatedEvent",
184    "google_cloudevents::google::events::cloud::firestore::v1::DocumentUpdatedEvent",
185    "google_cloudevents::google::events::cloud::firestore::v1::DocumentDeletedEvent",
186    "google_cloudevents::google::events::cloud::firestore::v1::DocumentWrittenEvent",
187
188    // functions/v2
189    "google_cloudevents::google::events::cloud::functions::v2::FunctionCreatedEvent",
190    "google_cloudevents::google::events::cloud::functions::v2::FunctionUpdatedEvent",
191    "google_cloudevents::google::events::cloud::functions::v2::FunctionDeletedEvent",
192
193    // gkebackup/v1
194    "google_cloudevents::google::events::cloud::gkebackup::v1::BackupPlanCreatedEvent",
195    "google_cloudevents::google::events::cloud::gkebackup::v1::BackupPlanUpdatedEvent",
196    "google_cloudevents::google::events::cloud::gkebackup::v1::BackupPlanDeletedEvent",
197    "google_cloudevents::google::events::cloud::gkebackup::v1::BackupCreatedEvent",
198    "google_cloudevents::google::events::cloud::gkebackup::v1::BackupUpdatedEvent",
199    "google_cloudevents::google::events::cloud::gkebackup::v1::BackupDeletedEvent",
200    "google_cloudevents::google::events::cloud::gkebackup::v1::RestorePlanCreatedEvent",
201    "google_cloudevents::google::events::cloud::gkebackup::v1::RestorePlanUpdatedEvent",
202    "google_cloudevents::google::events::cloud::gkebackup::v1::RestorePlanDeletedEvent",
203    "google_cloudevents::google::events::cloud::gkebackup::v1::RestoreCreatedEvent",
204    "google_cloudevents::google::events::cloud::gkebackup::v1::RestoreUpdatedEvent",
205    "google_cloudevents::google::events::cloud::gkebackup::v1::RestoreDeletedEvent",
206
207    // gkehub/v1
208    "google_cloudevents::google::events::cloud::gkehub::v1::MembershipCreatedEvent",
209    "google_cloudevents::google::events::cloud::gkehub::v1::FeatureCreatedEvent",
210    "google_cloudevents::google::events::cloud::gkehub::v1::MembershipDeletedEvent",
211    "google_cloudevents::google::events::cloud::gkehub::v1::FeatureDeletedEvent",
212    "google_cloudevents::google::events::cloud::gkehub::v1::MembershipUpdatedEvent",
213    "google_cloudevents::google::events::cloud::gkehub::v1::FeatureUpdatedEvent",
214    "google_cloudevents::google::events::cloud::gkehub::v1::ScopeCreatedEvent",
215    "google_cloudevents::google::events::cloud::gkehub::v1::ScopeDeletedEvent",
216    "google_cloudevents::google::events::cloud::gkehub::v1::MembershipBindingCreatedEvent",
217    "google_cloudevents::google::events::cloud::gkehub::v1::MembershipBindingUpdatedEvent",
218    "google_cloudevents::google::events::cloud::gkehub::v1::MembershipBindingDeletedEvent",
219
220    // iot/v1
221    "google_cloudevents::google::events::cloud::iot::v1::CreateDeviceEvent",
222    "google_cloudevents::google::events::cloud::iot::v1::UpdateDeviceEvent",
223    "google_cloudevents::google::events::cloud::iot::v1::DeleteDeviceEvent",
224    "google_cloudevents::google::events::cloud::iot::v1::CreateDeviceRegistryEvent",
225    "google_cloudevents::google::events::cloud::iot::v1::UpdateDeviceRegistryEvent",
226    "google_cloudevents::google::events::cloud::iot::v1::DeleteDeviceRegistryEvent",
227
228    // memcache/v1
229    "google_cloudevents::google::events::cloud::memcache::v1::InstanceCreatedEvent",
230    "google_cloudevents::google::events::cloud::memcache::v1::InstanceUpdatedEvent",
231    "google_cloudevents::google::events::cloud::memcache::v1::InstanceDeletedEvent",
232
233    // metastore/v1
234    "google_cloudevents::google::events::cloud::metastore::v1::FederationCreatedEvent",
235    "google_cloudevents::google::events::cloud::metastore::v1::FederationUpdatedEvent",
236    "google_cloudevents::google::events::cloud::metastore::v1::FederationDeletedEvent",
237    "google_cloudevents::google::events::cloud::metastore::v1::ServiceCreatedEvent",
238    "google_cloudevents::google::events::cloud::metastore::v1::ServiceUpdatedEvent",
239    "google_cloudevents::google::events::cloud::metastore::v1::ServiceDeletedEvent",
240    "google_cloudevents::google::events::cloud::metastore::v1::MetadataImportCreatedEvent",
241    "google_cloudevents::google::events::cloud::metastore::v1::MetadataImportUpdatedEvent",
242    "google_cloudevents::google::events::cloud::metastore::v1::BackupCreatedEvent",
243    "google_cloudevents::google::events::cloud::metastore::v1::BackupDeletedEvent",
244
245    // networkconnectivity/v1
246    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionMapCreatedEvent",
247    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionMapUpdatedEvent",
248    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionMapDeletedEvent",
249    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionPolicyCreatedEvent",
250    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionPolicyUpdatedEvent",
251    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionPolicyDeletedEvent",
252    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceClassUpdatedEvent",
253    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceClassDeletedEvent",
254    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionTokenCreatedEvent",
255    "google_cloudevents::google::events::cloud::networkconnectivity::v1::ServiceConnectionTokenDeletedEvent",
256    "google_cloudevents::google::events::cloud::networkconnectivity::v1::HubCreatedEvent",
257    "google_cloudevents::google::events::cloud::networkconnectivity::v1::HubUpdatedEvent",
258    "google_cloudevents::google::events::cloud::networkconnectivity::v1::HubDeletedEvent",
259    "google_cloudevents::google::events::cloud::networkconnectivity::v1::SpokeCreatedEvent",
260    "google_cloudevents::google::events::cloud::networkconnectivity::v1::SpokeUpdatedEvent",
261    "google_cloudevents::google::events::cloud::networkconnectivity::v1::SpokeDeletedEvent",
262
263    // networkmanagement/v1
264    "google_cloudevents::google::events::cloud::networkmanagement::v1::ConnectivityTestCreatedEvent",
265    "google_cloudevents::google::events::cloud::networkmanagement::v1::ConnectivityTestUpdatedEvent",
266    "google_cloudevents::google::events::cloud::networkmanagement::v1::ConnectivityTestDeletedEvent",
267
268    // networkservices/v1
269    "google_cloudevents::google::events::cloud::networkservices::v1::EndpointPolicyCreatedEvent",
270    "google_cloudevents::google::events::cloud::networkservices::v1::EndpointPolicyUpdatedEvent",
271    "google_cloudevents::google::events::cloud::networkservices::v1::EndpointPolicyDeletedEvent",
272    "google_cloudevents::google::events::cloud::networkservices::v1::GatewayCreatedEvent",
273    "google_cloudevents::google::events::cloud::networkservices::v1::GatewayUpdatedEvent",
274    "google_cloudevents::google::events::cloud::networkservices::v1::GatewayDeletedEvent",
275    "google_cloudevents::google::events::cloud::networkservices::v1::GrpcRouteCreatedEvent",
276    "google_cloudevents::google::events::cloud::networkservices::v1::GrpcRouteUpdatedEvent",
277    "google_cloudevents::google::events::cloud::networkservices::v1::GrpcRouteDeletedEvent",
278    "google_cloudevents::google::events::cloud::networkservices::v1::HttpRouteCreatedEvent",
279    "google_cloudevents::google::events::cloud::networkservices::v1::HttpRouteUpdatedEvent",
280    "google_cloudevents::google::events::cloud::networkservices::v1::HttpRouteDeletedEvent",
281    "google_cloudevents::google::events::cloud::networkservices::v1::TcpRouteCreatedEvent",
282    "google_cloudevents::google::events::cloud::networkservices::v1::TcpRouteUpdatedEvent",
283    "google_cloudevents::google::events::cloud::networkservices::v1::TcpRouteDeletedEvent",
284    "google_cloudevents::google::events::cloud::networkservices::v1::TlsRouteCreatedEvent",
285    "google_cloudevents::google::events::cloud::networkservices::v1::TlsRouteUpdatedEvent",
286    "google_cloudevents::google::events::cloud::networkservices::v1::TlsRouteDeletedEvent",
287    "google_cloudevents::google::events::cloud::networkservices::v1::ServiceBindingCreatedEvent",
288    "google_cloudevents::google::events::cloud::networkservices::v1::ServiceBindingDeletedEvent",
289    "google_cloudevents::google::events::cloud::networkservices::v1::MeshCreatedEvent",
290    "google_cloudevents::google::events::cloud::networkservices::v1::MeshUpdatedEvent",
291    "google_cloudevents::google::events::cloud::networkservices::v1::MeshDeletedEvent",
292
293    // notebooks/v1
294    "google_cloudevents::google::events::cloud::notebooks::v1::RuntimeCreatedEvent",
295    "google_cloudevents::google::events::cloud::notebooks::v1::RuntimeUpdatedEvent",
296    "google_cloudevents::google::events::cloud::notebooks::v1::RuntimeDeletedEvent",
297    "google_cloudevents::google::events::cloud::notebooks::v1::InstanceCreatedEvent",
298    "google_cloudevents::google::events::cloud::notebooks::v1::InstanceDeletedEvent",
299    "google_cloudevents::google::events::cloud::notebooks::v1::EnvironmentCreatedEvent",
300    "google_cloudevents::google::events::cloud::notebooks::v1::EnvironmentDeletedEvent",
301    "google_cloudevents::google::events::cloud::notebooks::v1::ScheduleDeletedEvent",
302    "google_cloudevents::google::events::cloud::notebooks::v1::ScheduleCreatedEvent",
303    "google_cloudevents::google::events::cloud::notebooks::v1::ExecutionDeletedEvent",
304    "google_cloudevents::google::events::cloud::notebooks::v1::ExecutionCreatedEvent",
305
306    // pubsub/v1
307    "google_cloudevents::google::events::cloud::pubsub::v1::MessagePublishedEvent",
308
309    // redis/v1
310    "google_cloudevents::google::events::cloud::redis::v1::InstanceCreatedEvent",
311    "google_cloudevents::google::events::cloud::redis::v1::InstanceUpdatedEvent",
312    "google_cloudevents::google::events::cloud::redis::v1::InstanceDeletedEvent",
313
314    // scheduler/v1
315    "google_cloudevents::google::events::cloud::scheduler::v1::JobCreatedEvent",
316    "google_cloudevents::google::events::cloud::scheduler::v1::JobUpdatedEvent",
317    "google_cloudevents::google::events::cloud::scheduler::v1::JobDeletedEvent",
318    "google_cloudevents::google::events::cloud::scheduler::v1::JobExecutedEvent",
319
320    // speech/v1
321    "google_cloudevents::google::events::cloud::speech::v1::PhraseSetCreatedEvent",
322    "google_cloudevents::google::events::cloud::speech::v1::PhraseSetUpdatedEvent",
323    "google_cloudevents::google::events::cloud::speech::v1::PhraseSetDeletedEvent",
324    "google_cloudevents::google::events::cloud::speech::v1::CustomClassCreatedEvent",
325    "google_cloudevents::google::events::cloud::speech::v1::CustomClassUpdatedEvent",
326    "google_cloudevents::google::events::cloud::speech::v1::CustomClassDeletedEvent",
327
328    // storage/v1
329    "google_cloudevents::google::events::cloud::storage::v1::ObjectFinalizedEvent",
330    "google_cloudevents::google::events::cloud::storage::v1::ObjectArchivedEvent",
331    "google_cloudevents::google::events::cloud::storage::v1::ObjectDeletedEvent",
332    "google_cloudevents::google::events::cloud::storage::v1::ObjectMetadataUpdatedEvent",
333
334    // video/transcoder/v1
335    "google_cloudevents::google::events::cloud::video::transcoder::v1::JobCreatedEvent",
336    "google_cloudevents::google::events::cloud::video::transcoder::v1::JobDeletedEvent",
337    "google_cloudevents::google::events::cloud::video::transcoder::v1::JobTemplateCreatedEvent",
338    "google_cloudevents::google::events::cloud::video::transcoder::v1::JobTemplateDeletedEvent",
339
340    // visionai/v1
341    "google_cloudevents::google::events::cloud::visionai::v1::Event",
342    // (Skipping pub mod event, since it's not a struct)
343    "google_cloudevents::google::events::cloud::visionai::v1::AnalysisCreatedEvent",
344    "google_cloudevents::google::events::cloud::visionai::v1::AnalysisUpdatedEvent",
345    "google_cloudevents::google::events::cloud::visionai::v1::AnalysisDeletedEvent",
346    "google_cloudevents::google::events::cloud::visionai::v1::ProcessCreatedEvent",
347    "google_cloudevents::google::events::cloud::visionai::v1::ProcessUpdatedEvent",
348    "google_cloudevents::google::events::cloud::visionai::v1::ProcessDeletedEvent",
349    "google_cloudevents::google::events::cloud::visionai::v1::ApplicationCreatedEvent",
350    "google_cloudevents::google::events::cloud::visionai::v1::ApplicationUpdatedEvent",
351    "google_cloudevents::google::events::cloud::visionai::v1::ApplicationDeletedEvent",
352    "google_cloudevents::google::events::cloud::visionai::v1::DraftCreatedEvent",
353    "google_cloudevents::google::events::cloud::visionai::v1::DraftUpdatedEvent",
354    "google_cloudevents::google::events::cloud::visionai::v1::DraftDeletedEvent",
355    "google_cloudevents::google::events::cloud::visionai::v1::ProcessorCreatedEvent",
356    "google_cloudevents::google::events::cloud::visionai::v1::ProcessorUpdatedEvent",
357    "google_cloudevents::google::events::cloud::visionai::v1::ProcessorDeletedEvent",
358    "google_cloudevents::google::events::cloud::visionai::v1::ClusterCreatedEvent",
359    "google_cloudevents::google::events::cloud::visionai::v1::ClusterUpdatedEvent",
360    "google_cloudevents::google::events::cloud::visionai::v1::ClusterDeletedEvent",
361    "google_cloudevents::google::events::cloud::visionai::v1::StreamCreatedEvent",
362    "google_cloudevents::google::events::cloud::visionai::v1::StreamUpdatedEvent",
363    "google_cloudevents::google::events::cloud::visionai::v1::StreamDeletedEvent",
364    "google_cloudevents::google::events::cloud::visionai::v1::EventCreatedEvent",
365    "google_cloudevents::google::events::cloud::visionai::v1::EventUpdatedEvent",
366    "google_cloudevents::google::events::cloud::visionai::v1::EventDeletedEvent",
367    "google_cloudevents::google::events::cloud::visionai::v1::SeriesCreatedEvent",
368    "google_cloudevents::google::events::cloud::visionai::v1::SeriesUpdatedEvent",
369    "google_cloudevents::google::events::cloud::visionai::v1::SeriesDeletedEvent",
370
371    // vmmigration/v1
372    "google_cloudevents::google::events::cloud::vmmigration::v1::SourceCreatedEvent",
373    "google_cloudevents::google::events::cloud::vmmigration::v1::SourceUpdatedEvent",
374    "google_cloudevents::google::events::cloud::vmmigration::v1::SourceDeletedEvent",
375    "google_cloudevents::google::events::cloud::vmmigration::v1::UtilizationReportCreatedEvent",
376    "google_cloudevents::google::events::cloud::vmmigration::v1::UtilizationReportDeletedEvent",
377    "google_cloudevents::google::events::cloud::vmmigration::v1::DatacenterConnectorCreatedEvent",
378    "google_cloudevents::google::events::cloud::vmmigration::v1::DatacenterConnectorDeletedEvent",
379    "google_cloudevents::google::events::cloud::vmmigration::v1::MigratingVmCreatedEvent",
380    "google_cloudevents::google::events::cloud::vmmigration::v1::MigratingVmUpdatedEvent",
381    "google_cloudevents::google::events::cloud::vmmigration::v1::MigratingVmDeletedEvent",
382    "google_cloudevents::google::events::cloud::vmmigration::v1::CloneJobCreatedEvent",
383    "google_cloudevents::google::events::cloud::vmmigration::v1::CutoverJobCreatedEvent",
384    "google_cloudevents::google::events::cloud::vmmigration::v1::GroupCreatedEvent",
385    "google_cloudevents::google::events::cloud::vmmigration::v1::GroupUpdatedEvent",
386    "google_cloudevents::google::events::cloud::vmmigration::v1::GroupDeletedEvent",
387    "google_cloudevents::google::events::cloud::vmmigration::v1::TargetProjectCreatedEvent",
388    "google_cloudevents::google::events::cloud::vmmigration::v1::TargetProjectUpdatedEvent",
389    "google_cloudevents::google::events::cloud::vmmigration::v1::TargetProjectDeletedEvent",
390
391    // workflows/v1
392    "google_cloudevents::google::events::cloud::workflows::v1::WorkflowCreatedEvent",
393    "google_cloudevents::google::events::cloud::workflows::v1::WorkflowDeletedEvent",
394    "google_cloudevents::google::events::cloud::workflows::v1::WorkflowUpdatedEvent",
395
396    // firebase/analytics/v1
397    "google_cloudevents::google::events::firebase::analytics::v1::AnalyticsLogWrittenEvent",
398
399    // firebase/auth/v1
400    "google_cloudevents::google::events::firebase::auth::v1::UserCreatedEvent",
401    "google_cloudevents::google::events::firebase::auth::v1::UserDeletedEvent",
402
403    // firebase/database/v1
404    "google_cloudevents::google::events::firebase::database::v1::ReferenceCreatedEvent",
405    "google_cloudevents::google::events::firebase::database::v1::ReferenceUpdatedEvent",
406    "google_cloudevents::google::events::firebase::database::v1::ReferenceDeletedEvent",
407    "google_cloudevents::google::events::firebase::database::v1::ReferenceWrittenEvent",
408
409    // firebase/firebasealerts/v1
410    "google_cloudevents::google::events::firebase::firebasealerts::v1::AlertPublishedEvent",
411
412    // firebase/remoteconfig/v1
413    "google_cloudevents::google::events::firebase::remoteconfig::v1::RemoteConfigUpdatedEvent",
414
415    // firebase/testlab/v1
416    "google_cloudevents::google::events::firebase::testlab::v1::TestMatrixCompletedEvent",
417];
418
419#[cfg(feature = "axum")]
420use {
421    serde::{Deserialize, Serialize},
422    log::error,
423    cloudevents::{Data, Event},
424    async_trait::async_trait,
425    axum::body::Body,
426    axum::extract::{FromRequest, Request},
427    axum::http::StatusCode,
428    axum::response::{IntoResponse, Response},
429    prost::Message,
430    serde::de::DeserializeOwned,
431};
432
433#[cfg(feature = "axum")]
434#[derive(Debug, Serialize, Deserialize)]
435pub struct GoogleCloudEvent<T> {
436    #[serde(flatten)]
437    pub event: Event,
438    pub data: T,
439}
440#[cfg(feature = "axum")]
441#[async_trait]
442impl<S, T> FromRequest<S> for GoogleCloudEvent<T>
443where
444    Event: FromRequest<S>,
445    S: Send + Sync,
446    T: Message + Default + DeserializeOwned + Send + 'static,
447{
448    type Rejection = GoogleCloudEventError;
449
450    async fn from_request(req: Request<Body>, state: &S) -> Result<Self, Self::Rejection> {
451        let event = Event::from_request(req, state)
452            .await
453            .map_err(|_| GoogleCloudEventError::InvalidData("Invalid CloudEvent".to_string()))?;
454
455        let typed_data = event
456            .data()
457            .map(|d| d.to_owned())
458            .ok_or_else(|| {
459                GoogleCloudEventError::DecodingError("Missing event data".to_string())
460            })
461            .and_then(|data| match data {
462                Data::Binary(bytes) => {
463                    // Try to decode as a protobuf T
464                    match T::decode(bytes.as_slice()) {
465                        Ok(decoded) => Ok(decoded),
466                        Err(_) => {
467                            // Fallback to JSON decoding
468                            serde_json::from_slice(bytes.as_slice())
469                                .map_err(|e| {
470                                    GoogleCloudEventError::DecodingError(format!(
471                                        "Failed to decode as protobuf or JSON: {}",
472                                        e
473                                    ))
474                                })
475                        }
476                    }
477                }
478                Data::Json(value) => {
479                    // Decode from JSON
480                    serde_json::from_value(value).map_err(|e| {
481                        GoogleCloudEventError::DecodingError(format!("Failed to decode JSON: {}", e))
482                    })
483                }
484                Data::String(s) => {
485                    // Unexpected data type
486                    Err(GoogleCloudEventError::DecodingError(format!(
487                        "Unexpected string data: {}",
488                        s
489                    )))
490                }
491            })?;
492
493        Ok(Self { event, data: typed_data })
494    }
495}
496
497#[derive(Debug)]
498#[cfg(feature = "axum")]
499pub enum GoogleCloudEventError {
500    InvalidData(String),
501    DecodingError(String),
502}
503
504#[cfg(feature = "axum")]
505impl IntoResponse for GoogleCloudEventError {
506    fn into_response(self) -> Response {
507        let (status, message) = match self {
508            GoogleCloudEventError::InvalidData(msg) => (StatusCode::BAD_REQUEST, msg),
509            GoogleCloudEventError::DecodingError(msg) => (StatusCode::UNPROCESSABLE_ENTITY, msg),
510        };
511        (status, message).into_response()
512    }
513}
514
515// // Usage example:
516// async fn handle_pubsub(
517//     GoogleCloudEvent { event, typed_data }: GoogleCloudEvent<MessagePublishedData>,
518// ) -> impl IntoResponse {
519//     // Access CloudEvent metadata
520//     println!("Event ID: {}", event.id());
521//     println!("Event Type: {}", event.type_());
522//
523//     // Access typed data directly
524//     println!("Subscription: {}", typed_data.subscription);
525//     if let Some(message) = typed_data.message {
526//         println!("Message: {:?}", message);
527//     }
528//
529//     (StatusCode::OK, "Event processed".to_string())
530// }