on develop help sign in
1;4402;0c# This is the 1st commit message:

Regenerating gogol-identity-toolkit from latest service definition

commit2c23c17cb4e36bff35def3f44333d98eef56a8b7 authorBrendan Hay <brendan.g.hay@gmail.com> dateTue 25 Oct 2016, 11:37 (10 years ago) parent05f0170
6 files changed+513−29
gen/model/identitytoolkit/v3/identitytoolkit-api.json+115−5 gogol-identity-toolkit/gen/Network/Google/IdentityToolkit.hs+29 gogol-identity-toolkit/gen/Network/Google/IdentityToolkit/Types.hs+33 gogol-identity-toolkit/gen/Network/Google/IdentityToolkit/Types/Product.hs+332−22 gogol-identity-toolkit/gen/Network/Google/Resource/IdentityToolkit/RelyingParty/DownloadAccount.hs+2−1 gogol-identity-toolkit/gen/Network/Google/Resource/IdentityToolkit/RelyingParty/UploadAccount.hs+2−1
gen/model/identitytoolkit/v3/identitytoolkit-api.json+115−5
@@ -1,12 +1,12 @@
11{
22 "kind": "discovery#restDescription",
3− "etag": "\"jQLIOHBVnDZie4rQHGH1WJF-INE/R4cuCODTYsbGjTBiFOeVYpfBJ-Q\"",
3+ "etag": "\"C5oy1hgQsABtYOYIOXWcR3BgYqU/wf3hMfh68A1iU1Ee8ZNiVo3poVk\"",
44 "discoveryVersion": "v1",
55 "id": "identitytoolkit:v3",
66 "name": "identitytoolkit",
77 "canonicalName": "Identity Toolkit",
88 "version": "v3",
9− "revision": "20160510",
9+ "revision": "20161010",
1010 "title": "Google Identity Toolkit API",
1111 "description": "Help the third party sites to implement federated login.",
1212 "ownerDomain": "google.com",
@@ -67,6 +67,15 @@
6767 "location": "query"
6868 }
6969 },
70+ "auth": {
71+ "oauth2": {
72+ "scopes": {
73+ "https://www.googleapis.com/auth/firebase": {
74+ "description": "View and administer all your Firebase data and settings"
75+ }
76+ }
77+ }
78+ },
7079 "schemas": {
7180 "CreateAuthUriResponse": {
7281 "id": "CreateAuthUriResponse",
@@ -245,6 +254,10 @@
245254 "type": "string",
246255 "description": "The app ID of the mobile app, base64(CERT_SHA1):PACKAGE_NAME for Android, BUNDLE_ID for iOS."
247256 },
257+ "authFlowType": {
258+ "type": "string",
259+ "description": "Explicitly specify the auth flow type. Currently only support \"CODE_FLOW\" type. The field is only used for Google provider."
260+ },
248261 "clientId": {
249262 "type": "string",
250263 "description": "The relying party OAuth client ID."
@@ -257,6 +270,18 @@
257270 "type": "string",
258271 "description": "The URI to which the IDP redirects the user after the federated login flow."
259272 },
273+ "customParameter": {
274+ "type": "object",
275+ "description": "The query parameter that client can customize by themselves in auth url. The following parameters are reserved for server so that they cannot be customized by clients: client_id, response_type, scope, redirect_uri, state, oauth_token.",
276+ "additionalProperties": {
277+ "type": "string",
278+ "description": "The customized query parameter."
279+ }
280+ },
281+ "hostedDomain": {
282+ "type": "string",
283+ "description": "The hosted domain to restrict sign-in to accounts at that domain for Google Apps hosted accounts."
284+ },
260285 "identifier": {
261286 "type": "string",
262287 "description": "The email or federated ID of the user."
@@ -280,6 +305,10 @@
280305 "providerId": {
281306 "type": "string",
282307 "description": "The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier."
308+ },
309+ "sessionId": {
310+ "type": "string",
311+ "description": "The session_id passed by client."
283312 }
284313 }
285314 },
@@ -455,6 +484,11 @@
455484 "type": "string",
456485 "description": "Response to the captcha."
457486 },
487+ "createdAt": {
488+ "type": "string",
489+ "description": "The timestamp when the account is created.",
490+ "format": "int64"
491+ },
458492 "delegatedProjectNumber": {
459493 "type": "string",
460494 "description": "GCP project number of the requesting delegated app. Currently only intended for Firebase V1 migration.",
@@ -498,6 +532,11 @@
498532 "type": "string",
499533 "description": "Instance id token of the app."
500534 },
535+ "lastLoginAt": {
536+ "type": "string",
537+ "description": "Last login timestamp.",
538+ "format": "int64"
539+ },
501540 "localId": {
502541 "type": "string",
503542 "description": "The local ID of the user."
@@ -695,11 +734,19 @@
695734 "description": "The salt separator.",
696735 "format": "byte"
697736 },
737+ "sanityCheck": {
738+ "type": "boolean",
739+ "description": "If true, backend will do sanity check(including duplicate email and federated id) when uploading account."
740+ },
698741 "signerKey": {
699742 "type": "string",
700743 "description": "The key for to hash the password.",
701744 "format": "byte"
702745 },
746+ "targetProjectId": {
747+ "type": "string",
748+ "description": "Specify which project (field value is actually project id) to operate. Only used when provided credential."
749+ },
703750 "users": {
704751 "type": "array",
705752 "description": "The account info to be stored.",
@@ -739,6 +786,10 @@
739786 "type": "string",
740787 "description": "The URI to which the IDP redirects the user back. It may contain federated login result params added by the IDP."
741788 },
789+ "returnIdpCredential": {
790+ "type": "boolean",
791+ "description": "Whether return 200 and IDP credential rather than throw exception when federated id is already linked."
792+ },
742793 "returnRefreshToken": {
743794 "type": "boolean",
744795 "description": "Whether to return refresh tokens."
@@ -846,6 +897,13 @@
846897 "secret": {
847898 "type": "string",
848899 "description": "OAuth2 client secret."
900+ },
901+ "whitelistedAudiences": {
902+ "type": "array",
903+ "description": "Whitelisted client IDs for audience check.",
904+ "items": {
905+ "type": "string"
906+ }
849907 }
850908 }
851909 },
@@ -896,12 +954,20 @@
896954 "properties": {
897955 "email": {
898956 "type": "string",
899− "description": "The user's email."
957+ "description": "The user's email. If the out-of-band code is for email recovery, the user's original email."
900958 },
901959 "kind": {
902960 "type": "string",
903961 "description": "The fixed string \"identitytoolkit#ResetPasswordResponse\".",
904962 "default": "identitytoolkit#ResetPasswordResponse"
963+ },
964+ "newEmail": {
965+ "type": "string",
966+ "description": "If the out-of-band code is for email recovery, the user's new email."
967+ },
968+ "requestType": {
969+ "type": "string",
970+ "description": "The request type."
905971 }
906972 }
907973 },
@@ -1052,6 +1118,15 @@
10521118 "type": "object",
10531119 "description": "Template for an individual account info.",
10541120 "properties": {
1121+ "createdAt": {
1122+ "type": "string",
1123+ "description": "User creation timestamp.",
1124+ "format": "int64"
1125+ },
1126+ "customAuth": {
1127+ "type": "boolean",
1128+ "description": "Whether the user is authenticated by the developer."
1129+ },
10551130 "disabled": {
10561131 "type": "boolean",
10571132 "description": "Whether the user is disabled."
@@ -1068,6 +1143,11 @@
10681143 "type": "boolean",
10691144 "description": "Whether the email has been verified."
10701145 },
1146+ "lastLoginAt": {
1147+ "type": "string",
1148+ "description": "last login timestamp.",
1149+ "format": "int64"
1150+ },
10711151 "localId": {
10721152 "type": "string",
10731153 "description": "The local ID of the user."
@@ -1115,6 +1195,14 @@
11151195 "rawId": {
11161196 "type": "string",
11171197 "description": "User's raw identifier directly returned from IDP."
1198+ },
1199+ "rawUserInfo": {
1200+ "type": "string",
1201+ "description": "Raw IDP-returned user info."
1202+ },
1203+ "screenName": {
1204+ "type": "string",
1205+ "description": "User's screen name at Twitter or login name at Github."
11181206 }
11191207 }
11201208 }
@@ -1124,6 +1212,10 @@
11241212 "description": "The user's password salt.",
11251213 "format": "byte"
11261214 },
1215+ "screenName": {
1216+ "type": "string",
1217+ "description": "User's screen name at Twitter or login name at Github."
1218+ },
11271219 "validSince": {
11281220 "type": "string",
11291221 "description": "Timestamp in seconds for valid login token.",
@@ -1177,6 +1269,10 @@
11771269 "type": "boolean",
11781270 "description": "The value is true if the IDP is also the email provider. It means the user owns the email."
11791271 },
1272+ "errorMessage": {
1273+ "type": "string",
1274+ "description": "Client error code."
1275+ },
11801276 "expiresIn": {
11811277 "type": "string",
11821278 "description": "If idToken is STS id token, then this field will be expiration time of STS id token in seconds.",
@@ -1272,10 +1368,18 @@
12721368 "type": "string",
12731369 "description": "The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. If the \"providerId\" param is set to OpenID OP identifer other than the whilte listed IdPs the OP identifier is returned. If the \"identifier\" param is federated ID in the createAuthUri request. The domain part of the federated ID is returned."
12741370 },
1371+ "rawUserInfo": {
1372+ "type": "string",
1373+ "description": "Raw IDP-returned user info."
1374+ },
12751375 "refreshToken": {
12761376 "type": "string",
12771377 "description": "If idToken is STS id token, then this field will be refresh token."
12781378 },
1379+ "screenName": {
1380+ "type": "string",
1381+ "description": "The screen_name of a Twitter user or the login name at Github."
1382+ },
12791383 "timeZone": {
12801384 "type": "string",
12811385 "description": "The timezone of the user."
@@ -1410,7 +1514,10 @@
14101514 },
14111515 "response": {
14121516 "$ref": "DownloadAccountResponse"
1413− }
1517+ },
1518+ "scopes": [
1519+ "https://www.googleapis.com/auth/firebase"
1520+ ]
14141521 },
14151522 "getAccountInfo": {
14161523 "id": "identitytoolkit.relyingparty.getAccountInfo",
@@ -1545,7 +1652,10 @@
15451652 },
15461653 "response": {
15471654 "$ref": "UploadAccountResponse"
1548− }
1655+ },
1656+ "scopes": [
1657+ "https://www.googleapis.com/auth/firebase"
1658+ ]
15491659 },
15501660 "verifyAssertion": {
15511661 "id": "identitytoolkit.relyingparty.verifyAssertion",
gogol-identity-toolkit/gen/Network/Google/IdentityToolkit.hs+29
@@ -21,6 +21,9 @@ module Network.Google.IdentityToolkit
2121 -- * Service Configuration
2222 identityToolkitService
2323
24+ -- * OAuth Scopes
25+ , firebaseScope
26+
2427 -- * API Declaration
2528 , IdentityToolkitAPI
2629
@@ -91,8 +94,10 @@ module Network.Google.IdentityToolkit
9194 , uipuiiProviderId
9295 , uipuiiEmail
9396 , uipuiiPhotoURL
97+ , uipuiiRawUserInfo
9498 , uipuiiFederatedId
9599 , uipuiiDisplayName
100+ , uipuiiScreenName
96101 , uipuiiRawId
97102
98103 -- ** VerifyCustomTokenResponse
@@ -108,6 +113,7 @@ module Network.Google.IdentityToolkit
108113 , idpConfig
109114 , icClientId
110115 , icEnabled
116+ , icWhiteListedAudiences
111117 , icSecret
112118 , icExperimentPercent
113119 , icProvider
@@ -116,8 +122,11 @@ module Network.Google.IdentityToolkit
116122 , UserInfo
117123 , userInfo
118124 , uiEmail
125+ , uiLastLoginAt
119126 , uiPhotoURL
127+ , uiCreatedAt
120128 , uiDisabled
129+ , uiCustomAuth
121130 , uiProviderUserInfo
122131 , uiValidSince
123132 , uiPasswordUpdatedAt
@@ -127,6 +136,7 @@ module Network.Google.IdentityToolkit
127136 , uiDisplayName
128137 , uiPasswordHash
129138 , uiLocalId
139+ , uiScreenName
130140
131141 -- ** IdentitytoolkitRelyingPartySetProjectConfigResponse
132142 , IdentitytoolkitRelyingPartySetProjectConfigResponse
@@ -149,6 +159,11 @@ module Network.Google.IdentityToolkit
149159 , sairpuiiFederatedId
150160 , sairpuiiDisplayName
151161
162+ -- ** IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
163+ , IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
164+ , identitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
165+ , irpcaurcpAddtional
166+
152167 -- ** IdentitytoolkitRelyingPartyVerifyPasswordRequest
153168 , IdentitytoolkitRelyingPartyVerifyPasswordRequest
154169 , identitytoolkitRelyingPartyVerifyPasswordRequest
@@ -194,8 +209,10 @@ module Network.Google.IdentityToolkit
194209 , irpsairUpgradeToFederatedLogin
195210 , irpsairEmail
196211 , irpsairInstanceId
212+ , irpsairLastLoginAt
197213 , irpsairPhotoURL
198214 , irpsairCaptchaChallenge
215+ , irpsairCreatedAt
199216 , irpsairDelegatedProjectNumber
200217 , irpsairDeleteAttribute
201218 , irpsairDeleteProvider
@@ -214,6 +231,7 @@ module Network.Google.IdentityToolkit
214231 -- ** IdentitytoolkitRelyingPartyVerifyAssertionRequest
215232 , IdentitytoolkitRelyingPartyVerifyAssertionRequest
216233 , identitytoolkitRelyingPartyVerifyAssertionRequest
234+ , irpvarReturnIdpCredential
217235 , irpvarInstanceId
218236 , irpvarDelegatedProjectNumber
219237 , irpvarPostBody
@@ -261,6 +279,8 @@ module Network.Google.IdentityToolkit
261279 , resetPasswordResponse
262280 , rprEmail
263281 , rprKind
282+ , rprRequestType
283+ , rprNewEmail
264284
265285 -- ** UploadAccountResponse
266286 , UploadAccountResponse
@@ -321,10 +341,12 @@ module Network.Google.IdentityToolkit
321341 , irpuarUsers
322342 , irpuarMemoryCost
323343 , irpuarDelegatedProjectNumber
344+ , irpuarSanityCheck
324345 , irpuarSaltSeparator
325346 , irpuarHashAlgorithm
326347 , irpuarSignerKey
327348 , irpuarRounds
349+ , irpuarTargetProjectId
328350
329351 -- ** IdentitytoolkitRelyingPartyResetPasswordRequest
330352 , IdentitytoolkitRelyingPartyResetPasswordRequest
@@ -340,12 +362,16 @@ module Network.Google.IdentityToolkit
340362 , irpcaurProviderId
341363 , irpcaurClientId
342364 , irpcaurContext
365+ , irpcaurCustomParameter
343366 , irpcaurIdentifier
344367 , irpcaurOtaApp
345368 , irpcaurOAuthConsumerKey
369+ , irpcaurHostedDomain
346370 , irpcaurAppId
347371 , irpcaurContinueURI
372+ , irpcaurAuthFlowType
348373 , irpcaurOAuthScope
374+ , irpcaurSessionId
349375 , irpcaurOpenidRealm
350376
351377 -- ** GetAccountInfoResponse
@@ -433,6 +459,7 @@ module Network.Google.IdentityToolkit
433459 , varOAuthAccessToken
434460 , varDateOfBirth
435461 , varKind
462+ , varRawUserInfo
436463 , varOAuthExpireIn
437464 , varRefreshToken
438465 , varAppInstallationURL
@@ -453,6 +480,8 @@ module Network.Google.IdentityToolkit
453480 , varNickName
454481 , varLocalId
455482 , varTimeZone
483+ , varScreenName
484+ , varErrorMessage
456485 , varIdToken
457486 , varOAuthAuthorizationCode
458487
gogol-identity-toolkit/gen/Network/Google/IdentityToolkit/Types.hs+33
@@ -19,6 +19,9 @@ module Network.Google.IdentityToolkit.Types
1919 -- * Service Configuration
2020 identityToolkitService
2121
22+ -- * OAuth Scopes
23+ , firebaseScope
24+
2225 -- * UploadAccountResponseErrorItem
2326 , UploadAccountResponseErrorItem
2427 , uploadAccountResponseErrorItem
@@ -31,8 +34,10 @@ module Network.Google.IdentityToolkit.Types
3134 , uipuiiProviderId
3235 , uipuiiEmail
3336 , uipuiiPhotoURL
37+ , uipuiiRawUserInfo
3438 , uipuiiFederatedId
3539 , uipuiiDisplayName
40+ , uipuiiScreenName
3641 , uipuiiRawId
3742
3843 -- * VerifyCustomTokenResponse
@@ -48,6 +53,7 @@ module Network.Google.IdentityToolkit.Types
4853 , idpConfig
4954 , icClientId
5055 , icEnabled
56+ , icWhiteListedAudiences
5157 , icSecret
5258 , icExperimentPercent
5359 , icProvider
@@ -56,8 +62,11 @@ module Network.Google.IdentityToolkit.Types
5662 , UserInfo
5763 , userInfo
5864 , uiEmail
65+ , uiLastLoginAt
5966 , uiPhotoURL
67+ , uiCreatedAt
6068 , uiDisabled
69+ , uiCustomAuth
6170 , uiProviderUserInfo
6271 , uiValidSince
6372 , uiPasswordUpdatedAt
@@ -67,6 +76,7 @@ module Network.Google.IdentityToolkit.Types
6776 , uiDisplayName
6877 , uiPasswordHash
6978 , uiLocalId
79+ , uiScreenName
7080
7181 -- * IdentitytoolkitRelyingPartySetProjectConfigResponse
7282 , IdentitytoolkitRelyingPartySetProjectConfigResponse
@@ -89,6 +99,11 @@ module Network.Google.IdentityToolkit.Types
8999 , sairpuiiFederatedId
90100 , sairpuiiDisplayName
91101
102+ -- * IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
103+ , IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
104+ , identitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
105+ , irpcaurcpAddtional
106+
92107 -- * IdentitytoolkitRelyingPartyVerifyPasswordRequest
93108 , IdentitytoolkitRelyingPartyVerifyPasswordRequest
94109 , identitytoolkitRelyingPartyVerifyPasswordRequest
@@ -134,8 +149,10 @@ module Network.Google.IdentityToolkit.Types
134149 , irpsairUpgradeToFederatedLogin
135150 , irpsairEmail
136151 , irpsairInstanceId
152+ , irpsairLastLoginAt
137153 , irpsairPhotoURL
138154 , irpsairCaptchaChallenge
155+ , irpsairCreatedAt
139156 , irpsairDelegatedProjectNumber
140157 , irpsairDeleteAttribute
141158 , irpsairDeleteProvider
@@ -154,6 +171,7 @@ module Network.Google.IdentityToolkit.Types
154171 -- * IdentitytoolkitRelyingPartyVerifyAssertionRequest
155172 , IdentitytoolkitRelyingPartyVerifyAssertionRequest
156173 , identitytoolkitRelyingPartyVerifyAssertionRequest
174+ , irpvarReturnIdpCredential
157175 , irpvarInstanceId
158176 , irpvarDelegatedProjectNumber
159177 , irpvarPostBody
@@ -201,6 +219,8 @@ module Network.Google.IdentityToolkit.Types
201219 , resetPasswordResponse
202220 , rprEmail
203221 , rprKind
222+ , rprRequestType
223+ , rprNewEmail
204224
205225 -- * UploadAccountResponse
206226 , UploadAccountResponse
@@ -261,10 +281,12 @@ module Network.Google.IdentityToolkit.Types
261281 , irpuarUsers
262282 , irpuarMemoryCost
263283 , irpuarDelegatedProjectNumber
284+ , irpuarSanityCheck
264285 , irpuarSaltSeparator
265286 , irpuarHashAlgorithm
266287 , irpuarSignerKey
267288 , irpuarRounds
289+ , irpuarTargetProjectId
268290
269291 -- * IdentitytoolkitRelyingPartyResetPasswordRequest
270292 , IdentitytoolkitRelyingPartyResetPasswordRequest
@@ -280,12 +302,16 @@ module Network.Google.IdentityToolkit.Types
280302 , irpcaurProviderId
281303 , irpcaurClientId
282304 , irpcaurContext
305+ , irpcaurCustomParameter
283306 , irpcaurIdentifier
284307 , irpcaurOtaApp
285308 , irpcaurOAuthConsumerKey
309+ , irpcaurHostedDomain
286310 , irpcaurAppId
287311 , irpcaurContinueURI
312+ , irpcaurAuthFlowType
288313 , irpcaurOAuthScope
314+ , irpcaurSessionId
289315 , irpcaurOpenidRealm
290316
291317 -- * GetAccountInfoResponse
@@ -373,6 +399,7 @@ module Network.Google.IdentityToolkit.Types
373399 , varOAuthAccessToken
374400 , varDateOfBirth
375401 , varKind
402+ , varRawUserInfo
376403 , varOAuthExpireIn
377404 , varRefreshToken
378405 , varAppInstallationURL
@@ -393,6 +420,8 @@ module Network.Google.IdentityToolkit.Types
393420 , varNickName
394421 , varLocalId
395422 , varTimeZone
423+ , varScreenName
424+ , varErrorMessage
396425 , varIdToken
397426 , varOAuthAuthorizationCode
398427
@@ -419,3 +448,7 @@ identityToolkitService :: ServiceConfig
419448identityToolkitService
420449 = defaultService (ServiceId "identitytoolkit:v3")
421450 "www.googleapis.com"
451+
452+-- | View and administer all your Firebase data and settings
453+firebaseScope :: Proxy '["https://www.googleapis.com/auth/firebase"]
454+firebaseScope = Proxy;
gogol-identity-toolkit/gen/Network/Google/IdentityToolkit/Types/Product.hs+332−22
@@ -74,8 +74,10 @@ data UserInfoProviderUserInfoItem = UserInfoProviderUserInfoItem'
7474 { _uipuiiProviderId :: !(Maybe Text)
7575 , _uipuiiEmail :: !(Maybe Text)
7676 , _uipuiiPhotoURL :: !(Maybe Text)
77+ , _uipuiiRawUserInfo :: !(Maybe Text)
7778 , _uipuiiFederatedId :: !(Maybe Text)
7879 , _uipuiiDisplayName :: !(Maybe Text)
80+ , _uipuiiScreenName :: !(Maybe Text)
7981 , _uipuiiRawId :: !(Maybe Text)
8082 } deriving (Eq,Show,Data,Typeable,Generic)
8183
@@ -89,10 +91,14 @@ data UserInfoProviderUserInfoItem = UserInfoProviderUserInfoItem'
8991--
9092-- * 'uipuiiPhotoURL'
9193--
94+-- * 'uipuiiRawUserInfo'
95+--
9296-- * 'uipuiiFederatedId'
9397--
9498-- * 'uipuiiDisplayName'
9599--
100+-- * 'uipuiiScreenName'
101+--
96102-- * 'uipuiiRawId'
97103userInfoProviderUserInfoItem
98104 :: UserInfoProviderUserInfoItem
@@ -101,8 +107,10 @@ userInfoProviderUserInfoItem =
101107 { _uipuiiProviderId = Nothing
102108 , _uipuiiEmail = Nothing
103109 , _uipuiiPhotoURL = Nothing
110+ , _uipuiiRawUserInfo = Nothing
104111 , _uipuiiFederatedId = Nothing
105112 , _uipuiiDisplayName = Nothing
113+ , _uipuiiScreenName = Nothing
106114 , _uipuiiRawId = Nothing
107115 }
108116
@@ -125,6 +133,12 @@ uipuiiPhotoURL
125133 = lens _uipuiiPhotoURL
126134 (\ s a -> s{_uipuiiPhotoURL = a})
127135
136+-- | Raw IDP-returned user info.
137+uipuiiRawUserInfo :: Lens' UserInfoProviderUserInfoItem (Maybe Text)
138+uipuiiRawUserInfo
139+ = lens _uipuiiRawUserInfo
140+ (\ s a -> s{_uipuiiRawUserInfo = a})
141+
128142-- | User\'s identifier at IDP.
129143uipuiiFederatedId :: Lens' UserInfoProviderUserInfoItem (Maybe Text)
130144uipuiiFederatedId
@@ -137,6 +151,12 @@ uipuiiDisplayName
137151 = lens _uipuiiDisplayName
138152 (\ s a -> s{_uipuiiDisplayName = a})
139153
154+-- | User\'s screen name at Twitter or login name at Github.
155+uipuiiScreenName :: Lens' UserInfoProviderUserInfoItem (Maybe Text)
156+uipuiiScreenName
157+ = lens _uipuiiScreenName
158+ (\ s a -> s{_uipuiiScreenName = a})
159+
140160-- | User\'s raw identifier directly returned from IDP.
141161uipuiiRawId :: Lens' UserInfoProviderUserInfoItem (Maybe Text)
142162uipuiiRawId
@@ -149,8 +169,10 @@ instance FromJSON UserInfoProviderUserInfoItem where
149169 UserInfoProviderUserInfoItem' <$>
150170 (o .:? "providerId") <*> (o .:? "email") <*>
151171 (o .:? "photoUrl")
172+ <*> (o .:? "rawUserInfo")
152173 <*> (o .:? "federatedId")
153174 <*> (o .:? "displayName")
175+ <*> (o .:? "screenName")
154176 <*> (o .:? "rawId"))
155177
156178instance ToJSON UserInfoProviderUserInfoItem where
@@ -160,8 +182,10 @@ instance ToJSON UserInfoProviderUserInfoItem where
160182 [("providerId" .=) <$> _uipuiiProviderId,
161183 ("email" .=) <$> _uipuiiEmail,
162184 ("photoUrl" .=) <$> _uipuiiPhotoURL,
185+ ("rawUserInfo" .=) <$> _uipuiiRawUserInfo,
163186 ("federatedId" .=) <$> _uipuiiFederatedId,
164187 ("displayName" .=) <$> _uipuiiDisplayName,
188+ ("screenName" .=) <$> _uipuiiScreenName,
165189 ("rawId" .=) <$> _uipuiiRawId])
166190
167191-- | Response from verifying a custom token
@@ -242,11 +266,12 @@ instance ToJSON VerifyCustomTokenResponse where
242266--
243267-- /See:/ 'idpConfig' smart constructor.
244268data IdpConfig = IdpConfig'
245− { _icClientId :: !(Maybe Text)
246− , _icEnabled :: !(Maybe Bool)
247− , _icSecret :: !(Maybe Text)
248− , _icExperimentPercent :: !(Maybe (Textual Int32))
249− , _icProvider :: !(Maybe Text)
269+ { _icClientId :: !(Maybe Text)
270+ , _icEnabled :: !(Maybe Bool)
271+ , _icWhiteListedAudiences :: !(Maybe [Text])
272+ , _icSecret :: !(Maybe Text)
273+ , _icExperimentPercent :: !(Maybe (Textual Int32))
274+ , _icProvider :: !(Maybe Text)
250275 } deriving (Eq,Show,Data,Typeable,Generic)
251276
252277-- | Creates a value of 'IdpConfig' with the minimum fields required to make a request.
@@ -257,6 +282,8 @@ data IdpConfig = IdpConfig'
257282--
258283-- * 'icEnabled'
259284--
285+-- * 'icWhiteListedAudiences'
286+--
260287-- * 'icSecret'
261288--
262289-- * 'icExperimentPercent'
@@ -268,6 +295,7 @@ idpConfig =
268295 IdpConfig'
269296 { _icClientId = Nothing
270297 , _icEnabled = Nothing
298+ , _icWhiteListedAudiences = Nothing
271299 , _icSecret = Nothing
272300 , _icExperimentPercent = Nothing
273301 , _icProvider = Nothing
@@ -283,6 +311,14 @@ icEnabled :: Lens' IdpConfig (Maybe Bool)
283311icEnabled
284312 = lens _icEnabled (\ s a -> s{_icEnabled = a})
285313
314+-- | Whitelisted client IDs for audience check.
315+icWhiteListedAudiences :: Lens' IdpConfig [Text]
316+icWhiteListedAudiences
317+ = lens _icWhiteListedAudiences
318+ (\ s a -> s{_icWhiteListedAudiences = a})
319+ . _Default
320+ . _Coerce
321+
286322-- | OAuth2 client secret.
287323icSecret :: Lens' IdpConfig (Maybe Text)
288324icSecret = lens _icSecret (\ s a -> s{_icSecret = a})
@@ -306,7 +342,8 @@ instance FromJSON IdpConfig where
306342 (\ o ->
307343 IdpConfig' <$>
308344 (o .:? "clientId") <*> (o .:? "enabled") <*>
309− (o .:? "secret")
345+ (o .:? "whitelistedAudiences" .!= mempty)
346+ <*> (o .:? "secret")
310347 <*> (o .:? "experimentPercent")
311348 <*> (o .:? "provider"))
312349
@@ -316,6 +353,8 @@ instance ToJSON IdpConfig where
316353 (catMaybes
317354 [("clientId" .=) <$> _icClientId,
318355 ("enabled" .=) <$> _icEnabled,
356+ ("whitelistedAudiences" .=) <$>
357+ _icWhiteListedAudiences,
319358 ("secret" .=) <$> _icSecret,
320359 ("experimentPercent" .=) <$> _icExperimentPercent,
321360 ("provider" .=) <$> _icProvider])
@@ -325,8 +364,11 @@ instance ToJSON IdpConfig where
325364-- /See:/ 'userInfo' smart constructor.
326365data UserInfo = UserInfo'
327366 { _uiEmail :: !(Maybe Text)
367+ , _uiLastLoginAt :: !(Maybe (Textual Int64))
328368 , _uiPhotoURL :: !(Maybe Text)
369+ , _uiCreatedAt :: !(Maybe (Textual Int64))
329370 , _uiDisabled :: !(Maybe Bool)
371+ , _uiCustomAuth :: !(Maybe Bool)
330372 , _uiProviderUserInfo :: !(Maybe [UserInfoProviderUserInfoItem])
331373 , _uiValidSince :: !(Maybe (Textual Int64))
332374 , _uiPasswordUpdatedAt :: !(Maybe (Textual Double))
@@ -336,6 +378,7 @@ data UserInfo = UserInfo'
336378 , _uiDisplayName :: !(Maybe Text)
337379 , _uiPasswordHash :: !(Maybe Base64)
338380 , _uiLocalId :: !(Maybe Text)
381+ , _uiScreenName :: !(Maybe Text)
339382 } deriving (Eq,Show,Data,Typeable,Generic)
340383
341384-- | Creates a value of 'UserInfo' with the minimum fields required to make a request.
@@ -344,10 +387,16 @@ data UserInfo = UserInfo'
344387--
345388-- * 'uiEmail'
346389--
390+-- * 'uiLastLoginAt'
391+--
347392-- * 'uiPhotoURL'
348393--
394+-- * 'uiCreatedAt'
395+--
349396-- * 'uiDisabled'
350397--
398+-- * 'uiCustomAuth'
399+--
351400-- * 'uiProviderUserInfo'
352401--
353402-- * 'uiValidSince'
@@ -365,13 +414,18 @@ data UserInfo = UserInfo'
365414-- * 'uiPasswordHash'
366415--
367416-- * 'uiLocalId'
417+--
418+-- * 'uiScreenName'
368419userInfo
369420 :: UserInfo
370421userInfo =
371422 UserInfo'
372423 { _uiEmail = Nothing
424+ , _uiLastLoginAt = Nothing
373425 , _uiPhotoURL = Nothing
426+ , _uiCreatedAt = Nothing
374427 , _uiDisabled = Nothing
428+ , _uiCustomAuth = Nothing
375429 , _uiProviderUserInfo = Nothing
376430 , _uiValidSince = Nothing
377431 , _uiPasswordUpdatedAt = Nothing
@@ -381,22 +435,41 @@ userInfo =
381435 , _uiDisplayName = Nothing
382436 , _uiPasswordHash = Nothing
383437 , _uiLocalId = Nothing
438+ , _uiScreenName = Nothing
384439 }
385440
386441-- | The email of the user.
387442uiEmail :: Lens' UserInfo (Maybe Text)
388443uiEmail = lens _uiEmail (\ s a -> s{_uiEmail = a})
389444
445+-- | last login timestamp.
446+uiLastLoginAt :: Lens' UserInfo (Maybe Int64)
447+uiLastLoginAt
448+ = lens _uiLastLoginAt
449+ (\ s a -> s{_uiLastLoginAt = a})
450+ . mapping _Coerce
451+
390452-- | The URL of the user profile photo.
391453uiPhotoURL :: Lens' UserInfo (Maybe Text)
392454uiPhotoURL
393455 = lens _uiPhotoURL (\ s a -> s{_uiPhotoURL = a})
394456
457+-- | User creation timestamp.
458+uiCreatedAt :: Lens' UserInfo (Maybe Int64)
459+uiCreatedAt
460+ = lens _uiCreatedAt (\ s a -> s{_uiCreatedAt = a}) .
461+ mapping _Coerce
462+
395463-- | Whether the user is disabled.
396464uiDisabled :: Lens' UserInfo (Maybe Bool)
397465uiDisabled
398466 = lens _uiDisabled (\ s a -> s{_uiDisabled = a})
399467
468+-- | Whether the user is authenticated by the developer.
469+uiCustomAuth :: Lens' UserInfo (Maybe Bool)
470+uiCustomAuth
471+ = lens _uiCustomAuth (\ s a -> s{_uiCustomAuth = a})
472+
400473-- | The IDP of the user.
401474uiProviderUserInfo :: Lens' UserInfo [UserInfoProviderUserInfoItem]
402475uiProviderUserInfo
@@ -454,13 +527,21 @@ uiLocalId :: Lens' UserInfo (Maybe Text)
454527uiLocalId
455528 = lens _uiLocalId (\ s a -> s{_uiLocalId = a})
456529
530+-- | User\'s screen name at Twitter or login name at Github.
531+uiScreenName :: Lens' UserInfo (Maybe Text)
532+uiScreenName
533+ = lens _uiScreenName (\ s a -> s{_uiScreenName = a})
534+
457535instance FromJSON UserInfo where
458536 parseJSON
459537 = withObject "UserInfo"
460538 (\ o ->
461539 UserInfo' <$>
462− (o .:? "email") <*> (o .:? "photoUrl") <*>
463− (o .:? "disabled")
540+ (o .:? "email") <*> (o .:? "lastLoginAt") <*>
541+ (o .:? "photoUrl")
542+ <*> (o .:? "createdAt")
543+ <*> (o .:? "disabled")
544+ <*> (o .:? "customAuth")
464545 <*> (o .:? "providerUserInfo" .!= mempty)
465546 <*> (o .:? "validSince")
466547 <*> (o .:? "passwordUpdatedAt")
@@ -469,15 +550,19 @@ instance FromJSON UserInfo where
469550 <*> (o .:? "salt")
470551 <*> (o .:? "displayName")
471552 <*> (o .:? "passwordHash")
472− <*> (o .:? "localId"))
553+ <*> (o .:? "localId")
554+ <*> (o .:? "screenName"))
473555
474556instance ToJSON UserInfo where
475557 toJSON UserInfo'{..}
476558 = object
477559 (catMaybes
478560 [("email" .=) <$> _uiEmail,
561+ ("lastLoginAt" .=) <$> _uiLastLoginAt,
479562 ("photoUrl" .=) <$> _uiPhotoURL,
563+ ("createdAt" .=) <$> _uiCreatedAt,
480564 ("disabled" .=) <$> _uiDisabled,
565+ ("customAuth" .=) <$> _uiCustomAuth,
481566 ("providerUserInfo" .=) <$> _uiProviderUserInfo,
482567 ("validSince" .=) <$> _uiValidSince,
483568 ("passwordUpdatedAt" .=) <$> _uiPasswordUpdatedAt,
@@ -486,7 +571,8 @@ instance ToJSON UserInfo where
486571 ("salt" .=) <$> _uiSalt,
487572 ("displayName" .=) <$> _uiDisplayName,
488573 ("passwordHash" .=) <$> _uiPasswordHash,
489− ("localId" .=) <$> _uiLocalId])
574+ ("localId" .=) <$> _uiLocalId,
575+ ("screenName" .=) <$> _uiScreenName])
490576
491577-- | Response of setting the project configuration.
492578--
@@ -693,6 +779,51 @@ instance ToJSON
693779 ("federatedId" .=) <$> _sairpuiiFederatedId,
694780 ("displayName" .=) <$> _sairpuiiDisplayName])
695781
782+-- | The query parameter that client can customize by themselves in auth url.
783+-- The following parameters are reserved for server so that they cannot be
784+-- customized by clients: client_id, response_type, scope, redirect_uri,
785+-- state, oauth_token.
786+--
787+-- /See:/ 'identitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter' smart constructor.
788+newtype IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter = IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter'
789+ { _irpcaurcpAddtional :: HashMap Text Text
790+ } deriving (Eq,Show,Data,Typeable,Generic)
791+
792+-- | Creates a value of 'IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter' with the minimum fields required to make a request.
793+--
794+-- Use one of the following lenses to modify other fields as desired:
795+--
796+-- * 'irpcaurcpAddtional'
797+identitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
798+ :: HashMap Text Text -- ^ 'irpcaurcpAddtional'
799+ -> IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
800+identitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter pIrpcaurcpAddtional_ =
801+ IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter'
802+ { _irpcaurcpAddtional = _Coerce # pIrpcaurcpAddtional_
803+ }
804+
805+-- | The customized query parameter.
806+irpcaurcpAddtional :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter (HashMap Text Text)
807+irpcaurcpAddtional
808+ = lens _irpcaurcpAddtional
809+ (\ s a -> s{_irpcaurcpAddtional = a})
810+ . _Coerce
811+
812+instance FromJSON
813+ IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
814+ where
815+ parseJSON
816+ = withObject
817+ "IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter"
818+ (\ o ->
819+ IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter'
820+ <$> (parseJSONObject o))
821+
822+instance ToJSON
823+ IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter
824+ where
825+ toJSON = toJSON . _irpcaurcpAddtional
826+
696827-- | Request to verify the password.
697828--
698829-- /See:/ 'identitytoolkitRelyingPartyVerifyPasswordRequest' smart constructor.
@@ -1131,8 +1262,10 @@ data IdentitytoolkitRelyingPartySetAccountInfoRequest = IdentitytoolkitRelyingPa
11311262 { _irpsairUpgradeToFederatedLogin :: !(Maybe Bool)
11321263 , _irpsairEmail :: !(Maybe Text)
11331264 , _irpsairInstanceId :: !(Maybe Text)
1265+ , _irpsairLastLoginAt :: !(Maybe (Textual Int64))
11341266 , _irpsairPhotoURL :: !(Maybe Text)
11351267 , _irpsairCaptchaChallenge :: !(Maybe Text)
1268+ , _irpsairCreatedAt :: !(Maybe (Textual Int64))
11361269 , _irpsairDelegatedProjectNumber :: !(Maybe (Textual Int64))
11371270 , _irpsairDeleteAttribute :: !(Maybe [Text])
11381271 , _irpsairDeleteProvider :: !(Maybe [Text])
@@ -1159,10 +1292,14 @@ data IdentitytoolkitRelyingPartySetAccountInfoRequest = IdentitytoolkitRelyingPa
11591292--
11601293-- * 'irpsairInstanceId'
11611294--
1295+-- * 'irpsairLastLoginAt'
1296+--
11621297-- * 'irpsairPhotoURL'
11631298--
11641299-- * 'irpsairCaptchaChallenge'
11651300--
1301+-- * 'irpsairCreatedAt'
1302+--
11661303-- * 'irpsairDelegatedProjectNumber'
11671304--
11681305-- * 'irpsairDeleteAttribute'
@@ -1197,8 +1334,10 @@ identitytoolkitRelyingPartySetAccountInfoRequest =
11971334 { _irpsairUpgradeToFederatedLogin = Nothing
11981335 , _irpsairEmail = Nothing
11991336 , _irpsairInstanceId = Nothing
1337+ , _irpsairLastLoginAt = Nothing
12001338 , _irpsairPhotoURL = Nothing
12011339 , _irpsairCaptchaChallenge = Nothing
1340+ , _irpsairCreatedAt = Nothing
12021341 , _irpsairDelegatedProjectNumber = Nothing
12031342 , _irpsairDeleteAttribute = Nothing
12041343 , _irpsairDeleteProvider = Nothing
@@ -1232,6 +1371,13 @@ irpsairInstanceId
12321371 = lens _irpsairInstanceId
12331372 (\ s a -> s{_irpsairInstanceId = a})
12341373
1374+-- | Last login timestamp.
1375+irpsairLastLoginAt :: Lens' IdentitytoolkitRelyingPartySetAccountInfoRequest (Maybe Int64)
1376+irpsairLastLoginAt
1377+ = lens _irpsairLastLoginAt
1378+ (\ s a -> s{_irpsairLastLoginAt = a})
1379+ . mapping _Coerce
1380+
12351381-- | The photo url of the user.
12361382irpsairPhotoURL :: Lens' IdentitytoolkitRelyingPartySetAccountInfoRequest (Maybe Text)
12371383irpsairPhotoURL
@@ -1244,6 +1390,13 @@ irpsairCaptchaChallenge
12441390 = lens _irpsairCaptchaChallenge
12451391 (\ s a -> s{_irpsairCaptchaChallenge = a})
12461392
1393+-- | The timestamp when the account is created.
1394+irpsairCreatedAt :: Lens' IdentitytoolkitRelyingPartySetAccountInfoRequest (Maybe Int64)
1395+irpsairCreatedAt
1396+ = lens _irpsairCreatedAt
1397+ (\ s a -> s{_irpsairCreatedAt = a})
1398+ . mapping _Coerce
1399+
12471400-- | GCP project number of the requesting delegated app. Currently only
12481401-- intended for Firebase V1 migration.
12491402irpsairDelegatedProjectNumber :: Lens' IdentitytoolkitRelyingPartySetAccountInfoRequest (Maybe Int64)
@@ -1347,8 +1500,10 @@ instance FromJSON
13471500 IdentitytoolkitRelyingPartySetAccountInfoRequest' <$>
13481501 (o .:? "upgradeToFederatedLogin") <*> (o .:? "email")
13491502 <*> (o .:? "instanceId")
1503+ <*> (o .:? "lastLoginAt")
13501504 <*> (o .:? "photoUrl")
13511505 <*> (o .:? "captchaChallenge")
1506+ <*> (o .:? "createdAt")
13521507 <*> (o .:? "delegatedProjectNumber")
13531508 <*> (o .:? "deleteAttribute" .!= mempty)
13541509 <*> (o .:? "deleteProvider" .!= mempty)
@@ -1375,8 +1530,10 @@ instance ToJSON
13751530 _irpsairUpgradeToFederatedLogin,
13761531 ("email" .=) <$> _irpsairEmail,
13771532 ("instanceId" .=) <$> _irpsairInstanceId,
1533+ ("lastLoginAt" .=) <$> _irpsairLastLoginAt,
13781534 ("photoUrl" .=) <$> _irpsairPhotoURL,
13791535 ("captchaChallenge" .=) <$> _irpsairCaptchaChallenge,
1536+ ("createdAt" .=) <$> _irpsairCreatedAt,
13801537 ("delegatedProjectNumber" .=) <$>
13811538 _irpsairDelegatedProjectNumber,
13821539 ("deleteAttribute" .=) <$> _irpsairDeleteAttribute,
@@ -1398,7 +1555,8 @@ instance ToJSON
13981555--
13991556-- /See:/ 'identitytoolkitRelyingPartyVerifyAssertionRequest' smart constructor.
14001557data IdentitytoolkitRelyingPartyVerifyAssertionRequest = IdentitytoolkitRelyingPartyVerifyAssertionRequest'
1401− { _irpvarInstanceId :: !(Maybe Text)
1558+ { _irpvarReturnIdpCredential :: !(Maybe Bool)
1559+ , _irpvarInstanceId :: !(Maybe Text)
14021560 , _irpvarDelegatedProjectNumber :: !(Maybe (Textual Int64))
14031561 , _irpvarPostBody :: !(Maybe Text)
14041562 , _irpvarReturnSecureToken :: !(Maybe Bool)
@@ -1413,6 +1571,8 @@ data IdentitytoolkitRelyingPartyVerifyAssertionRequest = IdentitytoolkitRelyingP
14131571--
14141572-- Use one of the following lenses to modify other fields as desired:
14151573--
1574+-- * 'irpvarReturnIdpCredential'
1575+--
14161576-- * 'irpvarInstanceId'
14171577--
14181578-- * 'irpvarDelegatedProjectNumber'
@@ -1434,7 +1594,8 @@ identitytoolkitRelyingPartyVerifyAssertionRequest
14341594 :: IdentitytoolkitRelyingPartyVerifyAssertionRequest
14351595identitytoolkitRelyingPartyVerifyAssertionRequest =
14361596 IdentitytoolkitRelyingPartyVerifyAssertionRequest'
1437− { _irpvarInstanceId = Nothing
1597+ { _irpvarReturnIdpCredential = Nothing
1598+ , _irpvarInstanceId = Nothing
14381599 , _irpvarDelegatedProjectNumber = Nothing
14391600 , _irpvarPostBody = Nothing
14401601 , _irpvarReturnSecureToken = Nothing
@@ -1445,6 +1606,13 @@ identitytoolkitRelyingPartyVerifyAssertionRequest =
14451606 , _irpvarPendingIdToken = Nothing
14461607 }
14471608
1609+-- | Whether return 200 and IDP credential rather than throw exception when
1610+-- federated id is already linked.
1611+irpvarReturnIdpCredential :: Lens' IdentitytoolkitRelyingPartyVerifyAssertionRequest (Maybe Bool)
1612+irpvarReturnIdpCredential
1613+ = lens _irpvarReturnIdpCredential
1614+ (\ s a -> s{_irpvarReturnIdpCredential = a})
1615+
14481616-- | Instance id token of the app.
14491617irpvarInstanceId :: Lens' IdentitytoolkitRelyingPartyVerifyAssertionRequest (Maybe Text)
14501618irpvarInstanceId
@@ -1513,8 +1681,9 @@ instance FromJSON
15131681 (\ o ->
15141682 IdentitytoolkitRelyingPartyVerifyAssertionRequest'
15151683 <$>
1516− (o .:? "instanceId") <*>
1517− (o .:? "delegatedProjectNumber")
1684+ (o .:? "returnIdpCredential") <*>
1685+ (o .:? "instanceId")
1686+ <*> (o .:? "delegatedProjectNumber")
15181687 <*> (o .:? "postBody")
15191688 <*> (o .:? "returnSecureToken")
15201689 <*> (o .:? "returnRefreshToken")
@@ -1530,7 +1699,9 @@ instance ToJSON
15301699 IdentitytoolkitRelyingPartyVerifyAssertionRequest'{..}
15311700 = object
15321701 (catMaybes
1533− [("instanceId" .=) <$> _irpvarInstanceId,
1702+ [("returnIdpCredential" .=) <$>
1703+ _irpvarReturnIdpCredential,
1704+ ("instanceId" .=) <$> _irpvarInstanceId,
15341705 ("delegatedProjectNumber" .=) <$>
15351706 _irpvarDelegatedProjectNumber,
15361707 ("postBody" .=) <$> _irpvarPostBody,
@@ -1861,8 +2032,10 @@ instance ToJSON
18612032--
18622033-- /See:/ 'resetPasswordResponse' smart constructor.
18632034data ResetPasswordResponse = ResetPasswordResponse'
1864− { _rprEmail :: !(Maybe Text)
1865− , _rprKind :: !Text
2035+ { _rprEmail :: !(Maybe Text)
2036+ , _rprKind :: !Text
2037+ , _rprRequestType :: !(Maybe Text)
2038+ , _rprNewEmail :: !(Maybe Text)
18662039 } deriving (Eq,Show,Data,Typeable,Generic)
18672040
18682041-- | Creates a value of 'ResetPasswordResponse' with the minimum fields required to make a request.
@@ -1872,15 +2045,22 @@ data ResetPasswordResponse = ResetPasswordResponse'
18722045-- * 'rprEmail'
18732046--
18742047-- * 'rprKind'
2048+--
2049+-- * 'rprRequestType'
2050+--
2051+-- * 'rprNewEmail'
18752052resetPasswordResponse
18762053 :: ResetPasswordResponse
18772054resetPasswordResponse =
18782055 ResetPasswordResponse'
18792056 { _rprEmail = Nothing
18802057 , _rprKind = "identitytoolkit#ResetPasswordResponse"
2058+ , _rprRequestType = Nothing
2059+ , _rprNewEmail = Nothing
18812060 }
18822061
1883−-- | The user\'s email.
2062+-- | The user\'s email. If the out-of-band code is for email recovery, the
2063+-- user\'s original email.
18842064rprEmail :: Lens' ResetPasswordResponse (Maybe Text)
18852065rprEmail = lens _rprEmail (\ s a -> s{_rprEmail = a})
18862066
@@ -1888,6 +2068,17 @@ rprEmail = lens _rprEmail (\ s a -> s{_rprEmail = a})
18882068rprKind :: Lens' ResetPasswordResponse Text
18892069rprKind = lens _rprKind (\ s a -> s{_rprKind = a})
18902070
2071+-- | The request type.
2072+rprRequestType :: Lens' ResetPasswordResponse (Maybe Text)
2073+rprRequestType
2074+ = lens _rprRequestType
2075+ (\ s a -> s{_rprRequestType = a})
2076+
2077+-- | If the out-of-band code is for email recovery, the user\'s new email.
2078+rprNewEmail :: Lens' ResetPasswordResponse (Maybe Text)
2079+rprNewEmail
2080+ = lens _rprNewEmail (\ s a -> s{_rprNewEmail = a})
2081+
18912082instance FromJSON ResetPasswordResponse where
18922083 parseJSON
18932084 = withObject "ResetPasswordResponse"
@@ -1895,14 +2086,18 @@ instance FromJSON ResetPasswordResponse where
18952086 ResetPasswordResponse' <$>
18962087 (o .:? "email") <*>
18972088 (o .:? "kind" .!=
1898− "identitytoolkit#ResetPasswordResponse"))
2089+ "identitytoolkit#ResetPasswordResponse")
2090+ <*> (o .:? "requestType")
2091+ <*> (o .:? "newEmail"))
18992092
19002093instance ToJSON ResetPasswordResponse where
19012094 toJSON ResetPasswordResponse'{..}
19022095 = object
19032096 (catMaybes
19042097 [("email" .=) <$> _rprEmail,
1905− Just ("kind" .= _rprKind)])
2098+ Just ("kind" .= _rprKind),
2099+ ("requestType" .=) <$> _rprRequestType,
2100+ ("newEmail" .=) <$> _rprNewEmail])
19062101
19072102-- | Respone of uploading accounts in batch.
19082103--
@@ -2413,10 +2608,12 @@ data IdentitytoolkitRelyingPartyUploadAccountRequest = IdentitytoolkitRelyingPar
24132608 { _irpuarUsers :: !(Maybe [UserInfo])
24142609 , _irpuarMemoryCost :: !(Maybe (Textual Int32))
24152610 , _irpuarDelegatedProjectNumber :: !(Maybe (Textual Int64))
2611+ , _irpuarSanityCheck :: !(Maybe Bool)
24162612 , _irpuarSaltSeparator :: !(Maybe Base64)
24172613 , _irpuarHashAlgorithm :: !(Maybe Text)
24182614 , _irpuarSignerKey :: !(Maybe Base64)
24192615 , _irpuarRounds :: !(Maybe (Textual Int32))
2616+ , _irpuarTargetProjectId :: !(Maybe Text)
24202617 } deriving (Eq,Show,Data,Typeable,Generic)
24212618
24222619-- | Creates a value of 'IdentitytoolkitRelyingPartyUploadAccountRequest' with the minimum fields required to make a request.
@@ -2429,6 +2626,8 @@ data IdentitytoolkitRelyingPartyUploadAccountRequest = IdentitytoolkitRelyingPar
24292626--
24302627-- * 'irpuarDelegatedProjectNumber'
24312628--
2629+-- * 'irpuarSanityCheck'
2630+--
24322631-- * 'irpuarSaltSeparator'
24332632--
24342633-- * 'irpuarHashAlgorithm'
@@ -2436,6 +2635,8 @@ data IdentitytoolkitRelyingPartyUploadAccountRequest = IdentitytoolkitRelyingPar
24362635-- * 'irpuarSignerKey'
24372636--
24382637-- * 'irpuarRounds'
2638+--
2639+-- * 'irpuarTargetProjectId'
24392640identitytoolkitRelyingPartyUploadAccountRequest
24402641 :: IdentitytoolkitRelyingPartyUploadAccountRequest
24412642identitytoolkitRelyingPartyUploadAccountRequest =
@@ -2443,10 +2644,12 @@ identitytoolkitRelyingPartyUploadAccountRequest =
24432644 { _irpuarUsers = Nothing
24442645 , _irpuarMemoryCost = Nothing
24452646 , _irpuarDelegatedProjectNumber = Nothing
2647+ , _irpuarSanityCheck = Nothing
24462648 , _irpuarSaltSeparator = Nothing
24472649 , _irpuarHashAlgorithm = Nothing
24482650 , _irpuarSignerKey = Nothing
24492651 , _irpuarRounds = Nothing
2652+ , _irpuarTargetProjectId = Nothing
24502653 }
24512654
24522655-- | The account info to be stored.
@@ -2471,6 +2674,13 @@ irpuarDelegatedProjectNumber
24712674 (\ s a -> s{_irpuarDelegatedProjectNumber = a})
24722675 . mapping _Coerce
24732676
2677+-- | If true, backend will do sanity check(including duplicate email and
2678+-- federated id) when uploading account.
2679+irpuarSanityCheck :: Lens' IdentitytoolkitRelyingPartyUploadAccountRequest (Maybe Bool)
2680+irpuarSanityCheck
2681+ = lens _irpuarSanityCheck
2682+ (\ s a -> s{_irpuarSanityCheck = a})
2683+
24742684-- | The salt separator.
24752685irpuarSaltSeparator :: Lens' IdentitytoolkitRelyingPartyUploadAccountRequest (Maybe ByteString)
24762686irpuarSaltSeparator
@@ -2497,6 +2707,13 @@ irpuarRounds
24972707 = lens _irpuarRounds (\ s a -> s{_irpuarRounds = a})
24982708 . mapping _Coerce
24992709
2710+-- | Specify which project (field value is actually project id) to operate.
2711+-- Only used when provided credential.
2712+irpuarTargetProjectId :: Lens' IdentitytoolkitRelyingPartyUploadAccountRequest (Maybe Text)
2713+irpuarTargetProjectId
2714+ = lens _irpuarTargetProjectId
2715+ (\ s a -> s{_irpuarTargetProjectId = a})
2716+
25002717instance FromJSON
25012718 IdentitytoolkitRelyingPartyUploadAccountRequest where
25022719 parseJSON
@@ -2506,10 +2723,12 @@ instance FromJSON
25062723 IdentitytoolkitRelyingPartyUploadAccountRequest' <$>
25072724 (o .:? "users" .!= mempty) <*> (o .:? "memoryCost")
25082725 <*> (o .:? "delegatedProjectNumber")
2726+ <*> (o .:? "sanityCheck")
25092727 <*> (o .:? "saltSeparator")
25102728 <*> (o .:? "hashAlgorithm")
25112729 <*> (o .:? "signerKey")
2512− <*> (o .:? "rounds"))
2730+ <*> (o .:? "rounds")
2731+ <*> (o .:? "targetProjectId"))
25132732
25142733instance ToJSON
25152734 IdentitytoolkitRelyingPartyUploadAccountRequest where
@@ -2521,10 +2740,12 @@ instance ToJSON
25212740 ("memoryCost" .=) <$> _irpuarMemoryCost,
25222741 ("delegatedProjectNumber" .=) <$>
25232742 _irpuarDelegatedProjectNumber,
2743+ ("sanityCheck" .=) <$> _irpuarSanityCheck,
25242744 ("saltSeparator" .=) <$> _irpuarSaltSeparator,
25252745 ("hashAlgorithm" .=) <$> _irpuarHashAlgorithm,
25262746 ("signerKey" .=) <$> _irpuarSignerKey,
2527− ("rounds" .=) <$> _irpuarRounds])
2747+ ("rounds" .=) <$> _irpuarRounds,
2748+ ("targetProjectId" .=) <$> _irpuarTargetProjectId])
25282749
25292750-- | Request to reset the password.
25302751--
@@ -2609,12 +2830,16 @@ data IdentitytoolkitRelyingPartyCreateAuthURIRequest = IdentitytoolkitRelyingPar
26092830 { _irpcaurProviderId :: !(Maybe Text)
26102831 , _irpcaurClientId :: !(Maybe Text)
26112832 , _irpcaurContext :: !(Maybe Text)
2833+ , _irpcaurCustomParameter :: !(Maybe IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter)
26122834 , _irpcaurIdentifier :: !(Maybe Text)
26132835 , _irpcaurOtaApp :: !(Maybe Text)
26142836 , _irpcaurOAuthConsumerKey :: !(Maybe Text)
2837+ , _irpcaurHostedDomain :: !(Maybe Text)
26152838 , _irpcaurAppId :: !(Maybe Text)
26162839 , _irpcaurContinueURI :: !(Maybe Text)
2840+ , _irpcaurAuthFlowType :: !(Maybe Text)
26172841 , _irpcaurOAuthScope :: !(Maybe Text)
2842+ , _irpcaurSessionId :: !(Maybe Text)
26182843 , _irpcaurOpenidRealm :: !(Maybe Text)
26192844 } deriving (Eq,Show,Data,Typeable,Generic)
26202845
@@ -2628,18 +2853,26 @@ data IdentitytoolkitRelyingPartyCreateAuthURIRequest = IdentitytoolkitRelyingPar
26282853--
26292854-- * 'irpcaurContext'
26302855--
2856+-- * 'irpcaurCustomParameter'
2857+--
26312858-- * 'irpcaurIdentifier'
26322859--
26332860-- * 'irpcaurOtaApp'
26342861--
26352862-- * 'irpcaurOAuthConsumerKey'
26362863--
2864+-- * 'irpcaurHostedDomain'
2865+--
26372866-- * 'irpcaurAppId'
26382867--
26392868-- * 'irpcaurContinueURI'
26402869--
2870+-- * 'irpcaurAuthFlowType'
2871+--
26412872-- * 'irpcaurOAuthScope'
26422873--
2874+-- * 'irpcaurSessionId'
2875+--
26432876-- * 'irpcaurOpenidRealm'
26442877identitytoolkitRelyingPartyCreateAuthURIRequest
26452878 :: IdentitytoolkitRelyingPartyCreateAuthURIRequest
@@ -2648,12 +2881,16 @@ identitytoolkitRelyingPartyCreateAuthURIRequest =
26482881 { _irpcaurProviderId = Nothing
26492882 , _irpcaurClientId = Nothing
26502883 , _irpcaurContext = Nothing
2884+ , _irpcaurCustomParameter = Nothing
26512885 , _irpcaurIdentifier = Nothing
26522886 , _irpcaurOtaApp = Nothing
26532887 , _irpcaurOAuthConsumerKey = Nothing
2888+ , _irpcaurHostedDomain = Nothing
26542889 , _irpcaurAppId = Nothing
26552890 , _irpcaurContinueURI = Nothing
2891+ , _irpcaurAuthFlowType = Nothing
26562892 , _irpcaurOAuthScope = Nothing
2893+ , _irpcaurSessionId = Nothing
26572894 , _irpcaurOpenidRealm = Nothing
26582895 }
26592896
@@ -2678,6 +2915,15 @@ irpcaurContext
26782915 = lens _irpcaurContext
26792916 (\ s a -> s{_irpcaurContext = a})
26802917
2918+-- | The query parameter that client can customize by themselves in auth url.
2919+-- The following parameters are reserved for server so that they cannot be
2920+-- customized by clients: client_id, response_type, scope, redirect_uri,
2921+-- state, oauth_token.
2922+irpcaurCustomParameter :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequest (Maybe IdentitytoolkitRelyingPartyCreateAuthURIRequestCustomParameter)
2923+irpcaurCustomParameter
2924+ = lens _irpcaurCustomParameter
2925+ (\ s a -> s{_irpcaurCustomParameter = a})
2926+
26812927-- | The email or federated ID of the user.
26822928irpcaurIdentifier :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequest (Maybe Text)
26832929irpcaurIdentifier
@@ -2696,6 +2942,13 @@ irpcaurOAuthConsumerKey
26962942 = lens _irpcaurOAuthConsumerKey
26972943 (\ s a -> s{_irpcaurOAuthConsumerKey = a})
26982944
2945+-- | The hosted domain to restrict sign-in to accounts at that domain for
2946+-- Google Apps hosted accounts.
2947+irpcaurHostedDomain :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequest (Maybe Text)
2948+irpcaurHostedDomain
2949+ = lens _irpcaurHostedDomain
2950+ (\ s a -> s{_irpcaurHostedDomain = a})
2951+
26992952-- | The app ID of the mobile app, base64(CERT_SHA1):PACKAGE_NAME for
27002953-- Android, BUNDLE_ID for iOS.
27012954irpcaurAppId :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequest (Maybe Text)
@@ -2709,6 +2962,13 @@ irpcaurContinueURI
27092962 = lens _irpcaurContinueURI
27102963 (\ s a -> s{_irpcaurContinueURI = a})
27112964
2965+-- | Explicitly specify the auth flow type. Currently only support
2966+-- \"CODE_FLOW\" type. The field is only used for Google provider.
2967+irpcaurAuthFlowType :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequest (Maybe Text)
2968+irpcaurAuthFlowType
2969+ = lens _irpcaurAuthFlowType
2970+ (\ s a -> s{_irpcaurAuthFlowType = a})
2971+
27122972-- | Additional oauth scopes, beyond the basid user profile, that the user
27132973-- would be prompted to grant
27142974irpcaurOAuthScope :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequest (Maybe Text)
@@ -2716,6 +2976,12 @@ irpcaurOAuthScope
27162976 = lens _irpcaurOAuthScope
27172977 (\ s a -> s{_irpcaurOAuthScope = a})
27182978
2979+-- | The session_id passed by client.
2980+irpcaurSessionId :: Lens' IdentitytoolkitRelyingPartyCreateAuthURIRequest (Maybe Text)
2981+irpcaurSessionId
2982+ = lens _irpcaurSessionId
2983+ (\ s a -> s{_irpcaurSessionId = a})
2984+
27192985-- | Optional realm for OpenID protocol. The sub string
27202986-- \"scheme:\/\/domain:port\" of the param \"continueUri\" is used if this
27212987-- is not set.
@@ -2733,12 +2999,16 @@ instance FromJSON
27332999 IdentitytoolkitRelyingPartyCreateAuthURIRequest' <$>
27343000 (o .:? "providerId") <*> (o .:? "clientId") <*>
27353001 (o .:? "context")
3002+ <*> (o .:? "customParameter")
27363003 <*> (o .:? "identifier")
27373004 <*> (o .:? "otaApp")
27383005 <*> (o .:? "oauthConsumerKey")
3006+ <*> (o .:? "hostedDomain")
27393007 <*> (o .:? "appId")
27403008 <*> (o .:? "continueUri")
3009+ <*> (o .:? "authFlowType")
27413010 <*> (o .:? "oauthScope")
3011+ <*> (o .:? "sessionId")
27423012 <*> (o .:? "openidRealm"))
27433013
27443014instance ToJSON
@@ -2750,12 +3020,16 @@ instance ToJSON
27503020 [("providerId" .=) <$> _irpcaurProviderId,
27513021 ("clientId" .=) <$> _irpcaurClientId,
27523022 ("context" .=) <$> _irpcaurContext,
3023+ ("customParameter" .=) <$> _irpcaurCustomParameter,
27533024 ("identifier" .=) <$> _irpcaurIdentifier,
27543025 ("otaApp" .=) <$> _irpcaurOtaApp,
27553026 ("oauthConsumerKey" .=) <$> _irpcaurOAuthConsumerKey,
3027+ ("hostedDomain" .=) <$> _irpcaurHostedDomain,
27563028 ("appId" .=) <$> _irpcaurAppId,
27573029 ("continueUri" .=) <$> _irpcaurContinueURI,
3030+ ("authFlowType" .=) <$> _irpcaurAuthFlowType,
27583031 ("oauthScope" .=) <$> _irpcaurOAuthScope,
3032+ ("sessionId" .=) <$> _irpcaurSessionId,
27593033 ("openidRealm" .=) <$> _irpcaurOpenidRealm])
27603034
27613035-- | Response of getting account information.
@@ -3468,6 +3742,7 @@ data VerifyAssertionResponse = VerifyAssertionResponse'
34683742 , _varOAuthAccessToken :: !(Maybe Text)
34693743 , _varDateOfBirth :: !(Maybe Text)
34703744 , _varKind :: !Text
3745+ , _varRawUserInfo :: !(Maybe Text)
34713746 , _varOAuthExpireIn :: !(Maybe (Textual Int32))
34723747 , _varRefreshToken :: !(Maybe Text)
34733748 , _varAppInstallationURL :: !(Maybe Text)
@@ -3488,6 +3763,8 @@ data VerifyAssertionResponse = VerifyAssertionResponse'
34883763 , _varNickName :: !(Maybe Text)
34893764 , _varLocalId :: !(Maybe Text)
34903765 , _varTimeZone :: !(Maybe Text)
3766+ , _varScreenName :: !(Maybe Text)
3767+ , _varErrorMessage :: !(Maybe Text)
34913768 , _varIdToken :: !(Maybe Text)
34923769 , _varOAuthAuthorizationCode :: !(Maybe Text)
34933770 } deriving (Eq,Show,Data,Typeable,Generic)
@@ -3522,6 +3799,8 @@ data VerifyAssertionResponse = VerifyAssertionResponse'
35223799--
35233800-- * 'varKind'
35243801--
3802+-- * 'varRawUserInfo'
3803+--
35253804-- * 'varOAuthExpireIn'
35263805--
35273806-- * 'varRefreshToken'
@@ -3562,6 +3841,10 @@ data VerifyAssertionResponse = VerifyAssertionResponse'
35623841--
35633842-- * 'varTimeZone'
35643843--
3844+-- * 'varScreenName'
3845+--
3846+-- * 'varErrorMessage'
3847+--
35653848-- * 'varIdToken'
35663849--
35673850-- * 'varOAuthAuthorizationCode'
@@ -3582,6 +3865,7 @@ verifyAssertionResponse =
35823865 , _varOAuthAccessToken = Nothing
35833866 , _varDateOfBirth = Nothing
35843867 , _varKind = "identitytoolkit#VerifyAssertionResponse"
3868+ , _varRawUserInfo = Nothing
35853869 , _varOAuthExpireIn = Nothing
35863870 , _varRefreshToken = Nothing
35873871 , _varAppInstallationURL = Nothing
@@ -3602,6 +3886,8 @@ verifyAssertionResponse =
36023886 , _varNickName = Nothing
36033887 , _varLocalId = Nothing
36043888 , _varTimeZone = Nothing
3889+ , _varScreenName = Nothing
3890+ , _varErrorMessage = Nothing
36053891 , _varIdToken = Nothing
36063892 , _varOAuthAuthorizationCode = Nothing
36073893 }
@@ -3688,6 +3974,12 @@ varDateOfBirth
36883974varKind :: Lens' VerifyAssertionResponse Text
36893975varKind = lens _varKind (\ s a -> s{_varKind = a})
36903976
3977+-- | Raw IDP-returned user info.
3978+varRawUserInfo :: Lens' VerifyAssertionResponse (Maybe Text)
3979+varRawUserInfo
3980+ = lens _varRawUserInfo
3981+ (\ s a -> s{_varRawUserInfo = a})
3982+
36913983-- | The lifetime in seconds of the OAuth2 access token.
36923984varOAuthExpireIn :: Lens' VerifyAssertionResponse (Maybe Int32)
36933985varOAuthExpireIn
@@ -3807,6 +4099,18 @@ varTimeZone :: Lens' VerifyAssertionResponse (Maybe Text)
38074099varTimeZone
38084100 = lens _varTimeZone (\ s a -> s{_varTimeZone = a})
38094101
4102+-- | The screen_name of a Twitter user or the login name at Github.
4103+varScreenName :: Lens' VerifyAssertionResponse (Maybe Text)
4104+varScreenName
4105+ = lens _varScreenName
4106+ (\ s a -> s{_varScreenName = a})
4107+
4108+-- | Client error code.
4109+varErrorMessage :: Lens' VerifyAssertionResponse (Maybe Text)
4110+varErrorMessage
4111+ = lens _varErrorMessage
4112+ (\ s a -> s{_varErrorMessage = a})
4113+
38104114-- | The ID token.
38114115varIdToken :: Lens' VerifyAssertionResponse (Maybe Text)
38124116varIdToken
@@ -3837,6 +4141,7 @@ instance FromJSON VerifyAssertionResponse where
38374141 <*>
38384142 (o .:? "kind" .!=
38394143 "identitytoolkit#VerifyAssertionResponse")
4144+ <*> (o .:? "rawUserInfo")
38404145 <*> (o .:? "oauthExpireIn")
38414146 <*> (o .:? "refreshToken")
38424147 <*> (o .:? "appInstallationUrl")
@@ -3857,6 +4162,8 @@ instance FromJSON VerifyAssertionResponse where
38574162 <*> (o .:? "nickName")
38584163 <*> (o .:? "localId")
38594164 <*> (o .:? "timeZone")
4165+ <*> (o .:? "screenName")
4166+ <*> (o .:? "errorMessage")
38604167 <*> (o .:? "idToken")
38614168 <*> (o .:? "oauthAuthorizationCode"))
38624169
@@ -3877,6 +4184,7 @@ instance ToJSON VerifyAssertionResponse where
38774184 ("oauthAccessToken" .=) <$> _varOAuthAccessToken,
38784185 ("dateOfBirth" .=) <$> _varDateOfBirth,
38794186 Just ("kind" .= _varKind),
4187+ ("rawUserInfo" .=) <$> _varRawUserInfo,
38804188 ("oauthExpireIn" .=) <$> _varOAuthExpireIn,
38814189 ("refreshToken" .=) <$> _varRefreshToken,
38824190 ("appInstallationUrl" .=) <$> _varAppInstallationURL,
@@ -3897,6 +4205,8 @@ instance ToJSON VerifyAssertionResponse where
38974205 ("nickName" .=) <$> _varNickName,
38984206 ("localId" .=) <$> _varLocalId,
38994207 ("timeZone" .=) <$> _varTimeZone,
4208+ ("screenName" .=) <$> _varScreenName,
4209+ ("errorMessage" .=) <$> _varErrorMessage,
39004210 ("idToken" .=) <$> _varIdToken,
39014211 ("oauthAuthorizationCode" .=) <$>
39024212 _varOAuthAuthorizationCode])
gogol-identity-toolkit/gen/Network/Google/Resource/IdentityToolkit/RelyingParty/DownloadAccount.hs+2−1
@@ -80,7 +80,8 @@ instance GoogleRequest RelyingPartyDownloadAccount
8080 where
8181 type Rs RelyingPartyDownloadAccount =
8282 DownloadAccountResponse
83− type Scopes RelyingPartyDownloadAccount = '[]
83+ type Scopes RelyingPartyDownloadAccount =
84+ '["https://www.googleapis.com/auth/firebase"]
8485 requestClient RelyingPartyDownloadAccount'{..}
8586 = go (Just AltJSON) _rpdaPayload
8687 identityToolkitService
gogol-identity-toolkit/gen/Network/Google/Resource/IdentityToolkit/RelyingParty/UploadAccount.hs+2−1
@@ -80,7 +80,8 @@ instance GoogleRequest RelyingPartyUploadAccount
8080 where
8181 type Rs RelyingPartyUploadAccount =
8282 UploadAccountResponse
83− type Scopes RelyingPartyUploadAccount = '[]
83+ type Scopes RelyingPartyUploadAccount =
84+ '["https://www.googleapis.com/auth/firebase"]
8485 requestClient RelyingPartyUploadAccount'{..}
8586 = go (Just AltJSON) _rpuaPayload
8687 identityToolkitService