events package - github.com/aws/aws-lambda-go/events - Go Packages
Package events provides type definitions for common AWS Lambda event sources.
This package contains Go structs for events from services like API Gateway, S3, SQS, DynamoDB, and many others. These types can be used as input parameters to Lambda handler functions, allowing automatic JSON deserialization of incoming events.
See https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html
- Constants
- type ALBTargetGroupRequest
- type ALBTargetGroupRequestContext
- type ALBTargetGroupResponse
- type APIGatewayCustomAuthorizerContext
- type APIGatewayCustomAuthorizerPolicy
- type APIGatewayCustomAuthorizerRequest
- type APIGatewayCustomAuthorizerRequestTypeRequest
- type APIGatewayCustomAuthorizerRequestTypeRequestContext
- type APIGatewayCustomAuthorizerRequestTypeRequestIdentity
- type APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCert
- type APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCertValidity
- type APIGatewayCustomAuthorizerResponse
- type APIGatewayProxyRequest
- type APIGatewayProxyRequestContext
- type APIGatewayProxyResponse
- type APIGatewayProxyStreamingResponse
- type APIGatewayRequestIdentity
- type APIGatewayV2CustomAuthorizerIAMPolicyResponse
- type APIGatewayV2CustomAuthorizerSimpleResponse
- type APIGatewayV2CustomAuthorizerV1Request
- type APIGatewayV2CustomAuthorizerV1RequestTypeRequestContext
- type APIGatewayV2CustomAuthorizerV2Request
- type APIGatewayV2HTTPRequest
- type APIGatewayV2HTTPRequestContext
- type APIGatewayV2HTTPRequestContextAuthentication
- type APIGatewayV2HTTPRequestContextAuthenticationClientCert
- type APIGatewayV2HTTPRequestContextAuthenticationClientCertValidity
- type APIGatewayV2HTTPRequestContextAuthorizerCognitoIdentity
- type APIGatewayV2HTTPRequestContextAuthorizerDescription
- type APIGatewayV2HTTPRequestContextAuthorizerIAMDescription
- type APIGatewayV2HTTPRequestContextAuthorizerJWTDescription
- type APIGatewayV2HTTPRequestContextHTTPDescription
- type APIGatewayV2HTTPResponse
- type APIGatewayWebsocketProxyRequest
- type APIGatewayWebsocketProxyRequestContext
- type AccessTokenGenerationdeprecated
- type AccessTokenGenerationV2_0
- type ActiveMQDestination
- type ActiveMQEvent
- type ActiveMQMessage
- type AppSyncCognitoIdentity
- type AppSyncIAMIdentity
- type AppSyncLambdaAuthorizerRequest
- type AppSyncLambdaAuthorizerRequestContext
- type AppSyncLambdaAuthorizerResponse
- type AppSyncOperationdeprecated
- type AppSyncResolverTemplatedeprecated
- type Attachment
- type AutoScalingEvent
- type ChimeBotEvent
- type ChimeBotEventDiscussion
- type ChimeBotEventInboundHTTPSEndpoint
- type ChimeBotEventSender
- type ClaimsAndScopeOverrideDetailsdeprecated
- type ClaimsAndScopeOverrideDetailsV2_0
- type ClaimsOverrideDetails
- type ClientVPNConnectionHandlerRequest
- type ClientVPNConnectionHandlerResponse
- type CloudWatchAlarmSNSPayload
- type CloudWatchAlarmTrigger
- type CloudWatchDimension
- type CloudWatchEvent
- type CloudWatchMetric
- type CloudWatchMetricDataQuery
- type CloudWatchMetricStat
- type CloudwatchLogsData
- type CloudwatchLogsEvent
- type CloudwatchLogsLogEvent
- type CloudwatchLogsRawData
- type CodeBuildArtifact
- type CodeBuildEnvironment
- type CodeBuildEnvironmentVariable
- type CodeBuildEvent
- type CodeBuildEventAdditionalInformation
- type CodeBuildEventDetail
- type CodeBuildLogs
- type CodeBuildNumber
- type CodeBuildPhase
- type CodeBuildPhaseStatus
- type CodeBuildPhaseType
- type CodeBuildSource
- type CodeBuildTime
- type CodeCommitCodeCommit
- type CodeCommitEvent
- type CodeCommitEventTime
- type CodeCommitRecord
- type CodeCommitReference
- type CodeDeployDeploymentState
- type CodeDeployEvent
- type CodeDeployEventDetail
- type CodePipelineActionConfiguration
- type CodePipelineActionState
- type CodePipelineArtifactCredentials
- type CodePipelineCloudWatchEvent
- type CodePipelineConfiguration
- type CodePipelineData
- type CodePipelineEvent
- type CodePipelineEventBridgeEvent
- type CodePipelineEventDetail
- type CodePipelineEventDetailExecutionResult
- type CodePipelineEventDetailType
- type CodePipelineInputArtifact
- type CodePipelineInputLocation
- type CodePipelineJob
- type CodePipelineJobEvent
- type CodePipelineOutputArtifact
- type CodePipelineOutputLocation
- type CodePipelineS3Location
- type CodePipelineStageState
- type CodePipelineState
- type CognitoDatasetRecord
- type CognitoEvent
- type CognitoEventUserPoolsCallerContext
- type CognitoEventUserPoolsChallengeResult
- type CognitoEventUserPoolsCreateAuthChallenge
- type CognitoEventUserPoolsCreateAuthChallengeRequest
- type CognitoEventUserPoolsCreateAuthChallengeResponse
- type CognitoEventUserPoolsCustomMessage
- type CognitoEventUserPoolsCustomMessageRequest
- type CognitoEventUserPoolsCustomMessageResponse
- type CognitoEventUserPoolsDefineAuthChallenge
- type CognitoEventUserPoolsDefineAuthChallengeRequest
- type CognitoEventUserPoolsDefineAuthChallengeResponse
- type CognitoEventUserPoolsHeader
- type CognitoEventUserPoolsInboundFederation
- type CognitoEventUserPoolsInboundFederationAttributes
- type CognitoEventUserPoolsInboundFederationRequest
- type CognitoEventUserPoolsInboundFederationResponse
- type CognitoEventUserPoolsMigrateUser
- type CognitoEventUserPoolsMigrateUserRequest
- type CognitoEventUserPoolsMigrateUserResponse
- type CognitoEventUserPoolsPostAuthentication
- type CognitoEventUserPoolsPostAuthenticationRequest
- type CognitoEventUserPoolsPostAuthenticationResponse
- type CognitoEventUserPoolsPostConfirmation
- type CognitoEventUserPoolsPostConfirmationRequest
- type CognitoEventUserPoolsPostConfirmationResponse
- type CognitoEventUserPoolsPreAuthentication
- type CognitoEventUserPoolsPreAuthenticationRequest
- type CognitoEventUserPoolsPreAuthenticationResponse
- type CognitoEventUserPoolsPreSignup
- type CognitoEventUserPoolsPreSignupRequest
- type CognitoEventUserPoolsPreSignupResponse
- type CognitoEventUserPoolsPreTokenGen
- type CognitoEventUserPoolsPreTokenGenRequest
- type CognitoEventUserPoolsPreTokenGenRequestV2_0
- type CognitoEventUserPoolsPreTokenGenResponse
- type CognitoEventUserPoolsPreTokenGenResponseV2_0
- type CognitoEventUserPoolsPreTokenGenV2deprecated
- type CognitoEventUserPoolsPreTokenGenV2Requestdeprecated
- type CognitoEventUserPoolsPreTokenGenV2Responsedeprecated
- type CognitoEventUserPoolsPreTokenGenV2_0
- type CognitoEventUserPoolsVerifyAuthChallenge
- type CognitoEventUserPoolsVerifyAuthChallengeRequest
- type CognitoEventUserPoolsVerifyAuthChallengeResponse
- type CognitoFederationProviderType
- type ConfigEvent
- type ConnectContactData
- type ConnectDetails
- type ConnectEndpoint
- type ConnectEvent
- type ConnectQueue
- type ConnectResponse
- type DurationMinutes
- type DurationSeconds
- type DynamoDBAttributeValue
- func NewBinaryAttribute(value []byte) DynamoDBAttributeValue
- func NewBinarySetAttribute(value [][]byte) DynamoDBAttributeValue
- func NewBooleanAttribute(value bool) DynamoDBAttributeValue
- func NewListAttribute(value []DynamoDBAttributeValue) DynamoDBAttributeValue
- func NewMapAttribute(value map[string]DynamoDBAttributeValue) DynamoDBAttributeValue
- func NewNullAttribute() DynamoDBAttributeValue
- func NewNumberAttribute(value string) DynamoDBAttributeValue
- func NewNumberSetAttribute(value []string) DynamoDBAttributeValue
- func NewStringAttribute(value string) DynamoDBAttributeValue
- func NewStringSetAttribute(value []string) DynamoDBAttributeValue
- func (av DynamoDBAttributeValue) Binary() []byte
- func (av DynamoDBAttributeValue) BinarySet() [][]byte
- func (av DynamoDBAttributeValue) Boolean() bool
- func (av DynamoDBAttributeValue) DataType() DynamoDBDataType
- func (av DynamoDBAttributeValue) Float() (float64, error)
- func (av DynamoDBAttributeValue) Int64() (int64, error)
- func (av DynamoDBAttributeValue) Integer() (int64, error)
- func (av DynamoDBAttributeValue) IsNull() bool
- func (av DynamoDBAttributeValue) List() []DynamoDBAttributeValue
- func (av DynamoDBAttributeValue) Map() map[string]DynamoDBAttributeValue
- func (av DynamoDBAttributeValue) MarshalJSON() ([]byte, error)
- func (av DynamoDBAttributeValue) Number() string
- func (av DynamoDBAttributeValue) NumberSet() []string
- func (av DynamoDBAttributeValue) String() string
- func (av DynamoDBAttributeValue) StringSet() []string
- func (av *DynamoDBAttributeValue) UnmarshalJSON(b []byte) error
- type DynamoDBBatchItemFailure
- type DynamoDBDataType
- type DynamoDBEvent
- type DynamoDBEventRecord
- type DynamoDBEventResponse
- type DynamoDBKeyType
- type DynamoDBOperationType
- type DynamoDBSharedIteratorType
- type DynamoDBStreamRecord
- type DynamoDBStreamStatus
- type DynamoDBStreamViewType
- type DynamoDBTimeWindowEvent
- type DynamoDBTimeWindowEventResponse
- type DynamoDBUserIdentity
- type ECRImageActionEvent
- type ECRImageActionEventDetailType
- type ECRScanEvent
- type ECRScanEventDetailType
- type ECRScanEventFindingSeverityCounts
- type ECSContainerInstanceEvent
- type ECSContainerInstanceEventAttribute
- type ECSContainerInstanceEventDetailType
- type ECSContainerInstanceEventResource
- type ECSContainerInstanceEventVersionInfo
- type ELBContext
- type EventBridgeEvent
- type GroupConfiguration
- type GroupConfigurationV2_0
- type IAMPolicyDocument
- type IAMPolicyStatement
- type IDTokenGeneration
- type IDTokenGenerationV2_0
- type IncompatibleDynamoDBTypeError
- type IoTButtonEvent
- type IoTCoreConnectionMetadata
- type IoTCoreCustomAuthorizerRequest
- type IoTCoreCustomAuthorizerResponse
- type IoTCoreHTTPContext
- type IoTCoreMQTTContext
- type IoTCoreProtocolData
- type IoTCoreTLSContext
- type IoTCustomAuthorizerRequest
- type IoTCustomAuthorizerResponse
- type IoTHTTPContextdeprecated
- type IoTMQTTContextdeprecated
- type IoTOneClickButtonClicked
- type IoTOneClickDeviceEvent
- type IoTOneClickDeviceInfo
- type IoTOneClickEvent
- type IoTOneClickPlacementInfo
- type IoTPreProvisionHookRequest
- type IoTPreProvisionHookResponse
- type IoTTLSContextdeprecated
- type JSONNumberBytes
- type KafkaEvent
- type KafkaRecord
- type KinesisAnalyticsOutputDeliveryEvent
- type KinesisAnalyticsOutputDeliveryEventRecord
- type KinesisAnalyticsOutputDeliveryResponse
- type KinesisAnalyticsOutputDeliveryResponseRecord
- type KinesisBatchItemFailure
- type KinesisEvent
- type KinesisEventRecord
- type KinesisEventResponse
- type KinesisFirehoseEvent
- type KinesisFirehoseEventRecord
- type KinesisFirehoseOTFOperation
- type KinesisFirehoseRecordMetadata
- type KinesisFirehoseResponse
- type KinesisFirehoseResponseRecord
- type KinesisFirehoseResponseRecordMetadata
- type KinesisFirehoseResponseRecordOTFMetadata
- type KinesisRecord
- type KinesisTimeWindowEvent
- type KinesisTimeWindowEventResponse
- type LambdaFunctionURLRequest
- type LambdaFunctionURLRequestContext
- type LambdaFunctionURLRequestContextAuthorizerDescription
- type LambdaFunctionURLRequestContextAuthorizerIAMDescription
- type LambdaFunctionURLRequestContextHTTPDescription
- type LambdaFunctionURLResponse
- type LambdaFunctionURLStreamingResponse
- type LexAlternativeIntents
- type LexBot
- type LexCurrentIntent
- type LexDialogAction
- type LexEvent
- type LexResponse
- type LexResponseCard
- type MilliSecondsEpochTime
- type RFC3339EpochTime
- type RabbitMQBasicProperties
- type RabbitMQEvent
- type RabbitMQMessage
- type S3BatchJob
- type S3BatchJobEvent
- type S3BatchJobEventV2
- type S3BatchJobResponse
- type S3BatchJobResult
- type S3BatchJobTask
- type S3BatchJobTaskV2
- type S3BatchJobV2
- type S3Bucket
- type S3Entity
- type S3Event
- type S3EventRecord
- type S3GlacierEventData
- type S3IntelligentTieringEventData
- type S3LifecycleEventData
- type S3Object
- type S3ObjectLambdaConfiguration
- type S3ObjectLambdaEvent
- type S3ObjectLambdaGetObjectContext
- type S3ObjectLambdaHeadObjectContext
- type S3ObjectLambdaListObjectsContext
- type S3ObjectLambdaListObjectsV2Context
- type S3ObjectLambdaSessionContext
- type S3ObjectLambdaSessionIssuer
- type S3ObjectLambdaUserIdentity
- type S3ObjectLambdaUserRequest
- type S3ReplicationEventData
- type S3RequestParameters
- type S3RestoreEventData
- type S3TestEvent
- type S3TransitionEventData
- type S3UserIdentity
- type SNSEntity
- type SNSEvent
- type SNSEventRecord
- type SQSBatchItemFailure
- type SQSEvent
- type SQSEventResponse
- type SQSMessage
- type SQSMessageAttribute
- type SecondsEpochTime
- type SecretsManagerSecretRotationEvent
- type SessionAttributes
- type SimpleEmailCommonHeaders
- type SimpleEmailDisposition
- type SimpleEmailDispositionValue
- type SimpleEmailEvent
- type SimpleEmailHeader
- type SimpleEmailMessage
- type SimpleEmailReceipt
- type SimpleEmailReceiptAction
- type SimpleEmailRecord
- type SimpleEmailService
- type SimpleEmailVerdict
- type SlotDetail
- type Slots
- type TimeWindowEventResponseProperties
- type TimeWindowProperties
- type UnsupportedDynamoDBTypeError
- type Window
- ALBTargetGroupRequest
- APIGatewayCustomAuthorizerRequest
- APIGatewayProxyRequest
- APIGatewayProxyStreamingResponse
- ChimeBotEvent
- CognitoEvent
- CognitoEventUserPoolsDefineAuthChallenge
- CognitoEventUserPoolsPostConfirmation
- CognitoEventUserPoolsPreAuthentication
- CognitoEventUserPoolsPreSignup
- CognitoEventUserPoolsPreTokenGen
- ConnectEvent
- DynamoDBEvent
- ECSContainerInstanceEvent
- KinesisAnalyticsOutputDeliveryEvent
- KinesisEvent
- KinesisFirehoseEvent
- LambdaFunctionURLRequest
- LambdaFunctionURLStreamingResponse
- S3Event
- S3ObjectLambdaEvent
- SQSEvent
- SecretsManagerSecretRotationEvent
- SimpleEmailEvent
const ( CodeBuildEventSource = "aws.codebuild" CodeBuildStateChangeDetailType = "CodeBuild Build State Change" CodeBuildPhaseChangeDetailType = "CodeBuild Build Phase Change" )
const ( CodeDeployEventSource = "aws.codedeploy" CodeDeployDeploymentEventDetailType = "CodeDeploy Deployment State-change Notification" CodeDeployInstanceEventDetailType = "CodeDeploy Instance State-change Notification" )
const ( CodePipelineEventSource = "aws.codepipeline" CodePipelineExecutionEventDetailType = "CodePipeline Pipeline Execution State Change" CodePipelineActionEventDetailType = "CodePipeline Action Execution State Change" CodePipelineStageEventDetailType = "CodePipeline Stage Execution State Change" )
const ( KinesisFirehoseTransformedStateOk = "Ok" KinesisFirehoseTransformedStateDropped = "Dropped" KinesisFirehoseTransformedStateProcessingFailed = "ProcessingFailed" )
Constants used for describing the transformation result
const ( KinesisAnalyticsOutputDeliveryOK = "Ok" KinesisAnalyticsOutputDeliveryFailed = "DeliveryFailed" )
This section is empty.
This section is empty.
type ALBTargetGroupRequest struct {
HTTPMethod string `json:"httpMethod"`
Path string `json:"path"`
QueryStringParameters map[string]string `json:"queryStringParameters,omitempty"`
MultiValueQueryStringParameters map[string][]string `json:"multiValueQueryStringParameters,omitempty"`
RequestContext ALBTargetGroupRequestContext `json:"requestContext"`
IsBase64Encoded bool `json:"isBase64Encoded"`
Body string `json:"body"`
}
ALBTargetGroupRequest contains data originating from the ALB Lambda target group integration
ALB Target Group events consist of a request that was routed to a Lambda function which is a registered target of an Application Load Balancer Target Group. When this happens, ALB expects the result of the function to be the response that ALB should respond with.
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, request *events.ALBTargetGroupRequest) (*events.ALBTargetGroupResponse, error) {
fmt.Printf("Processing request data for traceId %s.\n", request.Headers["x-amzn-trace-id"])
fmt.Printf("Body size = %d.\n", len(request.Body))
fmt.Println("Headers:")
for key, value := range request.Headers {
fmt.Printf(" %s: %s\n", key, value)
}
return &events.ALBTargetGroupResponse{Body: request.Body, StatusCode: 200, StatusDescription: "200 OK", IsBase64Encoded: false, Headers: map[string]string{}}, nil
})
}
type ALBTargetGroupRequestContext struct {
ELB ELBContext `json:"elb"`
}
ALBTargetGroupRequestContext contains the information to identify the load balancer invoking the lambda
type ALBTargetGroupResponse struct {
StatusCode int `json:"statusCode"`
StatusDescription string `json:"statusDescription"`
Body string `json:"body,omitempty"`
IsBase64Encoded bool `json:"isBase64Encoded"`
}
ALBTargetGroupResponse configures the response to be returned by the ALB Lambda target group for the request
type APIGatewayCustomAuthorizerContext struct {
PrincipalID *string `json:"principalId"`
StringKey *string `json:"stringKey,omitempty"`
NumKey *int `json:"numKey,omitempty"`
BoolKey *bool `json:"boolKey,omitempty"`
}
APIGatewayCustomAuthorizerContext represents the expected format of an API Gateway custom authorizer response. Deprecated. Code should be updated to use the Authorizer map from APIGatewayRequestIdentity. Ex: Authorizer["principalId"]
type APIGatewayCustomAuthorizerPolicy IAMPolicyDocument
APIGatewayCustomAuthorizerPolicy represents an IAM policy.
Note: This type exists for backwards compatibility. should reference IAMPolicyDocument directly instead.
type APIGatewayCustomAuthorizerRequest struct {
Type string `json:"type"`
AuthorizationToken string `json:"authorizationToken"`
MethodArn string `json:"methodArn"`
}
APIGatewayCustomAuthorizerRequest contains data coming in to a custom API Gateway authorizer function.
This is a simple TOKEN authorizer example to demonstrate how to use an authorization token to allow or deny a request. In this example, the caller named "user" is allowed to invoke a request if the client-supplied token value is "allow". The caller is not allowed to invoke the request if the token value is "deny". If the token value is "Unauthorized", the function returns the "Unauthorized" error with an HTTP status code of 401. For any other token value, the authorizer returns an "Invalid token" error.
package main
import (
"context"
"errors"
"strings"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
// This is a simple TOKEN authorizer example to demonstrate how to use an authorization
// token to allow or deny a request. In this example, the caller named "user" is allowed to invoke
// a request if the client-supplied token value is "allow". The caller is not allowed to invoke
// the request if the token value is "deny". If the token value is "Unauthorized", the function
// returns the "Unauthorized" error with an HTTP status code of 401. For any other token value,
// the authorizer returns an "Invalid token" error.
func main() {
lambda.Start(func(ctx context.Context, event *events.APIGatewayCustomAuthorizerRequest) (*events.APIGatewayCustomAuthorizerResponse, error) {
token := event.AuthorizationToken
switch strings.ToLower(token) {
case "allow":
return generatePolicy("user", "Allow", event.MethodArn), nil
case "deny":
return generatePolicy("user", "Deny", event.MethodArn), nil
case "unauthorized":
return nil, errors.New("Unauthorized")
default:
return nil, errors.New("Error: Invalid token")
}
})
}
func generatePolicy(principalID, effect, resource string) *events.APIGatewayCustomAuthorizerResponse {
authResponse := &events.APIGatewayCustomAuthorizerResponse{PrincipalID: principalID}
if effect != "" && resource != "" {
authResponse.PolicyDocument = events.APIGatewayCustomAuthorizerPolicy{
Version: "2012-10-17",
Statement: []events.IAMPolicyStatement{
{
Action: []string{"execute-api:Invoke"},
Effect: effect,
Resource: []string{resource},
},
},
}
}
authResponse.Context = map[string]interface{}{
"stringKey": "stringval",
"numberKey": 123,
"booleanKey": true,
}
return authResponse
}
type APIGatewayCustomAuthorizerRequestTypeRequest struct {
Type string `json:"type"`
MethodArn string `json:"methodArn"`
Resource string `json:"resource"`
Path string `json:"path"`
HTTPMethod string `json:"httpMethod"`
QueryStringParameters map[string]string `json:"queryStringParameters"`
MultiValueQueryStringParameters map[string][]string `json:"multiValueQueryStringParameters"`
PathParameters map[string]string `json:"pathParameters"`
StageVariables map[string]string `json:"stageVariables"`
RequestContext APIGatewayCustomAuthorizerRequestTypeRequestContext `json:"requestContext"`
}
APIGatewayCustomAuthorizerRequestTypeRequest contains data coming in to a custom API Gateway authorizer function.
type APIGatewayCustomAuthorizerRequestTypeRequestContext struct {
Path string `json:"path"`
AccountID string `json:"accountId"`
ResourceID string `json:"resourceId"`
Stage string `json:"stage"`
RequestID string `json:"requestId"`
Identity APIGatewayCustomAuthorizerRequestTypeRequestIdentity `json:"identity"`
ResourcePath string `json:"resourcePath"`
HTTPMethod string `json:"httpMethod"`
APIID string `json:"apiId"`
}
APIGatewayCustomAuthorizerRequestTypeRequestContext represents the expected format of an API Gateway custom authorizer response.
type APIGatewayCustomAuthorizerRequestTypeRequestIdentity struct {
APIKey string `json:"apiKey"`
SourceIP string `json:"sourceIp"`
ClientCert APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCert `json:"clientCert"`
}
APIGatewayCustomAuthorizerRequestTypeRequestIdentity contains identity information for the request caller including certificate information if using mTLS.
type APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCert struct {
ClientCertPem string `json:"clientCertPem"`
IssuerDN string `json:"issuerDN"`
SerialNumber string `json:"serialNumber"`
SubjectDN string `json:"subjectDN"`
Validity APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCertValidity `json:"validity"`
}
APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCert contains certificate information for the request caller if using mTLS.
type APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCertValidity struct {
NotAfter string `json:"notAfter"`
NotBefore string `json:"notBefore"`
}
APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCertValidity contains certificate validity information for the request caller if using mTLS.
type APIGatewayCustomAuthorizerResponse struct {
PrincipalID string `json:"principalId"`
PolicyDocument APIGatewayCustomAuthorizerPolicy `json:"policyDocument"`
Context map[string]interface{} `json:"context,omitempty"`
UsageIdentifierKey string `json:"usageIdentifierKey,omitempty"`
}
APIGatewayCustomAuthorizerResponse represents the expected format of an API Gateway authorization response.
type APIGatewayProxyRequest struct {
Resource string `json:"resource"`
Path string `json:"path"`
HTTPMethod string `json:"httpMethod"`
QueryStringParameters map[string]string `json:"queryStringParameters"`
MultiValueQueryStringParameters map[string][]string `json:"multiValueQueryStringParameters"`
PathParameters map[string]string `json:"pathParameters"`
StageVariables map[string]string `json:"stageVariables"`
RequestContext APIGatewayProxyRequestContext `json:"requestContext"`
Body string `json:"body"`
IsBase64Encoded bool `json:"isBase64Encoded,omitempty"`
}
APIGatewayProxyRequest contains data coming from the API Gateway proxy
API Gateway events consist of a request that was routed to a Lambda function by API Gateway. When this happens, API Gateway expects the result of the function to be the response that API Gateway should respond with.
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, request *events.APIGatewayProxyRequest) (*events.APIGatewayProxyResponse, error) {
fmt.Printf("Processing request data for request %s.\n", request.RequestContext.RequestID)
fmt.Printf("Body size = %d.\n", len(request.Body))
fmt.Println("Headers:")
for key, value := range request.Headers {
fmt.Printf(" %s: %s\n", key, value)
}
return &events.APIGatewayProxyResponse{Body: request.Body, StatusCode: 200}, nil
})
}
type APIGatewayProxyRequestContext struct {
AccountID string `json:"accountId"`
ResourceID string `json:"resourceId"`
OperationName string `json:"operationName,omitempty"`
Stage string `json:"stage"`
DomainName string `json:"domainName"`
DomainPrefix string `json:"domainPrefix"`
RequestID string `json:"requestId"`
ExtendedRequestID string `json:"extendedRequestId"`
Protocol string `json:"protocol"`
Identity APIGatewayRequestIdentity `json:"identity"`
ResourcePath string `json:"resourcePath"`
Path string `json:"path"`
Authorizer map[string]interface{} `json:"authorizer"`
HTTPMethod string `json:"httpMethod"`
RequestTime string `json:"requestTime"`
RequestTimeEpoch int64 `json:"requestTimeEpoch"`
APIID string `json:"apiId"`
}
APIGatewayProxyRequestContext contains the information to identify the AWS account and resources invoking the Lambda function. It also includes Cognito identity information for the caller.
type APIGatewayProxyResponse struct {
StatusCode int `json:"statusCode"`
Body string `json:"body"`
IsBase64Encoded bool `json:"isBase64Encoded,omitempty"`
}
APIGatewayProxyResponse configures the response to be returned by API Gateway for the request
APIGatewayProxyStreamingResponse configures the response to be returned by API Gateway for the request.
- integration type must be AWS_PROXY
- integration uri must be arn:<partition>:apigateway:<region>:lambda:path/2021-11-15/functions/<function-arn>/response-streaming-invocations
- integration response transfer mode must be STREAM
If not using the above streaming integration, use APIGatewayProxyResponse instead
package main
import (
"strings"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func() (*events.APIGatewayProxyStreamingResponse, error) {
return &events.APIGatewayProxyStreamingResponse{
StatusCode: 200,
Headers: map[string]string{
"Content-Type": "text/html",
},
Body: strings.NewReader("<html><body>Hello World!</body></html>"),
}, nil
})
}
func (*APIGatewayProxyStreamingResponse) ContentType ¶ added in v1.51.0
type APIGatewayRequestIdentity struct {
CognitoIdentityPoolID string `json:"cognitoIdentityPoolId,omitempty"`
AccountID string `json:"accountId,omitempty"`
CognitoIdentityID string `json:"cognitoIdentityId,omitempty"`
Caller string `json:"caller,omitempty"`
APIKey string `json:"apiKey,omitempty"`
APIKeyID string `json:"apiKeyId,omitempty"`
AccessKey string `json:"accessKey,omitempty"`
SourceIP string `json:"sourceIp"`
CognitoAuthenticationType string `json:"cognitoAuthenticationType,omitempty"`
CognitoAuthenticationProvider string `json:"cognitoAuthenticationProvider,omitempty"`
UserArn string `json:"userArn,omitempty"`
UserAgent string `json:"userAgent"`
User string `json:"user,omitempty"`
ClientCert *APIGatewayCustomAuthorizerRequestTypeRequestIdentityClientCert `json:"clientCert,omitempty"`
}
APIGatewayRequestIdentity contains identity information for the request caller.
type APIGatewayV2CustomAuthorizerIAMPolicyResponse struct {
PrincipalID string `json:"principalId"`
PolicyDocument APIGatewayCustomAuthorizerPolicy `json:"policyDocument"`
Context map[string]interface{} `json:"context,omitempty"`
}
type APIGatewayV2CustomAuthorizerSimpleResponse struct {
IsAuthorized bool `json:"isAuthorized"`
Context map[string]interface{} `json:"context,omitempty"`
}
APIGatewayV2CustomAuthorizerSimpleResponse represents the simple format of an API Gateway V2 authorization response.
type APIGatewayV2CustomAuthorizerV1Request struct {
Version string `json:"version"`
Type string `json:"type"`
MethodArn string `json:"methodArn"`
IdentitySource string `json:"identitySource"`
AuthorizationToken string `json:"authorizationToken"`
Resource string `json:"resource"`
Path string `json:"path"`
HTTPMethod string `json:"httpMethod"`
QueryStringParameters map[string]string `json:"queryStringParameters"`
PathParameters map[string]string `json:"pathParameters"`
StageVariables map[string]string `json:"stageVariables"`
RequestContext APIGatewayV2CustomAuthorizerV1RequestTypeRequestContext `json:"requestContext"`
}
type APIGatewayV2CustomAuthorizerV1RequestTypeRequestContext struct {
Path string `json:"path"`
AccountID string `json:"accountId"`
ResourceID string `json:"resourceId"`
Stage string `json:"stage"`
RequestID string `json:"requestId"`
Identity APIGatewayCustomAuthorizerRequestTypeRequestIdentity `json:"identity"`
ResourcePath string `json:"resourcePath"`
HTTPMethod string `json:"httpMethod"`
APIID string `json:"apiId"`
}
type APIGatewayV2CustomAuthorizerV2Request struct {
Version string `json:"version"`
Type string `json:"type"`
RouteArn string `json:"routeArn"`
IdentitySource []string `json:"identitySource"`
RouteKey string `json:"routeKey"`
RawPath string `json:"rawPath"`
RawQueryString string `json:"rawQueryString"`
Cookies []string `json:"cookies"`
QueryStringParameters map[string]string `json:"queryStringParameters"`
RequestContext APIGatewayV2HTTPRequestContext `json:"requestContext"`
PathParameters map[string]string `json:"pathParameters"`
StageVariables map[string]string `json:"stageVariables"`
}
type APIGatewayV2HTTPRequest struct {
Version string `json:"version"`
RouteKey string `json:"routeKey"`
RawPath string `json:"rawPath"`
RawQueryString string `json:"rawQueryString"`
Cookies []string `json:"cookies,omitempty"`
QueryStringParameters map[string]string `json:"queryStringParameters,omitempty"`
PathParameters map[string]string `json:"pathParameters,omitempty"`
RequestContext APIGatewayV2HTTPRequestContext `json:"requestContext"`
StageVariables map[string]string `json:"stageVariables,omitempty"`
Body string `json:"body,omitempty"`
IsBase64Encoded bool `json:"isBase64Encoded"`
}
APIGatewayV2HTTPRequest contains data coming from the new HTTP API Gateway
type APIGatewayV2HTTPRequestContext struct {
RouteKey string `json:"routeKey"`
AccountID string `json:"accountId"`
Stage string `json:"stage"`
RequestID string `json:"requestId"`
Authorizer *APIGatewayV2HTTPRequestContextAuthorizerDescription `json:"authorizer,omitempty"`
APIID string `json:"apiId"`
DomainName string `json:"domainName"`
DomainPrefix string `json:"domainPrefix"`
Time string `json:"time"`
TimeEpoch int64 `json:"timeEpoch"`
HTTP APIGatewayV2HTTPRequestContextHTTPDescription `json:"http"`
Authentication APIGatewayV2HTTPRequestContextAuthentication `json:"authentication,omitempty"`
}
APIGatewayV2HTTPRequestContext contains the information to identify the AWS account and resources invoking the Lambda function.
type APIGatewayV2HTTPRequestContextAuthentication struct {
ClientCert APIGatewayV2HTTPRequestContextAuthenticationClientCert `json:"clientCert"`
}
APIGatewayV2HTTPRequestContextAuthentication contains authentication context information for the request caller including client certificate information if using mTLS.
type APIGatewayV2HTTPRequestContextAuthenticationClientCert struct {
ClientCertPem string `json:"clientCertPem"`
IssuerDN string `json:"issuerDN"`
SerialNumber string `json:"serialNumber"`
SubjectDN string `json:"subjectDN"`
Validity APIGatewayV2HTTPRequestContextAuthenticationClientCertValidity `json:"validity"`
}
APIGatewayV2HTTPRequestContextAuthenticationClientCert contains client certificate information for the request caller if using mTLS.
type APIGatewayV2HTTPRequestContextAuthenticationClientCertValidity struct {
NotAfter string `json:"notAfter"`
NotBefore string `json:"notBefore"`
}
APIGatewayV2HTTPRequestContextAuthenticationClientCertValidity contains client certificate validity information for the request caller if using mTLS.
type APIGatewayV2HTTPRequestContextAuthorizerCognitoIdentity struct {
AMR []string `json:"amr"`
IdentityID string `json:"identityId"`
IdentityPoolID string `json:"identityPoolId"`
}
APIGatewayV2HTTPRequestContextAuthorizerCognitoIdentity contains Cognito identity information for the request context.
type APIGatewayV2HTTPRequestContextAuthorizerDescription struct {
JWT *APIGatewayV2HTTPRequestContextAuthorizerJWTDescription `json:"jwt,omitempty"`
Lambda map[string]interface{} `json:"lambda,omitempty"`
IAM *APIGatewayV2HTTPRequestContextAuthorizerIAMDescription `json:"iam,omitempty"`
}
APIGatewayV2HTTPRequestContextAuthorizerDescription contains authorizer information for the request context.
type APIGatewayV2HTTPRequestContextAuthorizerIAMDescription struct {
AccessKey string `json:"accessKey"`
AccountID string `json:"accountId"`
CallerID string `json:"callerId"`
CognitoIdentity APIGatewayV2HTTPRequestContextAuthorizerCognitoIdentity `json:"cognitoIdentity,omitempty"`
PrincipalOrgID string `json:"principalOrgId"`
UserARN string `json:"userArn"`
UserID string `json:"userId"`
}
APIGatewayV2HTTPRequestContextAuthorizerIAMDescription contains IAM information for the request context.
type APIGatewayV2HTTPRequestContextAuthorizerJWTDescription struct {
Claims map[string]string `json:"claims"`
Scopes []string `json:"scopes,omitempty"`
}
APIGatewayV2HTTPRequestContextAuthorizerJWTDescription contains JWT authorizer information for the request context.
type APIGatewayV2HTTPRequestContextHTTPDescription struct {
Method string `json:"method"`
Path string `json:"path"`
Protocol string `json:"protocol"`
SourceIP string `json:"sourceIp"`
UserAgent string `json:"userAgent"`
}
APIGatewayV2HTTPRequestContextHTTPDescription contains HTTP information for the request context.
type APIGatewayV2HTTPResponse struct {
StatusCode int `json:"statusCode"`
Body string `json:"body"`
IsBase64Encoded bool `json:"isBase64Encoded,omitempty"`
Cookies []string `json:"cookies"`
}
APIGatewayV2HTTPResponse configures the response to be returned by API Gateway V2 for the request
type APIGatewayWebsocketProxyRequest struct {
Resource string `json:"resource,omitempty"`
Path string `json:"path,omitempty"`
HTTPMethod string `json:"httpMethod,omitempty"`
QueryStringParameters map[string]string `json:"queryStringParameters,omitempty"`
MultiValueQueryStringParameters map[string][]string `json:"multiValueQueryStringParameters,omitempty"`
PathParameters map[string]string `json:"pathParameters,omitempty"`
StageVariables map[string]string `json:"stageVariables,omitempty"`
RequestContext APIGatewayWebsocketProxyRequestContext `json:"requestContext"`
Body string `json:"body,omitempty"`
IsBase64Encoded bool `json:"isBase64Encoded"`
}
APIGatewayWebsocketProxyRequest contains data coming from the API Gateway proxy
type APIGatewayWebsocketProxyRequestContext struct {
AccountID string `json:"accountId,omitempty"`
ResourceID string `json:"resourceId,omitempty"`
Stage string `json:"stage"`
RequestID string `json:"requestId"`
Identity APIGatewayRequestIdentity `json:"identity"`
ResourcePath string `json:"resourcePath,omitempty"`
Authorizer interface{} `json:"authorizer,omitempty"`
HTTPMethod string `json:"httpMethod,omitempty"`
APIID string `json:"apiId"`
ConnectedAt int64 `json:"connectedAt"`
ConnectionID string `json:"connectionId"`
DomainName string `json:"domainName"`
Error string `json:"error,omitempty"`
EventType string `json:"eventType"`
ExtendedRequestID string `json:"extendedRequestId"`
IntegrationLatency string `json:"integrationLatency,omitempty"`
MessageDirection string `json:"messageDirection"`
MessageID interface{} `json:"messageId,omitempty"`
RequestTime string `json:"requestTime"`
RequestTimeEpoch int64 `json:"requestTimeEpoch"`
RouteKey string `json:"routeKey"`
Status string `json:"status,omitempty"`
DisconnectStatusCode int64 `json:"disconnectStatusCode,omitempty"`
DisconnectReason *string `json:"disconnectReason,omitempty"`
}
APIGatewayWebsocketProxyRequestContext contains the information to identify the AWS account and resources invoking the Lambda function. It also includes Cognito identity information for the caller.
type AccessTokenGeneration struct {
ClaimsToAddOrOverride map[string]string `json:"claimsToAddOrOverride"`
ClaimsToSuppress []string `json:"claimsToSuppress"`
ScopesToAdd []string `json:"scopesToAdd"`
ScopesToSuppress []string `json:"scopesToSuppress"`
}
AccessTokenGeneration allows lambda to modify the access token
Deprecated: Use AccessTokenGenerationV2_0 instead
type AccessTokenGenerationV2_0 struct {
ClaimsToAddOrOverride map[string]interface{} `json:"claimsToAddOrOverride"`
ClaimsToSuppress []string `json:"claimsToSuppress"`
ScopesToAdd []string `json:"scopesToAdd"`
ScopesToSuppress []string `json:"scopesToSuppress"`
}
AccessTokenGenerationV2_0 allows lambda to modify the access token
type ActiveMQDestination struct {
PhysicalName string `json:"physicalName"`
}
type ActiveMQEvent struct {
EventSource string `json:"eventSource"`
EventSourceARN string `json:"eventSourceArn"`
Messages []ActiveMQMessage `json:"messages"`
}
type ActiveMQMessage struct {
MessageID string `json:"messageID"`
MessageType string `json:"messageType"`
Timestamp int64 `json:"timestamp"`
DeliveryMode int `json:"deliveryMode"`
CorrelationID string `json:"correlationID"`
ReplyTo string `json:"replyTo"`
Destination ActiveMQDestination `json:"destination"`
Redelivered bool `json:"redelivered"`
Type string `json:"type"`
Expiration int64 `json:"expiration"`
Priority int `json:"priority"`
Data string `json:"data"`
BrokerInTime int64 `json:"brokerInTime"`
BrokerOutTime int64 `json:"brokerOutTime"`
Properties map[string]string `json:"properties"`
}
type AppSyncCognitoIdentity struct {
Sub string `json:"sub"`
Issuer string `json:"issuer"`
Username string `json:"username"`
Claims map[string]interface{} `json:"claims"`
SourceIP []string `json:"sourceIp"`
DefaultAuthStrategy string `json:"defaultAuthStrategy"`
}
AppSyncCognitoIdentity contains information about the caller authed via Cognito.
type AppSyncIAMIdentity struct {
AccountID string `json:"accountId"`
CognitoIdentityAuthProvider string `json:"cognitoIdentityAuthProvider"`
CognitoIdentityAuthType string `json:"cognitoIdentityAuthType"`
CognitoIdentityPoolID string `json:"cognitoIdentityPoolId"`
CognitoIdentityID string `json:"cognitoIdentityId"`
SourceIP []string `json:"sourceIp"`
Username string `json:"username"`
UserARN string `json:"userArn"`
}
AppSyncIAMIdentity contains information about the caller authed via IAM.
type AppSyncLambdaAuthorizerRequest struct {
AuthorizationToken string `json:"authorizationToken"`
RequestContext AppSyncLambdaAuthorizerRequestContext `json:"requestContext"`
}
AppSyncLambdaAuthorizerRequest contains an authorization request from AppSync.
type AppSyncLambdaAuthorizerRequestContext struct {
APIID string `json:"apiId"`
AccountID string `json:"accountId"`
RequestID string `json:"requestId"`
QueryString string `json:"queryString"`
OperationName string `json:"operationName"`
Variables map[string]interface{} `json:"variables"`
}
AppSyncLambdaAuthorizerRequestContext contains the parameters of the AppSync invocation which triggered this authorization request.
type AppSyncLambdaAuthorizerResponse struct {
IsAuthorized bool `json:"isAuthorized"`
ResolverContext map[string]interface{} `json:"resolverContext,omitempty"`
DeniedFields []string `json:"deniedFields,omitempty"`
TTLOverride *int `json:"ttlOverride,omitempty"`
}
AppSyncLambdaAuthorizerResponse represents the expected format of an authorization response to AppSync.
Deprecated: not used by any event schema
const ( OperationInvoke AppSyncOperation = "Invoke" OperationBatchInvoke AppSyncOperation = "BatchInvoke" )
type AppSyncResolverTemplate struct {
Version string `json:"version"`
Operation AppSyncOperation `json:"operation"`
Payload json.RawMessage `json:"payload"`
}
Deprecated: AppSyncResolverTemplate does not represent resolver events sent by AppSync. Instead directly model your input schema, or use map[string]string, json.RawMessage, interface{}, etc..
type Attachment struct {
Title string `json:"title,omitempty"`
SubTitle string `json:"subTitle,omitempty"`
ImageURL string `json:"imageUrl,omitempty"`
AttachmentLinkURL string `json:"attachmentLinkUrl,omitempty"`
Buttons []map[string]string `json:"buttons,omitempty"`
}
type AutoScalingEvent struct {
Version string `json:"version"`
ID string `json:"id"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
AccountID string `json:"account"`
Time time.Time `json:"time"`
Region string `json:"region"`
Resources []string `json:"resources"`
Detail map[string]interface{} `json:"detail"`
}
AutoScalingEvent struct is used to parse the json for auto scaling event types //
type ChimeBotEvent struct {
Sender ChimeBotEventSender `json:"Sender"`
Discussion ChimeBotEventDiscussion `json:"Discussion"`
EventType string `json:"EventType"`
InboundHTTPSEndpoint *ChimeBotEventInboundHTTPSEndpoint `json:"InboundHttpsEndpoint,omitempty"`
EventTimestamp time.Time `json:"EventTimestamp"`
Message string `json:"Message,omitempty"`
}
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(_ context.Context, chimeBotEvent *events.ChimeBotEvent) error {
switch chimeBotEvent.EventType {
case "Invite":
fmt.Printf("Thanks for inviting me to this room %s\n", chimeBotEvent.Sender.SenderID)
return nil
case "Mention":
fmt.Printf("Thanks for mentioning me %s\n", chimeBotEvent.Sender.SenderID)
return nil
case "Remove":
fmt.Printf("I have been removed from %q by %q\n", chimeBotEvent.Discussion.DiscussionType, chimeBotEvent.Sender.SenderID)
return nil
default:
return fmt.Errorf("event type %q is unsupported", chimeBotEvent.EventType)
}
})
}
type ChimeBotEventDiscussion struct {
DiscussionID string `json:"DiscussionId"`
DiscussionType string `json:"DiscussionType"`
}
type ChimeBotEventInboundHTTPSEndpoint struct {
EndpointType string `json:"EndpointType"`
URL string `json:"Url"`
}
type ChimeBotEventSender struct {
SenderID string `json:"SenderId"`
SenderIDType string `json:"SenderIdType"`
}
type ClaimsAndScopeOverrideDetails
deprecated
added in
v1.43.0
type ClaimsAndScopeOverrideDetails struct {
IDTokenGeneration IDTokenGeneration `json:"idTokenGeneration"`
AccessTokenGeneration AccessTokenGeneration `json:"accessTokenGeneration"`
GroupOverrideDetails GroupConfiguration `json:"groupOverrideDetails"`
}
ClaimsAndScopeOverrideDetails allows lambda to add, suppress or override V2 claims and scopes in the token
Deprecated: Use ClaimsAndScopeOverrideDetailsV2_0 instead
type ClaimsAndScopeOverrideDetailsV2_0 ¶ added in v1.48.0
type ClaimsAndScopeOverrideDetailsV2_0 struct {
IDTokenGeneration IDTokenGenerationV2_0 `json:"idTokenGeneration"`
AccessTokenGeneration AccessTokenGenerationV2_0 `json:"accessTokenGeneration"`
GroupOverrideDetails GroupConfigurationV2_0 `json:"groupOverrideDetails"`
}
ClaimsAndScopeOverrideDetailsV2 allows lambda to add, suppress or override V2 claims and scopes in the token
type ClaimsOverrideDetails struct {
GroupOverrideDetails GroupConfiguration `json:"groupOverrideDetails"`
ClaimsToAddOrOverride map[string]string `json:"claimsToAddOrOverride"`
ClaimsToSuppress []string `json:"claimsToSuppress"`
}
ClaimsOverrideDetails allows lambda to add, suppress or override claims in the token
type ClientVPNConnectionHandlerRequest ¶ added in v1.21.0
type ClientVPNConnectionHandlerRequest struct {
ConnectionID string `json:"connection-id"`
EndpointID string `json:"endpoint-id"`
CommonName string `json:"common-name"`
Username string `json:"username"`
OSPlatform string `json:"platform"`
OSPlatformVersion string `json:"platform-version"`
PublicIP string `json:"public-ip"`
ClientOpenVPNVersion string `json:"client-openvpn-version"`
SchemaVersion string `json:"schema-version"`
}
type ClientVPNConnectionHandlerResponse ¶ added in v1.21.0
type CloudWatchAlarmSNSPayload struct {
AlarmName string `json:"AlarmName"`
AlarmDescription string `json:"AlarmDescription"`
AWSAccountID string `json:"AWSAccountId"`
NewStateValue string `json:"NewStateValue"`
NewStateReason string `json:"NewStateReason"`
StateChangeTime string `json:"StateChangeTime"`
Region string `json:"Region"`
AlarmARN string `json:"AlarmArn"`
OldStateValue string `json:"OldStateValue"`
Trigger CloudWatchAlarmTrigger `json:"Trigger"`
}
type CloudWatchAlarmTrigger struct {
Period int64 `json:"Period"`
EvaluationPeriods int64 `json:"EvaluationPeriods"`
ComparisonOperator string `json:"ComparisonOperator"`
Threshold float64 `json:"Threshold"`
TreatMissingData string `json:"TreatMissingData"`
EvaluateLowSampleCountPercentile string `json:"EvaluateLowSampleCountPercentile"`
Metrics []CloudWatchMetricDataQuery `json:"Metrics,omitempty"`
MetricName string `json:"MetricName,omitempty"`
Namespace string `json:"Namespace,omitempty"`
StatisticType string `json:"StatisticType,omitempty"`
Statistic string `json:"Statistic,omitempty"`
Unit string `json:"Unit,omitempty"`
Dimensions []CloudWatchDimension `json:"Dimensions,omitempty"`
}
type CloudWatchEvent struct {
Version string `json:"version"`
ID string `json:"id"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
AccountID string `json:"account"`
Time time.Time `json:"time"`
Region string `json:"region"`
Resources []string `json:"resources"`
Detail json.RawMessage `json:"detail"`
}
CloudWatchEvent is the outer structure of an event sent via EventBridge serverless service.
type CloudWatchMetric struct {
Dimensions []CloudWatchDimension `json:"Dimensions,omitempty"`
MetricName string `json:"MetricName,omitempty"`
Namespace string `json:"Namespace,omitempty"`
}
type CloudWatchMetricDataQuery struct {
Expression string `json:"Expression,omitempty"`
ID string `json:"Id"`
Label string `json:"Label,omitempty"`
MetricStat CloudWatchMetricStat `json:"MetricStat,omitempty"`
Period int64 `json:"Period,omitempty"`
ReturnData bool `json:"ReturnData,omitempty"`
}
type CloudWatchMetricStat struct {
Metric CloudWatchMetric `json:"Metric"`
Period int64 `json:"Period"`
Stat string `json:"Stat"`
Unit string `json:"Unit,omitempty"`
}
type CloudwatchLogsData struct {
Owner string `json:"owner"`
LogGroup string `json:"logGroup"`
LogStream string `json:"logStream"`
SubscriptionFilters []string `json:"subscriptionFilters"`
MessageType string `json:"messageType"`
LogEvents []CloudwatchLogsLogEvent `json:"logEvents"`
}
CloudwatchLogsData is an unmarshal'd, ungzip'd, cloudwatch logs event
type CloudwatchLogsEvent struct {
AWSLogs CloudwatchLogsRawData `json:"awslogs"`
}
CloudwatchLogsEvent represents raw data from a cloudwatch logs event
type CloudwatchLogsLogEvent struct {
ID string `json:"id"`
Timestamp int64 `json:"timestamp"`
Message string `json:"message"`
}
CloudwatchLogsLogEvent represents a log entry from cloudwatch logs
type CloudwatchLogsRawData struct {
Data string `json:"data"`
}
CloudwatchLogsRawData contains gzipped base64 json representing the bulk of a cloudwatch logs event
Parse returns a struct representing a usable CloudwatchLogs event
type CodeBuildArtifact struct {
MD5Sum string `json:"md5sum"`
SHA256Sum string `json:"sha256sum"`
Location string `json:"location"`
}
CodeBuildArtifact represents the artifact provided to build
type CodeBuildEnvironment struct {
Image string `json:"image"`
PrivilegedMode bool `json:"privileged-mode"`
ComputeType string `json:"compute-type"`
Type string `json:"type"`
EnvironmentVariables []CodeBuildEnvironmentVariable `json:"environment-variables"`
}
CodeBuildEnvironment represents the environment for a build
type CodeBuildEnvironmentVariable struct {
Name string `json:"name"`
Type string `json:"type"`
Value string `json:"value"`
}
CodeBuildEnvironmentVariable encapsulate environment variables for the code build
type CodeBuildEventAdditionalInformation struct {
Artifact CodeBuildArtifact `json:"artifact"`
Environment CodeBuildEnvironment `json:"environment"`
Timeout DurationMinutes `json:"timeout-in-minutes"`
BuildComplete bool `json:"build-complete"`
BuildNumber CodeBuildNumber `json:"build-number,omitempty"`
Initiator string `json:"initiator"`
BuildStartTime CodeBuildTime `json:"build-start-time"`
Source CodeBuildSource `json:"source"`
SourceVersion string `json:"source-version"`
Logs CodeBuildLogs `json:"logs"`
Phases []CodeBuildPhase `json:"phases"`
}
CodeBuildEventAdditionalInformation represents additional information to the code build event
type CodeBuildEventDetail struct {
BuildStatus CodeBuildPhaseStatus `json:"build-status"`
ProjectName string `json:"project-name"`
BuildID string `json:"build-id"`
AdditionalInformation CodeBuildEventAdditionalInformation `json:"additional-information"`
CurrentPhase CodeBuildPhaseType `json:"current-phase"`
CurrentPhaseContext string `json:"current-phase-context"`
Version string `json:"version"`
CompletedPhaseStatus CodeBuildPhaseStatus `json:"completed-phase-status"`
CompletedPhase CodeBuildPhaseType `json:"completed-phase"`
CompletedPhaseContext string `json:"completed-phase-context"`
CompletedPhaseDuration DurationSeconds `json:"completed-phase-duration-seconds"`
CompletedPhaseStart CodeBuildTime `json:"completed-phase-start"`
CompletedPhaseEnd CodeBuildTime `json:"completed-phase-end"`
}
CodeBuildEventDetail represents the all details related to the code build event
type CodeBuildLogs struct {
GroupName string `json:"group-name"`
StreamName string `json:"stream-name"`
DeepLink string `json:"deep-link"`
}
CodeBuildLogs gives the log details of a code build
type CodeBuildNumber int32
CodeBuildNumber represents the number of the build
MarshalJSON converts a given CodeBuildNumber to json
UnmarshalJSON converts a given json to a CodeBuildNumber
type CodeBuildPhase struct {
PhaseContext []interface{} `json:"phase-context,omitempty"`
StartTime CodeBuildTime `json:"start-time"`
EndTime CodeBuildTime `json:"end-time,omitempty"`
Duration DurationSeconds `json:"duration-in-seconds,omitempty"`
PhaseType CodeBuildPhaseType `json:"phase-type"`
PhaseStatus CodeBuildPhaseStatus `json:"phase-status,omitempty"`
}
CodeBuildPhase represents the phase of a build and its details
type CodeBuildPhaseStatus string
CodeBuildPhaseStatus represents the status of code build phase (i.e. failed, in progress)
const ( CodeBuildPhaseStatusFailed CodeBuildPhaseStatus = "FAILED" CodeBuildPhaseStatusFault CodeBuildPhaseStatus = "FAULT" CodeBuildPhaseStatusInProgress CodeBuildPhaseStatus = "IN_PROGRESS" CodeBuildPhaseStatusQueued CodeBuildPhaseStatus = "QUEUED" CodeBuildPhaseStatusStopped CodeBuildPhaseStatus = "STOPPED" CodeBuildPhaseStatusSucceeded CodeBuildPhaseStatus = "SUCCEEDED" CodeBuildPhaseStatusTimedOut CodeBuildPhaseStatus = "TIMED_OUT" )
type CodeBuildPhaseType string
CodeBuildPhaseType represents the type of the code build phase (i.e. submitted, install)
const ( CodeBuildPhaseTypeSubmitted CodeBuildPhaseType = "SUBMITTED" CodeBuildPhaseTypeQueued CodeBuildPhaseType = "QUEUED" CodeBuildPhaseTypeProvisioning CodeBuildPhaseType = "PROVISIONING" CodeBuildPhaseTypeDownloadSource CodeBuildPhaseType = "DOWNLOAD_SOURCE" CodeBuildPhaseTypeInstall CodeBuildPhaseType = "INSTALL" CodeBuildPhaseTypePreBuild CodeBuildPhaseType = "PRE_BUILD" CodeBuildPhaseTypeBuild CodeBuildPhaseType = "BUILD" CodeBuildPhaseTypePostBuild CodeBuildPhaseType = "POST_BUILD" CodeBuildPhaseTypeUploadArtifacts CodeBuildPhaseType = "UPLOAD_ARTIFACTS" CodeBuildPhaseTypeFinalizing CodeBuildPhaseType = "FINALIZING" CodeBuildPhaseTypeCompleted CodeBuildPhaseType = "COMPLETED" )
CodeBuildSource represent the code source will be build
CodeBuildTime represents the time of the build
MarshalJSON converts a given CodeBuildTime to json
UnmarshalJSON converts a given json to a CodeBuildTime
type CodeCommitCodeCommit struct {
References []CodeCommitReference `json:"references"`
}
CodeCommitCodeCommit represents a CodeCommit object in a record
String returns a string representation of this object. Useful for testing and debugging.
type CodeCommitEvent struct {
Records []CodeCommitRecord `json:"Records"`
}
CodeCommitEvent represents a CodeCommit event
String returns a string representation of this object. Useful for testing and debugging.
type CodeCommitRecord struct {
EventID string `json:"eventId"`
EventVersion string `json:"eventVersion"`
EventTime CodeCommitEventTime `json:"eventTime"`
EventTriggerName string `json:"eventTriggerName"`
EventPartNumber uint64 `json:"eventPartNumber"`
CodeCommit CodeCommitCodeCommit `json:"codecommit"`
EventName string `json:"eventName"`
EventTriggerConfigId string `json:"eventTriggerConfigId"`
EventSourceARN string `json:"eventSourceARN"`
UserIdentityARN string `json:"userIdentityARN"`
EventSource string `json:"eventSource"`
AWSRegion string `json:"awsRegion"`
EventTotalParts uint64 `json:"eventTotalParts"`
CustomData string `json:"customData,omitempty"`
}
CodeCommitRecord represents a CodeCommit record
String returns a string representation of this object. Useful for testing and debugging.
type CodeCommitReference struct {
Commit string `json:"commit"`
Ref string `json:"ref"`
Created bool `json:"created,omitempty"`
Deleted bool `json:"deleted,omitempty"`
}
CodeCommitReference represents a Reference object in a CodeCommit object
String returns a string representation of this object. Useful for testing and debugging.
type CodeDeployDeploymentState string
const ( CodeDeployDeploymentStateFailure CodeDeployDeploymentState = "FAILURE" CodeDeployDeploymentStateReady CodeDeployDeploymentState = "READY" CodeDeployDeploymentStateStart CodeDeployDeploymentState = "START" CodeDeployDeploymentStateStop CodeDeployDeploymentState = "STOP" CodeDeployDeploymentStateSuccess CodeDeployDeploymentState = "SUCCESS" )
type CodeDeployEvent struct {
AccountID string `json:"account"`
Region string `json:"region"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
Version string `json:"version"`
Time time.Time `json:"time"`
ID string `json:"id"`
Resources []string `json:"resources"`
Detail CodeDeployEventDetail `json:"detail"`
}
type CodeDeployEventDetail struct {
InstanceGroupID string `json:"instanceGroupId"`
InstanceID string `json:"instanceId,omitempty"`
Region string `json:"region"`
Application string `json:"application"`
DeploymentID string `json:"deploymentId"`
State CodeDeployDeploymentState `json:"state"`
DeploymentGroup string `json:"deploymentGroup"`
}
type CodePipelineActionConfiguration struct {
Configuration CodePipelineConfiguration `json:"configuration"`
}
CodePipelineActionConfiguration represents an Action Configuration
type CodePipelineActionState string
const ( CodePipelineActionStateStarted CodePipelineActionState = "STARTED" CodePipelineActionStateSucceeded CodePipelineActionState = "SUCCEEDED" CodePipelineActionStateFailed CodePipelineActionState = "FAILED" CodePipelineActionStateCanceled CodePipelineActionState = "CANCELED" )
type CodePipelineArtifactCredentials struct {
SecretAccessKey string `json:"secretAccessKey"`
SessionToken string `json:"sessionToken"`
AccessKeyID string `json:"accessKeyId"`
}
CodePipelineArtifactCredentials represents CodePipeline artifact credentials
type CodePipelineCloudWatchEvent struct {
Version string `json:"version"`
ID string `json:"id"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
AccountID string `json:"account"`
Time time.Time `json:"time"`
Region string `json:"region"`
Resources []string `json:"resources"`
Detail CodePipelineEventDetail `json:"detail"`
}
type CodePipelineConfiguration struct {
FunctionName string `json:"FunctionName"`
UserParameters string `json:"UserParameters"`
}
CodePipelineConfiguration represents a configuration for an Action Configuration
type CodePipelineData struct {
ActionConfiguration CodePipelineActionConfiguration `json:"actionConfiguration"`
InputArtifacts []CodePipelineInputArtifact `json:"inputArtifacts"`
OutPutArtifacts []CodePipelineOutputArtifact `json:"outputArtifacts"`
ArtifactCredentials CodePipelineArtifactCredentials `json:"artifactCredentials"`
ContinuationToken string `json:"continuationToken"`
}
CodePipelineData represents a job from an AWS CodePipeline event
type CodePipelineEventBridgeEvent = CodePipelineCloudWatchEvent
type CodePipelineEventDetail struct {
Pipeline string `json:"pipeline"`
Version int64 `json:"version"`
ExecutionID string `json:"execution-id"`
Stage string `json:"stage"`
Action string `json:"action"`
State CodePipelineState `json:"state"`
Region string `json:"region"`
Type CodePipelineEventDetailType `json:"type,omitempty"`
ExecutionResult CodePipelineEventDetailExecutionResult `json:"execution-result,omitempty"`
}
type CodePipelineEventDetailExecutionResult struct {
ExternalExecutionURL string `json:"external-execution-url"`
ExternalExecutionSummary string `json:"external-execution-summary"`
ExternalExecutionID string `json:"external-execution-id"`
ErrorCode string `json:"error-code,omitempty"`
}
type CodePipelineEventDetailType struct {
Owner string `json:"owner"`
Category string `json:"category"`
Provider string `json:"provider"`
Version int64 `json:"version"`
}
type CodePipelineInputArtifact struct {
Location CodePipelineInputLocation `json:"location"`
Revision *string `json:"revision"`
Name string `json:"name"`
}
CodePipelineInputArtifact represents an input artifact
type CodePipelineInputLocation struct {
S3Location CodePipelineS3Location `json:"s3Location"`
LocationType string `json:"type"`
}
CodePipelineInputLocation represents a input location
type CodePipelineJob struct {
ID string `json:"id"`
AccountID string `json:"accountId"`
Data CodePipelineData `json:"data"`
}
CodePipelineJob represents a job from an AWS CodePipeline event
type CodePipelineJobEvent struct {
CodePipelineJob CodePipelineJob `json:"CodePipeline.job"`
}
CodePipelineJobEvent contains data from an event sent from AWS CodePipeline
type CodePipelineOutputArtifact struct {
Location CodePipelineInputLocation `json:"location"`
Revision *string `json:"revision"`
Name string `json:"name"`
}
CodePipelineOutputArtifact represents an output artifact
type CodePipelineOutputLocation struct {
S3Location CodePipelineS3Location `json:"s3Location"`
LocationType string `json:"type"`
}
CodePipelineOutputLocation represents a output location
type CodePipelineS3Location struct {
BucketName string `json:"bucketName"`
ObjectKey string `json:"objectKey"`
}
CodePipelineS3Location represents an s3 input location
type CodePipelineStageState string
const ( CodePipelineStageStateStarted CodePipelineStageState = "STARTED" CodePipelineStageStateSucceeded CodePipelineStageState = "SUCCEEDED" CodePipelineStageStateResumed CodePipelineStageState = "RESUMED" CodePipelineStageStateFailed CodePipelineStageState = "FAILED" CodePipelineStageStateCanceled CodePipelineStageState = "CANCELED" )
const ( CodePipelineStateStarted CodePipelineState = "STARTED" CodePipelineStateSucceeded CodePipelineState = "SUCCEEDED" CodePipelineStateResumed CodePipelineState = "RESUMED" CodePipelineStateFailed CodePipelineState = "FAILED" CodePipelineStateCanceled CodePipelineState = "CANCELED" CodePipelineStateSuperseded CodePipelineState = "SUPERSEDED" )
type CognitoDatasetRecord struct {
NewValue string `json:"newValue"`
OldValue string `json:"oldValue"`
Op string `json:"op"`
}
CognitoDatasetRecord represents a record from an Amazon Cognito Sync event
type CognitoEvent struct {
DatasetName string `json:"datasetName"`
DatasetRecords map[string]CognitoDatasetRecord `json:"datasetRecords"`
EventType string `json:"eventType"`
IdentityID string `json:"identityId"`
IdentityPoolID string `json:"identityPoolId"`
Region string `json:"region"`
Version int `json:"version"`
}
CognitoEvent contains data from an event sent from Amazon Cognito Sync
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(cognitoEvent *events.CognitoEvent) error {
for datasetName, datasetRecord := range cognitoEvent.DatasetRecords {
fmt.Printf("[%s -- %s] %s -> %s -> %s \n",
cognitoEvent.EventType,
datasetName,
datasetRecord.OldValue,
datasetRecord.Op,
datasetRecord.NewValue)
}
return nil
})
}
type CognitoEventUserPoolsCallerContext struct {
AWSSDKVersion string `json:"awsSdkVersion"`
ClientID string `json:"clientId"`
}
CognitoEventUserPoolsCallerContext contains information about the caller
type CognitoEventUserPoolsChallengeResult struct {
ChallengeName string `json:"challengeName"`
ChallengeResult bool `json:"challengeResult"`
ChallengeMetadata string `json:"challengeMetadata"`
}
CognitoEventUserPoolsChallengeResult represents a challenge that is presented to the user in the authentication process that is underway, along with the corresponding result.
type CognitoEventUserPoolsCreateAuthChallenge struct {
Request CognitoEventUserPoolsCreateAuthChallengeRequest `json:"request"`
Response CognitoEventUserPoolsCreateAuthChallengeResponse `json:"response"`
}
CognitoEventUserPoolsCreateAuthChallenge sent by Amazon Cognito User Pools to create a challenge to present to the user
type CognitoEventUserPoolsCreateAuthChallengeRequest struct {
UserAttributes map[string]string `json:"userAttributes"`
ChallengeName string `json:"challengeName"`
Session []*CognitoEventUserPoolsChallengeResult `json:"session"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsCreateAuthChallengeRequest defines create auth challenge request parameters
type CognitoEventUserPoolsCreateAuthChallengeResponse struct {
PublicChallengeParameters map[string]string `json:"publicChallengeParameters"`
PrivateChallengeParameters map[string]string `json:"privateChallengeParameters"`
ChallengeMetadata string `json:"challengeMetadata"`
}
CognitoEventUserPoolsCreateAuthChallengeResponse defines create auth challenge response rarameters
type CognitoEventUserPoolsCustomMessage struct {
Request CognitoEventUserPoolsCustomMessageRequest `json:"request"`
Response CognitoEventUserPoolsCustomMessageResponse `json:"response"`
}
CognitoEventUserPoolsCustomMessage is sent by Amazon Cognito User Pools before a verification or MFA message is sent, allowing a user to customize the message dynamically.
type CognitoEventUserPoolsCustomMessageRequest struct {
UserAttributes map[string]interface{} `json:"userAttributes"`
CodeParameter string `json:"codeParameter"`
UsernameParameter string `json:"usernameParameter"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsCustomMessageRequest contains the request portion of a CustomMessage event
type CognitoEventUserPoolsCustomMessageResponse struct {
SMSMessage string `json:"smsMessage"`
EmailMessage string `json:"emailMessage"`
EmailSubject string `json:"emailSubject"`
}
CognitoEventUserPoolsCustomMessageResponse contains the response portion of a CustomMessage event
type CognitoEventUserPoolsDefineAuthChallenge struct {
Request CognitoEventUserPoolsDefineAuthChallengeRequest `json:"request"`
Response CognitoEventUserPoolsDefineAuthChallengeResponse `json:"response"`
}
CognitoEventUserPoolsDefineAuthChallenge sent by Amazon Cognito User Pools to initiate custom authentication flow
These Lambda triggers issue and verify their own challenges as part of a user pool custom authentication flow. For setting up custom authentication, see: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(event *events.CognitoEventUserPoolsDefineAuthChallenge) (*events.CognitoEventUserPoolsDefineAuthChallenge, error) {
fmt.Printf("Define Auth Challenge: %+v\n", event)
return event, nil
})
}
type CognitoEventUserPoolsDefineAuthChallengeRequest struct {
UserAttributes map[string]string `json:"userAttributes"`
Session []*CognitoEventUserPoolsChallengeResult `json:"session"`
ClientMetadata map[string]string `json:"clientMetadata"`
UserNotFound bool `json:"userNotFound"`
}
CognitoEventUserPoolsDefineAuthChallengeRequest defines auth challenge request parameters
type CognitoEventUserPoolsDefineAuthChallengeResponse struct {
ChallengeName string `json:"challengeName"`
IssueTokens bool `json:"issueTokens"`
FailAuthentication bool `json:"failAuthentication"`
}
CognitoEventUserPoolsDefineAuthChallengeResponse defines auth challenge response parameters
type CognitoEventUserPoolsHeader struct {
}
CognitoEventUserPoolsHeader contains common data from events sent by Amazon Cognito User Pools
type CognitoEventUserPoolsInboundFederation struct {
Request CognitoEventUserPoolsInboundFederationRequest `json:"request"`
Response CognitoEventUserPoolsInboundFederationResponse `json:"response"`
}
CognitoEventUserPoolsInboundFederation is sent by Amazon Cognito User Pools when a user signs in through a third-party identity provider, allowing a Lambda to inspect and transform federated user attributes.
type CognitoEventUserPoolsInboundFederationAttributes struct {
TokenResponse map[string]string `json:"tokenResponse,omitempty"`
IDToken map[string]string `json:"idToken,omitempty"`
UserInfo map[string]string `json:"userInfo,omitempty"`
SAMLResponse map[string]string `json:"samlResponse,omitempty"`
}
CognitoEventUserPoolsInboundFederationAttributes contains the identity provider attributes
type CognitoEventUserPoolsInboundFederationRequest struct {
ProviderName string `json:"providerName"`
ProviderType CognitoFederationProviderType `json:"providerType"`
Attributes CognitoEventUserPoolsInboundFederationAttributes `json:"attributes"`
}
CognitoEventUserPoolsInboundFederationRequest contains the request portion of an InboundFederation event
type CognitoEventUserPoolsInboundFederationResponse struct {
UserAttributesToMap map[string]string `json:"userAttributesToMap"`
}
CognitoEventUserPoolsInboundFederationResponse contains the response portion of an InboundFederation event
type CognitoEventUserPoolsMigrateUser struct {
CognitoEventUserPoolsMigrateUserRequest `json:"request"`
CognitoEventUserPoolsMigrateUserResponse `json:"response"`
}
CognitoEventUserPoolsMigrateUser is sent by Amazon Cognito User Pools when a user does not exist in the user pool at the time of sign-in with a password, or in the forgot-password flow.
type CognitoEventUserPoolsMigrateUserRequest struct {
Password string `json:"password"`
ValidationData map[string]string `json:"validationData"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsMigrateUserRequest contains the request portion of a MigrateUser event
type CognitoEventUserPoolsMigrateUserResponse struct {
UserAttributes map[string]string `json:"userAttributes"`
FinalUserStatus string `json:"finalUserStatus"`
MessageAction string `json:"messageAction"`
DesiredDeliveryMediums []string `json:"desiredDeliveryMediums"`
ForceAliasCreation bool `json:"forceAliasCreation"`
}
CognitoEventUserPoolsMigrateUserResponse contains the response portion of a MigrateUser event
type CognitoEventUserPoolsPostAuthentication struct {
Request CognitoEventUserPoolsPostAuthenticationRequest `json:"request"`
Response CognitoEventUserPoolsPostAuthenticationResponse `json:"response"`
}
CognitoEventUserPoolsPostAuthentication is sent by Amazon Cognito User Pools after a user is authenticated, allowing the Lambda to add custom logic.
type CognitoEventUserPoolsPostAuthenticationRequest struct {
NewDeviceUsed bool `json:"newDeviceUsed"`
UserAttributes map[string]string `json:"userAttributes"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsPostAuthenticationRequest contains the request portion of a PostAuthentication event
type CognitoEventUserPoolsPostAuthenticationResponse struct {
}
CognitoEventUserPoolsPostAuthenticationResponse contains the response portion of a PostAuthentication event
type CognitoEventUserPoolsPostConfirmation struct {
Request CognitoEventUserPoolsPostConfirmationRequest `json:"request"`
Response CognitoEventUserPoolsPostConfirmationResponse `json:"response"`
}
CognitoEventUserPoolsPostConfirmation is sent by Amazon Cognito User Pools after a user is confirmed, allowing the Lambda to send custom messages or add custom logic.
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(event *events.CognitoEventUserPoolsPostConfirmation) (*events.CognitoEventUserPoolsPostConfirmation, error) {
fmt.Printf("PostConfirmation for user: %s\n", event.UserName)
return event, nil
})
}
type CognitoEventUserPoolsPostConfirmationRequest struct {
UserAttributes map[string]string `json:"userAttributes"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsPostConfirmationRequest contains the request portion of a PostConfirmation event
type CognitoEventUserPoolsPostConfirmationResponse struct {
}
CognitoEventUserPoolsPostConfirmationResponse contains the response portion of a PostConfirmation event
type CognitoEventUserPoolsPreAuthentication struct {
Request CognitoEventUserPoolsPreAuthenticationRequest `json:"request"`
Response CognitoEventUserPoolsPreAuthenticationResponse `json:"response"`
}
CognitoEventUserPoolsPreAuthentication is sent by Amazon Cognito User Pools when a user submits their information to be authenticated, allowing you to perform custom validations to accept or deny the sign in request.
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(event *events.CognitoEventUserPoolsPreAuthentication) (*events.CognitoEventUserPoolsPreAuthentication, error) {
fmt.Printf("PreAuthentication of user: %s\n", event.UserName)
return event, nil
})
}
type CognitoEventUserPoolsPreAuthenticationRequest struct {
UserAttributes map[string]string `json:"userAttributes"`
ValidationData map[string]string `json:"validationData"`
}
CognitoEventUserPoolsPreAuthenticationRequest contains the request portion of a PreAuthentication event
type CognitoEventUserPoolsPreAuthenticationResponse struct {
}
CognitoEventUserPoolsPreAuthenticationResponse contains the response portion of a PreAuthentication event
type CognitoEventUserPoolsPreSignup struct {
Request CognitoEventUserPoolsPreSignupRequest `json:"request"`
Response CognitoEventUserPoolsPreSignupResponse `json:"response"`
}
CognitoEventUserPoolsPreSignup is sent by Amazon Cognito User Pools when a user attempts to register (sign up), allowing a Lambda to perform custom validation to accept or deny the registration request
For setting up Cognito User Pools triggers, see: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(event *events.CognitoEventUserPoolsPreSignup) (*events.CognitoEventUserPoolsPreSignup, error) {
fmt.Printf("PreSignup of user: %s\n", event.UserName)
event.Response.AutoConfirmUser = true
return event, nil
})
}
type CognitoEventUserPoolsPreSignupRequest struct {
UserAttributes map[string]string `json:"userAttributes"`
ValidationData map[string]string `json:"validationData"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsPreSignupRequest contains the request portion of a PreSignup event
type CognitoEventUserPoolsPreSignupResponse struct {
AutoConfirmUser bool `json:"autoConfirmUser"`
AutoVerifyEmail bool `json:"autoVerifyEmail"`
AutoVerifyPhone bool `json:"autoVerifyPhone"`
}
CognitoEventUserPoolsPreSignupResponse contains the response portion of a PreSignup event
type CognitoEventUserPoolsPreTokenGen struct {
Request CognitoEventUserPoolsPreTokenGenRequest `json:"request"`
Response CognitoEventUserPoolsPreTokenGenResponse `json:"response"`
}
CognitoEventUserPoolsPreTokenGen is sent by Amazon Cognito User Pools when a user attempts to retrieve credentials, allowing a Lambda to perform insert, suppress or override claims
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(event *events.CognitoEventUserPoolsPreTokenGen) (*events.CognitoEventUserPoolsPreTokenGen, error) {
fmt.Printf("PreTokenGen of user: %s\n", event.UserName)
event.Response.ClaimsOverrideDetails.ClaimsToSuppress = []string{"family_name"}
return event, nil
})
}
type CognitoEventUserPoolsPreTokenGenRequest struct {
UserAttributes map[string]string `json:"userAttributes"`
GroupConfiguration GroupConfiguration `json:"groupConfiguration"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsPreTokenGenRequest contains request portion of PreTokenGen event
type CognitoEventUserPoolsPreTokenGenRequestV2_0 struct {
UserAttributes map[string]string `json:"userAttributes"`
GroupConfiguration GroupConfigurationV2_0 `json:"groupConfiguration"`
ClientMetadata map[string]string `json:"clientMetadata,omitempty"`
Scopes []string `json:"scopes"`
}
CognitoEventUserPoolsPreTokenGenRequestV2_0 contains request portion of V2 PreTokenGen event
type CognitoEventUserPoolsPreTokenGenResponse struct {
ClaimsOverrideDetails ClaimsOverrideDetails `json:"claimsOverrideDetails"`
}
CognitoEventUserPoolsPreTokenGenResponse contains the response portion of a PreTokenGen event
type CognitoEventUserPoolsPreTokenGenResponseV2_0 struct {
ClaimsAndScopeOverrideDetails ClaimsAndScopeOverrideDetailsV2_0 `json:"claimsAndScopeOverrideDetails"`
}
CognitoEventUserPoolsPreTokenGenResponseV2_0 contains the response portion of a V2 PreTokenGen event
type CognitoEventUserPoolsPreTokenGenV2 struct {
Request CognitoEventUserPoolsPreTokenGenV2Request `json:"request"`
Response CognitoEventUserPoolsPreTokenGenV2Response `json:"response"`
}
CognitoEventUserPoolsPreTokenGenV2 is sent by Amazon Cognito User Pools when a user attempts to retrieve credentials, allowing a Lambda to perform insert, suppress or override claims and scopes
Deprecated: Use CognitoEventUserPoolsPreTokenGenV2_0 instead. This struct incorrectly restricts the ClaimsToAddOrOverride values as strings, but Cogntio supports any type.
type CognitoEventUserPoolsPreTokenGenV2Request struct {
UserAttributes map[string]string `json:"userAttributes"`
GroupConfiguration GroupConfiguration `json:"groupConfiguration"`
ClientMetadata map[string]string `json:"clientMetadata,omitempty"`
Scopes []string `json:"scopes"`
}
CognitoEventUserPoolsPreTokenGenV2Request contains request portion of V2 PreTokenGen event
Deprecated: Use CognitoEventUserPoolsPreTokenGenRequestV2_0 instead
type CognitoEventUserPoolsPreTokenGenV2Response struct {
ClaimsAndScopeOverrideDetails ClaimsAndScopeOverrideDetails `json:"claimsAndScopeOverrideDetails"`
}
CognitoEventUserPoolsPreTokenGenV2Response contains the response portion of a V2 PreTokenGen event
Deprecated: Use CognitoEventUserPoolsPreTokenGenResponseV2_0 instead
type CognitoEventUserPoolsPreTokenGenV2_0 struct {
Request CognitoEventUserPoolsPreTokenGenRequestV2_0 `json:"request"`
Response CognitoEventUserPoolsPreTokenGenResponseV2_0 `json:"response"`
}
CognitoEventUserPoolsPreTokenGenV2_0 is sent by Amazon Cognito User Pools when a user attempts to retrieve credentials, allowing a Lambda to perform insert, suppress or override claims and scopes
type CognitoEventUserPoolsVerifyAuthChallenge struct {
Request CognitoEventUserPoolsVerifyAuthChallengeRequest `json:"request"`
Response CognitoEventUserPoolsVerifyAuthChallengeResponse `json:"response"`
}
CognitoEventUserPoolsVerifyAuthChallenge sent by Amazon Cognito User Pools to verify if the response from the end user for a custom Auth Challenge is valid or not
type CognitoEventUserPoolsVerifyAuthChallengeRequest struct {
UserAttributes map[string]string `json:"userAttributes"`
PrivateChallengeParameters map[string]string `json:"privateChallengeParameters"`
ChallengeAnswer interface{} `json:"challengeAnswer"`
ClientMetadata map[string]string `json:"clientMetadata"`
}
CognitoEventUserPoolsVerifyAuthChallengeRequest defines verify auth challenge request parameters
type CognitoEventUserPoolsVerifyAuthChallengeResponse struct {
AnswerCorrect bool `json:"answerCorrect"`
}
CognitoEventUserPoolsVerifyAuthChallengeResponse defines verify auth challenge response parameters
type CognitoFederationProviderType string
CognitoFederationProviderType is the type of the external identity provider.
const ( CognitoFederationProviderTypeOIDC CognitoFederationProviderType = "OIDC" CognitoFederationProviderTypeSAML CognitoFederationProviderType = "SAML" CognitoFederationProviderTypeFacebook CognitoFederationProviderType = "Facebook" CognitoFederationProviderTypeGoogle CognitoFederationProviderType = "Google" CognitoFederationProviderTypeSignInWithApple CognitoFederationProviderType = "SignInWithApple" CognitoFederationProviderTypeLoginWithAmazon CognitoFederationProviderType = "LoginWithAmazon" )
type ConfigEvent struct {
AccountID string `json:"accountId"`
ConfigRuleArn string `json:"configRuleArn"`
ConfigRuleID string `json:"configRuleId"`
ConfigRuleName string `json:"configRuleName"`
EventLeftScope bool `json:"eventLeftScope"`
ExecutionRoleArn string `json:"executionRoleArn"`
InvokingEvent string `json:"invokingEvent"`
ResultToken string `json:"resultToken"`
RuleParameters string `json:"ruleParameters"`
Version string `json:"version"`
}
ConfigEvent contains data from an event sent from AWS Config
type ConnectContactData struct {
Attributes map[string]string `json:"Attributes"`
Channel string `json:"Channel"`
ContactID string `json:"ContactId"`
CustomerEndpoint ConnectEndpoint `json:"CustomerEndpoint"`
InitialContactID string `json:"InitialContactId"`
InitiationMethod string `json:"InitiationMethod"`
PreviousContactID string `json:"PreviousContactId"`
Queue ConnectQueue `json:"Queue"`
SystemEndpoint ConnectEndpoint `json:"SystemEndpoint"`
InstanceARN string `json:"InstanceARN"`
}
ConnectContactData holds all of the contact information for the user that invoked the Connect event.
type ConnectDetails struct {
ContactData ConnectContactData `json:"ContactData"`
Parameters map[string]string `json:"Parameters"`
}
ConnectDetails holds the details of a Connect event
ConnectEndpoint represents routing information.
type ConnectEvent struct {
Details ConnectDetails `json:"Details"`
Name string `json:"Name"`
}
ConnectEvent contains the data structure for a Connect event.
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, connectEvent *events.ConnectEvent) (*events.ConnectResponse, error) {
fmt.Printf("Processing Connect event with ContactID %s.\n", connectEvent.Details.ContactData.ContactID)
fmt.Printf("Invoked with %d parameters\n", len(connectEvent.Details.Parameters))
for k, v := range connectEvent.Details.Parameters {
fmt.Printf("%s : %s\n", k, v)
}
resp := &events.ConnectResponse{
"Result": "Success",
"NewAttribute": "NewValue",
}
return resp, nil
})
}
ConnectQueue represents a queue object.
ConnectResponse is the structure that Connect expects to get back from Lambda. These return values can be used in Connect to perform further routing decisions.
MarshalJSON converts a given DurationMinutes to json
UnmarshalJSON converts a given json to a DurationMinutes
MarshalJSON converts a given DurationSeconds to json
UnmarshalJSON converts a given json to a DurationSeconds
type DynamoDBAttributeValue struct {
}
DynamoDBAttributeValue provides convenient access for a value stored in DynamoDB. For more information, please see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValue.html
func NewBinaryAttribute(value []byte) DynamoDBAttributeValue
NewBinaryAttribute creates an DynamoDBAttributeValue containing a Binary
func NewBinarySetAttribute(value [][]byte) DynamoDBAttributeValue
NewBinarySetAttribute creates an DynamoDBAttributeValue containing a BinarySet
func NewBooleanAttribute(value bool) DynamoDBAttributeValue
NewBooleanAttribute creates an DynamoDBAttributeValue containing a Boolean
func NewListAttribute(value []DynamoDBAttributeValue) DynamoDBAttributeValue
NewListAttribute creates an DynamoDBAttributeValue containing a List
NewMapAttribute creates an DynamoDBAttributeValue containing a Map
func NewNullAttribute() DynamoDBAttributeValue
NewNullAttribute creates an DynamoDBAttributeValue containing a Null
NewNumberAttribute creates an DynamoDBAttributeValue containing a Number
func NewNumberSetAttribute(value []string) DynamoDBAttributeValue
NewNumberSetAttribute creates an DynamoDBAttributeValue containing a NumberSet
NewStringAttribute creates an DynamoDBAttributeValue containing a String
func NewStringSetAttribute(value []string) DynamoDBAttributeValue
NewStringSetAttribute creates an DynamoDBAttributeValue containing a StringSet
Binary provides access to an attribute of type Binary. Method panics if the attribute is not of type Binary.
func (av DynamoDBAttributeValue) BinarySet() [][]byte
BinarySet provides access to an attribute of type Binary Set. Method panics if the attribute is not of type BinarySet.
Boolean provides access to an attribute of type Boolean. Method panics if the attribute is not of type Boolean.
func (av DynamoDBAttributeValue) DataType() DynamoDBDataType
DataType provides access to the DynamoDB type of the attribute
Float provides access to an attribute of type Number. DynamoDB sends the values as strings. For convenience this method provides conversion to float64. The returned value is the nearest floating point number rounded using IEEE754 unbiased rounding. If the number is more than 1/2 ULP away from the largest floating point number of the given size, the value returned is ±Inf, err.Err = ErrRange. Method panics if the attribute is not of type Number.
Int64 provides access to an attribute of type Number. DynamoDB sends the values as strings. For convenience this method provides conversion to int. Method panics if the attribute is not of type Number.
Integer provides access to an attribute of type Number. DynamoDB sends the values as strings. For convenience this method provides conversion to int. If the value cannot be represented by a signed integer, err.Err = ErrRange and the returned value is the maximum magnitude integer of an int64 of the appropriate sign. Method panics if the attribute is not of type Number.
IsNull returns true if the attribute is of type Null.
List provides access to an attribute of type List. Each element of the list is an DynamoDBAttributeValue itself. Method panics if the attribute is not of type List.
Map provides access to an attribute of type Map. They Keys are strings and the values are DynamoDBAttributeValue instances. Method panics if the attribute is not of type Map.
MarshalJSON implements custom marshaling to be used by the standard json/encoding package
Number provides access to an attribute of type Number. DynamoDB sends the values as strings. For convenience please see also the methods Integer() and Float(). Method panics if the attribute is not of type Number.
NumberSet provides access to an attribute of type Number Set. DynamoDB sends the numbers as strings. Method panics if the attribute is not of type Number.
String provides access to an attribute of type String. Method panics if the attribute is not of type String.
StringSet provides access to an attribute of type String Set. Method panics if the attribute is not of type String Set.
UnmarshalJSON unmarshals a JSON description of this DynamoDBAttributeValue
type DynamoDBBatchItemFailure struct {
ItemIdentifier string `json:"itemIdentifier"`
}
DynamoDBBatchItemFailure is the individual record which failed processing.
type DynamoDBDataType int
DynamoDBDataType specifies the type supported natively by DynamoDB for an attribute
const ( DataTypeBinary DynamoDBDataType = iota DataTypeBoolean DataTypeBinarySet DataTypeList DataTypeMap DataTypeNumber DataTypeNumberSet DataTypeNull DataTypeString DataTypeStringSet )
type DynamoDBEvent struct {
Records []DynamoDBEventRecord `json:"Records"`
}
The DynamoDBEvent stream event handled to Lambda http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-ddb-update
Stream notifications are delivered to the Lambda handler whenever data in the DynamoDB table is modified. Depending on the Stream settings, a StreamRecord may contain:
- Keys: key attributes of the modified item
- NewImage: the entire item, as it appears after it was modified
- OldImage: the entire item, as it appeared before it was modified
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, e *events.DynamoDBEvent) {
for _, record := range e.Records {
fmt.Printf("Processing request data for event ID %s, type %s.\n", record.EventID, record.EventName)
for name, value := range record.Change.NewImage {
if value.DataType() == events.DataTypeString {
fmt.Printf("Attribute name: %s, value: %s\n", name, value.String())
}
}
}
})
}
type DynamoDBEventRecord struct {
AWSRegion string `json:"awsRegion"`
Change DynamoDBStreamRecord `json:"dynamodb"`
EventID string `json:"eventID"`
EventName string `json:"eventName"`
EventSource string `json:"eventSource"`
EventVersion string `json:"eventVersion"`
EventSourceArn string `json:"eventSourceARN"`
UserIdentity *DynamoDBUserIdentity `json:"userIdentity,omitempty"`
}
DynamoDBEventRecord stores information about each record of a DynamoDB stream event
type DynamoDBEventResponse struct {
BatchItemFailures []DynamoDBBatchItemFailure `json:"batchItemFailures"`
}
DynamoDBEventResponse is the outer structure to report batch item failures for DynamoDBEvent.
const ( DynamoDBKeyTypeHash DynamoDBKeyType = "HASH" DynamoDBKeyTypeRange DynamoDBKeyType = "RANGE" )
type DynamoDBOperationType string
const ( DynamoDBOperationTypeInsert DynamoDBOperationType = "INSERT" DynamoDBOperationTypeModify DynamoDBOperationType = "MODIFY" DynamoDBOperationTypeRemove DynamoDBOperationType = "REMOVE" )
type DynamoDBSharedIteratorType string
const ( DynamoDBShardIteratorTypeTrimHorizon DynamoDBSharedIteratorType = "TRIM_HORIZON" DynamoDBShardIteratorTypeLatest DynamoDBSharedIteratorType = "LATEST" DynamoDBShardIteratorTypeAtSequenceNumber DynamoDBSharedIteratorType = "AT_SEQUENCE_NUMBER" DynamoDBShardIteratorTypeAfterSequenceNumber DynamoDBSharedIteratorType = "AFTER_SEQUENCE_NUMBER" )
type DynamoDBStreamRecord struct {
ApproximateCreationDateTime SecondsEpochTime `json:"ApproximateCreationDateTime,omitempty"`
Keys map[string]DynamoDBAttributeValue `json:"Keys,omitempty"`
NewImage map[string]DynamoDBAttributeValue `json:"NewImage,omitempty"`
OldImage map[string]DynamoDBAttributeValue `json:"OldImage,omitempty"`
SequenceNumber string `json:"SequenceNumber"`
SizeBytes int64 `json:"SizeBytes"`
StreamViewType string `json:"StreamViewType"`
}
DynamoDBStreamRecord represents a description of a single data modification that was performed on an item in a DynamoDB table.
type DynamoDBStreamStatus string
const ( DynamoDBStreamStatusEnabling DynamoDBStreamStatus = "ENABLING" DynamoDBStreamStatusEnabled DynamoDBStreamStatus = "ENABLED" DynamoDBStreamStatusDisabling DynamoDBStreamStatus = "DISABLING" DynamoDBStreamStatusDisabled DynamoDBStreamStatus = "DISABLED" )
type DynamoDBStreamViewType string
const ( DynamoDBStreamViewTypeNewImage DynamoDBStreamViewType = "NEW_IMAGE" DynamoDBStreamViewTypeOldImage DynamoDBStreamViewType = "OLD_IMAGE" DynamoDBStreamViewTypeNewAndOldImages DynamoDBStreamViewType = "NEW_AND_OLD_IMAGES" DynamoDBStreamViewTypeKeysOnly DynamoDBStreamViewType = "KEYS_ONLY" )
type DynamoDBTimeWindowEventResponse struct {
TimeWindowEventResponseProperties
BatchItemFailures []DynamoDBBatchItemFailure `json:"batchItemFailures"`
}
DynamoDBTimeWindowEventResponse is the outer structure to report batch item failures for DynamoDBTimeWindowEvent.
type DynamoDBUserIdentity struct {
Type string `json:"type"`
PrincipalID string `json:"principalId"`
}
type ECRImageActionEvent struct {
Version string `json:"version"`
ID string `json:"id"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
Account string `json:"account"`
Time time.Time `json:"time"`
Region string `json:"region"`
Resources []string `json:"resources"`
Detail ECRImageActionEventDetailType `json:"detail"`
}
type ECRImageActionEventDetailType struct {
Result string `json:"result"`
RepositoryName string `json:"repository-name"`
ImageDigest string `json:"image-digest"`
ActionType string `json:"action-type"`
ImageTag string `json:"image-tag"`
}
type ECRScanEvent struct {
Version string `json:"version"`
ID string `json:"id"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
Time string `json:"time"`
Region string `json:"region"`
Resources []string `json:"resources"`
Account string `json:"account"`
Detail ECRScanEventDetailType `json:"detail"`
}
type ECRScanEventDetailType struct {
ScanStatus string `json:"scan-status"`
RepositoryName string `json:"repository-name"`
FindingSeverityCounts ECRScanEventFindingSeverityCounts `json:"finding-severity-counts"`
ImageDigest string `json:"image-digest"`
ImageTags []string `json:"image-tags"`
}
type ECRScanEventFindingSeverityCounts struct {
Critical int64 `json:"CRITICAL"`
High int64 `json:"HIGH"`
Medium int64 `json:"MEDIUM"`
Low int64 `json:"LOW"`
Informational int64 `json:"INFORMATIONAL"`
Undefined int64 `json:"UNDEFINED"`
}
type ECSContainerInstanceEvent struct {
Version string `json:"version"`
ID string `json:"id"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
Account string `json:"account"`
Time time.Time `json:"time"`
Region string `json:"region"`
Resources []string `json:"resources"`
Detail ECSContainerInstanceEventDetailType `json:"detail"`
}
package main
import (
"context"
"encoding/json"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, ecsEvent *events.ECSContainerInstanceEvent) {
outputJSON, _ := json.MarshalIndent(ecsEvent, "", " ")
fmt.Printf("Data = %s", outputJSON)
})
}
type ECSContainerInstanceEventAttribute struct {
Name string `json:"name"`
}
type ECSContainerInstanceEventDetailType struct {
AgentConnected bool `json:"agentConnected"`
Attributes []ECSContainerInstanceEventAttribute `json:"attributes"`
ClusterARN string `json:"clusterArn"`
ContainerInstanceARN string `json:"containerInstanceArn"`
EC2InstanceID string `json:"ec2InstanceId"`
RegisteredResources []ECSContainerInstanceEventResource `json:"registeredResources"`
RemainingResources []ECSContainerInstanceEventResource `json:"remainingResources"`
Status string `json:"status"`
Version int `json:"version"`
VersionInfo ECSContainerInstanceEventVersionInfo `json:"versionInfo"`
UpdatedAt time.Time `json:"updatedAt"`
}
type ECSContainerInstanceEventResource struct {
Name string `json:"name"`
Type string `json:"type"`
IntegerValue int `json:"integerValue,omitempty"`
StringSetValue []*string `json:"stringSetValue,omitempty"`
}
MarshalJSON implements custom marshaling to marshal the struct into JSON format while preserving an empty string slice in `StringSetValue` field.
type ECSContainerInstanceEventVersionInfo struct {
AgentHash string `json:"agentHash"`
AgentVersion string `json:"agentVersion"`
DockerVersion string `json:"dockerVersion"`
}
type ELBContext struct {
TargetGroupArn string `json:"targetGroupArn"`
}
ELBContext contains the information to identify the ARN invoking the lambda
type EventBridgeEvent = CloudWatchEvent
type GroupConfiguration struct {
GroupsToOverride []string `json:"groupsToOverride"`
IAMRolesToOverride []string `json:"iamRolesToOverride"`
PreferredRole *string `json:"preferredRole"`
}
GroupConfiguration allows lambda to override groups, roles and set a preferred role
type GroupConfigurationV2_0 struct {
GroupsToOverride []string `json:"groupsToOverride"`
IAMRolesToOverride []string `json:"iamRolesToOverride"`
PreferredRole *string `json:"preferredRole"`
}
GroupConfigurationV2_0 allows lambda to override groups, roles and set a preferred role
type IAMPolicyDocument struct {
Version string
Statement []IAMPolicyStatement
}
IAMPolicyDocument represents an IAM policy document.
IAMPolicyStatement represents one statement from IAM policy with action, effect and resource.
type IDTokenGeneration struct {
ClaimsToAddOrOverride map[string]string `json:"claimsToAddOrOverride"`
ClaimsToSuppress []string `json:"claimsToSuppress"`
}
IDTokenGeneration allows lambda to modify the ID token
type IDTokenGenerationV2_0 struct {
ClaimsToAddOrOverride map[string]interface{} `json:"claimsToAddOrOverride"`
ClaimsToSuppress []string `json:"claimsToSuppress"`
}
IDTokenGenerationV2_0 allows lambda to modify the ID token
type IncompatibleDynamoDBTypeError struct {
Requested DynamoDBDataType
Actual DynamoDBDataType
}
IncompatibleDynamoDBTypeError is the error passed in a panic when calling an accessor for an incompatible type
type IoTButtonEvent struct {
SerialNumber string `json:"serialNumber"`
ClickType string `json:"clickType"`
BatteryVoltage string `json:"batteryVoltage"`
}
type IoTCoreConnectionMetadata struct {
ID string `json:"id"`
}
type IoTCoreHTTPContext struct {
QueryString string `json:"queryString"`
}
type IoTCoreMQTTContext struct {
ClientID string `json:"clientId"`
Password []byte `json:"password"`
Username string `json:"username"`
}
type IoTCoreProtocolData struct {
TLS *IoTCoreTLSContext `json:"tls,omitempty"`
HTTP *IoTCoreHTTPContext `json:"http,omitempty"`
MQTT *IoTCoreMQTTContext `json:"mqtt,omitempty"`
}
type IoTCoreTLSContext struct {
ServerName string `json:"serverName"`
}
type IoTCustomAuthorizerRequest struct {
HTTPContext *IoTHTTPContext `json:"httpContext,omitempty"`
MQTTContext *IoTMQTTContext `json:"mqttContext,omitempty"`
TLSContext *IoTTLSContext `json:"tlsContext,omitempty"`
AuthorizationToken string `json:"token"`
TokenSignature string `json:"tokenSignature"`
}
IoTCustomAuthorizerRequest contains data coming in to a custom IoT device gateway authorizer function. Deprecated: Use IoTCoreCustomAuthorizerRequest instead. IoTCustomAuthorizerRequest does not correctly model the request schema
type IoTCustomAuthorizerResponse struct {
IsAuthenticated bool `json:"isAuthenticated"`
PrincipalID string `json:"principalId"`
DisconnectAfterInSeconds int32 `json:"disconnectAfterInSeconds"`
RefreshAfterInSeconds int32 `json:"refreshAfterInSeconds"`
PolicyDocuments []string `json:"policyDocuments"`
}
IoTCustomAuthorizerResponse represents the expected format of an IoT device gateway authorization response. Deprecated: Use IoTCoreCustomAuthorizerResponse. IoTCustomAuthorizerResponse does not correctly model the response schema.
type IoTHTTPContext IoTCoreHTTPContext
Deprecated: Use IoTCoreHTTPContext
type IoTMQTTContext IoTCoreMQTTContext
Deprecated: Use IoTCoreMQTTContext
type IoTOneClickButtonClicked struct {
ClickType string `json:"clickType"`
ReportedTime string `json:"reportedTime"`
}
type IoTOneClickDeviceEvent struct {
ButtonClicked IoTOneClickButtonClicked `json:"buttonClicked"`
}
type IoTOneClickDeviceInfo struct {
Attributes map[string]string `json:"attributes"`
Type string `json:"type"`
DeviceID string `json:"deviceId"`
RemainingLife float64 `json:"remainingLife"`
}
type IoTOneClickEvent struct {
DeviceEvent IoTOneClickDeviceEvent `json:"deviceEvent"`
DeviceInfo IoTOneClickDeviceInfo `json:"deviceInfo"`
PlacementInfo IoTOneClickPlacementInfo `json:"placementInfo"`
}
IoTOneClickEvent represents a click event published by clicking button type device.
type IoTOneClickPlacementInfo struct {
ProjectName string `json:"projectName"`
PlacementName string `json:"placementName"`
Attributes map[string]string `json:"attributes"`
Devices map[string]string `json:"devices"`
}
type IoTTLSContext IoTCoreTLSContext
Deprecated: Use IotCoreTLSContext
type JSONNumberBytes []byte
JSONNumberBytes represents array of bytes in Headers field.
MarshalJSON converts byte array into array of signed integers.
UnmarshalJSON converts a given json with potential negative values into byte array.
type KafkaEvent struct {
EventSource string `json:"eventSource"`
EventSourceARN string `json:"eventSourceArn"`
Records map[string][]KafkaRecord `json:"records"`
BootstrapServers string `json:"bootstrapServers"`
}
type KafkaRecord struct {
Topic string `json:"topic"`
Partition int64 `json:"partition"`
Offset int64 `json:"offset"`
Timestamp MilliSecondsEpochTime `json:"timestamp"`
TimestampType string `json:"timestampType"`
Key string `json:"key,omitempty"`
Value string `json:"value,omitempty"`
}
type KinesisAnalyticsOutputDeliveryEvent struct {
InvocationID string `json:"invocationId"`
ApplicationARN string `json:"applicationArn"`
Records []KinesisAnalyticsOutputDeliveryEventRecord `json:"records"`
}
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, kinesisAnalyticsEvent *events.KinesisAnalyticsOutputDeliveryEvent) (*events.KinesisAnalyticsOutputDeliveryResponse, error) {
responses := &events.KinesisAnalyticsOutputDeliveryResponse{}
responses.Records = make([]events.KinesisAnalyticsOutputDeliveryResponseRecord, len(kinesisAnalyticsEvent.Records))
for i, record := range kinesisAnalyticsEvent.Records {
responses.Records[i] = events.KinesisAnalyticsOutputDeliveryResponseRecord{
RecordID: record.RecordID,
Result: events.KinesisAnalyticsOutputDeliveryOK,
}
dataBytes := record.Data
dataText := string(dataBytes)
fmt.Printf("%s Data = %s \n", record.RecordID, dataText)
}
return responses, nil
})
}
type KinesisAnalyticsOutputDeliveryEventRecord struct {
RecordID string `json:"recordId"`
Data []byte `json:"data"`
}
type KinesisAnalyticsOutputDeliveryResponse struct {
Records []KinesisAnalyticsOutputDeliveryResponseRecord `json:"records"`
}
type KinesisAnalyticsOutputDeliveryResponseRecord struct {
RecordID string `json:"recordId"`
Result string `json:"result"`
}
type KinesisBatchItemFailure struct {
ItemIdentifier string `json:"itemIdentifier"`
}
KinesisBatchItemFailure is the individual record which failed processing.
type KinesisEvent struct {
Records []KinesisEventRecord `json:"Records"`
}
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, kinesisEvent *events.KinesisEvent) error {
for _, record := range kinesisEvent.Records {
kinesisRecord := record.Kinesis
dataBytes := kinesisRecord.Data
dataText := string(dataBytes)
fmt.Printf("%s Data = %s \n", record.EventName, dataText)
}
return nil
})
}
type KinesisEventRecord struct {
AwsRegion string `json:"awsRegion"`
EventID string `json:"eventID"`
EventName string `json:"eventName"`
EventSource string `json:"eventSource"`
EventSourceArn string `json:"eventSourceARN"`
EventVersion string `json:"eventVersion"`
InvokeIdentityArn string `json:"invokeIdentityArn"`
Kinesis KinesisRecord `json:"kinesis"`
}
type KinesisEventResponse struct {
BatchItemFailures []KinesisBatchItemFailure `json:"batchItemFailures"`
}
KinesisEventResponse is the outer structure to report batch item failures for KinesisEvent.
type KinesisFirehoseEvent struct {
InvocationID string `json:"invocationId"`
DeliveryStreamArn string `json:"deliveryStreamArn"`
SourceKinesisStreamArn string `json:"sourceKinesisStreamArn"`
Region string `json:"region"`
Records []KinesisFirehoseEventRecord `json:"records"`
}
KinesisFirehoseEvent represents the input event from Amazon Kinesis Firehose. It is used as the input parameter.
This example transforms Kinesis Firehose records by converting the data to uppercase.
package main
import (
"fmt"
"strings"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(evnt *events.KinesisFirehoseEvent) (*events.KinesisFirehoseResponse, error) {
fmt.Printf("InvocationID: %s\n", evnt.InvocationID)
fmt.Printf("DeliveryStreamArn: %s\n", evnt.DeliveryStreamArn)
fmt.Printf("Region: %s\n", evnt.Region)
response := &events.KinesisFirehoseResponse{}
for _, record := range evnt.Records {
fmt.Printf("RecordID: %s\n", record.RecordID)
fmt.Printf("ApproximateArrivalTimestamp: %s\n", record.ApproximateArrivalTimestamp)
var transformedRecord events.KinesisFirehoseResponseRecord
transformedRecord.RecordID = record.RecordID
transformedRecord.Result = events.KinesisFirehoseTransformedStateOk
transformedRecord.Data = []byte(strings.ToUpper(string(record.Data)))
response.Records = append(response.Records, transformedRecord)
}
return response, nil
})
}
type KinesisFirehoseEventRecord struct {
RecordID string `json:"recordId"`
ApproximateArrivalTimestamp MilliSecondsEpochTime `json:"approximateArrivalTimestamp"`
Data []byte `json:"data"`
KinesisFirehoseRecordMetadata KinesisFirehoseRecordMetadata `json:"kinesisRecordMetadata"`
}
type KinesisFirehoseOTFOperation string
KinesisFirehoseOTFOperation represents the operation to apply on the record during on-the-fly record routing.
const ( KinesisFirehoseOTFOperationInsert KinesisFirehoseOTFOperation = "insert" KinesisFirehoseOTFOperationUpdate KinesisFirehoseOTFOperation = "update" KinesisFirehoseOTFOperationDelete KinesisFirehoseOTFOperation = "delete" )
type KinesisFirehoseRecordMetadata struct {
ShardID string `json:"shardId"`
PartitionKey string `json:"partitionKey"`
SequenceNumber string `json:"sequenceNumber"`
SubsequenceNumber int64 `json:"subsequenceNumber"`
ApproximateArrivalTimestamp MilliSecondsEpochTime `json:"approximateArrivalTimestamp"`
}
type KinesisFirehoseResponse struct {
Records []KinesisFirehoseResponseRecord `json:"records"`
}
type KinesisFirehoseResponseRecord struct {
RecordID string `json:"recordId"`
Result string `json:"result"`
Data []byte `json:"data"`
Metadata KinesisFirehoseResponseRecordMetadata `json:"metadata"`
}
type KinesisFirehoseResponseRecordMetadata struct {
PartitionKeys map[string]string `json:"partitionKeys"`
OTFMetadata KinesisFirehoseResponseRecordOTFMetadata `json:"otfMetadata"`
}
type KinesisFirehoseResponseRecordOTFMetadata struct {
DestinationDatabaseName string `json:"destinationDatabaseName"`
DestinationTableName string `json:"destinationTableName"`
Operation KinesisFirehoseOTFOperation `json:"operation"`
}
type KinesisRecord struct {
ApproximateArrivalTimestamp SecondsEpochTime `json:"approximateArrivalTimestamp"`
Data []byte `json:"data"`
EncryptionType string `json:"encryptionType,omitempty"`
PartitionKey string `json:"partitionKey"`
SequenceNumber string `json:"sequenceNumber"`
KinesisSchemaVersion string `json:"kinesisSchemaVersion"`
}
type KinesisTimeWindowEventResponse struct {
TimeWindowEventResponseProperties
BatchItemFailures []KinesisBatchItemFailure `json:"batchItemFailures"`
}
KinesisTimeWindowEventResponse is the outer structure to report batch item failures for KinesisTimeWindowEvent.
type LambdaFunctionURLRequest struct {
Version string `json:"version"`
RawPath string `json:"rawPath"`
RawQueryString string `json:"rawQueryString"`
Cookies []string `json:"cookies,omitempty"`
QueryStringParameters map[string]string `json:"queryStringParameters,omitempty"`
RequestContext LambdaFunctionURLRequestContext `json:"requestContext"`
Body string `json:"body,omitempty"`
IsBase64Encoded bool `json:"isBase64Encoded"`
}
LambdaFunctionURLRequest contains data coming from the HTTP request to a Lambda Function URL.
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, request *events.LambdaFunctionURLRequest) (*events.LambdaFunctionURLResponse, error) {
fmt.Printf("Processing request data for request %s.\n", request.RequestContext.RequestID)
fmt.Printf("Body size = %d.\n", len(request.Body))
fmt.Println("Headers:")
for key, value := range request.Headers {
fmt.Printf(" %s: %s\n", key, value)
}
return &events.LambdaFunctionURLResponse{Body: request.Body, StatusCode: 200}, nil
})
}
type LambdaFunctionURLRequestContext struct {
AccountID string `json:"accountId"`
RequestID string `json:"requestId"`
Authorizer *LambdaFunctionURLRequestContextAuthorizerDescription `json:"authorizer,omitempty"`
APIID string `json:"apiId"`
DomainName string `json:"domainName"`
DomainPrefix string `json:"domainPrefix"`
Time string `json:"time"`
TimeEpoch int64 `json:"timeEpoch"`
HTTP LambdaFunctionURLRequestContextHTTPDescription `json:"http"`
}
LambdaFunctionURLRequestContext contains the information to identify the AWS account and resources invoking the Lambda function.
type LambdaFunctionURLRequestContextAuthorizerDescription struct {
IAM *LambdaFunctionURLRequestContextAuthorizerIAMDescription `json:"iam,omitempty"`
}
LambdaFunctionURLRequestContextAuthorizerDescription contains authorizer information for the request context.
type LambdaFunctionURLRequestContextAuthorizerIAMDescription struct {
AccessKey string `json:"accessKey"`
AccountID string `json:"accountId"`
CallerID string `json:"callerId"`
UserARN string `json:"userArn"`
UserID string `json:"userId"`
}
LambdaFunctionURLRequestContextAuthorizerIAMDescription contains IAM information for the request context.
type LambdaFunctionURLRequestContextHTTPDescription struct {
Method string `json:"method"`
Path string `json:"path"`
Protocol string `json:"protocol"`
SourceIP string `json:"sourceIp"`
UserAgent string `json:"userAgent"`
}
LambdaFunctionURLRequestContextHTTPDescription contains HTTP information for the request context.
type LambdaFunctionURLResponse struct {
StatusCode int `json:"statusCode"`
Body string `json:"body"`
IsBase64Encoded bool `json:"isBase64Encoded"`
Cookies []string `json:"cookies"`
}
LambdaFunctionURLResponse configures the HTTP response to be returned by Lambda Function URL for the request.
LambdaFunctionURLStreamingResponse models the response to a Lambda Function URL when InvokeMode is RESPONSE_STREAM. If the InvokeMode of the Function URL is BUFFERED (default), use LambdaFunctionURLResponse instead.
Note: This response type requires compiling with `-tags lambda.norpc`, or choosing the `provided` or `provided.al2` runtime.
package main
import (
"strings"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func() (*events.LambdaFunctionURLStreamingResponse, error) {
return &events.LambdaFunctionURLStreamingResponse{
StatusCode: 200,
Headers: map[string]string{
"Content-Type": "text/html",
},
Body: strings.NewReader("<html><body>Hello World!</body></html>"),
}, nil
})
}
func (*LambdaFunctionURLStreamingResponse) ContentType ¶ added in v1.40.0
type LexAlternativeIntents struct {
Name string `json:"name,omitempty"`
NLUIntentConfidenceScore float64 `json:"nluIntentConfidenceScore,omitempty"`
Slots Slots `json:"slots,omitempty"`
SlotDetails map[string]SlotDetail `json:"slotDetails,omitempty"`
ConfirmationStatus string `json:"confirmationStatus,omitempty"`
}
type LexBot struct {
Name string `json:"name,omitempty"`
Alias string `json:"alias,omitempty"`
Version string `json:"version,omitempty"`
}
type LexCurrentIntent struct {
Name string `json:"name,omitempty"`
NLUIntentConfidenceScore float64 `json:"nluIntentConfidenceScore,omitempty"`
Slots Slots `json:"slots,omitempty"`
SlotDetails map[string]SlotDetail `json:"slotDetails,omitempty"`
ConfirmationStatus string `json:"confirmationStatus,omitempty"`
}
type LexDialogAction struct {
Type string `json:"type,omitempty"`
FulfillmentState string `json:"fulfillmentState,omitempty"`
Message map[string]string `json:"message,omitempty"`
IntentName string `json:"intentName,omitempty"`
Slots Slots `json:"slots,omitempty"`
SlotToElicit string `json:"slotToElicit,omitempty"`
ResponseCard *LexResponseCard `json:"responseCard,omitempty"`
}
type LexEvent struct {
MessageVersion string `json:"messageVersion,omitempty"`
InvocationSource string `json:"invocationSource,omitempty"`
UserID string `json:"userId,omitempty"`
InputTranscript string `json:"inputTranscript,omitempty"`
SessionAttributes SessionAttributes `json:"sessionAttributes,omitempty"`
RequestAttributes map[string]string `json:"requestAttributes,omitempty"`
Bot *LexBot `json:"bot,omitempty"`
OutputDialogMode string `json:"outputDialogMode,omitempty"`
CurrentIntent *LexCurrentIntent `json:"currentIntent,omitempty"`
AlternativeIntents []LexAlternativeIntents `json:"alternativeIntents,omitempty"`
DialogAction *LexDialogAction `json:"dialogAction,omitempty"`
}
func (h *LexEvent) Clear()
type LexResponse struct {
SessionAttributes SessionAttributes `json:"sessionAttributes"`
DialogAction LexDialogAction `json:"dialogAction,omitempty"`
}
type LexResponseCard struct {
Version int64 `json:"version,omitempty"`
ContentType string `json:"contentType,omitempty"`
GenericAttachments []Attachment `json:"genericAttachments,omitempty"`
}
MilliSecondsEpochTime serializes a time.Time in JSON as a UNIX epoch time in milliseconds.
RFC3339EpochTime serializes a time.Time in JSON as an ISO 8601 string.
type RabbitMQBasicProperties struct {
ContentType string `json:"contentType"`
ContentEncoding *string `json:"contentEncoding"`
DeliveryMode uint8 `json:"deliveryMode"`
Priority uint8 `json:"priority"`
CorrelationID *string `json:"correlationId"`
ReplyTo *string `json:"replyTo"`
Expiration string `json:"expiration"`
MessageID *string `json:"messageId"`
Timestamp string `json:"timestamp"`
Type *string `json:"type"`
UserID string `json:"userId"`
AppID *string `json:"appId"`
ClusterID *string `json:"clusterId"`
BodySize uint64 `json:"bodySize"`
}
type RabbitMQEvent struct {
EventSource string `json:"eventSource"`
EventSourceARN string `json:"eventSourceArn"`
MessagesByQueue map[string][]RabbitMQMessage `json:"rmqMessagesByQueue"`
}
type RabbitMQMessage struct {
BasicProperties RabbitMQBasicProperties `json:"basicProperties"`
Data string `json:"data"`
Redelivered bool `json:"redelivered"`
}
type S3BatchJob struct {
ID string `json:"id"`
}
S3BatchJob whichs have the job id
type S3BatchJobEvent struct {
InvocationSchemaVersion string `json:"invocationSchemaVersion"`
InvocationID string `json:"invocationId"`
Job S3BatchJob `json:"job"`
Tasks []S3BatchJobTask `json:"tasks"`
}
S3BatchJobEvent encapsulates the detail of a s3 batch job
type S3BatchJobEventV2 struct {
InvocationSchemaVersion string `json:"invocationSchemaVersion"`
InvocationID string `json:"invocationId"`
Job S3BatchJobV2 `json:"job"`
Tasks []S3BatchJobTaskV2 `json:"tasks"`
}
S3BatchJobEventV2 encapsulates the detail of a s3 batch job
type S3BatchJobResponse struct {
InvocationSchemaVersion string `json:"invocationSchemaVersion"`
TreatMissingKeysAs string `json:"treatMissingKeysAs"`
InvocationID string `json:"invocationId"`
Results []S3BatchJobResult `json:"results"`
}
S3BatchJobResponse is the response of a iven s3 batch job with the results
type S3BatchJobResult struct {
TaskID string `json:"taskId"`
ResultCode string `json:"resultCode"`
ResultString string `json:"resultString"`
}
S3BatchJobResult represents the result of a given task
type S3BatchJobTask struct {
TaskID string `json:"taskId"`
S3Key string `json:"s3Key"`
S3VersionID string `json:"s3VersionId"`
S3BucketARN string `json:"s3BucketArn"`
}
S3BatchJobTask represents one task in the s3 batch job and have all task details
type S3BatchJobTaskV2 struct {
TaskID string `json:"taskId"`
S3Key string `json:"s3Key"`
S3VersionID string `json:"s3VersionId"`
S3Bucket string `json:"s3Bucket"`
}
S3BatchJobTaskV2 represents one task in the s3 batch job and have all task details
type S3BatchJobV2 struct {
ID string `json:"id"`
UserArguments map[string]string `json:"userArguments"`
}
S3BatchJobV2 whichs have the job id
type S3Bucket struct {
Name string `json:"name"`
OwnerIdentity S3UserIdentity `json:"ownerIdentity"`
Arn string `json:"arn"`
}
type S3Entity struct {
SchemaVersion string `json:"s3SchemaVersion"`
ConfigurationID string `json:"configurationId"`
Bucket S3Bucket `json:"bucket"`
Object S3Object `json:"object"`
}
type S3Event struct {
Records []S3EventRecord `json:"Records"`
}
S3Event which wrap an array of S3EventRecord
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, s3Event *events.S3Event) {
for _, record := range s3Event.Records {
s3 := record.S3
fmt.Printf("[%s - %s] Bucket = %s, Key = %s \n", record.EventSource, record.EventTime, s3.Bucket.Name, s3.Object.Key)
}
})
}
type S3EventRecord struct {
EventVersion string `json:"eventVersion"`
EventSource string `json:"eventSource"`
AWSRegion string `json:"awsRegion"`
EventTime time.Time `json:"eventTime"`
EventName string `json:"eventName"`
PrincipalID S3UserIdentity `json:"userIdentity"`
RequestParameters S3RequestParameters `json:"requestParameters"`
ResponseElements map[string]string `json:"responseElements"`
S3 S3Entity `json:"s3"`
GlacierEventData *S3GlacierEventData `json:"glacierEventData,omitempty"`
RestoreEventData *S3RestoreEventData `json:"restoreEventData,omitempty"`
ReplicationEventData *S3ReplicationEventData `json:"replicationEventData,omitempty"`
IntelligentTieringEventData *S3IntelligentTieringEventData `json:"intelligentTieringEventData,omitempty"`
LifecycleEventData *S3LifecycleEventData `json:"lifecycleEventData,omitempty"`
}
S3EventRecord which wrap record data
type S3GlacierEventData struct {
RestoreEventData *S3RestoreEventData `json:"restoreEventData"`
}
type S3IntelligentTieringEventData struct {
DestinationAccessTier string `json:"destinationAccessTier"`
}
type S3LifecycleEventData struct {
TransitionEventData *S3TransitionEventData `json:"transitionEventData"`
}
type S3Object struct {
Key string `json:"key"`
Size int64 `json:"size,omitempty"`
URLDecodedKey string `json:"urlDecodedKey"`
VersionID string `json:"versionId"`
ETag string `json:"eTag"`
Sequencer string `json:"sequencer"`
}
type S3ObjectLambdaConfiguration struct {
AccessPointARN string `json:"accessPointArn"`
SupportingAccessPointARN string `json:"supportingAccessPointArn"`
Payload string `json:"payload"`
}
type S3ObjectLambdaEvent struct {
XAmzRequestID string `json:"xAmzRequestId"`
GetObjectContext *S3ObjectLambdaGetObjectContext `json:"getObjectContext,omitempty"`
ListObjectsContext *S3ObjectLambdaListObjectsContext `json:"listObjectsContext,omitempty"`
ListObjectsV2Context *S3ObjectLambdaListObjectsV2Context `json:"listObjectsV2Context,omitempty"`
HeadObjectContext *S3ObjectLambdaHeadObjectContext `json:"headObjectContext,omitempty"`
Configuration S3ObjectLambdaConfiguration `json:"configuration"`
UserRequest S3ObjectLambdaUserRequest `json:"userRequest"`
UserIdentity S3ObjectLambdaUserIdentity `json:"userIdentity"`
ProtocolVersion string `json:"protocolVersion"`
}
S3 Object Lambda allows you to add your own code to S3 GET requests to modify and process data as it is returned to an application. This example receives S3 Object Lambda event data and returns object metadata.
package main
import (
"context"
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, event *events.S3ObjectLambdaEvent) error {
url := event.GetObjectContext.InputS3URL
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
bodyBytes, err := ioutil.ReadAll(resp.Body)
if err != nil {
return err
}
type Metadata struct {
Length int
Md5 string
}
type TransformedObject struct {
Metadata Metadata
}
transformedObject := TransformedObject{
Metadata: Metadata{
Length: len(bodyBytes),
Md5: toMd5(bodyBytes),
},
}
jsonData, err := json.Marshal(transformedObject)
if err != nil {
return err
}
// To complete the example, use the AWS SDK to write the response:
//
// import (
// "github.com/aws/aws-sdk-go-v2/config"
// "github.com/aws/aws-sdk-go-v2/service/s3"
// )
//
// cfg, err := config.LoadDefaultConfig(context.TODO())
// if err != nil {
// return err
// }
// svc := s3.NewFromConfig(cfg)
// input := &s3.WriteGetObjectResponseInput{
// RequestRoute: &event.GetObjectContext.OutputRoute,
// RequestToken: &event.GetObjectContext.OutputToken,
// Body: strings.NewReader(string(jsonData)),
// }
// res, err := svc.WriteGetObjectResponse(ctx, input)
// if err != nil {
// return err
// }
// fmt.Printf("%v", res)
fmt.Printf("Transformed object metadata: %s\n", jsonData)
return nil
})
}
func toMd5(data []byte) string {
hasher := md5.New()
hasher.Write(data)
hash := hasher.Sum(nil)
return hex.EncodeToString(hash)
}
type S3ObjectLambdaGetObjectContext struct {
InputS3URL string `json:"inputS3Url"`
OutputRoute string `json:"outputRoute"`
OutputToken string `json:"outputToken"`
}
type S3ObjectLambdaHeadObjectContext struct {
InputS3URL string `json:"inputS3Url"`
}
type S3ObjectLambdaListObjectsContext struct {
InputS3URL string `json:"inputS3Url"`
}
type S3ObjectLambdaListObjectsV2Context struct {
InputS3URL string `json:"inputS3Url"`
}
type S3ObjectLambdaSessionContext struct {
Attributes map[string]string `json:"attributes"`
SessionIssuer *S3ObjectLambdaSessionIssuer `json:"sessionIssuer,omitempty"`
}
type S3ObjectLambdaSessionIssuer struct {
Type string `json:"type"`
PrincipalID string `json:"principalId"`
ARN string `json:"arn"`
AccountID string `json:"accountId"`
UserName string `json:"userName"`
}
type S3ObjectLambdaUserIdentity struct {
Type string `json:"type"`
PrincipalID string `json:"principalId"`
ARN string `json:"arn"`
AccountID string `json:"accountId"`
AccessKeyID string `json:"accessKeyId"`
SessionContext *S3ObjectLambdaSessionContext `json:"sessionContext,omitempty"`
}
type S3ObjectLambdaUserRequest struct {
URL string `json:"url"`
}
type S3ReplicationEventData struct {
ReplicationRuleID string `json:"replicationRuleId"`
DestinationBucket string `json:"destinationBucket"`
S3Operation string `json:"s3Operation"`
RequestTime time.Time `json:"requestTime"`
FailureReason string `json:"failureReason"`
}
type S3RequestParameters struct {
SourceIPAddress string `json:"sourceIPAddress"`
}
type S3RestoreEventData struct {
LifecycleRestorationExpiryTime time.Time `json:"lifecycleRestorationExpiryTime"`
LifecycleRestoreStorageClass string `json:"lifecycleRestoreStorageClass"`
}
type S3TestEvent struct {
Service string `json:"Service"`
Bucket string `json:"Bucket"`
Event string `json:"Event"`
Time time.Time `json:"Time"`
RequestID string `json:"RequestId"`
HostID string `json:"HostId"`
}
type S3TransitionEventData struct {
DestinationStorageClass string `json:"destinationStorageClass"`
}
type S3UserIdentity struct {
PrincipalID string `json:"principalId"`
}
type SNSEntity struct {
Signature string `json:"Signature"`
MessageID string `json:"MessageId"`
Type string `json:"Type"`
TopicArn string `json:"TopicArn"`
MessageAttributes map[string]interface{} `json:"MessageAttributes"`
SignatureVersion string `json:"SignatureVersion"`
Timestamp time.Time `json:"Timestamp"`
SigningCertURL string `json:"SigningCertUrl"`
Message string `json:"Message"`
UnsubscribeURL string `json:"UnsubscribeUrl"`
Subject string `json:"Subject"`
}
type SNSEvent struct {
Records []SNSEventRecord `json:"Records"`
}
type SNSEventRecord struct {
EventVersion string `json:"EventVersion"`
EventSubscriptionArn string `json:"EventSubscriptionArn"`
EventSource string `json:"EventSource"`
SNS SNSEntity `json:"Sns"`
}
type SQSBatchItemFailure struct {
ItemIdentifier string `json:"itemIdentifier"`
}
SQSBatchItemFailure is the individual record which failed processing.
type SQSEvent struct {
Records []SQSMessage `json:"Records"`
}
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, sqsEvent *events.SQSEvent) error {
for _, message := range sqsEvent.Records {
fmt.Printf("The message %s for event source %s = %s \n", message.MessageId, message.EventSource, message.Body)
}
return nil
})
}
type SQSEventResponse struct {
BatchItemFailures []SQSBatchItemFailure `json:"batchItemFailures"`
}
SQSEventResponse is the outer structure to report batch item failures for SQSEvent.
type SQSMessage struct {
MessageId string `json:"messageId"`
ReceiptHandle string `json:"receiptHandle"`
Body string `json:"body"`
Md5OfBody string `json:"md5OfBody"`
Md5OfMessageAttributes string `json:"md5OfMessageAttributes"`
Attributes map[string]string `json:"attributes"`
MessageAttributes map[string]SQSMessageAttribute `json:"messageAttributes"`
EventSourceARN string `json:"eventSourceARN"`
EventSource string `json:"eventSource"`
AWSRegion string `json:"awsRegion"`
}
type SQSMessageAttribute struct {
StringValue *string `json:"stringValue,omitempty"`
BinaryValue []byte `json:"binaryValue,omitempty"`
StringListValues []string `json:"stringListValues"`
BinaryListValues [][]byte `json:"binaryListValues"`
DataType string `json:"dataType"`
}
SecondsEpochTime serializes a time.Time in JSON as a UNIX epoch time in seconds
type SecretsManagerSecretRotationEvent struct {
Step string `json:"Step"`
SecretID string `json:"SecretId"`
ClientRequestToken string `json:"ClientRequestToken"`
RotationToken string `json:"RotationToken"`
}
SecretsManagerSecretRotationEvent is the event passed to a Lambda function to handle automatic secret rotation.
https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html#rotate-secrets_how
This Lambda function handles a SecretsManager secret rotation event. The rotation process has four steps: createSecret, setSecret, testSecret, and finishSecret.
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, event *events.SecretsManagerSecretRotationEvent) error {
fmt.Printf("rotating secret %s with token %s\n",
event.SecretID, event.ClientRequestToken)
switch event.Step {
case "createSecret":
// create
case "setSecret":
// set
case "finishSecret":
// finish
case "testSecret":
// test
}
return nil
})
}
type SimpleEmailCommonHeaders struct {
}
type SimpleEmailDisposition struct {
Disposition SimpleEmailDispositionValue `json:"disposition"`
}
SimpleEmailDisposition disposition return for SES to control rule functions
type SimpleEmailDispositionValue string
SimpleEmailDispositionValue enumeration representing the dispostition value for SES
const ( SimpleEmailContinue SimpleEmailDispositionValue = "CONTINUE" SimpleEmailStopRule SimpleEmailDispositionValue = "STOP_RULE" SimpleEmailStopRuleSet SimpleEmailDispositionValue = "STOP_RULE_SET" )
type SimpleEmailEvent struct {
Records []SimpleEmailRecord `json:"Records"`
}
SimpleEmailEvent is the outer structure of an event sent via SES.
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(func(ctx context.Context, sesEvent *events.SimpleEmailEvent) error {
for _, record := range sesEvent.Records {
ses := record.SES
fmt.Printf("[%s - %s] Mail = %+v, Receipt = %+v \n", record.EventVersion, record.EventSource, ses.Mail, ses.Receipt)
}
return nil
})
}
type SimpleEmailHeader struct {
}
type SimpleEmailMessage struct {
Source string `json:"source"`
Timestamp time.Time `json:"timestamp"`
Destination []string `json:"destination"`
MessageID string `json:"messageId"`
}
type SimpleEmailReceipt struct {
Recipients []string `json:"recipients"`
Timestamp time.Time `json:"timestamp"`
SpamVerdict SimpleEmailVerdict `json:"spamVerdict"`
DKIMVerdict SimpleEmailVerdict `json:"dkimVerdict"`
DMARCVerdict SimpleEmailVerdict `json:"dmarcVerdict"`
DMARCPolicy string `json:"dmarcPolicy"`
SPFVerdict SimpleEmailVerdict `json:"spfVerdict"`
VirusVerdict SimpleEmailVerdict `json:"virusVerdict"`
Action SimpleEmailReceiptAction `json:"action"`
ProcessingTimeMillis int64 `json:"processingTimeMillis"`
}
type SimpleEmailReceiptAction struct {
Type string `json:"type"`
TopicARN string `json:"topicArn,omitempty"`
BucketName string `json:"bucketName,omitempty"`
ObjectKey string `json:"objectKey,omitempty"`
SMTPReplyCode string `json:"smtpReplyCode,omitempty"`
StatusCode string `json:"statusCode,omitempty"`
Message string `json:"message,omitempty"`
Sender string `json:"sender,omitempty"`
InvocationType string `json:"invocationType,omitempty"`
FunctionARN string `json:"functionArn,omitempty"`
OrganizationARN string `json:"organizationArn,omitempty"`
}
SimpleEmailReceiptAction is a logical union of fields present in all action Types. For example, the FunctionARN and InvocationType fields are only present for the Lambda Type, and the BucketName and ObjectKey fields are only present for the S3 Type.
type SimpleEmailRecord struct {
EventVersion string `json:"eventVersion"`
EventSource string `json:"eventSource"`
SES SimpleEmailService `json:"ses"`
}
type SimpleEmailService struct {
Mail SimpleEmailMessage `json:"mail"`
Receipt SimpleEmailReceipt `json:"receipt"`
}
type SimpleEmailVerdict struct {
Status string `json:"status"`
}
type SlotDetail struct {
Resolutions []map[string]string `json:"resolutions,omitempty"`
OriginalValue string `json:"originalValue,omitempty"`
}
type UnsupportedDynamoDBTypeError struct {
Type string
}
UnsupportedDynamoDBTypeError is the error returned when trying to unmarshal a DynamoDB Attribute type not recognized by this library