go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/_motor/providers/capabilities.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package providers
     5  
     6  import "strconv"
     7  
     8  type Capability int
     9  
    10  const (
    11  	Capability_RunCommand Capability = iota
    12  	Capability_File
    13  	Capability_FileSearch
    14  	Capability_AWS
    15  	Capability_vSphere
    16  	Capability_Azure
    17  	Capability_Google
    18  	Capability_Arista
    19  	Capability_Microsoft365
    20  	Capability_Ipmi
    21  	Capability_Equinix
    22  	Capability_Github
    23  	Capability_Aws_Ebs
    24  	Capability_Gitlab
    25  )
    26  
    27  var CapabilityNames = map[Capability]string{
    28  	Capability_RunCommand:   "run-command",
    29  	Capability_File:         "file",
    30  	Capability_FileSearch:   "file-search",
    31  	Capability_AWS:          "api-aws",
    32  	Capability_vSphere:      "api-vsphere",
    33  	Capability_Azure:        "api-azure",
    34  	Capability_Google:       "api-google",
    35  	Capability_Arista:       "api-arista",
    36  	Capability_Microsoft365: "api-ms365",
    37  	Capability_Ipmi:         "api-ipmi",
    38  	Capability_Equinix:      "api-equinix",
    39  	Capability_Github:       "api-github",
    40  	Capability_Aws_Ebs:      "aws-ebs",
    41  	Capability_Gitlab:       "api-gitlab",
    42  }
    43  
    44  func (c Capability) String() string {
    45  	v, ok := CapabilityNames[c]
    46  	if ok {
    47  		return v
    48  	}
    49  	return strconv.Itoa(int(c))
    50  }
    51  
    52  type Capabilities []Capability
    53  
    54  func (c Capabilities) HasCapability(x Capability) bool {
    55  	for i := range c {
    56  		if c[i] == x {
    57  			return true
    58  		}
    59  	}
    60  	return false
    61  }