// 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/credentials/v1/credential.proto

package credentials

import (
	scopes "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/scopes"
	_ "github.com/hashicorp/boundary/sdk/pbs/controller/protooptions"
	_ "google.golang.org/genproto/googleapis/api/visibility"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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)
)

// Credential contains all fields related to an Credential resource
type Credential struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Output only. The ID of the Credential.
	Id string `protobuf:"bytes,10,opt,name=id,proto3" json:"id,omitempty" class:"public"` // @gotags: `class:"public"`
	// The ID of the Credential Store of which this Credential is a part.
	CredentialStoreId string `protobuf:"bytes,20,opt,name=credential_store_id,proto3" json:"credential_store_id,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. Scope information for this Credential.
	Scope *scopes.ScopeInfo `protobuf:"bytes,30,opt,name=scope,proto3" json:"scope,omitempty"`
	// Optional name for identification purposes.
	Name *wrapperspb.StringValue `protobuf:"bytes,40,opt,name=name,proto3" json:"name,omitempty" class:"public"` // @gotags: `class:"public"`
	// Optional user-set description for identification purposes.
	Description *wrapperspb.StringValue `protobuf:"bytes,50,opt,name=description,proto3" json:"description,omitempty" class:"public"` // @gotags: `class:"public"`
	// Output only. The time this resource was created.
	CreatedTime *timestamppb.Timestamp `protobuf:"bytes,60,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,70,opt,name=updated_time,proto3" json:"updated_time,omitempty" class:"public"` // @gotags: `class:"public"`
	// Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.
	// The mutation will fail if the version does not match the latest known good version.
	Version uint32 `protobuf:"varint,80,opt,name=version,proto3" json:"version,omitempty" class:"public"` // @gotags: `class:"public"`
	// The Credential type.
	Type string `protobuf:"bytes,90,opt,name=type,proto3" json:"type,omitempty" class:"public"` // @gotags: `class:"public"`
	// Types that are valid to be assigned to Attrs:
	//
	//	*Credential_Attributes
	//	*Credential_UsernamePasswordAttributes
	//	*Credential_SshPrivateKeyAttributes
	//	*Credential_JsonAttributes
	//	*Credential_UsernamePasswordDomainAttributes
	//	*Credential_PasswordAttributes
	Attrs isCredential_Attrs `protobuf_oneof:"attrs"`
	// 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 *Credential) Reset() {
	*x = Credential{}
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Credential) ProtoMessage() {}

func (x *Credential) ProtoReflect() protoreflect.Message {
	mi := &file_controller_api_resources_credentials_v1_credential_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 Credential.ProtoReflect.Descriptor instead.
func (*Credential) Descriptor() ([]byte, []int) {
	return file_controller_api_resources_credentials_v1_credential_proto_rawDescGZIP(), []int{0}
}

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

func (x *Credential) GetCredentialStoreId() string {
	if x != nil {
		return x.CredentialStoreId
	}
	return ""
}

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

func (x *Credential) GetName() *wrapperspb.StringValue {
	if x != nil {
		return x.Name
	}
	return nil
}

func (x *Credential) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

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

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

func (x *Credential) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *Credential) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Credential) GetAttrs() isCredential_Attrs {
	if x != nil {
		return x.Attrs
	}
	return nil
}

func (x *Credential) GetAttributes() *structpb.Struct {
	if x != nil {
		if x, ok := x.Attrs.(*Credential_Attributes); ok {
			return x.Attributes
		}
	}
	return nil
}

func (x *Credential) GetUsernamePasswordAttributes() *UsernamePasswordAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*Credential_UsernamePasswordAttributes); ok {
			return x.UsernamePasswordAttributes
		}
	}
	return nil
}

func (x *Credential) GetSshPrivateKeyAttributes() *SshPrivateKeyAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*Credential_SshPrivateKeyAttributes); ok {
			return x.SshPrivateKeyAttributes
		}
	}
	return nil
}

func (x *Credential) GetJsonAttributes() *JsonAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*Credential_JsonAttributes); ok {
			return x.JsonAttributes
		}
	}
	return nil
}

func (x *Credential) GetUsernamePasswordDomainAttributes() *UsernamePasswordDomainAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*Credential_UsernamePasswordDomainAttributes); ok {
			return x.UsernamePasswordDomainAttributes
		}
	}
	return nil
}

func (x *Credential) GetPasswordAttributes() *PasswordAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*Credential_PasswordAttributes); ok {
			return x.PasswordAttributes
		}
	}
	return nil
}

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

type isCredential_Attrs interface {
	isCredential_Attrs()
}

type Credential_Attributes struct {
	// The attributes that are applicable for the specific Credential type.
	Attributes *structpb.Struct `protobuf:"bytes,100,opt,name=attributes,proto3,oneof"`
}

type Credential_UsernamePasswordAttributes struct {
	UsernamePasswordAttributes *UsernamePasswordAttributes `protobuf:"bytes,101,opt,name=username_password_attributes,json=usernamePasswordAttributes,proto3,oneof"`
}

type Credential_SshPrivateKeyAttributes struct {
	SshPrivateKeyAttributes *SshPrivateKeyAttributes `protobuf:"bytes,102,opt,name=ssh_private_key_attributes,json=sshPrivateKeyAttributes,proto3,oneof"`
}

type Credential_JsonAttributes struct {
	JsonAttributes *JsonAttributes `protobuf:"bytes,103,opt,name=json_attributes,json=jsonAttributes,proto3,oneof"`
}

type Credential_UsernamePasswordDomainAttributes struct {
	UsernamePasswordDomainAttributes *UsernamePasswordDomainAttributes `protobuf:"bytes,104,opt,name=username_password_domain_attributes,json=usernamePasswordDomainAttributes,proto3,oneof"`
}

type Credential_PasswordAttributes struct {
	PasswordAttributes *PasswordAttributes `protobuf:"bytes,105,opt,name=password_attributes,json=passwordAttributes,proto3,oneof"`
}

func (*Credential_Attributes) isCredential_Attrs() {}

func (*Credential_UsernamePasswordAttributes) isCredential_Attrs() {}

func (*Credential_SshPrivateKeyAttributes) isCredential_Attrs() {}

func (*Credential_JsonAttributes) isCredential_Attrs() {}

func (*Credential_UsernamePasswordDomainAttributes) isCredential_Attrs() {}

func (*Credential_PasswordAttributes) isCredential_Attrs() {}

// The attributes of a UsernamePassword Credential.
type UsernamePasswordAttributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The username associated with the credential.
	Username *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=username,proto3" json:"username,omitempty" class:"sensitive"` // @gotags: `class:"sensitive"`
	// Input only. The password associated with the credential.
	Password *wrapperspb.StringValue `protobuf:"bytes,20,opt,name=password,proto3" json:"password,omitempty" class:"secret"` // @gotags: `class:"secret"`
	// Output only. The hmac value of the password.
	PasswordHmac  string `protobuf:"bytes,30,opt,name=password_hmac,proto3" json:"password_hmac,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UsernamePasswordAttributes) Reset() {
	*x = UsernamePasswordAttributes{}
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UsernamePasswordAttributes) ProtoMessage() {}

func (x *UsernamePasswordAttributes) ProtoReflect() protoreflect.Message {
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[1]
	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 UsernamePasswordAttributes.ProtoReflect.Descriptor instead.
func (*UsernamePasswordAttributes) Descriptor() ([]byte, []int) {
	return file_controller_api_resources_credentials_v1_credential_proto_rawDescGZIP(), []int{1}
}

func (x *UsernamePasswordAttributes) GetUsername() *wrapperspb.StringValue {
	if x != nil {
		return x.Username
	}
	return nil
}

func (x *UsernamePasswordAttributes) GetPassword() *wrapperspb.StringValue {
	if x != nil {
		return x.Password
	}
	return nil
}

func (x *UsernamePasswordAttributes) GetPasswordHmac() string {
	if x != nil {
		return x.PasswordHmac
	}
	return ""
}

type UsernamePasswordDomainAttributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The username associated with the credential.
	Username *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=username,proto3" json:"username,omitempty" class:"sensitive"` // @gotags: `class:"sensitive"`
	// Input only. The password associated with the credential.
	Password *wrapperspb.StringValue `protobuf:"bytes,20,opt,name=password,proto3" json:"password,omitempty" class:"secret"` // @gotags: `class:"secret"`
	// Output only. The hmac value of the password.
	PasswordHmac  string                  `protobuf:"bytes,30,opt,name=password_hmac,proto3" json:"password_hmac,omitempty" class:"public"` // @gotags: `class:"public"`
	Domain        *wrapperspb.StringValue `protobuf:"bytes,40,opt,name=domain,proto3" json:"domain,omitempty" class:"public"`               // @gotags: `class:"public"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UsernamePasswordDomainAttributes) Reset() {
	*x = UsernamePasswordDomainAttributes{}
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UsernamePasswordDomainAttributes) ProtoMessage() {}

func (x *UsernamePasswordDomainAttributes) ProtoReflect() protoreflect.Message {
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[2]
	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 UsernamePasswordDomainAttributes.ProtoReflect.Descriptor instead.
func (*UsernamePasswordDomainAttributes) Descriptor() ([]byte, []int) {
	return file_controller_api_resources_credentials_v1_credential_proto_rawDescGZIP(), []int{2}
}

func (x *UsernamePasswordDomainAttributes) GetUsername() *wrapperspb.StringValue {
	if x != nil {
		return x.Username
	}
	return nil
}

func (x *UsernamePasswordDomainAttributes) GetPassword() *wrapperspb.StringValue {
	if x != nil {
		return x.Password
	}
	return nil
}

func (x *UsernamePasswordDomainAttributes) GetPasswordHmac() string {
	if x != nil {
		return x.PasswordHmac
	}
	return ""
}

func (x *UsernamePasswordDomainAttributes) GetDomain() *wrapperspb.StringValue {
	if x != nil {
		return x.Domain
	}
	return nil
}

// The attributes of a Password Credential.
type PasswordAttributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Input only. The password associated with the credential.
	Password *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=password,proto3" json:"password,omitempty" class:"secret"` // @gotags: `class:"secret"`
	// Output only. The hmac value of the password.
	PasswordHmac  string `protobuf:"bytes,20,opt,name=password_hmac,proto3" json:"password_hmac,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PasswordAttributes) Reset() {
	*x = PasswordAttributes{}
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PasswordAttributes) ProtoMessage() {}

func (x *PasswordAttributes) ProtoReflect() protoreflect.Message {
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[3]
	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 PasswordAttributes.ProtoReflect.Descriptor instead.
func (*PasswordAttributes) Descriptor() ([]byte, []int) {
	return file_controller_api_resources_credentials_v1_credential_proto_rawDescGZIP(), []int{3}
}

func (x *PasswordAttributes) GetPassword() *wrapperspb.StringValue {
	if x != nil {
		return x.Password
	}
	return nil
}

func (x *PasswordAttributes) GetPasswordHmac() string {
	if x != nil {
		return x.PasswordHmac
	}
	return ""
}

// The attributes of a SshPrivateKey Credential.
type SshPrivateKeyAttributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The username associated with the credential.
	Username *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=username,proto3" json:"username,omitempty" class:"sensitive"` // @gotags: `class:"sensitive"`
	// Input only. The SSH private key associated with the credential.
	PrivateKey *wrapperspb.StringValue `protobuf:"bytes,20,opt,name=private_key,proto3" json:"private_key,omitempty" class:"secret"` // @gotags: `class:"secret"`
	// Output only. The hmac value of the SSH private key.
	PrivateKeyHmac string `protobuf:"bytes,30,opt,name=private_key_hmac,proto3" json:"private_key_hmac,omitempty" class:"public"` // @gotags: `class:"public"`
	// Input only. The passphrase for the SSH private key associated with the credential.
	PrivateKeyPassphrase *wrapperspb.StringValue `protobuf:"bytes,40,opt,name=private_key_passphrase,proto3" json:"private_key_passphrase,omitempty" class:"secret"` // @gotags: `class:"secret"`
	// Output only. The hmac value of the SSH private key passphrase.
	PrivateKeyPassphraseHmac string `protobuf:"bytes,50,opt,name=private_key_passphrase_hmac,proto3" json:"private_key_passphrase_hmac,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

func (x *SshPrivateKeyAttributes) Reset() {
	*x = SshPrivateKeyAttributes{}
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SshPrivateKeyAttributes) ProtoMessage() {}

func (x *SshPrivateKeyAttributes) ProtoReflect() protoreflect.Message {
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[4]
	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 SshPrivateKeyAttributes.ProtoReflect.Descriptor instead.
func (*SshPrivateKeyAttributes) Descriptor() ([]byte, []int) {
	return file_controller_api_resources_credentials_v1_credential_proto_rawDescGZIP(), []int{4}
}

func (x *SshPrivateKeyAttributes) GetUsername() *wrapperspb.StringValue {
	if x != nil {
		return x.Username
	}
	return nil
}

func (x *SshPrivateKeyAttributes) GetPrivateKey() *wrapperspb.StringValue {
	if x != nil {
		return x.PrivateKey
	}
	return nil
}

func (x *SshPrivateKeyAttributes) GetPrivateKeyHmac() string {
	if x != nil {
		return x.PrivateKeyHmac
	}
	return ""
}

func (x *SshPrivateKeyAttributes) GetPrivateKeyPassphrase() *wrapperspb.StringValue {
	if x != nil {
		return x.PrivateKeyPassphrase
	}
	return nil
}

func (x *SshPrivateKeyAttributes) GetPrivateKeyPassphraseHmac() string {
	if x != nil {
		return x.PrivateKeyPassphraseHmac
	}
	return ""
}

// The attributes of a JSON Credential.
type JsonAttributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Input only. The secret associated with the credential.
	Object *structpb.Struct `protobuf:"bytes,10,opt,name=object,proto3" json:"object,omitempty" class:"secret"` // @gotags: `class:"secret"`
	// Output only. The hmac value of the object.
	ObjectHmac    string `protobuf:"bytes,20,opt,name=object_hmac,proto3" json:"object_hmac,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *JsonAttributes) Reset() {
	*x = JsonAttributes{}
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*JsonAttributes) ProtoMessage() {}

func (x *JsonAttributes) ProtoReflect() protoreflect.Message {
	mi := &file_controller_api_resources_credentials_v1_credential_proto_msgTypes[5]
	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 JsonAttributes.ProtoReflect.Descriptor instead.
func (*JsonAttributes) Descriptor() ([]byte, []int) {
	return file_controller_api_resources_credentials_v1_credential_proto_rawDescGZIP(), []int{5}
}

func (x *JsonAttributes) GetObject() *structpb.Struct {
	if x != nil {
		return x.Object
	}
	return nil
}

func (x *JsonAttributes) GetObjectHmac() string {
	if x != nil {
		return x.ObjectHmac
	}
	return ""
}

var File_controller_api_resources_credentials_v1_credential_proto protoreflect.FileDescriptor

const file_controller_api_resources_credentials_v1_credential_proto_rawDesc = "" +
	"\n" +
	"8controller/api/resources/credentials/v1/credential.proto\x12'controller.api.resources.credentials.v1\x1a.controller/api/resources/scopes/v1/scope.proto\x1a*controller/custom_options/v1/options.proto\x1a\x1bgoogle/api/visibility.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb8\v\n" +
	"\n" +
	"Credential\x12\x0e\n" +
	"\x02id\x18\n" +
	" \x01(\tR\x02id\x120\n" +
	"\x13credential_store_id\x18\x14 \x01(\tR\x13credential_store_id\x12C\n" +
	"\x05scope\x18\x1e \x01(\v2-.controller.api.resources.scopes.v1.ScopeInfoR\x05scope\x12F\n" +
	"\x04name\x18( \x01(\v2\x1c.google.protobuf.StringValueB\x14\xa0\xda)\x01\xc2\xdd)\f\n" +
	"\x04name\x12\x04NameR\x04name\x12b\n" +
	"\vdescription\x182 \x01(\v2\x1c.google.protobuf.StringValueB\"\xa0\xda)\x01\xc2\xdd)\x1a\n" +
	"\vdescription\x12\vDescriptionR\vdescription\x12>\n" +
	"\fcreated_time\x18< \x01(\v2\x1a.google.protobuf.TimestampR\fcreated_time\x12>\n" +
	"\fupdated_time\x18F \x01(\v2\x1a.google.protobuf.TimestampR\fupdated_time\x12\x18\n" +
	"\aversion\x18P \x01(\rR\aversion\x12\x12\n" +
	"\x04type\x18Z \x01(\tR\x04type\x12J\n" +
	"\n" +
	"attributes\x18d \x01(\v2\x17.google.protobuf.StructB\x0f\xa0\xda)\x01\x9a\xe3)\adefaultH\x00R\n" +
	"attributes\x12\xb2\x01\n" +
	"\x1cusername_password_attributes\x18e \x01(\v2C.controller.api.resources.credentials.v1.UsernamePasswordAttributesB)\xa0\xda)\x01\x9a\xe3)\x11username_password\xfa\xd2\xe4\x93\x02\n" +
	"\x12\bINTERNALH\x00R\x1ausernamePasswordAttributes\x12\xa8\x01\n" +
	"\x1assh_private_key_attributes\x18f \x01(\v2@.controller.api.resources.credentials.v1.SshPrivateKeyAttributesB'\xa0\xda)\x01\x9a\xe3)\x0fssh_private_key\xfa\xd2\xe4\x93\x02\n" +
	"\x12\bINTERNALH\x00R\x17sshPrivateKeyAttributes\x12\x80\x01\n" +
	"\x0fjson_attributes\x18g \x01(\v27.controller.api.resources.credentials.v1.JsonAttributesB\x1c\xa0\xda)\x01\x9a\xe3)\x04json\xfa\xd2\xe4\x93\x02\n" +
	"\x12\bINTERNALH\x00R\x0ejsonAttributes\x12\xcc\x01\n" +
	"#username_password_domain_attributes\x18h \x01(\v2I.controller.api.resources.credentials.v1.UsernamePasswordDomainAttributesB0\xa0\xda)\x01\x9a\xe3)\x18username_password_domain\xfa\xd2\xe4\x93\x02\n" +
	"\x12\bINTERNALH\x00R usernamePasswordDomainAttributes\x12\x90\x01\n" +
	"\x13password_attributes\x18i \x01(\v2;.controller.api.resources.credentials.v1.PasswordAttributesB \xa0\xda)\x01\x9a\xe3)\bpassword\xfa\xd2\xe4\x93\x02\n" +
	"\x12\bINTERNALH\x00R\x12passwordAttributes\x12/\n" +
	"\x12authorized_actions\x18\xac\x02 \x03(\tR\x12authorized_actionsB\a\n" +
	"\x05attrs\"\xb6\x02\n" +
	"\x1aUsernamePasswordAttributes\x12a\n" +
	"\busername\x18\n" +
	" \x01(\v2\x1c.google.protobuf.StringValueB'\xa0\xda)\x01\xc2\xdd)\x1f\n" +
	"\x13attributes.username\x12\bUsernameR\busername\x12a\n" +
	"\bpassword\x18\x14 \x01(\v2\x1c.google.protobuf.StringValueB'\xa0\xda)\x01\xc2\xdd)\x1f\n" +
	"\x13attributes.password\x12\bPasswordR\bpassword\x12R\n" +
	"\rpassword_hmac\x18\x1e \x01(\tB,\xc2\xdd)(\n" +
	"\x18attributes.password_hmac\x12\fPasswordHmacR\rpassword_hmac\"\x97\x03\n" +
	" UsernamePasswordDomainAttributes\x12a\n" +
	"\busername\x18\n" +
	" \x01(\v2\x1c.google.protobuf.StringValueB'\xa0\xda)\x01\xc2\xdd)\x1f\n" +
	"\x13attributes.username\x12\bUsernameR\busername\x12a\n" +
	"\bpassword\x18\x14 \x01(\v2\x1c.google.protobuf.StringValueB'\xa0\xda)\x01\xc2\xdd)\x1f\n" +
	"\x13attributes.password\x12\bPasswordR\bpassword\x12R\n" +
	"\rpassword_hmac\x18\x1e \x01(\tB,\xc2\xdd)(\n" +
	"\x18attributes.password_hmac\x12\fPasswordHmacR\rpassword_hmac\x12Y\n" +
	"\x06domain\x18( \x01(\v2\x1c.google.protobuf.StringValueB#\xa0\xda)\x01\xc2\xdd)\x1b\n" +
	"\x11attributes.domain\x12\x06DomainR\x06domain\"\xcb\x01\n" +
	"\x12PasswordAttributes\x12a\n" +
	"\bpassword\x18\n" +
	" \x01(\v2\x1c.google.protobuf.StringValueB'\xa0\xda)\x01\xc2\xdd)\x1f\n" +
	"\x13attributes.password\x12\bPasswordR\bpassword\x12R\n" +
	"\rpassword_hmac\x18\x14 \x01(\tB,\xc2\xdd)(\n" +
	"\x18attributes.password_hmac\x12\fPasswordHmacR\rpassword_hmac\"\xee\x04\n" +
	"\x17SshPrivateKeyAttributes\x12a\n" +
	"\busername\x18\n" +
	" \x01(\v2\x1c.google.protobuf.StringValueB'\xa0\xda)\x01\xc2\xdd)\x1f\n" +
	"\x13attributes.username\x12\bUsernameR\busername\x12l\n" +
	"\vprivate_key\x18\x14 \x01(\v2\x1c.google.protobuf.StringValueB,\xa0\xda)\x01\xc2\xdd)$\n" +
	"\x16attributes.private_key\x12\n" +
	"PrivateKeyR\vprivate_key\x12]\n" +
	"\x10private_key_hmac\x18\x1e \x01(\tB1\xc2\xdd)-\n" +
	"\x1battributes.private_key_hmac\x12\x0ePrivateKeyHmacR\x10private_key_hmac\x12\x97\x01\n" +
	"\x16private_key_passphrase\x18( \x01(\v2\x1c.google.protobuf.StringValueBA\xa0\xda)\x01\xc2\xdd)9\n" +
	"!attributes.private_key_passphrase\x12\x14PrivateKeyPassphraseR\x16private_key_passphrase\x12\x88\x01\n" +
	"\x1bprivate_key_passphrase_hmac\x182 \x01(\tBF\xc2\xdd)B\n" +
	"&attributes.private_key_passphrase_hmac\x12\x18PrivateKeyPassphraseHmacR\x1bprivate_key_passphrase_hmac\"\xb2\x01\n" +
	"\x0eJsonAttributes\x12T\n" +
	"\x06object\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructB#\xa0\xda)\x01\xc2\xdd)\x1b\n" +
	"\x11attributes.object\x12\x06ObjectR\x06object\x12J\n" +
	"\vobject_hmac\x18\x14 \x01(\tB(\xc2\xdd)$\n" +
	"\x16attributes.object_hmac\x12\n" +
	"ObjectHmacR\vobject_hmacBXZVgithub.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentials;credentialsb\x06proto3"

var (
	file_controller_api_resources_credentials_v1_credential_proto_rawDescOnce sync.Once
	file_controller_api_resources_credentials_v1_credential_proto_rawDescData []byte
)

func file_controller_api_resources_credentials_v1_credential_proto_rawDescGZIP() []byte {
	file_controller_api_resources_credentials_v1_credential_proto_rawDescOnce.Do(func() {
		file_controller_api_resources_credentials_v1_credential_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_controller_api_resources_credentials_v1_credential_proto_rawDesc), len(file_controller_api_resources_credentials_v1_credential_proto_rawDesc)))
	})
	return file_controller_api_resources_credentials_v1_credential_proto_rawDescData
}

var file_controller_api_resources_credentials_v1_credential_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_controller_api_resources_credentials_v1_credential_proto_goTypes = []any{
	(*Credential)(nil),                       // 0: controller.api.resources.credentials.v1.Credential
	(*UsernamePasswordAttributes)(nil),       // 1: controller.api.resources.credentials.v1.UsernamePasswordAttributes
	(*UsernamePasswordDomainAttributes)(nil), // 2: controller.api.resources.credentials.v1.UsernamePasswordDomainAttributes
	(*PasswordAttributes)(nil),               // 3: controller.api.resources.credentials.v1.PasswordAttributes
	(*SshPrivateKeyAttributes)(nil),          // 4: controller.api.resources.credentials.v1.SshPrivateKeyAttributes
	(*JsonAttributes)(nil),                   // 5: controller.api.resources.credentials.v1.JsonAttributes
	(*scopes.ScopeInfo)(nil),                 // 6: controller.api.resources.scopes.v1.ScopeInfo
	(*wrapperspb.StringValue)(nil),           // 7: google.protobuf.StringValue
	(*timestamppb.Timestamp)(nil),            // 8: google.protobuf.Timestamp
	(*structpb.Struct)(nil),                  // 9: google.protobuf.Struct
}
var file_controller_api_resources_credentials_v1_credential_proto_depIdxs = []int32{
	6,  // 0: controller.api.resources.credentials.v1.Credential.scope:type_name -> controller.api.resources.scopes.v1.ScopeInfo
	7,  // 1: controller.api.resources.credentials.v1.Credential.name:type_name -> google.protobuf.StringValue
	7,  // 2: controller.api.resources.credentials.v1.Credential.description:type_name -> google.protobuf.StringValue
	8,  // 3: controller.api.resources.credentials.v1.Credential.created_time:type_name -> google.protobuf.Timestamp
	8,  // 4: controller.api.resources.credentials.v1.Credential.updated_time:type_name -> google.protobuf.Timestamp
	9,  // 5: controller.api.resources.credentials.v1.Credential.attributes:type_name -> google.protobuf.Struct
	1,  // 6: controller.api.resources.credentials.v1.Credential.username_password_attributes:type_name -> controller.api.resources.credentials.v1.UsernamePasswordAttributes
	4,  // 7: controller.api.resources.credentials.v1.Credential.ssh_private_key_attributes:type_name -> controller.api.resources.credentials.v1.SshPrivateKeyAttributes
	5,  // 8: controller.api.resources.credentials.v1.Credential.json_attributes:type_name -> controller.api.resources.credentials.v1.JsonAttributes
	2,  // 9: controller.api.resources.credentials.v1.Credential.username_password_domain_attributes:type_name -> controller.api.resources.credentials.v1.UsernamePasswordDomainAttributes
	3,  // 10: controller.api.resources.credentials.v1.Credential.password_attributes:type_name -> controller.api.resources.credentials.v1.PasswordAttributes
	7,  // 11: controller.api.resources.credentials.v1.UsernamePasswordAttributes.username:type_name -> google.protobuf.StringValue
	7,  // 12: controller.api.resources.credentials.v1.UsernamePasswordAttributes.password:type_name -> google.protobuf.StringValue
	7,  // 13: controller.api.resources.credentials.v1.UsernamePasswordDomainAttributes.username:type_name -> google.protobuf.StringValue
	7,  // 14: controller.api.resources.credentials.v1.UsernamePasswordDomainAttributes.password:type_name -> google.protobuf.StringValue
	7,  // 15: controller.api.resources.credentials.v1.UsernamePasswordDomainAttributes.domain:type_name -> google.protobuf.StringValue
	7,  // 16: controller.api.resources.credentials.v1.PasswordAttributes.password:type_name -> google.protobuf.StringValue
	7,  // 17: controller.api.resources.credentials.v1.SshPrivateKeyAttributes.username:type_name -> google.protobuf.StringValue
	7,  // 18: controller.api.resources.credentials.v1.SshPrivateKeyAttributes.private_key:type_name -> google.protobuf.StringValue
	7,  // 19: controller.api.resources.credentials.v1.SshPrivateKeyAttributes.private_key_passphrase:type_name -> google.protobuf.StringValue
	9,  // 20: controller.api.resources.credentials.v1.JsonAttributes.object:type_name -> google.protobuf.Struct
	21, // [21:21] is the sub-list for method output_type
	21, // [21:21] is the sub-list for method input_type
	21, // [21:21] is the sub-list for extension type_name
	21, // [21:21] is the sub-list for extension extendee
	0,  // [0:21] is the sub-list for field type_name
}

func init() { file_controller_api_resources_credentials_v1_credential_proto_init() }
func file_controller_api_resources_credentials_v1_credential_proto_init() {
	if File_controller_api_resources_credentials_v1_credential_proto != nil {
		return
	}
	file_controller_api_resources_credentials_v1_credential_proto_msgTypes[0].OneofWrappers = []any{
		(*Credential_Attributes)(nil),
		(*Credential_UsernamePasswordAttributes)(nil),
		(*Credential_SshPrivateKeyAttributes)(nil),
		(*Credential_JsonAttributes)(nil),
		(*Credential_UsernamePasswordDomainAttributes)(nil),
		(*Credential_PasswordAttributes)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_controller_api_resources_credentials_v1_credential_proto_rawDesc), len(file_controller_api_resources_credentials_v1_credential_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_controller_api_resources_credentials_v1_credential_proto_goTypes,
		DependencyIndexes: file_controller_api_resources_credentials_v1_credential_proto_depIdxs,
		MessageInfos:      file_controller_api_resources_credentials_v1_credential_proto_msgTypes,
	}.Build()
	File_controller_api_resources_credentials_v1_credential_proto = out.File
	file_controller_api_resources_credentials_v1_credential_proto_goTypes = nil
	file_controller_api_resources_credentials_v1_credential_proto_depIdxs = nil
}
