@@ -151,6 +151,40 @@ func DataSourceIBMISLB() *schema.Resource {
151151 Description : "Load Balancer subnets list" ,
152152 },
153153
154+ isAttachedLoadBalancerPoolMembers : {
155+ Type : schema .TypeList ,
156+ Computed : true ,
157+ Description : "The load balancer pool members attached to this load balancer." ,
158+ Elem : & schema.Resource {
159+ Schema : map [string ]* schema.Schema {
160+ "deleted" : {
161+ Type : schema .TypeList ,
162+ Computed : true ,
163+ Description : "If present, this property indicates the referenced resource has been deleted and providessome supplementary information." ,
164+ Elem : & schema.Resource {
165+ Schema : map [string ]* schema.Schema {
166+ "more_info" : {
167+ Type : schema .TypeString ,
168+ Computed : true ,
169+ Description : "Link to documentation about deleted resources." ,
170+ },
171+ },
172+ },
173+ },
174+ "href" : {
175+ Type : schema .TypeString ,
176+ Computed : true ,
177+ Description : "The URL for this load balancer pool member." ,
178+ },
179+ "id" : {
180+ Type : schema .TypeString ,
181+ Computed : true ,
182+ Description : "The unique identifier for this load balancer pool member." ,
183+ },
184+ },
185+ },
186+ },
187+
154188 isLBSecurityGroups : {
155189 Type : schema .TypeSet ,
156190 Computed : true ,
@@ -483,6 +517,9 @@ func lbGetByName(d *schema.ResourceData, meta interface{}, name string) error {
483517 d .Set (isLBSubnets , subnetList )
484518 }
485519
520+ if lb .AttachedLoadBalancerPoolMembers != nil {
521+ d .Set (isAttachedLoadBalancerPoolMembers , dataSourceAttachedLoadBalancerPoolFlattenMembers (lb .AttachedLoadBalancerPoolMembers ))
522+ }
486523 d .Set (isLBSecurityGroupsSupported , false )
487524 if lb .SecurityGroups != nil {
488525 securitygroupList := make ([]string , 0 )
@@ -599,3 +636,40 @@ func lbGetByName(d *schema.ResourceData, meta interface{}, name string) error {
599636 }
600637 return fmt .Errorf ("[ERROR] No Load balancer found with name %s" , name )
601638}
639+
640+ func dataSourceAttachedLoadBalancerPoolFlattenMembers (result []vpcv1.LoadBalancerPoolMemberReference ) (members []map [string ]interface {}) {
641+ for _ , membersItem := range result {
642+ members = append (members , dataSourceAttachedLoadBalancerPoolMembersToMap (membersItem ))
643+ }
644+
645+ return members
646+ }
647+
648+ func dataSourceAttachedLoadBalancerPoolMembersToMap (membersItem vpcv1.LoadBalancerPoolMemberReference ) (membersMap map [string ]interface {}) {
649+ membersMap = map [string ]interface {}{}
650+
651+ if membersItem .Deleted != nil {
652+ deletedList := []map [string ]interface {}{}
653+ deletedMap := dataSourceAttachedLoadBalancerPoolMembersDeletedToMap (* membersItem .Deleted )
654+ deletedList = append (deletedList , deletedMap )
655+ membersMap ["deleted" ] = deletedList
656+ }
657+ if membersItem .Href != nil {
658+ membersMap ["href" ] = membersItem .Href
659+ }
660+ if membersItem .ID != nil {
661+ membersMap ["id" ] = membersItem .ID
662+ }
663+
664+ return membersMap
665+ }
666+
667+ func dataSourceAttachedLoadBalancerPoolMembersDeletedToMap (deletedItem vpcv1.Deleted ) (deletedMap map [string ]interface {}) {
668+ deletedMap = map [string ]interface {}{}
669+
670+ if deletedItem .MoreInfo != nil {
671+ deletedMap ["more_info" ] = deletedItem .MoreInfo
672+ }
673+
674+ return deletedMap
675+ }
0 commit comments