type: object properties: script_path: type: string description: Path to the script or flow to execute when triggered permissioned_as: type: string description: The user or group this trigger runs as (permissioned_as) is_flow: type: boolean description: True if script_path points to a flow, false if it points to a script gcp_resource_path: type: string description: Path to the GCP resource containing service account credentials for authentication. topic_id: type: string description: Google Cloud Pub/Sub topic ID to subscribe to. subscription_id: type: string description: Google Cloud Pub/Sub subscription ID. delivery_type: type: string enum: - push - pull description: Delivery mode for messages. 'push' for HTTP push delivery where messages are sent to a webhook endpoint, 'pull' for polling where the trigger actively fetches messages. delivery_config: type: object properties: audience: type: string description: The audience claim for OIDC tokens used in push authentication. authenticate: type: boolean description: If true, push messages will include OIDC authentication tokens. description: Configuration for push delivery mode. subscription_mode: type: string enum: - existing - create_update description: The mode of subscription. 'existing' means using an existing GCP subscription, while 'create_update' involves creating or updating a new subscription. error_handler_path: type: string description: Path to a script or flow to run when the triggered job fails. error_handler_args: type: object description: The arguments to pass to the script or flow retry: type: object properties: constant: type: object description: Retry with constant delay between attempts properties: attempts: type: integer description: Number of retry attempts seconds: type: integer description: Seconds to wait between retries exponential: type: object description: Retry with exponential backoff (delay doubles each time) properties: attempts: type: integer description: Number of retry attempts multiplier: type: integer description: Multiplier for exponential backoff seconds: type: integer minimum: 1 description: Initial delay in seconds random_factor: type: integer minimum: 0 maximum: 100 description: Random jitter percentage (0-100) to avoid thundering herd retry_if: $ref: '#/components/schemas/RetryIf' description: Retry configuration for failed module executions required: - script_path - permissioned_as - is_flow - gcp_resource_path - topic_id - subscription_id - delivery_type - subscription_mode