/// A representation of the trigger resource. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Trigger { /// Required. The resource name of the trigger. Must be unique within the /// location on the project and must be in /// `projects/{project}/locations/{location}/triggers/{trigger}` format. #[prost(string, tag = "1")] pub name: ::prost::alloc::string::String, /// Output only. Server assigned unique identifier for the trigger. The value /// is a UUID4 string and guaranteed to remain unchanged until the resource is /// deleted. #[prost(string, tag = "2")] pub uid: ::prost::alloc::string::String, /// Output only. The creation time. #[prost(message, optional, tag = "5")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Output only. The last-modified time. #[prost(message, optional, tag = "6")] pub update_time: ::core::option::Option<::prost_types::Timestamp>, /// Required. null The list of filters that applies to event attributes. Only /// events that match all the provided filters will be sent to the destination. #[prost(message, repeated, tag = "8")] pub event_filters: ::prost::alloc::vec::Vec, /// Optional. The IAM service account email associated with the trigger. The /// service account represents the identity of the trigger. /// /// The principal who calls this API must have `iam.serviceAccounts.actAs` /// permission in the service account. See /// /// for more information. /// /// For Cloud Run destinations, this service account is used to generate /// identity tokens when invoking the service. See /// /// for information on how to invoke authenticated Cloud Run services. /// In order to create Audit Log triggers, the service account should also /// have `roles/eventarc.eventReceiver` IAM role. #[prost(string, tag = "9")] pub service_account: ::prost::alloc::string::String, /// Required. Destination specifies where the events should be sent to. #[prost(message, optional, tag = "10")] pub destination: ::core::option::Option, /// Optional. In order to deliver messages, Eventarc may use other GCP /// products as transport intermediary. This field contains a reference to that /// transport intermediary. This information can be used for debugging /// purposes. #[prost(message, optional, tag = "11")] pub transport: ::core::option::Option, /// Optional. User labels attached to the triggers that can be used to group /// resources. #[prost(map = "string, string", tag = "12")] pub labels: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, /// Output only. This checksum is computed by the server based on the value of /// other fields, and may be sent only on create requests to ensure the client /// has an up-to-date value before proceeding. #[prost(string, tag = "99")] pub etag: ::prost::alloc::string::String, } /// Filters events based on exact matches on the CloudEvents attributes. #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventFilter { /// Required. The name of a CloudEvents attribute. Currently, only a subset of /// attributes are supported for filtering. /// /// All triggers MUST provide a filter for the 'type' attribute. #[prost(string, tag = "1")] pub attribute: ::prost::alloc::string::String, /// Required. The value for the attribute. #[prost(string, tag = "2")] pub value: ::prost::alloc::string::String, } /// Represents a target of an invocation over HTTP. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Destination { #[prost(oneof = "destination::Descriptor", tags = "1")] pub descriptor: ::core::option::Option, } /// Nested message and enum types in `Destination`. pub mod destination { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Descriptor { /// Cloud Run fully-managed service that receives the events. The service /// should be running in the same project of the trigger. #[prost(message, tag = "1")] CloudRun(super::CloudRun), } } /// Represents the transport intermediaries created for the trigger in order to /// deliver events. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Transport { #[prost(oneof = "transport::Intermediary", tags = "1")] pub intermediary: ::core::option::Option, } /// Nested message and enum types in `Transport`. pub mod transport { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Intermediary { /// The Pub/Sub topic and subscription used by Eventarc as delivery /// intermediary. #[prost(message, tag = "1")] Pubsub(super::Pubsub), } } /// Represents a Cloud Run destination. #[derive(Clone, PartialEq, ::prost::Message)] pub struct CloudRun { /// Required. The name of the Cloud Run service being addressed. See /// /// /// Only services located in the same project of the trigger object /// can be addressed. #[prost(string, tag = "1")] pub service: ::prost::alloc::string::String, /// Optional. The relative path on the Cloud Run service the events should be /// sent to. /// /// The value must conform to the definition of URI path segment (section 3.3 /// of RFC2396). Examples: "/route", "route", "route/subroute". #[prost(string, tag = "2")] pub path: ::prost::alloc::string::String, /// Required. The region the Cloud Run service is deployed in. #[prost(string, tag = "3")] pub region: ::prost::alloc::string::String, } /// Represents a Pub/Sub transport. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Pubsub { /// Optional. The name of the Pub/Sub topic created and managed by Eventarc /// system as a transport for the event delivery. Format: /// `projects/{PROJECT_ID}/topics/{TOPIC_NAME}`. /// /// You may set an existing topic for triggers of the type /// `google.cloud.pubsub.topic.v1.messagePublished` only. The topic you provide /// here will not be deleted by Eventarc at trigger deletion. #[prost(string, tag = "1")] pub topic: ::prost::alloc::string::String, /// Output only. The name of the Pub/Sub subscription created and managed by /// Eventarc system as a transport for the event delivery. Format: /// `projects/{PROJECT_ID}/subscriptions/{SUBSCRIPTION_NAME}`. #[prost(string, tag = "2")] pub subscription: ::prost::alloc::string::String, } /// The request message for the GetTrigger method. #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTriggerRequest { /// Required. The name of the trigger to get. #[prost(string, tag = "1")] pub name: ::prost::alloc::string::String, } /// The request message for the ListTriggers method. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ListTriggersRequest { /// Required. The parent collection to list triggers on. #[prost(string, tag = "1")] pub parent: ::prost::alloc::string::String, /// The maximum number of triggers to return on each page. /// Note: The service may send fewer. #[prost(int32, tag = "2")] pub page_size: i32, /// The page token; provide the value from the `next_page_token` field in a /// previous `ListTriggers` call to retrieve the subsequent page. /// /// When paginating, all other parameters provided to `ListTriggers` must match /// the call that provided the page token. #[prost(string, tag = "3")] pub page_token: ::prost::alloc::string::String, /// The sorting order of the resources returned. Value should be a comma /// separated list of fields. The default sorting oder is ascending. To specify /// descending order for a field, append a ` desc` suffix; for example: /// `name desc, trigger_id`. #[prost(string, tag = "4")] pub order_by: ::prost::alloc::string::String, } /// The response message for the ListTriggers method. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ListTriggersResponse { /// The requested triggers, up to the number specified in `page_size`. #[prost(message, repeated, tag = "1")] pub triggers: ::prost::alloc::vec::Vec, /// A page token that can be sent to ListTriggers to request the next page. /// If this is empty, then there are no more pages. #[prost(string, tag = "2")] pub next_page_token: ::prost::alloc::string::String, /// Unreachable resources, if any. #[prost(string, repeated, tag = "3")] pub unreachable: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// The request message for the CreateTrigger method. #[derive(Clone, PartialEq, ::prost::Message)] pub struct CreateTriggerRequest { /// Required. The parent collection in which to add this trigger. #[prost(string, tag = "1")] pub parent: ::prost::alloc::string::String, /// Required. The trigger to create. #[prost(message, optional, tag = "2")] pub trigger: ::core::option::Option, /// Required. The user-provided ID to be assigned to the trigger. #[prost(string, tag = "3")] pub trigger_id: ::prost::alloc::string::String, /// Required. If set, validate the request and preview the review, but do not actually /// post it. #[prost(bool, tag = "4")] pub validate_only: bool, } /// The request message for the UpdateTrigger method. #[derive(Clone, PartialEq, ::prost::Message)] pub struct UpdateTriggerRequest { /// The trigger to be updated. #[prost(message, optional, tag = "1")] pub trigger: ::core::option::Option, /// The fields to be updated; only fields explicitly provided will be updated. /// If no field mask is provided, all provided fields in the request will be /// updated. To update all fields, provide a field mask of "*". #[prost(message, optional, tag = "2")] pub update_mask: ::core::option::Option<::prost_types::FieldMask>, /// If set to true, and the trigger is not found, a new trigger will be /// created. In this situation, `update_mask` is ignored. #[prost(bool, tag = "3")] pub allow_missing: bool, /// Required. If set, validate the request and preview the review, but do not actually /// post it. #[prost(bool, tag = "4")] pub validate_only: bool, } /// The request message for the DeleteTrigger method. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DeleteTriggerRequest { /// Required. The name of the trigger to be deleted. #[prost(string, tag = "1")] pub name: ::prost::alloc::string::String, /// If provided, the trigger will only be deleted if the etag matches the /// current etag on the resource. #[prost(string, tag = "2")] pub etag: ::prost::alloc::string::String, /// If set to true, and the trigger is not found, the request will succeed /// but no action will be taken on the server. #[prost(bool, tag = "3")] pub allow_missing: bool, /// Required. If set, validate the request and preview the review, but do not actually /// post it. #[prost(bool, tag = "4")] pub validate_only: bool, } /// Represents the metadata of the long-running operation. #[derive(Clone, PartialEq, ::prost::Message)] pub struct OperationMetadata { /// Output only. The time the operation was created. #[prost(message, optional, tag = "1")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Output only. The time the operation finished running. #[prost(message, optional, tag = "2")] pub end_time: ::core::option::Option<::prost_types::Timestamp>, /// Output only. Server-defined resource path for the target of the operation. #[prost(string, tag = "3")] pub target: ::prost::alloc::string::String, /// Output only. Name of the verb executed by the operation. #[prost(string, tag = "4")] pub verb: ::prost::alloc::string::String, /// Output only. Human-readable status of the operation, if any. #[prost(string, tag = "5")] pub status_message: ::prost::alloc::string::String, /// Output only. Identifies whether the user has requested cancellation /// of the operation. Operations that have successfully been cancelled /// have \[Operation.error][\] value with a \[google.rpc.Status.code][google.rpc.Status.code\] of 1, /// corresponding to `Code.CANCELLED`. #[prost(bool, tag = "6")] pub requested_cancellation: bool, /// Output only. API version used to start the operation. #[prost(string, tag = "7")] pub api_version: ::prost::alloc::string::String, } #[doc = r" Generated client implementations."] pub mod eventarc_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::*; #[doc = " Eventarc allows users to subscribe to various events that are provided by"] #[doc = " Google Cloud services and forward them to supported destinations."] #[derive(Debug, Clone)] pub struct EventarcClient { inner: tonic::client::Grpc, } impl EventarcClient where T: tonic::client::GrpcService, T::ResponseBody: Body + Send + 'static, T::Error: Into, ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); Self { inner } } pub fn with_interceptor( inner: T, interceptor: F, ) -> EventarcClient> where F: tonic::service::Interceptor, T: tonic::codegen::Service< http::Request, Response = http::Response< >::ResponseBody, >, >, >>::Error: Into + Send + Sync, { EventarcClient::new(InterceptedService::new(inner, interceptor)) } #[doc = r" Compress requests with `gzip`."] #[doc = r""] #[doc = r" This requires the server to support it otherwise it might respond with an"] #[doc = r" error."] pub fn send_gzip(mut self) -> Self { self.inner = self.inner.send_gzip(); self } #[doc = r" Enable decompressing responses with `gzip`."] pub fn accept_gzip(mut self) -> Self { self.inner = self.inner.accept_gzip(); self } #[doc = " Get a single trigger."] pub async fn get_trigger( &mut self, request: impl tonic::IntoRequest, ) -> Result, tonic::Status> { self.inner.ready().await.map_err(|e| { tonic::Status::new( tonic::Code::Unknown, format!("Service was not ready: {}", e.into()), ) })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/google.cloud.eventarc.v1.Eventarc/GetTrigger", ); self.inner.unary(request.into_request(), path, codec).await } #[doc = " List triggers."] pub async fn list_triggers( &mut self, request: impl tonic::IntoRequest, ) -> Result, tonic::Status> { self.inner.ready().await.map_err(|e| { tonic::Status::new( tonic::Code::Unknown, format!("Service was not ready: {}", e.into()), ) })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/google.cloud.eventarc.v1.Eventarc/ListTriggers", ); self.inner.unary(request.into_request(), path, codec).await } #[doc = " Create a new trigger in a particular project and location."] pub async fn create_trigger( &mut self, request: impl tonic::IntoRequest, ) -> Result< tonic::Response, tonic::Status, > { self.inner.ready().await.map_err(|e| { tonic::Status::new( tonic::Code::Unknown, format!("Service was not ready: {}", e.into()), ) })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/google.cloud.eventarc.v1.Eventarc/CreateTrigger", ); self.inner.unary(request.into_request(), path, codec).await } #[doc = " Update a single trigger."] pub async fn update_trigger( &mut self, request: impl tonic::IntoRequest, ) -> Result< tonic::Response, tonic::Status, > { self.inner.ready().await.map_err(|e| { tonic::Status::new( tonic::Code::Unknown, format!("Service was not ready: {}", e.into()), ) })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/google.cloud.eventarc.v1.Eventarc/UpdateTrigger", ); self.inner.unary(request.into_request(), path, codec).await } #[doc = " Delete a single trigger."] pub async fn delete_trigger( &mut self, request: impl tonic::IntoRequest, ) -> Result< tonic::Response, tonic::Status, > { self.inner.ready().await.map_err(|e| { tonic::Status::new( tonic::Code::Unknown, format!("Service was not ready: {}", e.into()), ) })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/google.cloud.eventarc.v1.Eventarc/DeleteTrigger", ); self.inner.unary(request.into_request(), path, codec).await } } }