1// SPDX-License-Identifier: MIT
2
3// Code generated by protoc-gen-go. DO NOT EDIT.
4// versions:
5// protoc-gen-go v1.36.12
6// protoc (unknown)
7// source: ermite/token.proto
8
9package ermite
10
11import (
12 protoreflect "google.golang.org/protobuf/reflect/protoreflect"
13 protoimpl "google.golang.org/protobuf/runtime/protoimpl"
14 timestamppb "google.golang.org/protobuf/types/known/timestamppb"
15 reflect "reflect"
16 sync "sync"
17 unsafe "unsafe"
18)
19
20const (
21 // Verify that this generated code is sufficiently up-to-date.
22 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
23 // Verify that runtime/protoimpl is sufficiently up-to-date.
24 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
25)
26
27// Scope is a permission carried by a token. The API knows scopes only; any
28// grouping into presets is a client concern.
29type Scope int32
30
31const (
32 // Not set. Rejected in requests, never returned by the server.
33 Scope_SCOPE_UNSPECIFIED Scope = 0
34 // SCOPE_REPO_READ allows reading private repositories (public ones need no
35 // token). Wire name: repo:read.
36 Scope_SCOPE_REPO_READ Scope = 1
37 // SCOPE_REPO_WRITE allows pushing and creating repositories. Wire name:
38 // repo:write.
39 Scope_SCOPE_REPO_WRITE Scope = 2
40 // SCOPE_REPO_ADMIN allows deleting a repository and changing its visibility,
41 // description or default branch. Wire name: repo:admin.
42 Scope_SCOPE_REPO_ADMIN Scope = 3
43 // SCOPE_MR_WRITE allows creating, commenting on and closing merge requests.
44 // Wire name: mr:write.
45 Scope_SCOPE_MR_WRITE Scope = 4
46 // SCOPE_MR_MERGE allows merging merge requests. Wire name: mr:merge.
47 Scope_SCOPE_MR_MERGE Scope = 5
48 // SCOPE_CI_WRITE allows re-running or cancelling CI runs. Wire name:
49 // ci:write.
50 Scope_SCOPE_CI_WRITE Scope = 6
51 // SCOPE_SECRETS_WRITE allows managing secrets, variables and environments
52 // (SecretService, VariableService, EnvironmentService), reads included. A
53 // token limited to branches is refused them even with this scope. Wire name:
54 // secrets:write.
55 Scope_SCOPE_SECRETS_WRITE Scope = 7
56 // SCOPE_RUNNER_REGISTER allows registering a CI runner. Wire name:
57 // runner:register.
58 Scope_SCOPE_RUNNER_REGISTER Scope = 8
59 // SCOPE_TOKEN_ADMIN allows creating, listing and revoking tokens. Wire name:
60 // token:admin.
61 Scope_SCOPE_TOKEN_ADMIN Scope = 9
62 // SCOPE_MR_REVIEW allows setting a verdict (approve, changes requested) on
63 // merge request notes. Wire name: mr:review.
64 Scope_SCOPE_MR_REVIEW Scope = 10
65)
66
67// Enum value maps for Scope.
68var (
69 Scope_name = map[int32]string{
70 0: "SCOPE_UNSPECIFIED",
71 1: "SCOPE_REPO_READ",
72 2: "SCOPE_REPO_WRITE",
73 3: "SCOPE_REPO_ADMIN",
74 4: "SCOPE_MR_WRITE",
75 5: "SCOPE_MR_MERGE",
76 6: "SCOPE_CI_WRITE",
77 7: "SCOPE_SECRETS_WRITE",
78 8: "SCOPE_RUNNER_REGISTER",
79 9: "SCOPE_TOKEN_ADMIN",
80 10: "SCOPE_MR_REVIEW",
81 }
82 Scope_value = map[string]int32{
83 "SCOPE_UNSPECIFIED": 0,
84 "SCOPE_REPO_READ": 1,
85 "SCOPE_REPO_WRITE": 2,
86 "SCOPE_REPO_ADMIN": 3,
87 "SCOPE_MR_WRITE": 4,
88 "SCOPE_MR_MERGE": 5,
89 "SCOPE_CI_WRITE": 6,
90 "SCOPE_SECRETS_WRITE": 7,
91 "SCOPE_RUNNER_REGISTER": 8,
92 "SCOPE_TOKEN_ADMIN": 9,
93 "SCOPE_MR_REVIEW": 10,
94 }
95)
96
97func (x Scope) Enum() *Scope {
98 p := new(Scope)
99 *p = x
100 return p
101}
102
103func (x Scope) String() string {
104 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
105}
106
107func (Scope) Descriptor() protoreflect.EnumDescriptor {
108 return file_ermite_token_proto_enumTypes[0].Descriptor()
109}
110
111func (Scope) Type() protoreflect.EnumType {
112 return &file_ermite_token_proto_enumTypes[0]
113}
114
115func (x Scope) Number() protoreflect.EnumNumber {
116 return protoreflect.EnumNumber(x)
117}
118
119// Deprecated: Use Scope.Descriptor instead.
120func (Scope) EnumDescriptor() ([]byte, []int) {
121 return file_ermite_token_proto_rawDescGZIP(), []int{0}
122}
123
124// Token describes a stored token. It never contains the secret nor its hash.
125type Token struct {
126 state protoimpl.MessageState `protogen:"open.v1"`
127 // Id identifies the token in ListTokens and RevokeToken. It is not the
128 // secret and cannot be used to authenticate.
129 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
130 // Label is a human-readable name chosen at creation.
131 Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
132 // Scopes are the permissions of the token. Never empty.
133 Scopes []Scope `protobuf:"varint,3,rep,packed,name=scopes,proto3,enum=ermite.Scope" json:"scopes,omitempty"`
134 // Repos restricts the token to these repository names. Empty means every
135 // repository.
136 Repos []string `protobuf:"bytes,4,rep,name=repos,proto3" json:"repos,omitempty"`
137 // ExpiresAt is when the token stops working. Unset means it never expires.
138 ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
139 // CreatedAt is when the token was created.
140 CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
141 // LastUsedAt is when the token last authenticated a request. Unset if never
142 // used. It may lag behind the real time by a short delay.
143 LastUsedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=last_used_at,json=lastUsedAt,proto3" json:"last_used_at,omitempty"`
144 // BranchPrefixes limits the branches the token may write. Each prefix ends
145 // with "/" (for example "agent/claude/"). Empty means every branch. A limited
146 // token can push, force-push and delete only branches under its prefixes; it
147 // cannot push tags or other refs, create repositories, or merge into or
148 // delete a branch outside its prefixes.
149 BranchPrefixes []string `protobuf:"bytes,8,rep,name=branch_prefixes,json=branchPrefixes,proto3" json:"branch_prefixes,omitempty"`
150 unknownFields protoimpl.UnknownFields
151 sizeCache protoimpl.SizeCache
152}
153
154func (x *Token) Reset() {
155 *x = Token{}
156 mi := &file_ermite_token_proto_msgTypes[0]
157 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
158 ms.StoreMessageInfo(mi)
159}
160
161func (x *Token) String() string {
162 return protoimpl.X.MessageStringOf(x)
163}
164
165func (*Token) ProtoMessage() {}
166
167func (x *Token) ProtoReflect() protoreflect.Message {
168 mi := &file_ermite_token_proto_msgTypes[0]
169 if x != nil {
170 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
171 if ms.LoadMessageInfo() == nil {
172 ms.StoreMessageInfo(mi)
173 }
174 return ms
175 }
176 return mi.MessageOf(x)
177}
178
179// Deprecated: Use Token.ProtoReflect.Descriptor instead.
180func (*Token) Descriptor() ([]byte, []int) {
181 return file_ermite_token_proto_rawDescGZIP(), []int{0}
182}
183
184func (x *Token) GetId() string {
185 if x != nil {
186 return x.Id
187 }
188 return ""
189}
190
191func (x *Token) GetLabel() string {
192 if x != nil {
193 return x.Label
194 }
195 return ""
196}
197
198func (x *Token) GetScopes() []Scope {
199 if x != nil {
200 return x.Scopes
201 }
202 return nil
203}
204
205func (x *Token) GetRepos() []string {
206 if x != nil {
207 return x.Repos
208 }
209 return nil
210}
211
212func (x *Token) GetExpiresAt() *timestamppb.Timestamp {
213 if x != nil {
214 return x.ExpiresAt
215 }
216 return nil
217}
218
219func (x *Token) GetCreatedAt() *timestamppb.Timestamp {
220 if x != nil {
221 return x.CreatedAt
222 }
223 return nil
224}
225
226func (x *Token) GetLastUsedAt() *timestamppb.Timestamp {
227 if x != nil {
228 return x.LastUsedAt
229 }
230 return nil
231}
232
233func (x *Token) GetBranchPrefixes() []string {
234 if x != nil {
235 return x.BranchPrefixes
236 }
237 return nil
238}
239
240// CreateTokenRequest describes the token to create.
241type CreateTokenRequest struct {
242 state protoimpl.MessageState `protogen:"open.v1"`
243 // Label is a human-readable name, for example "laptop". Not required to be
244 // unique.
245 Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
246 // Scopes are the permissions to grant. At least one is required.
247 Scopes []Scope `protobuf:"varint,2,rep,packed,name=scopes,proto3,enum=ermite.Scope" json:"scopes,omitempty"`
248 // Repos restricts the token to these repository names. Empty means every
249 // repository.
250 Repos []string `protobuf:"bytes,3,rep,name=repos,proto3" json:"repos,omitempty"`
251 // ExpiresAt is when the token stops working. Unset means no expiry. It must
252 // be in the future.
253 ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
254 // BranchPrefixes limits the branches the token may write, for example
255 // "agent/claude/". Each prefix must end with "/" and be a valid branch name
256 // once the "/" is removed; at most 8 are allowed. Empty means every branch;
257 // a limited token cannot push tags or create repositories. A token that has
258 // prefixes can only create tokens whose prefixes each lie within its own.
259 // Fails with invalid_argument when a prefix is malformed.
260 BranchPrefixes []string `protobuf:"bytes,5,rep,name=branch_prefixes,json=branchPrefixes,proto3" json:"branch_prefixes,omitempty"`
261 unknownFields protoimpl.UnknownFields
262 sizeCache protoimpl.SizeCache
263}
264
265func (x *CreateTokenRequest) Reset() {
266 *x = CreateTokenRequest{}
267 mi := &file_ermite_token_proto_msgTypes[1]
268 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
269 ms.StoreMessageInfo(mi)
270}
271
272func (x *CreateTokenRequest) String() string {
273 return protoimpl.X.MessageStringOf(x)
274}
275
276func (*CreateTokenRequest) ProtoMessage() {}
277
278func (x *CreateTokenRequest) ProtoReflect() protoreflect.Message {
279 mi := &file_ermite_token_proto_msgTypes[1]
280 if x != nil {
281 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
282 if ms.LoadMessageInfo() == nil {
283 ms.StoreMessageInfo(mi)
284 }
285 return ms
286 }
287 return mi.MessageOf(x)
288}
289
290// Deprecated: Use CreateTokenRequest.ProtoReflect.Descriptor instead.
291func (*CreateTokenRequest) Descriptor() ([]byte, []int) {
292 return file_ermite_token_proto_rawDescGZIP(), []int{1}
293}
294
295func (x *CreateTokenRequest) GetLabel() string {
296 if x != nil {
297 return x.Label
298 }
299 return ""
300}
301
302func (x *CreateTokenRequest) GetScopes() []Scope {
303 if x != nil {
304 return x.Scopes
305 }
306 return nil
307}
308
309func (x *CreateTokenRequest) GetRepos() []string {
310 if x != nil {
311 return x.Repos
312 }
313 return nil
314}
315
316func (x *CreateTokenRequest) GetExpiresAt() *timestamppb.Timestamp {
317 if x != nil {
318 return x.ExpiresAt
319 }
320 return nil
321}
322
323func (x *CreateTokenRequest) GetBranchPrefixes() []string {
324 if x != nil {
325 return x.BranchPrefixes
326 }
327 return nil
328}
329
330// CreateTokenResponse holds the new token and its secret.
331type CreateTokenResponse struct {
332 state protoimpl.MessageState `protogen:"open.v1"`
333 // Token describes the created token.
334 Token *Token `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
335 // Secret is the bearer secret to present as "Authorization: Bearer <secret>".
336 // It is returned once and never stored in clear text by the server.
337 Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
338 unknownFields protoimpl.UnknownFields
339 sizeCache protoimpl.SizeCache
340}
341
342func (x *CreateTokenResponse) Reset() {
343 *x = CreateTokenResponse{}
344 mi := &file_ermite_token_proto_msgTypes[2]
345 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
346 ms.StoreMessageInfo(mi)
347}
348
349func (x *CreateTokenResponse) String() string {
350 return protoimpl.X.MessageStringOf(x)
351}
352
353func (*CreateTokenResponse) ProtoMessage() {}
354
355func (x *CreateTokenResponse) ProtoReflect() protoreflect.Message {
356 mi := &file_ermite_token_proto_msgTypes[2]
357 if x != nil {
358 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
359 if ms.LoadMessageInfo() == nil {
360 ms.StoreMessageInfo(mi)
361 }
362 return ms
363 }
364 return mi.MessageOf(x)
365}
366
367// Deprecated: Use CreateTokenResponse.ProtoReflect.Descriptor instead.
368func (*CreateTokenResponse) Descriptor() ([]byte, []int) {
369 return file_ermite_token_proto_rawDescGZIP(), []int{2}
370}
371
372func (x *CreateTokenResponse) GetToken() *Token {
373 if x != nil {
374 return x.Token
375 }
376 return nil
377}
378
379func (x *CreateTokenResponse) GetSecret() string {
380 if x != nil {
381 return x.Secret
382 }
383 return ""
384}
385
386// ListTokensRequest selects a page of tokens.
387type ListTokensRequest struct {
388 state protoimpl.MessageState `protogen:"open.v1"`
389 // PageSize is the maximum number of tokens to return. 0 means the server
390 // default; values above the server maximum are lowered to it.
391 PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
392 // PageToken is the next_page_token of a previous response. Empty for the
393 // first page.
394 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
395 unknownFields protoimpl.UnknownFields
396 sizeCache protoimpl.SizeCache
397}
398
399func (x *ListTokensRequest) Reset() {
400 *x = ListTokensRequest{}
401 mi := &file_ermite_token_proto_msgTypes[3]
402 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
403 ms.StoreMessageInfo(mi)
404}
405
406func (x *ListTokensRequest) String() string {
407 return protoimpl.X.MessageStringOf(x)
408}
409
410func (*ListTokensRequest) ProtoMessage() {}
411
412func (x *ListTokensRequest) ProtoReflect() protoreflect.Message {
413 mi := &file_ermite_token_proto_msgTypes[3]
414 if x != nil {
415 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
416 if ms.LoadMessageInfo() == nil {
417 ms.StoreMessageInfo(mi)
418 }
419 return ms
420 }
421 return mi.MessageOf(x)
422}
423
424// Deprecated: Use ListTokensRequest.ProtoReflect.Descriptor instead.
425func (*ListTokensRequest) Descriptor() ([]byte, []int) {
426 return file_ermite_token_proto_rawDescGZIP(), []int{3}
427}
428
429func (x *ListTokensRequest) GetPageSize() int32 {
430 if x != nil {
431 return x.PageSize
432 }
433 return 0
434}
435
436func (x *ListTokensRequest) GetPageToken() string {
437 if x != nil {
438 return x.PageToken
439 }
440 return ""
441}
442
443// ListTokensResponse is one page of tokens.
444type ListTokensResponse struct {
445 state protoimpl.MessageState `protogen:"open.v1"`
446 // Tokens are the tokens of this page, newest first.
447 Tokens []*Token `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"`
448 // NextPageToken is passed as page_token to get the next page. Empty when
449 // there is no next page.
450 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
451 unknownFields protoimpl.UnknownFields
452 sizeCache protoimpl.SizeCache
453}
454
455func (x *ListTokensResponse) Reset() {
456 *x = ListTokensResponse{}
457 mi := &file_ermite_token_proto_msgTypes[4]
458 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
459 ms.StoreMessageInfo(mi)
460}
461
462func (x *ListTokensResponse) String() string {
463 return protoimpl.X.MessageStringOf(x)
464}
465
466func (*ListTokensResponse) ProtoMessage() {}
467
468func (x *ListTokensResponse) ProtoReflect() protoreflect.Message {
469 mi := &file_ermite_token_proto_msgTypes[4]
470 if x != nil {
471 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
472 if ms.LoadMessageInfo() == nil {
473 ms.StoreMessageInfo(mi)
474 }
475 return ms
476 }
477 return mi.MessageOf(x)
478}
479
480// Deprecated: Use ListTokensResponse.ProtoReflect.Descriptor instead.
481func (*ListTokensResponse) Descriptor() ([]byte, []int) {
482 return file_ermite_token_proto_rawDescGZIP(), []int{4}
483}
484
485func (x *ListTokensResponse) GetTokens() []*Token {
486 if x != nil {
487 return x.Tokens
488 }
489 return nil
490}
491
492func (x *ListTokensResponse) GetNextPageToken() string {
493 if x != nil {
494 return x.NextPageToken
495 }
496 return ""
497}
498
499// RevokeTokenRequest names the token to revoke.
500type RevokeTokenRequest struct {
501 state protoimpl.MessageState `protogen:"open.v1"`
502 // Id is the Token.id to revoke.
503 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
504 unknownFields protoimpl.UnknownFields
505 sizeCache protoimpl.SizeCache
506}
507
508func (x *RevokeTokenRequest) Reset() {
509 *x = RevokeTokenRequest{}
510 mi := &file_ermite_token_proto_msgTypes[5]
511 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
512 ms.StoreMessageInfo(mi)
513}
514
515func (x *RevokeTokenRequest) String() string {
516 return protoimpl.X.MessageStringOf(x)
517}
518
519func (*RevokeTokenRequest) ProtoMessage() {}
520
521func (x *RevokeTokenRequest) ProtoReflect() protoreflect.Message {
522 mi := &file_ermite_token_proto_msgTypes[5]
523 if x != nil {
524 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
525 if ms.LoadMessageInfo() == nil {
526 ms.StoreMessageInfo(mi)
527 }
528 return ms
529 }
530 return mi.MessageOf(x)
531}
532
533// Deprecated: Use RevokeTokenRequest.ProtoReflect.Descriptor instead.
534func (*RevokeTokenRequest) Descriptor() ([]byte, []int) {
535 return file_ermite_token_proto_rawDescGZIP(), []int{5}
536}
537
538func (x *RevokeTokenRequest) GetId() string {
539 if x != nil {
540 return x.Id
541 }
542 return ""
543}
544
545// RevokeTokenResponse is empty.
546type RevokeTokenResponse struct {
547 state protoimpl.MessageState `protogen:"open.v1"`
548 unknownFields protoimpl.UnknownFields
549 sizeCache protoimpl.SizeCache
550}
551
552func (x *RevokeTokenResponse) Reset() {
553 *x = RevokeTokenResponse{}
554 mi := &file_ermite_token_proto_msgTypes[6]
555 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
556 ms.StoreMessageInfo(mi)
557}
558
559func (x *RevokeTokenResponse) String() string {
560 return protoimpl.X.MessageStringOf(x)
561}
562
563func (*RevokeTokenResponse) ProtoMessage() {}
564
565func (x *RevokeTokenResponse) ProtoReflect() protoreflect.Message {
566 mi := &file_ermite_token_proto_msgTypes[6]
567 if x != nil {
568 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
569 if ms.LoadMessageInfo() == nil {
570 ms.StoreMessageInfo(mi)
571 }
572 return ms
573 }
574 return mi.MessageOf(x)
575}
576
577// Deprecated: Use RevokeTokenResponse.ProtoReflect.Descriptor instead.
578func (*RevokeTokenResponse) Descriptor() ([]byte, []int) {
579 return file_ermite_token_proto_rawDescGZIP(), []int{6}
580}
581
582var File_ermite_token_proto protoreflect.FileDescriptor
583
584const file_ermite_token_proto_rawDesc = "" +
585 "\n" +
586 "\x12ermite/token.proto\x12\x06ermite\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc7\x02\n" +
587 "\x05Token\x12\x0e\n" +
588 "\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" +
589 "\x05label\x18\x02 \x01(\tR\x05label\x12%\n" +
590 "\x06scopes\x18\x03 \x03(\x0e2\r.ermite.ScopeR\x06scopes\x12\x14\n" +
591 "\x05repos\x18\x04 \x03(\tR\x05repos\x129\n" +
592 "\n" +
593 "expires_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt\x129\n" +
594 "\n" +
595 "created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12<\n" +
596 "\flast_used_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" +
597 "lastUsedAt\x12'\n" +
598 "\x0fbranch_prefixes\x18\b \x03(\tR\x0ebranchPrefixes\"\xcb\x01\n" +
599 "\x12CreateTokenRequest\x12\x14\n" +
600 "\x05label\x18\x01 \x01(\tR\x05label\x12%\n" +
601 "\x06scopes\x18\x02 \x03(\x0e2\r.ermite.ScopeR\x06scopes\x12\x14\n" +
602 "\x05repos\x18\x03 \x03(\tR\x05repos\x129\n" +
603 "\n" +
604 "expires_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt\x12'\n" +
605 "\x0fbranch_prefixes\x18\x05 \x03(\tR\x0ebranchPrefixes\"R\n" +
606 "\x13CreateTokenResponse\x12#\n" +
607 "\x05token\x18\x01 \x01(\v2\r.ermite.TokenR\x05token\x12\x16\n" +
608 "\x06secret\x18\x02 \x01(\tR\x06secret\"O\n" +
609 "\x11ListTokensRequest\x12\x1b\n" +
610 "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" +
611 "\n" +
612 "page_token\x18\x02 \x01(\tR\tpageToken\"c\n" +
613 "\x12ListTokensResponse\x12%\n" +
614 "\x06tokens\x18\x01 \x03(\v2\r.ermite.TokenR\x06tokens\x12&\n" +
615 "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"$\n" +
616 "\x12RevokeTokenRequest\x12\x0e\n" +
617 "\x02id\x18\x01 \x01(\tR\x02id\"\x15\n" +
618 "\x13RevokeTokenResponse*\xfb\x01\n" +
619 "\x05Scope\x12\x15\n" +
620 "\x11SCOPE_UNSPECIFIED\x10\x00\x12\x13\n" +
621 "\x0fSCOPE_REPO_READ\x10\x01\x12\x14\n" +
622 "\x10SCOPE_REPO_WRITE\x10\x02\x12\x14\n" +
623 "\x10SCOPE_REPO_ADMIN\x10\x03\x12\x12\n" +
624 "\x0eSCOPE_MR_WRITE\x10\x04\x12\x12\n" +
625 "\x0eSCOPE_MR_MERGE\x10\x05\x12\x12\n" +
626 "\x0eSCOPE_CI_WRITE\x10\x06\x12\x17\n" +
627 "\x13SCOPE_SECRETS_WRITE\x10\a\x12\x19\n" +
628 "\x15SCOPE_RUNNER_REGISTER\x10\b\x12\x15\n" +
629 "\x11SCOPE_TOKEN_ADMIN\x10\t\x12\x13\n" +
630 "\x0fSCOPE_MR_REVIEW\x10\n" +
631 "2\xe3\x01\n" +
632 "\fTokenService\x12F\n" +
633 "\vCreateToken\x12\x1a.ermite.CreateTokenRequest\x1a\x1b.ermite.CreateTokenResponse\x12C\n" +
634 "\n" +
635 "ListTokens\x12\x19.ermite.ListTokensRequest\x1a\x1a.ermite.ListTokensResponse\x12F\n" +
636 "\vRevokeToken\x12\x1a.ermite.RevokeTokenRequest\x1a\x1b.ermite.RevokeTokenResponseBq\n" +
637 "\n" +
638 "com.ermiteB\n" +
639 "TokenProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
640
641var (
642 file_ermite_token_proto_rawDescOnce sync.Once
643 file_ermite_token_proto_rawDescData []byte
644)
645
646func file_ermite_token_proto_rawDescGZIP() []byte {
647 file_ermite_token_proto_rawDescOnce.Do(func() {
648 file_ermite_token_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_token_proto_rawDesc), len(file_ermite_token_proto_rawDesc)))
649 })
650 return file_ermite_token_proto_rawDescData
651}
652
653var file_ermite_token_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
654var file_ermite_token_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
655var file_ermite_token_proto_goTypes = []any{
656 (Scope)(0), // 0: ermite.Scope
657 (*Token)(nil), // 1: ermite.Token
658 (*CreateTokenRequest)(nil), // 2: ermite.CreateTokenRequest
659 (*CreateTokenResponse)(nil), // 3: ermite.CreateTokenResponse
660 (*ListTokensRequest)(nil), // 4: ermite.ListTokensRequest
661 (*ListTokensResponse)(nil), // 5: ermite.ListTokensResponse
662 (*RevokeTokenRequest)(nil), // 6: ermite.RevokeTokenRequest
663 (*RevokeTokenResponse)(nil), // 7: ermite.RevokeTokenResponse
664 (*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp
665}
666var file_ermite_token_proto_depIdxs = []int32{
667 0, // 0: ermite.Token.scopes:type_name -> ermite.Scope
668 8, // 1: ermite.Token.expires_at:type_name -> google.protobuf.Timestamp
669 8, // 2: ermite.Token.created_at:type_name -> google.protobuf.Timestamp
670 8, // 3: ermite.Token.last_used_at:type_name -> google.protobuf.Timestamp
671 0, // 4: ermite.CreateTokenRequest.scopes:type_name -> ermite.Scope
672 8, // 5: ermite.CreateTokenRequest.expires_at:type_name -> google.protobuf.Timestamp
673 1, // 6: ermite.CreateTokenResponse.token:type_name -> ermite.Token
674 1, // 7: ermite.ListTokensResponse.tokens:type_name -> ermite.Token
675 2, // 8: ermite.TokenService.CreateToken:input_type -> ermite.CreateTokenRequest
676 4, // 9: ermite.TokenService.ListTokens:input_type -> ermite.ListTokensRequest
677 6, // 10: ermite.TokenService.RevokeToken:input_type -> ermite.RevokeTokenRequest
678 3, // 11: ermite.TokenService.CreateToken:output_type -> ermite.CreateTokenResponse
679 5, // 12: ermite.TokenService.ListTokens:output_type -> ermite.ListTokensResponse
680 7, // 13: ermite.TokenService.RevokeToken:output_type -> ermite.RevokeTokenResponse
681 11, // [11:14] is the sub-list for method output_type
682 8, // [8:11] is the sub-list for method input_type
683 8, // [8:8] is the sub-list for extension type_name
684 8, // [8:8] is the sub-list for extension extendee
685 0, // [0:8] is the sub-list for field type_name
686}
687
688func init() { file_ermite_token_proto_init() }
689func file_ermite_token_proto_init() {
690 if File_ermite_token_proto != nil {
691 return
692 }
693 type x struct{}
694 out := protoimpl.TypeBuilder{
695 File: protoimpl.DescBuilder{
696 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
697 RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_token_proto_rawDesc), len(file_ermite_token_proto_rawDesc)),
698 NumEnums: 1,
699 NumMessages: 7,
700 NumExtensions: 0,
701 NumServices: 1,
702 },
703 GoTypes: file_ermite_token_proto_goTypes,
704 DependencyIndexes: file_ermite_token_proto_depIdxs,
705 EnumInfos: file_ermite_token_proto_enumTypes,
706 MessageInfos: file_ermite_token_proto_msgTypes,
707 }.Build()
708 File_ermite_token_proto = out.File
709 file_ermite_token_proto_goTypes = nil
710 file_ermite_token_proto_depIdxs = nil
711}