{"files":{"SKILL.md":"---\nname: aws-rds-dataservice\ndescription: \"AWS RDS DataService API skill. Use when working with AWS RDS DataService for BatchExecute, BeginTransaction, CommitTransaction. Covers 6 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# AWS RDS DataService\nAPI version: 2018-08-01\n\n## Auth\nAWS SigV4\n\n## Base URL\nNot specified.\n\n## Setup\n1. Configure auth: AWS SigV4\n2. Verify API access with a test request\n3. POST /BatchExecute -- create first BatchExecute\n\n## Endpoints\n6 endpoints across 6 groups. See references/api-spec.lap for full details.\n\n### BatchExecute\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /BatchExecute | Runs a batch SQL statement over an array of data. You can run bulk update and insert operations for multiple records using a DML statement with different parameter sets. Bulk operations can provide a significant performance improvement over individual insert and update operations.  If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically. There isn't a fixed upper limit on the number of parameter sets. However, the maximum size of the HTTP request submitted through the Data API is 4 MiB. If the request exceeds this limit, the Data API returns an error and doesn't process the request. This 4-MiB limit includes the size of the HTTP headers and the JSON notation in the request. Thus, the number of parameter sets that you can include depends on a combination of factors, such as the size of the SQL statement and the size of each parameter set. The response size limit is 1 MiB. If the call returns more than 1 MiB of response data, the call is terminated. |\n\n### BeginTransaction\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /BeginTransaction | Starts a SQL transaction.  A transaction can run for a maximum of 24 hours. A transaction is terminated and rolled back automatically after 24 hours. A transaction times out if no calls use its transaction ID in three minutes. If a transaction times out before it's committed, it's rolled back automatically. DDL statements inside a transaction cause an implicit commit. We recommend that you run each DDL statement in a separate ExecuteStatement call with continueAfterTimeout enabled. |\n\n### CommitTransaction\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /CommitTransaction | Ends a SQL transaction started with the BeginTransaction operation and commits the changes. |\n\n### ExecuteSql\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /ExecuteSql | Runs one or more SQL statements.  This operation isn't supported for Aurora PostgreSQL Serverless v2 and provisioned DB clusters, and for Aurora Serverless v1 DB clusters, the operation is deprecated. Use the BatchExecuteStatement or ExecuteStatement operation. |\n\n### Execute\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /Execute | Runs a SQL statement against a database.  If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically. If the binary response data from the database is more than 1 MB, the call is terminated. |\n\n### RollbackTransaction\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /RollbackTransaction | Performs a rollback of a transaction. Rolling back a transaction cancels its changes. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a BatchExecute?\" -> POST /BatchExecute\n- \"Create a BeginTransaction?\" -> POST /BeginTransaction\n- \"Create a CommitTransaction?\" -> POST /CommitTransaction\n- \"Create a ExecuteSql?\" -> POST /ExecuteSql\n- \"Create a Execute?\" -> POST /Execute\n- \"Create a RollbackTransaction?\" -> POST /RollbackTransaction\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api AWS RDS DataService\n@version 2018-08-01\n@auth AWS SigV4\n@endpoints 6\n@toc BatchExecute(1), BeginTransaction(1), CommitTransaction(1), ExecuteSql(1), Execute(1), RollbackTransaction(1)\n\n@group BatchExecute\n@endpoint POST /BatchExecute\n@desc Runs a batch SQL statement over an array of data. You can run bulk update and insert operations for multiple records using a DML statement with different parameter sets. Bulk operations can provide a significant performance improvement over individual insert and update operations.  If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically. There isn't a fixed upper limit on the number of parameter sets. However, the maximum size of the HTTP request submitted through the Data API is 4 MiB. If the request exceeds this limit, the Data API returns an error and doesn't process the request. This 4-MiB limit includes the size of the HTTP headers and the JSON notation in the request. Thus, the number of parameter sets that you can include depends on a combination of factors, such as the size of the SQL statement and the size of each parameter set. The response size limit is 1 MiB. If the call returns more than 1 MiB of response data, the call is terminated.\n@required {resourceArn: str, secretArn: str, sql: str}\n@optional {database: str, schema: str, parameterSets: [[SqlParameter]], transactionId: str}\n@returns(200) {updateResults: [UpdateResult]?}\n\n@endgroup\n\n@group BeginTransaction\n@endpoint POST /BeginTransaction\n@desc Starts a SQL transaction.  A transaction can run for a maximum of 24 hours. A transaction is terminated and rolled back automatically after 24 hours. A transaction times out if no calls use its transaction ID in three minutes. If a transaction times out before it's committed, it's rolled back automatically. DDL statements inside a transaction cause an implicit commit. We recommend that you run each DDL statement in a separate ExecuteStatement call with continueAfterTimeout enabled.\n@required {resourceArn: str, secretArn: str}\n@optional {database: str, schema: str}\n@returns(200) {transactionId: str?}\n\n@endgroup\n\n@group CommitTransaction\n@endpoint POST /CommitTransaction\n@desc Ends a SQL transaction started with the BeginTransaction operation and commits the changes.\n@required {resourceArn: str, secretArn: str, transactionId: str}\n@returns(200) {transactionStatus: str?}\n\n@endgroup\n\n@group ExecuteSql\n@endpoint POST /ExecuteSql\n@desc Runs one or more SQL statements.  This operation isn't supported for Aurora PostgreSQL Serverless v2 and provisioned DB clusters, and for Aurora Serverless v1 DB clusters, the operation is deprecated. Use the BatchExecuteStatement or ExecuteStatement operation.\n@required {dbClusterOrInstanceArn: str, awsSecretStoreArn: str, sqlStatements: str}\n@optional {database: str, schema: str}\n@returns(200) {sqlStatementResults: [SqlStatementResult]?}\n\n@endgroup\n\n@group Execute\n@endpoint POST /Execute\n@desc Runs a SQL statement against a database.  If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically. If the binary response data from the database is more than 1 MB, the call is terminated.\n@required {resourceArn: str, secretArn: str, sql: str}\n@optional {database: str, schema: str, parameters: [SqlParameter], transactionId: str, includeResultMetadata: bool, continueAfterTimeout: bool, resultSetOptions: ResultSetOptions, formatRecordsAs: str}\n@returns(200) {records: [[Field]]?, columnMetadata: [ColumnMetadata]?, numberOfRecordsUpdated: int(i64)?, generatedFields: [Field]?, formattedRecords: str?}\n\n@endgroup\n\n@group RollbackTransaction\n@endpoint POST /RollbackTransaction\n@desc Performs a rollback of a transaction. Rolling back a transaction cancels its changes.\n@required {resourceArn: str, secretArn: str, transactionId: str}\n@returns(200) {transactionStatus: str?}\n\n@endgroup\n\n@end\n"}}