Keycloak v5.3.2 published on Friday, May 10, 2024 by Pulumi
keycloak.getClientDescriptionConverter
Explore with Pulumi AI
This data source uses the ClientDescriptionConverter 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
import * as pulumi from "@pulumi/pulumi";
import * as keycloak from "@pulumi/keycloak";
const realm = new keycloak.Realm("realm", {
    realm: "my-realm",
    enabled: true,
});
const samlClient = keycloak.getClientDescriptionConverterOutput({
    realmId: realm.id,
    body: `\x09<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">
\x09\x09\x09<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
\x09\x09\x09\x09<ds:X509Data>
\x09\x09\x09\x09\x09<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\x09\x09\x09\x09\x09CzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\x09\x09\x09\x09\x09YWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\x09\x09\x09\x09\x09EW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\x09\x09\x09\x09\x09NlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\x09\x09\x09\x09\x09b3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\x09\x09\x09\x09\x09LmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\x09\x09\x09\x09\x099w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\x09\x09\x09\x09\x09qIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\x09\x09\x09\x09\x0953S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\x09\x09\x09\x09\x09GX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\x09\x09\x09\x09\x09IwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\x09\x09\x09\x09\x09hvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\x09\x09\x09\x09\x09n01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\x09\x09\x09\x09\x09K3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\x09\x09\x09\x09</ds:X509Data>
\x09\x09\x09</ds:KeyInfo>
\x09\x09</md:KeyDescriptor>
\x09\x09<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>
`,
});
const samlClientClient = new keycloak.saml.Client("saml_client", {
    realmId: realm.id,
    clientId: samlClient.apply(samlClient => samlClient.clientId),
});
import pulumi
import pulumi_keycloak as keycloak
realm = keycloak.Realm("realm",
    realm="my-realm",
    enabled=True)
saml_client = keycloak.get_client_description_converter_output(realm_id=realm.id,
    body="""\x09<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">
\x09\x09\x09<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
\x09\x09\x09\x09<ds:X509Data>
\x09\x09\x09\x09\x09<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\x09\x09\x09\x09\x09CzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\x09\x09\x09\x09\x09YWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\x09\x09\x09\x09\x09EW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\x09\x09\x09\x09\x09NlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\x09\x09\x09\x09\x09b3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\x09\x09\x09\x09\x09LmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\x09\x09\x09\x09\x099w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\x09\x09\x09\x09\x09qIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\x09\x09\x09\x09\x0953S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\x09\x09\x09\x09\x09GX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\x09\x09\x09\x09\x09IwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\x09\x09\x09\x09\x09hvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\x09\x09\x09\x09\x09n01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\x09\x09\x09\x09\x09K3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\x09\x09\x09\x09</ds:X509Data>
\x09\x09\x09</ds:KeyInfo>
\x09\x09</md:KeyDescriptor>
\x09\x09<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>
""")
saml_client_client = keycloak.saml.Client("saml_client",
    realm_id=realm.id,
    client_id=saml_client.client_id)
package main
import (
	"github.com/pulumi/pulumi-keycloak/sdk/v5/go/keycloak"
	"github.com/pulumi/pulumi-keycloak/sdk/v5/go/keycloak/saml"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		realm, err := keycloak.NewRealm(ctx, "realm", &keycloak.RealmArgs{
			Realm:   pulumi.String("my-realm"),
			Enabled: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		samlClient := keycloak.GetClientDescriptionConverterOutput(ctx, keycloak.GetClientDescriptionConverterOutputArgs{
			RealmId: realm.ID(),
			Body: pulumi.String(`	<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>
`),
		}, nil)
		_, err = saml.NewClient(ctx, "saml_client", &saml.ClientArgs{
			RealmId: realm.ID(),
			ClientId: samlClient.ApplyT(func(samlClient keycloak.GetClientDescriptionConverterResult) (*string, error) {
				return &samlClient.ClientId, nil
			}).(pulumi.StringPtrOutput),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
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),
    });
});
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("""
	<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>
            """)
            .build());
        var samlClientClient = new Client("samlClientClient", ClientArgs.builder()        
            .realmId(realm.id())
            .clientId(samlClient.applyValue(getClientDescriptionConverterResult -> getClientDescriptionConverterResult).applyValue(samlClient -> samlClient.applyValue(getClientDescriptionConverterResult -> getClientDescriptionConverterResult.clientId())))
            .build());
    }
}
resources:
  realm:
    type: keycloak:Realm
    properties:
      realm: my-realm
      enabled: true
  samlClientClient:
    type: keycloak:saml:Client
    name: saml_client
    properties:
      realmId: ${realm.id}
      clientId: ${samlClient.clientId}
variables:
  samlClient:
    fn::invoke:
      Function: keycloak:getClientDescriptionConverter
      Arguments:
        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>          
Using getClientDescriptionConverter
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getClientDescriptionConverter(args: GetClientDescriptionConverterArgs, opts?: InvokeOptions): Promise<GetClientDescriptionConverterResult>
function getClientDescriptionConverterOutput(args: GetClientDescriptionConverterOutputArgs, opts?: InvokeOptions): Output<GetClientDescriptionConverterResult>def get_client_description_converter(body: Optional[str] = None,
                                     realm_id: Optional[str] = None,
                                     opts: Optional[InvokeOptions] = None) -> GetClientDescriptionConverterResult
def get_client_description_converter_output(body: Optional[pulumi.Input[str]] = None,
                                     realm_id: Optional[pulumi.Input[str]] = None,
                                     opts: Optional[InvokeOptions] = None) -> Output[GetClientDescriptionConverterResult]func GetClientDescriptionConverter(ctx *Context, args *GetClientDescriptionConverterArgs, opts ...InvokeOption) (*GetClientDescriptionConverterResult, error)
func GetClientDescriptionConverterOutput(ctx *Context, args *GetClientDescriptionConverterOutputArgs, opts ...InvokeOption) GetClientDescriptionConverterResultOutput> Note: This function is named GetClientDescriptionConverter in the Go SDK.
public static class GetClientDescriptionConverter 
{
    public static Task<GetClientDescriptionConverterResult> InvokeAsync(GetClientDescriptionConverterArgs args, InvokeOptions? opts = null)
    public static Output<GetClientDescriptionConverterResult> Invoke(GetClientDescriptionConverterInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetClientDescriptionConverterResult> getClientDescriptionConverter(GetClientDescriptionConverterArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
  function: keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter
  arguments:
    # arguments dictionaryThe following arguments are supported:
getClientDescriptionConverter Result
The following output properties are available:
- Access Dictionary<string, object>
 - Admin
Url string - Attributes Dictionary<string, object>
 - Authentication
Flow Dictionary<string, object>Binding Overrides  - bool
 - Dictionary<string, object>
 - Base
Url string - Bearer
Only bool - Body string
 - Client
Authenticator stringType  - Client
Id string - Consent
Required string - Default
Client List<string>Scopes  - Default
Roles List<string> - Description string
 - Direct
Access boolGrants Enabled  - Enabled bool
 - Frontchannel
Logout bool - Full
Scope boolAllowed  - Id string
 - The provider-assigned unique ID for this managed resource.
 - Implicit
Flow boolEnabled  - Name string
 - Not
Before int - Optional
Client List<string>Scopes  - Origin string
 - Protocol string
 - Protocol
Mappers List<GetClient Description Converter Protocol Mapper>  - Public
Client bool - Realm
Id string - Redirect
Uris List<string> - Registered
Nodes Dictionary<string, object> - Registration
Access stringToken  - Root
Url string - Secret string
 - Service
Accounts boolEnabled  - Standard
Flow boolEnabled  - Surrogate
Auth boolRequired  - Web
Origins List<string> 
- Access map[string]interface{}
 - Admin
Url string - Attributes map[string]interface{}
 - Authentication
Flow map[string]interface{}Binding Overrides  - bool
 - map[string]interface{}
 - Base
Url string - Bearer
Only bool - Body string
 - Client
Authenticator stringType  - Client
Id string - Consent
Required string - Default
Client []stringScopes  - Default
Roles []string - Description string
 - Direct
Access boolGrants Enabled  - Enabled bool
 - Frontchannel
Logout bool - Full
Scope boolAllowed  - Id string
 - The provider-assigned unique ID for this managed resource.
 - Implicit
Flow boolEnabled  - Name string
 - Not
Before int - Optional
Client []stringScopes  - Origin string
 - Protocol string
 - Protocol
Mappers []GetClient Description Converter Protocol Mapper  - Public
Client bool - Realm
Id string - Redirect
Uris []string - Registered
Nodes map[string]interface{} - Registration
Access stringToken  - Root
Url string - Secret string
 - Service
Accounts boolEnabled  - Standard
Flow boolEnabled  - Surrogate
Auth boolRequired  - Web
Origins []string 
- access Map<String,Object>
 - admin
Url String - attributes Map<String,Object>
 - authentication
Flow Map<String,Object>Binding Overrides  - Boolean
 - Map<String,Object>
 - base
Url String - bearer
Only Boolean - body String
 - client
Authenticator StringType  - client
Id String - consent
Required String - default
Client List<String>Scopes  - default
Roles List<String> - description String
 - direct
Access BooleanGrants Enabled  - enabled Boolean
 - frontchannel
Logout Boolean - full
Scope BooleanAllowed  - id String
 - The provider-assigned unique ID for this managed resource.
 - implicit
Flow BooleanEnabled  - name String
 - not
Before Integer - optional
Client List<String>Scopes  - origin String
 - protocol String
 - protocol
Mappers List<GetClient Description Converter Protocol Mapper>  - public
Client Boolean - realm
Id String - redirect
Uris List<String> - registered
Nodes Map<String,Object> - registration
Access StringToken  - root
Url String - secret String
 - service
Accounts BooleanEnabled  - standard
Flow BooleanEnabled  - surrogate
Auth BooleanRequired  - web
Origins List<String> 
- access {[key: string]: any}
 - admin
Url string - attributes {[key: string]: any}
 - authentication
Flow {[key: string]: any}Binding Overrides  - boolean
 - {[key: string]: any}
 - base
Url string - bearer
Only boolean - body string
 - client
Authenticator stringType  - client
Id string - consent
Required string - default
Client string[]Scopes  - default
Roles string[] - description string
 - direct
Access booleanGrants Enabled  - enabled boolean
 - frontchannel
Logout boolean - full
Scope booleanAllowed  - id string
 - The provider-assigned unique ID for this managed resource.
 - implicit
Flow booleanEnabled  - name string
 - not
Before number - optional
Client string[]Scopes  - origin string
 - protocol string
 - protocol
Mappers GetClient Description Converter Protocol Mapper[]  - public
Client boolean - realm
Id string - redirect
Uris string[] - registered
Nodes {[key: string]: any} - registration
Access stringToken  - root
Url string - secret string
 - service
Accounts booleanEnabled  - standard
Flow booleanEnabled  - surrogate
Auth booleanRequired  - web
Origins string[] 
- access Mapping[str, Any]
 - admin_
url str - attributes Mapping[str, Any]
 - authentication_
flow_ Mapping[str, Any]binding_ overrides  - bool
 - Mapping[str, Any]
 - base_
url str - bearer_
only bool - body str
 - client_
authenticator_ strtype  - client_
id str - consent_
required str - default_
client_ Sequence[str]scopes  - default_
roles Sequence[str] - description str
 - direct_
access_ boolgrants_ enabled  - enabled bool
 - frontchannel_
logout bool - full_
scope_ boolallowed  - id str
 - The provider-assigned unique ID for this managed resource.
 - implicit_
flow_ boolenabled  - name str
 - not_
before int - optional_
client_ Sequence[str]scopes  - origin str
 - protocol str
 - protocol_
mappers Sequence[GetClient Description Converter Protocol Mapper]  - public_
client bool - realm_
id str - redirect_
uris Sequence[str] - registered_
nodes Mapping[str, Any] - registration_
access_ strtoken  - root_
url str - secret str
 - service_
accounts_ boolenabled  - standard_
flow_ boolenabled  - surrogate_
auth_ boolrequired  - web_
origins Sequence[str] 
- access Map<Any>
 - admin
Url String - attributes Map<Any>
 - authentication
Flow Map<Any>Binding Overrides  - Boolean
 - Map<Any>
 - base
Url String - bearer
Only Boolean - body String
 - client
Authenticator StringType  - client
Id String - consent
Required String - default
Client List<String>Scopes  - default
Roles List<String> - description String
 - direct
Access BooleanGrants Enabled  - enabled Boolean
 - frontchannel
Logout Boolean - full
Scope BooleanAllowed  - id String
 - The provider-assigned unique ID for this managed resource.
 - implicit
Flow BooleanEnabled  - name String
 - not
Before Number - optional
Client List<String>Scopes  - origin String
 - protocol String
 - protocol
Mappers List<Property Map> - public
Client Boolean - realm
Id String - redirect
Uris List<String> - registered
Nodes Map<Any> - registration
Access StringToken  - root
Url String - secret String
 - service
Accounts BooleanEnabled  - standard
Flow BooleanEnabled  - surrogate
Auth BooleanRequired  - web
Origins List<String> 
Supporting Types
GetClientDescriptionConverterProtocolMapper     
- Config Dictionary<string, object>
 - Id string
 - Name string
 - Protocol string
 - Protocol
Mapper string 
- Config map[string]interface{}
 - Id string
 - Name string
 - Protocol string
 - Protocol
Mapper string 
- config Map<String,Object>
 - id String
 - name String
 - protocol String
 - protocol
Mapper String 
- config {[key: string]: any}
 - id string
 - name string
 - protocol string
 - protocol
Mapper string 
- config Mapping[str, Any]
 - id str
 - name str
 - protocol str
 - protocol_
mapper str 
- config Map<Any>
 - id String
 - name String
 - protocol String
 - protocol
Mapper String 
Package Details
- Repository
 - Keycloak pulumi/pulumi-keycloak
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
keycloakTerraform Provider.