blob: 2618dd7a7ad316346183748a15b843026ab966cf [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/admin/v1/config.proto
package admin
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
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)
)
// TokenServerConfig is read from tokenserver.cfg in luci-config.
type TokenServerConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// List of CAs we trust.
CertificateAuthority []*CertificateAuthorityConfig `protobuf:"bytes,1,rep,name=certificate_authority,json=certificateAuthority,proto3" json:"certificate_authority,omitempty"`
}
func (x *TokenServerConfig) Reset() {
*x = TokenServerConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TokenServerConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TokenServerConfig) ProtoMessage() {}
func (x *TokenServerConfig) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_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 TokenServerConfig.ProtoReflect.Descriptor instead.
func (*TokenServerConfig) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP(), []int{0}
}
func (x *TokenServerConfig) GetCertificateAuthority() []*CertificateAuthorityConfig {
if x != nil {
return x.CertificateAuthority
}
return nil
}
// CertificateAuthorityConfig defines a single CA we trust.
//
// Such CA issues certificates for nodes that use The Token Service. Each node
// has a private key and certificate with Common Name set to the FQDN of this
// node, e.g. "CN=slave43-c1.c.chromecompute.google.com.internal".
//
// The Token Server uses this CN to derive an identity string for a machine. It
// splits FQDN into a hostname ("slave43-c1") and a domain name
// ("c.chromecompute.google.com.internal"), searches for a domain name in
// "known_domains" set, and, if it is present, uses parameters described there
// for generating a token that contains machine's FQDN and certificate serial
// number (among other things, see MachineTokenBody in machine_token.proto).
type CertificateAuthorityConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UniqueId int64 `protobuf:"varint,6,opt,name=unique_id,json=uniqueId,proto3" json:"unique_id,omitempty"` // ID of this CA, will be embedded into tokens.
Cn string `protobuf:"bytes,1,opt,name=cn,proto3" json:"cn,omitempty"` // CA Common Name, must match Subject CN in the cert
CertPath string `protobuf:"bytes,2,opt,name=cert_path,json=certPath,proto3" json:"cert_path,omitempty"` // path to the root certificate file in luci-config
CrlUrl string `protobuf:"bytes,3,opt,name=crl_url,json=crlUrl,proto3" json:"crl_url,omitempty"` // where to fetch CRL from
UseOauth bool `protobuf:"varint,4,opt,name=use_oauth,json=useOauth,proto3" json:"use_oauth,omitempty"` // true to send Authorization header when fetching CRL
OauthScopes []string `protobuf:"bytes,7,rep,name=oauth_scopes,json=oauthScopes,proto3" json:"oauth_scopes,omitempty"` // OAuth scopes to use when fetching CRL
// KnownDomains describes parameters to use for each particular domain.
KnownDomains []*DomainConfig `protobuf:"bytes,5,rep,name=known_domains,json=knownDomains,proto3" json:"known_domains,omitempty"`
}
func (x *CertificateAuthorityConfig) Reset() {
*x = CertificateAuthorityConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CertificateAuthorityConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CertificateAuthorityConfig) ProtoMessage() {}
func (x *CertificateAuthorityConfig) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_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 CertificateAuthorityConfig.ProtoReflect.Descriptor instead.
func (*CertificateAuthorityConfig) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP(), []int{1}
}
func (x *CertificateAuthorityConfig) GetUniqueId() int64 {
if x != nil {
return x.UniqueId
}
return 0
}
func (x *CertificateAuthorityConfig) GetCn() string {
if x != nil {
return x.Cn
}
return ""
}
func (x *CertificateAuthorityConfig) GetCertPath() string {
if x != nil {
return x.CertPath
}
return ""
}
func (x *CertificateAuthorityConfig) GetCrlUrl() string {
if x != nil {
return x.CrlUrl
}
return ""
}
func (x *CertificateAuthorityConfig) GetUseOauth() bool {
if x != nil {
return x.UseOauth
}
return false
}
func (x *CertificateAuthorityConfig) GetOauthScopes() []string {
if x != nil {
return x.OauthScopes
}
return nil
}
func (x *CertificateAuthorityConfig) GetKnownDomains() []*DomainConfig {
if x != nil {
return x.KnownDomains
}
return nil
}
// DomainConfig is used inside CertificateAuthorityConfig.
type DomainConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Domain is domain names of hosts this config applies to.
//
// Machines that reside in a subdomain of given domain are also considered
// part of it, e.g. both FQDNs "host.example.com" and "host.abc.example.com"
// match domain "example.com".
Domain []string `protobuf:"bytes,1,rep,name=domain,proto3" json:"domain,omitempty"`
// MachineTokenLifetime is how long generated machine tokens live, in seconds.
//
// If 0, machine tokens are not allowed.
MachineTokenLifetime int64 `protobuf:"varint,5,opt,name=machine_token_lifetime,json=machineTokenLifetime,proto3" json:"machine_token_lifetime,omitempty"`
}
func (x *DomainConfig) Reset() {
*x = DomainConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DomainConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DomainConfig) ProtoMessage() {}
func (x *DomainConfig) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_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 DomainConfig.ProtoReflect.Descriptor instead.
func (*DomainConfig) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP(), []int{2}
}
func (x *DomainConfig) GetDomain() []string {
if x != nil {
return x.Domain
}
return nil
}
func (x *DomainConfig) GetMachineTokenLifetime() int64 {
if x != nil {
return x.MachineTokenLifetime
}
return 0
}
// DelegationPermissions is read from delegation.cfg in luci-config.
type DelegationPermissions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Rules specify what calls to MintDelegationToken are allowed.
//
// Rules are evaluated independently. One and only one rule should match the
// request to allow the operation. If none rules or more than one rule match,
// the request will be denied.
//
// See DelegationRule comments for more details.
Rules []*DelegationRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
}
func (x *DelegationPermissions) Reset() {
*x = DelegationPermissions{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DelegationPermissions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DelegationPermissions) ProtoMessage() {}
func (x *DelegationPermissions) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_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 DelegationPermissions.ProtoReflect.Descriptor instead.
func (*DelegationPermissions) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP(), []int{3}
}
func (x *DelegationPermissions) GetRules() []*DelegationRule {
if x != nil {
return x.Rules
}
return nil
}
// DelegationRule describes a single allowed case of using delegation tokens.
//
// An incoming MintDelegationTokenRequest is basically a tuple of:
// - 'requestor_id' - an identity of whoever makes the request.
// - 'delegated_identity' - an identity to delegate.
// - 'audience' - a set of identities that will be able to use the token.
// - 'services' - a set of services that should accept the token.
//
// A request matches a rule iff:
// - 'requestor_id' is in 'requestor' set.
// - 'delegated_identity' is in 'allowed_to_impersonate' set.
// - 'audience' is a subset of 'allowed_audience' set.
// - 'services' is a subset of 'target_service' set.
//
// The presence of a matching rule permits to mint the token. The rule also
// provides an upper bound on allowed validity_duration, and the rule's name
// is logged in the audit trail.
type DelegationRule struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A descriptive name of this rule, for the audit log.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Email of developers that own this rule, to know who to contact.
Owner []string `protobuf:"bytes,2,rep,name=owner,proto3" json:"owner,omitempty"`
// A set of callers to which this rule applies.
//
// Matched against verified credentials of a caller of MintDelegationToken.
//
// Each element is either:
// - An identity string ("user:<email>").
// - A group reference ("group:<name>").
//
// The groups specified here are expanded when MintDelegationTokenRequest is
// evaluated.
Requestor []string `protobuf:"bytes,3,rep,name=requestor,proto3" json:"requestor,omitempty"`
// Identities that are allowed to be delegated/impersonated by the requestor.
//
// Matched against 'delegated_identity' field of MintDelegationTokenRequest.
//
// Each element is either:
// - An identity string ("user:<email>").
// - A group reference ("group:<name>").
// - A special identifier "REQUESTOR" that is substituted by the requestor
// identity when evaluating the rule.
//
// "REQUESTOR" allows one to generate tokens that delegate their own identity
// to some target audience.
//
// The groups specified here are expanded when MintDelegationTokenRequest is
// evaluated.
AllowedToImpersonate []string `protobuf:"bytes,4,rep,name=allowed_to_impersonate,json=allowedToImpersonate,proto3" json:"allowed_to_impersonate,omitempty"`
// A set of identities that should be able to use the new token.
//
// Matched against 'audience' field of MintDelegationTokenRequest.
//
// Each element is either:
// - An identity string ("user:<email>").
// - A group reference ("group:<name>").
// - A special identifier "REQUESTOR" that is substituted by the requestor
// identity when evaluating the rule.
// - A special token "*" that means "any bearer can use the new token,
// including anonymous".
//
// "REQUESTOR" is typically used here for rules that allow requestors to
// impersonate someone else. The corresponding tokens have the requestor as
// the only allowed audience.
//
// The groups specified here are NOT expanded when MintDelegationTokenRequest
// is evaluated. To match the rule, MintDelegationTokenRequest must specify
// subset of 'allowed_audience' groups explicitly in 'audience' field.
AllowedAudience []string `protobuf:"bytes,5,rep,name=allowed_audience,json=allowedAudience,proto3" json:"allowed_audience,omitempty"`
// A set of services that should be able to accept the new token.
//
// Matched against 'services' field of MintDelegationTokenRequest.
//
// Each element is either:
// - A service identity string ("service:<id>").
// - A special token "*" that mean "any LUCI service should accept the
// token".
TargetService []string `protobuf:"bytes,6,rep,name=target_service,json=targetService,proto3" json:"target_service,omitempty"`
// Maximum allowed validity duration (sec) of minted delegation tokens.
//
// Default is 12 hours.
MaxValidityDuration int64 `protobuf:"varint,7,opt,name=max_validity_duration,json=maxValidityDuration,proto3" json:"max_validity_duration,omitempty"`
}
func (x *DelegationRule) Reset() {
*x = DelegationRule{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DelegationRule) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DelegationRule) ProtoMessage() {}
func (x *DelegationRule) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_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 DelegationRule.ProtoReflect.Descriptor instead.
func (*DelegationRule) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP(), []int{4}
}
func (x *DelegationRule) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *DelegationRule) GetOwner() []string {
if x != nil {
return x.Owner
}
return nil
}
func (x *DelegationRule) GetRequestor() []string {
if x != nil {
return x.Requestor
}
return nil
}
func (x *DelegationRule) GetAllowedToImpersonate() []string {
if x != nil {
return x.AllowedToImpersonate
}
return nil
}
func (x *DelegationRule) GetAllowedAudience() []string {
if x != nil {
return x.AllowedAudience
}
return nil
}
func (x *DelegationRule) GetTargetService() []string {
if x != nil {
return x.TargetService
}
return nil
}
func (x *DelegationRule) GetMaxValidityDuration() int64 {
if x != nil {
return x.MaxValidityDuration
}
return 0
}
// ServiceAccountsProjectMapping defines what service accounts belong to what
// LUCI projects.
//
// Used by MintServiceAccountToken RPC as a final authorization step, after
// checking that the usage of the service account is allowed by Realms ACLs.
//
// This is a stop gap solution until the Token Server learns to use
// project-scoped accounts when calling Cloud IAM. Once this happens, we can
// move information contained in ServiceAccountsProjectMapping into Cloud IAM
// permissions.
//
// This message is stored as project_owned_accounts.cfg in luci-config.
type ServiceAccountsProjectMapping struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Each entry maps a bunch of service accounts to one or more projects.
Mapping []*ServiceAccountsProjectMapping_Mapping `protobuf:"bytes,1,rep,name=mapping,proto3" json:"mapping,omitempty"`
// A list of LUCI project names for which service account impersonation should
// be done using LUCI project-scoped account as a delegate. This allows to
// move "LUCI project => allowed service account" mapping into IAM policies,
// making `mapping` above obsolete.
//
// If a LUCI project belongs to this list, it must not have any entries in
// the `mapping` field above.
UseProjectScopedAccount []string `protobuf:"bytes,2,rep,name=use_project_scoped_account,json=useProjectScopedAccount,proto3" json:"use_project_scoped_account,omitempty"`
}
func (x *ServiceAccountsProjectMapping) Reset() {
*x = ServiceAccountsProjectMapping{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ServiceAccountsProjectMapping) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ServiceAccountsProjectMapping) ProtoMessage() {}
func (x *ServiceAccountsProjectMapping) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_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 ServiceAccountsProjectMapping.ProtoReflect.Descriptor instead.
func (*ServiceAccountsProjectMapping) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP(), []int{5}
}
func (x *ServiceAccountsProjectMapping) GetMapping() []*ServiceAccountsProjectMapping_Mapping {
if x != nil {
return x.Mapping
}
return nil
}
func (x *ServiceAccountsProjectMapping) GetUseProjectScopedAccount() []string {
if x != nil {
return x.UseProjectScopedAccount
}
return nil
}
type ServiceAccountsProjectMapping_Mapping struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Names of LUCI projects.
Project []string `protobuf:"bytes,1,rep,name=project,proto3" json:"project,omitempty"`
// Emails of service accounts allowed to be used by all these projects.
ServiceAccount []string `protobuf:"bytes,2,rep,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
}
func (x *ServiceAccountsProjectMapping_Mapping) Reset() {
*x = ServiceAccountsProjectMapping_Mapping{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ServiceAccountsProjectMapping_Mapping) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ServiceAccountsProjectMapping_Mapping) ProtoMessage() {}
func (x *ServiceAccountsProjectMapping_Mapping) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_tokenserver_api_admin_v1_config_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 ServiceAccountsProjectMapping_Mapping.ProtoReflect.Descriptor instead.
func (*ServiceAccountsProjectMapping_Mapping) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP(), []int{5, 0}
}
func (x *ServiceAccountsProjectMapping_Mapping) GetProject() []string {
if x != nil {
return x.Project
}
return nil
}
func (x *ServiceAccountsProjectMapping_Mapping) GetServiceAccount() []string {
if x != nil {
return x.ServiceAccount
}
return nil
}
var File_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDesc = []byte{
0x0a, 0x3a, 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, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22,
0x77, 0x0a, 0x11, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x12, 0x62, 0x0a, 0x15, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x52, 0x14, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41,
0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x85, 0x02, 0x0a, 0x1a, 0x43, 0x65, 0x72,
0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x75,
0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71,
0x75, 0x65, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x63, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x61, 0x74,
0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x65, 0x72, 0x74, 0x50, 0x61, 0x74,
0x68, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x72, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73,
0x65, 0x5f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75,
0x73, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x61, 0x75, 0x74, 0x68,
0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6f,
0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x6b, 0x6e,
0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x52, 0x0c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73,
0x22, 0x74, 0x0a, 0x0c, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x63, 0x68,
0x69, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x4a, 0x04,
0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05,
0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x50, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x37, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c,
0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x94, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c,
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x74,
0x6f, 0x5f, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20,
0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x49, 0x6d,
0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x41, 0x75, 0x64, 0x69,
0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73,
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61,
0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6d,
0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x56,
0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0xfe, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e,
0x67, 0x12, 0x52, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x38, 0x2e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x70,
0x70, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x6d, 0x61,
0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f,
0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x75, 0x73, 0x65, 0x50, 0x72,
0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x1a, 0x4c, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a,
0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x42, 0x35, 0x5a, 0x33, 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, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76,
0x31, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescData = file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDesc
)
func file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescData)
})
return file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDescData
}
var file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_goTypes = []interface{}{
(*TokenServerConfig)(nil), // 0: tokenserver.admin.TokenServerConfig
(*CertificateAuthorityConfig)(nil), // 1: tokenserver.admin.CertificateAuthorityConfig
(*DomainConfig)(nil), // 2: tokenserver.admin.DomainConfig
(*DelegationPermissions)(nil), // 3: tokenserver.admin.DelegationPermissions
(*DelegationRule)(nil), // 4: tokenserver.admin.DelegationRule
(*ServiceAccountsProjectMapping)(nil), // 5: tokenserver.admin.ServiceAccountsProjectMapping
(*ServiceAccountsProjectMapping_Mapping)(nil), // 6: tokenserver.admin.ServiceAccountsProjectMapping.Mapping
}
var file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_depIdxs = []int32{
1, // 0: tokenserver.admin.TokenServerConfig.certificate_authority:type_name -> tokenserver.admin.CertificateAuthorityConfig
2, // 1: tokenserver.admin.CertificateAuthorityConfig.known_domains:type_name -> tokenserver.admin.DomainConfig
4, // 2: tokenserver.admin.DelegationPermissions.rules:type_name -> tokenserver.admin.DelegationRule
6, // 3: tokenserver.admin.ServiceAccountsProjectMapping.mapping:type_name -> tokenserver.admin.ServiceAccountsProjectMapping.Mapping
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_init() }
func file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_init() {
if File_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TokenServerConfig); 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_admin_v1_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CertificateAuthorityConfig); 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_admin_v1_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DomainConfig); 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_admin_v1_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DelegationPermissions); 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_admin_v1_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DelegationRule); 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_admin_v1_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ServiceAccountsProjectMapping); 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_admin_v1_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ServiceAccountsProjectMapping_Mapping); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDesc,
NumEnums: 0,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_depIdxs,
MessageInfos: file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto = out.File
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_rawDesc = nil
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_goTypes = nil
file_go_chromium_org_luci_tokenserver_api_admin_v1_config_proto_depIdxs = nil
}