1
+ /* Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. */
2
+
3
+ package com .amazonaws .services .lambda .runtime .events ;
4
+
5
+ import lombok .AllArgsConstructor ;
6
+ import lombok .Builder ;
7
+ import lombok .Data ;
8
+ import lombok .EqualsAndHashCode ;
9
+ import lombok .NoArgsConstructor ;
10
+ import lombok .ToString ;
11
+
12
+ import java .util .Map ;
13
+
14
+ /**
15
+ * Represent the class for the Cognito User Pool Pre Token Generation Lambda Trigger V2
16
+ * <p>
17
+ * See <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html">Pre Token Generation Lambda Trigger</a>
18
+ */
19
+ @ Data
20
+ @ EqualsAndHashCode (callSuper = true )
21
+ @ NoArgsConstructor
22
+ @ ToString (callSuper = true )
23
+ public class CognitoUserPoolPreTokenGenerationEventV2 extends CognitoUserPoolEvent {
24
+ /**
25
+ * The request from the Amazon Cognito service.
26
+ */
27
+ private Request request ;
28
+
29
+ /**
30
+ * The response from your Lambda trigger.
31
+ */
32
+ private Response response ;
33
+
34
+ @ Builder (setterPrefix = "with" )
35
+ public CognitoUserPoolPreTokenGenerationEventV2 (
36
+ String version ,
37
+ String triggerSource ,
38
+ String region ,
39
+ String userPoolId ,
40
+ String userName ,
41
+ CallerContext callerContext ,
42
+ Request request ,
43
+ Response response ) {
44
+ super (version , triggerSource , region , userPoolId , userName , callerContext );
45
+ this .request = request ;
46
+ this .response = response ;
47
+ }
48
+
49
+ @ Data
50
+ @ EqualsAndHashCode (callSuper = true )
51
+ @ NoArgsConstructor
52
+ @ ToString (callSuper = true )
53
+ public static class Request extends CognitoUserPoolEvent .Request {
54
+
55
+ private String [] scopes ;
56
+ private GroupConfiguration groupConfiguration ;
57
+ private Map <String , String > clientMetadata ;
58
+
59
+ @ Builder (setterPrefix = "with" )
60
+ public Request (Map <String , String > userAttributes , String [] scopes , GroupConfiguration groupConfiguration , Map <String , String > clientMetadata ) {
61
+ super (userAttributes );
62
+ this .scopes = scopes ;
63
+ this .groupConfiguration = groupConfiguration ;
64
+ this .clientMetadata = clientMetadata ;
65
+ }
66
+ }
67
+
68
+ @ Data
69
+ @ AllArgsConstructor
70
+ @ Builder (setterPrefix = "with" )
71
+ @ NoArgsConstructor
72
+ public static class GroupConfiguration {
73
+ /**
74
+ * A list of the group names that are associated with the user that the identity token is issued for.
75
+ */
76
+ private String [] groupsToOverride ;
77
+ /**
78
+ * A list of the current IAM roles associated with these groups.
79
+ */
80
+ private String [] iamRolesToOverride ;
81
+ /**
82
+ * Indicates the preferred IAM role.
83
+ */
84
+ private String preferredRole ;
85
+ }
86
+
87
+ @ Data
88
+ @ AllArgsConstructor
89
+ @ Builder (setterPrefix = "with" )
90
+ @ NoArgsConstructor
91
+ public static class Response {
92
+ private ClaimsAndScopeOverrideDetails claimsAndScopeOverrideDetails ;
93
+ }
94
+
95
+ @ Data
96
+ @ AllArgsConstructor
97
+ @ Builder (setterPrefix = "with" )
98
+ @ NoArgsConstructor
99
+ public static class ClaimsAndScopeOverrideDetails {
100
+ private IdTokenGeneration idTokenGeneration ;
101
+ private AccessTokenGeneration accessTokenGeneration ;
102
+ private GroupOverrideDetails groupOverrideDetails ;
103
+ }
104
+
105
+ @ Data
106
+ @ AllArgsConstructor
107
+ @ Builder (setterPrefix = "with" )
108
+ @ NoArgsConstructor
109
+ public static class IdTokenGeneration {
110
+ private Map <String , String > claimsToAddOrOverride ;
111
+ private String [] claimsToSuppress ;
112
+ }
113
+
114
+ @ Data
115
+ @ AllArgsConstructor
116
+ @ Builder (setterPrefix = "with" )
117
+ @ NoArgsConstructor
118
+ public static class AccessTokenGeneration {
119
+ private Map <String , String > claimsToAddOrOverride ;
120
+ private String [] claimsToSuppress ;
121
+ private String [] scopesToAdd ;
122
+ private String [] scopesToSuppress ;
123
+ }
124
+
125
+ @ Data
126
+ @ AllArgsConstructor
127
+ @ Builder (setterPrefix = "with" )
128
+ @ NoArgsConstructor
129
+ public static class GroupOverrideDetails {
130
+ private Map <String , String > groupsToOverride ;
131
+ private Map <String , String > iamRolesToOverride ;
132
+ private String preferredRole ;
133
+ }
134
+ }
0 commit comments