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
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package eventbridge
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
ebcust "github.com/aws/aws-sdk-go-v2/service/eventbridge/internal/customizations"
"github.com/aws/aws-sdk-go-v2/service/eventbridge/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Sends custom events to Amazon EventBridge so that they can be matched to rules.
// The maximum size for a PutEvents event entry is 256 KB. Entry size is calculated
// including the event and any necessary characters and keys of the JSON
// representation of the event. To learn more, see Calculating PutEvents event
// entry size (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-putevent-size.html)
// in the Amazon EventBridge User Guide PutEvents accepts the data in JSON format.
// For the JSON number (integer) data type, the constraints are: a minimum value of
// -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807.
// PutEvents will only process nested JSON up to 1100 levels deep.
func (c *Client) PutEvents(ctx context.Context, params *PutEventsInput, optFns ...func(*Options)) (*PutEventsOutput, error) {
if params == nil {
params = &PutEventsInput{}
}
result, metadata, err := c.invokeOperation(ctx, "PutEvents", params, optFns, c.addOperationPutEventsMiddlewares)
if err != nil {
return nil, err
}
out := result.(*PutEventsOutput)
out.ResultMetadata = metadata
return out, nil
}
type PutEventsInput struct {
// The entry that defines an event in your system. You can specify several
// parameters for the entry such as the source and type of the event, resources
// associated with the event, and so on.
//
// This member is required.
Entries []types.PutEventsRequestEntry
// The URL subdomain of the endpoint. For example, if the URL for Endpoint is
// https://abcde.veo.endpoints.event.amazonaws.com, then the EndpointId is
// abcde.veo . When using Java, you must include auth-crt on the class path.
EndpointId *string
noSmithyDocumentSerde
}
func (in *PutEventsInput) bindEndpointParams(p *EndpointParameters) {
p.EndpointId = in.EndpointId
}
type PutEventsOutput struct {
// The successfully and unsuccessfully ingested events results. If the ingestion
// was successful, the entry has the event ID in it. Otherwise, you can use the
// error code and error message to identify the problem with the entry. For each
// record, the index of the response element is the same as the index in the
// request array.
Entries []types.PutEventsResultEntry
// The number of failed entries.
FailedEntryCount int32
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationPutEventsMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpPutEvents{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpPutEvents{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "PutEvents"); 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 = addPutEventsUpdateEndpoint(stack, options); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addOpPutEventsValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutEvents(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
}
// getPutEventsEndpointId returns a pointer to string denoting a provided member
// value and a boolean indicating if the value is not nil
func getPutEventsEndpointId(input interface{}) (*string, bool) {
in := input.(*PutEventsInput)
if in.EndpointId == nil {
return nil, false
}
return in.EndpointId, true
}
func addPutEventsUpdateEndpoint(stack *middleware.Stack, o Options) error {
return ebcust.UpdateEndpoint(stack, ebcust.UpdateEndpointOptions{
GetEndpointIDFromInput: getPutEventsEndpointId,
EndpointResolver: o.EndpointResolver,
EndpointResolverOptions: o.EndpointOptions,
})
}
func newServiceMetadataMiddleware_opPutEvents(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "PutEvents",
}
}
|