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  }