|
9 | 9 |
|
10 | 10 | "github.com/hashicorp/go-cty/cty" |
11 | 11 |
|
12 | | - "dario.cat/mergo" |
| 12 | + "github.com/google/uuid" |
13 | 13 | "github.com/hashicorp/terraform-plugin-sdk/v2/diag" |
14 | 14 | "github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff" |
15 | 15 | "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" |
@@ -661,18 +661,28 @@ func resourceKeycloakOpenidClientImport(ctx context.Context, d *schema.ResourceD |
661 | 661 |
|
662 | 662 | parts := strings.Split(d.Id(), "/") |
663 | 663 | if len(parts) != 2 { |
664 | | - return nil, fmt.Errorf("Invalid import. Supported import formats: {{realmId}}/{{openidClientId}}") |
| 664 | + return nil, fmt.Errorf("invalid import. Supported import formats: {{realmId}}/{{openidClientId}} or {{realmId}}/{{clientUuid}}") |
665 | 665 | } |
666 | | - |
667 | | - _, err := keycloakClient.GetOpenidClient(ctx, parts[0], parts[1]) |
| 666 | + if _, err := uuid.Parse(parts[1]); err == nil { |
| 667 | + // {{realmId}}/{{clientUuid}} |
| 668 | + _, err := keycloakClient.GetOpenidClient(ctx, parts[0], parts[1]) |
| 669 | + if err != nil { |
| 670 | + return nil, err |
| 671 | + } |
| 672 | + d.SetId(parts[1]) |
| 673 | + } else { |
| 674 | + // {{realmId}}/{{openidClientId}} |
| 675 | + c, err := keycloakClient.SearchOpenidClientExact(ctx, parts[0], parts[1]) |
| 676 | + if err != nil { |
| 677 | + return nil, err |
| 678 | + } |
| 679 | + d.SetId(c.Id) |
| 680 | + } |
| 681 | + err := d.Set("realm_id", parts[0]) |
668 | 682 | if err != nil { |
669 | 683 | return nil, err |
670 | 684 | } |
671 | 685 |
|
672 | | - d.Set("realm_id", parts[0]) |
673 | | - d.Set("import", false) |
674 | | - d.SetId(parts[1]) |
675 | | - |
676 | 686 | diagnostics := resourceKeycloakOpenidClientRead(ctx, d, meta) |
677 | 687 | if diagnostics.HasError() { |
678 | 688 | return nil, errors.New(diagnostics[0].Summary) |
|
0 commit comments