== Google Storage Event-based Source Kamelet Description

=== Authentication methods

This Kamelet uses Service Account Key authentication to connect to Google Cloud Pub/Sub for receiving Google Storage bucket events. You need to provide:

- A service account key encoded in base64 format
- The Google Cloud Project ID
- The subscription name configured to receive storage events
- The bucket name or ARN for which events are monitored

=== Output format

The Kamelet receives data from Google Pub/Sub reporting events related to a Google Storage bucket and produces the event data in JSON format.

=== Configuration

The Kamelet requires the following parameters:

- `projectId`: The Google Cloud Pub/Sub Project ID
- `subscriptionName`: The subscription name
- `serviceAccountKey`: The service account key to use as credentials (must be base64 encoded)
- `bucketNameOrArn`: The bucket name or ARN for which events are monitored

Optional parameters:
- `synchronousPull`: Specifies to synchronously pull batches of messages (default: false)
- `maxMessagesPerPoll`: The maximum number of messages to receive from the server in a single API call
- `concurrentConsumers`: The number of parallel streams to consume from the subscription

=== Usage example

```yaml
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: google-storage-event-based-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: google-storage-event-based-source
    properties:
      projectId: "my-gcp-project"
      subscriptionName: "storage-events-subscription"
      serviceAccountKey: "{{service-account-key-base64}}"
      bucketNameOrArn: "my-storage-bucket"
      synchronousPull: true
      maxMessagesPerPoll: 10
      concurrentConsumers: 2
  sink:
    ref:
      kind: Service
      apiVersion: v1
      name: my-service
```