Skip to content

Cloud Services

AWS S3, Azure Blob, Google Cloud Storage, and Google Workspace integrations.

14 modules

ModuleDescription
S3 Delete ObjectDelete an object from an AWS S3 bucket
S3 DownloadDownload a file from an AWS S3 bucket to a local path
S3 List ObjectsList objects in an AWS S3 bucket with optional prefix filter
S3 UploadUpload a local file to an AWS S3 bucket
AWS S3 DownloadDownload a file from AWS S3 bucket
AWS S3 UploadUpload a file or data to AWS S3 bucket
Azure DownloadDownload file from Azure Blob Storage
Azure UploadUpload file to Azure Blob Storage
GCS DownloadDownload file from Google Cloud Storage
GCS UploadUpload file to Google Cloud Storage
Calendar Create EventCreate a new event in Google Calendar
Calendar List EventsList upcoming events from Google Calendar
Gmail SearchSearch Gmail messages using Gmail search query syntax
Gmail SendSend an email via the Gmail API

Modules

S3 Delete Object

aws.s3.delete

Delete an object from an AWS S3 bucket

Parameters:

NameTypeRequiredDefaultDescription
bucketstringYes-S3 bucket name
keystringYes-S3 object key to delete
regionstringNous-east-1AWS region
access_key_idstringNo-AWS access key ID (falls back to env AWS_ACCESS_KEY_ID)
secret_access_keystringNo-AWS secret access key (falls back to env AWS_SECRET_ACCESS_KEY)

Output:

FieldTypeDescription
bucketstringS3 bucket name
keystringDeleted object key
deletedbooleanWhether the object was deleted successfully

Example: Delete an object

yaml
bucket: my-bucket
key: uploads/old-file.txt

S3 Download

aws.s3.download

Download a file from an AWS S3 bucket to a local path

Parameters:

NameTypeRequiredDefaultDescription
bucketstringYes-S3 bucket name
keystringYes-S3 object key (path in bucket)
output_pathstringYes-Local file path to save the downloaded file
regionstringNous-east-1AWS region
access_key_idstringNo-AWS access key ID (falls back to env AWS_ACCESS_KEY_ID)
secret_access_keystringNo-AWS secret access key (falls back to env AWS_SECRET_ACCESS_KEY)

Output:

FieldTypeDescription
pathstringLocal file path where the file was saved
sizenumberFile size in bytes
content_typestringMIME type of the downloaded file

Example: Download a file from S3

yaml
bucket: my-bucket
key: data/report.csv
output_path: /tmp/report.csv

S3 List Objects

aws.s3.list

List objects in an AWS S3 bucket with optional prefix filter

Parameters:

NameTypeRequiredDefaultDescription
bucketstringYes-S3 bucket name
prefixstringNo-Filter objects by key prefix (e.g. "uploads/")
max_keysnumberNo100Maximum number of objects to return
regionstringNous-east-1AWS region
access_key_idstringNo-AWS access key ID (falls back to env AWS_ACCESS_KEY_ID)
secret_access_keystringNo-AWS secret access key (falls back to env AWS_SECRET_ACCESS_KEY)

Output:

FieldTypeDescription
objectsarrayList of S3 objects
countnumberNumber of objects returned
truncatedbooleanWhether the results are truncated

Example: List objects with prefix

yaml
bucket: my-bucket
prefix: uploads/
max_keys: 50

S3 Upload

aws.s3.upload

Upload a local file to an AWS S3 bucket

Parameters:

NameTypeRequiredDefaultDescription
bucketstringYes-S3 bucket name
keystringYes-S3 object key (path in bucket)
file_pathstringYes-Local file path to upload
regionstringNous-east-1AWS region
access_key_idstringNo-AWS access key ID (falls back to env AWS_ACCESS_KEY_ID)
secret_access_keystringNo-AWS secret access key (falls back to env AWS_SECRET_ACCESS_KEY)
content_typestringNo-MIME type of the file (auto-detected if not set)

Output:

FieldTypeDescription
bucketstringS3 bucket name
keystringS3 object key
urlstringPublic URL of the uploaded object
sizenumberFile size in bytes

Example: Upload a local file

yaml
bucket: my-bucket
key: data/report.csv
file_path: /tmp/report.csv

AWS S3 Download

cloud.aws_s3.download

Download a file from AWS S3 bucket

Parameters:

NameTypeRequiredDefaultDescription
aws_access_key_idstringNo-AWS access key ID (defaults to env.AWS_ACCESS_KEY_ID)
aws_secret_access_keystringNo-AWS secret access key (defaults to env.AWS_SECRET_ACCESS_KEY)
regionstringNous-east-1AWS region (defaults to env.AWS_REGION or us-east-1)
bucketstringYes-S3 bucket name
keystringYes-S3 bucket name
file_pathstringNo-S3 object key (file path in bucket)

Output:

FieldTypeDescription
contentstringFile content (if file_path not provided)
file_pathstringPath where file was saved (if file_path provided)
sizenumberFile size in bytes
content_typestringMIME type of the file

Example: Download to memory

yaml
bucket: my-bucket
key: data/config.json

Example: Download to file

yaml
bucket: my-bucket
key: backups/database.sql
file_path: /tmp/downloaded.sql

AWS S3 Upload

cloud.aws_s3.upload

Upload a file or data to AWS S3 bucket

Parameters:

NameTypeRequiredDefaultDescription
aws_access_key_idstringNo-AWS access key ID (defaults to env.AWS_ACCESS_KEY_ID)
aws_secret_access_keystringNo-AWS secret access key (defaults to env.AWS_SECRET_ACCESS_KEY)
regionstringNous-east-1AWS region (defaults to env.AWS_REGION or us-east-1)
bucketstringYes-S3 bucket name
keystringYes-S3 bucket name
file_pathstringNo-S3 object key (file path in bucket)
contentstringNo-Local file path to upload
content_typestringNo-MIME type of the file
aclstringNoprivateMIME type of the file

Output:

FieldTypeDescription
urlstringS3 URL of uploaded object
bucketstringS3 URL of uploaded object
keystringS3 URL of uploaded object
etagstringBucket name

Example: Upload text content

yaml
bucket: my-bucket
key: reports/daily-${timestamp}.txt
content: ${report_text}
content_type: text/plain

Example: Upload local file

yaml
bucket: my-bucket
key: backups/database.sql
file_path: /tmp/backup.sql
acl: private

Azure Download

cloud.azure.download

Download file from Azure Blob Storage

Parameters:

NameTypeRequiredDefaultDescription
connection_stringstringNo-Azure Storage connection string (use env var AZURE_STORAGE_CONNECTION_STRING)
containerstringYes-Azure Storage connection string (use env var AZURE_STORAGE_CONNECTION_STRING)
blob_namestringYes-Azure container name
destination_pathstringYes-Blob to download

Output:

FieldTypeDescription
file_pathstringThe file path
sizenumberSize in bytes
containerstringThe container
blob_namestringThe blob name

Example: Download backup

yaml
container: backups
blob_name: data/backup-2024.zip
destination_path: /tmp/backup.zip

Example: Download image

yaml
container: images
blob_name: photos/vacation.jpg
destination_path: /tmp/photo.jpg

Azure Upload

cloud.azure.upload

Upload file to Azure Blob Storage

Parameters:

NameTypeRequiredDefaultDescription
file_pathstringYes-Local file path to upload
connection_stringstringNo-Local file path to upload
containerstringYes-Azure Storage connection string (use env var AZURE_STORAGE_CONNECTION_STRING)
blob_namestringNo-Azure container name
content_typestringNo-Name for the uploaded blob (default: filename)

Output:

FieldTypeDescription
urlstringMIME type (optional)
containerstringMIME type (optional)
blob_namestringURL address
sizenumberThe container

Example: Upload image

yaml
file_path: /tmp/screenshot.png
container: images
blob_name: screenshots/2024/screenshot.png
content_type: image/png

Example: Upload document

yaml
file_path: /tmp/report.pdf
container: documents
blob_name: reports/monthly.pdf

GCS Download

cloud.gcs.download

Download file from Google Cloud Storage

Parameters:

NameTypeRequiredDefaultDescription
bucketstringYes-GCS bucket name
object_namestringYes-GCS bucket name
destination_pathstringYes-Object to download

Output:

FieldTypeDescription
file_pathstringThe file path
sizenumberSize in bytes
bucketstringStorage bucket name
object_namestringObject name in storage

Example: Download backup

yaml
bucket: my-backups
object_name: data/backup-2024.zip
destination_path: /tmp/backup.zip

Example: Download image

yaml
bucket: image-storage
object_name: photos/vacation.jpg
destination_path: /tmp/photo.jpg

GCS Upload

cloud.gcs.upload

Upload file to Google Cloud Storage

Parameters:

NameTypeRequiredDefaultDescription
file_pathstringYes-Local file path to upload
bucketstringYes-Local file path to upload
object_namestringNo-GCS bucket name
content_typestringNo-Name for the uploaded object (default: filename)
publicbooleanNoFalseMIME type (optional)

Output:

FieldTypeDescription
urlstringMake file publicly accessible
bucketstringMake file publicly accessible
object_namestringURL address
sizenumberStorage bucket name
public_urlstringObject name in storage

Example: Upload image

yaml
file_path: /tmp/screenshot.png
bucket: my-bucket
object_name: screenshots/2024/screenshot.png
content_type: image/png
public: true

Example: Upload CSV data

yaml
file_path: /tmp/report.csv
bucket: data-backup
object_name: reports/daily.csv

Calendar Create Event

google.calendar.create_event

Create a new event in Google Calendar

Parameters:

NameTypeRequiredDefaultDescription
access_tokenstringYes-Google OAuth2 access token with Calendar write scope
summarystringYes-Title of the calendar event
start_timestringYes-Event start time in ISO 8601 format
end_timestringYes-Event end time in ISO 8601 format
descriptionstringNo-Detailed description of the event
locationstringNo-Event location or meeting link
attendeesstringNo-Comma-separated list of attendee email addresses
timezonestringNoUTCTimezone for the event (IANA timezone)

Output:

FieldTypeDescription
event_idstringCreated event ID
summarystringEvent title
startstringEvent start time
endstringEvent end time
html_linkstringLink to view the event in Google Calendar

Example: Create a meeting event

yaml
access_token: <oauth2-token>
summary: Sprint Planning
start_time: 2026-03-01T10:00:00
end_time: 2026-03-01T11:00:00
attendees: alice@example.com, bob@example.com
timezone: America/New_York

Calendar List Events

google.calendar.list_events

List upcoming events from Google Calendar

Parameters:

NameTypeRequiredDefaultDescription
access_tokenstringYes-Google OAuth2 access token with Calendar read scope
max_resultsnumberNo10Maximum number of events to return
time_minstringNo-Only return events starting after this time (ISO 8601). Defaults to now.
time_maxstringNo-Only return events starting before this time (ISO 8601)

Output:

FieldTypeDescription
eventsarrayList of calendar events
countnumberNumber of events returned

Example: List next 5 events

yaml
access_token: <oauth2-token>
max_results: 5

google.gmail.search

Search Gmail messages using Gmail search query syntax

Parameters:

NameTypeRequiredDefaultDescription
access_tokenstringYes-Google OAuth2 access token with Gmail read scope
querystringYes-Gmail search query (e.g. "from:user@example.com subject:invoice")
max_resultsnumberNo10Maximum number of messages to return

Output:

FieldTypeDescription
messagesarrayList of matching messages
totalnumberTotal number of messages returned

Example: Search for emails from a specific sender

yaml
access_token: <oauth2-token>
query: from:boss@company.com is:unread
max_results: 5

Gmail Send

google.gmail.send

Send an email via the Gmail API

Parameters:

NameTypeRequiredDefaultDescription
access_tokenstringYes-Google OAuth2 access token with Gmail send scope
tostringYes-Recipient email address
subjectstringYes-Email subject line
bodystringYes-Email body content
htmlbooleanNoFalseWhether the body is HTML content
ccstringNo-CC email address(es), comma-separated
bccstringNo-BCC email address(es), comma-separated

Output:

FieldTypeDescription
message_idstringGmail message ID
thread_idstringGmail thread ID
tostringRecipient email address

Example: Send a plain text email

yaml
access_token: <oauth2-token>
to: user@example.com
subject: Test Email
body: Hello, this is a test email.

Released under the Apache 2.0 License.