From dd3377d5fb35c4a11995c1b9d2c61396c9311684 Mon Sep 17 00:00:00 2001 From: pulumi-bot Date: Fri, 13 Dec 2024 17:36:00 +0000 Subject: [PATCH 1/2] make tfgen --- .pulumi-java-gen.version | 2 +- examples/go.mod | 14 +++++++------- examples/go.sum | 28 ++++++++++++++-------------- provider/go.mod | 20 ++++++++++---------- provider/go.sum | 36 ++++++++++++++++++------------------ sdk/go.mod | 12 ++++++------ sdk/go.sum | 24 ++++++++++++------------ 7 files changed, 68 insertions(+), 68 deletions(-) diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version index 47d04a52..a881cf79 100644 --- a/.pulumi-java-gen.version +++ b/.pulumi-java-gen.version @@ -1 +1 @@ -0.18.0 \ No newline at end of file +0.20.0 \ No newline at end of file diff --git a/examples/go.mod b/examples/go.mod index ad6deb20..a08fe0ca 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -2,7 +2,7 @@ module github.com/pulumi/pulumi-keycloak/examples/v4 go 1.21 -require github.com/pulumi/pulumi/pkg/v3 v3.142.0 +require github.com/pulumi/pulumi/pkg/v3 v3.143.0 require ( cloud.google.com/go v0.112.1 // indirect @@ -123,7 +123,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.10.0 // indirect - github.com/pulumi/pulumi/sdk/v3 v3.142.0 // indirect + github.com/pulumi/pulumi/sdk/v3 v3.143.0 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect @@ -153,15 +153,15 @@ require ( go.uber.org/atomic v1.9.0 // indirect gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.37.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.28.0 // indirect golang.org/x/oauth2 v0.22.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/term v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect diff --git a/examples/go.sum b/examples/go.sum index 304740d7..bb2014fc 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -339,10 +339,10 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE= github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c= -github.com/pulumi/pulumi/pkg/v3 v3.142.0 h1:UE8TFyXrlxvPrATpd3Kl3En34KrFIFWOxxNAodywPNU= -github.com/pulumi/pulumi/pkg/v3 v3.142.0/go.mod h1:3k6WwRIT7veiDnk3Yo2NtqEYX+4dgLCrMIFvEOnjQqI= -github.com/pulumi/pulumi/sdk/v3 v3.142.0 h1:SmcVddGuvwAh3g3XUVQQ5gVRQUKH1yZ6iETpDNHIHlw= -github.com/pulumi/pulumi/sdk/v3 v3.142.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= +github.com/pulumi/pulumi/pkg/v3 v3.143.0 h1:diAlaNVZSRc59ePqbMuvuf/AwecpZyjhh1pGvmLEUwg= +github.com/pulumi/pulumi/pkg/v3 v3.143.0/go.mod h1:XzjN1uQI2HWXYolT2L4RIXzvLEnWTSOzFgFFIUfFEa8= +github.com/pulumi/pulumi/sdk/v3 v3.143.0 h1:z1m8Fc6l723eU2J/bP7UHE5t6WbBu4iIDAl1WaalQk4= +github.com/pulumi/pulumi/sdk/v3 v3.143.0/go.mod h1:OFpZabILGxrFqzcABFpMCksrHGVp4ymRM2BkKjlazDY= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= @@ -434,8 +434,8 @@ golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= @@ -485,8 +485,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -513,8 +513,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -524,8 +524,8 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -536,8 +536,8 @@ golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/provider/go.mod b/provider/go.mod index 875da9a3..3167e0fc 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,6 +1,6 @@ module github.com/pulumi/pulumi-keycloak/provider/v5 -go 1.22.0 +go 1.22.3 toolchain go1.22.7 @@ -13,8 +13,8 @@ replace ( require ( github.com/mrparkers/terraform-provider-keycloak v0.0.0-00010101000000-000000000000 github.com/pulumi/providertest v0.1.3 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.97.1 - github.com/pulumi/pulumi/sdk/v3 v3.142.0 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.98.0 + github.com/pulumi/pulumi/sdk/v3 v3.143.0 github.com/stretchr/testify v1.9.0 ) @@ -182,9 +182,9 @@ require ( github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.10.0 // indirect github.com/pulumi/inflector v0.1.1 // indirect - github.com/pulumi/pulumi-java/pkg v0.18.0 // indirect + github.com/pulumi/pulumi-java/pkg v0.19.0 // indirect github.com/pulumi/pulumi-yaml v1.12.0 // indirect - github.com/pulumi/pulumi/pkg/v3 v3.142.0 // indirect + github.com/pulumi/pulumi/pkg/v3 v3.143.0 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/pulumi/terraform-diff-reader v0.0.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect @@ -225,15 +225,15 @@ require ( go.uber.org/atomic v1.9.0 // indirect gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.37.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.28.0 // indirect golang.org/x/oauth2 v0.22.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/term v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect diff --git a/provider/go.sum b/provider/go.sum index f0f5368f..094e9824 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1920,16 +1920,16 @@ github.com/pulumi/inflector v0.1.1 h1:dvlxlWtXwOJTUUtcYDvwnl6Mpg33prhK+7mzeF+Sob github.com/pulumi/inflector v0.1.1/go.mod h1:HUFCjcPTz96YtTuUlwG3i3EZG4WlniBvR9bd+iJxCUY= github.com/pulumi/providertest v0.1.3 h1:GpNKRy/haNjRHiUA9bi4diU4Op2zf3axYXbga5AepHg= github.com/pulumi/providertest v0.1.3/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0= -github.com/pulumi/pulumi-java/pkg v0.18.0 h1:3PApc5YegH69n6oubB63mqI97pF+oQywWr7ii4082Mw= -github.com/pulumi/pulumi-java/pkg v0.18.0/go.mod h1:YKYYFEb3Jvzf/dDJo0xOeEkIfBAMkkkdhXulauvEjmc= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.97.1 h1:+KTtmSk6jqcqKvgNgtGVUWEimkpEZdLZs0xEYwFw288= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.97.1/go.mod h1:B/Auryr+yVUkLOMzgpFe7HLwKAtXc6YJwpAXfNGyLPk= +github.com/pulumi/pulumi-java/pkg v0.19.0 h1:T9kkGUQJV7UTxenw08m3txsgQkNVnZZxvn1zCcNjaE8= +github.com/pulumi/pulumi-java/pkg v0.19.0/go.mod h1:YKYYFEb3Jvzf/dDJo0xOeEkIfBAMkkkdhXulauvEjmc= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.98.0 h1:FpoJNeqICq0p0IlSs1vOvHarp7uVPMMeTXF321T075k= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.98.0/go.mod h1:q0QIquTDad7QvzdLmT31bzISahN1XrnGF/w/vIsxlX0= github.com/pulumi/pulumi-yaml v1.12.0 h1:ThJP+EBqeJyCnS6w6/PwcEFOT5o112qv0lObhefmFCk= github.com/pulumi/pulumi-yaml v1.12.0/go.mod h1:EhZd1XDfuLa15O51qVVE16U6r8ldK9mLIBclqWCX27Y= -github.com/pulumi/pulumi/pkg/v3 v3.142.0 h1:UE8TFyXrlxvPrATpd3Kl3En34KrFIFWOxxNAodywPNU= -github.com/pulumi/pulumi/pkg/v3 v3.142.0/go.mod h1:3k6WwRIT7veiDnk3Yo2NtqEYX+4dgLCrMIFvEOnjQqI= -github.com/pulumi/pulumi/sdk/v3 v3.142.0 h1:SmcVddGuvwAh3g3XUVQQ5gVRQUKH1yZ6iETpDNHIHlw= -github.com/pulumi/pulumi/sdk/v3 v3.142.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= +github.com/pulumi/pulumi/pkg/v3 v3.143.0 h1:diAlaNVZSRc59ePqbMuvuf/AwecpZyjhh1pGvmLEUwg= +github.com/pulumi/pulumi/pkg/v3 v3.143.0/go.mod h1:XzjN1uQI2HWXYolT2L4RIXzvLEnWTSOzFgFFIUfFEa8= +github.com/pulumi/pulumi/sdk/v3 v3.143.0 h1:z1m8Fc6l723eU2J/bP7UHE5t6WbBu4iIDAl1WaalQk4= +github.com/pulumi/pulumi/sdk/v3 v3.143.0/go.mod h1:OFpZabILGxrFqzcABFpMCksrHGVp4ymRM2BkKjlazDY= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= @@ -2140,8 +2140,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2347,8 +2347,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2459,8 +2459,8 @@ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -2481,8 +2481,8 @@ golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2504,8 +2504,8 @@ golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/sdk/go.mod b/sdk/go.mod index 1c430837..de03069d 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi/sdk/v3 v3.142.0 + github.com/pulumi/pulumi/sdk/v3 v3.143.0 ) require ( @@ -74,14 +74,14 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.2 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/tools v0.22.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/grpc v1.63.2 // indirect diff --git a/sdk/go.sum b/sdk/go.sum index 54cd0acd..8fc058c0 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -150,8 +150,8 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c= -github.com/pulumi/pulumi/sdk/v3 v3.142.0 h1:SmcVddGuvwAh3g3XUVQQ5gVRQUKH1yZ6iETpDNHIHlw= -github.com/pulumi/pulumi/sdk/v3 v3.142.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= +github.com/pulumi/pulumi/sdk/v3 v3.143.0 h1:z1m8Fc6l723eU2J/bP7UHE5t6WbBu4iIDAl1WaalQk4= +github.com/pulumi/pulumi/sdk/v3 v3.143.0/go.mod h1:OFpZabILGxrFqzcABFpMCksrHGVp4ymRM2BkKjlazDY= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= @@ -209,8 +209,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= @@ -239,8 +239,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -261,15 +261,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -277,8 +277,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= From e5b09412f86bd2ab080543991340b390a80c90f6 Mon Sep 17 00:00:00 2001 From: pulumi-bot Date: Fri, 13 Dec 2024 17:37:36 +0000 Subject: [PATCH 2/2] make build_sdks --- sdk/dotnet/GetAuthenticationExecution.cs | 32 ++ sdk/dotnet/GetAuthenticationFlow.cs | 31 ++ sdk/dotnet/GetClientDescriptionConverter.cs | 65 +++ sdk/dotnet/GetGroup.cs | 48 ++ sdk/dotnet/GetRealm.cs | 32 ++ sdk/dotnet/GetRealmKeys.cs | 12 + sdk/dotnet/GetRole.cs | 49 ++ sdk/dotnet/GetUser.cs | 35 ++ sdk/dotnet/GetUserRealmRoles.cs | 42 ++ sdk/dotnet/OpenId/GetClient.cs | 33 ++ .../OpenId/GetClientAuthorizationPolicy.cs | 79 +++ sdk/dotnet/OpenId/GetClientScope.cs | 34 ++ .../OpenId/GetClientServiceAccountUser.cs | 61 +++ sdk/dotnet/Saml/GetClient.cs | 33 ++ .../Saml/GetClientInstallationProvider.cs | 6 + sdk/dotnet/Utilities.cs | 7 + sdk/go/keycloak/getAuthenticationExecution.go | 16 +- sdk/go/keycloak/getAuthenticationFlow.go | 16 +- .../keycloak/getClientDescriptionConverter.go | 16 +- sdk/go/keycloak/getGroup.go | 16 +- sdk/go/keycloak/getRealm.go | 16 +- sdk/go/keycloak/getRealmKeys.go | 16 +- sdk/go/keycloak/getRole.go | 16 +- sdk/go/keycloak/getUser.go | 16 +- sdk/go/keycloak/getUserRealmRoles.go | 16 +- sdk/go/keycloak/openid/getClient.go | 16 +- .../openid/getClientAuthorizationPolicy.go | 16 +- sdk/go/keycloak/openid/getClientScope.go | 16 +- .../openid/getClientServiceAccountUser.go | 16 +- sdk/go/keycloak/saml/getClient.go | 16 +- .../saml/getClientInstallationProvider.go | 16 +- sdk/java/build.gradle | 2 +- .../pulumi/keycloak/KeycloakFunctions.java | 491 ++++++++++++++++++ .../java/com/pulumi/keycloak/Utilities.java | 31 +- .../keycloak/openid/OpenidFunctions.java | 275 ++++++++++ .../pulumi/keycloak/saml/SamlFunctions.java | 60 +++ sdk/nodejs/package.json | 2 +- sdk/python/pyproject.toml | 4 +- 38 files changed, 1496 insertions(+), 208 deletions(-) diff --git a/sdk/dotnet/GetAuthenticationExecution.cs b/sdk/dotnet/GetAuthenticationExecution.cs index 98029f15..0c169987 100644 --- a/sdk/dotnet/GetAuthenticationExecution.cs +++ b/sdk/dotnet/GetAuthenticationExecution.cs @@ -74,6 +74,38 @@ public static Task InvokeAsync(GetAuthenticati /// public static Output Invoke(GetAuthenticationExecutionInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getAuthenticationExecution:getAuthenticationExecution", args ?? new GetAuthenticationExecutionInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch the ID of an authentication execution within Keycloak. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = new Keycloak.Realm("realm", new() + /// { + /// RealmName = "my-realm", + /// Enabled = true, + /// }); + /// + /// var browserAuthCookie = Keycloak.GetAuthenticationExecution.Invoke(new() + /// { + /// RealmId = realm.Id, + /// ParentFlowAlias = "browser", + /// ProviderId = "auth-cookie", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetAuthenticationExecutionInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getAuthenticationExecution:getAuthenticationExecution", args ?? new GetAuthenticationExecutionInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetAuthenticationFlow.cs b/sdk/dotnet/GetAuthenticationFlow.cs index 3cdc116d..4847e6bd 100644 --- a/sdk/dotnet/GetAuthenticationFlow.cs +++ b/sdk/dotnet/GetAuthenticationFlow.cs @@ -72,6 +72,37 @@ public static Task InvokeAsync(GetAuthenticationFlo /// public static Output Invoke(GetAuthenticationFlowInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getAuthenticationFlow:getAuthenticationFlow", args ?? new GetAuthenticationFlowInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch the ID of an authentication flow within Keycloak. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = new Keycloak.Realm("realm", new() + /// { + /// RealmName = "my-realm", + /// Enabled = true, + /// }); + /// + /// var browserAuthCookie = Keycloak.GetAuthenticationFlow.Invoke(new() + /// { + /// RealmId = realm.Id, + /// Alias = "browser", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetAuthenticationFlowInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getAuthenticationFlow:getAuthenticationFlow", args ?? new GetAuthenticationFlowInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetClientDescriptionConverter.cs b/sdk/dotnet/GetClientDescriptionConverter.cs index cb8fde4c..161ae57c 100644 --- a/sdk/dotnet/GetClientDescriptionConverter.cs +++ b/sdk/dotnet/GetClientDescriptionConverter.cs @@ -140,6 +140,71 @@ public static Task InvokeAsync(GetClientDes /// public static Output Invoke(GetClientDescriptionConverterInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter", args ?? new GetClientDescriptionConverterInvokeArgs(), options.WithDefaults()); + + /// + /// This data source uses the [ClientDescriptionConverter](https://www.keycloak.org/docs-api/6.0/javadocs/org/keycloak/exportimport/ClientDescriptionConverter.html) API to convert a generic client description into a Keycloak + /// client. This data can then be used to manage the client within Keycloak. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = new Keycloak.Realm("realm", new() + /// { + /// RealmName = "my-realm", + /// Enabled = true, + /// }); + /// + /// var samlClient = Keycloak.GetClientDescriptionConverter.Invoke(new() + /// { + /// RealmId = realm.Id, + /// Body = @" <md:EntityDescriptor xmlns:md=""urn:oasis:names:tc:SAML:2.0:metadata"" validUntil=""2021-04-17T12:41:46Z"" cacheDuration=""PT604800S"" entityID=""FakeEntityId""> + /// <md:SPSSODescriptor AuthnRequestsSigned=""false"" WantAssertionsSigned=""false"" protocolSupportEnumeration=""urn:oasis:names:tc:SAML:2.0:protocol""> + /// <md:KeyDescriptor use=""signing""> + /// <ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#""> + /// <ds:X509Data> + /// <ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx + /// CzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv + /// YWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW + /// EW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz + /// NlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm + /// b3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi + /// LmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG + /// 9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe + /// qIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj + /// 53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv + /// GX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud + /// IwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI + /// hvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5 + /// n01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj + /// K3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate> + /// </ds:X509Data> + /// </ds:KeyInfo> + /// </md:KeyDescriptor> + /// <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> + /// <md:AssertionConsumerService Binding=""urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"" Location=""https://localhost/acs/saml/"" index=""1""/> + /// </md:SPSSODescriptor> + /// </md:EntityDescriptor> + /// ", + /// }); + /// + /// var samlClientClient = new Keycloak.Saml.Client("saml_client", new() + /// { + /// RealmId = realm.Id, + /// ClientId = samlClient.Apply(getClientDescriptionConverterResult => getClientDescriptionConverterResult.ClientId), + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetClientDescriptionConverterInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter", args ?? new GetClientDescriptionConverterInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetGroup.cs b/sdk/dotnet/GetGroup.cs index 6bd04ee4..7e989dab 100644 --- a/sdk/dotnet/GetGroup.cs +++ b/sdk/dotnet/GetGroup.cs @@ -106,6 +106,54 @@ public static Task InvokeAsync(GetGroupArgs args, InvokeOptions? /// public static Output Invoke(GetGroupInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getGroup:getGroup", args ?? new GetGroupInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch properties of a Keycloak group for + /// usage with other resources, such as `keycloak.GroupRoles`. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = new Keycloak.Realm("realm", new() + /// { + /// RealmName = "my-realm", + /// Enabled = true, + /// }); + /// + /// var offlineAccess = Keycloak.GetRole.Invoke(new() + /// { + /// RealmId = realm.Id, + /// Name = "offline_access", + /// }); + /// + /// var @group = Keycloak.GetGroup.Invoke(new() + /// { + /// RealmId = realm.Id, + /// Name = "group", + /// }); + /// + /// var groupRoles = new Keycloak.GroupRoles("group_roles", new() + /// { + /// RealmId = realm.Id, + /// GroupId = @group.Apply(@group => @group.Apply(getGroupResult => getGroupResult.Id)), + /// RoleIds = new[] + /// { + /// offlineAccess.Apply(getRoleResult => getRoleResult.Id), + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetGroupInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getGroup:getGroup", args ?? new GetGroupInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetRealm.cs b/sdk/dotnet/GetRealm.cs index efc7d18a..3f42627f 100644 --- a/sdk/dotnet/GetRealm.cs +++ b/sdk/dotnet/GetRealm.cs @@ -74,6 +74,38 @@ public static Task InvokeAsync(GetRealmArgs args, InvokeOptions? /// public static Output Invoke(GetRealmInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getRealm:getRealm", args ?? new GetRealmInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch properties of a Keycloak realm for + /// usage with other resources. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = Keycloak.GetRealm.Invoke(new() + /// { + /// Realm = "my-realm", + /// }); + /// + /// // use the data source + /// var @group = new Keycloak.Role("group", new() + /// { + /// RealmId = realm.Apply(getRealmResult => getRealmResult.Id), + /// Name = "group", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetRealmInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getRealm:getRealm", args ?? new GetRealmInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetRealmKeys.cs b/sdk/dotnet/GetRealmKeys.cs index 909cd03e..3ab84210 100644 --- a/sdk/dotnet/GetRealmKeys.cs +++ b/sdk/dotnet/GetRealmKeys.cs @@ -34,6 +34,18 @@ public static Task InvokeAsync(GetRealmKeysArgs args, Invoke /// public static Output Invoke(GetRealmKeysInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getRealmKeys:getRealmKeys", args ?? new GetRealmKeysInvokeArgs(), options.WithDefaults()); + + /// + /// Use this data source to get the keys of a realm. Keys can be filtered by algorithm and status. + /// + /// Remarks: + /// + /// - A key must meet all filter criteria + /// - This data source may return more than one value. + /// - If no key matches the filter criteria, then an error will be returned. + /// + public static Output Invoke(GetRealmKeysInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getRealmKeys:getRealmKeys", args ?? new GetRealmKeysInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetRole.cs b/sdk/dotnet/GetRole.cs index 12825517..6036158b 100644 --- a/sdk/dotnet/GetRole.cs +++ b/sdk/dotnet/GetRole.cs @@ -108,6 +108,55 @@ public static Task InvokeAsync(GetRoleArgs args, InvokeOptions? o /// public static Output Invoke(GetRoleInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getRole:getRole", args ?? new GetRoleInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch properties of a Keycloak role for + /// usage with other resources, such as `keycloak.GroupRoles`. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = new Keycloak.Realm("realm", new() + /// { + /// RealmName = "my-realm", + /// Enabled = true, + /// }); + /// + /// var offlineAccess = Keycloak.GetRole.Invoke(new() + /// { + /// RealmId = realm.Id, + /// Name = "offline_access", + /// }); + /// + /// // use the data source + /// var @group = new Keycloak.Group("group", new() + /// { + /// RealmId = realm.Id, + /// Name = "group", + /// }); + /// + /// var groupRoles = new Keycloak.GroupRoles("group_roles", new() + /// { + /// RealmId = realm.Id, + /// GroupId = @group.Id, + /// RoleIds = new[] + /// { + /// offlineAccess.Apply(getRoleResult => getRoleResult.Id), + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetRoleInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getRole:getRole", args ?? new GetRoleInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetUser.cs b/sdk/dotnet/GetUser.cs index 5d37cda5..df989ff0 100644 --- a/sdk/dotnet/GetUser.cs +++ b/sdk/dotnet/GetUser.cs @@ -80,6 +80,41 @@ public static Task InvokeAsync(GetUserArgs args, InvokeOptions? o /// public static Output Invoke(GetUserInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getUser:getUser", args ?? new GetUserInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch properties of a user within Keycloak. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var masterRealm = Keycloak.GetRealm.Invoke(new() + /// { + /// Realm = "master", + /// }); + /// + /// // use the keycloak_user data source to grab the admin user's ID + /// var defaultAdminUser = Keycloak.GetUser.Invoke(new() + /// { + /// RealmId = masterRealm.Apply(getRealmResult => getRealmResult.Id), + /// Username = "keycloak", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["keycloakUserId"] = defaultAdminUser.Apply(getUserResult => getUserResult.Id), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetUserInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getUser:getUser", args ?? new GetUserInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetUserRealmRoles.cs b/sdk/dotnet/GetUserRealmRoles.cs index c6a21d70..7d7e7260 100644 --- a/sdk/dotnet/GetUserRealmRoles.cs +++ b/sdk/dotnet/GetUserRealmRoles.cs @@ -94,6 +94,48 @@ public static Task InvokeAsync(GetUserRealmRolesArgs ar /// public static Output Invoke(GetUserRealmRolesInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getUserRealmRoles:getUserRealmRoles", args ?? new GetUserRealmRolesInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch the realm roles of a user within Keycloak. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var masterRealm = Keycloak.GetRealm.Invoke(new() + /// { + /// Realm = "master", + /// }); + /// + /// // use the keycloak_user data source to grab the admin user's ID + /// var defaultAdminUser = Keycloak.GetUser.Invoke(new() + /// { + /// RealmId = masterRealm.Apply(getRealmResult => getRealmResult.Id), + /// Username = "keycloak", + /// }); + /// + /// // use the keycloak_user_realm_roles data source to list role names + /// var userRealmRoles = Keycloak.GetUserRealmRoles.Invoke(new() + /// { + /// RealmId = masterRealm.Apply(getRealmResult => getRealmResult.Id), + /// UserId = defaultAdminUser.Apply(getUserResult => getUserResult.Id), + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["keycloakUserRoleNames"] = userRealmRoles.Apply(getUserRealmRolesResult => getUserRealmRolesResult.RoleNames), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetUserRealmRolesInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:index/getUserRealmRoles:getUserRealmRoles", args ?? new GetUserRealmRolesInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/OpenId/GetClient.cs b/sdk/dotnet/OpenId/GetClient.cs index 36850c2f..4739064e 100644 --- a/sdk/dotnet/OpenId/GetClient.cs +++ b/sdk/dotnet/OpenId/GetClient.cs @@ -76,6 +76,39 @@ public static Task InvokeAsync(GetClientArgs args, InvokeOption /// public static Output Invoke(GetClientInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClient:getClient", args ?? new GetClientInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch properties of a Keycloak OpenID client for usage with other resources. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realmManagement = Keycloak.OpenId.GetClient.Invoke(new() + /// { + /// RealmId = "my-realm", + /// ClientId = "realm-management", + /// }); + /// + /// // use the data source + /// var admin = Keycloak.GetRole.Invoke(new() + /// { + /// RealmId = "my-realm", + /// ClientId = realmManagement.Apply(getClientResult => getClientResult.Id), + /// Name = "realm-admin", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetClientInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClient:getClient", args ?? new GetClientInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/OpenId/GetClientAuthorizationPolicy.cs b/sdk/dotnet/OpenId/GetClientAuthorizationPolicy.cs index c38b6e41..c0af25d2 100644 --- a/sdk/dotnet/OpenId/GetClientAuthorizationPolicy.cs +++ b/sdk/dotnet/OpenId/GetClientAuthorizationPolicy.cs @@ -168,6 +168,85 @@ public static Task InvokeAsync(GetClientAuth /// public static Output Invoke(GetClientAuthorizationPolicyInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClientAuthorizationPolicy:getClientAuthorizationPolicy", args ?? new GetClientAuthorizationPolicyInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch policy and permission information for an OpenID client that has authorization enabled. + /// + /// ## Example Usage + /// + /// In this example, we'll create a new OpenID client with authorization enabled. This will cause Keycloak to create a default + /// permission for this client called "Default Permission". We'll use the `keycloak.openid.getClientAuthorizationPolicy` data + /// source to fetch information about this permission, so we can use it to create a new resource-based authorization permission. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = new Keycloak.Realm("realm", new() + /// { + /// RealmName = "my-realm", + /// Enabled = true, + /// }); + /// + /// var clientWithAuthz = new Keycloak.OpenId.Client("client_with_authz", new() + /// { + /// ClientId = "client-with-authz", + /// Name = "client-with-authz", + /// RealmId = realm.Id, + /// AccessType = "CONFIDENTIAL", + /// ServiceAccountsEnabled = true, + /// Authorization = new Keycloak.OpenId.Inputs.ClientAuthorizationArgs + /// { + /// PolicyEnforcementMode = "ENFORCING", + /// }, + /// }); + /// + /// var defaultPermission = Keycloak.OpenId.GetClientAuthorizationPolicy.Invoke(new() + /// { + /// RealmId = realm.Id, + /// ResourceServerId = clientWithAuthz.ResourceServerId, + /// Name = "Default Permission", + /// }); + /// + /// var resource = new Keycloak.OpenId.ClientAuthorizationResource("resource", new() + /// { + /// ResourceServerId = clientWithAuthz.ResourceServerId, + /// Name = "authorization-resource", + /// RealmId = realm.Id, + /// Uris = new[] + /// { + /// "/endpoint/*", + /// }, + /// Attributes = + /// { + /// { "foo", "bar" }, + /// }, + /// }); + /// + /// var permission = new Keycloak.OpenId.ClientAuthorizationPermission("permission", new() + /// { + /// ResourceServerId = clientWithAuthz.ResourceServerId, + /// RealmId = realm.Id, + /// Name = "authorization-permission", + /// Policies = new[] + /// { + /// defaultPermission.Apply(getClientAuthorizationPolicyResult => getClientAuthorizationPolicyResult.Id), + /// }, + /// Resources = new[] + /// { + /// resource.Id, + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetClientAuthorizationPolicyInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClientAuthorizationPolicy:getClientAuthorizationPolicy", args ?? new GetClientAuthorizationPolicyInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/OpenId/GetClientScope.cs b/sdk/dotnet/OpenId/GetClientScope.cs index f65ea5de..481c0d31 100644 --- a/sdk/dotnet/OpenId/GetClientScope.cs +++ b/sdk/dotnet/OpenId/GetClientScope.cs @@ -78,6 +78,40 @@ public static Task InvokeAsync(GetClientScopeArgs args, In /// public static Output Invoke(GetClientScopeInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClientScope:getClientScope", args ?? new GetClientScopeInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch properties of a Keycloak OpenID client scope for usage with other resources. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var offlineAccess = Keycloak.OpenId.GetClientScope.Invoke(new() + /// { + /// RealmId = "my-realm", + /// Name = "offline_access", + /// }); + /// + /// // use the data source + /// var audienceMapper = new Keycloak.OpenId.AudienceProtocolMapper("audience_mapper", new() + /// { + /// RealmId = offlineAccess.Apply(getClientScopeResult => getClientScopeResult.RealmId), + /// ClientScopeId = offlineAccess.Apply(getClientScopeResult => getClientScopeResult.Id), + /// Name = "audience-mapper", + /// IncludedCustomAudience = "foo", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetClientScopeInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClientScope:getClientScope", args ?? new GetClientScopeInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/OpenId/GetClientServiceAccountUser.cs b/sdk/dotnet/OpenId/GetClientServiceAccountUser.cs index 711a54a7..0fafb57d 100644 --- a/sdk/dotnet/OpenId/GetClientServiceAccountUser.cs +++ b/sdk/dotnet/OpenId/GetClientServiceAccountUser.cs @@ -132,6 +132,67 @@ public static Task InvokeAsync(GetClientServi /// public static Output Invoke(GetClientServiceAccountUserInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClientServiceAccountUser:getClientServiceAccountUser", args ?? new GetClientServiceAccountUserInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch information about the service account user that is associated with an OpenID client + /// that has service accounts enabled. + /// + /// ## Example Usage + /// + /// In this example, we'll create an OpenID client with service accounts enabled. This causes Keycloak to create a special user + /// that represents the service account. We'll use this data source to grab this user's ID in order to assign some roles to this + /// user, using the `keycloak.UserRoles` resource. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realm = new Keycloak.Realm("realm", new() + /// { + /// RealmName = "my-realm", + /// Enabled = true, + /// }); + /// + /// var client = new Keycloak.OpenId.Client("client", new() + /// { + /// RealmId = realm.Id, + /// ClientId = "client", + /// Name = "client", + /// AccessType = "CONFIDENTIAL", + /// ServiceAccountsEnabled = true, + /// }); + /// + /// var serviceAccountUser = Keycloak.OpenId.GetClientServiceAccountUser.Invoke(new() + /// { + /// RealmId = realm.Id, + /// ClientId = client.Id, + /// }); + /// + /// var offlineAccess = Keycloak.GetRole.Invoke(new() + /// { + /// RealmId = realm.Id, + /// Name = "offline_access", + /// }); + /// + /// var serviceAccountUserRoles = new Keycloak.UserRoles("service_account_user_roles", new() + /// { + /// RealmId = realm.Id, + /// UserId = serviceAccountUser.Apply(getClientServiceAccountUserResult => getClientServiceAccountUserResult.Id), + /// RoleIds = new[] + /// { + /// offlineAccess.Apply(getRoleResult => getRoleResult.Id), + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetClientServiceAccountUserInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:openid/getClientServiceAccountUser:getClientServiceAccountUser", args ?? new GetClientServiceAccountUserInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Saml/GetClient.cs b/sdk/dotnet/Saml/GetClient.cs index d61104e5..3bdba9d8 100644 --- a/sdk/dotnet/Saml/GetClient.cs +++ b/sdk/dotnet/Saml/GetClient.cs @@ -76,6 +76,39 @@ public static Task InvokeAsync(GetClientArgs args, InvokeOption /// public static Output Invoke(GetClientInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:saml/getClient:getClient", args ?? new GetClientInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to fetch properties of a Keycloak client that uses the SAML protocol. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Keycloak = Pulumi.Keycloak; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var realmManagement = Keycloak.Saml.GetClient.Invoke(new() + /// { + /// RealmId = "my-realm", + /// ClientId = "realm-management", + /// }); + /// + /// // use the data source + /// var admin = Keycloak.GetRole.Invoke(new() + /// { + /// RealmId = "my-realm", + /// ClientId = realmManagement.Apply(getClientResult => getClientResult.Id), + /// Name = "realm-admin", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetClientInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:saml/getClient:getClient", args ?? new GetClientInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Saml/GetClientInstallationProvider.cs b/sdk/dotnet/Saml/GetClientInstallationProvider.cs index 918b984e..52b14c91 100644 --- a/sdk/dotnet/Saml/GetClientInstallationProvider.cs +++ b/sdk/dotnet/Saml/GetClientInstallationProvider.cs @@ -22,6 +22,12 @@ public static Task InvokeAsync(GetClientIns /// public static Output Invoke(GetClientInstallationProviderInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("keycloak:saml/getClientInstallationProvider:getClientInstallationProvider", args ?? new GetClientInstallationProviderInvokeArgs(), options.WithDefaults()); + + /// + /// This data source can be used to retrieve Installation Provider of a SAML Client. + /// + public static Output Invoke(GetClientInstallationProviderInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("keycloak:saml/getClientInstallationProvider:getClientInstallationProvider", args ?? new GetClientInstallationProviderInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Utilities.cs b/sdk/dotnet/Utilities.cs index c08fa824..73ef4ba6 100644 --- a/sdk/dotnet/Utilities.cs +++ b/sdk/dotnet/Utilities.cs @@ -56,6 +56,13 @@ static class Utilities return dst; } + public static global::Pulumi.InvokeOutputOptions WithDefaults(this global::Pulumi.InvokeOutputOptions? src) + { + var dst = src ?? new global::Pulumi.InvokeOutputOptions{}; + dst.Version = src?.Version ?? Version; + return dst; + } + private readonly static string version; public static string Version => version; diff --git a/sdk/go/keycloak/getAuthenticationExecution.go b/sdk/go/keycloak/getAuthenticationExecution.go index f47e61ef..ab2ffb44 100644 --- a/sdk/go/keycloak/getAuthenticationExecution.go +++ b/sdk/go/keycloak/getAuthenticationExecution.go @@ -74,21 +74,11 @@ type GetAuthenticationExecutionResult struct { } func GetAuthenticationExecutionOutput(ctx *pulumi.Context, args GetAuthenticationExecutionOutputArgs, opts ...pulumi.InvokeOption) GetAuthenticationExecutionResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetAuthenticationExecutionResultOutput, error) { args := v.(GetAuthenticationExecutionArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetAuthenticationExecutionResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getAuthenticationExecution:getAuthenticationExecution", args, &rv, "", opts...) - if err != nil { - return GetAuthenticationExecutionResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetAuthenticationExecutionResultOutput) - if secret { - return pulumi.ToSecret(output).(GetAuthenticationExecutionResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getAuthenticationExecution:getAuthenticationExecution", args, GetAuthenticationExecutionResultOutput{}, options).(GetAuthenticationExecutionResultOutput), nil }).(GetAuthenticationExecutionResultOutput) } diff --git a/sdk/go/keycloak/getAuthenticationFlow.go b/sdk/go/keycloak/getAuthenticationFlow.go index 0efaa919..76f44fa0 100644 --- a/sdk/go/keycloak/getAuthenticationFlow.go +++ b/sdk/go/keycloak/getAuthenticationFlow.go @@ -70,21 +70,11 @@ type GetAuthenticationFlowResult struct { } func GetAuthenticationFlowOutput(ctx *pulumi.Context, args GetAuthenticationFlowOutputArgs, opts ...pulumi.InvokeOption) GetAuthenticationFlowResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetAuthenticationFlowResultOutput, error) { args := v.(GetAuthenticationFlowArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetAuthenticationFlowResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getAuthenticationFlow:getAuthenticationFlow", args, &rv, "", opts...) - if err != nil { - return GetAuthenticationFlowResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetAuthenticationFlowResultOutput) - if secret { - return pulumi.ToSecret(output).(GetAuthenticationFlowResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getAuthenticationFlow:getAuthenticationFlow", args, GetAuthenticationFlowResultOutput{}, options).(GetAuthenticationFlowResultOutput), nil }).(GetAuthenticationFlowResultOutput) } diff --git a/sdk/go/keycloak/getClientDescriptionConverter.go b/sdk/go/keycloak/getClientDescriptionConverter.go index c41d0210..bf63e4e8 100644 --- a/sdk/go/keycloak/getClientDescriptionConverter.go +++ b/sdk/go/keycloak/getClientDescriptionConverter.go @@ -145,21 +145,11 @@ type GetClientDescriptionConverterResult struct { } func GetClientDescriptionConverterOutput(ctx *pulumi.Context, args GetClientDescriptionConverterOutputArgs, opts ...pulumi.InvokeOption) GetClientDescriptionConverterResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetClientDescriptionConverterResultOutput, error) { args := v.(GetClientDescriptionConverterArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetClientDescriptionConverterResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter", args, &rv, "", opts...) - if err != nil { - return GetClientDescriptionConverterResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetClientDescriptionConverterResultOutput) - if secret { - return pulumi.ToSecret(output).(GetClientDescriptionConverterResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter", args, GetClientDescriptionConverterResultOutput{}, options).(GetClientDescriptionConverterResultOutput), nil }).(GetClientDescriptionConverterResultOutput) } diff --git a/sdk/go/keycloak/getGroup.go b/sdk/go/keycloak/getGroup.go index 80394b4c..75a1c816 100644 --- a/sdk/go/keycloak/getGroup.go +++ b/sdk/go/keycloak/getGroup.go @@ -92,21 +92,11 @@ type LookupGroupResult struct { } func LookupGroupOutput(ctx *pulumi.Context, args LookupGroupOutputArgs, opts ...pulumi.InvokeOption) LookupGroupResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupGroupResultOutput, error) { args := v.(LookupGroupArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupGroupResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getGroup:getGroup", args, &rv, "", opts...) - if err != nil { - return LookupGroupResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupGroupResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupGroupResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getGroup:getGroup", args, LookupGroupResultOutput{}, options).(LookupGroupResultOutput), nil }).(LookupGroupResultOutput) } diff --git a/sdk/go/keycloak/getRealm.go b/sdk/go/keycloak/getRealm.go index 15f855bf..4d770c68 100644 --- a/sdk/go/keycloak/getRealm.go +++ b/sdk/go/keycloak/getRealm.go @@ -136,21 +136,11 @@ type LookupRealmResult struct { } func LookupRealmOutput(ctx *pulumi.Context, args LookupRealmOutputArgs, opts ...pulumi.InvokeOption) LookupRealmResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupRealmResultOutput, error) { args := v.(LookupRealmArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupRealmResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getRealm:getRealm", args, &rv, "", opts...) - if err != nil { - return LookupRealmResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupRealmResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupRealmResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getRealm:getRealm", args, LookupRealmResultOutput{}, options).(LookupRealmResultOutput), nil }).(LookupRealmResultOutput) } diff --git a/sdk/go/keycloak/getRealmKeys.go b/sdk/go/keycloak/getRealmKeys.go index 10e07fc8..e404e3de 100644 --- a/sdk/go/keycloak/getRealmKeys.go +++ b/sdk/go/keycloak/getRealmKeys.go @@ -51,21 +51,11 @@ type GetRealmKeysResult struct { } func GetRealmKeysOutput(ctx *pulumi.Context, args GetRealmKeysOutputArgs, opts ...pulumi.InvokeOption) GetRealmKeysResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetRealmKeysResultOutput, error) { args := v.(GetRealmKeysArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetRealmKeysResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getRealmKeys:getRealmKeys", args, &rv, "", opts...) - if err != nil { - return GetRealmKeysResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetRealmKeysResultOutput) - if secret { - return pulumi.ToSecret(output).(GetRealmKeysResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getRealmKeys:getRealmKeys", args, GetRealmKeysResultOutput{}, options).(GetRealmKeysResultOutput), nil }).(GetRealmKeysResultOutput) } diff --git a/sdk/go/keycloak/getRole.go b/sdk/go/keycloak/getRole.go index 5447d922..1d7b70a0 100644 --- a/sdk/go/keycloak/getRole.go +++ b/sdk/go/keycloak/getRole.go @@ -98,21 +98,11 @@ type LookupRoleResult struct { } func LookupRoleOutput(ctx *pulumi.Context, args LookupRoleOutputArgs, opts ...pulumi.InvokeOption) LookupRoleResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupRoleResultOutput, error) { args := v.(LookupRoleArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupRoleResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getRole:getRole", args, &rv, "", opts...) - if err != nil { - return LookupRoleResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupRoleResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupRoleResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getRole:getRole", args, LookupRoleResultOutput{}, options).(LookupRoleResultOutput), nil }).(LookupRoleResultOutput) } diff --git a/sdk/go/keycloak/getUser.go b/sdk/go/keycloak/getUser.go index 6f243659..5908d556 100644 --- a/sdk/go/keycloak/getUser.go +++ b/sdk/go/keycloak/getUser.go @@ -89,21 +89,11 @@ type LookupUserResult struct { } func LookupUserOutput(ctx *pulumi.Context, args LookupUserOutputArgs, opts ...pulumi.InvokeOption) LookupUserResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupUserResultOutput, error) { args := v.(LookupUserArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupUserResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getUser:getUser", args, &rv, "", opts...) - if err != nil { - return LookupUserResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupUserResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupUserResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getUser:getUser", args, LookupUserResultOutput{}, options).(LookupUserResultOutput), nil }).(LookupUserResultOutput) } diff --git a/sdk/go/keycloak/getUserRealmRoles.go b/sdk/go/keycloak/getUserRealmRoles.go index 6508f725..72dd82c9 100644 --- a/sdk/go/keycloak/getUserRealmRoles.go +++ b/sdk/go/keycloak/getUserRealmRoles.go @@ -84,21 +84,11 @@ type GetUserRealmRolesResult struct { } func GetUserRealmRolesOutput(ctx *pulumi.Context, args GetUserRealmRolesOutputArgs, opts ...pulumi.InvokeOption) GetUserRealmRolesResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetUserRealmRolesResultOutput, error) { args := v.(GetUserRealmRolesArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetUserRealmRolesResult - secret, err := ctx.InvokePackageRaw("keycloak:index/getUserRealmRoles:getUserRealmRoles", args, &rv, "", opts...) - if err != nil { - return GetUserRealmRolesResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetUserRealmRolesResultOutput) - if secret { - return pulumi.ToSecret(output).(GetUserRealmRolesResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:index/getUserRealmRoles:getUserRealmRoles", args, GetUserRealmRolesResultOutput{}, options).(GetUserRealmRolesResultOutput), nil }).(GetUserRealmRolesResultOutput) } diff --git a/sdk/go/keycloak/openid/getClient.go b/sdk/go/keycloak/openid/getClient.go index 00591df3..0f4da5d6 100644 --- a/sdk/go/keycloak/openid/getClient.go +++ b/sdk/go/keycloak/openid/getClient.go @@ -125,21 +125,11 @@ type LookupClientResult struct { } func LookupClientOutput(ctx *pulumi.Context, args LookupClientOutputArgs, opts ...pulumi.InvokeOption) LookupClientResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupClientResultOutput, error) { args := v.(LookupClientArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupClientResult - secret, err := ctx.InvokePackageRaw("keycloak:openid/getClient:getClient", args, &rv, "", opts...) - if err != nil { - return LookupClientResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupClientResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupClientResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:openid/getClient:getClient", args, LookupClientResultOutput{}, options).(LookupClientResultOutput), nil }).(LookupClientResultOutput) } diff --git a/sdk/go/keycloak/openid/getClientAuthorizationPolicy.go b/sdk/go/keycloak/openid/getClientAuthorizationPolicy.go index 2ce9bf73..3ebfcb5d 100644 --- a/sdk/go/keycloak/openid/getClientAuthorizationPolicy.go +++ b/sdk/go/keycloak/openid/getClientAuthorizationPolicy.go @@ -136,21 +136,11 @@ type GetClientAuthorizationPolicyResult struct { } func GetClientAuthorizationPolicyOutput(ctx *pulumi.Context, args GetClientAuthorizationPolicyOutputArgs, opts ...pulumi.InvokeOption) GetClientAuthorizationPolicyResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetClientAuthorizationPolicyResultOutput, error) { args := v.(GetClientAuthorizationPolicyArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetClientAuthorizationPolicyResult - secret, err := ctx.InvokePackageRaw("keycloak:openid/getClientAuthorizationPolicy:getClientAuthorizationPolicy", args, &rv, "", opts...) - if err != nil { - return GetClientAuthorizationPolicyResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetClientAuthorizationPolicyResultOutput) - if secret { - return pulumi.ToSecret(output).(GetClientAuthorizationPolicyResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:openid/getClientAuthorizationPolicy:getClientAuthorizationPolicy", args, GetClientAuthorizationPolicyResultOutput{}, options).(GetClientAuthorizationPolicyResultOutput), nil }).(GetClientAuthorizationPolicyResultOutput) } diff --git a/sdk/go/keycloak/openid/getClientScope.go b/sdk/go/keycloak/openid/getClientScope.go index a5c03e29..ba56636b 100644 --- a/sdk/go/keycloak/openid/getClientScope.go +++ b/sdk/go/keycloak/openid/getClientScope.go @@ -80,21 +80,11 @@ type LookupClientScopeResult struct { } func LookupClientScopeOutput(ctx *pulumi.Context, args LookupClientScopeOutputArgs, opts ...pulumi.InvokeOption) LookupClientScopeResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupClientScopeResultOutput, error) { args := v.(LookupClientScopeArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupClientScopeResult - secret, err := ctx.InvokePackageRaw("keycloak:openid/getClientScope:getClientScope", args, &rv, "", opts...) - if err != nil { - return LookupClientScopeResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupClientScopeResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupClientScopeResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:openid/getClientScope:getClientScope", args, LookupClientScopeResultOutput{}, options).(LookupClientScopeResultOutput), nil }).(LookupClientScopeResultOutput) } diff --git a/sdk/go/keycloak/openid/getClientServiceAccountUser.go b/sdk/go/keycloak/openid/getClientServiceAccountUser.go index ac746736..6b136ffb 100644 --- a/sdk/go/keycloak/openid/getClientServiceAccountUser.go +++ b/sdk/go/keycloak/openid/getClientServiceAccountUser.go @@ -113,21 +113,11 @@ type GetClientServiceAccountUserResult struct { } func GetClientServiceAccountUserOutput(ctx *pulumi.Context, args GetClientServiceAccountUserOutputArgs, opts ...pulumi.InvokeOption) GetClientServiceAccountUserResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetClientServiceAccountUserResultOutput, error) { args := v.(GetClientServiceAccountUserArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetClientServiceAccountUserResult - secret, err := ctx.InvokePackageRaw("keycloak:openid/getClientServiceAccountUser:getClientServiceAccountUser", args, &rv, "", opts...) - if err != nil { - return GetClientServiceAccountUserResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetClientServiceAccountUserResultOutput) - if secret { - return pulumi.ToSecret(output).(GetClientServiceAccountUserResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:openid/getClientServiceAccountUser:getClientServiceAccountUser", args, GetClientServiceAccountUserResultOutput{}, options).(GetClientServiceAccountUserResultOutput), nil }).(GetClientServiceAccountUserResultOutput) } diff --git a/sdk/go/keycloak/saml/getClient.go b/sdk/go/keycloak/saml/getClient.go index 256d0b49..26f2cc90 100644 --- a/sdk/go/keycloak/saml/getClient.go +++ b/sdk/go/keycloak/saml/getClient.go @@ -112,21 +112,11 @@ type LookupClientResult struct { } func LookupClientOutput(ctx *pulumi.Context, args LookupClientOutputArgs, opts ...pulumi.InvokeOption) LookupClientResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupClientResultOutput, error) { args := v.(LookupClientArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupClientResult - secret, err := ctx.InvokePackageRaw("keycloak:saml/getClient:getClient", args, &rv, "", opts...) - if err != nil { - return LookupClientResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupClientResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupClientResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:saml/getClient:getClient", args, LookupClientResultOutput{}, options).(LookupClientResultOutput), nil }).(LookupClientResultOutput) } diff --git a/sdk/go/keycloak/saml/getClientInstallationProvider.go b/sdk/go/keycloak/saml/getClientInstallationProvider.go index 5e86ab19..e0a932cb 100644 --- a/sdk/go/keycloak/saml/getClientInstallationProvider.go +++ b/sdk/go/keycloak/saml/getClientInstallationProvider.go @@ -44,21 +44,11 @@ type GetClientInstallationProviderResult struct { } func GetClientInstallationProviderOutput(ctx *pulumi.Context, args GetClientInstallationProviderOutputArgs, opts ...pulumi.InvokeOption) GetClientInstallationProviderResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetClientInstallationProviderResultOutput, error) { args := v.(GetClientInstallationProviderArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetClientInstallationProviderResult - secret, err := ctx.InvokePackageRaw("keycloak:saml/getClientInstallationProvider:getClientInstallationProvider", args, &rv, "", opts...) - if err != nil { - return GetClientInstallationProviderResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetClientInstallationProviderResultOutput) - if secret { - return pulumi.ToSecret(output).(GetClientInstallationProviderResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("keycloak:saml/getClientInstallationProvider:getClientInstallationProvider", args, GetClientInstallationProviderResultOutput{}, options).(GetClientInstallationProviderResultOutput), nil }).(GetClientInstallationProviderResultOutput) } diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 1e7c41eb..ec7ade69 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -44,7 +44,7 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:pulumi:0.18.0") + implementation("com.pulumi:pulumi:0.20.0") } task sourcesJar(type: Jar) { diff --git a/sdk/java/src/main/java/com/pulumi/keycloak/KeycloakFunctions.java b/sdk/java/src/main/java/com/pulumi/keycloak/KeycloakFunctions.java index c89957df..901f41d0 100644 --- a/sdk/java/src/main/java/com/pulumi/keycloak/KeycloakFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/keycloak/KeycloakFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.keycloak.Utilities; import com.pulumi.keycloak.inputs.GetAuthenticationExecutionArgs; import com.pulumi.keycloak.inputs.GetAuthenticationExecutionPlainArgs; @@ -191,6 +192,57 @@ public static CompletableFuture getAuthenticat public static Output getAuthenticationExecution(GetAuthenticationExecutionArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getAuthenticationExecution:getAuthenticationExecution", TypeShape.of(GetAuthenticationExecutionResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch the ID of an authentication execution within Keycloak. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.Realm;
+     * import com.pulumi.keycloak.RealmArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetAuthenticationExecutionArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var realm = new Realm("realm", RealmArgs.builder()
+     *             .realm("my-realm")
+     *             .enabled(true)
+     *             .build());
+     * 
+     *         final var browserAuthCookie = KeycloakFunctions.getAuthenticationExecution(GetAuthenticationExecutionArgs.builder()
+     *             .realmId(realm.id())
+     *             .parentFlowAlias("browser")
+     *             .providerId("auth-cookie")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAuthenticationExecution(GetAuthenticationExecutionArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getAuthenticationExecution:getAuthenticationExecution", TypeShape.of(GetAuthenticationExecutionResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch the ID of an authentication execution within Keycloak. * @@ -392,6 +444,56 @@ public static CompletableFuture getAuthenticationFl public static Output getAuthenticationFlow(GetAuthenticationFlowArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getAuthenticationFlow:getAuthenticationFlow", TypeShape.of(GetAuthenticationFlowResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch the ID of an authentication flow within Keycloak. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.Realm;
+     * import com.pulumi.keycloak.RealmArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetAuthenticationFlowArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var realm = new Realm("realm", RealmArgs.builder()
+     *             .realm("my-realm")
+     *             .enabled(true)
+     *             .build());
+     * 
+     *         final var browserAuthCookie = KeycloakFunctions.getAuthenticationFlow(GetAuthenticationFlowArgs.builder()
+     *             .realmId(realm.id())
+     *             .alias("browser")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAuthenticationFlow(GetAuthenticationFlowArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getAuthenticationFlow:getAuthenticationFlow", TypeShape.of(GetAuthenticationFlowResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch the ID of an authentication flow within Keycloak. * @@ -700,6 +802,92 @@ public static CompletableFuture getClientDe public static Output getClientDescriptionConverter(GetClientDescriptionConverterArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter", TypeShape.of(GetClientDescriptionConverterResult.class), args, Utilities.withVersion(options)); } + /** + * This data source uses the [ClientDescriptionConverter](https://www.keycloak.org/docs-api/6.0/javadocs/org/keycloak/exportimport/ClientDescriptionConverter.html) API to convert a generic client description into a Keycloak + * client. This data can then be used to manage the client within Keycloak. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.Realm;
+     * import com.pulumi.keycloak.RealmArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetClientDescriptionConverterArgs;
+     * import com.pulumi.keycloak.saml.Client;
+     * import com.pulumi.keycloak.saml.ClientArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var realm = new Realm("realm", RealmArgs.builder()
+     *             .realm("my-realm")
+     *             .enabled(true)
+     *             .build());
+     * 
+     *         final var samlClient = KeycloakFunctions.getClientDescriptionConverter(GetClientDescriptionConverterArgs.builder()
+     *             .realmId(realm.id())
+     *             .body("""
+     * 	
+     *     
+     *         
+     * 			
+     * 				
+     * 					MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
+     * 					CzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
+     * 					YWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
+     * 					EW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
+     * 					NlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
+     * 					b3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
+     * 					LmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
+     * 					9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
+     * 					qIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
+     * 					53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
+     * 					GX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
+     * 					IwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
+     * 					hvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
+     * 					n01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
+     * 					K3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=
+     * 				
+     * 			
+     * 		
+     * 		urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
+     *         
+     *     
+     * 
+     *             """)
+     *             .build());
+     * 
+     *         var samlClientClient = new Client("samlClientClient", ClientArgs.builder()
+     *             .realmId(realm.id())
+     *             .clientId(samlClient.applyValue(getClientDescriptionConverterResult -> getClientDescriptionConverterResult).applyValue(samlClient -> samlClient.applyValue(getClientDescriptionConverterResult -> getClientDescriptionConverterResult.clientId())))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getClientDescriptionConverter(GetClientDescriptionConverterArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter", TypeShape.of(GetClientDescriptionConverterResult.class), args, Utilities.withVersion(options)); + } /** * This data source uses the [ClientDescriptionConverter](https://www.keycloak.org/docs-api/6.0/javadocs/org/keycloak/exportimport/ClientDescriptionConverter.html) API to convert a generic client description into a Keycloak * client. This data can then be used to manage the client within Keycloak. @@ -981,6 +1169,71 @@ public static CompletableFuture getGroupPlain(GetGroupPlainArgs public static Output getGroup(GetGroupArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getGroup:getGroup", TypeShape.of(GetGroupResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch properties of a Keycloak group for + * usage with other resources, such as `keycloak.GroupRoles`. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.Realm;
+     * import com.pulumi.keycloak.RealmArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRoleArgs;
+     * import com.pulumi.keycloak.inputs.GetGroupArgs;
+     * import com.pulumi.keycloak.GroupRoles;
+     * import com.pulumi.keycloak.GroupRolesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var realm = new Realm("realm", RealmArgs.builder()
+     *             .realm("my-realm")
+     *             .enabled(true)
+     *             .build());
+     * 
+     *         final var offlineAccess = KeycloakFunctions.getRole(GetRoleArgs.builder()
+     *             .realmId(realm.id())
+     *             .name("offline_access")
+     *             .build());
+     * 
+     *         final var group = KeycloakFunctions.getGroup(GetGroupArgs.builder()
+     *             .realmId(realm.id())
+     *             .name("group")
+     *             .build());
+     * 
+     *         var groupRoles = new GroupRoles("groupRoles", GroupRolesArgs.builder()
+     *             .realmId(realm.id())
+     *             .groupId(group.applyValue(getGroupResult -> getGroupResult).applyValue(group -> group.applyValue(getGroupResult -> getGroupResult.id())))
+     *             .roleIds(offlineAccess.applyValue(getRoleResult -> getRoleResult).applyValue(offlineAccess -> offlineAccess.applyValue(getRoleResult -> getRoleResult.id())))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getGroup(GetGroupArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getGroup:getGroup", TypeShape.of(GetGroupResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch properties of a Keycloak group for * usage with other resources, such as `keycloak.GroupRoles`. @@ -1199,6 +1452,57 @@ public static CompletableFuture getRealmPlain(GetRealmPlainArgs public static Output getRealm(GetRealmArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getRealm:getRealm", TypeShape.of(GetRealmResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch properties of a Keycloak realm for + * usage with other resources. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRealmArgs;
+     * import com.pulumi.keycloak.Role;
+     * import com.pulumi.keycloak.RoleArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var realm = KeycloakFunctions.getRealm(GetRealmArgs.builder()
+     *             .realm("my-realm")
+     *             .build());
+     * 
+     *         // use the data source
+     *         var group = new Role("group", RoleArgs.builder()
+     *             .realmId(realm.applyValue(getRealmResult -> getRealmResult.id()))
+     *             .name("group")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRealm(GetRealmArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getRealm:getRealm", TypeShape.of(GetRealmResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch properties of a Keycloak realm for * usage with other resources. @@ -1289,6 +1593,19 @@ public static CompletableFuture getRealmKeysPlain(GetRealmKe public static Output getRealmKeys(GetRealmKeysArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getRealmKeys:getRealmKeys", TypeShape.of(GetRealmKeysResult.class), args, Utilities.withVersion(options)); } + /** + * Use this data source to get the keys of a realm. Keys can be filtered by algorithm and status. + * + * Remarks: + * + * - A key must meet all filter criteria + * - This data source may return more than one value. + * - If no key matches the filter criteria, then an error will be returned. + * + */ + public static Output getRealmKeys(GetRealmKeysArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getRealmKeys:getRealmKeys", TypeShape.of(GetRealmKeysResult.class), args, Utilities.withVersion(options)); + } /** * Use this data source to get the keys of a realm. Keys can be filtered by algorithm and status. * @@ -1503,6 +1820,73 @@ public static CompletableFuture getRolePlain(GetRolePlainArgs arg public static Output getRole(GetRoleArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getRole:getRole", TypeShape.of(GetRoleResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch properties of a Keycloak role for + * usage with other resources, such as `keycloak.GroupRoles`. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.Realm;
+     * import com.pulumi.keycloak.RealmArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRoleArgs;
+     * import com.pulumi.keycloak.Group;
+     * import com.pulumi.keycloak.GroupArgs;
+     * import com.pulumi.keycloak.GroupRoles;
+     * import com.pulumi.keycloak.GroupRolesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var realm = new Realm("realm", RealmArgs.builder()
+     *             .realm("my-realm")
+     *             .enabled(true)
+     *             .build());
+     * 
+     *         final var offlineAccess = KeycloakFunctions.getRole(GetRoleArgs.builder()
+     *             .realmId(realm.id())
+     *             .name("offline_access")
+     *             .build());
+     * 
+     *         // use the data source
+     *         var group = new Group("group", GroupArgs.builder()
+     *             .realmId(realm.id())
+     *             .name("group")
+     *             .build());
+     * 
+     *         var groupRoles = new GroupRoles("groupRoles", GroupRolesArgs.builder()
+     *             .realmId(realm.id())
+     *             .groupId(group.id())
+     *             .roleIds(offlineAccess.applyValue(getRoleResult -> getRoleResult).applyValue(offlineAccess -> offlineAccess.applyValue(getRoleResult -> getRoleResult.id())))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRole(GetRoleArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getRole:getRole", TypeShape.of(GetRoleResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch properties of a Keycloak role for * usage with other resources, such as `keycloak.GroupRoles`. @@ -1720,6 +2104,56 @@ public static CompletableFuture getUserPlain(GetUserPlainArgs arg public static Output getUser(GetUserArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getUser:getUser", TypeShape.of(GetUserResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch properties of a user within Keycloak. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRealmArgs;
+     * import com.pulumi.keycloak.inputs.GetUserArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var masterRealm = KeycloakFunctions.getRealm(GetRealmArgs.builder()
+     *             .realm("master")
+     *             .build());
+     * 
+     *         // use the keycloak_user data source to grab the admin user's ID
+     *         final var defaultAdminUser = KeycloakFunctions.getUser(GetUserArgs.builder()
+     *             .realmId(masterRealm.applyValue(getRealmResult -> getRealmResult.id()))
+     *             .username("keycloak")
+     *             .build());
+     * 
+     *         ctx.export("keycloakUserId", defaultAdminUser.applyValue(getUserResult -> getUserResult.id()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getUser(GetUserArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getUser:getUser", TypeShape.of(GetUserResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch properties of a user within Keycloak. * @@ -1941,6 +2375,63 @@ public static CompletableFuture getUserRealmRolesPlain( public static Output getUserRealmRoles(GetUserRealmRolesArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:index/getUserRealmRoles:getUserRealmRoles", TypeShape.of(GetUserRealmRolesResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch the realm roles of a user within Keycloak. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRealmArgs;
+     * import com.pulumi.keycloak.inputs.GetUserArgs;
+     * import com.pulumi.keycloak.inputs.GetUserRealmRolesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var masterRealm = KeycloakFunctions.getRealm(GetRealmArgs.builder()
+     *             .realm("master")
+     *             .build());
+     * 
+     *         // use the keycloak_user data source to grab the admin user's ID
+     *         final var defaultAdminUser = KeycloakFunctions.getUser(GetUserArgs.builder()
+     *             .realmId(masterRealm.applyValue(getRealmResult -> getRealmResult.id()))
+     *             .username("keycloak")
+     *             .build());
+     * 
+     *         // use the keycloak_user_realm_roles data source to list role names
+     *         final var userRealmRoles = KeycloakFunctions.getUserRealmRoles(GetUserRealmRolesArgs.builder()
+     *             .realmId(masterRealm.applyValue(getRealmResult -> getRealmResult.id()))
+     *             .userId(defaultAdminUser.applyValue(getUserResult -> getUserResult.id()))
+     *             .build());
+     * 
+     *         ctx.export("keycloakUserRoleNames", userRealmRoles.applyValue(getUserRealmRolesResult -> getUserRealmRolesResult.roleNames()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getUserRealmRoles(GetUserRealmRolesArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:index/getUserRealmRoles:getUserRealmRoles", TypeShape.of(GetUserRealmRolesResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch the realm roles of a user within Keycloak. * diff --git a/sdk/java/src/main/java/com/pulumi/keycloak/Utilities.java b/sdk/java/src/main/java/com/pulumi/keycloak/Utilities.java index 7476e211..31ca1658 100644 --- a/sdk/java/src/main/java/com/pulumi/keycloak/Utilities.java +++ b/sdk/java/src/main/java/com/pulumi/keycloak/Utilities.java @@ -14,6 +14,7 @@ import javax.annotation.Nullable; import com.pulumi.core.internal.Environment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; public class Utilities { @@ -57,16 +58,28 @@ public static Optional getEnvDouble(java.lang.String... names) return Optional.empty(); } - public static InvokeOptions withVersion(@Nullable InvokeOptions options) { - if (options != null && options.getVersion().isPresent()) { - return options; - } - return new InvokeOptions( - options == null ? null : options.getParent().orElse(null), - options == null ? null : options.getProvider().orElse(null), - getVersion() - ); + public static InvokeOptions withVersion(@Nullable InvokeOptions options) { + if (options != null && options.getVersion().isPresent()) { + return options; + } + return new InvokeOptions( + options == null ? null : options.getParent().orElse(null), + options == null ? null : options.getProvider().orElse(null), + getVersion() + ); + } + + public static InvokeOutputOptions withVersion(@Nullable InvokeOutputOptions options) { + if (options != null && options.getVersion().isPresent()) { + return options; } + return new InvokeOutputOptions( + options == null ? null : options.getParent().orElse(null), + options == null ? null : options.getProvider().orElse(null), + getVersion(), + options == null ? null : options.getDependsOn() + ); + } private static final java.lang.String version; public static java.lang.String getVersion() { diff --git a/sdk/java/src/main/java/com/pulumi/keycloak/openid/OpenidFunctions.java b/sdk/java/src/main/java/com/pulumi/keycloak/openid/OpenidFunctions.java index d281aa65..0bf71a9b 100644 --- a/sdk/java/src/main/java/com/pulumi/keycloak/openid/OpenidFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/keycloak/openid/OpenidFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.keycloak.Utilities; import com.pulumi.keycloak.openid.inputs.GetClientArgs; import com.pulumi.keycloak.openid.inputs.GetClientAuthorizationPolicyArgs; @@ -179,6 +180,58 @@ public static CompletableFuture getClientPlain(GetClientPlainAr public static Output getClient(GetClientArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:openid/getClient:getClient", TypeShape.of(GetClientResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch properties of a Keycloak OpenID client for usage with other resources. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.openid.OpenidFunctions;
+     * import com.pulumi.keycloak.openid.inputs.GetClientArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRoleArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var realmManagement = OpenidFunctions.getClient(GetClientArgs.builder()
+     *             .realmId("my-realm")
+     *             .clientId("realm-management")
+     *             .build());
+     * 
+     *         // use the data source
+     *         final var admin = KeycloakFunctions.getRole(GetRoleArgs.builder()
+     *             .realmId("my-realm")
+     *             .clientId(realmManagement.applyValue(getClientResult -> getClientResult.id()))
+     *             .name("realm-admin")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getClient(GetClientArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:openid/getClient:getClient", TypeShape.of(GetClientResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch properties of a Keycloak OpenID client for usage with other resources. * @@ -498,6 +551,95 @@ public static CompletableFuture getClientAut public static Output getClientAuthorizationPolicy(GetClientAuthorizationPolicyArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:openid/getClientAuthorizationPolicy:getClientAuthorizationPolicy", TypeShape.of(GetClientAuthorizationPolicyResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch policy and permission information for an OpenID client that has authorization enabled. + * + * ## Example Usage + * + * In this example, we'll create a new OpenID client with authorization enabled. This will cause Keycloak to create a default + * permission for this client called "Default Permission". We'll use the `keycloak.openid.getClientAuthorizationPolicy` data + * source to fetch information about this permission, so we can use it to create a new resource-based authorization permission. + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.Realm;
+     * import com.pulumi.keycloak.RealmArgs;
+     * import com.pulumi.keycloak.openid.Client;
+     * import com.pulumi.keycloak.openid.ClientArgs;
+     * import com.pulumi.keycloak.openid.inputs.ClientAuthorizationArgs;
+     * import com.pulumi.keycloak.openid.OpenidFunctions;
+     * import com.pulumi.keycloak.openid.inputs.GetClientAuthorizationPolicyArgs;
+     * import com.pulumi.keycloak.openid.ClientAuthorizationResource;
+     * import com.pulumi.keycloak.openid.ClientAuthorizationResourceArgs;
+     * import com.pulumi.keycloak.openid.ClientAuthorizationPermission;
+     * import com.pulumi.keycloak.openid.ClientAuthorizationPermissionArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var realm = new Realm("realm", RealmArgs.builder()
+     *             .realm("my-realm")
+     *             .enabled(true)
+     *             .build());
+     * 
+     *         var clientWithAuthz = new Client("clientWithAuthz", ClientArgs.builder()
+     *             .clientId("client-with-authz")
+     *             .name("client-with-authz")
+     *             .realmId(realm.id())
+     *             .accessType("CONFIDENTIAL")
+     *             .serviceAccountsEnabled(true)
+     *             .authorization(ClientAuthorizationArgs.builder()
+     *                 .policyEnforcementMode("ENFORCING")
+     *                 .build())
+     *             .build());
+     * 
+     *         final var defaultPermission = OpenidFunctions.getClientAuthorizationPolicy(GetClientAuthorizationPolicyArgs.builder()
+     *             .realmId(realm.id())
+     *             .resourceServerId(clientWithAuthz.resourceServerId())
+     *             .name("Default Permission")
+     *             .build());
+     * 
+     *         var resource = new ClientAuthorizationResource("resource", ClientAuthorizationResourceArgs.builder()
+     *             .resourceServerId(clientWithAuthz.resourceServerId())
+     *             .name("authorization-resource")
+     *             .realmId(realm.id())
+     *             .uris("/endpoint/*")
+     *             .attributes(Map.of("foo", "bar"))
+     *             .build());
+     * 
+     *         var permission = new ClientAuthorizationPermission("permission", ClientAuthorizationPermissionArgs.builder()
+     *             .resourceServerId(clientWithAuthz.resourceServerId())
+     *             .realmId(realm.id())
+     *             .name("authorization-permission")
+     *             .policies(defaultPermission.applyValue(getClientAuthorizationPolicyResult -> getClientAuthorizationPolicyResult).applyValue(defaultPermission -> defaultPermission.applyValue(getClientAuthorizationPolicyResult -> getClientAuthorizationPolicyResult.id())))
+     *             .resources(resource.id())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getClientAuthorizationPolicy(GetClientAuthorizationPolicyArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:openid/getClientAuthorizationPolicy:getClientAuthorizationPolicy", TypeShape.of(GetClientAuthorizationPolicyResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch policy and permission information for an OpenID client that has authorization enabled. * @@ -746,6 +888,59 @@ public static CompletableFuture getClientScopePlain(GetCli public static Output getClientScope(GetClientScopeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:openid/getClientScope:getClientScope", TypeShape.of(GetClientScopeResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch properties of a Keycloak OpenID client scope for usage with other resources. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.openid.OpenidFunctions;
+     * import com.pulumi.keycloak.openid.inputs.GetClientScopeArgs;
+     * import com.pulumi.keycloak.openid.AudienceProtocolMapper;
+     * import com.pulumi.keycloak.openid.AudienceProtocolMapperArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var offlineAccess = OpenidFunctions.getClientScope(GetClientScopeArgs.builder()
+     *             .realmId("my-realm")
+     *             .name("offline_access")
+     *             .build());
+     * 
+     *         // use the data source
+     *         var audienceMapper = new AudienceProtocolMapper("audienceMapper", AudienceProtocolMapperArgs.builder()
+     *             .realmId(offlineAccess.applyValue(getClientScopeResult -> getClientScopeResult.realmId()))
+     *             .clientScopeId(offlineAccess.applyValue(getClientScopeResult -> getClientScopeResult.id()))
+     *             .name("audience-mapper")
+     *             .includedCustomAudience("foo")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getClientScope(GetClientScopeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:openid/getClientScope:getClientScope", TypeShape.of(GetClientScopeResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch properties of a Keycloak OpenID client scope for usage with other resources. * @@ -1039,6 +1234,86 @@ public static CompletableFuture getClientServ public static Output getClientServiceAccountUser(GetClientServiceAccountUserArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:openid/getClientServiceAccountUser:getClientServiceAccountUser", TypeShape.of(GetClientServiceAccountUserResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch information about the service account user that is associated with an OpenID client + * that has service accounts enabled. + * + * ## Example Usage + * + * In this example, we'll create an OpenID client with service accounts enabled. This causes Keycloak to create a special user + * that represents the service account. We'll use this data source to grab this user's ID in order to assign some roles to this + * user, using the `keycloak.UserRoles` resource. + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.Realm;
+     * import com.pulumi.keycloak.RealmArgs;
+     * import com.pulumi.keycloak.openid.Client;
+     * import com.pulumi.keycloak.openid.ClientArgs;
+     * import com.pulumi.keycloak.openid.OpenidFunctions;
+     * import com.pulumi.keycloak.openid.inputs.GetClientServiceAccountUserArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRoleArgs;
+     * import com.pulumi.keycloak.UserRoles;
+     * import com.pulumi.keycloak.UserRolesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var realm = new Realm("realm", RealmArgs.builder()
+     *             .realm("my-realm")
+     *             .enabled(true)
+     *             .build());
+     * 
+     *         var client = new Client("client", ClientArgs.builder()
+     *             .realmId(realm.id())
+     *             .clientId("client")
+     *             .name("client")
+     *             .accessType("CONFIDENTIAL")
+     *             .serviceAccountsEnabled(true)
+     *             .build());
+     * 
+     *         final var serviceAccountUser = OpenidFunctions.getClientServiceAccountUser(GetClientServiceAccountUserArgs.builder()
+     *             .realmId(realm.id())
+     *             .clientId(client.id())
+     *             .build());
+     * 
+     *         final var offlineAccess = KeycloakFunctions.getRole(GetRoleArgs.builder()
+     *             .realmId(realm.id())
+     *             .name("offline_access")
+     *             .build());
+     * 
+     *         var serviceAccountUserRoles = new UserRoles("serviceAccountUserRoles", UserRolesArgs.builder()
+     *             .realmId(realm.id())
+     *             .userId(serviceAccountUser.applyValue(getClientServiceAccountUserResult -> getClientServiceAccountUserResult).applyValue(serviceAccountUser -> serviceAccountUser.applyValue(getClientServiceAccountUserResult -> getClientServiceAccountUserResult.id())))
+     *             .roleIds(offlineAccess.applyValue(getRoleResult -> getRoleResult).applyValue(offlineAccess -> offlineAccess.applyValue(getRoleResult -> getRoleResult.id())))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getClientServiceAccountUser(GetClientServiceAccountUserArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:openid/getClientServiceAccountUser:getClientServiceAccountUser", TypeShape.of(GetClientServiceAccountUserResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch information about the service account user that is associated with an OpenID client * that has service accounts enabled. diff --git a/sdk/java/src/main/java/com/pulumi/keycloak/saml/SamlFunctions.java b/sdk/java/src/main/java/com/pulumi/keycloak/saml/SamlFunctions.java index c175a1fd..cfefbf0b 100644 --- a/sdk/java/src/main/java/com/pulumi/keycloak/saml/SamlFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/keycloak/saml/SamlFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.keycloak.Utilities; import com.pulumi.keycloak.saml.inputs.GetClientArgs; import com.pulumi.keycloak.saml.inputs.GetClientInstallationProviderArgs; @@ -173,6 +174,58 @@ public static CompletableFuture getClientPlain(GetClientPlainAr public static Output getClient(GetClientArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:saml/getClient:getClient", TypeShape.of(GetClientResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to fetch properties of a Keycloak client that uses the SAML protocol. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.keycloak.saml.SamlFunctions;
+     * import com.pulumi.keycloak.saml.inputs.GetClientArgs;
+     * import com.pulumi.keycloak.KeycloakFunctions;
+     * import com.pulumi.keycloak.inputs.GetRoleArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var realmManagement = SamlFunctions.getClient(GetClientArgs.builder()
+     *             .realmId("my-realm")
+     *             .clientId("realm-management")
+     *             .build());
+     * 
+     *         // use the data source
+     *         final var admin = KeycloakFunctions.getRole(GetRoleArgs.builder()
+     *             .realmId("my-realm")
+     *             .clientId(realmManagement.applyValue(getClientResult -> getClientResult.id()))
+     *             .name("realm-admin")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getClient(GetClientArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:saml/getClient:getClient", TypeShape.of(GetClientResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to fetch properties of a Keycloak client that uses the SAML protocol. * @@ -246,6 +299,13 @@ public static CompletableFuture getClientIn public static Output getClientInstallationProvider(GetClientInstallationProviderArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("keycloak:saml/getClientInstallationProvider:getClientInstallationProvider", TypeShape.of(GetClientInstallationProviderResult.class), args, Utilities.withVersion(options)); } + /** + * This data source can be used to retrieve Installation Provider of a SAML Client. + * + */ + public static Output getClientInstallationProvider(GetClientInstallationProviderArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("keycloak:saml/getClientInstallationProvider:getClientInstallationProvider", TypeShape.of(GetClientInstallationProviderResult.class), args, Utilities.withVersion(options)); + } /** * This data source can be used to retrieve Installation Provider of a SAML Client. * diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json index 706c70bb..6fae15c1 100644 --- a/sdk/nodejs/package.json +++ b/sdk/nodejs/package.json @@ -13,7 +13,7 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.136.0" + "@pulumi/pulumi": "^3.142.0" }, "devDependencies": { "@types/mime": "^2.0.0", diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index 5b634207..57b4d1d2 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -1,10 +1,10 @@ [project] name = "pulumi_keycloak" description = "A Pulumi package for creating and managing keycloak cloud resources." - dependencies = ["parver>=0.2.1", "pulumi>=3.136.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11; python_version < \"3.11\""] + dependencies = ["parver>=0.2.1", "pulumi>=3.142.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11; python_version < \"3.11\""] keywords = ["pulumi", "keycloak"] readme = "README.md" - requires-python = ">=3.8" + requires-python = ">=3.9" version = "5.0.0a0+dev" [project.license] text = "Apache-2.0"