> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon Web Services Integration for AI Agents & Workflows

> Interact with AWS services including DynamoDB, S3, Lambda, SNS, SQS, EventBridge, CloudWatch Logs, and Redshift.

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img className="block dark:hidden" src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/aws-light.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=a9150c2ae647caeb2f7db6072b00d566" alt="Amazon Web Services logo" width="72" height="72" data-path="logos/aws-light.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/aws-dark.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=22e4bd6f76b3da000b3afc011364f70c" alt="Amazon Web Services logo" width="72" height="72" data-path="logos/aws-dark.svg" />

## Overview

Add **Amazon Web Services** to any ModuleX agent or workflow. Interact with AWS services including DynamoDB, S3, Lambda, SNS, SQS, EventBridge, CloudWatch Logs, and Redshift via the AWS SDK (`boto3`).

<Info>
  **Categories**: Cloud Infrastructure · Developer Tools & Infrastructure · Data Storage · **Auth**: AWS Access Key · **Actions**: 21
</Info>

## Authentication

### AWS Access Key

Authenticate using an AWS access key ID and secret access key.

<Steps>
  <Step title="Step 1">
    Sign in to the AWS Management Console.
  </Step>

  <Step title="Step 2">
    Go to IAM > Users > your user > Security credentials.
  </Step>

  <Step title="Step 3">
    Create an access key and save both the Access Key ID and Secret Access Key.
  </Step>
</Steps>

#### Required Credentials

| Field             | Description                | Required | Format                                     |
| ----------------- | -------------------------- | -------- | ------------------------------------------ |
| Access Key ID     | Your AWS Access Key ID     | Yes      | `AKIAIOSFODNN7EXAMPLE`                     |
| Secret Access Key | Your AWS Secret Access Key | Yes      | `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` |

## Available Actions

<AccordionGroup>
  <Accordion title="cloudwatch_logs_put_log_event — Upload a log event to a specified CloudWatch Logs log stream.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="log_group_name" type="string" required>
      Name of the CloudWatch log group
    </ResponseField>

    <ResponseField name="log_stream_name" type="string" required>
      Name of the log stream within the log group
    </ResponseField>

    <ResponseField name="message" type="string" required>
      The log event message
    </ResponseField>

    <ResponseField name="timestamp" type="integer" required>
      Unix timestamp in milliseconds for the event
    </ResponseField>

    <ResponseField name="sequence_token" type="string">
      Sequence token from a previous PutLogEvents call (not needed for a new log stream)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "next_sequence_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Next Sequence Token"
        },
        "rejected_log_events_info": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rejected Log Events Info"
        }
      },
      "required": [
        "success"
      ],
      "title": "CloudwatchLogsPutLogEventOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_create_table — Create a new DynamoDB table with configurable key schema, billing mode, and optional streams.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="table_name" type="string" required>
      Name of the table to create
    </ResponseField>

    <ResponseField name="key_primary_attribute_name" type="string" required>
      Name of the partition key attribute
    </ResponseField>

    <ResponseField name="key_primary_attribute_type" type="string" required>
      Data type of the partition key: S (string), N (number), or B (binary)
    </ResponseField>

    <ResponseField name="key_secondary_attribute_name" type="string">
      Name of the sort key attribute (optional)
    </ResponseField>

    <ResponseField name="key_secondary_attribute_type" type="string">
      Data type of the sort key: S (string), N (number), or B (binary)
    </ResponseField>

    <ResponseField name="billing_mode" type="string" required>
      Billing mode: PROVISIONED or PAY\_PER\_REQUEST
    </ResponseField>

    <ResponseField name="read_capacity_units" type="integer">
      Read capacity units (required when billing\_mode is PROVISIONED)
    </ResponseField>

    <ResponseField name="write_capacity_units" type="integer">
      Write capacity units (required when billing\_mode is PROVISIONED)
    </ResponseField>

    <ResponseField name="stream_specification_enabled" type="boolean">
      Whether DynamoDB Streams is enabled
    </ResponseField>

    <ResponseField name="stream_specification_view_type" type="string">
      Stream view type: KEYS\_ONLY, NEW\_IMAGE, OLD\_IMAGE, or NEW\_AND\_OLD\_IMAGES
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "table_description": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Table Description"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbCreateTableOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_execute_statement — Execute a PartiQL statement against DynamoDB for reads or writes.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="statement" type="string" required>
      PartiQL statement to execute
    </ResponseField>

    <ResponseField name="parameters" type="array">
      List of parameter values for the PartiQL statement (strings)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbExecuteStatementOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_get_item — Retrieve an item from a DynamoDB table by its primary key.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="table_name" type="string" required>
      Name of the DynamoDB table
    </ResponseField>

    <ResponseField name="key" type="object" required>
      Item key in DynamoDB JSON format, e.g. \{"id": \{"S": "123"}}
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "item": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Item"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbGetItemOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_put_item — Create or replace an item in a DynamoDB table.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="table_name" type="string" required>
      Name of the DynamoDB table
    </ResponseField>

    <ResponseField name="item" type="object" required>
      Item in DynamoDB JSON format, e.g. \{"id": \{"S": "123"}, "name": \{"S": "foo"}}
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "attributes": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Attributes"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbPutItemOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_query — Query items from a DynamoDB table based on key conditions.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="table_name" type="string" required>
      Name of the DynamoDB table
    </ResponseField>

    <ResponseField name="key_condition_expression" type="string" required>
      Key condition expression, e.g. partitionKey = :pk AND sortKey > :sk
    </ResponseField>

    <ResponseField name="projection_expression" type="string">
      Comma-separated attribute names to retrieve
    </ResponseField>

    <ResponseField name="expression_attribute_names" type="object">
      Substitution tokens for attribute names, e.g. \{"#n": "name"}
    </ResponseField>

    <ResponseField name="expression_attribute_values" type="object">
      Substitution values in DynamoDB JSON format, e.g. \{":pk": \{"S": "val"}}
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        },
        "count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Count"
        },
        "scanned_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Scanned Count"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbQueryOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_scan — Scan all items in a DynamoDB table with optional filtering.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="table_name" type="string" required>
      Name of the DynamoDB table
    </ResponseField>

    <ResponseField name="projection_expression" type="string">
      Comma-separated attribute names to retrieve
    </ResponseField>

    <ResponseField name="filter_expression" type="string">
      Filter expression to apply after scanning
    </ResponseField>

    <ResponseField name="expression_attribute_names" type="object">
      Substitution tokens for attribute names, e.g. \{"#n": "name"}
    </ResponseField>

    <ResponseField name="expression_attribute_values" type="object">
      Substitution values in DynamoDB JSON format, e.g. \{":val": \{"S": "x"}}
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum number of items to evaluate
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        },
        "count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Count"
        },
        "scanned_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Scanned Count"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbScanOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_update_item — Update attributes of an existing item or add a new item in a DynamoDB table.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="table_name" type="string" required>
      Name of the DynamoDB table
    </ResponseField>

    <ResponseField name="key" type="object" required>
      Item key in DynamoDB JSON format, e.g. \{"id": \{"S": "123"}}
    </ResponseField>

    <ResponseField name="update_expression" type="string">
      Update expression, e.g. SET #n = :val
    </ResponseField>

    <ResponseField name="expression_attribute_names" type="object">
      Substitution tokens for attribute names, e.g. \{"#n": "name"}
    </ResponseField>

    <ResponseField name="expression_attribute_values" type="object">
      Substitution values in DynamoDB JSON format, e.g. \{":val": \{"S": "x"}}
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "attributes": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Attributes"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbUpdateItemOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="dynamodb_update_table — Modify settings for a DynamoDB table such as billing mode, capacity, or streams.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="table_name" type="string" required>
      Name of the DynamoDB table
    </ResponseField>

    <ResponseField name="billing_mode" type="string" required>
      Billing mode: PROVISIONED or PAY\_PER\_REQUEST
    </ResponseField>

    <ResponseField name="read_capacity_units" type="integer">
      Read capacity units (required when billing\_mode is PROVISIONED)
    </ResponseField>

    <ResponseField name="write_capacity_units" type="integer">
      Write capacity units (required when billing\_mode is PROVISIONED)
    </ResponseField>

    <ResponseField name="stream_specification_enabled" type="boolean">
      Whether DynamoDB Streams is enabled
    </ResponseField>

    <ResponseField name="stream_specification_view_type" type="string">
      Stream view type: KEYS\_ONLY, NEW\_IMAGE, OLD\_IMAGE, or NEW\_AND\_OLD\_IMAGES
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "table_description": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Table Description"
        }
      },
      "required": [
        "success"
      ],
      "title": "DynamodbUpdateTableOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="eventbridge_send_event — Send an event to an Amazon EventBridge event bus.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="event_bus_name" type="string" required>
      Name of the EventBridge event bus
    </ResponseField>

    <ResponseField name="event_data" type="object" required>
      JSON object to send as the event detail
    </ResponseField>

    <ResponseField name="detail_type" type="string">
      Free-form string (max 128 chars) identifying the event type (Default: `modulex.event`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "failed_entry_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Failed Entry Count"
        },
        "entries": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Entries",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "EventbridgeSendEventOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="lambda_create_function — Create a new AWS Lambda function from inline source code.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="function_name" type="string" required>
      Name for the Lambda function
    </ResponseField>

    <ResponseField name="role" type="string" required>
      IAM Role ARN for the function execution role
    </ResponseField>

    <ResponseField name="code" type="string" required>
      Function source code (Python handler)
    </ResponseField>

    <ResponseField name="runtime" type="string">
      Lambda runtime: python3.12, python3.11, nodejs20.x, etc. (Default: `python3.12`)
    </ResponseField>

    <ResponseField name="handler" type="string">
      Handler entrypoint (e.g. lambda\_function.lambda\_handler) (Default: `lambda_function.lambda_handler`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "function_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Function Name"
        },
        "function_arn": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Function Arn"
        },
        "runtime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Runtime"
        },
        "role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Role"
        },
        "handler": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Handler"
        },
        "code_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Code Size"
        },
        "last_modified": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Last Modified"
        },
        "state": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        }
      },
      "required": [
        "success"
      ],
      "title": "LambdaCreateFunctionOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="lambda_invoke_function — Invoke an AWS Lambda function synchronously and return its response.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="function_name" type="string" required>
      Name or ARN of the Lambda function to invoke
    </ResponseField>

    <ResponseField name="event_data" type="object">
      JSON object to send as the invocation payload
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "status_code": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Status Code"
        },
        "payload": {
          "default": null,
          "title": "Payload"
        },
        "function_error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Function Error"
        },
        "executed_version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Executed Version"
        }
      },
      "required": [
        "success"
      ],
      "title": "LambdaInvokeFunctionOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_region_options — List available AWS regions.">
    ### Response

    ```json theme={null}
    {
      "$defs": {
        "RegionInfo": {
          "additionalProperties": false,
          "properties": {
            "region_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Region Name"
            },
            "endpoint": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Endpoint"
            },
            "opt_in_status": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Opt In Status"
            }
          },
          "title": "RegionInfo",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "regions": {
          "items": {
            "$ref": "#/$defs/RegionInfo"
          },
          "title": "Regions",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListRegionOptionsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="redshift_create_rows — Insert rows into an Amazon Redshift Serverless table.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="workgroup_name" type="string" required>
      Name of the Redshift Serverless workgroup
    </ResponseField>

    <ResponseField name="database" type="string" required>
      Database name
    </ResponseField>

    <ResponseField name="schema_name" type="string" required>
      Schema name
    </ResponseField>

    <ResponseField name="table" type="string" required>
      Table name
    </ResponseField>

    <ResponseField name="columns" type="array" required>
      List of column names (strings), e.g. \["id", "name"]
    </ResponseField>

    <ResponseField name="rows" type="array" required>
      List of row arrays, e.g. \[\[1, "Alice"], \[2, "Bob"]]
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "statement_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Statement Id"
        }
      },
      "required": [
        "success"
      ],
      "title": "RedshiftCreateRowsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="redshift_delete_rows — Delete rows from an Amazon Redshift Serverless table.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="workgroup_name" type="string" required>
      Name of the Redshift Serverless workgroup
    </ResponseField>

    <ResponseField name="database" type="string" required>
      Database name
    </ResponseField>

    <ResponseField name="schema_name" type="string" required>
      Schema name
    </ResponseField>

    <ResponseField name="table" type="string" required>
      Table name
    </ResponseField>

    <ResponseField name="where" type="string" required>
      WHERE clause with named parameters, e.g. id = :id
    </ResponseField>

    <ResponseField name="sql_parameters" type="object">
      Named parameter values, e.g. \{"id": 1}
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "statement_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Statement Id"
        }
      },
      "required": [
        "success"
      ],
      "title": "RedshiftDeleteRowsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="redshift_query_database — Run a SELECT query against an Amazon Redshift Serverless database.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="workgroup_name" type="string" required>
      Name of the Redshift Serverless workgroup
    </ResponseField>

    <ResponseField name="database" type="string" required>
      Database name
    </ResponseField>

    <ResponseField name="columns" type="array">
      List of column names to retrieve (strings); omit for SELECT \*
    </ResponseField>

    <ResponseField name="from_clause" type="string" required>
      FROM clause, e.g. schema\_name.table\_name
    </ResponseField>

    <ResponseField name="where" type="string">
      WHERE clause with named parameters, e.g. id = :id
    </ResponseField>

    <ResponseField name="order_by" type="string">
      ORDER BY clause, e.g. column\_name ASC
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum number of rows to return (Default: `10`)
    </ResponseField>

    <ResponseField name="sql_parameters" type="object">
      Named parameter values, e.g. \{"id": 1}
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "records": {
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array"
          },
          "title": "Records",
          "type": "array"
        },
        "total_num_rows": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Total Num Rows"
        },
        "column_metadata": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Column Metadata",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "RedshiftQueryDatabaseOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="redshift_update_rows — Update rows in an Amazon Redshift Serverless table.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="workgroup_name" type="string" required>
      Name of the Redshift Serverless workgroup
    </ResponseField>

    <ResponseField name="database" type="string" required>
      Database name
    </ResponseField>

    <ResponseField name="schema_name" type="string" required>
      Schema name
    </ResponseField>

    <ResponseField name="table" type="string" required>
      Table name
    </ResponseField>

    <ResponseField name="updates" type="object" required>
      Key-value pairs to set, e.g. \{"col1": "new\_val"}
    </ResponseField>

    <ResponseField name="where" type="string" required>
      WHERE clause with named parameters, e.g. id = :id
    </ResponseField>

    <ResponseField name="sql_parameters" type="object">
      Named parameter values, e.g. \{"id": 1}
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "statement_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Statement Id"
        }
      },
      "required": [
        "success"
      ],
      "title": "RedshiftUpdateRowsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="s3_generate_presigned_url — Generate a presigned URL to download an object from an S3 bucket.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="bucket" type="string" required>
      S3 bucket name
    </ResponseField>

    <ResponseField name="key" type="string" required>
      Object key (path) to generate the URL for
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        }
      },
      "required": [
        "success"
      ],
      "title": "S3GeneratePresignedUrlOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="s3_upload_base64_as_file — Upload a base64-encoded string as a file to an S3 bucket.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="bucket" type="string" required>
      S3 bucket name
    </ResponseField>

    <ResponseField name="filename" type="string" required>
      S3 object key (path including filename and extension)
    </ResponseField>

    <ResponseField name="data" type="string" required>
      Base64-encoded file content
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "bucket": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bucket"
        },
        "key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Key"
        }
      },
      "required": [
        "success"
      ],
      "title": "S3UploadBase64AsFileOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="sns_send_message — Publish a message to an Amazon SNS topic.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="topic" type="string" required>
      ARN of the SNS topic
    </ResponseField>

    <ResponseField name="message" type="string" required>
      Message to publish
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "message_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Message Id"
        }
      },
      "required": [
        "success"
      ],
      "title": "SnsSendMessageOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="sqs_send_message — Send a message to an Amazon SQS queue.">
    ### Parameters

    <ResponseField name="region" type="string">
      AWS region (e.g. us-east-1, eu-west-1) (Default: `us-east-1`)
    </ResponseField>

    <ResponseField name="queue_url" type="string" required>
      URL of the SQS queue
    </ResponseField>

    <ResponseField name="event_data" type="object" required>
      JSON object to send as the message body
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "message_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Message Id"
        },
        "md5_of_message_body": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Md5 Of Message Body"
        },
        "sequence_number": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sequence Number"
        }
      },
      "required": [
        "success"
      ],
      "title": "SqsSendMessageOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* AWS service limits vary by service, region, and account. See
  [AWS Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)
  for per-service details.
* DynamoDB: default 40,000 RCU / 40,000 WCU per table (on-demand auto-scales).
* S3: no per-request limit; 3,500 PUT/s and 5,500 GET/s per prefix.
* Lambda: 1,000 concurrent executions (default, adjustable).
* SNS/SQS: region-dependent throughput limits.
* Redshift Data API: 200 active queries per cluster/workgroup.
* Error model: all AWS SDK exceptions are caught and returned as
  `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Google Cloud" href="/integrations/tools/google-cloud" />

  <Card title="Vercel" href="/integrations/tools/vercel" />

  <Card title="Algolia" href="/integrations/tools/algolia" />
</CardGroup>

## Links

* [Amazon Web Services](https://aws.amazon.com)
