<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:pubsub="http://www.mulesoft.org/schema/mule/pubsub"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/pubsub http://www.mulesoft.org/schema/mule/pubsub/current/mule-pubsub.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<pubsub:config name="Google_Pub_Sub_Configuration" doc:name="Google Pub Sub Configuration" projectId="${config.default_project_id}">
<pubsub:connection privateKeyId="${config.private_key_id}" privateKey="${config.private_key}" clientId="${config.client_id}" clientEmail="${config.client_email}" />
</pubsub:config>
<configuration-properties doc:name="Configuration properties" file="mule-app.properties" />
<flow name="patch-snapshot-flow">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/patch-snapshot"/>
<pubsub:patch-snapshot doc:name="Patch snapshot" config-ref="Google_Pub_Sub_Configuration" updateMask="labels">
<pubsub:snapshot><![CDATA[#[%dw 2.0
output application/json
---
{
"name": "projects/<<project-name>>/snapshots/<<snapshot-name>>",
"topic": "projects/<<project-name>>/topic/<<topic-name>>"
"expireTime": "2099-01-01T00:00:00Z",
"labels": {
"label1": "test-patch-snapshot"
}
}]]]></pubsub:snapshot>
</pubsub:patch-snapshot>
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" message="Updated Snapshot: #[payload]"/>
</flow>
</mule>