-
Notifications
You must be signed in to change notification settings - Fork 38
/
constants.go
91 lines (84 loc) · 3.18 KB
/
constants.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package bookmark
import "strings"
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See NOTICE.txt in the project root for license information.
type EntityKind string
const (
EntityKindAccount EntityKind = "Account"
EntityKindAzureResource EntityKind = "AzureResource"
EntityKindBookmark EntityKind = "Bookmark"
EntityKindCloudApplication EntityKind = "CloudApplication"
EntityKindDnsResolution EntityKind = "DnsResolution"
EntityKindFile EntityKind = "File"
EntityKindFileHash EntityKind = "FileHash"
EntityKindHost EntityKind = "Host"
EntityKindIP EntityKind = "Ip"
EntityKindIoTDevice EntityKind = "IoTDevice"
EntityKindMailCluster EntityKind = "MailCluster"
EntityKindMailMessage EntityKind = "MailMessage"
EntityKindMailbox EntityKind = "Mailbox"
EntityKindMalware EntityKind = "Malware"
EntityKindProcess EntityKind = "Process"
EntityKindRegistryKey EntityKind = "RegistryKey"
EntityKindRegistryValue EntityKind = "RegistryValue"
EntityKindSecurityAlert EntityKind = "SecurityAlert"
EntityKindSecurityGroup EntityKind = "SecurityGroup"
EntityKindSubmissionMail EntityKind = "SubmissionMail"
EntityKindUrl EntityKind = "Url"
)
func PossibleValuesForEntityKind() []string {
return []string{
string(EntityKindAccount),
string(EntityKindAzureResource),
string(EntityKindBookmark),
string(EntityKindCloudApplication),
string(EntityKindDnsResolution),
string(EntityKindFile),
string(EntityKindFileHash),
string(EntityKindHost),
string(EntityKindIP),
string(EntityKindIoTDevice),
string(EntityKindMailCluster),
string(EntityKindMailMessage),
string(EntityKindMailbox),
string(EntityKindMalware),
string(EntityKindProcess),
string(EntityKindRegistryKey),
string(EntityKindRegistryValue),
string(EntityKindSecurityAlert),
string(EntityKindSecurityGroup),
string(EntityKindSubmissionMail),
string(EntityKindUrl),
}
}
func parseEntityKind(input string) (*EntityKind, error) {
vals := map[string]EntityKind{
"account": EntityKindAccount,
"azureresource": EntityKindAzureResource,
"bookmark": EntityKindBookmark,
"cloudapplication": EntityKindCloudApplication,
"dnsresolution": EntityKindDnsResolution,
"file": EntityKindFile,
"filehash": EntityKindFileHash,
"host": EntityKindHost,
"ip": EntityKindIP,
"iotdevice": EntityKindIoTDevice,
"mailcluster": EntityKindMailCluster,
"mailmessage": EntityKindMailMessage,
"mailbox": EntityKindMailbox,
"malware": EntityKindMalware,
"process": EntityKindProcess,
"registrykey": EntityKindRegistryKey,
"registryvalue": EntityKindRegistryValue,
"securityalert": EntityKindSecurityAlert,
"securitygroup": EntityKindSecurityGroup,
"submissionmail": EntityKindSubmissionMail,
"url": EntityKindUrl,
}
if v, ok := vals[strings.ToLower(input)]; ok {
return &v, nil
}
// otherwise presume it's an undefined value and best-effort it
out := EntityKind(input)
return &out, nil
}