go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/auth/loginsessionspb/service.pb.go (about) 1 // Copyright 2022 The LUCI Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.31.0 18 // protoc v3.21.7 19 // source: go.chromium.org/luci/auth/loginsessionspb/service.proto 20 21 package loginsessionspb 22 23 import ( 24 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 25 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 26 durationpb "google.golang.org/protobuf/types/known/durationpb" 27 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 28 reflect "reflect" 29 sync "sync" 30 ) 31 32 const ( 33 // Verify that this generated code is sufficiently up-to-date. 34 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 35 // Verify that runtime/protoimpl is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 37 ) 38 39 // A session starts in PENDING state and then moves to one of other states 40 // (all of them are final) in response to user actions or passage of time. 41 type LoginSession_State int32 42 43 const ( 44 LoginSession_STATE_UNSPECIFIED LoginSession_State = 0 45 LoginSession_PENDING LoginSession_State = 1 46 LoginSession_CANCELED LoginSession_State = 2 47 LoginSession_SUCCEEDED LoginSession_State = 3 48 LoginSession_FAILED LoginSession_State = 4 49 LoginSession_EXPIRED LoginSession_State = 5 50 ) 51 52 // Enum value maps for LoginSession_State. 53 var ( 54 LoginSession_State_name = map[int32]string{ 55 0: "STATE_UNSPECIFIED", 56 1: "PENDING", 57 2: "CANCELED", 58 3: "SUCCEEDED", 59 4: "FAILED", 60 5: "EXPIRED", 61 } 62 LoginSession_State_value = map[string]int32{ 63 "STATE_UNSPECIFIED": 0, 64 "PENDING": 1, 65 "CANCELED": 2, 66 "SUCCEEDED": 3, 67 "FAILED": 4, 68 "EXPIRED": 5, 69 } 70 ) 71 72 func (x LoginSession_State) Enum() *LoginSession_State { 73 p := new(LoginSession_State) 74 *p = x 75 return p 76 } 77 78 func (x LoginSession_State) String() string { 79 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 80 } 81 82 func (LoginSession_State) Descriptor() protoreflect.EnumDescriptor { 83 return file_go_chromium_org_luci_auth_loginsessionspb_service_proto_enumTypes[0].Descriptor() 84 } 85 86 func (LoginSession_State) Type() protoreflect.EnumType { 87 return &file_go_chromium_org_luci_auth_loginsessionspb_service_proto_enumTypes[0] 88 } 89 90 func (x LoginSession_State) Number() protoreflect.EnumNumber { 91 return protoreflect.EnumNumber(x) 92 } 93 94 // Deprecated: Use LoginSession_State.Descriptor instead. 95 func (LoginSession_State) EnumDescriptor() ([]byte, []int) { 96 return file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescGZIP(), []int{2, 0} 97 } 98 99 // Inputs for CreateLoginSession 100 type CreateLoginSessionRequest struct { 101 state protoimpl.MessageState 102 sizeCache protoimpl.SizeCache 103 unknownFields protoimpl.UnknownFields 104 105 // An OAuth2 client ID that should be known to the login sessions server. 106 // 107 // The eventual outcome of the login protocol is a set of tokens associated 108 // with this OAuth2 client (e.g. the ID token will have this client as 109 // `aud` claim). 110 // 111 // This client ID also identifies the application information that the user 112 // will see at the OAuth2 consent screen. 113 // 114 // Required. 115 OauthClientId string `protobuf:"bytes,1,opt,name=oauth_client_id,json=oauthClientId,proto3" json:"oauth_client_id,omitempty"` 116 // A list of OAuth2 scopes to get the refresh and access tokens with. 117 // 118 // The server may deny usage of some sensitive scopes. This set of scopes 119 // defined what the user will see at the OAuth2 consent screen. 120 // 121 // Required. 122 OauthScopes []string `protobuf:"bytes,2,rep,name=oauth_scopes,json=oauthScopes,proto3" json:"oauth_scopes,omitempty"` 123 // A `code_challenge` parameter for PKCE protocol using S256 method. 124 // 125 // See https://tools.ietf.org/html/rfc7636. It should be a base64 URL-encoded 126 // SHA256 digest of a `code_verifier` random string (that the caller should 127 // not disclose anywhere). 128 // 129 // Required. 130 OauthS256CodeChallenge string `protobuf:"bytes,3,opt,name=oauth_s256_code_challenge,json=oauthS256CodeChallenge,proto3" json:"oauth_s256_code_challenge,omitempty"` 131 // A name of the native program that started the flow. 132 // 133 // Will be shown on the confirmation web page in the login session UI to 134 // provide some best-effort context around what opened the login session. 135 // It is **not a security mechanism**, just an FYI for the user. 136 // 137 // Optional. 138 ExecutableName string `protobuf:"bytes,4,opt,name=executable_name,json=executableName,proto3" json:"executable_name,omitempty"` 139 // A hostname of the machine that started the flow. 140 // 141 // Used for the same purpose as `executable_name` to give some context around 142 // what opened the login session. It is **not a security mechanism**, just 143 // an FYI for the user. 144 // 145 // Optional. 146 ClientHostname string `protobuf:"bytes,5,opt,name=client_hostname,json=clientHostname,proto3" json:"client_hostname,omitempty"` 147 } 148 149 func (x *CreateLoginSessionRequest) Reset() { 150 *x = CreateLoginSessionRequest{} 151 if protoimpl.UnsafeEnabled { 152 mi := &file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[0] 153 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 154 ms.StoreMessageInfo(mi) 155 } 156 } 157 158 func (x *CreateLoginSessionRequest) String() string { 159 return protoimpl.X.MessageStringOf(x) 160 } 161 162 func (*CreateLoginSessionRequest) ProtoMessage() {} 163 164 func (x *CreateLoginSessionRequest) ProtoReflect() protoreflect.Message { 165 mi := &file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[0] 166 if protoimpl.UnsafeEnabled && x != nil { 167 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 168 if ms.LoadMessageInfo() == nil { 169 ms.StoreMessageInfo(mi) 170 } 171 return ms 172 } 173 return mi.MessageOf(x) 174 } 175 176 // Deprecated: Use CreateLoginSessionRequest.ProtoReflect.Descriptor instead. 177 func (*CreateLoginSessionRequest) Descriptor() ([]byte, []int) { 178 return file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescGZIP(), []int{0} 179 } 180 181 func (x *CreateLoginSessionRequest) GetOauthClientId() string { 182 if x != nil { 183 return x.OauthClientId 184 } 185 return "" 186 } 187 188 func (x *CreateLoginSessionRequest) GetOauthScopes() []string { 189 if x != nil { 190 return x.OauthScopes 191 } 192 return nil 193 } 194 195 func (x *CreateLoginSessionRequest) GetOauthS256CodeChallenge() string { 196 if x != nil { 197 return x.OauthS256CodeChallenge 198 } 199 return "" 200 } 201 202 func (x *CreateLoginSessionRequest) GetExecutableName() string { 203 if x != nil { 204 return x.ExecutableName 205 } 206 return "" 207 } 208 209 func (x *CreateLoginSessionRequest) GetClientHostname() string { 210 if x != nil { 211 return x.ClientHostname 212 } 213 return "" 214 } 215 216 // Inputs for GetLoginSession. 217 type GetLoginSessionRequest struct { 218 state protoimpl.MessageState 219 sizeCache protoimpl.SizeCache 220 unknownFields protoimpl.UnknownFields 221 222 // ID of the login session to get the state of. Required. 223 LoginSessionId string `protobuf:"bytes,1,opt,name=login_session_id,json=loginSessionId,proto3" json:"login_session_id,omitempty"` 224 // The password returned by CreateLoginSession. Required. 225 LoginSessionPassword []byte `protobuf:"bytes,2,opt,name=login_session_password,json=loginSessionPassword,proto3" json:"login_session_password,omitempty"` 226 } 227 228 func (x *GetLoginSessionRequest) Reset() { 229 *x = GetLoginSessionRequest{} 230 if protoimpl.UnsafeEnabled { 231 mi := &file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[1] 232 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 233 ms.StoreMessageInfo(mi) 234 } 235 } 236 237 func (x *GetLoginSessionRequest) String() string { 238 return protoimpl.X.MessageStringOf(x) 239 } 240 241 func (*GetLoginSessionRequest) ProtoMessage() {} 242 243 func (x *GetLoginSessionRequest) ProtoReflect() protoreflect.Message { 244 mi := &file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[1] 245 if protoimpl.UnsafeEnabled && x != nil { 246 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 247 if ms.LoadMessageInfo() == nil { 248 ms.StoreMessageInfo(mi) 249 } 250 return ms 251 } 252 return mi.MessageOf(x) 253 } 254 255 // Deprecated: Use GetLoginSessionRequest.ProtoReflect.Descriptor instead. 256 func (*GetLoginSessionRequest) Descriptor() ([]byte, []int) { 257 return file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescGZIP(), []int{1} 258 } 259 260 func (x *GetLoginSessionRequest) GetLoginSessionId() string { 261 if x != nil { 262 return x.LoginSessionId 263 } 264 return "" 265 } 266 267 func (x *GetLoginSessionRequest) GetLoginSessionPassword() []byte { 268 if x != nil { 269 return x.LoginSessionPassword 270 } 271 return nil 272 } 273 274 // Represents a login session whose eventual outcome if an OAuth2 authorization 275 // code. 276 type LoginSession struct { 277 state protoimpl.MessageState 278 sizeCache protoimpl.SizeCache 279 unknownFields protoimpl.UnknownFields 280 281 // Globally identifies this session. 282 // 283 // It is a randomly generated URL-safe string. Knowing it is enough to 284 // complete the login session via the web UI. Should be used only by the user 285 // that started the login flow. 286 // 287 // It will also appear as a `nonce` claim in the ID token produced by the 288 // protocol. 289 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 290 // Password is required to call GetLoginSession. 291 // 292 // It is populated only in the response from CreateLoginSession. It exists 293 // to make sure that only whoever created the session can check its status. 294 // Must not be shared or stored. 295 Password []byte `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` 296 State LoginSession_State `protobuf:"varint,3,opt,name=state,proto3,enum=luci.auth.loginsessions.LoginSession_State" json:"state,omitempty"` 297 // When the session was created. Always populated. 298 Created *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` 299 // When the session will expire. Always populated. 300 Expiry *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expiry,proto3" json:"expiry,omitempty"` 301 // When the session moved to a final state. Populated for finished sessions. 302 Completed *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=completed,proto3" json:"completed,omitempty"` 303 // A full URL to a webpage the user should visit to perform the login flow. 304 // 305 // It encodes `id` inside. Always populated. 306 // 307 // Knowing it is enough to complete the login session via the web UI. Should 308 // be used only by the user that started the login flow. 309 LoginFlowUrl string `protobuf:"bytes,7,opt,name=login_flow_url,json=loginFlowUrl,proto3" json:"login_flow_url,omitempty"` 310 // How often the caller should poll the session status via GetLoginSession. 311 // 312 // It is a mechanism to adjust the global poll rate without redeploying 313 // new clients. 314 // 315 // Populated for sessions in PENDING state. The caller is allowed to ignore it 316 // if absolutely necessary. 317 PollInterval *durationpb.Duration `protobuf:"bytes,8,opt,name=poll_interval,json=pollInterval,proto3" json:"poll_interval,omitempty"` 318 // The active confirmation code. 319 // 320 // The user will be asked to provide this code by the web UI as the final step 321 // of the login flow. The code should be shown to the user by the native 322 // program in the terminal. This code is very short lived (~ 1 min) and the 323 // native program should periodically fetch and show the most recent code. 324 // 325 // The purpose of this mechanism is to make sure the user is completing the 326 // flow they have actually started in their own terminal. It makes phishing 327 // attempts harder, since the target of a phishing attack should not only 328 // click through the web UI login flow initiated from a link (which is 329 // relatively easy to arrange), but also actively copy-paste an up-to-date 330 // code that expires very fast (making "asynchronous" phishing attempts 331 // relatively hard to perform). 332 // 333 // Populated only if the session is still in PENDING state. 334 ConfirmationCode string `protobuf:"bytes,9,opt,name=confirmation_code,json=confirmationCode,proto3" json:"confirmation_code,omitempty"` 335 // When the confirmation code expires, as duration since when the request to 336 // get it completed. 337 // 338 // It is a relative time (instead of an absolute timestamp) to avoid relying 339 // on clock synchronization between the backend and the client machine. Since 340 // the code expires pretty fast, even small differences in clocks may cause 341 // issues. 342 // 343 // This value is always sufficiently larger than zero (to give the user some 344 // time to use it). The server will prepare a new code in advance if the 345 // existing one expires soon. See confirmation_code_refresh below. During such 346 // transitions both codes are valid. 347 // 348 // Populated only if the session is still in PENDING state. 349 ConfirmationCodeExpiry *durationpb.Duration `protobuf:"bytes,10,opt,name=confirmation_code_expiry,json=confirmationCodeExpiry,proto3" json:"confirmation_code_expiry,omitempty"` 350 // When the confirmation code will be refreshed (approximately). 351 // 352 // A "refresh" in this context means GetLoginSession will start returning 353 // a new code. It happens somewhat before the previous code expires. That way 354 // the user always sees a code that is sufficiently fresh to be copy-pasted 355 // into the confirmation web page in a leisurely pace. 356 // 357 // Populated only if the session is still in PENDING state. 358 ConfirmationCodeRefresh *durationpb.Duration `protobuf:"bytes,11,opt,name=confirmation_code_refresh,json=confirmationCodeRefresh,proto3" json:"confirmation_code_refresh,omitempty"` 359 // The OAuth2 authorization code that can be exchanged for OAuth2 tokens. 360 // 361 // Populated only for sessions in SUCCEEDED state. Getting this code is the 362 // goal of LoginSessions service. Knowing this code, an OAuth2 client secret 363 // (which is usually hardcoded in the native program code) and the PKCE code 364 // verifier secret (which was used to derive `oauth_s256_code_challenge`) is 365 // enough to get all OAuth2 tokens. 366 // 367 // Must not be shared. 368 OauthAuthorizationCode string `protobuf:"bytes,12,opt,name=oauth_authorization_code,json=oauthAuthorizationCode,proto3" json:"oauth_authorization_code,omitempty"` 369 // An URL that should be used as `redirect_url` parameter when calling the 370 // authorization server token endpoint when exchanging the authorization code 371 // for tokens. 372 // 373 // Populated only for sessions in SUCCEEDED state. It is usually a static 374 // well-known URL pointing to a page on the login sessions service domain, 375 // but it is returned with the session to avoid hardcoding dependencies on 376 // implementation details of the login sessions server. 377 OauthRedirectUrl string `protobuf:"bytes,13,opt,name=oauth_redirect_url,json=oauthRedirectUrl,proto3" json:"oauth_redirect_url,omitempty"` 378 // An optional error message if the login flow failed. 379 // 380 // Populated only for sessions in FAILED state. 381 OauthError string `protobuf:"bytes,14,opt,name=oauth_error,json=oauthError,proto3" json:"oauth_error,omitempty"` 382 } 383 384 func (x *LoginSession) Reset() { 385 *x = LoginSession{} 386 if protoimpl.UnsafeEnabled { 387 mi := &file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[2] 388 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 389 ms.StoreMessageInfo(mi) 390 } 391 } 392 393 func (x *LoginSession) String() string { 394 return protoimpl.X.MessageStringOf(x) 395 } 396 397 func (*LoginSession) ProtoMessage() {} 398 399 func (x *LoginSession) ProtoReflect() protoreflect.Message { 400 mi := &file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[2] 401 if protoimpl.UnsafeEnabled && x != nil { 402 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 403 if ms.LoadMessageInfo() == nil { 404 ms.StoreMessageInfo(mi) 405 } 406 return ms 407 } 408 return mi.MessageOf(x) 409 } 410 411 // Deprecated: Use LoginSession.ProtoReflect.Descriptor instead. 412 func (*LoginSession) Descriptor() ([]byte, []int) { 413 return file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescGZIP(), []int{2} 414 } 415 416 func (x *LoginSession) GetId() string { 417 if x != nil { 418 return x.Id 419 } 420 return "" 421 } 422 423 func (x *LoginSession) GetPassword() []byte { 424 if x != nil { 425 return x.Password 426 } 427 return nil 428 } 429 430 func (x *LoginSession) GetState() LoginSession_State { 431 if x != nil { 432 return x.State 433 } 434 return LoginSession_STATE_UNSPECIFIED 435 } 436 437 func (x *LoginSession) GetCreated() *timestamppb.Timestamp { 438 if x != nil { 439 return x.Created 440 } 441 return nil 442 } 443 444 func (x *LoginSession) GetExpiry() *timestamppb.Timestamp { 445 if x != nil { 446 return x.Expiry 447 } 448 return nil 449 } 450 451 func (x *LoginSession) GetCompleted() *timestamppb.Timestamp { 452 if x != nil { 453 return x.Completed 454 } 455 return nil 456 } 457 458 func (x *LoginSession) GetLoginFlowUrl() string { 459 if x != nil { 460 return x.LoginFlowUrl 461 } 462 return "" 463 } 464 465 func (x *LoginSession) GetPollInterval() *durationpb.Duration { 466 if x != nil { 467 return x.PollInterval 468 } 469 return nil 470 } 471 472 func (x *LoginSession) GetConfirmationCode() string { 473 if x != nil { 474 return x.ConfirmationCode 475 } 476 return "" 477 } 478 479 func (x *LoginSession) GetConfirmationCodeExpiry() *durationpb.Duration { 480 if x != nil { 481 return x.ConfirmationCodeExpiry 482 } 483 return nil 484 } 485 486 func (x *LoginSession) GetConfirmationCodeRefresh() *durationpb.Duration { 487 if x != nil { 488 return x.ConfirmationCodeRefresh 489 } 490 return nil 491 } 492 493 func (x *LoginSession) GetOauthAuthorizationCode() string { 494 if x != nil { 495 return x.OauthAuthorizationCode 496 } 497 return "" 498 } 499 500 func (x *LoginSession) GetOauthRedirectUrl() string { 501 if x != nil { 502 return x.OauthRedirectUrl 503 } 504 return "" 505 } 506 507 func (x *LoginSession) GetOauthError() string { 508 if x != nil { 509 return x.OauthError 510 } 511 return "" 512 } 513 514 var File_go_chromium_org_luci_auth_loginsessionspb_service_proto protoreflect.FileDescriptor 515 516 var file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDesc = []byte{ 517 0x0a, 0x37, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 518 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 519 0x6e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x70, 0x62, 0x2f, 0x73, 0x65, 0x72, 0x76, 520 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x6c, 0x75, 0x63, 0x69, 0x2e, 521 0x61, 0x75, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 522 0x6e, 0x73, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 523 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 524 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 525 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 526 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 527 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 528 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 529 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x61, 0x75, 0x74, 530 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x61, 0x75, 531 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 532 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x19, 533 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x32, 0x35, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 534 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 535 0x16, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x32, 0x35, 0x36, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x68, 536 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 537 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 538 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 539 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 540 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 541 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x16, 0x47, 0x65, 0x74, 542 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 543 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x73, 544 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 545 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 546 0x16, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 547 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x6c, 548 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 549 0x6f, 0x72, 0x64, 0x22, 0xcc, 0x06, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 550 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 551 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 552 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 553 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 554 0x2b, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 555 0x6e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 556 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 557 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 558 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 559 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 560 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x78, 0x70, 561 0x69, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 562 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 563 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x38, 0x0a, 564 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 565 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 566 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x6f, 567 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 568 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 569 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 570 0x0d, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 571 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 572 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 573 0x0c, 0x70, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2b, 0x0a, 574 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 575 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 576 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x18, 0x63, 0x6f, 577 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 578 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 579 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 580 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 581 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 582 0x55, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 583 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 584 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 585 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x63, 586 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 587 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 588 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 589 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x41, 590 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 591 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 592 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x61, 593 0x75, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1f, 594 0x0a, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0e, 0x20, 595 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 596 0x61, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 597 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 598 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 599 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 600 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 601 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 602 0x10, 0x05, 0x32, 0xeb, 0x01, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 603 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6f, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 604 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x75, 0x63, 605 0x69, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x65, 0x73, 0x73, 606 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 607 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 608 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 609 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 610 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, 611 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 612 0x61, 0x75, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 613 0x6e, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 614 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6c, 0x75, 0x63, 0x69, 615 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x65, 0x73, 0x73, 0x69, 616 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 617 0x42, 0x2b, 0x5a, 0x29, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 618 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x6c, 0x6f, 619 0x67, 0x69, 0x6e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 620 0x72, 0x6f, 0x74, 0x6f, 0x33, 621 } 622 623 var ( 624 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescOnce sync.Once 625 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescData = file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDesc 626 ) 627 628 func file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescGZIP() []byte { 629 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescOnce.Do(func() { 630 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescData) 631 }) 632 return file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDescData 633 } 634 635 var file_go_chromium_org_luci_auth_loginsessionspb_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 636 var file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3) 637 var file_go_chromium_org_luci_auth_loginsessionspb_service_proto_goTypes = []interface{}{ 638 (LoginSession_State)(0), // 0: luci.auth.loginsessions.LoginSession.State 639 (*CreateLoginSessionRequest)(nil), // 1: luci.auth.loginsessions.CreateLoginSessionRequest 640 (*GetLoginSessionRequest)(nil), // 2: luci.auth.loginsessions.GetLoginSessionRequest 641 (*LoginSession)(nil), // 3: luci.auth.loginsessions.LoginSession 642 (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp 643 (*durationpb.Duration)(nil), // 5: google.protobuf.Duration 644 } 645 var file_go_chromium_org_luci_auth_loginsessionspb_service_proto_depIdxs = []int32{ 646 0, // 0: luci.auth.loginsessions.LoginSession.state:type_name -> luci.auth.loginsessions.LoginSession.State 647 4, // 1: luci.auth.loginsessions.LoginSession.created:type_name -> google.protobuf.Timestamp 648 4, // 2: luci.auth.loginsessions.LoginSession.expiry:type_name -> google.protobuf.Timestamp 649 4, // 3: luci.auth.loginsessions.LoginSession.completed:type_name -> google.protobuf.Timestamp 650 5, // 4: luci.auth.loginsessions.LoginSession.poll_interval:type_name -> google.protobuf.Duration 651 5, // 5: luci.auth.loginsessions.LoginSession.confirmation_code_expiry:type_name -> google.protobuf.Duration 652 5, // 6: luci.auth.loginsessions.LoginSession.confirmation_code_refresh:type_name -> google.protobuf.Duration 653 1, // 7: luci.auth.loginsessions.LoginSessions.CreateLoginSession:input_type -> luci.auth.loginsessions.CreateLoginSessionRequest 654 2, // 8: luci.auth.loginsessions.LoginSessions.GetLoginSession:input_type -> luci.auth.loginsessions.GetLoginSessionRequest 655 3, // 9: luci.auth.loginsessions.LoginSessions.CreateLoginSession:output_type -> luci.auth.loginsessions.LoginSession 656 3, // 10: luci.auth.loginsessions.LoginSessions.GetLoginSession:output_type -> luci.auth.loginsessions.LoginSession 657 9, // [9:11] is the sub-list for method output_type 658 7, // [7:9] is the sub-list for method input_type 659 7, // [7:7] is the sub-list for extension type_name 660 7, // [7:7] is the sub-list for extension extendee 661 0, // [0:7] is the sub-list for field type_name 662 } 663 664 func init() { file_go_chromium_org_luci_auth_loginsessionspb_service_proto_init() } 665 func file_go_chromium_org_luci_auth_loginsessionspb_service_proto_init() { 666 if File_go_chromium_org_luci_auth_loginsessionspb_service_proto != nil { 667 return 668 } 669 if !protoimpl.UnsafeEnabled { 670 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 671 switch v := v.(*CreateLoginSessionRequest); i { 672 case 0: 673 return &v.state 674 case 1: 675 return &v.sizeCache 676 case 2: 677 return &v.unknownFields 678 default: 679 return nil 680 } 681 } 682 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 683 switch v := v.(*GetLoginSessionRequest); i { 684 case 0: 685 return &v.state 686 case 1: 687 return &v.sizeCache 688 case 2: 689 return &v.unknownFields 690 default: 691 return nil 692 } 693 } 694 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 695 switch v := v.(*LoginSession); i { 696 case 0: 697 return &v.state 698 case 1: 699 return &v.sizeCache 700 case 2: 701 return &v.unknownFields 702 default: 703 return nil 704 } 705 } 706 } 707 type x struct{} 708 out := protoimpl.TypeBuilder{ 709 File: protoimpl.DescBuilder{ 710 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 711 RawDescriptor: file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDesc, 712 NumEnums: 1, 713 NumMessages: 3, 714 NumExtensions: 0, 715 NumServices: 1, 716 }, 717 GoTypes: file_go_chromium_org_luci_auth_loginsessionspb_service_proto_goTypes, 718 DependencyIndexes: file_go_chromium_org_luci_auth_loginsessionspb_service_proto_depIdxs, 719 EnumInfos: file_go_chromium_org_luci_auth_loginsessionspb_service_proto_enumTypes, 720 MessageInfos: file_go_chromium_org_luci_auth_loginsessionspb_service_proto_msgTypes, 721 }.Build() 722 File_go_chromium_org_luci_auth_loginsessionspb_service_proto = out.File 723 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_rawDesc = nil 724 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_goTypes = nil 725 file_go_chromium_org_luci_auth_loginsessionspb_service_proto_depIdxs = nil 726 }