// Copyright IBM Corp. 2020, 2026
// SPDX-License-Identifier: MPL-2.0

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        (unknown)
// source: controller/api/resources/authtokens/v1/authtoken.proto

package authtokens

import (
	scopes "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/scopes"
	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"
	unsafe "unsafe"
)

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)
)

// AuthToken contains all fields related to an Auth Token resource
type AuthToken struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Output only. The ID of the Auth Token.
	Id string `protobuf:"bytes,10,opt,name=id,proto3" json:"id,omitempty" class:"public" eventstream:"observation"` // @gotags: `class:"public" eventstream:"observation"`
	// The Scope in which this Auth Token was generated.
	ScopeId string `protobuf:"bytes,20,opt,name=scope_id,proto3" json:"scope_id,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. Scope information for this resource.
	Scope *scopes.ScopeInfo `protobuf:"bytes,30,opt,name=scope,proto3" json:"scope,omitempty"`
	// Output only. The token value, which will only be populated after authentication and is only ever visible to the end user whose login request resulted in this Auth Token being created.
	Token string `protobuf:"bytes,40,opt,name=token,proto3" json:"token,omitempty" class:"secret"` // @gotags: `class:"secret"`
	// Output only. The ID of the User associated with this Auth Token.
	UserId string `protobuf:"bytes,50,opt,name=user_id,proto3" json:"user_id,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The ID of the Auth Method associated with this Auth Token.
	AuthMethodId string `protobuf:"bytes,60,opt,name=auth_method_id,proto3" json:"auth_method_id,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The ID of the Account associated with this Auth Token.
	AccountId string `protobuf:"bytes,70,opt,name=account_id,proto3" json:"account_id,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The time this resource was created.
	CreatedTime *timestamppb.Timestamp `protobuf:"bytes,80,opt,name=created_time,proto3" json:"created_time,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The time this resource was last updated.
	UpdatedTime *timestamppb.Timestamp `protobuf:"bytes,90,opt,name=updated_time,proto3" json:"updated_time,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The approximate time this Auth Token was last used.
	ApproximateLastUsedTime *timestamppb.Timestamp `protobuf:"bytes,100,opt,name=approximate_last_used_time,proto3" json:"approximate_last_used_time,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The time this Auth Token expires.
	ExpirationTime *timestamppb.Timestamp `protobuf:"bytes,110,opt,name=expiration_time,proto3" json:"expiration_time,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The available actions on this resource for this user.
	AuthorizedActions []string `protobuf:"bytes,300,rep,name=authorized_actions,proto3" json:"authorized_actions,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *AuthToken) Reset() {
	*x = AuthToken{}
	mi := &file_controller_api_resources_authtokens_v1_authtoken_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AuthToken) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AuthToken) ProtoMessage() {}

func (x *AuthToken) ProtoReflect() protoreflect.Message {
	mi := &file_controller_api_resources_authtokens_v1_authtoken_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AuthToken.ProtoReflect.Descriptor instead.
func (*AuthToken) Descriptor() ([]byte, []int) {
	return file_controller_api_resources_authtokens_v1_authtoken_proto_rawDescGZIP(), []int{0}
}

func (x *AuthToken) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *AuthToken) GetScopeId() string {
	if x != nil {
		return x.ScopeId
	}
	return ""
}

func (x *AuthToken) GetScope() *scopes.ScopeInfo {
	if x != nil {
		return x.Scope
	}
	return nil
}

func (x *AuthToken) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *AuthToken) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *AuthToken) GetAuthMethodId() string {
	if x != nil {
		return x.AuthMethodId
	}
	return ""
}

func (x *AuthToken) GetAccountId() string {
	if x != nil {
		return x.AccountId
	}
	return ""
}

func (x *AuthToken) GetCreatedTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedTime
	}
	return nil
}

func (x *AuthToken) GetUpdatedTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedTime
	}
	return nil
}

func (x *AuthToken) GetApproximateLastUsedTime() *timestamppb.Timestamp {
	if x != nil {
		return x.ApproximateLastUsedTime
	}
	return nil
}

func (x *AuthToken) GetExpirationTime() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpirationTime
	}
	return nil
}

func (x *AuthToken) GetAuthorizedActions() []string {
	if x != nil {
		return x.AuthorizedActions
	}
	return nil
}

var File_controller_api_resources_authtokens_v1_authtoken_proto protoreflect.FileDescriptor

const file_controller_api_resources_authtokens_v1_authtoken_proto_rawDesc = "" +
	"\n" +
	"6controller/api/resources/authtokens/v1/authtoken.proto\x12&controller.api.resources.authtokens.v1\x1a.controller/api/resources/scopes/v1/scope.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc7\x04\n" +
	"\tAuthToken\x12\x0e\n" +
	"\x02id\x18\n" +
	" \x01(\tR\x02id\x12\x1a\n" +
	"\bscope_id\x18\x14 \x01(\tR\bscope_id\x12C\n" +
	"\x05scope\x18\x1e \x01(\v2-.controller.api.resources.scopes.v1.ScopeInfoR\x05scope\x12\x14\n" +
	"\x05token\x18( \x01(\tR\x05token\x12\x18\n" +
	"\auser_id\x182 \x01(\tR\auser_id\x12&\n" +
	"\x0eauth_method_id\x18< \x01(\tR\x0eauth_method_id\x12\x1e\n" +
	"\n" +
	"account_id\x18F \x01(\tR\n" +
	"account_id\x12>\n" +
	"\fcreated_time\x18P \x01(\v2\x1a.google.protobuf.TimestampR\fcreated_time\x12>\n" +
	"\fupdated_time\x18Z \x01(\v2\x1a.google.protobuf.TimestampR\fupdated_time\x12Z\n" +
	"\x1aapproximate_last_used_time\x18d \x01(\v2\x1a.google.protobuf.TimestampR\x1aapproximate_last_used_time\x12D\n" +
	"\x0fexpiration_time\x18n \x01(\v2\x1a.google.protobuf.TimestampR\x0fexpiration_time\x12/\n" +
	"\x12authorized_actions\x18\xac\x02 \x03(\tR\x12authorized_actionsBVZTgithub.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authtokens;authtokensb\x06proto3"

var (
	file_controller_api_resources_authtokens_v1_authtoken_proto_rawDescOnce sync.Once
	file_controller_api_resources_authtokens_v1_authtoken_proto_rawDescData []byte
)

func file_controller_api_resources_authtokens_v1_authtoken_proto_rawDescGZIP() []byte {
	file_controller_api_resources_authtokens_v1_authtoken_proto_rawDescOnce.Do(func() {
		file_controller_api_resources_authtokens_v1_authtoken_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_controller_api_resources_authtokens_v1_authtoken_proto_rawDesc), len(file_controller_api_resources_authtokens_v1_authtoken_proto_rawDesc)))
	})
	return file_controller_api_resources_authtokens_v1_authtoken_proto_rawDescData
}

var file_controller_api_resources_authtokens_v1_authtoken_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_controller_api_resources_authtokens_v1_authtoken_proto_goTypes = []any{
	(*AuthToken)(nil),             // 0: controller.api.resources.authtokens.v1.AuthToken
	(*scopes.ScopeInfo)(nil),      // 1: controller.api.resources.scopes.v1.ScopeInfo
	(*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp
}
var file_controller_api_resources_authtokens_v1_authtoken_proto_depIdxs = []int32{
	1, // 0: controller.api.resources.authtokens.v1.AuthToken.scope:type_name -> controller.api.resources.scopes.v1.ScopeInfo
	2, // 1: controller.api.resources.authtokens.v1.AuthToken.created_time:type_name -> google.protobuf.Timestamp
	2, // 2: controller.api.resources.authtokens.v1.AuthToken.updated_time:type_name -> google.protobuf.Timestamp
	2, // 3: controller.api.resources.authtokens.v1.AuthToken.approximate_last_used_time:type_name -> google.protobuf.Timestamp
	2, // 4: controller.api.resources.authtokens.v1.AuthToken.expiration_time:type_name -> google.protobuf.Timestamp
	5, // [5:5] is the sub-list for method output_type
	5, // [5:5] is the sub-list for method input_type
	5, // [5:5] is the sub-list for extension type_name
	5, // [5:5] is the sub-list for extension extendee
	0, // [0:5] is the sub-list for field type_name
}

func init() { file_controller_api_resources_authtokens_v1_authtoken_proto_init() }
func file_controller_api_resources_authtokens_v1_authtoken_proto_init() {
	if File_controller_api_resources_authtokens_v1_authtoken_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_controller_api_resources_authtokens_v1_authtoken_proto_rawDesc), len(file_controller_api_resources_authtokens_v1_authtoken_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_controller_api_resources_authtokens_v1_authtoken_proto_goTypes,
		DependencyIndexes: file_controller_api_resources_authtokens_v1_authtoken_proto_depIdxs,
		MessageInfos:      file_controller_api_resources_authtokens_v1_authtoken_proto_msgTypes,
	}.Build()
	File_controller_api_resources_authtokens_v1_authtoken_proto = out.File
	file_controller_api_resources_authtokens_v1_authtoken_proto_goTypes = nil
	file_controller_api_resources_authtokens_v1_authtoken_proto_depIdxs = nil
}
