@@ -36,11 +36,11 @@ func ResourceIBMIAMServicePolicy() *schema.Resource {
3636 return []* schema.ResourceData {d }, nil
3737 },
3838 },
39-
4039 Schema : map [string ]* schema.Schema {
4140 "iam_service_id" : {
4241 Type : schema .TypeString ,
4342 Optional : true ,
43+ Computed : true ,
4444 Description : "UUID of ServiceID" ,
4545 ForceNew : true ,
4646 Deprecated : "This field is deprecated and will be removed starting with this 1.82.0 release. Please use iam_id field instead." ,
@@ -50,6 +50,7 @@ func ResourceIBMIAMServicePolicy() *schema.Resource {
5050 "iam_id" : {
5151 Type : schema .TypeString ,
5252 Optional : true ,
53+ Computed : true ,
5354 Description : "IAM ID of ServiceID" ,
5455 ForceNew : true ,
5556 },
@@ -453,17 +454,16 @@ func resourceIBMIAMServicePolicyCreate(d *schema.ResourceData, meta interface{})
453454 }
454455 if err != nil {
455456 if v , ok := d .GetOk ("iam_service_id" ); ok && v != nil {
456- serviceIDUUID := v .(string )
457- d . SetId ( fmt . Sprintf ( "%s/%s" , serviceIDUUID , policyID ))
457+ d . SetId ( fmt . Sprintf ( "%s/%s" , "iam-" + v .(string ), policyID ) )
458+
458459 } else if v , ok := d .GetOk ("iam_id" ); ok && v != nil {
459460 iamID := v .(string )
460461 d .SetId (fmt .Sprintf ("%s/%s" , iamID , policyID ))
461462 }
462463 return fmt .Errorf ("[ERROR] Error fetching service policy: %s" , err )
463464 }
464465 if v , ok := d .GetOk ("iam_service_id" ); ok && v != nil {
465- serviceIDUUID := v .(string )
466- d .SetId (fmt .Sprintf ("%s/%s" , serviceIDUUID , policyID ))
466+ d .SetId (fmt .Sprintf ("%s/%s" , "iam-" + v .(string ), policyID ))
467467 } else if v , ok := d .GetOk ("iam_id" ); ok && v != nil {
468468 iamID := v .(string )
469469 d .SetId (fmt .Sprintf ("%s/%s" , iamID , policyID ))
@@ -514,10 +514,15 @@ func resourceIBMIAMServicePolicyRead(d *schema.ResourceData, meta interface{}) e
514514 if err != nil || servicePolicy == nil || res == nil {
515515 return fmt .Errorf ("[ERROR] Error retrieving servicePolicy: %s %s" , err , res )
516516 }
517+
517518 if strings .HasPrefix (serviceIDUUID , "iam-" ) {
518519 d .Set ("iam_id" , serviceIDUUID )
520+ d .Set ("iam_service_id" , strings .TrimPrefix (serviceIDUUID , "iam-" ))
521+ d .SetId (fmt .Sprintf ("%s/%s" , serviceIDUUID , servicePolicyID ))
519522 } else {
520523 d .Set ("iam_service_id" , serviceIDUUID )
524+ d .Set ("iam_id" , fmt .Sprintf ("iam-%s" , serviceIDUUID ))
525+ d .SetId (fmt .Sprintf ("%s/%s" , fmt .Sprintf ("iam-%s" , serviceIDUUID ), servicePolicyID ))
521526 }
522527
523528 roles , err := flex .GetRoleNamesFromPolicyResponse (* servicePolicy , d , meta )
@@ -572,27 +577,6 @@ func resourceIBMIAMServicePolicyUpdate(d *schema.ResourceData, meta interface{})
572577 servicePolicyID := parts [1 ]
573578
574579 var iamID string
575- if v , ok := d .GetOk ("iam_service_id" ); ok && v != nil {
576- serviceIDUUID := v .(string )
577-
578- iamClient , err := meta .(conns.ClientSession ).IAMIdentityV1API ()
579- if err != nil {
580- return err
581- }
582- getServiceIDOptions := iamidentityv1.GetServiceIDOptions {
583- ID : & serviceIDUUID ,
584- }
585-
586- if transactionID , ok := d .GetOk ("transaction_id" ); ok {
587- getServiceIDOptions .SetHeaders (map [string ]string {"Transaction-Id" : transactionID .(string )})
588- }
589-
590- serviceID , resp , err := iamClient .GetServiceID (& getServiceIDOptions )
591- if err != nil {
592- return fmt .Errorf ("[ERROR] Error] Error Getting Service Id %s %s" , err , resp )
593- }
594- iamID = * serviceID .IamID
595- }
596580 if v , ok := d .GetOk ("iam_id" ); ok && v != nil {
597581 iamID = v .(string )
598582 }
0 commit comments