1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package qldbsession
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/aws-sdk-go-v2/service/qldbsession/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Sends a command to an Amazon QLDB ledger. Instead of interacting directly with
// this API, we recommend using the QLDB driver or the QLDB shell to execute data
// transactions on a ledger.
// - If you are working with an AWS SDK, use the QLDB driver. The driver
// provides a high-level abstraction layer above this QLDB Session data plane and
// manages SendCommand API calls for you. For information and a list of supported
// programming languages, see Getting started with the driver (https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-driver.html)
// in the Amazon QLDB Developer Guide.
// - 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 Accessing Amazon QLDB using the
// QLDB shell (https://docs.aws.amazon.com/qldb/latest/developerguide/data-shell.html)
// .
func (c *Client) SendCommand(ctx context.Context, params *SendCommandInput, optFns ...func(*Options)) (*SendCommandOutput, error) {
if params == nil {
params = &SendCommandInput{}
}
result, metadata, err := c.invokeOperation(ctx, "SendCommand", params, optFns, c.addOperationSendCommandMiddlewares)
if err != nil {
return nil, err
}
out := result.(*SendCommandOutput)
out.ResultMetadata = metadata
return out, nil
}
type SendCommandInput struct {
// Command to abort the current transaction.
AbortTransaction *types.AbortTransactionRequest
// Command to commit the specified transaction.
CommitTransaction *types.CommitTransactionRequest
// Command to end the current session.
EndSession *types.EndSessionRequest
// Command to execute a statement in the specified transaction.
ExecuteStatement *types.ExecuteStatementRequest
// Command to fetch a page.
FetchPage *types.FetchPageRequest
// Specifies the session token for the current command. A session token is
// constant throughout the life of the session. To obtain a session token, run the
// StartSession command. This SessionToken is required for every subsequent
// command that is issued during the current session.
SessionToken *string
// Command to start a new session. A session token is obtained as part of the
// response.
StartSession *types.StartSessionRequest
// Command to start a new transaction.
StartTransaction *types.StartTransactionRequest
noSmithyDocumentSerde
}
type SendCommandOutput struct {
// Contains the details of the aborted transaction.
AbortTransaction *types.AbortTransactionResult
// Contains the details of the committed transaction.
CommitTransaction *types.CommitTransactionResult
// Contains the details of the ended session.
EndSession *types.EndSessionResult
// Contains the details of the executed statement.
ExecuteStatement *types.ExecuteStatementResult
// Contains the details of the fetched page.
FetchPage *types.FetchPageResult
// Contains the details of the started session that includes a session token. This
// SessionToken is required for every subsequent command that is issued during the
// current session.
StartSession *types.StartSessionResult
// Contains the details of the started transaction.
StartTransaction *types.StartTransactionResult
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationSendCommandMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson10_serializeOpSendCommand{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpSendCommand{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "SendCommand"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
return err
}
if err = addRetryMiddlewares(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addOpSendCommandValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSendCommand(options.Region), middleware.Before); err != nil {
return err
}
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opSendCommand(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "SendCommand",
}
}
|