---
title: "POST /v1/{+parent}/triggers"
method: POST
path: "/v1/{+parent}/triggers"
tags: ["projects"]
---

# POST /v1/{+parent}/triggers

`POST /v1/{+parent}/triggers`

Create a new trigger in a particular project and location.

## Path parameters

- `parent` string, required

## Query parameters

- `triggerId` string
- `validateOnly` boolean

## Request body

- Trigger — A representation of the trigger resource.
  - `labels` object — Optional. User labels attached to the triggers that can be used to group resources.
  - `uid` 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.
  - `createTime` string, google-datetime — Output only. The creation time.
  - `transport` Transport — Represents the transport intermediaries created for the trigger to deliver events.
    - `pubsub` Pubsub — Represents a Pub/Sub transport.
      - `subscription` string — Output only. The name of the Pub/Sub subscription created and managed by Eventarc as a transport for the event delivery. Format: `projects/{PROJECT_ID}/subscriptions/{SUBSCRIPTION_NAME}`.
      - `topic` string — Optional. The name of the Pub/Sub topic created and managed by Eventarc as a transport for the event delivery. Format: `projects/{PROJECT_ID}/topics/{TOPIC_NAME}`. You can set an existing topic for triggers of the type `google.cloud.pubsub.topic.v1.messagePublished`. The topic you provide here is not deleted by Eventarc at trigger deletion.
  - `destination` Destination — Represents a target of an invocation over HTTP.
    - `workflow` string — The resource name of the Workflow whose Executions are triggered by the events. The Workflow resource should be deployed in the same project as the trigger. Format: `projects/{project}/locations/{location}/workflows/{workflow}`
    - `cloudFunction` string — The Cloud Function resource name. Cloud Functions V1 and V2 are supported. Format: `projects/{project}/locations/{location}/functions/{function}` This is a read-only field. Creating Cloud Functions V1/V2 triggers is only supported via the Cloud Functions product. An error will be returned if the user sets this value.
    - `gke` GKE — Represents a GKE destination.
      - `cluster` string — Required. The name of the cluster the GKE service is running in. The cluster must be running in the same project as the trigger being created.
      - `location` string — Required. The name of the Google Compute Engine in which the cluster resides, which can either be compute zone (for example, us-central1-a) for the zonal clusters or region (for example, us-central1) for regional clusters.
      - `service` string — Required. Name of the GKE service.
      - `namespace` string — Required. The namespace the GKE service is running in.
      - `path` string — Optional. The relative path on the GKE service the events should be sent to. The value must conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route", "route", "route/subroute".
    - `cloudRun` CloudRun — Represents a Cloud Run destination.
      - `path` string — Optional. The relative path on the Cloud Run service the events should be sent to. The value must conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route", "route", "route/subroute".
      - `region` string — Required. The region the Cloud Run service is deployed in.
      - `service` string — Required. The name of the Cloud Run service being addressed. See https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. Only services located in the same project as the trigger object can be addressed.
    - `networkConfig` NetworkConfig — Network Configuration that can be inherited by other protos.
      - `networkAttachment` string — Required. Name of the NetworkAttachment that allows access to the customer's VPC. Format: `projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}`
    - `httpEndpoint` HttpEndpoint — Represents a HTTP endpoint destination.
      - `uri` string — Required. The URI of the HTTP endpoint. The value must be a RFC2396 URI string. Examples: `http://10.10.10.8:80/route`, `http://svc.us-central1.p.local:8080/`. Only HTTP and HTTPS protocols are supported. The host can be either a static IP addressable from the VPC specified by the network config, or an internal DNS hostname of the service resolvable via Cloud DNS.
  - `retryPolicy` RetryPolicy — The retry policy configuration for the Trigger. Can only be set with Cloud Run destinations.
    - `maxAttempts` integer — Optional. The maximum number of delivery attempts for any message. The only valid value is 1.
  - `updateTime` string, google-datetime — Output only. The last-modified time.
  - `etag` string — Output only. This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
  - `eventDataContentType` string — Optional. EventDataContentType specifies the type of payload in MIME format that is expected from the CloudEvent data field. This is set to `application/json` if the value is not defined.
  - `name` string — Required. The resource name of the trigger. Must be unique within the location of the project and must be in `projects/{project}/locations/{location}/triggers/{trigger}` format.
  - `satisfiesPzs` boolean — Output only. Whether or not this Trigger satisfies the requirements of physical zone separation
  - `channel` string — Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners.
  - `serviceAccount` string — Optional. The IAM service account email associated with the trigger. The service account represents the identity of the trigger. The `iam.serviceAccounts.actAs` permission must be granted on the service account to allow a principal to impersonate the service account. For more information, see the [Roles and permissions](/eventarc/docs/all-roles-permissions) page specific to the trigger destination.
  - `conditions` object — Output only. The reason(s) why a trigger is in FAILED state.
  - `eventFilters` EventFilter[] — Required. Unordered list. The list of filters that applies to event attributes. Only events that match all the provided filters are sent to the destination.
    - `operator` string — Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The allowed values are `path_pattern` and `match-path-pattern`. `path_pattern` is only allowed for GCFv1 triggers.
    - `attribute` string — Required. The name of a CloudEvents attribute. Currently, only a subset of attributes are supported for filtering. You can [retrieve a specific provider's supported event types](/eventarc/docs/list-providers#describe-provider). All triggers MUST provide a filter for the 'type' attribute.
    - `value` string — Required. The value for the attribute.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/eventarc.md) · [All operations](https://skmtc.net/google/apis/eventarc/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/eventarc/versions/d60df8f49319/schema)
