-
Notifications
You must be signed in to change notification settings - Fork 11
/
model.go
183 lines (166 loc) · 6.62 KB
/
model.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
//
// Copyright (c) 2020 SSH Communications Security Inc.
//
// All rights reserved.
//
package authorizer
// Params query params definition
type Params struct {
ResponseType string `json:"response_type,omitempty"`
ClientID string `json:"client_id,omitempty"`
State string `json:"state,omitempty"`
RedirectURI string `json:"redirect_uri,omitempty"`
UserAgent string `json:"user_agent,omitempty"`
OidcID string `json:"oidc_id,omitempty"`
AccessGroupID string `json:"access_group_id,omitempty"`
KeyID string `json:"key_id,omitempty"`
Filter string `json:"filter,omitempty"`
Service string `json:"service,omitempty"`
Sortkey string `json:"sortkey,omitempty"`
Sortdir string `json:"sortdir,omitempty"`
Offset int `json:"offset,omitempty"`
Limit int `json:"limit,omitempty"`
}
// SearchParams search params definition
type SearchParams struct {
Keywords string `json:"keywords,omitempty"`
}
// APICertificate api certificate definition
type APICertificate struct {
ID string `json:"id,omitempty"`
Type string `json:"type,omitempty"`
OwnerID string `json:"owner_id,omitempty"`
Revoked string `json:"revoked,omitempty"`
RevocationReason string `json:"revocation_reason,omitempty"`
Cert string `json:"cert,omitempty"`
Chain string `json:"chain,omitempty"`
}
// APICertificateSearch api certificate search definition
type APICertificateSearch struct {
ID string `json:"id,omitempty"`
Type string `json:"type,omitempty"`
KeyID string `json:"key_id,omitempty"`
OwnerID string `json:"owner_id,omitempty"`
Subject string `json:"subject,omitempty"`
Issuer string `json:"issuer,omitempty"`
NotBefore string `json:"not_before,omitempty"`
NotAfter string `json:"not_after,omitempty"`
IncludeRevoked bool `json:"include_revoked,omitempty"`
IncludeExpired bool `json:"include_expired,omitempty"`
}
// TrustAnchor trust anchor definition
type TrustAnchor struct {
TrustAnchor string `json:"trust_anchor"`
TrustAnchorSHA1 string `json:"trust_anchor_sha1,omitempty"`
TrustAnchorSHA256 string `json:"trust_anchor_sha256,omitempty"`
}
// CertTemplate certification template definition
type CertTemplate struct {
Name string `json:"name"`
Description string `json:"description"`
Service string `json:"service"`
Type string `json:"type"`
KeyID string `json:"key_id,omitempty"`
RsaSignatureTypes []string `json:"rsa_signature_types,omitempty"`
Principals []string `json:"principals,omitempty"`
Extensions []string `json:"extensions,omitempty"`
}
// DownloadHandle download handle definition
type DownloadHandle struct {
SessionID string `json:"session_id"`
}
// Signature signature definition
type Signature struct {
Signature string `json:"signature"`
}
// Credential end user authentication credentials definition
type Credential struct {
Type string `json:"type"`
Data string `json:"data"`
}
// PrincipalKeyImportRequest principal key import definition
type PrincipalKeyImportRequest struct {
Algorithm string `json:"algorithm"`
Data string `json:"data"`
}
// AuthorizationRequest end user authorization request definition
type AuthorizationRequest struct {
PublicKey string `json:"public_key,omitempty"`
HostID string `json:"host_id,omitempty"`
Hostname string `json:"hostname,omitempty"`
Username string `json:"username,omitempty"`
Service string `json:"service,omitempty"`
RoleID string `json:"role_id,omitempty"`
}
// Principal principal definition
type Principal struct {
ID string `json:"id"`
GroupID string `json:"group_id,omitempty"`
Type string `json:"type,omitempty"`
Comment string `json:"comment,omitempty"`
PublicKey string `json:"public_key,omitempty"`
PublicKeyString string `json:"public_key_string,omitempty"`
Size int `json:"size,omitempty"`
}
type ApiSshCertificate struct {
Type string `json:"type"`
Data string `json:"data"`
DataString string `json:"data_string"`
Chain []string `json:"chain"`
}
type ApiIdentitiesResponse struct {
Certificates []ApiSshCertificate `json:"certificates"`
PrincipalKeys []Principal `json:"principal_keys"`
Passphrase string `json:"passphrase,omitempty"`
ResponseCode int `json:"response_code"`
Message string `json:"message"`
}
// CA is root certificate representation
type CA struct {
ID string `json:"id"`
GroupID string `json:"group_id"`
Type string `json:"type"`
Size int `json:"size"`
PublicKey string `json:"public_key"`
X509 string `json:"x509_certificate"`
}
// AccessGroup access group definition
type AccessGroup struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Comment string `json:"comment,omitempty"`
CAID string `json:"ca_id,omitempty"`
Author string `json:"author,omitempty"`
Created string `json:"created,omitempty"`
Updated string `json:"updated,omitempty"`
UpdatedBy string `json:"updated_by,omitempty"`
Default bool `json:"default,omitempty"`
}
type ApiCertificateSearchResponse struct {
Count int `json:"count"`
Items []ApiCertificateObject `json:"items"`
}
type ApiCertificateObject struct {
Type string `json:"type"`
ID string `json:"id"`
Serial string `json:"serial"`
OwnerID string `json:"owner_id,omitempty"`
Revoked string `json:"revoked,omitempty"`
RevocationReason string `json:"revocation_reason,omitempty"`
Cert string `json:"cert"`
Chain string `json:"chain"`
Issuer string `json:"issuer,omitempty"`
Subject string `json:"subject,omitempty"`
NotBefore string `json:"not_before,omitempty"`
NotAfter string `json:"not_after,omitempty"`
KeyUsage string `json:"key_usage,omitempty"`
BasicConstraints string `json:"basic_constraints,omitempty"`
Extensions string `json:"extensions,omitempty"`
FingerPrintSHA1 string `json:"fingerprint_sha1,omitempty"`
FingerPrintSHA256 string `json:"fingerprint_sha256,omitempty"`
SubjectKeyID string `json:"subject_key_id,omitempty"`
AuthorityKeyID string `json:"authority_key_id,omitempty"`
ExpiryStatus ExpiryStatus `json:"expiry_status,omitempty"`
}
// ExpiryStatus specifies the certificate expiry status
type ExpiryStatus string