go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/_motor/providers/winrm/cat/getitem.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package cat 5 6 import ( 7 "encoding/json" 8 "io" 9 "io/ioutil" 10 ) 11 12 type GetItem struct { 13 Name string `json:"Name"` 14 Length int64 `json:"Length"` 15 DirectoryName string `json:"DirectoryName"` 16 IsReadOnly bool `json:"IsReadOnly"` 17 Exists bool `json:"Exists"` 18 FullName string `json:"FullName"` 19 Extension string `json:"Extension"` 20 CreationTime string `json:"CreationTime"` 21 CreationTimeUtc string `json:"CreationTimeUtc"` 22 LastAccessTime string `json:"LastAccessTime"` 23 LastAccessTimeUtc string `json:"LastAccessTimeUtc"` 24 LastWriteTime string `json:"LastWriteTime"` 25 LastWriteTimeUtc string `json:"LastWriteTimeUtc"` 26 Attributes uint32 `json:"Attributes"` 27 Mode string `json:"Mode"` 28 BaseName string `json:"BaseName"` 29 VersionInfo VersionInfo `json:"VersionInfo"` 30 } 31 32 type VersionInfo struct { 33 IsDebug bool `json:"IsDebug"` 34 IsPatched bool `json:"IsPatched"` 35 IsPreRelease bool `json:"IsPreRelease"` 36 IsPrivateBuild bool `json:"IsPrivateBuild"` 37 IsSpecialBuild bool `json:"IsSpecialBuild"` 38 FileVersionRaw VersionInfoRaw `json:"FileVersionRaw"` 39 ProductVersionRaw VersionInfoRaw `json:"ProductVersionRaw"` 40 } 41 42 type VersionInfoRaw struct { 43 Major int `json:"Major"` 44 Minor int `json:"Minor"` 45 Build int `json:"Build"` 46 Revision int `json:"Revision"` 47 MajorRevision int `json:"MajorRevision"` 48 MinorRevision int `json:"MinorRevision"` 49 } 50 51 func ParseGetItem(r io.Reader) (*GetItem, error) { 52 data, err := ioutil.ReadAll(r) 53 if err != nil { 54 return nil, err 55 } 56 57 var item GetItem 58 err = json.Unmarshal(data, &item) 59 if err != nil { 60 return nil, err 61 } 62 63 return &item, nil 64 }