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  }