@pulumi/keycloak 6.13.0-alpha.1785480702 → 6.13.0

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 (174) hide show
  1. package/config/vars.d.ts +4 -0
  2. package/config/vars.d.ts.map +1 -1
  3. package/config/vars.js +6 -0
  4. package/config/vars.js.map +1 -1
  5. package/customUserFederation.d.ts +3 -3
  6. package/genericClientAuthorizationPolicy.d.ts +207 -0
  7. package/genericClientAuthorizationPolicy.d.ts.map +1 -0
  8. package/genericClientAuthorizationPolicy.js +173 -0
  9. package/genericClientAuthorizationPolicy.js.map +1 -0
  10. package/getGroup.d.ts +42 -5
  11. package/getGroup.d.ts.map +1 -1
  12. package/getGroup.js +30 -0
  13. package/getGroup.js.map +1 -1
  14. package/getRealmClientRegistrationPolicy.d.ts +113 -0
  15. package/getRealmClientRegistrationPolicy.d.ts.map +1 -0
  16. package/getRealmClientRegistrationPolicy.js +99 -0
  17. package/getRealmClientRegistrationPolicy.js.map +1 -0
  18. package/getWorkflow.d.ts +2 -0
  19. package/getWorkflow.d.ts.map +1 -1
  20. package/getWorkflow.js.map +1 -1
  21. package/groupAdminPermissions.d.ts +228 -0
  22. package/groupAdminPermissions.d.ts.map +1 -0
  23. package/groupAdminPermissions.js +179 -0
  24. package/groupAdminPermissions.js.map +1 -0
  25. package/groupPermissions.d.ts +2 -0
  26. package/groupPermissions.d.ts.map +1 -1
  27. package/groupPermissions.js +2 -0
  28. package/groupPermissions.js.map +1 -1
  29. package/identityProviderTokenExchangeScopePermission.d.ts +12 -0
  30. package/identityProviderTokenExchangeScopePermission.d.ts.map +1 -1
  31. package/identityProviderTokenExchangeScopePermission.js +12 -0
  32. package/identityProviderTokenExchangeScopePermission.js.map +1 -1
  33. package/index.d.ts +18 -0
  34. package/index.d.ts.map +1 -1
  35. package/index.js +30 -2
  36. package/index.js.map +1 -1
  37. package/ldap/userFederation.d.ts +12 -0
  38. package/ldap/userFederation.d.ts.map +1 -1
  39. package/ldap/userFederation.js +2 -0
  40. package/ldap/userFederation.js.map +1 -1
  41. package/oidc/identityProvider.d.ts +3 -3
  42. package/oidc/index.d.ts +3 -0
  43. package/oidc/index.d.ts.map +1 -1
  44. package/oidc/index.js +6 -1
  45. package/oidc/index.js.map +1 -1
  46. package/oidc/microsoftIdentityProvider.d.ts +382 -0
  47. package/oidc/microsoftIdentityProvider.d.ts.map +1 -0
  48. package/oidc/microsoftIdentityProvider.js +172 -0
  49. package/oidc/microsoftIdentityProvider.js.map +1 -0
  50. package/openid/audienceProtocolMapper.d.ts +24 -0
  51. package/openid/audienceProtocolMapper.d.ts.map +1 -1
  52. package/openid/audienceProtocolMapper.js +14 -0
  53. package/openid/audienceProtocolMapper.js.map +1 -1
  54. package/openid/audienceResolveProtocolMapper.d.ts +13 -1
  55. package/openid/audienceResolveProtocolMapper.d.ts.map +1 -1
  56. package/openid/audienceResolveProtocolMapper.js +13 -1
  57. package/openid/audienceResolveProtocolMapper.js.map +1 -1
  58. package/openid/client.d.ts +3 -3
  59. package/openid/clientAdminPermissions.d.ts +231 -0
  60. package/openid/clientAdminPermissions.d.ts.map +1 -0
  61. package/openid/clientAdminPermissions.js +182 -0
  62. package/openid/clientAdminPermissions.js.map +1 -0
  63. package/openid/clientJsPolicy.d.ts +128 -0
  64. package/openid/clientJsPolicy.d.ts.map +1 -0
  65. package/openid/clientJsPolicy.js +165 -0
  66. package/openid/clientJsPolicy.js.map +1 -0
  67. package/openid/clientPermissions.d.ts +2 -0
  68. package/openid/clientPermissions.d.ts.map +1 -1
  69. package/openid/clientPermissions.js +2 -0
  70. package/openid/clientPermissions.js.map +1 -1
  71. package/openid/clientScope.d.ts +13 -0
  72. package/openid/clientScope.d.ts.map +1 -1
  73. package/openid/clientScope.js +3 -0
  74. package/openid/clientScope.js.map +1 -1
  75. package/openid/fullNameProtocolMapper.d.ts +12 -0
  76. package/openid/fullNameProtocolMapper.d.ts.map +1 -1
  77. package/openid/fullNameProtocolMapper.js +12 -0
  78. package/openid/fullNameProtocolMapper.js.map +1 -1
  79. package/openid/getClientAuthorizationScope.d.ts +284 -0
  80. package/openid/getClientAuthorizationScope.d.ts.map +1 -0
  81. package/openid/getClientAuthorizationScope.js +275 -0
  82. package/openid/getClientAuthorizationScope.js.map +1 -0
  83. package/openid/getClientScope.d.ts +1 -0
  84. package/openid/getClientScope.d.ts.map +1 -1
  85. package/openid/getClientScope.js.map +1 -1
  86. package/openid/groupMembershipProtocolMapper.d.ts +24 -0
  87. package/openid/groupMembershipProtocolMapper.d.ts.map +1 -1
  88. package/openid/groupMembershipProtocolMapper.js +14 -0
  89. package/openid/groupMembershipProtocolMapper.js.map +1 -1
  90. package/openid/hardcodedClaimProtocolMapper.d.ts +12 -0
  91. package/openid/hardcodedClaimProtocolMapper.d.ts.map +1 -1
  92. package/openid/hardcodedClaimProtocolMapper.js +12 -0
  93. package/openid/hardcodedClaimProtocolMapper.js.map +1 -1
  94. package/openid/hardcodedRoleProtocolMapper.d.ts +12 -0
  95. package/openid/hardcodedRoleProtocolMapper.d.ts.map +1 -1
  96. package/openid/hardcodedRoleProtocolMapper.js +12 -0
  97. package/openid/hardcodedRoleProtocolMapper.js.map +1 -1
  98. package/openid/index.d.ts +9 -0
  99. package/openid/index.d.ts.map +1 -1
  100. package/openid/index.js +14 -1
  101. package/openid/index.js.map +1 -1
  102. package/openid/subProtocolMapper.d.ts +12 -0
  103. package/openid/subProtocolMapper.d.ts.map +1 -1
  104. package/openid/subProtocolMapper.js +12 -0
  105. package/openid/subProtocolMapper.js.map +1 -1
  106. package/openid/userAttributeProtocolMapper.d.ts +12 -0
  107. package/openid/userAttributeProtocolMapper.d.ts.map +1 -1
  108. package/openid/userAttributeProtocolMapper.js +12 -0
  109. package/openid/userAttributeProtocolMapper.js.map +1 -1
  110. package/openid/userClientRoleProtocolMapper.d.ts +12 -0
  111. package/openid/userClientRoleProtocolMapper.d.ts.map +1 -1
  112. package/openid/userClientRoleProtocolMapper.js +12 -0
  113. package/openid/userClientRoleProtocolMapper.js.map +1 -1
  114. package/openid/userPropertyProtocolMapper.d.ts +12 -0
  115. package/openid/userPropertyProtocolMapper.d.ts.map +1 -1
  116. package/openid/userPropertyProtocolMapper.js +12 -0
  117. package/openid/userPropertyProtocolMapper.js.map +1 -1
  118. package/openid/userRealmRoleProtocolMapper.d.ts +12 -0
  119. package/openid/userRealmRoleProtocolMapper.d.ts.map +1 -1
  120. package/openid/userRealmRoleProtocolMapper.js +12 -0
  121. package/openid/userRealmRoleProtocolMapper.js.map +1 -1
  122. package/openid/userSessionNoteProtocolMapper.d.ts +12 -0
  123. package/openid/userSessionNoteProtocolMapper.d.ts.map +1 -1
  124. package/openid/userSessionNoteProtocolMapper.js +12 -0
  125. package/openid/userSessionNoteProtocolMapper.js.map +1 -1
  126. package/package.json +2 -2
  127. package/provider.d.ts +8 -0
  128. package/provider.d.ts.map +1 -1
  129. package/provider.js +1 -0
  130. package/provider.js.map +1 -1
  131. package/realmClientRegistrationPolicy.d.ts +159 -0
  132. package/realmClientRegistrationPolicy.d.ts.map +1 -0
  133. package/realmClientRegistrationPolicy.js +163 -0
  134. package/realmClientRegistrationPolicy.js.map +1 -0
  135. package/realmDefaultClientScopes.d.ts +10 -2
  136. package/realmDefaultClientScopes.d.ts.map +1 -1
  137. package/realmDefaultClientScopes.js +10 -2
  138. package/realmDefaultClientScopes.js.map +1 -1
  139. package/realmLocalization.d.ts +12 -5
  140. package/realmLocalization.d.ts.map +1 -1
  141. package/realmLocalization.js +9 -2
  142. package/realmLocalization.js.map +1 -1
  143. package/realmOptionalClientScopes.d.ts +10 -2
  144. package/realmOptionalClientScopes.d.ts.map +1 -1
  145. package/realmOptionalClientScopes.js +10 -2
  146. package/realmOptionalClientScopes.js.map +1 -1
  147. package/roleAdminPermissions.d.ts +233 -0
  148. package/roleAdminPermissions.d.ts.map +1 -0
  149. package/roleAdminPermissions.js +184 -0
  150. package/roleAdminPermissions.js.map +1 -0
  151. package/saml/userAttributeProtocolMapper.d.ts +12 -0
  152. package/saml/userAttributeProtocolMapper.d.ts.map +1 -1
  153. package/saml/userAttributeProtocolMapper.js +12 -0
  154. package/saml/userAttributeProtocolMapper.js.map +1 -1
  155. package/saml/userPropertyProtocolMapper.d.ts +12 -0
  156. package/saml/userPropertyProtocolMapper.d.ts.map +1 -1
  157. package/saml/userPropertyProtocolMapper.js +12 -0
  158. package/saml/userPropertyProtocolMapper.js.map +1 -1
  159. package/types/input.d.ts +66 -1
  160. package/types/input.d.ts.map +1 -1
  161. package/types/output.d.ts +64 -1
  162. package/types/output.d.ts.map +1 -1
  163. package/usersAdminPermissions.d.ts +229 -0
  164. package/usersAdminPermissions.d.ts.map +1 -0
  165. package/usersAdminPermissions.js +190 -0
  166. package/usersAdminPermissions.js.map +1 -0
  167. package/usersPermissions.d.ts +2 -0
  168. package/usersPermissions.d.ts.map +1 -1
  169. package/usersPermissions.js +2 -0
  170. package/usersPermissions.js.map +1 -1
  171. package/workflow.d.ts +103 -6
  172. package/workflow.d.ts.map +1 -1
  173. package/workflow.js +81 -0
  174. package/workflow.js.map +1 -1
package/config/vars.d.ts CHANGED
@@ -33,6 +33,10 @@ export declare const jwtToken: string | undefined;
33
33
  * A path to a file containing a signed JWT token used for client authentication.
34
34
  */
35
35
  export declare const jwtTokenFile: string | undefined;
36
+ /**
37
+ * The Keycloak version to assume when the server does not report it via the /admin/serverinfo endpoint. Useful on Keycloak 26.4+ when the service account lacks the view-system (or, since 26.5.4, manage-realms) role. Example: "26.4.7".
38
+ */
39
+ export declare const keycloakVersion: string | undefined;
36
40
  export declare const password: string | undefined;
37
41
  export declare const realm: string | undefined;
38
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../../config/vars.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;AAQrD,MAAM,CAAC,OAAO,CAAC,MAAM,iBAAiB,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,GAAG,SAAS,CAAC;AAQ5E;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;AAQtD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,MAAM,CAAC;AAQ3C;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;AAQvD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;AAQvD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;AAQvD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;AAQtD,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ/C;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;AAQpD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ3D;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ9D;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ7D;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,qBAAqB,EAAE,OAAO,GAAG,SAAS,CAAC;AAQhE;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ7C,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../../config/vars.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;AAQrD,MAAM,CAAC,OAAO,CAAC,MAAM,iBAAiB,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,GAAG,SAAS,CAAC;AAQ5E;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;AAQtD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,MAAM,CAAC;AAQ3C;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;AAQvD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;AAQvD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;AAQvD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;AAQtD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;AAQzD,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;AAQlD,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ/C;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;AAQpD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ3D;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ9D;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ7D;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,qBAAqB,EAAE,OAAO,GAAG,SAAS,CAAC;AAQhE;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;AAQ7C,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC"}
package/config/vars.js CHANGED
@@ -100,6 +100,12 @@ Object.defineProperty(exports, "jwtTokenFile", {
100
100
  },
101
101
  enumerable: true,
102
102
  });
103
+ Object.defineProperty(exports, "keycloakVersion", {
104
+ get() {
105
+ return __config.get("keycloakVersion");
106
+ },
107
+ enumerable: true,
108
+ });
103
109
  Object.defineProperty(exports, "password", {
104
110
  get() {
105
111
  return __config.get("password");
@@ -1 +1 @@
1
- {"version":3,"file":"vars.js","sourceRoot":"","sources":["../../config/vars.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vars.js","sourceRoot":"","sources":["../../config/vars.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ export declare class CustomUserFederation extends pulumi.CustomResource {
62
62
  */
63
63
  readonly changedSyncPeriod: pulumi.Output<number | undefined>;
64
64
  /**
65
- * The provider configuration handed over to your custom user federation provider. In order to add multivalued settings, use `##` to separate the values.
65
+ * The provider configuration handed over to your custom user federation provider. To give a setting more than one value, join the values with `##`; each value is stored separately in Keycloak.
66
66
  */
67
67
  readonly config: pulumi.Output<{
68
68
  [key: string]: string;
@@ -117,7 +117,7 @@ export interface CustomUserFederationState {
117
117
  */
118
118
  changedSyncPeriod?: pulumi.Input<number | undefined>;
119
119
  /**
120
- * The provider configuration handed over to your custom user federation provider. In order to add multivalued settings, use `##` to separate the values.
120
+ * The provider configuration handed over to your custom user federation provider. To give a setting more than one value, join the values with `##`; each value is stored separately in Keycloak.
121
121
  */
122
122
  config?: pulumi.Input<{
123
123
  [key: string]: pulumi.Input<string>;
@@ -164,7 +164,7 @@ export interface CustomUserFederationArgs {
164
164
  */
165
165
  changedSyncPeriod?: pulumi.Input<number | undefined>;
166
166
  /**
167
- * The provider configuration handed over to your custom user federation provider. In order to add multivalued settings, use `##` to separate the values.
167
+ * The provider configuration handed over to your custom user federation provider. To give a setting more than one value, join the values with `##`; each value is stored separately in Keycloak.
168
168
  */
169
169
  config?: pulumi.Input<{
170
170
  [key: string]: pulumi.Input<string>;
@@ -0,0 +1,207 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Allows you to manage a Keycloak client authorization policy of any provider type by referencing that
4
+ * provider by its `type`. This is the policy equivalent of `keycloak.GenericRoleMapper` /
5
+ * `keycloak.GenericProtocolMapper`: it works with any policy provider registered in Keycloak, including
6
+ * custom providers you implement yourself.
7
+ *
8
+ * This is intended for custom policy providers that are deployed to Keycloak as a JAR. The `type` is simply
9
+ * the provider id that the policy's
10
+ * [`PolicyProviderFactory`](https://www.keycloak.org/docs-api/latest/javadocs/org/keycloak/authorization/policy/provider/PolicyProviderFactory.html)
11
+ * exposes via `getId()`:
12
+ *
13
+ * - For a policy implemented in Java as an SPI, `type` is whatever your `PolicyProviderFactory.getId()` returns.
14
+ * - For a [JavaScript policy](https://www.keycloak.org/docs/latest/authorization_services/index.html#_policy_js)
15
+ * deployed as a script (in a JAR with a `META-INF/keycloak-scripts.json` descriptor), Keycloak generates the
16
+ * provider id for you as `script-` followed by the `fileName` from the descriptor (if the `fileName`
17
+ * contains a path, it is kept). The `script-` prefix is an implementation detail of the scripting SPI, not a
18
+ * requirement of this resource. For example, `"fileName": "my-policy.js"` is referenced as
19
+ * `type = "script-my-policy.js"`.
20
+ * (Modern Keycloak no longer allows uploading the JavaScript code through the API, so the script must be
21
+ * deployed alongside Keycloak and only referenced here.)
22
+ *
23
+ * For the policy types that ship with Keycloak (role, group, user, client, time, regex, ...) prefer the
24
+ * dedicated resources, e.g. `keycloak.openid.ClientRolePolicy`.
25
+ *
26
+ * ## Example Usage
27
+ *
28
+ * ```typescript
29
+ * import * as pulumi from "@pulumi/pulumi";
30
+ * import * as keycloak from "@pulumi/keycloak";
31
+ *
32
+ * const realm = new keycloak.Realm("realm", {
33
+ * realm: "my-realm",
34
+ * enabled: true,
35
+ * });
36
+ * const test = new keycloak.openid.Client("test", {
37
+ * clientId: "client_id",
38
+ * realmId: realm.id,
39
+ * accessType: "CONFIDENTIAL",
40
+ * serviceAccountsEnabled: true,
41
+ * authorization: {
42
+ * policyEnforcementMode: "ENFORCING",
43
+ * },
44
+ * });
45
+ * // References a custom policy provider implemented in Java and deployed as a JAR.
46
+ * // "type" is the id returned by your PolicyProviderFactory.getId().
47
+ * const custom = new keycloak.GenericClientAuthorizationPolicy("custom", {
48
+ * resourceServerId: test.resourceServerId,
49
+ * realmId: realm.id,
50
+ * name: "my-custom-policy",
51
+ * type: "my-custom-policy-provider",
52
+ * decisionStrategy: "UNANIMOUS",
53
+ * logic: "POSITIVE",
54
+ * description: "Authorization policy backed by a custom Java SPI provider",
55
+ * });
56
+ * // References a JavaScript policy deployed as a script. Here Keycloak generates the
57
+ * // type as "script-" + the fileName from META-INF/keycloak-scripts.json.
58
+ * const deployedJs = new keycloak.GenericClientAuthorizationPolicy("deployed_js", {
59
+ * resourceServerId: test.resourceServerId,
60
+ * realmId: realm.id,
61
+ * name: "deployed-js-policy",
62
+ * type: "script-my-policy.js",
63
+ * decisionStrategy: "UNANIMOUS",
64
+ * logic: "POSITIVE",
65
+ * description: "Authorization policy backed by a deployed JavaScript script",
66
+ * });
67
+ * ```
68
+ *
69
+ * ## Import
70
+ *
71
+ * This resource can be imported using the format: `{{realmId}}/{{resourceServerId}}/{{policyId}}`.
72
+ *
73
+ * Example:
74
+ *
75
+ * ```sh
76
+ * $ pulumi import keycloak:index/genericClientAuthorizationPolicy:GenericClientAuthorizationPolicy deployed_js my-realm/3bd4a686-1062-4b59-97b8-e4e3f10b99da/63b3cde8-987d-4cd9-9306-1955579281d9
77
+ * ```
78
+ */
79
+ export declare class GenericClientAuthorizationPolicy extends pulumi.CustomResource {
80
+ /**
81
+ * Get an existing GenericClientAuthorizationPolicy resource's state with the given name, ID, and optional extra
82
+ * properties used to qualify the lookup.
83
+ *
84
+ * @param name The _unique_ name of the resulting resource.
85
+ * @param id The _unique_ provider ID of the resource to lookup.
86
+ * @param state Any extra arguments used during the lookup.
87
+ * @param opts Optional settings to control the behavior of the CustomResource.
88
+ */
89
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: GenericClientAuthorizationPolicyState, opts?: pulumi.CustomResourceOptions): GenericClientAuthorizationPolicy;
90
+ /**
91
+ * Returns true if the given object is an instance of GenericClientAuthorizationPolicy. This is designed to work even
92
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
93
+ */
94
+ static isInstance(obj: any): obj is GenericClientAuthorizationPolicy;
95
+ /**
96
+ * The decision strategy, can be one of `UNANIMOUS`, `AFFIRMATIVE`, or `CONSENSUS`.
97
+ */
98
+ readonly decisionStrategy: pulumi.Output<string>;
99
+ /**
100
+ * A description for the authorization policy.
101
+ */
102
+ readonly description: pulumi.Output<string | undefined>;
103
+ /**
104
+ * The logic, can be one of `POSITIVE` or `NEGATIVE`. Defaults to `POSITIVE`.
105
+ */
106
+ readonly logic: pulumi.Output<string | undefined>;
107
+ /**
108
+ * The name of the policy.
109
+ */
110
+ readonly name: pulumi.Output<string>;
111
+ /**
112
+ * The realm this policy exists in.
113
+ */
114
+ readonly realmId: pulumi.Output<string>;
115
+ /**
116
+ * The ID of the resource server this policy is attached to.
117
+ */
118
+ readonly resourceServerId: pulumi.Output<string>;
119
+ /**
120
+ * The provider type of the policy, i.e. the id returned by the policy's
121
+ * `PolicyProviderFactory.getId()`. For a custom Java SPI this is whatever id your factory exposes; for a
122
+ * JavaScript policy deployed as a script it is `script-` followed by the `fileName` declared in
123
+ * `META-INF/keycloak-scripts.json`, e.g. `script-my-policy.js`.
124
+ */
125
+ readonly type: pulumi.Output<string>;
126
+ /**
127
+ * Create a GenericClientAuthorizationPolicy resource with the given unique name, arguments, and options.
128
+ *
129
+ * @param name The _unique_ name of the resource.
130
+ * @param args The arguments to use to populate this resource's properties.
131
+ * @param opts A bag of options that control this resource's behavior.
132
+ */
133
+ constructor(name: string, args: GenericClientAuthorizationPolicyArgs, opts?: pulumi.CustomResourceOptions);
134
+ }
135
+ /**
136
+ * Input properties used for looking up and filtering GenericClientAuthorizationPolicy resources.
137
+ */
138
+ export interface GenericClientAuthorizationPolicyState {
139
+ /**
140
+ * The decision strategy, can be one of `UNANIMOUS`, `AFFIRMATIVE`, or `CONSENSUS`.
141
+ */
142
+ decisionStrategy?: pulumi.Input<string | undefined>;
143
+ /**
144
+ * A description for the authorization policy.
145
+ */
146
+ description?: pulumi.Input<string | undefined>;
147
+ /**
148
+ * The logic, can be one of `POSITIVE` or `NEGATIVE`. Defaults to `POSITIVE`.
149
+ */
150
+ logic?: pulumi.Input<string | undefined>;
151
+ /**
152
+ * The name of the policy.
153
+ */
154
+ name?: pulumi.Input<string | undefined>;
155
+ /**
156
+ * The realm this policy exists in.
157
+ */
158
+ realmId?: pulumi.Input<string | undefined>;
159
+ /**
160
+ * The ID of the resource server this policy is attached to.
161
+ */
162
+ resourceServerId?: pulumi.Input<string | undefined>;
163
+ /**
164
+ * The provider type of the policy, i.e. the id returned by the policy's
165
+ * `PolicyProviderFactory.getId()`. For a custom Java SPI this is whatever id your factory exposes; for a
166
+ * JavaScript policy deployed as a script it is `script-` followed by the `fileName` declared in
167
+ * `META-INF/keycloak-scripts.json`, e.g. `script-my-policy.js`.
168
+ */
169
+ type?: pulumi.Input<string | undefined>;
170
+ }
171
+ /**
172
+ * The set of arguments for constructing a GenericClientAuthorizationPolicy resource.
173
+ */
174
+ export interface GenericClientAuthorizationPolicyArgs {
175
+ /**
176
+ * The decision strategy, can be one of `UNANIMOUS`, `AFFIRMATIVE`, or `CONSENSUS`.
177
+ */
178
+ decisionStrategy: pulumi.Input<string>;
179
+ /**
180
+ * A description for the authorization policy.
181
+ */
182
+ description?: pulumi.Input<string | undefined>;
183
+ /**
184
+ * The logic, can be one of `POSITIVE` or `NEGATIVE`. Defaults to `POSITIVE`.
185
+ */
186
+ logic?: pulumi.Input<string | undefined>;
187
+ /**
188
+ * The name of the policy.
189
+ */
190
+ name?: pulumi.Input<string | undefined>;
191
+ /**
192
+ * The realm this policy exists in.
193
+ */
194
+ realmId: pulumi.Input<string>;
195
+ /**
196
+ * The ID of the resource server this policy is attached to.
197
+ */
198
+ resourceServerId: pulumi.Input<string>;
199
+ /**
200
+ * The provider type of the policy, i.e. the id returned by the policy's
201
+ * `PolicyProviderFactory.getId()`. For a custom Java SPI this is whatever id your factory exposes; for a
202
+ * JavaScript policy deployed as a script it is `script-` followed by the `fileName` declared in
203
+ * `META-INF/keycloak-scripts.json`, e.g. `script-my-policy.js`.
204
+ */
205
+ type: pulumi.Input<string>;
206
+ }
207
+ //# sourceMappingURL=genericClientAuthorizationPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericClientAuthorizationPolicy.d.ts","sourceRoot":"","sources":["../genericClientAuthorizationPolicy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.GenericClientAuthorizationPolicy = void 0;
29
+ const pulumi = __importStar(require("@pulumi/pulumi"));
30
+ const utilities = __importStar(require("./utilities"));
31
+ /**
32
+ * Allows you to manage a Keycloak client authorization policy of any provider type by referencing that
33
+ * provider by its `type`. This is the policy equivalent of `keycloak.GenericRoleMapper` /
34
+ * `keycloak.GenericProtocolMapper`: it works with any policy provider registered in Keycloak, including
35
+ * custom providers you implement yourself.
36
+ *
37
+ * This is intended for custom policy providers that are deployed to Keycloak as a JAR. The `type` is simply
38
+ * the provider id that the policy's
39
+ * [`PolicyProviderFactory`](https://www.keycloak.org/docs-api/latest/javadocs/org/keycloak/authorization/policy/provider/PolicyProviderFactory.html)
40
+ * exposes via `getId()`:
41
+ *
42
+ * - For a policy implemented in Java as an SPI, `type` is whatever your `PolicyProviderFactory.getId()` returns.
43
+ * - For a [JavaScript policy](https://www.keycloak.org/docs/latest/authorization_services/index.html#_policy_js)
44
+ * deployed as a script (in a JAR with a `META-INF/keycloak-scripts.json` descriptor), Keycloak generates the
45
+ * provider id for you as `script-` followed by the `fileName` from the descriptor (if the `fileName`
46
+ * contains a path, it is kept). The `script-` prefix is an implementation detail of the scripting SPI, not a
47
+ * requirement of this resource. For example, `"fileName": "my-policy.js"` is referenced as
48
+ * `type = "script-my-policy.js"`.
49
+ * (Modern Keycloak no longer allows uploading the JavaScript code through the API, so the script must be
50
+ * deployed alongside Keycloak and only referenced here.)
51
+ *
52
+ * For the policy types that ship with Keycloak (role, group, user, client, time, regex, ...) prefer the
53
+ * dedicated resources, e.g. `keycloak.openid.ClientRolePolicy`.
54
+ *
55
+ * ## Example Usage
56
+ *
57
+ * ```typescript
58
+ * import * as pulumi from "@pulumi/pulumi";
59
+ * import * as keycloak from "@pulumi/keycloak";
60
+ *
61
+ * const realm = new keycloak.Realm("realm", {
62
+ * realm: "my-realm",
63
+ * enabled: true,
64
+ * });
65
+ * const test = new keycloak.openid.Client("test", {
66
+ * clientId: "client_id",
67
+ * realmId: realm.id,
68
+ * accessType: "CONFIDENTIAL",
69
+ * serviceAccountsEnabled: true,
70
+ * authorization: {
71
+ * policyEnforcementMode: "ENFORCING",
72
+ * },
73
+ * });
74
+ * // References a custom policy provider implemented in Java and deployed as a JAR.
75
+ * // "type" is the id returned by your PolicyProviderFactory.getId().
76
+ * const custom = new keycloak.GenericClientAuthorizationPolicy("custom", {
77
+ * resourceServerId: test.resourceServerId,
78
+ * realmId: realm.id,
79
+ * name: "my-custom-policy",
80
+ * type: "my-custom-policy-provider",
81
+ * decisionStrategy: "UNANIMOUS",
82
+ * logic: "POSITIVE",
83
+ * description: "Authorization policy backed by a custom Java SPI provider",
84
+ * });
85
+ * // References a JavaScript policy deployed as a script. Here Keycloak generates the
86
+ * // type as "script-" + the fileName from META-INF/keycloak-scripts.json.
87
+ * const deployedJs = new keycloak.GenericClientAuthorizationPolicy("deployed_js", {
88
+ * resourceServerId: test.resourceServerId,
89
+ * realmId: realm.id,
90
+ * name: "deployed-js-policy",
91
+ * type: "script-my-policy.js",
92
+ * decisionStrategy: "UNANIMOUS",
93
+ * logic: "POSITIVE",
94
+ * description: "Authorization policy backed by a deployed JavaScript script",
95
+ * });
96
+ * ```
97
+ *
98
+ * ## Import
99
+ *
100
+ * This resource can be imported using the format: `{{realmId}}/{{resourceServerId}}/{{policyId}}`.
101
+ *
102
+ * Example:
103
+ *
104
+ * ```sh
105
+ * $ pulumi import keycloak:index/genericClientAuthorizationPolicy:GenericClientAuthorizationPolicy deployed_js my-realm/3bd4a686-1062-4b59-97b8-e4e3f10b99da/63b3cde8-987d-4cd9-9306-1955579281d9
106
+ * ```
107
+ */
108
+ class GenericClientAuthorizationPolicy extends pulumi.CustomResource {
109
+ /**
110
+ * Get an existing GenericClientAuthorizationPolicy resource's state with the given name, ID, and optional extra
111
+ * properties used to qualify the lookup.
112
+ *
113
+ * @param name The _unique_ name of the resulting resource.
114
+ * @param id The _unique_ provider ID of the resource to lookup.
115
+ * @param state Any extra arguments used during the lookup.
116
+ * @param opts Optional settings to control the behavior of the CustomResource.
117
+ */
118
+ static get(name, id, state, opts) {
119
+ return new GenericClientAuthorizationPolicy(name, state, { ...opts, id: id });
120
+ }
121
+ /** @internal */
122
+ static __pulumiType = 'keycloak:index/genericClientAuthorizationPolicy:GenericClientAuthorizationPolicy';
123
+ /**
124
+ * Returns true if the given object is an instance of GenericClientAuthorizationPolicy. This is designed to work even
125
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
126
+ */
127
+ static isInstance(obj) {
128
+ if (obj === undefined || obj === null) {
129
+ return false;
130
+ }
131
+ return obj['__pulumiType'] === GenericClientAuthorizationPolicy.__pulumiType;
132
+ }
133
+ constructor(name, argsOrState, opts) {
134
+ let resourceInputs = {};
135
+ opts = opts || {};
136
+ if (opts.id) {
137
+ const state = argsOrState;
138
+ resourceInputs["decisionStrategy"] = state?.decisionStrategy;
139
+ resourceInputs["description"] = state?.description;
140
+ resourceInputs["logic"] = state?.logic;
141
+ resourceInputs["name"] = state?.name;
142
+ resourceInputs["realmId"] = state?.realmId;
143
+ resourceInputs["resourceServerId"] = state?.resourceServerId;
144
+ resourceInputs["type"] = state?.type;
145
+ }
146
+ else {
147
+ const args = argsOrState;
148
+ if (args?.decisionStrategy === undefined && !opts.urn) {
149
+ throw new Error("Missing required property 'decisionStrategy'");
150
+ }
151
+ if (args?.realmId === undefined && !opts.urn) {
152
+ throw new Error("Missing required property 'realmId'");
153
+ }
154
+ if (args?.resourceServerId === undefined && !opts.urn) {
155
+ throw new Error("Missing required property 'resourceServerId'");
156
+ }
157
+ if (args?.type === undefined && !opts.urn) {
158
+ throw new Error("Missing required property 'type'");
159
+ }
160
+ resourceInputs["decisionStrategy"] = args?.decisionStrategy;
161
+ resourceInputs["description"] = args?.description;
162
+ resourceInputs["logic"] = args?.logic;
163
+ resourceInputs["name"] = args?.name;
164
+ resourceInputs["realmId"] = args?.realmId;
165
+ resourceInputs["resourceServerId"] = args?.resourceServerId;
166
+ resourceInputs["type"] = args?.type;
167
+ }
168
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
169
+ super(GenericClientAuthorizationPolicy.__pulumiType, name, resourceInputs, opts);
170
+ }
171
+ }
172
+ exports.GenericClientAuthorizationPolicy = GenericClientAuthorizationPolicy;
173
+ //# sourceMappingURL=genericClientAuthorizationPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericClientAuthorizationPolicy.js","sourceRoot":"","sources":["../genericClientAuthorizationPolicy.ts"],"names":[],"mappings":"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"}
package/getGroup.d.ts CHANGED
@@ -26,6 +26,20 @@ import * as pulumi from "@pulumi/pulumi";
26
26
  * groupId: group.apply(group => group.id),
27
27
  * roleIds: [offlineAccess.apply(offlineAccess => offlineAccess.id)],
28
28
  * });
29
+ * // Using group_path to look up nested groups by their full path
30
+ * const superAdmin = keycloak.getRoleOutput({
31
+ * realmId: realm.id,
32
+ * name: "super_admin",
33
+ * });
34
+ * const admins = keycloak.getGroupOutput({
35
+ * realmId: realm.id,
36
+ * groupPath: "/Administration/Full Admins",
37
+ * });
38
+ * const adminsRoles = new keycloak.GroupRoles("admins_roles", {
39
+ * realmId: realm.id,
40
+ * groupId: admins.apply(admins => admins.id),
41
+ * roleIds: [superAdmin.apply(superAdmin => superAdmin.id)],
42
+ * });
29
43
  * ```
30
44
  *
31
45
  * Organization groups can be looked up by setting `organizationId`. Organization groups require Keycloak 26.6.0 or later.
@@ -48,9 +62,13 @@ export declare function getGroup(args: GetGroupArgs, opts?: pulumi.InvokeOptions
48
62
  export interface GetGroupArgs {
49
63
  description?: string;
50
64
  /**
51
- * The name of the group. If there are multiple groups match `name`, the first result will be returned.
65
+ * The full path of the group (e.g. `"/parent/child/subgroup"`). Mutually exclusive with `name`. This uses the Keycloak `/group-by-path` endpoint for a precise lookup.
66
+ */
67
+ groupPath?: string;
68
+ /**
69
+ * The name of the group. Mutually exclusive with `groupPath`. If there are multiple groups matching `name`, the first result is returned.
52
70
  */
53
- name: string;
71
+ name?: string;
54
72
  /**
55
73
  * The organization this group exists within. If omitted, the data source looks up realm groups.
56
74
  */
@@ -68,11 +86,12 @@ export interface GetGroupResult {
68
86
  [key: string]: string;
69
87
  };
70
88
  readonly description?: string;
89
+ readonly groupPath?: string;
71
90
  /**
72
91
  * The provider-assigned unique ID for this managed resource.
73
92
  */
74
93
  readonly id: string;
75
- readonly name: string;
94
+ readonly name?: string;
76
95
  readonly organizationId?: string;
77
96
  readonly parentId: string;
78
97
  readonly path: string;
@@ -105,6 +124,20 @@ export interface GetGroupResult {
105
124
  * groupId: group.apply(group => group.id),
106
125
  * roleIds: [offlineAccess.apply(offlineAccess => offlineAccess.id)],
107
126
  * });
127
+ * // Using group_path to look up nested groups by their full path
128
+ * const superAdmin = keycloak.getRoleOutput({
129
+ * realmId: realm.id,
130
+ * name: "super_admin",
131
+ * });
132
+ * const admins = keycloak.getGroupOutput({
133
+ * realmId: realm.id,
134
+ * groupPath: "/Administration/Full Admins",
135
+ * });
136
+ * const adminsRoles = new keycloak.GroupRoles("admins_roles", {
137
+ * realmId: realm.id,
138
+ * groupId: admins.apply(admins => admins.id),
139
+ * roleIds: [superAdmin.apply(superAdmin => superAdmin.id)],
140
+ * });
108
141
  * ```
109
142
  *
110
143
  * Organization groups can be looked up by setting `organizationId`. Organization groups require Keycloak 26.6.0 or later.
@@ -127,9 +160,13 @@ export declare function getGroupOutput(args: GetGroupOutputArgs, opts?: pulumi.I
127
160
  export interface GetGroupOutputArgs {
128
161
  description?: pulumi.Input<string | undefined>;
129
162
  /**
130
- * The name of the group. If there are multiple groups match `name`, the first result will be returned.
163
+ * The full path of the group (e.g. `"/parent/child/subgroup"`). Mutually exclusive with `name`. This uses the Keycloak `/group-by-path` endpoint for a precise lookup.
164
+ */
165
+ groupPath?: pulumi.Input<string | undefined>;
166
+ /**
167
+ * The name of the group. Mutually exclusive with `groupPath`. If there are multiple groups matching `name`, the first result is returned.
131
168
  */
132
- name: pulumi.Input<string>;
169
+ name?: pulumi.Input<string | undefined>;
133
170
  /**
134
171
  * The organization this group exists within. If omitted, the data source looks up realm groups.
135
172
  */
package/getGroup.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"getGroup.d.ts","sourceRoot":"","sources":["../getGroup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAQjG;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAQzH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACjC"}
1
+ {"version":3,"file":"getGroup.d.ts","sourceRoot":"","sources":["../getGroup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CASjG;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CASzH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACjC"}
package/getGroup.js CHANGED
@@ -55,6 +55,20 @@ const utilities = __importStar(require("./utilities"));
55
55
  * groupId: group.apply(group => group.id),
56
56
  * roleIds: [offlineAccess.apply(offlineAccess => offlineAccess.id)],
57
57
  * });
58
+ * // Using group_path to look up nested groups by their full path
59
+ * const superAdmin = keycloak.getRoleOutput({
60
+ * realmId: realm.id,
61
+ * name: "super_admin",
62
+ * });
63
+ * const admins = keycloak.getGroupOutput({
64
+ * realmId: realm.id,
65
+ * groupPath: "/Administration/Full Admins",
66
+ * });
67
+ * const adminsRoles = new keycloak.GroupRoles("admins_roles", {
68
+ * realmId: realm.id,
69
+ * groupId: admins.apply(admins => admins.id),
70
+ * roleIds: [superAdmin.apply(superAdmin => superAdmin.id)],
71
+ * });
58
72
  * ```
59
73
  *
60
74
  * Organization groups can be looked up by setting `organizationId`. Organization groups require Keycloak 26.6.0 or later.
@@ -74,6 +88,7 @@ function getGroup(args, opts) {
74
88
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
75
89
  return pulumi.runtime.invoke("keycloak:index/getGroup:getGroup", {
76
90
  "description": args.description,
91
+ "groupPath": args.groupPath,
77
92
  "name": args.name,
78
93
  "organizationId": args.organizationId,
79
94
  "realmId": args.realmId,
@@ -107,6 +122,20 @@ exports.getGroup = getGroup;
107
122
  * groupId: group.apply(group => group.id),
108
123
  * roleIds: [offlineAccess.apply(offlineAccess => offlineAccess.id)],
109
124
  * });
125
+ * // Using group_path to look up nested groups by their full path
126
+ * const superAdmin = keycloak.getRoleOutput({
127
+ * realmId: realm.id,
128
+ * name: "super_admin",
129
+ * });
130
+ * const admins = keycloak.getGroupOutput({
131
+ * realmId: realm.id,
132
+ * groupPath: "/Administration/Full Admins",
133
+ * });
134
+ * const adminsRoles = new keycloak.GroupRoles("admins_roles", {
135
+ * realmId: realm.id,
136
+ * groupId: admins.apply(admins => admins.id),
137
+ * roleIds: [superAdmin.apply(superAdmin => superAdmin.id)],
138
+ * });
110
139
  * ```
111
140
  *
112
141
  * Organization groups can be looked up by setting `organizationId`. Organization groups require Keycloak 26.6.0 or later.
@@ -126,6 +155,7 @@ function getGroupOutput(args, opts) {
126
155
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
127
156
  return pulumi.runtime.invokeOutput("keycloak:index/getGroup:getGroup", {
128
157
  "description": args.description,
158
+ "groupPath": args.groupPath,
129
159
  "name": args.name,
130
160
  "organizationId": args.organizationId,
131
161
  "realmId": args.realmId,
package/getGroup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"getGroup.js","sourceRoot":"","sources":["../getGroup.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AACzC,uDAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAgB,QAAQ,CAAC,IAAkB,EAAE,IAA2B;IACpE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,kCAAkC,EAAE;QAC7D,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AARD,4BAQC;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAgB,cAAc,CAAC,IAAwB,EAAE,IAAiC;IACtF,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,kCAAkC,EAAE;QACnE,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AARD,wCAQC"}
1
+ {"version":3,"file":"getGroup.js","sourceRoot":"","sources":["../getGroup.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AACzC,uDAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,SAAgB,QAAQ,CAAC,IAAkB,EAAE,IAA2B;IACpE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,kCAAkC,EAAE;QAC7D,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,WAAW,EAAE,IAAI,CAAC,SAAS;QAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AATD,4BASC;AA0CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,SAAgB,cAAc,CAAC,IAAwB,EAAE,IAAiC;IACtF,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,kCAAkC,EAAE;QACnE,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,WAAW,EAAE,IAAI,CAAC,SAAS;QAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AATD,wCASC"}