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