Skip to content

Commit e536556

Browse files
committed
fix(aws): validate AWS integrations against SDK and API docs
Fixes DynamoDB items failing or serializing as {} (BigInt, sets, binary), RDS SELECT rowCount always 0, Athena dropping the first row of DDL results, SES templated/bulk sends missing Reply-To and bulk Cc/Bcc, Lambda dropdowns forcing values on update, and binary Secrets Manager secrets. Adds missing documented params and dropped response fields across the suite. All changes are additive.
1 parent 0395eb3 commit e536556

179 files changed

Lines changed: 4286 additions & 175 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎apps/docs/content/docs/integrations/athena.mdx‎

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ Start an SQL query execution in AWS Athena
3838
| `executionParameters` | json | No | Values for ? placeholders in a parameterized query or EXECUTE statement, applied in order. Pass a JSON array of strings \(e.g. \["2024-01-01", "US"\]\); a plain comma-separated list is also accepted when no value contains a comma |
3939
| `resultReuseEnabled` | boolean | No | Reuse a previous result of the same query instead of re-scanning data \(default: false\) |
4040
| `resultReuseMaxAgeInMinutes` | number | No | Maximum age in minutes of a previous result eligible for reuse \(0-10080, default: 60\) |
41+
| `encryptionOption` | string | No | Encryption for the query results in S3: SSE_S3, SSE_KMS, or CSE_KMS. Overridden when the workgroup enforces its own settings |
42+
| `kmsKey` | string | No | KMS key ARN or ID used when encryptionOption is SSE_KMS or CSE_KMS |
43+
| `expectedBucketOwner` | string | No | AWS account ID expected to own the output location bucket; the query fails if it does not |
44+
| `clientRequestToken` | string | No | Idempotency token \(32-128 characters\). Repeating a request with the same token returns the original query execution instead of starting a new one |
4145

4246
#### Output
4347

@@ -80,6 +84,14 @@ Get the status and details of an Athena query execution
8084
| `queryQueueTimeInMillis` | number | Time the query spent in queue in milliseconds |
8185
| `totalExecutionTimeInMillis` | number | Total execution time in milliseconds |
8286
| `outputLocation` | string | S3 location of query results |
87+
| `servicePreProcessingTimeInMillis` | number | Time Athena spent preprocessing the query before submitting it, in milliseconds |
88+
| `serviceProcessingTimeInMillis` | number | Time Athena spent finalizing and publishing results after execution, in milliseconds |
89+
| `dataManifestLocation` | string | S3 location of the manifest file listing files written by the query |
90+
| `reusedPreviousResult` | boolean | Whether the query reused a previous result instead of scanning data |
91+
| `athenaError` | json | Failure details for a FAILED query \(errorCategory: 1 system, 2 user, 3 other; errorType; retryable; errorMessage\) |
92+
| `executionParameters` | array | Values supplied for the query's ? placeholders |
93+
| `substatementType` | string | Kind of query statement that was run \(e.g., SELECT, INSERT, CREATE_TABLE\) |
94+
| `engineVersion` | json | Engine version used \(selectedEngineVersion, effectiveEngineVersion\) |
8395

8496
</ReferenceDetails>
8597

@@ -102,10 +114,10 @@ Retrieve the results of a completed Athena query execution
102114

103115
| Parameter | Type | Description |
104116
| --------- | ---- | ----------- |
105-
| `columns` | array | Column metadata \(name and type\) |
117+
| `columns` | array | Column metadata \(name, type, label, precision, scale, nullable, caseSensitive\) |
106118
| `rows` | array | Result rows as key-value objects |
107119
| `nextToken` | string | Pagination token for next page of results |
108-
| `updateCount` | number | Number of rows affected \(for INSERT/UPDATE statements\) |
120+
| `updateCount` | number | Number of rows inserted or updated by a CREATE TABLE AS SELECT, INSERT INTO, or UPDATE statement |
109121

110122
</ReferenceDetails>
111123

@@ -188,6 +200,14 @@ Get the status and details of up to 50 Athena query executions in one call
188200
| ↳ `queryQueueTimeInMillis` | number | Time the query spent in queue in milliseconds |
189201
| ↳ `totalExecutionTimeInMillis` | number | Total execution time in milliseconds |
190202
| ↳ `outputLocation` | string | S3 location of query results |
203+
| ↳ `servicePreProcessingTimeInMillis` | number | Time Athena spent preprocessing the query before submitting it, in milliseconds |
204+
| ↳ `serviceProcessingTimeInMillis` | number | Time Athena spent finalizing and publishing results after execution, in milliseconds |
205+
| ↳ `dataManifestLocation` | string | S3 location of the manifest file listing files written by the query |
206+
| ↳ `reusedPreviousResult` | boolean | Whether the query reused a previous result instead of scanning data |
207+
| ↳ `athenaError` | json | Failure details for a FAILED query \(errorCategory: 1 system, 2 user, 3 other; errorType; retryable; errorMessage\) |
208+
| ↳ `executionParameters` | array | Values supplied for the query's ? placeholders |
209+
| ↳ `substatementType` | string | Kind of query statement that was run \(e.g., SELECT, INSERT, CREATE_TABLE\) |
210+
| ↳ `engineVersion` | json | Engine version used \(selectedEngineVersion, effectiveEngineVersion\) |
191211
| `unprocessedQueryExecutionIds` | array | Query execution IDs that could not be retrieved, with error details |
192212
| ↳ `queryExecutionId` | string | Query execution ID |
193213
| ↳ `errorCode` | string | Error code |

‎apps/docs/content/docs/integrations/cloudformation.mdx‎

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ List and describe CloudFormation stacks
3636

3737
| Parameter | Type | Description |
3838
| --------- | ---- | ----------- |
39-
| `stacks` | array | List of CloudFormation stacks with status, outputs, and tags |
39+
| `stacks` | array | List of CloudFormation stacks \(stackName, stackId, stackStatus, stackStatusReason, detailedStatus, creationTime, lastUpdatedTime, deletionTime, description, enableTerminationProtection, driftInformation, outputs \[\{outputKey, outputValue, description, exportName\}\], tags, parameters \[\{parameterKey, parameterValue, usePreviousValue, resolvedValue\}\], capabilities, changeSetId, roleArn, parentId, rootId, notificationArns, timeoutInMinutes, disableRollback, deletionMode, retainExceptOnCreate\) |
4040

4141
</ReferenceDetails>
4242

@@ -58,6 +58,8 @@ Create a new CloudFormation stack from a template
5858
| `tags` | json | No | Tags to apply to the stack and its resources \(e.g., \[\{"key": "env", "value": "prod"\}\]\) |
5959
| `onFailure` | string | No | Action to take on creation failure: ROLLBACK \(default\), DELETE, or DO_NOTHING |
6060
| `timeoutInMinutes` | number | No | Amount of time before the stack creation times out and rolls back |
61+
| `roleArn` | string | No | ARN of an IAM service role CloudFormation assumes for stack operations \(defaults to the caller credentials or the role previously used for the stack\) |
62+
| `enableTerminationProtection` | boolean | No | Whether to enable termination protection on the new stack \(default false\) |
6163

6264
#### Output
6365

@@ -84,6 +86,7 @@ Update an existing CloudFormation stack with a new or previous template
8486
| `parameters` | json | No | Template input parameters \(e.g., \[\{"parameterKey": "InstanceType", "parameterValue": "t3.micro"\}\]\) |
8587
| `capabilities` | string | No | Comma-separated capabilities to acknowledge \(CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND\) |
8688
| `tags` | json | No | Tags to apply to the stack and its resources \(e.g., \[\{"key": "env", "value": "prod"\}\]\) |
89+
| `roleArn` | string | No | ARN of an IAM service role CloudFormation assumes for stack operations \(defaults to the caller credentials or the role previously used for the stack\) |
8790

8891
#### Output
8992

@@ -155,6 +158,8 @@ Preview the changes a stack create or update would make before applying them
155158
| `capabilities` | string | No | Comma-separated capabilities to acknowledge \(CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND\) |
156159
| `changeSetType` | string | No | CREATE \(default, new stack\), UPDATE \(existing stack\), or IMPORT \(import existing resources\) |
157160
| `description` | string | No | Description of the change set for reference |
161+
| `tags` | json | No | Tags to apply to the stack and its resources when the change set executes \(e.g., \[\{"key": "env", "value": "prod"\}\]\) |
162+
| `roleArn` | string | No | ARN of an IAM service role CloudFormation assumes for stack operations \(defaults to the caller credentials or the role previously used for the stack\) |
158163

159164
#### Output
160165

@@ -178,6 +183,7 @@ View the resource changes a change set would make and its execution status
178183
| `awsRegion` | string | Yes | AWS region \(e.g., us-east-1\) |
179184
| `changeSetName` | string | Yes | Name or ARN of the change set to describe |
180185
| `stackName` | string | No | Name or ID of the stack the change set belongs to \(required if changeSetName is not an ARN\) |
186+
| `nextToken` | string | No | Pagination token from a previous call to fetch the next page of changes |
181187

182188
#### Output
183189

@@ -193,7 +199,16 @@ View the resource changes a change set would make and its execution status
193199
| `statusReason` | string | Reason for the current status, particularly if failed |
194200
| `creationTime` | number | Timestamp the change set was created |
195201
| `capabilities` | array | Capabilities required to execute the change set |
196-
| `changes` | array | List of resource changes \(action, logical/physical resource ID, resource type, replacement\) |
202+
| `changes` | array | List of resource changes \(action, logicalResourceId, physicalResourceId, resourceType, replacement, type, policyAction, scope, changeSetId, details \[\{attribute, name, requiresRecreation, evaluation, changeSource, causingEntity\}\]\) |
203+
| `parameters` | array | Stack parameters for the change set \(parameterKey, parameterValue, usePreviousValue, resolvedValue\) |
204+
| `tags` | array | Tags associated with the change set \(key, value\) |
205+
| `notificationArns` | array | SNS topic ARNs that receive stack event notifications |
206+
| `includeNestedStacks` | boolean | Whether change sets were created for nested stacks |
207+
| `parentChangeSetId` | string | ID of the parent change set, for nested change sets |
208+
| `rootChangeSetId` | string | ID of the top-level change set, for nested change sets |
209+
| `onStackFailure` | string | Behavior when stack operations fail \(DO_NOTHING, ROLLBACK, DELETE\) |
210+
| `importExistingResources` | boolean | Whether the change set imports resources that already exist |
211+
| `nextToken` | string | Pagination token for the next page of changes, if more remain |
197212

198213
</ReferenceDetails>
199214

@@ -306,7 +321,7 @@ Get the event history for a CloudFormation stack
306321

307322
| Parameter | Type | Description |
308323
| --------- | ---- | ----------- |
309-
| `events` | array | List of stack events with resource status and timestamps |
324+
| `events` | array | List of stack events \(stackId, eventId, stackName, operationId, logicalResourceId, physicalResourceId, resourceType, resourceStatus, resourceStatusReason, detailedStatus, resourceProperties, clientRequestToken, hookType, hookStatus, hookStatusReason, hookInvocationPoint, hookFailureMode, timestamp\) |
310325

311326
</ReferenceDetails>
312327

@@ -352,7 +367,7 @@ Get a summary of a template or deployed stack: resource types, required capabili
352367
| Parameter | Type | Description |
353368
| --------- | ---- | ----------- |
354369
| `description` | string | Template description |
355-
| `parameters` | array | Template parameters with types, defaults, and descriptions |
370+
| `parameters` | array | Template parameters \(parameterKey, defaultValue, parameterType, noEcho, description, allowedValues\) |
356371
| `capabilities` | array | Required capabilities \(e.g., CAPABILITY_IAM\) |
357372
| `capabilitiesReason` | string | Reason capabilities are required |
358373
| `resourceTypes` | array | AWS resource types declared in the template \(e.g., AWS::S3::Bucket\) |

‎apps/docs/content/docs/integrations/cloudwatch.mdx‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ Run a CloudWatch Log Insights query against one or more log groups
4848
| ↳ `recordsMatched` | number | Number of log records that matched the query |
4949
| ↳ `recordsScanned` | number | Total log records scanned |
5050
| `status` | string | Query completion status \(Complete, Failed, Cancelled, or Timeout\) |
51+
| `queryId` | string | ID of the Logs Insights query |
5152

5253
</ReferenceDetails>
5354

@@ -69,6 +70,7 @@ Search log events across all streams in a log group by filter pattern and time r
6970
| `endTime` | number | No | End time as Unix epoch seconds |
7071
| `startFromHead` | boolean | No | Return the earliest matching events first instead of the latest |
7172
| `limit` | number | No | Maximum number of events to return |
73+
| `nextToken` | string | No | Pagination token from a previous call to continue where it stopped |
7274

7375
#### Output
7476

@@ -79,6 +81,8 @@ Search log events across all streams in a log group by filter pattern and time r
7981
| ↳ `timestamp` | number | Event timestamp in epoch milliseconds |
8082
| ↳ `message` | string | Log event message |
8183
| ↳ `ingestionTime` | number | Ingestion time in epoch milliseconds |
84+
| ↳ `eventId` | string | Unique ID of the log event |
85+
| `nextToken` | string | Token to fetch the next page of matching events, if more remain |
8286

8387
</ReferenceDetails>
8488

@@ -125,6 +129,7 @@ Retrieve log events from a specific CloudWatch log stream
125129
| `startTime` | number | No | Start time as Unix epoch seconds |
126130
| `endTime` | number | No | End time as Unix epoch seconds |
127131
| `limit` | number | No | Maximum number of events to return |
132+
| `nextToken` | string | No | Token from a previous call \(nextForwardToken or nextBackwardToken\) to page through the stream |
128133

129134
#### Output
130135

@@ -134,6 +139,8 @@ Retrieve log events from a specific CloudWatch log stream
134139
| ↳ `timestamp` | number | Event timestamp in epoch milliseconds |
135140
| ↳ `message` | string | Log event message |
136141
| ↳ `ingestionTime` | number | Ingestion time in epoch milliseconds |
142+
| `nextForwardToken` | string | Token for the next, newer page of events \(returns the same token when the end of the stream is reached\) |
143+
| `nextBackwardToken` | string | Token for the previous, older page of events |
137144

138145
</ReferenceDetails>
139146

@@ -234,6 +241,8 @@ Get statistics for a CloudWatch metric over a time range
234241
| `period` | number | Yes | Granularity in seconds \(e.g., 60, 300, 3600\) |
235242
| `statistics` | array | Yes | Statistics to retrieve \(Average, Sum, Minimum, Maximum, SampleCount\) |
236243
| `dimensions` | string | No | Dimensions as JSON \(e.g., \{"InstanceId": "i-1234"\}\) |
244+
| `extendedStatistics` | array | No | Percentile statistics to retrieve \(e.g., \["p99", "p95"\]\). AWS accepts either Statistics or ExtendedStatistics, so when set these are requested instead of statistics |
245+
| `unit` | string | No | Only return data reported with this unit \(e.g., Percent, Milliseconds\). Omit to return all units |
237246

238247
#### Output
239248

@@ -248,6 +257,7 @@ Get statistics for a CloudWatch metric over a time range
248257
| ↳ `maximum` | number | Maximum statistic value |
249258
| ↳ `sampleCount` | number | Sample count statistic value |
250259
| ↳ `unit` | string | Unit of the metric |
260+
| ↳ `extendedStatistics` | json | Percentile values keyed by statistic \(e.g., \{"p99": 120.5\}\) |
251261

252262
</ReferenceDetails>
253263

@@ -296,6 +306,7 @@ List and filter CloudWatch alarms
296306
| `stateValue` | string | No | Filter by alarm state \(OK, ALARM, INSUFFICIENT_DATA\) |
297307
| `alarmType` | string | No | Filter by alarm type \(MetricAlarm, CompositeAlarm\) |
298308
| `limit` | number | No | Maximum number of alarms to return |
309+
| `nextToken` | string | No | Pagination token from a previous call |
299310

300311
#### Output
301312

@@ -309,7 +320,29 @@ List and filter CloudWatch alarms
309320
| ↳ `metricName` | string | Metric name \(MetricAlarm only\) |
310321
| ↳ `namespace` | string | Metric namespace \(MetricAlarm only\) |
311322
| ↳ `threshold` | number | Threshold value \(MetricAlarm only\) |
323+
| ↳ `comparisonOperator` | string | Comparison operator \(MetricAlarm only\) |
324+
| ↳ `evaluationPeriods` | number | Number of periods evaluated \(MetricAlarm only\) |
312325
| ↳ `stateUpdatedTimestamp` | number | Epoch ms when state last changed |
326+
| ↳ `alarmType` | string | MetricAlarm or CompositeAlarm |
327+
| ↳ `alarmDescription` | string | Alarm description |
328+
| ↳ `actionsEnabled` | boolean | Whether actions run on state changes |
329+
| ↳ `alarmActions` | array | ARNs of actions run on ALARM |
330+
| ↳ `okActions` | array | ARNs of actions run on OK |
331+
| ↳ `insufficientDataActions` | array | ARNs of actions run on INSUFFICIENT_DATA |
332+
| ↳ `stateReasonData` | string | Machine-readable JSON explaining the state |
333+
| ↳ `stateTransitionedTimestamp` | number | Epoch ms when the state value last changed |
334+
| ↳ `alarmConfigurationUpdatedTimestamp` | number | Epoch ms when the alarm configuration last changed |
335+
| ↳ `statistic` | string | Statistic evaluated \(MetricAlarm only\) |
336+
| ↳ `extendedStatistic` | string | Percentile statistic evaluated \(MetricAlarm only\) |
337+
| ↳ `dimensions` | array | Metric dimensions as \{name, value\} \(MetricAlarm only\) |
338+
| ↳ `period` | number | Evaluation period in seconds \(MetricAlarm only\) |
339+
| ↳ `unit` | string | Metric unit \(MetricAlarm only\) |
340+
| ↳ `datapointsToAlarm` | number | Breaching datapoints needed to alarm \(MetricAlarm only\) |
341+
| ↳ `treatMissingData` | string | How missing data is treated \(MetricAlarm only\) |
342+
| ↳ `thresholdMetricId` | string | ID of the metric-math threshold query \(anomaly detection alarms\) |
343+
| ↳ `metrics` | array | Metric-math queries \[\{id, expression, label, returnData, period, accountId, metricStat\}\] \(MetricAlarm only\) |
344+
| ↳ `alarmRule` | string | Rule expression \(CompositeAlarm only\) |
345+
| `nextToken` | string | Pagination token for the next page of alarms |
313346

314347
</ReferenceDetails>
315348

@@ -341,6 +374,8 @@ Retrieve state-change and configuration history for CloudWatch alarms
341374
| ↳ `timestamp` | number | Epoch ms when the history item occurred |
342375
| ↳ `historyItemType` | string | ConfigurationUpdate, StateUpdate, Action, or contributor variants |
343376
| ↳ `historySummary` | string | Human-readable summary of the event |
377+
| ↳ `historyData` | string | JSON string with event details \(e.g., old and new state with reason data for StateUpdate\) |
378+
| ↳ `alarmContributorId` | string | ID of the alarm contributor, for contributor history items |
344379

345380
</ReferenceDetails>
346381

0 commit comments

Comments
 (0)