Skip to content

Commit 88bf666

Browse files
committed
fix: Object notifications using partner api
1 parent 889e3fa commit 88bf666

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

static/api/extensions/v1/api.yaml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,74 @@ components:
641641
type: boolean
642642
description:
643643
If set to true, per object ACL will be enabled. Default is false.
644+
object_notifications:
645+
$ref: "#/components/schemas/ObjectNotifications"
646+
ObjectNotifications:
647+
type: object
648+
description: |
649+
Configuration for object event notifications via webhook. Receive HTTP callbacks when objects are created, updated, or deleted in your bucket.
650+
651+
**Update behavior (partial updates supported):**
652+
- **Omit field entirely**: Keeps existing settings unchanged
653+
- **Include only `enabled`**: Toggles notifications on/off while preserving all other config
654+
- **Include any field**: Updates specified fields, preserves others (auth not re-required)
655+
- **Remove completely**: Send `{"enabled": false}` with no other fields
656+
657+
**Common operations:**
658+
```json
659+
// Enable notifications (preserves webhook, filter, auth)
660+
{"enabled": true}
661+
662+
// Disable temporarily (keeps all config for later)
663+
{"enabled": false, "webhook": "https://..."}
664+
665+
// Update webhook only (preserves auth, filter)
666+
{"webhook": "https://new-endpoint.com"}
667+
668+
// Change auth type (replaces entire auth object)
669+
{"auth": {"token": "new-token"}}
670+
671+
// Remove all notifications
672+
{"enabled": false}
673+
```
674+
675+
**Note:** Auth credentials are masked in responses. You don't need to re-send them when updating other fields.
676+
required:
677+
- enabled
678+
properties:
679+
enabled:
680+
type: boolean
681+
description: Enable or disable notifications (webhook required when true)
682+
webhook:
683+
type: string
684+
format: uri
685+
description: HTTPS endpoint to receive notification events
686+
example: "https://webhook.example.com/tigris-events"
687+
filter:
688+
type: string
689+
description: SQL WHERE clause to filter which objects trigger notifications (e.g., size comparisons)
690+
example: "size > 1000000"
691+
region:
692+
type: string
693+
description: Region to process notifications from (defaults to server region)
694+
example: "iad"
695+
auth:
696+
$ref: "#/components/schemas/ObjectNotificationAuth"
697+
ObjectNotificationAuth:
698+
type: object
699+
description: Authentication credentials for webhook endpoint
700+
properties:
701+
basic_user:
702+
type: string
703+
description: Basic auth username
704+
basic_pass:
705+
type: string
706+
description: Basic auth password
707+
format: password
708+
token:
709+
type: string
710+
description: Bearer token for authorization
711+
format: password
644712
ProvisioningResponse:
645713
type: object
646714
UpdateBucketRequest:
@@ -656,6 +724,8 @@ components:
656724
type: boolean
657725
description:
658726
If set to true, per object ACL will be enabled. Default is false.
727+
object_notifications:
728+
$ref: "#/components/schemas/ObjectNotifications"
659729
UpdateBucketResponse:
660730
type: object
661731
DeleteBucketResponse:
@@ -866,6 +936,8 @@ components:
866936
description: If set to true, per object ACL is enabled
867937
website:
868938
$ref: "#/components/schemas/BucketWebsiteSettings"
939+
object_notifications:
940+
$ref: "#/components/schemas/ObjectNotifications"
869941
GetUsageResponse:
870942
type: object
871943
properties:

0 commit comments

Comments
 (0)