"documentation":"<p>Sends a command to an Amazon QLDB ledger.</p> <note> <p>Instead of interacting directly with this API, we recommend using the QLDB driver or the QLDB shell to execute data transactions on a ledger.</p> <ul> <li> <p>If you are working with an AWS SDK, use the QLDB driver. The driver provides a high-level abstraction layer above this <i>QLDB Session</i> data plane and manages <code>SendCommand</code> API calls for you. For information and a list of supported programming languages, see <a href=\"https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-driver.html\">Getting started with the driver</a> in the <i>Amazon QLDB Developer Guide</i>.</p> </li> <li> <p>If you are working with the AWS Command Line Interface (AWS CLI), use the QLDB shell. The shell is a command line interface that uses the QLDB driver to interact with a ledger. For information, see <a href=\"https://docs.aws.amazon.com/qldb/latest/developerguide/data-shell.html\">Accessing Amazon QLDB using the QLDB shell</a>.</p> </li> </ul> </note>"
"documentation":"<p>Contains the details of the aborted transaction.</p>"
},
"BadRequestException":{
"type":"structure",
"members":{
"Message":{"shape":"ErrorMessage"},
"Code":{"shape":"ErrorCode"}
},
"documentation":"<p>Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.</p>",
"documentation":"<p>Specifies the commit digest for the transaction to commit. For every active transaction, the commit digest must be passed. QLDB validates <code>CommitDigest</code> and rejects the commit with an error if the digest computed on the client does not match the digest computed by QLDB.</p> <p>The purpose of the <code>CommitDigest</code> parameter is to ensure that QLDB commits a transaction if and only if the server has processed the exact set of statements sent by the client, in the same order that client sent them, and with no duplicates.</p>"
"documentation":"<p>Returned when a transaction cannot be written to the journal due to a failure in the verification phase of <i>optimistic concurrency control</i> (OCC).</p>",
"documentation":"<p>Specifies the session token for the current command. A session token is constant throughout the life of the session.</p> <p>To obtain a session token, run the <code>StartSession</code> command. This <code>SessionToken</code> is required for every subsequent command that is issued during the current session.</p>"
},
"StartSession":{
"shape":"StartSessionRequest",
"documentation":"<p>Command to start a new session. A session token is obtained as part of the response.</p>"
},
"StartTransaction":{
"shape":"StartTransactionRequest",
"documentation":"<p>Command to start a new transaction.</p>"
},
"EndSession":{
"shape":"EndSessionRequest",
"documentation":"<p>Command to end the current session.</p>"
},
"CommitTransaction":{
"shape":"CommitTransactionRequest",
"documentation":"<p>Command to commit the specified transaction.</p>"
},
"AbortTransaction":{
"shape":"AbortTransactionRequest",
"documentation":"<p>Command to abort the current transaction.</p>"
},
"ExecuteStatement":{
"shape":"ExecuteStatementRequest",
"documentation":"<p>Command to execute a statement in the specified transaction.</p>"
},
"FetchPage":{
"shape":"FetchPageRequest",
"documentation":"<p>Command to fetch a page.</p>"
}
}
},
"SendCommandResult":{
"type":"structure",
"members":{
"StartSession":{
"shape":"StartSessionResult",
"documentation":"<p>Contains the details of the started session that includes a session token. This <code>SessionToken</code> is required for every subsequent command that is issued during the current session.</p>"
},
"StartTransaction":{
"shape":"StartTransactionResult",
"documentation":"<p>Contains the details of the started transaction.</p>"
},
"EndSession":{
"shape":"EndSessionResult",
"documentation":"<p>Contains the details of the ended session.</p>"
},
"CommitTransaction":{
"shape":"CommitTransactionResult",
"documentation":"<p>Contains the details of the committed transaction.</p>"
},
"AbortTransaction":{
"shape":"AbortTransactionResult",
"documentation":"<p>Contains the details of the aborted transaction.</p>"
},
"ExecuteStatement":{
"shape":"ExecuteStatementResult",
"documentation":"<p>Contains the details of the executed statement.</p>"
},
"FetchPage":{
"shape":"FetchPageResult",
"documentation":"<p>Contains the details of the fetched page.</p>"
}
}
},
"SessionToken":{
"type":"string",
"max":1024,
"min":4,
"pattern":"^[A-Za-z-0-9+/=]+$"
},
"StartSessionRequest":{
"type":"structure",
"required":["LedgerName"],
"members":{
"LedgerName":{
"shape":"LedgerName",
"documentation":"<p>The name of the ledger to start a new session against.</p>"
"documentation":"<p>Session token of the started session. This <code>SessionToken</code> is required for every subsequent command that is issued during the current session.</p>"
"documentation":"<p>Contains server-side performance information for a command. Amazon QLDB captures timing information between the times when it receives the request and when it sends the corresponding response.</p>"
"documentation":"<p>The transactional data APIs for Amazon QLDB</p> <note> <p>Instead of interacting directly with this API, we recommend using the QLDB driver or the QLDB shell to execute data transactions on a ledger.</p> <ul> <li> <p>If you are working with an AWS SDK, use the QLDB driver. The driver provides a high-level abstraction layer above this <i>QLDB Session</i> data plane and manages <code>SendCommand</code> API calls for you. For information and a list of supported programming languages, see <a href=\"https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-driver.html\">Getting started with the driver</a> in the <i>Amazon QLDB Developer Guide</i>.</p> </li> <li> <p>If you are working with the AWS Command Line Interface (AWS CLI), use the QLDB shell. The shell is a command line interface that uses the QLDB driver to interact with a ledger. For information, see <a href=\"https://docs.aws.amazon.com/qldb/latest/developerguide/data-shell.html\">Accessing Amazon QLDB using the QLDB shell</a>.</p> </li> </ul> </note>"