@@ -263,7 +263,7 @@ components:
263263 key_template :
264264 type : string
265265 description : JMESPath expression for generating S3 object keys. Default is join('', [time.rfc3339_nano, '_', metadata."event-id", '.json']).
266- example : " join('/' , [time.year, time.month, time.day, metadata.` \ " event-id\" ` , '.json']) "
266+ example : ' join('' / '' , [time.year, time.month, time.day, metadata."event-id" , '' .json'' ]) '
267267 storage_class :
268268 type : string
269269 description : The storage class for the S3 objects (e.g., STANDARD, INTELLIGENT_TIERING, GLACIER, etc.). Defaults to "STANDARD".
@@ -284,6 +284,30 @@ components:
284284 type : string
285285 description : Optional AWS Session Token (for temporary credentials).
286286 example : " AQoDYXdzEPT//////////wEXAMPLE..."
287+ GCPPubSubConfig :
288+ type : object
289+ required : [project_id, topic]
290+ properties :
291+ project_id :
292+ type : string
293+ description : The GCP project ID.
294+ example : " my-project-123"
295+ topic :
296+ type : string
297+ description : The Pub/Sub topic name.
298+ example : " events-topic"
299+ endpoint :
300+ type : string
301+ description : Optional. Custom endpoint URL (e.g., localhost:8085 for emulator).
302+ example : " pubsub.googleapis.com:443"
303+ GCPPubSubCredentials :
304+ type : object
305+ required : [service_account_json]
306+ properties :
307+ service_account_json :
308+ type : string
309+ description : Service account key JSON. The entire JSON key file content as a string.
310+ example : ' {"type":"service_account","project_id":"my-project","private_key_id":"key123","private_key":"-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n","client_email":"my-service@my-project.iam.gserviceaccount.com"}'
287311
288312 # Type-Specific Destination Schemas (for Responses)
289313 DestinationWebhook :
@@ -667,6 +691,60 @@ components:
667691 credentials :
668692 key : " AKIAIOSFODNN7EXAMPLE"
669693 secret : " wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
694+ DestinationGCPPubSub :
695+ type : object
696+ # Properties duplicated from DestinationBase
697+ required : [id, type, topics, config, credentials, created_at, disabled_at]
698+ properties :
699+ id :
700+ type : string
701+ description : Control plane generated ID or user provided ID for the destination.
702+ example : " des_12345"
703+ type :
704+ type : string
705+ description : Type of the destination.
706+ enum : [gcp_pubsub]
707+ example : " gcp_pubsub"
708+ topics :
709+ $ref : " #/components/schemas/Topics"
710+ disabled_at :
711+ type : string
712+ format : date-time
713+ nullable : true
714+ description : ISO Date when the destination was disabled, or null if enabled.
715+ example : null
716+ created_at :
717+ type : string
718+ format : date-time
719+ description : ISO Date when the destination was created.
720+ example : " 2024-01-01T00:00:00Z"
721+ config :
722+ $ref : " #/components/schemas/GCPPubSubConfig"
723+ credentials :
724+ $ref : " #/components/schemas/GCPPubSubCredentials"
725+ target :
726+ type : string
727+ description : A human-readable representation of the destination target (project/topic). Read-only.
728+ readOnly : true
729+ example : " my-project-123/events-topic"
730+ target_url :
731+ type : string
732+ format : url
733+ nullable : true
734+ description : A URL link to the destination target (GCP Console link to the topic). Read-only.
735+ readOnly : true
736+ example : " https://console.cloud.google.com/cloudpubsub/topic/detail/events-topic?project=my-project-123"
737+ example :
738+ id : " des_gcp_pubsub_123"
739+ type : " gcp_pubsub"
740+ topics : ["order.created", "order.updated"]
741+ disabled_at : null
742+ created_at : " 2024-03-10T14:30:00Z"
743+ config :
744+ project_id : " my-project-123"
745+ topic : " events-topic"
746+ credentials :
747+ service_account_json : ' {"type":"service_account","project_id":"my-project-123",...}'
670748
671749 # Polymorphic Destination Schema (for Responses)
672750 Destination :
@@ -678,6 +756,7 @@ components:
678756 - $ref : " #/components/schemas/DestinationAWSKinesis"
679757 - $ref : " #/components/schemas/DestinationAzureServiceBus"
680758 - $ref : " #/components/schemas/DestinationAWSS3"
759+ - $ref : " #/components/schemas/DestinationGCPPubSub"
681760 discriminator :
682761 propertyName : type
683762 mapping :
@@ -688,6 +767,7 @@ components:
688767 aws_kinesis : " #/components/schemas/DestinationAWSKinesis"
689768 azure_servicebus : " #/components/schemas/DestinationAzureServiceBus"
690769 aws_s3 : " #/components/schemas/DestinationAWSS3"
770+ gcp_pubsub : " #/components/schemas/DestinationGCPPubSub"
691771
692772 DestinationCreateWebhook :
693773 type : object
@@ -817,6 +897,24 @@ components:
817897 $ref : " #/components/schemas/AWSS3Config"
818898 credentials :
819899 $ref : " #/components/schemas/AWSS3Credentials"
900+ DestinationCreateGCPPubSub :
901+ type : object
902+ required : [type, topics, config, credentials]
903+ properties :
904+ id :
905+ type : string
906+ description : Optional user-provided ID. A UUID will be generated if empty.
907+ example : " user-provided-id"
908+ type :
909+ type : string
910+ description : Type of the destination. Must be 'gcp_pubsub'.
911+ enum : [gcp_pubsub]
912+ topics :
913+ $ref : " #/components/schemas/Topics"
914+ config :
915+ $ref : " #/components/schemas/GCPPubSubConfig"
916+ credentials :
917+ $ref : " #/components/schemas/GCPPubSubCredentials"
820918
821919 # Polymorphic Destination Creation Schema (for Request Bodies)
822920 DestinationCreate :
@@ -828,6 +926,7 @@ components:
828926 - $ref : " #/components/schemas/DestinationCreateAWSKinesis"
829927 - $ref : " #/components/schemas/DestinationCreateAzureServiceBus"
830928 - $ref : " #/components/schemas/DestinationCreateAWSS3"
929+ - $ref : " #/components/schemas/DestinationCreateGCPPubSub"
831930 discriminator :
832931 propertyName : type
833932 mapping :
@@ -838,6 +937,7 @@ components:
838937 aws_kinesis : " #/components/schemas/DestinationCreateAWSKinesis"
839938 azure_servicebus : " #/components/schemas/DestinationCreateAzureServiceBus"
840939 aws_s3 : " #/components/schemas/DestinationCreateAWSS3"
940+ gcp_pubsub : " #/components/schemas/DestinationCreateGCPPubSub"
841941
842942 # Type-Specific Destination Update Schemas (for Request Bodies)
843943 WebhookCredentialsUpdate :
@@ -905,6 +1005,16 @@ components:
9051005 $ref : " #/components/schemas/AWSKinesisConfig" # stream_name/region required here, but PATCH means optional
9061006 credentials :
9071007 $ref : " #/components/schemas/AWSKinesisCredentials" # key/secret required here, but PATCH means optional
1008+ DestinationUpdateAzureServiceBus :
1009+ type : object
1010+ # Properties duplicated from DestinationUpdateBase
1011+ properties :
1012+ topics :
1013+ $ref : " #/components/schemas/Topics"
1014+ config :
1015+ $ref : " #/components/schemas/AzureServiceBusConfig" # name required here, but PATCH means optional
1016+ credentials :
1017+ $ref : " #/components/schemas/AzureServiceBusCredentials" # connection_string required here, but PATCH means optional
9081018
9091019 DestinationUpdateAWSS3 :
9101020 type : object
@@ -916,6 +1026,16 @@ components:
9161026 $ref : " #/components/schemas/AWSS3Config" # bucket/region required here, but PATCH means optional
9171027 credentials :
9181028 $ref : " #/components/schemas/AWSS3Credentials" # key/secret required here, but PATCH means optional
1029+ DestinationUpdateGCPPubSub :
1030+ type : object
1031+ # Properties duplicated from DestinationUpdateBase
1032+ properties :
1033+ topics :
1034+ $ref : " #/components/schemas/Topics"
1035+ config :
1036+ $ref : " #/components/schemas/GCPPubSubConfig" # project_id/topic required here, but PATCH means optional
1037+ credentials :
1038+ $ref : " #/components/schemas/GCPPubSubCredentials" # service_account_json required here, but PATCH means optional
9191039
9201040 # Polymorphic Destination Update Schema (for Request Bodies)
9211041 DestinationUpdate :
@@ -925,7 +1045,9 @@ components:
9251045 - $ref : " #/components/schemas/DestinationUpdateRabbitMQ"
9261046 - $ref : " #/components/schemas/DestinationUpdateHookdeck"
9271047 - $ref : " #/components/schemas/DestinationUpdateAWSKinesis"
1048+ - $ref : " #/components/schemas/DestinationUpdateAzureServiceBus"
9281049 - $ref : " #/components/schemas/DestinationUpdateAWSS3"
1050+ - $ref : " #/components/schemas/DestinationUpdateGCPPubSub"
9291051 # Event Schemas
9301052 PublishRequest :
9311053 type : object
@@ -996,10 +1118,15 @@ components:
9961118 example : " 2024-01-01T00:00:00Z"
9971119 metadata :
9981120 type : object
1121+ nullable : true
9991122 description : Key-value string pairs of metadata associated with the event.
10001123 additionalProperties :
10011124 type : string
10021125 example : { "source": "crm" }
1126+ status :
1127+ type : string
1128+ enum : [success, failed]
1129+ example : " success"
10031130 data :
10041131 type : object
10051132 description : Freeform JSON data of the event.
@@ -1338,11 +1465,31 @@ paths:
13381465 schema :
13391466 oneOf :
13401467 - type : string
1341- enum : [webhook, aws_sqs, rabbitmq, hookdeck, aws_kinesis, aws_s3]
1468+ enum :
1469+ [
1470+ webhook,
1471+ aws_sqs,
1472+ rabbitmq,
1473+ hookdeck,
1474+ aws_kinesis,
1475+ azure_servicebus,
1476+ aws_s3,
1477+ gcp_pubsub,
1478+ ]
13421479 - type : array
13431480 items :
13441481 type : string
1345- enum : [webhook, aws_sqs, rabbitmq, hookdeck, aws_kinesis, aws_s3]
1482+ enum :
1483+ [
1484+ webhook,
1485+ aws_sqs,
1486+ rabbitmq,
1487+ hookdeck,
1488+ aws_kinesis,
1489+ azure_servicebus,
1490+ aws_s3,
1491+ gcp_pubsub,
1492+ ]
13461493 description : Filter destinations by type(s).
13471494 - name : topics
13481495 in : query
0 commit comments