canonical: https://jentic.com/apis/googleapis.com/eventarc

# Google Eventarc API

Eventarc routes events from Google Cloud sources, third-party SaaS providers, and custom publishers to event-driven workloads such as Cloud Run, Cloud Functions, GKE, and Workflows. The API manages triggers (which events to listen for and where to send them), channels and channel connections (third-party event delivery), Google API and provider catalogues, and the long-running operations that back these resources. Triggers can filter on event type, attributes, and source so each consumer receives only the events it cares about. It is the canonical event bus for Google Cloud serverless and container workloads.

## For AI agents

Create event triggers that route Cloud and third-party events to Cloud Run, Cloud Functions, GKE, or Workflows targets, with filtering, channels, and full lifecycle management.

## Scope

Does not publish events, run code, or manage destination services - use for creating and managing event triggers, channels, and routing only.

## Capabilities

- Create a trigger that listens for a specific event type from a Google Cloud source and delivers to a Cloud Run service
- Filter events by attributes such as resource name, method, or service so only relevant events fire the target
- Set up a channel and channel connection to receive events from a third-party SaaS provider
- List available Google API event sources and provider catalogues so the agent picks valid event types
- Patch an existing trigger to change its destination, filter, or service account without recreating it
- Cancel or check long-running operations that back trigger and channel creation

## Use cases

### GCS Object Created > Cloud Run Pipeline

Data ingestion teams set up triggers that fire whenever a new object lands in a Cloud Storage bucket so a Cloud Run worker processes it without an always-on consumer. The API creates the trigger with eventFilters on type='google.cloud.storage.object.v1.finalized' and the bucket resource name. Pipeline wiring takes minutes versus building an alternative Pub/Sub-plus-subscription stack from scratch.

Example prompt: POST /v1/{+parent}/triggers with eventFilters [{attribute:'type',value:'google.cloud.storage.object.v1.finalized'},{attribute:'bucket',value:'my-bucket'}] and destination.cloudRun.service set to the worker.

### Third-Party SaaS Event Delivery

Platform teams wire SaaS providers (Datadog, Stripe-style partners, internal vendors) into Google Cloud workloads via Eventarc channels. The provider sends events to a channel; the team creates triggers off that channel scoped to event types of interest. This consolidates third-party event delivery on the same routing primitives as native Google Cloud events.

Example prompt: POST /v1/{+parent}/channels to create a channel for the provider, then POST /v1/{+parent}/triggers referencing the channel and the desired event type.

### Cross-Service Event-Driven Architectures

Engineering teams break monoliths into event-driven services where each domain reacts to others' events through Eventarc. Triggers route the right events to Cloud Run, Cloud Functions, or Workflows targets, and the patch endpoint allows non-disruptive evolution of routing as the topology changes. New event consumers appear in days, not weeks.

Example prompt: PATCH /v1/{+name} on the existing trigger to add an attribute filter for service='users.example.com' so only user-domain events reach the worker.

### Agent-Configured Event Routing via Jentic

An AI agent helping a developer set up a serverless workflow can create the right Eventarc trigger through Jentic without the developer learning Eventarc resource paths or filter syntax. The agent learns the available event types from the providers list and creates the trigger that matches the developer's intent in one step.

Example prompt: Search Jentic for 'create an Eventarc trigger', load the POST /v1/{+parent}/triggers schema, and execute it with the developer's source bucket and target Cloud Run service.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v1/{+parent}/channelConnections | Create a channel connection from a provider |
| GET | /v1/{+parent}/channelConnections | List channel connections |
| PATCH | /v1/{+name} | Patch a trigger, channel, or related resource |
| DELETE | /v1/{+name} | Delete a trigger or channel |
| POST | /v1/{+name}:cancel | Cancel a long-running operation |
| GET | /v1/{+name}/locations | List supported locations |

## Key resources

- **Triggers** — Create, list, get, patch, and delete event triggers with filters and destinations
- **Channels** — Create channels for receiving third-party events
- **Channel Connections** — Manage provider-side connections that publish into a channel
- **Providers** — List available event source providers and their catalogues
- **Google API Sources** — Manage Google API source resources for event delivery
- **Operations** — Track and cancel long-running operations across triggers and channels

## Why Jentic

- **Setup:** Wiring the Eventarc API by hand means standing up Google OAuth2 with the right scopes, targeting eventarc.googleapis.com, and building the resource-path calls yourself for triggers, channels, and routing. Through Jentic you install once, import the Eventarc API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** Eventarc puts the resource name in the URL path (/v1/{+parent}/channelConnections, /v1/{+name}), so a rule can pin your agent to one project or location: it can list and create channel connections there and nothing else. You choose the operations it may call, so destructive ones like deleting a resource are not included unless you add them.
- **Credential handling:** Your Google OAuth credential for Eventarc is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list Eventarc triggers' or 'create a channel connection', and Jentic returns the matching Eventarc operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Cloud Pub/Sub API** — Underlying transport for many Eventarc event types
- **Cloud Run Admin API** — Manages Cloud Run services that Eventarc triggers invoke
- **Workflows API** — Orchestrates multi-step flows that can be a trigger destination

## FAQ

### What authentication does the Eventarc API use?

Eventarc uses Google OAuth 2.0 with the cloud-platform scope. A service account with the eventarc.admin role (or a narrower trigger-specific role) creates triggers; a separate runtime service account is attached to each trigger so it can invoke the destination. Through Jentic the credentials live in the encrypted vault.

### Can I filter events by attribute on the Eventarc API?

Yes. POST /v1/{+parent}/triggers accepts an eventFilters list of attribute-value pairs (type, bucket, methodName, serviceName, and so on). Triggers fire only when an event matches every filter, so a single source can fan out to many targets.

### What are the rate limits for the Eventarc API?

Per-project quotas default to 60 trigger writes per minute and 600 reads per minute, with separate quotas on event delivery to destinations. Trigger and channel operations return long-running operations that the API surfaces via the operations resource.

### How do I create a Cloud Run trigger through Jentic?

Search Jentic for 'create an Eventarc trigger to Cloud Run', load the POST /v1/{+parent}/triggers schema, and execute it with eventFilters for the source you want and destination.cloudRun.service set to your Cloud Run service. Jentic returns the long-running operation; poll until DONE.

### Is the Eventarc API free?

The API is free to call. Eventarc charges per million events delivered (with a free tier of 1 million events per month) plus standard charges for the destination service. See https://cloud.google.com/eventarc/pricing for current rates.

### How do I patch an existing trigger?

PATCH /v1/{+name} with the trigger resource name and an updateMask listing the fields to change (eventFilters, destination, serviceAccount). The change is applied as a long-running operation and the trigger continues to deliver events on the previous configuration until the operation completes.

### Can I limit what my agent is allowed to do with the Eventarc API?

Yes. Because you run your own self-hosted Jentic One instance, your rules decide exactly which Eventarc operations and credentials the agent may use. Eventarc carries the resource name in the URL path (for example /v1/{+parent}/channelConnections and /v1/{+name}), so a rule can pin the agent to a single project or location and let it only list and create the triggers and channels there. You pick the operations it may call, so destructive ones like deleting a trigger or channel are excluded unless you explicitly add them.
