@@ -161,126 +161,24 @@ func ResourceIBMIsVirtualNetworkInterface() *schema.Resource {
161161 },
162162 },
163163 "resource_group" : & schema.Schema {
164- Type : schema .TypeList ,
165- MaxItems : 1 ,
164+ Type : schema .TypeString ,
166165 Optional : true ,
167166 Computed : true ,
168- Description : "The resource group for this virtual network interface." ,
169- Elem : & schema.Resource {
170- Schema : map [string ]* schema.Schema {
171- "href" : & schema.Schema {
172- Type : schema .TypeString ,
173- Computed : true ,
174- Description : "The URL for this resource group." ,
175- },
176- "id" : & schema.Schema {
177- Type : schema .TypeString ,
178- Required : true ,
179- Description : "The unique identifier for this resource group." ,
180- },
181- "name" : & schema.Schema {
182- Type : schema .TypeString ,
183- Computed : true ,
184- Description : "The name for this resource group." ,
185- },
186- },
187- },
167+ Description : "The resource group id for this virtual network interface." ,
188168 },
189- "security_groups" : & schema. Schema {
190- Type : schema .TypeList ,
169+ "security_groups" : {
170+ Type : schema .TypeSet ,
191171 Optional : true ,
192172 Computed : true ,
173+ ForceNew : true ,
174+ Elem : & schema.Schema {Type : schema .TypeString },
175+ Set : schema .HashString ,
193176 Description : "The security groups for this virtual network interface." ,
194- Elem : & schema.Resource {
195- Schema : map [string ]* schema.Schema {
196- "crn" : & schema.Schema {
197- Type : schema .TypeString ,
198- Optional : true ,
199- Computed : true ,
200- Description : "The security group's CRN." ,
201- },
202- "deleted" : & schema.Schema {
203- Type : schema .TypeList ,
204- Computed : true ,
205- Description : "If present, this property indicates the referenced resource has been deleted, and providessome supplementary information." ,
206- Elem : & schema.Resource {
207- Schema : map [string ]* schema.Schema {
208- "more_info" : & schema.Schema {
209- Type : schema .TypeString ,
210- Computed : true ,
211- Description : "Link to documentation about deleted resources." ,
212- },
213- },
214- },
215- },
216- "href" : & schema.Schema {
217- Type : schema .TypeString ,
218- Optional : true ,
219- Computed : true ,
220- Description : "The security group's canonical URL." ,
221- },
222- "security_group" : & schema.Schema {
223- Type : schema .TypeString ,
224- Optional : true ,
225- Computed : true ,
226- Description : "The unique identifier for this security group." ,
227- },
228- "name" : & schema.Schema {
229- Type : schema .TypeString ,
230- Computed : true ,
231- Description : "The name for this security group. The name is unique across all security groups for the VPC." ,
232- },
233- },
234- },
235177 },
236178 "subnet" : & schema.Schema {
237- Type : schema .TypeList ,
238- MaxItems : 1 ,
179+ Type : schema .TypeString ,
239180 Optional : true ,
240- Description : "The associated subnet." ,
241- Elem : & schema.Resource {
242- Schema : map [string ]* schema.Schema {
243- "crn" : & schema.Schema {
244- Type : schema .TypeString ,
245- Computed : true ,
246- Description : "The CRN for this subnet." ,
247- },
248- "deleted" : & schema.Schema {
249- Type : schema .TypeList ,
250- Computed : true ,
251- Description : "If present, this property indicates the referenced resource has been deleted, and providessome supplementary information." ,
252- Elem : & schema.Resource {
253- Schema : map [string ]* schema.Schema {
254- "more_info" : & schema.Schema {
255- Type : schema .TypeString ,
256- Computed : true ,
257- Description : "Link to documentation about deleted resources." ,
258- },
259- },
260- },
261- },
262- "href" : & schema.Schema {
263- Type : schema .TypeString ,
264- Computed : true ,
265- Description : "The URL for this subnet." ,
266- },
267- "subnet" : & schema.Schema {
268- Type : schema .TypeString ,
269- Required : true ,
270- Description : "The unique identifier for this subnet." ,
271- },
272- "name" : & schema.Schema {
273- Type : schema .TypeString ,
274- Computed : true ,
275- Description : "The name for this subnet. The name is unique across all subnets in the VPC." ,
276- },
277- "resource_type" : & schema.Schema {
278- Type : schema .TypeString ,
279- Computed : true ,
280- Description : "The resource type." ,
281- },
282- },
283- },
181+ Description : "The associated subnet id." ,
284182 },
285183 "created_at" : & schema.Schema {
286184 Type : schema .TypeString ,
@@ -404,23 +302,9 @@ func ResourceIBMIsVirtualNetworkInterface() *schema.Resource {
404302 },
405303 },
406304 "zone" : & schema.Schema {
407- Type : schema .TypeList ,
305+ Type : schema .TypeString ,
408306 Computed : true ,
409- Description : "The zone this virtual network interface resides in." ,
410- Elem : & schema.Resource {
411- Schema : map [string ]* schema.Schema {
412- "href" : & schema.Schema {
413- Type : schema .TypeString ,
414- Computed : true ,
415- Description : "The URL for this zone." ,
416- },
417- "name" : & schema.Schema {
418- Type : schema .TypeString ,
419- Computed : true ,
420- Description : "The globally unique name for this zone." ,
421- },
422- },
423- },
307+ Description : "The zone name this virtual network interface resides in." ,
424308 },
425309 },
426310 }
@@ -492,20 +376,20 @@ func resourceIBMIsVirtualNetworkInterfaceCreate(context context.Context, d *sche
492376 }
493377 if _ , ok := d .GetOk ("security_groups" ); ok {
494378 var securityGroups []vpcv1.SecurityGroupIdentityIntf
495- for _ , v := range d .Get ("security_groups" ).([] interface {}) {
496- value := v .( map [ string ] interface {})
497- securityGroupsItem , err := resourceIBMIsVirtualNetworkInterfaceMapToSecurityGroupIdentity ( value )
498- if err != nil {
499- return diag . FromErr ( err )
379+ sg := d .Get ("security_groups" ).(* schema. Set )
380+ for _ , v := range sg . List () {
381+ value := v .( string )
382+ securityGroupsItem := & vpcv1. SecurityGroupIdentity {
383+ ID : & value ,
500384 }
501385 securityGroups = append (securityGroups , securityGroupsItem )
502386 }
503387 createVirtualNetworkInterfaceOptions .SetSecurityGroups (securityGroups )
504388 }
505- if _ , ok := d .GetOk ("subnet" ); ok {
506- subnetModel , err := resourceIBMIsVirtualNetworkInterfaceMapToSubnetIdentity ( d . Get ( "subnet.0" ).( map [ string ] interface {}) )
507- if err != nil {
508- return diag . FromErr ( err )
389+ if subnetOk , ok := d .GetOk ("subnet" ); ok {
390+ subnetid := subnetOk .( string )
391+ subnetModel := & vpcv1. SubnetIdentity {
392+ ID : & subnetid ,
509393 }
510394 createVirtualNetworkInterfaceOptions .SetSubnet (subnetModel )
511395 }
@@ -584,35 +468,21 @@ func resourceIBMIsVirtualNetworkInterfaceRead(context context.Context, d *schema
584468 }
585469 }
586470 if ! core .IsNil (virtualNetworkInterface .ResourceGroup ) {
587- resourceGroupMap , err := resourceIBMIsVirtualNetworkInterfaceResourceGroupReferenceToMap (virtualNetworkInterface .ResourceGroup )
588- if err != nil {
589- return diag .FromErr (err )
590- }
591- if err = d .Set ("resource_group" , []map [string ]interface {}{resourceGroupMap }); err != nil {
592- return diag .FromErr (fmt .Errorf ("Error setting resource_group: %s" , err ))
593- }
471+ d .Set ("resource_group" , virtualNetworkInterface .ResourceGroup .ID )
594472 }
595473 if ! core .IsNil (virtualNetworkInterface .SecurityGroups ) {
596- securityGroups := [] map [ string ] interface {}{}
474+ securityGroups := make ([] string , 0 )
597475 for _ , securityGroupsItem := range virtualNetworkInterface .SecurityGroups {
598- securityGroupsItemMap , err := resourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceToMap (& securityGroupsItem )
599- if err != nil {
600- return diag .FromErr (err )
476+ if securityGroupsItem .ID != nil {
477+ securityGroups = append (securityGroups , * securityGroupsItem .ID )
601478 }
602- securityGroups = append (securityGroups , securityGroupsItemMap )
603479 }
604480 if err = d .Set ("security_groups" , securityGroups ); err != nil {
605- return diag .FromErr (fmt .Errorf ("Error setting security_groups: %s" , err ))
481+ return diag .FromErr (fmt .Errorf ("[ERROR] Error setting security_groups for vni : %s" , err ))
606482 }
607483 }
608484 if ! core .IsNil (virtualNetworkInterface .Subnet ) {
609- subnetMap , err := resourceIBMIsVirtualNetworkInterfaceSubnetReferenceToMap (virtualNetworkInterface .Subnet )
610- if err != nil {
611- return diag .FromErr (err )
612- }
613- if err = d .Set ("subnet" , []map [string ]interface {}{subnetMap }); err != nil {
614- return diag .FromErr (fmt .Errorf ("Error setting subnet: %s" , err ))
615- }
485+ d .Set ("subnet" , virtualNetworkInterface .Subnet .ID )
616486 }
617487 if err = d .Set ("created_at" , flex .DateTimeToString (virtualNetworkInterface .CreatedAt )); err != nil {
618488 return diag .FromErr (fmt .Errorf ("Error setting created_at: %s" , err ))
@@ -652,12 +522,9 @@ func resourceIBMIsVirtualNetworkInterfaceRead(context context.Context, d *schema
652522 if err = d .Set ("vpc" , []map [string ]interface {}{vpcMap }); err != nil {
653523 return diag .FromErr (fmt .Errorf ("Error setting vpc: %s" , err ))
654524 }
655- zoneMap , err := resourceIBMIsVirtualNetworkInterfaceZoneReferenceToMap (virtualNetworkInterface .Zone )
656- if err != nil {
657- return diag .FromErr (err )
658- }
659- if err = d .Set ("zone" , []map [string ]interface {}{zoneMap }); err != nil {
660- return diag .FromErr (fmt .Errorf ("Error setting zone: %s" , err ))
525+
526+ if virtualNetworkInterface .Zone != nil {
527+ d .Set ("zone" , * virtualNetworkInterface .Zone .Name )
661528 }
662529
663530 return nil
@@ -778,70 +645,6 @@ func resourceIBMIsVirtualNetworkInterfaceMapToVirtualNetworkInterfacePrototypeRe
778645 return model , nil
779646}
780647
781- func resourceIBMIsVirtualNetworkInterfaceMapToSecurityGroupIdentity (modelMap map [string ]interface {}) (vpcv1.SecurityGroupIdentityIntf , error ) {
782- model := & vpcv1.SecurityGroupIdentity {}
783- if modelMap ["security_group" ] != nil && modelMap ["security_group" ].(string ) != "" {
784- model .ID = core .StringPtr (modelMap ["security_group" ].(string ))
785- }
786- if modelMap ["crn" ] != nil && modelMap ["crn" ].(string ) != "" {
787- model .CRN = core .StringPtr (modelMap ["crn" ].(string ))
788- }
789- if modelMap ["href" ] != nil && modelMap ["href" ].(string ) != "" {
790- model .Href = core .StringPtr (modelMap ["href" ].(string ))
791- }
792- return model , nil
793- }
794-
795- func resourceIBMIsVirtualNetworkInterfaceMapToSecurityGroupIdentityByID (modelMap map [string ]interface {}) (* vpcv1.SecurityGroupIdentityByID , error ) {
796- model := & vpcv1.SecurityGroupIdentityByID {}
797- model .ID = core .StringPtr (modelMap ["security_group" ].(string ))
798- return model , nil
799- }
800-
801- func resourceIBMIsVirtualNetworkInterfaceMapToSecurityGroupIdentityByCRN (modelMap map [string ]interface {}) (* vpcv1.SecurityGroupIdentityByCRN , error ) {
802- model := & vpcv1.SecurityGroupIdentityByCRN {}
803- model .CRN = core .StringPtr (modelMap ["crn" ].(string ))
804- return model , nil
805- }
806-
807- func resourceIBMIsVirtualNetworkInterfaceMapToSecurityGroupIdentityByHref (modelMap map [string ]interface {}) (* vpcv1.SecurityGroupIdentityByHref , error ) {
808- model := & vpcv1.SecurityGroupIdentityByHref {}
809- model .Href = core .StringPtr (modelMap ["href" ].(string ))
810- return model , nil
811- }
812-
813- func resourceIBMIsVirtualNetworkInterfaceMapToSubnetIdentity (modelMap map [string ]interface {}) (vpcv1.SubnetIdentityIntf , error ) {
814- model := & vpcv1.SubnetIdentity {}
815- if modelMap ["subnet" ] != nil && modelMap ["subnet" ].(string ) != "" {
816- model .ID = core .StringPtr (modelMap ["subnet" ].(string ))
817- }
818- if modelMap ["crn" ] != nil && modelMap ["crn" ].(string ) != "" {
819- model .CRN = core .StringPtr (modelMap ["crn" ].(string ))
820- }
821- if modelMap ["href" ] != nil && modelMap ["href" ].(string ) != "" {
822- model .Href = core .StringPtr (modelMap ["href" ].(string ))
823- }
824- return model , nil
825- }
826-
827- func resourceIBMIsVirtualNetworkInterfaceMapToSubnetIdentityByID (modelMap map [string ]interface {}) (* vpcv1.SubnetIdentityByID , error ) {
828- model := & vpcv1.SubnetIdentityByID {}
829- model .ID = core .StringPtr (modelMap ["subnet" ].(string ))
830- return model , nil
831- }
832-
833- func resourceIBMIsVirtualNetworkInterfaceMapToSubnetIdentityByCRN (modelMap map [string ]interface {}) (* vpcv1.SubnetIdentityByCRN , error ) {
834- model := & vpcv1.SubnetIdentityByCRN {}
835- model .CRN = core .StringPtr (modelMap ["crn" ].(string ))
836- return model , nil
837- }
838-
839- func resourceIBMIsVirtualNetworkInterfaceMapToSubnetIdentityByHref (modelMap map [string ]interface {}) (* vpcv1.SubnetIdentityByHref , error ) {
840- model := & vpcv1.SubnetIdentityByHref {}
841- model .Href = core .StringPtr (modelMap ["href" ].(string ))
842- return model , nil
843- }
844-
845648func resourceIBMIsVirtualNetworkInterfaceReservedIPReferenceToMap (model * vpcv1.ReservedIPReference ) (map [string ]interface {}, error ) {
846649 modelMap := make (map [string ]interface {})
847650 modelMap ["address" ] = model .Address
@@ -865,14 +668,6 @@ func resourceIBMIsVirtualNetworkInterfaceReservedIPReferenceDeletedToMap(model *
865668 return modelMap , nil
866669}
867670
868- func resourceIBMIsVirtualNetworkInterfaceResourceGroupReferenceToMap (model * vpcv1.ResourceGroupReference ) (map [string ]interface {}, error ) {
869- modelMap := make (map [string ]interface {})
870- modelMap ["href" ] = model .Href
871- modelMap ["id" ] = model .ID
872- modelMap ["name" ] = model .Name
873- return modelMap , nil
874- }
875-
876671func resourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceToMap (model * vpcv1.SecurityGroupReference ) (map [string ]interface {}, error ) {
877672 modelMap := make (map [string ]interface {})
878673 modelMap ["crn" ] = model .CRN
@@ -895,29 +690,6 @@ func resourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceDeletedToMap(mode
895690 return modelMap , nil
896691}
897692
898- func resourceIBMIsVirtualNetworkInterfaceSubnetReferenceToMap (model * vpcv1.SubnetReference ) (map [string ]interface {}, error ) {
899- modelMap := make (map [string ]interface {})
900- modelMap ["crn" ] = model .CRN
901- if model .Deleted != nil {
902- deletedMap , err := resourceIBMIsVirtualNetworkInterfaceSubnetReferenceDeletedToMap (model .Deleted )
903- if err != nil {
904- return modelMap , err
905- }
906- modelMap ["deleted" ] = []map [string ]interface {}{deletedMap }
907- }
908- modelMap ["href" ] = model .Href
909- modelMap ["subnet" ] = model .ID
910- modelMap ["name" ] = model .Name
911- modelMap ["resource_type" ] = model .ResourceType
912- return modelMap , nil
913- }
914-
915- func resourceIBMIsVirtualNetworkInterfaceSubnetReferenceDeletedToMap (model * vpcv1.SubnetReferenceDeleted ) (map [string ]interface {}, error ) {
916- modelMap := make (map [string ]interface {})
917- modelMap ["more_info" ] = model .MoreInfo
918- return modelMap , nil
919- }
920-
921693func resourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetToMap (model vpcv1.VirtualNetworkInterfaceTargetIntf ) (map [string ]interface {}, error ) {
922694 if _ , ok := model .(* vpcv1.VirtualNetworkInterfaceTargetShareMountTargetReference ); ok {
923695 return resourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetShareMountTargetReferenceToMap (model .(* vpcv1.VirtualNetworkInterfaceTargetShareMountTargetReference ))
@@ -1041,10 +813,3 @@ func resourceIBMIsVirtualNetworkInterfaceVPCReferenceDeletedToMap(model *vpcv1.V
1041813 modelMap ["more_info" ] = model .MoreInfo
1042814 return modelMap , nil
1043815}
1044-
1045- func resourceIBMIsVirtualNetworkInterfaceZoneReferenceToMap (model * vpcv1.ZoneReference ) (map [string ]interface {}, error ) {
1046- modelMap := make (map [string ]interface {})
1047- modelMap ["href" ] = model .Href
1048- modelMap ["name" ] = model .Name
1049- return modelMap , nil
1050- }
0 commit comments