-
Notifications
You must be signed in to change notification settings - Fork 9
/
persons.go
211 lines (181 loc) · 8.13 KB
/
persons.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
// To parse and unparse this JSON data, add this code to your project and do:
//
// person, err := UnmarshalPerson(bytes)
// bytes, err = person.Marshal()
package persons_api
import "encoding/json"
func UnmarshalPerson(data []byte) (Person, error) {
var r Person
err := json.Unmarshal(data, &r)
return r, err
}
func (r *Person) Marshal() ([]byte, error) {
return json.Marshal(r)
}
type Person struct {
AccessInformation AccessInformationValuesArray `json:"access_information"`
Active StandardAttributeBoolean `json:"active"`
AlternativeName StandardAttributeString `json:"alternative_name"`
Created StandardAttributeString `json:"created"`
Description StandardAttributeString `json:"description"`
FirstName StandardAttributeString `json:"first_name"`
FunTitle StandardAttributeString `json:"fun_title"`
Identities IdentitiesAttributesValuesArray `json:"identities"`
Languages StandardAttributeValues `json:"languages"`
LastModified StandardAttributeString `json:"last_modified"`
LastName StandardAttributeString `json:"last_name"`
Location StandardAttributeString `json:"location"`
LoginMethod StandardAttributeString `json:"login_method"`
PGPPublicKeys StandardAttributeValues `json:"pgp_public_keys"`
PhoneNumbers StandardAttributeValues `json:"phone_numbers"`
Picture StandardAttributeString `json:"picture"`
PrimaryEmail StandardAttributeString `json:"primary_email"`
PrimaryUsername StandardAttributeString `json:"primary_username"`
Pronouns StandardAttributeString `json:"pronouns"`
Schema string `json:"schema"`
SSHPublicKeys StandardAttributeValues `json:"ssh_public_keys"`
StaffInformation StaffInformationValuesArray `json:"staff_information"`
Tags StandardAttributeValues `json:"tags"`
Timezone StandardAttributeString `json:"timezone"`
Uris StandardAttributeValues `json:"uris"`
UserID StandardAttributeString `json:"user_id"`
Usernames StandardAttributeValues `json:"usernames"`
UUID StandardAttributeString `json:"uuid"`
}
type AccessInformationValuesArray struct {
AccessProvider AccessProviderAttribute `json:"access_provider"`
Hris HrisAttribute `json:"hris"`
LDAP LDAPAttribute `json:"ldap"`
Mozilliansorg MozilliansorgAttribute `json:"mozilliansorg"`
}
type AccessProviderAttribute struct {
Metadata AccessProviderMetadata `json:"metadata"`
Signature Signature `json:"signature"`
Values map[string]interface{} `json:"values"`
}
type AccessProviderMetadata struct {
Display interface{} `json:"display"`
Classification Classification `json:"classification"`
Created string `json:"created"`
LastModified string `json:"last_modified"`
Verified bool `json:"verified"`
}
type Signature struct {
Additional []PublisherLax `json:"additional"`
Publisher Publisher `json:"publisher"`
}
type PublisherLax struct {
Alg Alg `json:"alg"`
Name *string `json:"name"`
Typ Typ `json:"typ"`
Value string `json:"value"`
}
type Publisher struct {
Alg Alg `json:"alg"`
Name PublisherAuthority `json:"name"`
Typ Typ `json:"typ"`
Value string `json:"value"`
}
type HrisAttribute struct {
Metadata Metadata `json:"metadata"`
Signature Signature `json:"signature"`
Values map[string]interface{} `json:"values"`
}
type LDAPAttribute struct {
Metadata Metadata `json:"metadata"`
Signature Signature `json:"signature"`
Values map[string]interface{} `json:"values"`
}
type MozilliansorgAttribute struct {
Metadata Metadata `json:"metadata"`
Signature Signature `json:"signature"`
Values map[string]interface{} `json:"values"`
}
type StandardAttributeString struct {
Metadata Metadata `json:"metadata"`
Signature Signature `json:"signature"`
Value string `json:"value"`
}
type StandardAttributeBoolean struct {
Metadata Metadata `json:"metadata"`
Signature Signature `json:"signature"`
Value bool `json:"value"`
}
type Metadata struct {
Classification Classification `json:"classification"`
Created string `json:"created"`
Display DinoParkDisplay `json:"display"`
LastModified string `json:"last_modified"`
Verified bool `json:"verified"`
}
type IdentitiesAttributesValuesArray struct {
BugzillaMozillaOrgID *StandardAttributeString `json:"bugzilla_mozilla_org_id,omitempty"`
BugzillaMozillaOrgPrimaryEmail *StandardAttributeString `json:"bugzilla_mozilla_org_primary_email,omitempty"`
Custom1_PrimaryEmail *StandardAttributeString `json:"custom_1_primary_email,omitempty"`
Custom2_PrimaryEmail *StandardAttributeString `json:"custom_2_primary_email,omitempty"`
Custom3_PrimaryEmail *StandardAttributeString `json:"custom_3_primary_email,omitempty"`
FirefoxAccountsID *StandardAttributeString `json:"firefox_accounts_id,omitempty"`
FirefoxAccountsPrimaryEmail *StandardAttributeString `json:"firefox_accounts_primary_email,omitempty"`
GithubIDV3 *StandardAttributeString `json:"github_id_v3,omitempty"`
GithubIDV4 *StandardAttributeString `json:"github_id_v4,omitempty"`
GithubPrimaryEmail *StandardAttributeString `json:"github_primary_email,omitempty"`
GoogleOauth2ID *StandardAttributeString `json:"google_oauth2_id,omitempty"`
GooglePrimaryEmail *StandardAttributeString `json:"google_primary_email,omitempty"`
MozillaLDAPID *StandardAttributeString `json:"mozilla_ldap_id,omitempty"`
MozillaLDAPPrimaryEmail *StandardAttributeString `json:"mozilla_ldap_primary_email,omitempty"`
MozillaPOSIXID *StandardAttributeString `json:"mozilla_posix_id,omitempty"`
MozilliansorgID *StandardAttributeString `json:"mozilliansorg_id,omitempty"`
}
type StandardAttributeValues struct {
Metadata Metadata `json:"metadata"`
Signature Signature `json:"signature"`
Values interface{} `json:"values"`
}
type StaffInformationValuesArray struct {
CostCenter StandardAttributeString `json:"cost_center"`
Director StandardAttributeBoolean `json:"director"`
Manager StandardAttributeBoolean `json:"manager"`
OfficeLocation StandardAttributeString `json:"office_location"`
Staff StandardAttributeBoolean `json:"staff"`
Team StandardAttributeString `json:"team"`
Title StandardAttributeString `json:"title"`
WorkerType StandardAttributeString `json:"worker_type"`
WprDeskNumber StandardAttributeString `json:"wpr_desk_number"`
}
type Classification string
const (
WORKGROUPCONFIDENTIALSTAFFONLY Classification = "WORKGROUP CONFIDENTIAL: STAFF ONLY"
WORKGROUPCONFIDENTIAL Classification = "WORKGROUP CONFIDENTIAL"
IndividualConfidential Classification = "INDIVIDUAL CONFIDENTIAL"
MozillaConfidential Classification = "MOZILLA CONFIDENTIAL"
PUBLIC Classification = "PUBLIC"
)
type Alg string
const (
Ed25519 Alg = "ED25519"
Hs256 Alg = "HS256"
RSA Alg = "RSA"
Rs256 Alg = "RS256"
)
type Typ string
const (
Jws Typ = "JWS"
PGP Typ = "PGP"
)
type PublisherAuthority string
const (
AccessProvider PublisherAuthority = "access_provider"
Cis PublisherAuthority = "cis"
Hris PublisherAuthority = "hris"
LDAP PublisherAuthority = "ldap"
Mozilliansorg PublisherAuthority = "mozilliansorg"
)
type DinoParkDisplay string
const (
Authenticated DinoParkDisplay = "authenticated"
Ndaed DinoParkDisplay = "ndaed"
Private DinoParkDisplay = "private"
Staff DinoParkDisplay = "staff"
Vouched DinoParkDisplay = "vouched"
Public DinoParkDisplay = "public"
)