github.com/vmware/govmomi@v0.51.0/view/list_view.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package view 6 7 import ( 8 "context" 9 10 "github.com/vmware/govmomi/vim25" 11 "github.com/vmware/govmomi/vim25/methods" 12 "github.com/vmware/govmomi/vim25/types" 13 ) 14 15 type ListView struct { 16 ManagedObjectView 17 } 18 19 func NewListView(c *vim25.Client, ref types.ManagedObjectReference) *ListView { 20 return &ListView{ 21 ManagedObjectView: *NewManagedObjectView(c, ref), 22 } 23 } 24 25 func (v ListView) Add(ctx context.Context, refs []types.ManagedObjectReference) ([]types.ManagedObjectReference, error) { 26 req := types.ModifyListView{ 27 This: v.Reference(), 28 Add: refs, 29 } 30 res, err := methods.ModifyListView(ctx, v.Client(), &req) 31 if err != nil { 32 return nil, err 33 } 34 35 return res.Returnval, nil 36 } 37 38 func (v ListView) Remove(ctx context.Context, refs []types.ManagedObjectReference) ([]types.ManagedObjectReference, error) { 39 req := types.ModifyListView{ 40 This: v.Reference(), 41 Remove: refs, 42 } 43 res, err := methods.ModifyListView(ctx, v.Client(), &req) 44 if err != nil { 45 return nil, err 46 } 47 48 return res.Returnval, nil 49 } 50 51 func (v ListView) Reset(ctx context.Context, refs []types.ManagedObjectReference) ([]types.ManagedObjectReference, error) { 52 req := types.ResetListView{ 53 This: v.Reference(), 54 Obj: refs, 55 } 56 res, err := methods.ResetListView(ctx, v.Client(), &req) 57 if err != nil { 58 return nil, err 59 } 60 61 return res.Returnval, nil 62 }