From e8618a3dcb2246147e3a3427cff1016af790ee21 Mon Sep 17 00:00:00 2001 From: hkavya26 <hkavya26@in.ibm.com> Date: Tue, 13 Jul 2021 15:53:14 +0530 Subject: [PATCH] Migrate: IAM Identity Client to new SDK --- ibm/data_source_ibm_iam_access_group.go | 38 ++++++++----- ibm/data_source_ibm_iam_access_group_test.go | 2 +- ibm/data_source_ibm_iam_service_id.go | 53 ++++++++++++------- ibm/data_source_ibm_iam_service_id_test.go | 4 +- ibm/data_source_ibm_iam_service_policy.go | 12 +++-- ...data_source_ibm_iam_service_policy_test.go | 4 +- ibm/resource_ibm_iam_service_policy.go | 43 ++++++++------- ibm/resource_ibm_iam_service_policy_test.go | 22 ++++---- ibm/structures.go | 6 +-- 9 files changed, 113 insertions(+), 71 deletions(-) diff --git a/ibm/data_source_ibm_iam_access_group.go b/ibm/data_source_ibm_iam_access_group.go index 2a51f1f915e..e2720cfdade 100644 --- a/ibm/data_source_ibm_iam_access_group.go +++ b/ibm/data_source_ibm_iam_access_group.go @@ -8,8 +8,8 @@ import ( "log" - "github.com/IBM-Cloud/bluemix-go/crn" "github.com/IBM-Cloud/bluemix-go/models" + "github.com/IBM/platform-services-go-sdk/iamidentityv1" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) @@ -130,27 +130,41 @@ func dataIBMIAMAccessGroupRead(d *schema.ResourceData, meta interface{}) error { return err } - iamClient, err := meta.(ClientSession).IAMAPI() + iamClient, err := meta.(ClientSession).IAMIdentityV1API() if err != nil { return err } - boundTo := crn.New(userDetails.cloudName, userDetails.cloudType) - boundTo.ScopeType = crn.ScopeAccount - boundTo.Scope = userDetails.userAccount + start := "" + allrecs := []iamidentityv1.ServiceID{} + var pg int64 = 100 + for { + listServiceIDOptions := iamidentityv1.ListServiceIdsOptions{ + AccountID: &userDetails.userAccount, + Pagesize: &pg, + } + if start != "" { + listServiceIDOptions.Pagetoken = &start + } - serviceIDs, err := iamClient.ServiceIds().List(boundTo.String()) - if err != nil { - return err + serviceIDs, resp, err := iamClient.ListServiceIds(&listServiceIDOptions) + if err != nil { + return fmt.Errorf("[ERROR] Error listing Service Ids %s %s", err, resp) + } + start = GetNextIAM(serviceIDs.Next) + allrecs = append(allrecs, serviceIDs.Serviceids...) + if start == "" { + break + } } retreivedGroups, err := iamuumClient.AccessGroup().List(accountID) if err != nil { - return fmt.Errorf("Error retrieving access groups: %s", err) + return fmt.Errorf("[ERROR] Error retrieving access groups: %s", err) } if len(retreivedGroups) == 0 { - return fmt.Errorf("No access group in account") + return fmt.Errorf("[ERROR] No access group in account") } var agName string var matchGroups []models.AccessGroupV2 @@ -165,7 +179,7 @@ func dataIBMIAMAccessGroupRead(d *schema.ResourceData, meta interface{}) error { matchGroups = retreivedGroups } if len(matchGroups) == 0 { - return fmt.Errorf("No Access Groups with name %s in Account", agName) + return fmt.Errorf("[ERROR] No Access Groups with name %s in Account", agName) } grpMap := make([]map[string]interface{}, 0, len(matchGroups)) @@ -179,7 +193,7 @@ func dataIBMIAMAccessGroupRead(d *schema.ResourceData, meta interface{}) error { if err != nil { log.Println("Error retrieving access group rules: ", err) } - ibmID, serviceID := flattenMembersData(members, res, serviceIDs) + ibmID, serviceID := flattenMembersData(members, res, allrecs) grpInstance := map[string]interface{}{ "id": grp.ID, diff --git a/ibm/data_source_ibm_iam_access_group_test.go b/ibm/data_source_ibm_iam_access_group_test.go index 32ef80aced8..8a2647424df 100644 --- a/ibm/data_source_ibm_iam_access_group_test.go +++ b/ibm/data_source_ibm_iam_access_group_test.go @@ -18,7 +18,7 @@ func TestAccIBMIAMAccessGroupDataSource_Basic(t *testing.T) { PreCheck: func() { testAccPreCheck(t) }, Providers: testAccProviders, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMAccessGroupDataSourceConfig(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.ibm_iam_access_group.accgroupdata", "access_group_name", name), diff --git a/ibm/data_source_ibm_iam_service_id.go b/ibm/data_source_ibm_iam_service_id.go index ce6ab3c12d7..f8f937352a3 100644 --- a/ibm/data_source_ibm_iam_service_id.go +++ b/ibm/data_source_ibm_iam_service_id.go @@ -6,7 +6,7 @@ package ibm import ( "fmt" - "github.com/IBM-Cloud/bluemix-go/crn" + "github.com/IBM/platform-services-go-sdk/iamidentityv1" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) @@ -35,6 +35,7 @@ func dataSourceIBMIAMServiceID() *schema.Resource { Description: "bound to of the serviceID", Type: schema.TypeString, Computed: true, + Deprecated: "bound_to attribute in service_ids list has been deprecated", }, "crn": { @@ -74,10 +75,7 @@ func dataSourceIBMIAMServiceID() *schema.Resource { } func dataSourceIBMIAMServiceIDRead(d *schema.ResourceData, meta interface{}) error { - iamClient, err := meta.(ClientSession).IAMAPI() - if err != nil { - return err - } + name := d.Get("name").(string) userDetails, err := meta.(ClientSession).BluemixUserDetails() @@ -85,30 +83,49 @@ func dataSourceIBMIAMServiceIDRead(d *schema.ResourceData, meta interface{}) err return err } - boundTo := crn.New(userDetails.cloudName, userDetails.cloudType) - boundTo.ScopeType = crn.ScopeAccount - boundTo.Scope = userDetails.userAccount - - serviceIDS, err := iamClient.ServiceIds().FindByName(boundTo.String(), name) + iamClient, err := meta.(ClientSession).IAMIdentityV1API() if err != nil { return err } - if len(serviceIDS) == 0 { - return fmt.Errorf("No serviceID found with name [%s]", name) + start := "" + allrecs := []iamidentityv1.ServiceID{} + var pg int64 = 100 + for { + listServiceIDOptions := iamidentityv1.ListServiceIdsOptions{ + AccountID: &userDetails.userAccount, + Pagesize: &pg, + Name: &name, + } + if start != "" { + listServiceIDOptions.Pagetoken = &start + } + + serviceIDs, resp, err := iamClient.ListServiceIds(&listServiceIDOptions) + if err != nil { + return fmt.Errorf("[ERROR] Error listing Service Ids %s %s", err, resp) + } + start = GetNextIAM(serviceIDs.Next) + allrecs = append(allrecs, serviceIDs.Serviceids...) + if start == "" { + break + } + } + if len(allrecs) == 0 { + return fmt.Errorf("[ERROR] No serviceID found with name [%s]", name) } - serviceIDListMap := make([]map[string]interface{}, 0, len(serviceIDS)) - for _, serviceID := range serviceIDS { + serviceIDListMap := make([]map[string]interface{}, 0, len(allrecs)) + for _, serviceID := range allrecs { l := map[string]interface{}{ - "id": serviceID.UUID, - "bound_to": serviceID.BoundTo, - "version": serviceID.Version, + "id": serviceID.ID, + // "bound_to": serviceID.BoundTo, + "version": serviceID.EntityTag, "description": serviceID.Description, "crn": serviceID.CRN, "locked": serviceID.Locked, - "iam_id": serviceID.IAMID, + "iam_id": serviceID.IamID, } serviceIDListMap = append(serviceIDListMap, l) } diff --git a/ibm/data_source_ibm_iam_service_id_test.go b/ibm/data_source_ibm_iam_service_id_test.go index ed326c6ae7e..75da1fbf8bb 100644 --- a/ibm/data_source_ibm_iam_service_id_test.go +++ b/ibm/data_source_ibm_iam_service_id_test.go @@ -18,7 +18,7 @@ func TestAccIBMIAMServiceIDDataSource_basic(t *testing.T) { PreCheck: func() { testAccPreCheck(t) }, Providers: testAccProviders, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServiceIDDataSourceConfig(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.ibm_iam_service_id.testacc_ds_service_id", "name", name), @@ -37,7 +37,7 @@ func TestAccIBMIAMServiceIDDataSource_same_name(t *testing.T) { PreCheck: func() { testAccPreCheck(t) }, Providers: testAccProviders, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServiceIDDataSourceSameName(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.ibm_iam_service_id.testacc_ds_service_id", "name", name), diff --git a/ibm/data_source_ibm_iam_service_policy.go b/ibm/data_source_ibm_iam_service_policy.go index ef725888563..df7064358b0 100644 --- a/ibm/data_source_ibm_iam_service_policy.go +++ b/ibm/data_source_ibm_iam_service_policy.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/platform-services-go-sdk/iamidentityv1" "github.com/IBM/platform-services-go-sdk/iampolicymanagementv1" ) @@ -102,15 +103,18 @@ func dataSourceIBMIAMServicePolicyRead(d *schema.ResourceData, meta interface{}) if v, ok := d.GetOk("iam_service_id"); ok && v != nil { serviceIDUUID := v.(string) - iamClient, err := meta.(ClientSession).IAMAPI() + iamClient, err := meta.(ClientSession).IAMIdentityV1API() if err != nil { return err } - serviceID, err := iamClient.ServiceIds().Get(serviceIDUUID) + getServiceIDOptions := iamidentityv1.GetServiceIDOptions{ + ID: &serviceIDUUID, + } + serviceID, resp, err := iamClient.GetServiceID(&getServiceIDOptions) if err != nil { - return err + return fmt.Errorf("[ERROR] Error] Error Getting Service Id %s %s", err, resp) } - iamID = serviceID.IAMID + iamID = *serviceID.IamID } if v, ok := d.GetOk("iam_id"); ok && v != nil { iamID = v.(string) diff --git a/ibm/data_source_ibm_iam_service_policy_test.go b/ibm/data_source_ibm_iam_service_policy_test.go index 74e4b49c818..bbc26ebab95 100644 --- a/ibm/data_source_ibm_iam_service_policy_test.go +++ b/ibm/data_source_ibm_iam_service_policy_test.go @@ -18,7 +18,7 @@ func TestAccIBMIAMServicePolicyDataSource_Basic(t *testing.T) { PreCheck: func() { testAccPreCheck(t) }, Providers: testAccProviders, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyDataSourceConfig(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.ibm_iam_service_policy.testacc_ds_service_policy", "policies.#", "1"), @@ -35,7 +35,7 @@ func TestAccIBMIAMServicePolicyDataSource_Multiple_Policies(t *testing.T) { PreCheck: func() { testAccPreCheck(t) }, Providers: testAccProviders, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyDataSourceMultiplePolicies(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.ibm_iam_service_policy.testacc_ds_service_policy", "policies.#", "2"), diff --git a/ibm/resource_ibm_iam_service_policy.go b/ibm/resource_ibm_iam_service_policy.go index 86857deb642..612039bbe40 100644 --- a/ibm/resource_ibm_iam_service_policy.go +++ b/ibm/resource_ibm_iam_service_policy.go @@ -9,6 +9,7 @@ import ( "time" "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/platform-services-go-sdk/iamidentityv1" "github.com/IBM/platform-services-go-sdk/iampolicymanagementv1" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -25,7 +26,7 @@ func resourceIBMIAMServicePolicy() *schema.Resource { State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { resources, resourceAttributes, err := importServicePolicy(d, meta) if err != nil { - return nil, fmt.Errorf("Error reading resource ID: %s", err) + return nil, fmt.Errorf("[ERROR] Error reading resource ID: %s", err) } d.Set("resources", resources) d.Set("resource_attributes", resourceAttributes) @@ -158,15 +159,18 @@ func resourceIBMIAMServicePolicyCreate(d *schema.ResourceData, meta interface{}) if v, ok := d.GetOk("iam_service_id"); ok && v != nil { serviceIDUUID := v.(string) - iamClient, err := meta.(ClientSession).IAMAPI() + iamClient, err := meta.(ClientSession).IAMIdentityV1API() if err != nil { return err } - serviceID, err := iamClient.ServiceIds().Get(serviceIDUUID) + getServiceIDOptions := iamidentityv1.GetServiceIDOptions{ + ID: &serviceIDUUID, + } + serviceID, resp, err := iamClient.GetServiceID(&getServiceIDOptions) if err != nil { - return err + return fmt.Errorf("[ERROR] Error] Error Getting Service Id %s %s", err, resp) } - iamID = serviceID.IAMID + iamID = *serviceID.IamID } if v, ok := d.GetOk("iam_id"); ok && v != nil { iamID = v.(string) @@ -215,7 +219,7 @@ func resourceIBMIAMServicePolicyCreate(d *schema.ResourceData, meta interface{}) servicePolicy, res, err := iamPolicyManagementClient.CreatePolicy(createPolicyOptions) if err != nil { - return fmt.Errorf("Error creating servicePolicy: %s %s", err, res) + return fmt.Errorf("[ERROR] Error creating servicePolicy: %s %s", err, res) } getPolicyOptions := iamPolicyManagementClient.NewGetPolicyOptions( @@ -246,7 +250,7 @@ func resourceIBMIAMServicePolicyCreate(d *schema.ResourceData, meta interface{}) iamID := v.(string) d.SetId(fmt.Sprintf("%s/%s", iamID, *servicePolicy.ID)) } - return fmt.Errorf("error fetching service policy: %s %s", err, res) + return fmt.Errorf("[ERROR] Error fetching service policy: %s %s", err, res) } if v, ok := d.GetOk("iam_service_id"); ok && v != nil { serviceIDUUID := v.(string) @@ -294,7 +298,7 @@ func resourceIBMIAMServicePolicyRead(d *schema.ResourceData, meta interface{}) e servicePolicy, res, err = iamPolicyManagementClient.GetPolicy(getPolicyOptions) } if err != nil || servicePolicy == nil { - return fmt.Errorf("Error retrieving servicePolicy: %s %s", err, res) + return fmt.Errorf("[ERROR] Error retrieving servicePolicy: %s %s", err, res) } if strings.HasPrefix(serviceIDUUID, "iam-") { d.Set("iam_id", serviceIDUUID) @@ -340,15 +344,18 @@ func resourceIBMIAMServicePolicyUpdate(d *schema.ResourceData, meta interface{}) if v, ok := d.GetOk("iam_service_id"); ok && v != nil { serviceIDUUID := v.(string) - iamClient, err := meta.(ClientSession).IAMAPI() + iamClient, err := meta.(ClientSession).IAMIdentityV1API() if err != nil { return err } - serviceID, err := iamClient.ServiceIds().Get(serviceIDUUID) + getServiceIDOptions := iamidentityv1.GetServiceIDOptions{ + ID: &serviceIDUUID, + } + serviceID, resp, err := iamClient.GetServiceID(&getServiceIDOptions) if err != nil { - return err + return fmt.Errorf("[ERROR] Error] Error Getting Service Id %s %s", err, resp) } - iamID = serviceID.IAMID + iamID = *serviceID.IamID } if v, ok := d.GetOk("iam_id"); ok && v != nil { iamID = v.(string) @@ -395,7 +402,7 @@ func resourceIBMIAMServicePolicyUpdate(d *schema.ResourceData, meta interface{}) if response != nil && response.StatusCode == 404 { return nil } - return fmt.Errorf("Error retrieving Policy: %s\n%s", err, response) + return fmt.Errorf("[ERROR] Error retrieving Policy: %s\n%s", err, response) } servicePolicyETag := response.Headers.Get("ETag") @@ -410,7 +417,7 @@ func resourceIBMIAMServicePolicyUpdate(d *schema.ResourceData, meta interface{}) _, _, err = iamPolicyManagementClient.UpdatePolicy(updatePolicyOptions) if err != nil { - return fmt.Errorf("Error updating service policy: %s", err) + return fmt.Errorf("[ERROR] Error updating service policy: %s", err) } } @@ -437,7 +444,7 @@ func resourceIBMIAMServicePolicyDelete(d *schema.ResourceData, meta interface{}) _, err = iamPolicyManagementClient.DeletePolicy(deletePolicyOptions) if err != nil { - return fmt.Errorf("Error deleting service policy: %s", err) + return fmt.Errorf("[ERROR] Error deleting service policy: %s", err) } d.SetId("") @@ -455,7 +462,7 @@ func resourceIBMIAMServicePolicyExists(d *schema.ResourceData, meta interface{}) return false, err } if len(parts) < 2 { - return false, fmt.Errorf("Incorrect ID %s: Id should be a combination of serviceID(OR)iamID/PolicyID", d.Id()) + return false, fmt.Errorf("[ERROR] Incorrect ID %s: Id should be a combination of serviceID(OR)iamID/PolicyID", d.Id()) } serviceIDUUID := parts[0] servicePolicyID := parts[1] @@ -469,7 +476,7 @@ func resourceIBMIAMServicePolicyExists(d *schema.ResourceData, meta interface{}) if resp != nil && resp.StatusCode == 404 { return false, nil } - return false, fmt.Errorf("Error communicating with the API: %s\n%s", err, resp) + return false, fmt.Errorf("[ERROR] Error communicating with the API: %s\n%s", err, resp) } if servicePolicy != nil && servicePolicy.State != nil && *servicePolicy.State == "deleted" { @@ -497,7 +504,7 @@ func importServicePolicy(d *schema.ResourceData, meta interface{}) (interface{}, ) servicePolicy, _, err := iamPolicyManagementClient.GetPolicy(getPolicyOptions) if err != nil { - return nil, nil, fmt.Errorf("Error retrieving servicePolicy: %s", err) + return nil, nil, fmt.Errorf("[ERROR] Error retrieving servicePolicy: %s", err) } resources := flattenPolicyResource(servicePolicy.Resources) resource_attributes := flattenPolicyResourceAttributes(servicePolicy.Resources) diff --git a/ibm/resource_ibm_iam_service_policy_test.go b/ibm/resource_ibm_iam_service_policy_test.go index 11210e2365b..97c7a027ae0 100644 --- a/ibm/resource_ibm_iam_service_policy_test.go +++ b/ibm/resource_ibm_iam_service_policy_test.go @@ -22,7 +22,7 @@ func TestAccIBMIAMServicePolicy_Basic(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyBasic(name), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists("ibm_iam_service_policy.policy", conf), @@ -31,7 +31,7 @@ func TestAccIBMIAMServicePolicy_Basic(t *testing.T) { resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "roles.#", "1"), ), }, - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyUpdateRole(name), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("ibm_iam_service_id.serviceID", "name", name), @@ -52,7 +52,7 @@ func TestAccIBMIAMServicePolicy_With_Service(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyService(name), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists("ibm_iam_service_policy.policy", conf), @@ -61,7 +61,7 @@ func TestAccIBMIAMServicePolicy_With_Service(t *testing.T) { resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "roles.#", "1"), ), }, - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyUpdateServiceAndRegion(name), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("ibm_iam_service_id.serviceID", "name", name), @@ -83,7 +83,7 @@ func TestAccIBMIAMServicePolicy_With_ResourceInstance(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyResourceInstance(name), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists("ibm_iam_service_policy.policy", conf), @@ -105,7 +105,7 @@ func TestAccIBMIAMServicePolicy_With_Resource_Group(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyResourceGroup(name), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists("ibm_iam_service_policy.policy", conf), @@ -127,7 +127,7 @@ func TestAccIBMIAMServicePolicy_With_Resource_Type(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyResourceType(name), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists("ibm_iam_service_policy.policy", conf), @@ -149,7 +149,7 @@ func TestAccIBMIAMServicePolicy_import(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyImport(name), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists(resourceName, conf), @@ -157,7 +157,7 @@ func TestAccIBMIAMServicePolicy_import(t *testing.T) { resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "roles.#", "1"), ), }, - resource.TestStep{ + { ResourceName: resourceName, ImportState: true, ImportStateVerify: true, @@ -177,7 +177,7 @@ func TestAccIBMIAMServicePolicy_account_management(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyAccountManagement(name), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists(resourceName, conf), @@ -200,7 +200,7 @@ func TestAccIBMIAMServicePolicyWithCustomRole(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccCheckIBMIAMServicePolicyWithCustomRole(name, crName, displayName), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMIAMServicePolicyExists("ibm_iam_service_policy.policy", conf), diff --git a/ibm/structures.go b/ibm/structures.go index e1734a02461..f679d605155 100644 --- a/ibm/structures.go +++ b/ibm/structures.go @@ -1282,7 +1282,7 @@ func contains(s []int, e int) bool { return false } -func flattenMembersData(list []models.AccessGroupMemberV2, users []usermanagementv2.UserInfo, serviceids []models.ServiceID) ([]string, []string) { +func flattenMembersData(list []models.AccessGroupMemberV2, users []usermanagementv2.UserInfo, serviceids []iamidentityv1.ServiceID) ([]string, []string) { var ibmid []string var serviceid []string for _, m := range list { @@ -1296,8 +1296,8 @@ func flattenMembersData(list []models.AccessGroupMemberV2, users []usermanagemen } else { for _, srid := range serviceids { - if srid.IAMID == m.ID { - serviceid = append(serviceid, srid.UUID) + if *srid.IamID == m.ID { + serviceid = append(serviceid, *srid.ID) break } }