Skip to content

Commit 1c69d4c

Browse files
Daniel-ByrneDaniel Byrne
andauthored
Add new attributes to IAM Identity Account Settings (IBM-Cloud#6491)
Signed-off-by: Daniel Byrne <[email protected]> Co-authored-by: Daniel Byrne <[email protected]>
1 parent 3a705b6 commit 1c69d4c

File tree

46 files changed

+1323
-1276
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1323
-1276
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ require (
2828
github.com/IBM/logs-router-go-sdk v1.0.8
2929
github.com/IBM/mqcloud-go-sdk v0.4.0
3030
github.com/IBM/networking-go-sdk v0.51.12
31-
github.com/IBM/platform-services-go-sdk v0.87.0
31+
github.com/IBM/platform-services-go-sdk v0.88.0
3232
github.com/IBM/project-go-sdk v0.3.9
3333
github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5
3434
github.com/IBM/sarama v1.45.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ github.com/IBM/mqcloud-go-sdk v0.4.0 h1:BuZNXA6iYEg5OEPr13CMGrhH0ew4rH/4L56b1nFt
148148
github.com/IBM/mqcloud-go-sdk v0.4.0/go.mod h1:7zigCUz6k3eRrNE8KOcDkY72oPppEmoQifF+SB0NPRM=
149149
github.com/IBM/networking-go-sdk v0.51.12 h1:2qv6neG8msFR1dtf9v+rbaC2gIkw9HnzohvQpgVye5w=
150150
github.com/IBM/networking-go-sdk v0.51.12/go.mod h1:TAXWyBUk3C3R7aS1m84EfKdnDcBMZMAClwLfDj/SYZc=
151-
github.com/IBM/platform-services-go-sdk v0.87.0 h1:hLx/I7n7cb1CyAXdb2qypmCoFiYuxh2g50qN8OGnEQc=
152-
github.com/IBM/platform-services-go-sdk v0.87.0/go.mod h1:aGD045m6I8pfcB77wft8w2cHqWOJjcM3YSSV55BX0Js=
151+
github.com/IBM/platform-services-go-sdk v0.88.0 h1:PZZYg+6FSvkiyLoRMabGHHzsR9OEwhUuTUsuKs3E4qg=
152+
github.com/IBM/platform-services-go-sdk v0.88.0/go.mod h1:aGD045m6I8pfcB77wft8w2cHqWOJjcM3YSSV55BX0Js=
153153
github.com/IBM/project-go-sdk v0.3.9 h1:D/UfMMn+vMQyvYf9EfocV6HrD3HcVpeIVoUSjNKuROo=
154154
github.com/IBM/project-go-sdk v0.3.9/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo=
155155
github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 h1:NPUhkoOCRuv3OFWt19PmwjXGGTKlvmbuPg9fUrBUNe4=

ibm/acctest/acctest.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ var (
408408

409409
// for IAM Identity
410410
var IamIdentityAssignmentTargetAccountId string
411+
var IamIdentityEnterpriseAccountId string
411412

412413
// Projects
413414
var ProjectsConfigApiKey string
@@ -467,6 +468,7 @@ func init() {
467468
}
468469

469470
IamIdentityAssignmentTargetAccountId = os.Getenv("IAM_IDENTITY_ASSIGNMENT_TARGET_ACCOUNT")
471+
IamIdentityEnterpriseAccountId = os.Getenv("IAM_IDENTITY_ENTERPRISE_ACCOUNT")
470472

471473
ProjectsConfigApiKey = os.Getenv("IBM_PROJECTS_CONFIG_APIKEY")
472474
if ProjectsConfigApiKey == "" {
@@ -2265,10 +2267,14 @@ func TestAccPreCheckEnterprise(t *testing.T) {
22652267
}
22662268
}
22672269

2268-
func TestAccPreCheckAssignmentTargetAccount(t *testing.T) {
2270+
func TestAccPreCheckIamIdentityEnterpriseTemplates(t *testing.T) {
2271+
TestAccPreCheck(t)
22692272
if v := os.Getenv("IAM_IDENTITY_ASSIGNMENT_TARGET_ACCOUNT"); v == "" {
22702273
t.Fatal("IAM_IDENTITY_ASSIGNMENT_TARGET_ACCOUNT must be set for IAM identity assignment tests")
22712274
}
2275+
if v := os.Getenv("IAM_IDENTITY_ENTERPRISE_ACCOUNT"); v == "" {
2276+
t.Fatal("IAM_IDENTITY_ENTERPRISE_ACCOUNT must be set for IAM identity assignment tests")
2277+
}
22722278
}
22732279

22742280
func TestAccPreCheckEnterpriseAccountImport(t *testing.T) {

ibm/provider/provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ func Provider() *schema.Provider {
433433
"ibm_iam_access_group_policy": iampolicy.DataSourceIBMIAMAccessGroupPolicy(),
434434
"ibm_iam_access_group_template_versions": iamaccessgroup.DataSourceIBMIAMAccessGroupTemplateVersions(),
435435
"ibm_iam_access_group_template_assignment": iamaccessgroup.DataSourceIBMIAMAccessGroupTemplateAssignment(),
436-
"ibm_iam_account_settings": iamidentity.DataSourceIBMIAMAccountSettings(),
436+
"ibm_iam_account_settings": iamidentity.DataSourceIBMIamAccountSettings(),
437437
"ibm_iam_effective_account_settings": iamidentity.DataSourceIBMIamEffectiveAccountSettings(),
438438
"ibm_iam_auth_token": iamidentity.DataSourceIBMIAMAuthToken(),
439439
"ibm_iam_role_actions": iampolicy.DataSourceIBMIAMRoleAction(),
@@ -1283,7 +1283,7 @@ func Provider() *schema.Provider {
12831283
"ibm_hpcs_vault": hpcs.ResourceIbmVault(),
12841284
"ibm_iam_access_group": iamaccessgroup.ResourceIBMIAMAccessGroup(),
12851285
"ibm_iam_access_group_account_settings": iamaccessgroup.ResourceIBMIAMAccessGroupAccountSettings(),
1286-
"ibm_iam_account_settings": iamidentity.ResourceIBMIAMAccountSettings(),
1286+
"ibm_iam_account_settings": iamidentity.ResourceIBMIamAccountSettings(),
12871287
"ibm_iam_access_group_template": iamaccessgroup.ResourceIBMIAMAccessGroupTemplate(),
12881288
"ibm_iam_access_group_template_version": iamaccessgroup.ResourceIBMIAMAccessGroupTemplateVersion(),
12891289
"ibm_iam_access_group_template_assignment": iamaccessgroup.ResourceIBMIAMAccessGroupTemplateAssignment(),

ibm/service/iamidentity/data_source_ibm_iam_account_settings.go

Lines changed: 146 additions & 83 deletions
Large diffs are not rendered by default.

ibm/service/iamidentity/data_source_ibm_iam_account_settings_template.go

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ package iamidentity
66
import (
77
"context"
88
"fmt"
9+
"log"
10+
"strconv"
11+
912
"github.com/IBM/go-sdk-core/v5/core"
1013
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1114
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12-
"log"
13-
"strconv"
1415

1516
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
1617
"github.com/IBM/platform-services-go-sdk/iamidentityv1"
@@ -284,7 +285,7 @@ func dataSourceIBMAccountSettingsTemplateRead(context context.Context, d *schema
284285
var history []map[string]interface{}
285286
if accountSettingsTemplateResponse.History != nil {
286287
for _, modelItem := range accountSettingsTemplateResponse.History {
287-
modelMap, err := dataSourceIBMAccountSettingsTemplateEnityHistoryRecordToMap(&modelItem)
288+
modelMap, err := EnityHistoryRecordToMap(&modelItem)
288289
if err != nil {
289290
return diag.FromErr(err)
290291
}
@@ -365,20 +366,9 @@ func dataSourceIBMAccountSettingsTemplateAccountSettingsComponentToMap(model *ia
365366
return modelMap, nil
366367
}
367368

368-
func dataSourceIBMAccountSettingsTemplateAccountSettingsUserMfaToMap(model *iamidentityv1.AccountSettingsUserMfa) (map[string]interface{}, error) {
369+
func dataSourceIBMAccountSettingsTemplateAccountSettingsUserMfaToMap(model *iamidentityv1.UserMfa) (map[string]interface{}, error) {
369370
modelMap := make(map[string]interface{})
370371
modelMap["iam_id"] = model.IamID
371372
modelMap["mfa"] = model.Mfa
372373
return modelMap, nil
373374
}
374-
375-
func dataSourceIBMAccountSettingsTemplateEnityHistoryRecordToMap(model *iamidentityv1.EnityHistoryRecord) (map[string]interface{}, error) {
376-
modelMap := make(map[string]interface{})
377-
modelMap["timestamp"] = model.Timestamp
378-
modelMap["iam_id"] = model.IamID
379-
modelMap["iam_id_account"] = model.IamIDAccount
380-
modelMap["action"] = model.Action
381-
modelMap["params"] = model.Params
382-
modelMap["message"] = model.Message
383-
return modelMap, nil
384-
}

ibm/service/iamidentity/data_source_ibm_iam_account_settings_template_assignment.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ func dataSourceIBMAccountSettingsTemplateAssignmentRead(context context.Context,
365365
var history []map[string]interface{}
366366
if templateAssignmentResponse.History != nil {
367367
for _, modelItem := range templateAssignmentResponse.History {
368-
modelMap, err := dataSourceIBMAccountSettingsTemplateAssignmentEnityHistoryRecordToMap(&modelItem)
368+
modelMap, err := EnityHistoryRecordToMap(&modelItem)
369369
if err != nil {
370370
return diag.FromErr(err)
371371
}
@@ -522,14 +522,3 @@ func dataSourceIBMAccountSettingsTemplateAssignmentTemplateAssignmentResourceErr
522522
}
523523
return modelMap, nil
524524
}
525-
526-
func dataSourceIBMAccountSettingsTemplateAssignmentEnityHistoryRecordToMap(model *iamidentityv1.EnityHistoryRecord) (map[string]interface{}, error) {
527-
modelMap := make(map[string]interface{})
528-
modelMap["timestamp"] = model.Timestamp
529-
modelMap["iam_id"] = model.IamID
530-
modelMap["iam_id_account"] = model.IamIDAccount
531-
modelMap["action"] = model.Action
532-
modelMap["params"] = model.Params
533-
modelMap["message"] = model.Message
534-
return modelMap, nil
535-
}

ibm/service/iamidentity/data_source_ibm_iam_account_settings_template_assignment_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,28 @@ package iamidentity_test
55

66
import (
77
"fmt"
8+
"testing"
9+
810
acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest"
911
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
1012
"github.com/IBM/platform-services-go-sdk/iamidentityv1"
1113
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
1214
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1315
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
14-
"testing"
1516
)
1617

1718
func TestAccIBMAccountSettingsTemplateAssignmentDataSourceBasic(t *testing.T) {
19+
enterpriseAccountId := acc.IamIdentityEnterpriseAccountId
20+
targetId := acc.IamIdentityAssignmentTargetAccountId
1821
name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100))
1922

2023
resource.Test(t, resource.TestCase{
21-
PreCheck: func() {
22-
acc.TestAccPreCheckEnterprise(t)
23-
acc.TestAccPreCheckAssignmentTargetAccount(t)
24-
},
24+
PreCheck: func() { acc.TestAccPreCheckIamIdentityEnterpriseTemplates(t) },
2525
Providers: acc.TestAccProviders,
2626
CheckDestroy: testAccCheckIBMAccountSettingsTemplateAssignmentDataSourceDestroy,
2727
Steps: []resource.TestStep{
2828
{
29-
Config: testAccCheckIBMAccountSettingsTemplateAssignmentDataSourceConfigBasic(name),
29+
Config: testAccCheckIBMAccountSettingsTemplateAssignmentDataSourceConfigBasic(enterpriseAccountId, targetId, name),
3030
ExpectNonEmptyPlan: true,
3131
Check: resource.ComposeAggregateTestCheckFunc(
3232
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings_template_assignment.account_settings_template_assignment_instance", "id"),
@@ -48,9 +48,10 @@ func TestAccIBMAccountSettingsTemplateAssignmentDataSourceBasic(t *testing.T) {
4848
})
4949
}
5050

51-
func testAccCheckIBMAccountSettingsTemplateAssignmentDataSourceConfigBasic(name string) string {
51+
func testAccCheckIBMAccountSettingsTemplateAssignmentDataSourceConfigBasic(enterpriseAccountId string, targetId string, name string) string {
5252
return fmt.Sprintf(`
5353
resource "ibm_iam_account_settings_template" "account_settings_template" {
54+
account_id = "%s"
5455
name = "%s"
5556
account_settings {
5657
mfa = "LEVEL3"
@@ -72,7 +73,7 @@ func testAccCheckIBMAccountSettingsTemplateAssignmentDataSourceConfigBasic(name
7273
data "ibm_iam_account_settings_template_assignment" "account_settings_template_assignment_instance" {
7374
assignment_id = ibm_iam_account_settings_template_assignment.account_settings_template_assignment_instance.id
7475
}
75-
`, name, acc.IamIdentityAssignmentTargetAccountId)
76+
`, enterpriseAccountId, name, targetId)
7677
}
7778

7879
func testAccCheckIBMAccountSettingsTemplateAssignmentDataSourceDestroy(s *terraform.State) error {

ibm/service/iamidentity/data_source_ibm_iam_account_settings_template_test.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@ import (
1414
)
1515

1616
func TestAccIBMAccountSettingsTemplateDataSourceBasic(t *testing.T) {
17+
enterpriseAccountId := acc.IamIdentityEnterpriseAccountId
1718
name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100))
1819
description := fmt.Sprintf("tf_desc_%d", acctest.RandIntRange(10, 100))
1920

2021
resource.Test(t, resource.TestCase{
21-
PreCheck: func() { acc.TestAccPreCheck(t) },
22+
PreCheck: func() { acc.TestAccPreCheckIamIdentityEnterpriseTemplates(t) },
2223
Providers: acc.TestAccProviders,
2324
Steps: []resource.TestStep{
2425
{
25-
Config: testAccCheckIBMAccountSettingsTemplateDataSourceConfigBasic(name, description),
26+
Config: testAccCheckIBMAccountSettingsTemplateDataSourceConfigBasic(enterpriseAccountId, name, description),
2627
Check: resource.ComposeTestCheckFunc(
2728
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings_template.account_settings_template", "id"),
2829
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings_template.account_settings_template", "template_id"),
@@ -40,15 +41,16 @@ func TestAccIBMAccountSettingsTemplateDataSourceBasic(t *testing.T) {
4041
}
4142

4243
func TestAccIBMAccountSettingsTemplateDataSourceAllArgs(t *testing.T) {
44+
enterpriseAccountId := acc.IamIdentityEnterpriseAccountId
4345
accountSettingsTemplateResponseName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100))
4446
accountSettingsTemplateResponseDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100))
4547

4648
resource.Test(t, resource.TestCase{
47-
PreCheck: func() { acc.TestAccPreCheck(t) },
49+
PreCheck: func() { acc.TestAccPreCheckIamIdentityEnterpriseTemplates(t) },
4850
Providers: acc.TestAccProviders,
4951
Steps: []resource.TestStep{
5052
{
51-
Config: testAccCheckIBMAccountSettingsTemplateDataSourceConfig(accountSettingsTemplateResponseName, accountSettingsTemplateResponseDescription),
53+
Config: testAccCheckIBMAccountSettingsTemplateDataSourceConfig(enterpriseAccountId, accountSettingsTemplateResponseName, accountSettingsTemplateResponseDescription),
5254
Check: resource.ComposeTestCheckFunc(
5355
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings_template.account_settings_template", "id"),
5456
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings_template.account_settings_template", "version"),
@@ -80,9 +82,10 @@ func TestAccIBMAccountSettingsTemplateDataSourceAllArgs(t *testing.T) {
8082
})
8183
}
8284

83-
func testAccCheckIBMAccountSettingsTemplateDataSourceConfigBasic(name string, description string) string {
85+
func testAccCheckIBMAccountSettingsTemplateDataSourceConfigBasic(enterpriseAccountId string, name string, description string) string {
8486
return fmt.Sprintf(`
8587
resource "ibm_iam_account_settings_template" "account_settings_template" {
88+
account_id = "%s"
8689
name = "%s"
8790
description = "%s"
8891
account_settings {
@@ -93,12 +96,13 @@ func testAccCheckIBMAccountSettingsTemplateDataSourceConfigBasic(name string, de
9396
data "ibm_iam_account_settings_template" "account_settings_template" {
9497
template_id = ibm_iam_account_settings_template.account_settings_template.id
9598
}
96-
`, name, description)
99+
`, enterpriseAccountId, name, description)
97100
}
98101

99-
func testAccCheckIBMAccountSettingsTemplateDataSourceConfig(accountSettingsTemplateResponseName string, accountSettingsTemplateResponseDescription string) string {
102+
func testAccCheckIBMAccountSettingsTemplateDataSourceConfig(enterpriseAccountId string, accountSettingsTemplateResponseName string, accountSettingsTemplateResponseDescription string) string {
100103
return fmt.Sprintf(`
101104
resource "ibm_iam_account_settings_template" "account_settings_template" {
105+
account_id = "%s"
102106
name = "%s"
103107
description = "%s"
104108
account_settings {
@@ -121,5 +125,5 @@ func testAccCheckIBMAccountSettingsTemplateDataSourceConfig(accountSettingsTempl
121125
data "ibm_iam_account_settings_template" "account_settings_template" {
122126
template_id = ibm_iam_account_settings_template.account_settings_template.id
123127
}
124-
`, accountSettingsTemplateResponseName, accountSettingsTemplateResponseDescription)
128+
`, enterpriseAccountId, accountSettingsTemplateResponseName, accountSettingsTemplateResponseDescription)
125129
}

ibm/service/iamidentity/data_source_ibm_iam_account_settings_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ func TestAccIBMIAMAccountSettingsDataSourceBasic(t *testing.T) {
2424
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "account_id"),
2525
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "restrict_create_service_id"),
2626
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "restrict_create_platform_apikey"),
27+
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "restrict_user_list_visibility"),
28+
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "restrict_user_domains.#"),
2729
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "entity_tag"),
2830
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "mfa"),
2931
resource.TestCheckResourceAttrSet("data.ibm_iam_account_settings.iam_account_settings", "user_mfa.#"),

0 commit comments

Comments
 (0)