@pulumi/keycloak 5.3.0 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/attributeImporterIdentityProviderMapper.d.ts +46 -63
  2. package/attributeImporterIdentityProviderMapper.js +25 -33
  3. package/attributeImporterIdentityProviderMapper.js.map +1 -1
  4. package/attributeToRoleIdentityMapper.d.ts +10 -2
  5. package/attributeToRoleIdentityMapper.js +10 -2
  6. package/attributeToRoleIdentityMapper.js.map +1 -1
  7. package/authentication/bindings.d.ts +2 -0
  8. package/authentication/bindings.js +2 -0
  9. package/authentication/bindings.js.map +1 -1
  10. package/authentication/execution.d.ts +8 -2
  11. package/authentication/execution.js +8 -2
  12. package/authentication/execution.js.map +1 -1
  13. package/authentication/executionConfig.d.ts +12 -2
  14. package/authentication/executionConfig.js +12 -2
  15. package/authentication/executionConfig.js.map +1 -1
  16. package/authentication/flow.d.ts +16 -2
  17. package/authentication/flow.js +16 -2
  18. package/authentication/flow.js.map +1 -1
  19. package/authentication/subflow.d.ts +18 -2
  20. package/authentication/subflow.js +18 -2
  21. package/authentication/subflow.js.map +1 -1
  22. package/customIdentityProviderMapping.d.ts +13 -5
  23. package/customIdentityProviderMapping.js +10 -2
  24. package/customIdentityProviderMapping.js.map +1 -1
  25. package/customUserFederation.d.ts +51 -50
  26. package/customUserFederation.js +27 -14
  27. package/customUserFederation.js.map +1 -1
  28. package/defaultGroups.d.ts +19 -27
  29. package/defaultGroups.js +19 -9
  30. package/defaultGroups.js.map +1 -1
  31. package/defaultRoles.d.ts +13 -2
  32. package/defaultRoles.js +13 -2
  33. package/defaultRoles.js.map +1 -1
  34. package/genericClientProtocolMapper.d.ts +40 -37
  35. package/genericClientProtocolMapper.js +25 -13
  36. package/genericClientProtocolMapper.js.map +1 -1
  37. package/genericClientRoleMapper.d.ts +22 -2
  38. package/genericClientRoleMapper.js +22 -2
  39. package/genericClientRoleMapper.js.map +1 -1
  40. package/genericProtocolMapper.d.ts +8 -2
  41. package/genericProtocolMapper.js +8 -2
  42. package/genericProtocolMapper.js.map +1 -1
  43. package/genericRoleMapper.d.ts +22 -2
  44. package/genericRoleMapper.js +22 -2
  45. package/genericRoleMapper.js.map +1 -1
  46. package/getAuthenticationExecution.d.ts +4 -0
  47. package/getAuthenticationExecution.js +4 -0
  48. package/getAuthenticationExecution.js.map +1 -1
  49. package/getAuthenticationFlow.d.ts +4 -0
  50. package/getAuthenticationFlow.js +4 -0
  51. package/getAuthenticationFlow.js.map +1 -1
  52. package/getClientDescriptionConverter.d.ts +4 -0
  53. package/getClientDescriptionConverter.js +4 -0
  54. package/getClientDescriptionConverter.js.map +1 -1
  55. package/getGroup.d.ts +4 -62
  56. package/getGroup.js +4 -50
  57. package/getGroup.js.map +1 -1
  58. package/getRealm.d.ts +32 -10
  59. package/getRealm.js +32 -4
  60. package/getRealm.js.map +1 -1
  61. package/getRealmKeys.d.ts +8 -28
  62. package/getRealmKeys.js +8 -4
  63. package/getRealmKeys.js.map +1 -1
  64. package/getRole.d.ts +4 -65
  65. package/getRole.js +4 -44
  66. package/getRole.js.map +1 -1
  67. package/getUser.d.ts +4 -0
  68. package/getUser.js +4 -0
  69. package/getUser.js.map +1 -1
  70. package/getUserRealmRoles.d.ts +4 -0
  71. package/getUserRealmRoles.js +4 -0
  72. package/getUserRealmRoles.js.map +1 -1
  73. package/group.d.ts +35 -58
  74. package/group.js +35 -16
  75. package/group.js.map +1 -1
  76. package/groupMemberships.d.ts +27 -43
  77. package/groupMemberships.js +27 -16
  78. package/groupMemberships.js.map +1 -1
  79. package/groupPermissions.d.ts +13 -0
  80. package/groupPermissions.js +13 -0
  81. package/groupPermissions.js.map +1 -1
  82. package/groupRoles.d.ts +32 -91
  83. package/groupRoles.js +32 -55
  84. package/groupRoles.js.map +1 -1
  85. package/hardcodedAttributeIdentityProviderMapper.d.ts +2 -0
  86. package/hardcodedAttributeIdentityProviderMapper.js +2 -0
  87. package/hardcodedAttributeIdentityProviderMapper.js.map +1 -1
  88. package/hardcodedRoleIdentityMapper.d.ts +2 -0
  89. package/hardcodedRoleIdentityMapper.js +2 -0
  90. package/hardcodedRoleIdentityMapper.js.map +1 -1
  91. package/identityProviderTokenExchangeScopePermission.d.ts +10 -2
  92. package/identityProviderTokenExchangeScopePermission.js +10 -2
  93. package/identityProviderTokenExchangeScopePermission.js.map +1 -1
  94. package/ldap/customMapper.d.ts +10 -2
  95. package/ldap/customMapper.js +10 -2
  96. package/ldap/customMapper.js.map +1 -1
  97. package/ldap/fullNameMapper.d.ts +41 -54
  98. package/ldap/fullNameMapper.js +32 -18
  99. package/ldap/fullNameMapper.js.map +1 -1
  100. package/ldap/groupMapper.d.ts +55 -164
  101. package/ldap/groupMapper.js +46 -20
  102. package/ldap/groupMapper.js.map +1 -1
  103. package/ldap/hardcodedAttributeMapper.d.ts +10 -2
  104. package/ldap/hardcodedAttributeMapper.js +10 -2
  105. package/ldap/hardcodedAttributeMapper.js.map +1 -1
  106. package/ldap/hardcodedGroupMapper.d.ts +10 -2
  107. package/ldap/hardcodedGroupMapper.js +10 -2
  108. package/ldap/hardcodedGroupMapper.js.map +1 -1
  109. package/ldap/hardcodedRoleMapper.d.ts +29 -64
  110. package/ldap/hardcodedRoleMapper.js +17 -52
  111. package/ldap/hardcodedRoleMapper.js.map +1 -1
  112. package/ldap/msadLdsUserAccountControlMapper.d.ts +10 -2
  113. package/ldap/msadLdsUserAccountControlMapper.js +10 -2
  114. package/ldap/msadLdsUserAccountControlMapper.js.map +1 -1
  115. package/ldap/msadUserAccountControlMapper.d.ts +34 -32
  116. package/ldap/msadUserAccountControlMapper.js +25 -14
  117. package/ldap/msadUserAccountControlMapper.js.map +1 -1
  118. package/ldap/roleMapper.d.ts +10 -2
  119. package/ldap/roleMapper.js +10 -2
  120. package/ldap/roleMapper.js.map +1 -1
  121. package/ldap/userAttributeMapper.d.ts +60 -45
  122. package/ldap/userAttributeMapper.js +30 -15
  123. package/ldap/userAttributeMapper.js.map +1 -1
  124. package/ldap/userFederation.d.ts +125 -95
  125. package/ldap/userFederation.js +53 -20
  126. package/ldap/userFederation.js.map +1 -1
  127. package/oidc/googleIdentityProvider.d.ts +8 -2
  128. package/oidc/googleIdentityProvider.js +8 -2
  129. package/oidc/googleIdentityProvider.js.map +1 -1
  130. package/oidc/identityProvider.d.ts +8 -2
  131. package/oidc/identityProvider.js +8 -2
  132. package/oidc/identityProvider.js.map +1 -1
  133. package/openid/audienceProtocolMapper.d.ts +62 -45
  134. package/openid/audienceProtocolMapper.js +38 -21
  135. package/openid/audienceProtocolMapper.js.map +1 -1
  136. package/openid/audienceResolveProtocolMapper.d.ts +17 -3
  137. package/openid/audienceResolveProtocolMapper.js +17 -3
  138. package/openid/audienceResolveProtocolMapper.js.map +1 -1
  139. package/openid/audienceResolveProtocolMappter.d.ts +17 -3
  140. package/openid/audienceResolveProtocolMappter.js +17 -3
  141. package/openid/audienceResolveProtocolMappter.js.map +1 -1
  142. package/openid/client.d.ts +48 -431
  143. package/openid/client.js +48 -14
  144. package/openid/client.js.map +1 -1
  145. package/openid/clientAuthorizationPermission.d.ts +6 -2
  146. package/openid/clientAuthorizationPermission.js +6 -2
  147. package/openid/clientAuthorizationPermission.js.map +1 -1
  148. package/openid/clientDefaultScopes.d.ts +17 -33
  149. package/openid/clientDefaultScopes.js +17 -6
  150. package/openid/clientDefaultScopes.js.map +1 -1
  151. package/openid/clientOptionalScopes.d.ts +17 -34
  152. package/openid/clientOptionalScopes.js +17 -7
  153. package/openid/clientOptionalScopes.js.map +1 -1
  154. package/openid/clientPolicy.d.ts +2 -0
  155. package/openid/clientPolicy.js +2 -0
  156. package/openid/clientPolicy.js.map +1 -1
  157. package/openid/clientScope.d.ts +27 -67
  158. package/openid/clientScope.js +27 -13
  159. package/openid/clientScope.js.map +1 -1
  160. package/openid/clientServiceAccountRealmRole.d.ts +8 -2
  161. package/openid/clientServiceAccountRealmRole.js +8 -2
  162. package/openid/clientServiceAccountRealmRole.js.map +1 -1
  163. package/openid/clientServiceAccountRole.d.ts +8 -2
  164. package/openid/clientServiceAccountRole.js +8 -2
  165. package/openid/clientServiceAccountRole.js.map +1 -1
  166. package/openid/fullNameProtocolMapper.d.ts +49 -61
  167. package/openid/fullNameProtocolMapper.js +37 -22
  168. package/openid/fullNameProtocolMapper.js.map +1 -1
  169. package/openid/getClient.d.ts +32 -14
  170. package/openid/getClient.js +32 -2
  171. package/openid/getClient.js.map +1 -1
  172. package/openid/getClientAuthorizationPolicy.d.ts +4 -0
  173. package/openid/getClientAuthorizationPolicy.js +4 -0
  174. package/openid/getClientAuthorizationPolicy.js.map +1 -1
  175. package/openid/getClientScope.d.ts +4 -0
  176. package/openid/getClientScope.js +4 -0
  177. package/openid/getClientScope.js.map +1 -1
  178. package/openid/getClientServiceAccountUser.d.ts +4 -0
  179. package/openid/getClientServiceAccountUser.js +4 -0
  180. package/openid/getClientServiceAccountUser.js.map +1 -1
  181. package/openid/groupMembershipProtocolMapper.d.ts +53 -81
  182. package/openid/groupMembershipProtocolMapper.js +41 -24
  183. package/openid/groupMembershipProtocolMapper.js.map +1 -1
  184. package/openid/hardcodedClaimProtocolMapper.d.ts +66 -66
  185. package/openid/hardcodedClaimProtocolMapper.js +42 -24
  186. package/openid/hardcodedClaimProtocolMapper.js.map +1 -1
  187. package/openid/hardcodedRoleProtocolMapper.d.ts +48 -43
  188. package/openid/hardcodedRoleProtocolMapper.js +36 -22
  189. package/openid/hardcodedRoleProtocolMapper.js.map +1 -1
  190. package/openid/scriptProtocolMapper.d.ts +17 -3
  191. package/openid/scriptProtocolMapper.js +17 -3
  192. package/openid/scriptProtocolMapper.js.map +1 -1
  193. package/openid/userAttributeProtocolMapper.d.ts +73 -72
  194. package/openid/userAttributeProtocolMapper.js +43 -24
  195. package/openid/userAttributeProtocolMapper.js.map +1 -1
  196. package/openid/userClientRoleProtocolMapper.d.ts +17 -3
  197. package/openid/userClientRoleProtocolMapper.js +17 -3
  198. package/openid/userClientRoleProtocolMapper.js.map +1 -1
  199. package/openid/userPropertyProtocolMapper.d.ts +66 -67
  200. package/openid/userPropertyProtocolMapper.js +42 -25
  201. package/openid/userPropertyProtocolMapper.js.map +1 -1
  202. package/openid/userRealmRoleProtocolMapper.d.ts +73 -63
  203. package/openid/userRealmRoleProtocolMapper.js +43 -24
  204. package/openid/userRealmRoleProtocolMapper.js.map +1 -1
  205. package/openid/userSessionNoteProtocolMapper.d.ts +17 -3
  206. package/openid/userSessionNoteProtocolMapper.js +17 -3
  207. package/openid/userSessionNoteProtocolMapper.js.map +1 -1
  208. package/package.json +1 -1
  209. package/realm.d.ts +30 -509
  210. package/realm.js +0 -83
  211. package/realm.js.map +1 -1
  212. package/realmEvents.d.ts +20 -74
  213. package/realmEvents.js +20 -11
  214. package/realmEvents.js.map +1 -1
  215. package/realmKeystoreAesGenerated.d.ts +8 -2
  216. package/realmKeystoreAesGenerated.js +8 -2
  217. package/realmKeystoreAesGenerated.js.map +1 -1
  218. package/realmKeystoreEcdsaGenerated.d.ts +8 -2
  219. package/realmKeystoreEcdsaGenerated.js +8 -2
  220. package/realmKeystoreEcdsaGenerated.js.map +1 -1
  221. package/realmKeystoreHmacGenerated.d.ts +8 -2
  222. package/realmKeystoreHmacGenerated.js +8 -2
  223. package/realmKeystoreHmacGenerated.js.map +1 -1
  224. package/realmKeystoreJavaGenerated.d.ts +8 -2
  225. package/realmKeystoreJavaGenerated.js +8 -2
  226. package/realmKeystoreJavaGenerated.js.map +1 -1
  227. package/realmKeystoreRsa.d.ts +6 -2
  228. package/realmKeystoreRsa.js +6 -2
  229. package/realmKeystoreRsa.js.map +1 -1
  230. package/realmKeystoreRsaGenerated.d.ts +8 -2
  231. package/realmKeystoreRsaGenerated.js +8 -2
  232. package/realmKeystoreRsaGenerated.js.map +1 -1
  233. package/realmUserProfile.d.ts +2 -0
  234. package/realmUserProfile.js +2 -0
  235. package/realmUserProfile.js.map +1 -1
  236. package/requiredAction.d.ts +8 -2
  237. package/requiredAction.js +8 -2
  238. package/requiredAction.js.map +1 -1
  239. package/role.d.ts +58 -125
  240. package/role.js +58 -71
  241. package/role.js.map +1 -1
  242. package/saml/client.d.ts +46 -327
  243. package/saml/client.js +46 -12
  244. package/saml/client.js.map +1 -1
  245. package/saml/clientDefaultScope.d.ts +5 -1
  246. package/saml/clientDefaultScope.js +5 -1
  247. package/saml/clientDefaultScope.js.map +1 -1
  248. package/saml/clientScope.d.ts +10 -2
  249. package/saml/clientScope.js +10 -2
  250. package/saml/clientScope.js.map +1 -1
  251. package/saml/getClient.d.ts +4 -0
  252. package/saml/getClient.js +4 -0
  253. package/saml/getClient.js.map +1 -1
  254. package/saml/getClientInstallationProvider.d.ts +4 -0
  255. package/saml/getClientInstallationProvider.js +4 -0
  256. package/saml/getClientInstallationProvider.js.map +1 -1
  257. package/saml/identityProvider.d.ts +163 -117
  258. package/saml/identityProvider.js +52 -21
  259. package/saml/identityProvider.js.map +1 -1
  260. package/saml/scriptProtocolMapper.d.ts +13 -3
  261. package/saml/scriptProtocolMapper.js +13 -3
  262. package/saml/scriptProtocolMapper.js.map +1 -1
  263. package/saml/userAttributeProtocolMapper.d.ts +32 -91
  264. package/saml/userAttributeProtocolMapper.js +32 -19
  265. package/saml/userAttributeProtocolMapper.js.map +1 -1
  266. package/saml/userPropertyProtocolMapper.d.ts +32 -91
  267. package/saml/userPropertyProtocolMapper.js +32 -19
  268. package/saml/userPropertyProtocolMapper.js.map +1 -1
  269. package/types/input.d.ts +74 -183
  270. package/types/output.d.ts +44 -207
  271. package/user.d.ts +36 -112
  272. package/user.js +36 -22
  273. package/user.js.map +1 -1
  274. package/userGroups.d.ts +9 -1
  275. package/userGroups.js +9 -1
  276. package/userGroups.js.map +1 -1
  277. package/userRoles.d.ts +11 -2
  278. package/userRoles.js +11 -2
  279. package/userRoles.js.map +1 -1
  280. package/userTemplateImporterIdentityProviderMapper.d.ts +10 -2
  281. package/userTemplateImporterIdentityProviderMapper.js +10 -2
  282. package/userTemplateImporterIdentityProviderMapper.js.map +1 -1
  283. package/usersPermissions.d.ts +10 -25
  284. package/usersPermissions.js +10 -25
  285. package/usersPermissions.js.map +1 -1
@@ -1,68 +1,85 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
- * Allows for creating and managing user property protocol mappers within Keycloak.
3
+ * ## # keycloak.openid.UserPropertyProtocolMapper
4
4
  *
5
- * User property protocol mappers allow you to map built in properties defined on the Keycloak user interface to a claim in
6
- * a token.
5
+ * Allows for creating and managing user property protocol mappers within
6
+ * Keycloak.
7
7
  *
8
- * Protocol mappers can be defined for a single client, or they can be defined for a client scope which can be shared between
9
- * multiple different clients.
8
+ * User property protocol mappers allow you to map built in properties defined
9
+ * on the Keycloak user interface to a claim in a token. Protocol mappers can be
10
+ * defined for a single client, or they can be defined for a client scope which
11
+ * can be shared between multiple different clients.
10
12
  *
11
- * ## Example Usage
12
- * ### Client)
13
+ * ### Example Usage (Client)
13
14
  *
15
+ * <!--Start PulumiCodeChooser -->
14
16
  * ```typescript
15
17
  * import * as pulumi from "@pulumi/pulumi";
16
18
  * import * as keycloak from "@pulumi/keycloak";
17
19
  *
18
20
  * const realm = new keycloak.Realm("realm", {
19
- * realm: "my-realm",
20
21
  * enabled: true,
22
+ * realm: "my-realm",
21
23
  * });
22
24
  * const openidClient = new keycloak.openid.Client("openidClient", {
23
- * realmId: realm.id,
24
- * clientId: "client",
25
- * enabled: true,
26
25
  * accessType: "CONFIDENTIAL",
26
+ * clientId: "test-client",
27
+ * enabled: true,
28
+ * realmId: realm.id,
27
29
  * validRedirectUris: ["http://localhost:8080/openid-callback"],
28
30
  * });
29
31
  * const userPropertyMapper = new keycloak.openid.UserPropertyProtocolMapper("userPropertyMapper", {
30
- * realmId: realm.id,
32
+ * claimName: "email",
31
33
  * clientId: openidClient.id,
34
+ * realmId: realm.id,
32
35
  * userProperty: "email",
33
- * claimName: "email",
34
36
  * });
35
37
  * ```
36
- * ### Client Scope)
38
+ * <!--End PulumiCodeChooser -->
39
+ *
40
+ * ### Example Usage (Client Scope)
37
41
  *
42
+ * <!--Start PulumiCodeChooser -->
38
43
  * ```typescript
39
44
  * import * as pulumi from "@pulumi/pulumi";
40
45
  * import * as keycloak from "@pulumi/keycloak";
41
46
  *
42
47
  * const realm = new keycloak.Realm("realm", {
43
- * realm: "my-realm",
44
48
  * enabled: true,
49
+ * realm: "my-realm",
45
50
  * });
46
51
  * const clientScope = new keycloak.openid.ClientScope("clientScope", {realmId: realm.id});
47
52
  * const userPropertyMapper = new keycloak.openid.UserPropertyProtocolMapper("userPropertyMapper", {
48
- * realmId: realm.id,
53
+ * claimName: "email",
49
54
  * clientScopeId: clientScope.id,
55
+ * realmId: realm.id,
50
56
  * userProperty: "email",
51
- * claimName: "email",
52
57
  * });
53
58
  * ```
59
+ * <!--End PulumiCodeChooser -->
54
60
  *
55
- * ## Import
61
+ * ### Argument Reference
56
62
  *
57
- * Protocol mappers can be imported using one of the following formats- Client`{{realm_id}}/client/{{client_keycloak_id}}/{{protocol_mapper_id}}` - Client Scope`{{realm_id}}/client-scope/{{client_scope_keycloak_id}}/{{protocol_mapper_id}}` Examplebash
63
+ * The following arguments are supported:
58
64
  *
59
- * ```sh
60
- * $ pulumi import keycloak:openid/userPropertyProtocolMapper:UserPropertyProtocolMapper user_property_mapper my-realm/client/a7202154-8793-4656-b655-1dd18c181e14/71602afa-f7d1-4788-8c49-ef8fd00af0f4
61
- * ```
65
+ * - `realmId` - (Required) The realm this protocol mapper exists within.
66
+ * - `clientId` - (Required if `clientScopeId` is not specified) The client this protocol mapper is attached to.
67
+ * - `clientScopeId` - (Required if `clientId` is not specified) The client scope this protocol mapper is attached to.
68
+ * - `name` - (Required) The display name of this protocol mapper in the GUI.
69
+ * - `userProperty` - (Required) The built in user property (such as email) to map a claim for.
70
+ * - `claimName` - (Required) The name of the claim to insert into a token.
71
+ * - `claimValueType` - (Optional) The claim type used when serializing JSON tokens. Can be one of `String`, `long`, `int`, or `boolean`. Defaults to `String`.
72
+ * - `addToIdToken` - (Optional) Indicates if the property should be added as a claim to the id token. Defaults to `true`.
73
+ * - `addToAccessToken` - (Optional) Indicates if the property should be added as a claim to the access token. Defaults to `true`.
74
+ * - `addToUserinfo` - (Optional) Indicates if the property should be added as a claim to the UserInfo response body. Defaults to `true`.
62
75
  *
63
- * ```sh
64
- * $ pulumi import keycloak:openid/userPropertyProtocolMapper:UserPropertyProtocolMapper user_property_mapper my-realm/client-scope/b799ea7e-73ee-4a73-990a-1eafebe8e20a/71602afa-f7d1-4788-8c49-ef8fd00af0f4
65
- * ```
76
+ * ### Import
77
+ *
78
+ * Protocol mappers can be imported using one of the following formats:
79
+ * - Client: `{{realm_id}}/client/{{client_keycloak_id}}/{{protocol_mapper_id}}`
80
+ * - Client Scope: `{{realm_id}}/client-scope/{{client_scope_keycloak_id}}/{{protocol_mapper_id}}`
81
+ *
82
+ * Example:
66
83
  */
67
84
  export declare class UserPropertyProtocolMapper extends pulumi.CustomResource {
68
85
  /**
@@ -81,44 +98,38 @@ export declare class UserPropertyProtocolMapper extends pulumi.CustomResource {
81
98
  */
82
99
  static isInstance(obj: any): obj is UserPropertyProtocolMapper;
83
100
  /**
84
- * Indicates if the property should be added as a claim to the access token. Defaults to `true`.
101
+ * Indicates if the property should be a claim in the access token.
85
102
  */
86
103
  readonly addToAccessToken: pulumi.Output<boolean | undefined>;
87
104
  /**
88
- * Indicates if the property should be added as a claim to the id token. Defaults to `true`.
105
+ * Indicates if the property should be a claim in the id token.
89
106
  */
90
107
  readonly addToIdToken: pulumi.Output<boolean | undefined>;
91
108
  /**
92
- * Indicates if the property should be added as a claim to the UserInfo response body. Defaults to `true`.
109
+ * Indicates if the property should appear in the userinfo response body.
93
110
  */
94
111
  readonly addToUserinfo: pulumi.Output<boolean | undefined>;
95
- /**
96
- * The name of the claim to insert into a token.
97
- */
98
112
  readonly claimName: pulumi.Output<string>;
99
113
  /**
100
- * The claim type used when serializing JSON tokens. Can be one of `String`, `JSON`, `long`, `int`, or `boolean`. Defaults to `String`.
114
+ * Claim type used when serializing tokens.
101
115
  */
102
116
  readonly claimValueType: pulumi.Output<string | undefined>;
103
117
  /**
104
- * The client this protocol mapper should be attached to. Conflicts with `clientScopeId`. One of `clientId` or `clientScopeId` must be specified.
118
+ * The mapper's associated client. Cannot be used at the same time as client_scope_id.
105
119
  */
106
120
  readonly clientId: pulumi.Output<string | undefined>;
107
121
  /**
108
- * The client scope this protocol mapper should be attached to. Conflicts with `clientId`. One of `clientId` or `clientScopeId` must be specified. `clientScopeId` - (Required if `clientId` is not specified) The client scope this protocol mapper is attached to.
122
+ * The mapper's associated client scope. Cannot be used at the same time as client_id.
109
123
  */
110
124
  readonly clientScopeId: pulumi.Output<string | undefined>;
111
125
  /**
112
- * The display name of this protocol mapper in the GUI.
126
+ * A human-friendly name that will appear in the Keycloak console.
113
127
  */
114
128
  readonly name: pulumi.Output<string>;
115
129
  /**
116
- * The realm this protocol mapper exists within.
130
+ * The realm id where the associated client or client scope exists.
117
131
  */
118
132
  readonly realmId: pulumi.Output<string>;
119
- /**
120
- * The built in user property (such as email) to map a claim for.
121
- */
122
133
  readonly userProperty: pulumi.Output<string>;
123
134
  /**
124
135
  * Create a UserPropertyProtocolMapper resource with the given unique name, arguments, and options.
@@ -134,44 +145,38 @@ export declare class UserPropertyProtocolMapper extends pulumi.CustomResource {
134
145
  */
135
146
  export interface UserPropertyProtocolMapperState {
136
147
  /**
137
- * Indicates if the property should be added as a claim to the access token. Defaults to `true`.
148
+ * Indicates if the property should be a claim in the access token.
138
149
  */
139
150
  addToAccessToken?: pulumi.Input<boolean>;
140
151
  /**
141
- * Indicates if the property should be added as a claim to the id token. Defaults to `true`.
152
+ * Indicates if the property should be a claim in the id token.
142
153
  */
143
154
  addToIdToken?: pulumi.Input<boolean>;
144
155
  /**
145
- * Indicates if the property should be added as a claim to the UserInfo response body. Defaults to `true`.
156
+ * Indicates if the property should appear in the userinfo response body.
146
157
  */
147
158
  addToUserinfo?: pulumi.Input<boolean>;
148
- /**
149
- * The name of the claim to insert into a token.
150
- */
151
159
  claimName?: pulumi.Input<string>;
152
160
  /**
153
- * The claim type used when serializing JSON tokens. Can be one of `String`, `JSON`, `long`, `int`, or `boolean`. Defaults to `String`.
161
+ * Claim type used when serializing tokens.
154
162
  */
155
163
  claimValueType?: pulumi.Input<string>;
156
164
  /**
157
- * The client this protocol mapper should be attached to. Conflicts with `clientScopeId`. One of `clientId` or `clientScopeId` must be specified.
165
+ * The mapper's associated client. Cannot be used at the same time as client_scope_id.
158
166
  */
159
167
  clientId?: pulumi.Input<string>;
160
168
  /**
161
- * The client scope this protocol mapper should be attached to. Conflicts with `clientId`. One of `clientId` or `clientScopeId` must be specified. `clientScopeId` - (Required if `clientId` is not specified) The client scope this protocol mapper is attached to.
169
+ * The mapper's associated client scope. Cannot be used at the same time as client_id.
162
170
  */
163
171
  clientScopeId?: pulumi.Input<string>;
164
172
  /**
165
- * The display name of this protocol mapper in the GUI.
173
+ * A human-friendly name that will appear in the Keycloak console.
166
174
  */
167
175
  name?: pulumi.Input<string>;
168
176
  /**
169
- * The realm this protocol mapper exists within.
177
+ * The realm id where the associated client or client scope exists.
170
178
  */
171
179
  realmId?: pulumi.Input<string>;
172
- /**
173
- * The built in user property (such as email) to map a claim for.
174
- */
175
180
  userProperty?: pulumi.Input<string>;
176
181
  }
177
182
  /**
@@ -179,43 +184,37 @@ export interface UserPropertyProtocolMapperState {
179
184
  */
180
185
  export interface UserPropertyProtocolMapperArgs {
181
186
  /**
182
- * Indicates if the property should be added as a claim to the access token. Defaults to `true`.
187
+ * Indicates if the property should be a claim in the access token.
183
188
  */
184
189
  addToAccessToken?: pulumi.Input<boolean>;
185
190
  /**
186
- * Indicates if the property should be added as a claim to the id token. Defaults to `true`.
191
+ * Indicates if the property should be a claim in the id token.
187
192
  */
188
193
  addToIdToken?: pulumi.Input<boolean>;
189
194
  /**
190
- * Indicates if the property should be added as a claim to the UserInfo response body. Defaults to `true`.
195
+ * Indicates if the property should appear in the userinfo response body.
191
196
  */
192
197
  addToUserinfo?: pulumi.Input<boolean>;
193
- /**
194
- * The name of the claim to insert into a token.
195
- */
196
198
  claimName: pulumi.Input<string>;
197
199
  /**
198
- * The claim type used when serializing JSON tokens. Can be one of `String`, `JSON`, `long`, `int`, or `boolean`. Defaults to `String`.
200
+ * Claim type used when serializing tokens.
199
201
  */
200
202
  claimValueType?: pulumi.Input<string>;
201
203
  /**
202
- * The client this protocol mapper should be attached to. Conflicts with `clientScopeId`. One of `clientId` or `clientScopeId` must be specified.
204
+ * The mapper's associated client. Cannot be used at the same time as client_scope_id.
203
205
  */
204
206
  clientId?: pulumi.Input<string>;
205
207
  /**
206
- * The client scope this protocol mapper should be attached to. Conflicts with `clientId`. One of `clientId` or `clientScopeId` must be specified. `clientScopeId` - (Required if `clientId` is not specified) The client scope this protocol mapper is attached to.
208
+ * The mapper's associated client scope. Cannot be used at the same time as client_id.
207
209
  */
208
210
  clientScopeId?: pulumi.Input<string>;
209
211
  /**
210
- * The display name of this protocol mapper in the GUI.
212
+ * A human-friendly name that will appear in the Keycloak console.
211
213
  */
212
214
  name?: pulumi.Input<string>;
213
215
  /**
214
- * The realm this protocol mapper exists within.
216
+ * The realm id where the associated client or client scope exists.
215
217
  */
216
218
  realmId: pulumi.Input<string>;
217
- /**
218
- * The built in user property (such as email) to map a claim for.
219
- */
220
219
  userProperty: pulumi.Input<string>;
221
220
  }
@@ -6,69 +6,86 @@ exports.UserPropertyProtocolMapper = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("../utilities");
8
8
  /**
9
- * Allows for creating and managing user property protocol mappers within Keycloak.
9
+ * ## # keycloak.openid.UserPropertyProtocolMapper
10
10
  *
11
- * User property protocol mappers allow you to map built in properties defined on the Keycloak user interface to a claim in
12
- * a token.
11
+ * Allows for creating and managing user property protocol mappers within
12
+ * Keycloak.
13
13
  *
14
- * Protocol mappers can be defined for a single client, or they can be defined for a client scope which can be shared between
15
- * multiple different clients.
14
+ * User property protocol mappers allow you to map built in properties defined
15
+ * on the Keycloak user interface to a claim in a token. Protocol mappers can be
16
+ * defined for a single client, or they can be defined for a client scope which
17
+ * can be shared between multiple different clients.
16
18
  *
17
- * ## Example Usage
18
- * ### Client)
19
+ * ### Example Usage (Client)
19
20
  *
21
+ * <!--Start PulumiCodeChooser -->
20
22
  * ```typescript
21
23
  * import * as pulumi from "@pulumi/pulumi";
22
24
  * import * as keycloak from "@pulumi/keycloak";
23
25
  *
24
26
  * const realm = new keycloak.Realm("realm", {
25
- * realm: "my-realm",
26
27
  * enabled: true,
28
+ * realm: "my-realm",
27
29
  * });
28
30
  * const openidClient = new keycloak.openid.Client("openidClient", {
29
- * realmId: realm.id,
30
- * clientId: "client",
31
- * enabled: true,
32
31
  * accessType: "CONFIDENTIAL",
32
+ * clientId: "test-client",
33
+ * enabled: true,
34
+ * realmId: realm.id,
33
35
  * validRedirectUris: ["http://localhost:8080/openid-callback"],
34
36
  * });
35
37
  * const userPropertyMapper = new keycloak.openid.UserPropertyProtocolMapper("userPropertyMapper", {
36
- * realmId: realm.id,
38
+ * claimName: "email",
37
39
  * clientId: openidClient.id,
40
+ * realmId: realm.id,
38
41
  * userProperty: "email",
39
- * claimName: "email",
40
42
  * });
41
43
  * ```
42
- * ### Client Scope)
44
+ * <!--End PulumiCodeChooser -->
45
+ *
46
+ * ### Example Usage (Client Scope)
43
47
  *
48
+ * <!--Start PulumiCodeChooser -->
44
49
  * ```typescript
45
50
  * import * as pulumi from "@pulumi/pulumi";
46
51
  * import * as keycloak from "@pulumi/keycloak";
47
52
  *
48
53
  * const realm = new keycloak.Realm("realm", {
49
- * realm: "my-realm",
50
54
  * enabled: true,
55
+ * realm: "my-realm",
51
56
  * });
52
57
  * const clientScope = new keycloak.openid.ClientScope("clientScope", {realmId: realm.id});
53
58
  * const userPropertyMapper = new keycloak.openid.UserPropertyProtocolMapper("userPropertyMapper", {
54
- * realmId: realm.id,
59
+ * claimName: "email",
55
60
  * clientScopeId: clientScope.id,
61
+ * realmId: realm.id,
56
62
  * userProperty: "email",
57
- * claimName: "email",
58
63
  * });
59
64
  * ```
65
+ * <!--End PulumiCodeChooser -->
60
66
  *
61
- * ## Import
67
+ * ### Argument Reference
62
68
  *
63
- * Protocol mappers can be imported using one of the following formats- Client`{{realm_id}}/client/{{client_keycloak_id}}/{{protocol_mapper_id}}` - Client Scope`{{realm_id}}/client-scope/{{client_scope_keycloak_id}}/{{protocol_mapper_id}}` Examplebash
69
+ * The following arguments are supported:
64
70
  *
65
- * ```sh
66
- * $ pulumi import keycloak:openid/userPropertyProtocolMapper:UserPropertyProtocolMapper user_property_mapper my-realm/client/a7202154-8793-4656-b655-1dd18c181e14/71602afa-f7d1-4788-8c49-ef8fd00af0f4
67
- * ```
71
+ * - `realmId` - (Required) The realm this protocol mapper exists within.
72
+ * - `clientId` - (Required if `clientScopeId` is not specified) The client this protocol mapper is attached to.
73
+ * - `clientScopeId` - (Required if `clientId` is not specified) The client scope this protocol mapper is attached to.
74
+ * - `name` - (Required) The display name of this protocol mapper in the GUI.
75
+ * - `userProperty` - (Required) The built in user property (such as email) to map a claim for.
76
+ * - `claimName` - (Required) The name of the claim to insert into a token.
77
+ * - `claimValueType` - (Optional) The claim type used when serializing JSON tokens. Can be one of `String`, `long`, `int`, or `boolean`. Defaults to `String`.
78
+ * - `addToIdToken` - (Optional) Indicates if the property should be added as a claim to the id token. Defaults to `true`.
79
+ * - `addToAccessToken` - (Optional) Indicates if the property should be added as a claim to the access token. Defaults to `true`.
80
+ * - `addToUserinfo` - (Optional) Indicates if the property should be added as a claim to the UserInfo response body. Defaults to `true`.
68
81
  *
69
- * ```sh
70
- * $ pulumi import keycloak:openid/userPropertyProtocolMapper:UserPropertyProtocolMapper user_property_mapper my-realm/client-scope/b799ea7e-73ee-4a73-990a-1eafebe8e20a/71602afa-f7d1-4788-8c49-ef8fd00af0f4
71
- * ```
82
+ * ### Import
83
+ *
84
+ * Protocol mappers can be imported using one of the following formats:
85
+ * - Client: `{{realm_id}}/client/{{client_keycloak_id}}/{{protocol_mapper_id}}`
86
+ * - Client Scope: `{{realm_id}}/client-scope/{{client_scope_keycloak_id}}/{{protocol_mapper_id}}`
87
+ *
88
+ * Example:
72
89
  */
73
90
  class UserPropertyProtocolMapper extends pulumi.CustomResource {
74
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"userPropertyProtocolMapper.js","sourceRoot":"","sources":["../../openid/userPropertyProtocolMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userPropertyProtocolMapper.js","sourceRoot":"","sources":["../../openid/userPropertyProtocolMapper.ts"],"names":[],"mappings":"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"}