blob: 055a5e248d0fb3d644616ddd217257f62e4d8fbd [file] [log] [blame]
// Copyright 2016 The LUCI Authors. All rights reserved.
// Use of this source code is governed under the Apache License, Version 2.0
// that can be found in the LICENSE file.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.21.7
// source: go.chromium.org/luci/tokenserver/api/minter/v1/token_minter.proto
package minter
import (
messages "go.chromium.org/luci/server/auth/delegation/messages"
api "go.chromium.org/luci/tokenserver/api"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// Supported ways of singing the request.
type SignatureAlgorithm int32
const (
SignatureAlgorithm_UNKNOWN_ALGO SignatureAlgorithm = 0 // used if the field is not initialized
SignatureAlgorithm_SHA256_RSA_ALGO SignatureAlgorithm = 1 // matches x509's sha256WithRSAEncryption
)
// Enum value maps for SignatureAlgorithm.
var (
SignatureAlgorithm_name = map[int32]string{
0: "UNKNOWN_ALGO",
1: "SHA256_RSA_ALGO",
}
SignatureAlgorithm_value = map[string]int32{
"UNKNOWN_ALGO": 0,
"SHA256_RSA_ALGO": 1,
}
)
func (x SignatureAlgorithm) Enum() *SignatureAlgorithm {
p := new(SignatureAlgorithm)
*p = x
return p
}
func (x SignatureAlgorithm) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SignatureAlgorithm) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes[0].Descriptor()
}
func (SignatureAlgorithm) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes[0]
}
func (x SignatureAlgorithm) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SignatureAlgorithm.Descriptor instead.
func (SignatureAlgorithm) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{0}
}
// Possible kinds of fatal errors.
//
// Non fatal errors are returned as grpc.Internal errors instead.
type ErrorCode int32
const (
ErrorCode_SUCCESS ErrorCode = 0
ErrorCode_UNSUPPORTED_SIGNATURE ErrorCode = 1 // used signature_algorithm is not supported
ErrorCode_UNSUPPORTED_TOKEN_TYPE ErrorCode = 2 // requested token_type is not supported
ErrorCode_BAD_TIMESTAMP ErrorCode = 3 // issued_at field is wrong
ErrorCode_BAD_CERTIFICATE_FORMAT ErrorCode = 4 // malformed or unsupported certificate
ErrorCode_BAD_SIGNATURE ErrorCode = 5 // signature doesn't match or can't be verified
ErrorCode_UNTRUSTED_CERTIFICATE ErrorCode = 6 // invalid certificate or can't verify it yet
ErrorCode_BAD_TOKEN_ARGUMENTS ErrorCode = 7 // FQDN or Scopes are invalid or not whitelisted
ErrorCode_MACHINE_TOKEN_MINTING_ERROR ErrorCode = 8 // unspecified fatal error when minting a machine token
)
// Enum value maps for ErrorCode.
var (
ErrorCode_name = map[int32]string{
0: "SUCCESS",
1: "UNSUPPORTED_SIGNATURE",
2: "UNSUPPORTED_TOKEN_TYPE",
3: "BAD_TIMESTAMP",
4: "BAD_CERTIFICATE_FORMAT",
5: "BAD_SIGNATURE",
6: "UNTRUSTED_CERTIFICATE",
7: "BAD_TOKEN_ARGUMENTS",
8: "MACHINE_TOKEN_MINTING_ERROR",
}
ErrorCode_value = map[string]int32{
"SUCCESS": 0,
"UNSUPPORTED_SIGNATURE": 1,
"UNSUPPORTED_TOKEN_TYPE": 2,
"BAD_TIMESTAMP": 3,
"BAD_CERTIFICATE_FORMAT": 4,
"BAD_SIGNATURE": 5,
"UNTRUSTED_CERTIFICATE": 6,
"BAD_TOKEN_ARGUMENTS": 7,
"MACHINE_TOKEN_MINTING_ERROR": 8,
}
)
func (x ErrorCode) Enum() *ErrorCode {
p := new(ErrorCode)
*p = x
return p
}
func (x ErrorCode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ErrorCode) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes[1].Descriptor()
}
func (ErrorCode) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes[1]
}
func (x ErrorCode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ErrorCode.Descriptor instead.
func (ErrorCode) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{1}
}
// Used by MintServiceAccountToken.
type ServiceAccountTokenKind int32
const (
ServiceAccountTokenKind_SERVICE_ACCOUNT_TOKEN_UNSPECIFIED ServiceAccountTokenKind = 0
ServiceAccountTokenKind_SERVICE_ACCOUNT_TOKEN_ACCESS_TOKEN ServiceAccountTokenKind = 1 // ask for an OAuth2 access token
ServiceAccountTokenKind_SERVICE_ACCOUNT_TOKEN_ID_TOKEN ServiceAccountTokenKind = 2 // ask for an OpenID ID token
)
// Enum value maps for ServiceAccountTokenKind.
var (
ServiceAccountTokenKind_name = map[int32]string{
0: "SERVICE_ACCOUNT_TOKEN_UNSPECIFIED",
1: "SERVICE_ACCOUNT_TOKEN_ACCESS_TOKEN",
2: "SERVICE_ACCOUNT_TOKEN_ID_TOKEN",
}
ServiceAccountTokenKind_value = map[string]int32{
"SERVICE_ACCOUNT_TOKEN_UNSPECIFIED": 0,
"SERVICE_ACCOUNT_TOKEN_ACCESS_TOKEN": 1,
"SERVICE_ACCOUNT_TOKEN_ID_TOKEN": 2,
}
)
func (x ServiceAccountTokenKind) Enum() *ServiceAccountTokenKind {
p := new(ServiceAccountTokenKind)
*p = x
return p
}
func (x ServiceAccountTokenKind) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ServiceAccountTokenKind) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes[2].Descriptor()
}
func (ServiceAccountTokenKind) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes[2]
}
func (x ServiceAccountTokenKind) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ServiceAccountTokenKind.Descriptor instead.
func (ServiceAccountTokenKind) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{2}
}
// MintMachineTokenRequest wraps a serialized and signed MachineTokenRequest
// message.
type MintMachineTokenRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The protobuf-serialized MachineTokenRequest message, signed by the private
// key that matches MachineTokenRequest.certificate.
//
// We have to send it as a byte blob to avoid dealing with possible protobuf
// serialization inconsistencies when checking the signature.
SerializedTokenRequest []byte `protobuf:"bytes,1,opt,name=serialized_token_request,json=serializedTokenRequest,proto3" json:"serialized_token_request,omitempty"`
// The signature of 'serialized_token_parameters' blob.
//
// See MachineTokenRequest.signature_algorithm for exact meaning.
Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}
func (x *MintMachineTokenRequest) Reset() {
*x = MintMachineTokenRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintMachineTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintMachineTokenRequest) ProtoMessage() {}
func (x *MintMachineTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintMachineTokenRequest.ProtoReflect.Descriptor instead.
func (*MintMachineTokenRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{0}
}
func (x *MintMachineTokenRequest) GetSerializedTokenRequest() []byte {
if x != nil {
return x.SerializedTokenRequest
}
return nil
}
func (x *MintMachineTokenRequest) GetSignature() []byte {
if x != nil {
return x.Signature
}
return nil
}
// MachineTokenRequest contains the actual request parameters.
type MachineTokenRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The certificate that identifies a caller (as ASN1-serialized blob).
//
// It will be used to extract machine FQDN (it's CN of the cert) and CA name
// to use to check the cert.
Certificate []byte `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"`
// The signature algorithm used to sign this request.
//
// Defines what's in MintMachineTokenRequest.signature field.
SignatureAlgorithm SignatureAlgorithm `protobuf:"varint,2,opt,name=signature_algorithm,json=signatureAlgorithm,proto3,enum=tokenserver.minter.SignatureAlgorithm" json:"signature_algorithm,omitempty"`
// Timestamp when this request was created, by the issuer clock.
IssuedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=issued_at,json=issuedAt,proto3" json:"issued_at,omitempty"`
// The token type being requested.
//
// Defines what fields of the response are set.
TokenType api.MachineTokenType `protobuf:"varint,4,opt,name=token_type,json=tokenType,proto3,enum=tokenserver.MachineTokenType" json:"token_type,omitempty"`
}
func (x *MachineTokenRequest) Reset() {
*x = MachineTokenRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MachineTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MachineTokenRequest) ProtoMessage() {}
func (x *MachineTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MachineTokenRequest.ProtoReflect.Descriptor instead.
func (*MachineTokenRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{1}
}
func (x *MachineTokenRequest) GetCertificate() []byte {
if x != nil {
return x.Certificate
}
return nil
}
func (x *MachineTokenRequest) GetSignatureAlgorithm() SignatureAlgorithm {
if x != nil {
return x.SignatureAlgorithm
}
return SignatureAlgorithm_UNKNOWN_ALGO
}
func (x *MachineTokenRequest) GetIssuedAt() *timestamppb.Timestamp {
if x != nil {
return x.IssuedAt
}
return nil
}
func (x *MachineTokenRequest) GetTokenType() api.MachineTokenType {
if x != nil {
return x.TokenType
}
return api.MachineTokenType(0)
}
// MintMachineTokenResponse is returned by MintMachineToken if the server
// processed the request.
//
// It's returned even if server refuses to mint a token. It contains the error
// details in that case.
type MintMachineTokenResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Possible kinds of fatal errors.
//
// Non fatal errors are returned as grpc.Internal errors instead.
ErrorCode ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=tokenserver.minter.ErrorCode" json:"error_code,omitempty"`
// Optional detailed error message.
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
// On success (SUCCESS error code) contains the produced token.
TokenResponse *MachineTokenResponse `protobuf:"bytes,3,opt,name=token_response,json=tokenResponse,proto3" json:"token_response,omitempty"`
// Identifier of the service and its version that produced the response.
//
// Set for both successful responses and errors. On success, it is identical
// to token_response.service_version.
ServiceVersion string `protobuf:"bytes,4,opt,name=service_version,json=serviceVersion,proto3" json:"service_version,omitempty"`
}
func (x *MintMachineTokenResponse) Reset() {
*x = MintMachineTokenResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintMachineTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintMachineTokenResponse) ProtoMessage() {}
func (x *MintMachineTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintMachineTokenResponse.ProtoReflect.Descriptor instead.
func (*MintMachineTokenResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{2}
}
func (x *MintMachineTokenResponse) GetErrorCode() ErrorCode {
if x != nil {
return x.ErrorCode
}
return ErrorCode_SUCCESS
}
func (x *MintMachineTokenResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
func (x *MintMachineTokenResponse) GetTokenResponse() *MachineTokenResponse {
if x != nil {
return x.TokenResponse
}
return nil
}
func (x *MintMachineTokenResponse) GetServiceVersion() string {
if x != nil {
return x.ServiceVersion
}
return ""
}
// MachineTokenResponse contains a token requested by MachineTokenRequest.
type MachineTokenResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identifier of the service and its version that produced the token.
//
// Has the form "<app-id>/<module-version>". Reported to the monitoring by
// the client. This is _not_ a part of the token.
ServiceVersion string `protobuf:"bytes,2,opt,name=service_version,json=serviceVersion,proto3" json:"service_version,omitempty"`
// The generated token.
//
// The exact field set here depends on a requested type of the token, see
// MachineTokenRequest.token_type.
//
// Types that are assignable to TokenType:
//
// *MachineTokenResponse_LuciMachineToken
TokenType isMachineTokenResponse_TokenType `protobuf_oneof:"token_type"`
}
func (x *MachineTokenResponse) Reset() {
*x = MachineTokenResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MachineTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MachineTokenResponse) ProtoMessage() {}
func (x *MachineTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MachineTokenResponse.ProtoReflect.Descriptor instead.
func (*MachineTokenResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{3}
}
func (x *MachineTokenResponse) GetServiceVersion() string {
if x != nil {
return x.ServiceVersion
}
return ""
}
func (m *MachineTokenResponse) GetTokenType() isMachineTokenResponse_TokenType {
if m != nil {
return m.TokenType
}
return nil
}
func (x *MachineTokenResponse) GetLuciMachineToken() *LuciMachineToken {
if x, ok := x.GetTokenType().(*MachineTokenResponse_LuciMachineToken); ok {
return x.LuciMachineToken
}
return nil
}
type isMachineTokenResponse_TokenType interface {
isMachineTokenResponse_TokenType()
}
type MachineTokenResponse_LuciMachineToken struct {
LuciMachineToken *LuciMachineToken `protobuf:"bytes,21,opt,name=luci_machine_token,json=luciMachineToken,proto3,oneof"`
}
func (*MachineTokenResponse_LuciMachineToken) isMachineTokenResponse_TokenType() {}
// LuciMachineToken is short lived machine token.
//
// It is understood only by LUCI backends. It is a bearer token, that embeds
// machine hostname and details about the machine certificate it was issued for.
// It has short lifetime (usually 1h).
//
// It is expected to be sent to backends in 'X-Luci-Machine-Token' HTTP header.
//
// The token here is supposed to be treated as an opaque base64-encoded blob,
// but in reality it is serialized MachineTokenEnvelope, see machine_token.proto
// and read the comment there for more info about the token format.
type LuciMachineToken struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MachineToken string `protobuf:"bytes,1,opt,name=machine_token,json=machineToken,proto3" json:"machine_token,omitempty"` // the actual token
Expiry *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expiry,proto3" json:"expiry,omitempty"` // when the token expires
}
func (x *LuciMachineToken) Reset() {
*x = LuciMachineToken{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LuciMachineToken) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LuciMachineToken) ProtoMessage() {}
func (x *LuciMachineToken) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LuciMachineToken.ProtoReflect.Descriptor instead.
func (*LuciMachineToken) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{4}
}
func (x *LuciMachineToken) GetMachineToken() string {
if x != nil {
return x.MachineToken
}
return ""
}
func (x *LuciMachineToken) GetExpiry() *timestamppb.Timestamp {
if x != nil {
return x.Expiry
}
return nil
}
// MintDelegationTokenRequest is passed to MintDelegationToken.
type MintDelegationTokenRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identity whose authority is delegated.
//
// A string of the form "user:<email>" or a special token "REQUESTOR" that
// means to delegate caller's own identity. The token server will check its
// ACLs to make sure the caller is authorized to impersonate this identity.
//
// Required.
DelegatedIdentity string `protobuf:"bytes,1,opt,name=delegated_identity,json=delegatedIdentity,proto3" json:"delegated_identity,omitempty"`
// How long the token should be considered valid (in seconds).
//
// Default is 3600 sec.
ValidityDuration int64 `protobuf:"varint,2,opt,name=validity_duration,json=validityDuration,proto3" json:"validity_duration,omitempty"`
// Who will be able to use the new token.
//
// Each item can be an identity string (e.g. "user:<email>"), a "group:<name>"
// string, special "*" string which means "Any bearer can use the token", or
// "REQUESTOR" string which means "Whoever is making this call can use the
// token".
//
// This is semantically is a set, the order of elements doesn't matter.
//
// Required.
Audience []string `protobuf:"bytes,3,rep,name=audience,proto3" json:"audience,omitempty"`
// What services should accept the new token.
//
// List of LUCI services (specified as service identities, e.g.
// "service:app-id" or as https:// root URLs e.g. "https://<host>") that
// should accept this token. May also contain special "*" string, which
// means "All LUCI services".
//
// This is semantically is a set, the order of elements doesn't matter.
//
// Required.
Services []string `protobuf:"bytes,4,rep,name=services,proto3" json:"services,omitempty"`
// Optional reason why the token is created.
//
// Used only for logging and auditing purposes. Doesn't become part of the
// token.
Intent string `protobuf:"bytes,5,opt,name=intent,proto3" json:"intent,omitempty"`
// Arbitrary key:value pairs embedded into the token by whoever requested it.
// Convey circumstance of why the token is created.
//
// Services that accept the token may use them for additional authorization
// decisions. Please use extremely carefully, only when you control both sides
// of the delegation link and can guarantee that services involved understand
// the tags.
Tags []string `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"`
}
func (x *MintDelegationTokenRequest) Reset() {
*x = MintDelegationTokenRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintDelegationTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintDelegationTokenRequest) ProtoMessage() {}
func (x *MintDelegationTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintDelegationTokenRequest.ProtoReflect.Descriptor instead.
func (*MintDelegationTokenRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{5}
}
func (x *MintDelegationTokenRequest) GetDelegatedIdentity() string {
if x != nil {
return x.DelegatedIdentity
}
return ""
}
func (x *MintDelegationTokenRequest) GetValidityDuration() int64 {
if x != nil {
return x.ValidityDuration
}
return 0
}
func (x *MintDelegationTokenRequest) GetAudience() []string {
if x != nil {
return x.Audience
}
return nil
}
func (x *MintDelegationTokenRequest) GetServices() []string {
if x != nil {
return x.Services
}
return nil
}
func (x *MintDelegationTokenRequest) GetIntent() string {
if x != nil {
return x.Intent
}
return ""
}
func (x *MintDelegationTokenRequest) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
// MintDelegationTokenResponse is returned by MintDelegationToken on success.
//
// Errors are returned via standard gRPC codes.
type MintDelegationTokenResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The actual base64-encoded signed token.
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
// Same data as in 'token' in deserialized form, just for convenience.
//
// Mostly for JSON encoding users, since they may not understand proto-encoded
// tokens.
DelegationSubtoken *messages.Subtoken `protobuf:"bytes,2,opt,name=delegation_subtoken,json=delegationSubtoken,proto3" json:"delegation_subtoken,omitempty"`
// Identifier of the service and its version that produced the token.
//
// Has the form "<app-id>/<module-version>". This is _not_ part of the token.
// Used only for logging and monitoring.
ServiceVersion string `protobuf:"bytes,3,opt,name=service_version,json=serviceVersion,proto3" json:"service_version,omitempty"`
}
func (x *MintDelegationTokenResponse) Reset() {
*x = MintDelegationTokenResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintDelegationTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintDelegationTokenResponse) ProtoMessage() {}
func (x *MintDelegationTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintDelegationTokenResponse.ProtoReflect.Descriptor instead.
func (*MintDelegationTokenResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{6}
}
func (x *MintDelegationTokenResponse) GetToken() string {
if x != nil {
return x.Token
}
return ""
}
func (x *MintDelegationTokenResponse) GetDelegationSubtoken() *messages.Subtoken {
if x != nil {
return x.DelegationSubtoken
}
return nil
}
func (x *MintDelegationTokenResponse) GetServiceVersion() string {
if x != nil {
return x.ServiceVersion
}
return ""
}
// MintProjectTokenRequest is passed to MintProjectToken.
type MintProjectTokenRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Luci project to which this token will be bound.
LuciProject string `protobuf:"bytes,1,opt,name=luci_project,json=luciProject,proto3" json:"luci_project,omitempty"`
// Requested OAuth scopes for the token.
OauthScope []string `protobuf:"bytes,2,rep,name=oauth_scope,json=oauthScope,proto3" json:"oauth_scope,omitempty"`
// Minimum token validity duration in seconds.
MinValidityDuration int64 `protobuf:"varint,3,opt,name=min_validity_duration,json=minValidityDuration,proto3" json:"min_validity_duration,omitempty"`
// Arbitrary key:value pairs describing circumstances of this call.
//
// Used only for logging and auditing purposes. Not involved in authorization.
AuditTags []string `protobuf:"bytes,4,rep,name=audit_tags,json=auditTags,proto3" json:"audit_tags,omitempty"`
}
func (x *MintProjectTokenRequest) Reset() {
*x = MintProjectTokenRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintProjectTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintProjectTokenRequest) ProtoMessage() {}
func (x *MintProjectTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintProjectTokenRequest.ProtoReflect.Descriptor instead.
func (*MintProjectTokenRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{7}
}
func (x *MintProjectTokenRequest) GetLuciProject() string {
if x != nil {
return x.LuciProject
}
return ""
}
func (x *MintProjectTokenRequest) GetOauthScope() []string {
if x != nil {
return x.OauthScope
}
return nil
}
func (x *MintProjectTokenRequest) GetMinValidityDuration() int64 {
if x != nil {
return x.MinValidityDuration
}
return 0
}
func (x *MintProjectTokenRequest) GetAuditTags() []string {
if x != nil {
return x.AuditTags
}
return nil
}
// MintProjectTokenResponse is returned by MintProjectToken.
type MintProjectTokenResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Full service account email.
ServiceAccountEmail string `protobuf:"bytes,1,opt,name=service_account_email,json=serviceAccountEmail,proto3" json:"service_account_email,omitempty"`
// OAuth access token.
AccessToken string `protobuf:"bytes,2,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
// Token expiration timestamp.
Expiry *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expiry,proto3" json:"expiry,omitempty"`
// Identifier of the service and its version that produced the token.
//
// Has the form "<app-id>/<module-version>". Used only for logging and
// monitoring.
ServiceVersion string `protobuf:"bytes,4,opt,name=service_version,json=serviceVersion,proto3" json:"service_version,omitempty"`
}
func (x *MintProjectTokenResponse) Reset() {
*x = MintProjectTokenResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintProjectTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintProjectTokenResponse) ProtoMessage() {}
func (x *MintProjectTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintProjectTokenResponse.ProtoReflect.Descriptor instead.
func (*MintProjectTokenResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{8}
}
func (x *MintProjectTokenResponse) GetServiceAccountEmail() string {
if x != nil {
return x.ServiceAccountEmail
}
return ""
}
func (x *MintProjectTokenResponse) GetAccessToken() string {
if x != nil {
return x.AccessToken
}
return ""
}
func (x *MintProjectTokenResponse) GetExpiry() *timestamppb.Timestamp {
if x != nil {
return x.Expiry
}
return nil
}
func (x *MintProjectTokenResponse) GetServiceVersion() string {
if x != nil {
return x.ServiceVersion
}
return ""
}
// MintServiceAccountTokenRequest is passed to MintServiceAccountToken.
type MintServiceAccountTokenRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// What kind of a token is being requested. Required.
TokenKind ServiceAccountTokenKind `protobuf:"varint,1,opt,name=token_kind,json=tokenKind,proto3,enum=tokenserver.minter.ServiceAccountTokenKind" json:"token_kind,omitempty"`
// Email of a service account to grab the token for. Required.
ServiceAccount string `protobuf:"bytes,2,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
// A LUCI realm to use to authorize the call. Required.
Realm string `protobuf:"bytes,3,opt,name=realm,proto3" json:"realm,omitempty"`
// A list of scopes the OAuth2 access token should have.
//
// Must be set if token_kind is SERVICE_ACCOUNT_TOKEN_ACCESS_TOKEN and must
// be empty otherwise.
OauthScope []string `protobuf:"bytes,4,rep,name=oauth_scope,json=oauthScope,proto3" json:"oauth_scope,omitempty"`
// An audience the ID token should have.
//
// Must be set if token_kind is SERVICE_ACCOUNT_TOKEN_ID_TOKEN and must
// be empty otherwise.
IdTokenAudience string `protobuf:"bytes,5,opt,name=id_token_audience,json=idTokenAudience,proto3" json:"id_token_audience,omitempty"`
// Minimally accepted validity duration of the returned token (seconds).
//
// The server may return a token that lives longer than this. The maximum is
// 1h. An attempt to get a token that lives longer than 1h will result in
// an error.
//
// Default is 300 sec.
MinValidityDuration int64 `protobuf:"varint,6,opt,name=min_validity_duration,json=minValidityDuration,proto3" json:"min_validity_duration,omitempty"`
// Arbitrary key:value pairs describing circumstances of this call.
//
// Used only for logging and auditing purposes. Not involved in authorization.
AuditTags []string `protobuf:"bytes,7,rep,name=audit_tags,json=auditTags,proto3" json:"audit_tags,omitempty"`
}
func (x *MintServiceAccountTokenRequest) Reset() {
*x = MintServiceAccountTokenRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintServiceAccountTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintServiceAccountTokenRequest) ProtoMessage() {}
func (x *MintServiceAccountTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintServiceAccountTokenRequest.ProtoReflect.Descriptor instead.
func (*MintServiceAccountTokenRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{9}
}
func (x *MintServiceAccountTokenRequest) GetTokenKind() ServiceAccountTokenKind {
if x != nil {
return x.TokenKind
}
return ServiceAccountTokenKind_SERVICE_ACCOUNT_TOKEN_UNSPECIFIED
}
func (x *MintServiceAccountTokenRequest) GetServiceAccount() string {
if x != nil {
return x.ServiceAccount
}
return ""
}
func (x *MintServiceAccountTokenRequest) GetRealm() string {
if x != nil {
return x.Realm
}
return ""
}
func (x *MintServiceAccountTokenRequest) GetOauthScope() []string {
if x != nil {
return x.OauthScope
}
return nil
}
func (x *MintServiceAccountTokenRequest) GetIdTokenAudience() string {
if x != nil {
return x.IdTokenAudience
}
return ""
}
func (x *MintServiceAccountTokenRequest) GetMinValidityDuration() int64 {
if x != nil {
return x.MinValidityDuration
}
return 0
}
func (x *MintServiceAccountTokenRequest) GetAuditTags() []string {
if x != nil {
return x.AuditTags
}
return nil
}
// MintServiceAccountTokenResponse is returned by MintServiceAccountToken.
type MintServiceAccountTokenResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` // the produced token
Expiry *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expiry,proto3" json:"expiry,omitempty"` // when this token expires
// Identifier of the service and its version that produced the token.
//
// Has the form "<app-id>/<module-version>". Used only for logging and
// monitoring.
ServiceVersion string `protobuf:"bytes,3,opt,name=service_version,json=serviceVersion,proto3" json:"service_version,omitempty"`
}
func (x *MintServiceAccountTokenResponse) Reset() {
*x = MintServiceAccountTokenResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MintServiceAccountTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MintServiceAccountTokenResponse) ProtoMessage() {}
func (x *MintServiceAccountTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MintServiceAccountTokenResponse.ProtoReflect.Descriptor instead.
func (*MintServiceAccountTokenResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP(), []int{10}
}
func (x *MintServiceAccountTokenResponse) GetToken() string {
if x != nil {
return x.Token
}
return ""
}
func (x *MintServiceAccountTokenResponse) GetExpiry() *timestamppb.Timestamp {
if x != nil {
return x.Expiry
}
return nil
}
func (x *MintServiceAccountTokenResponse) GetServiceVersion() string {
if x != nil {
return x.ServiceVersion
}
return ""
}
var File_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDesc = []byte{
0x0a, 0x41, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2f, 0x76, 0x31,
0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x12, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x45, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72,
0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x64,
0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x38, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67,
0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x71, 0x0a, 0x17, 0x4d, 0x69, 0x6e,
0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c,
0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x8d, 0x02, 0x0a,
0x13, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69,
0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x13, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
0x75, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x12, 0x73, 0x69, 0x67,
0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12,
0x37, 0x0a, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08,
0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65,
0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69,
0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x6f, 0x6b,
0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xf7, 0x01, 0x0a,
0x18, 0x4d, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65,
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74,
0x65, 0x72, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72,
0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4f, 0x0a, 0x0e,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e,
0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0d,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a,
0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x14, 0x4d, 0x61, 0x63, 0x68, 0x69,
0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x12, 0x6c, 0x75, 0x63, 0x69,
0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x15,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x75, 0x63, 0x69, 0x4d, 0x61,
0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x75,
0x63, 0x69, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0c,
0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04, 0x08, 0x01,
0x10, 0x02, 0x4a, 0x04, 0x08, 0x14, 0x10, 0x15, 0x22, 0x6b, 0x0a, 0x10, 0x4c, 0x75, 0x63, 0x69,
0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d,
0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65,
0x6e, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x65,
0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x65,
0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65,
0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74,
0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f,
0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10,
0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03,
0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08,
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65,
0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74,
0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
0x74, 0x61, 0x67, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x1b, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x6c,
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x43, 0x0a, 0x13, 0x64, 0x65,
0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x6f, 0x6b, 0x65,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x12, 0x64, 0x65, 0x6c,
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12,
0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x01, 0x0a, 0x17, 0x4d, 0x69, 0x6e,
0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x75, 0x63, 0x69, 0x5f, 0x70, 0x72, 0x6f,
0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x75, 0x63, 0x69,
0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68,
0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x61,
0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f,
0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x69,
0x64, 0x69, 0x74, 0x79, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a,
0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09,
0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x54, 0x61, 0x67, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x18,
0x4d, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69,
0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12,
0x32, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x65, 0x78, 0x70,
0x69, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x02, 0x0a,
0x1e, 0x4d, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x4a, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4b, 0x69, 0x6e, 0x64,
0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73,
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x61,
0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
0x0a, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69,
0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41,
0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x76,
0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64,
0x69, 0x74, 0x79, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61,
0x75, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52,
0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x54, 0x61, 0x67, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x1f, 0x4d,
0x69, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14,
0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x2a, 0x3b, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c,
0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
0x57, 0x4e, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x48, 0x41,
0x32, 0x35, 0x36, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x10, 0x01, 0x2a, 0xe6,
0x01, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07,
0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x53,
0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55,
0x52, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52,
0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02,
0x12, 0x11, 0x0a, 0x0d, 0x42, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d,
0x50, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x41, 0x44, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49,
0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x10, 0x04, 0x12,
0x11, 0x0a, 0x0d, 0x42, 0x41, 0x44, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45,
0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x5f,
0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x10, 0x06, 0x12, 0x17, 0x0a,
0x13, 0x42, 0x41, 0x44, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d,
0x45, 0x4e, 0x54, 0x53, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e,
0x45, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4d, 0x49, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x5f,
0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x08, 0x2a, 0x8c, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4b,
0x69, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41,
0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x55, 0x4e, 0x53,
0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x45,
0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x4f,
0x4b, 0x45, 0x4e, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e,
0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43,
0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x54,
0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x02, 0x32, 0xe8, 0x03, 0x0a, 0x0b, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x74, 0x4d, 0x61,
0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x2e, 0x74, 0x6f, 0x6b,
0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e,
0x4d, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x69, 0x6e,
0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x13, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x6c,
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x2e, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65,
0x72, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65,
0x72, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a,
0x10, 0x4d, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65,
0x6e, 0x12, 0x2b, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65,
0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c,
0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e,
0x74, 0x65, 0x72, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54,
0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a,
0x17, 0x4d, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x69,
0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65,
0x72, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72,
0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescData = file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDesc
)
func file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescData)
})
return file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDescData
}
var file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_goTypes = []interface{}{
(SignatureAlgorithm)(0), // 0: tokenserver.minter.SignatureAlgorithm
(ErrorCode)(0), // 1: tokenserver.minter.ErrorCode
(ServiceAccountTokenKind)(0), // 2: tokenserver.minter.ServiceAccountTokenKind
(*MintMachineTokenRequest)(nil), // 3: tokenserver.minter.MintMachineTokenRequest
(*MachineTokenRequest)(nil), // 4: tokenserver.minter.MachineTokenRequest
(*MintMachineTokenResponse)(nil), // 5: tokenserver.minter.MintMachineTokenResponse
(*MachineTokenResponse)(nil), // 6: tokenserver.minter.MachineTokenResponse
(*LuciMachineToken)(nil), // 7: tokenserver.minter.LuciMachineToken
(*MintDelegationTokenRequest)(nil), // 8: tokenserver.minter.MintDelegationTokenRequest
(*MintDelegationTokenResponse)(nil), // 9: tokenserver.minter.MintDelegationTokenResponse
(*MintProjectTokenRequest)(nil), // 10: tokenserver.minter.MintProjectTokenRequest
(*MintProjectTokenResponse)(nil), // 11: tokenserver.minter.MintProjectTokenResponse
(*MintServiceAccountTokenRequest)(nil), // 12: tokenserver.minter.MintServiceAccountTokenRequest
(*MintServiceAccountTokenResponse)(nil), // 13: tokenserver.minter.MintServiceAccountTokenResponse
(*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp
(api.MachineTokenType)(0), // 15: tokenserver.MachineTokenType
(*messages.Subtoken)(nil), // 16: messages.Subtoken
}
var file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_depIdxs = []int32{
0, // 0: tokenserver.minter.MachineTokenRequest.signature_algorithm:type_name -> tokenserver.minter.SignatureAlgorithm
14, // 1: tokenserver.minter.MachineTokenRequest.issued_at:type_name -> google.protobuf.Timestamp
15, // 2: tokenserver.minter.MachineTokenRequest.token_type:type_name -> tokenserver.MachineTokenType
1, // 3: tokenserver.minter.MintMachineTokenResponse.error_code:type_name -> tokenserver.minter.ErrorCode
6, // 4: tokenserver.minter.MintMachineTokenResponse.token_response:type_name -> tokenserver.minter.MachineTokenResponse
7, // 5: tokenserver.minter.MachineTokenResponse.luci_machine_token:type_name -> tokenserver.minter.LuciMachineToken
14, // 6: tokenserver.minter.LuciMachineToken.expiry:type_name -> google.protobuf.Timestamp
16, // 7: tokenserver.minter.MintDelegationTokenResponse.delegation_subtoken:type_name -> messages.Subtoken
14, // 8: tokenserver.minter.MintProjectTokenResponse.expiry:type_name -> google.protobuf.Timestamp
2, // 9: tokenserver.minter.MintServiceAccountTokenRequest.token_kind:type_name -> tokenserver.minter.ServiceAccountTokenKind
14, // 10: tokenserver.minter.MintServiceAccountTokenResponse.expiry:type_name -> google.protobuf.Timestamp
3, // 11: tokenserver.minter.TokenMinter.MintMachineToken:input_type -> tokenserver.minter.MintMachineTokenRequest
8, // 12: tokenserver.minter.TokenMinter.MintDelegationToken:input_type -> tokenserver.minter.MintDelegationTokenRequest
10, // 13: tokenserver.minter.TokenMinter.MintProjectToken:input_type -> tokenserver.minter.MintProjectTokenRequest
12, // 14: tokenserver.minter.TokenMinter.MintServiceAccountToken:input_type -> tokenserver.minter.MintServiceAccountTokenRequest
5, // 15: tokenserver.minter.TokenMinter.MintMachineToken:output_type -> tokenserver.minter.MintMachineTokenResponse
9, // 16: tokenserver.minter.TokenMinter.MintDelegationToken:output_type -> tokenserver.minter.MintDelegationTokenResponse
11, // 17: tokenserver.minter.TokenMinter.MintProjectToken:output_type -> tokenserver.minter.MintProjectTokenResponse
13, // 18: tokenserver.minter.TokenMinter.MintServiceAccountToken:output_type -> tokenserver.minter.MintServiceAccountTokenResponse
15, // [15:19] is the sub-list for method output_type
11, // [11:15] is the sub-list for method input_type
11, // [11:11] is the sub-list for extension type_name
11, // [11:11] is the sub-list for extension extendee
0, // [0:11] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_init() }
func file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_init() {
if File_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintMachineTokenRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MachineTokenRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintMachineTokenResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MachineTokenResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LuciMachineToken); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintDelegationTokenRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintDelegationTokenResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintProjectTokenRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintProjectTokenResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintServiceAccountTokenRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MintServiceAccountTokenResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes[3].OneofWrappers = []interface{}{
(*MachineTokenResponse_LuciMachineToken)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDesc,
NumEnums: 3,
NumMessages: 11,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_depIdxs,
EnumInfos: file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_enumTypes,
MessageInfos: file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto = out.File
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_rawDesc = nil
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_goTypes = nil
file_go_chromium_org_luci_tokenserver_api_minter_v1_token_minter_proto_depIdxs = nil
}