// Copyright IBM Corp. 2020, 2026
// SPDX-License-Identifier: BUSL-1.1

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        (unknown)
// source: testing/attribute/v1/attribute.proto

package attribute

import (
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
	_ "github.com/hashicorp/boundary/sdk/pbs/controller/protooptions"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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)
)

type TestResource struct {
	state   protoimpl.MessageState `protogen:"open.v1"`
	Id      string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type    string                 `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	OtherId string                 `protobuf:"bytes,3,opt,name=other_id,json=otherId,proto3" json:"other_id,omitempty"`
	// Types that are valid to be assigned to Attrs:
	//
	//	*TestResource_Attributes
	//	*TestResource_SubResourceAttributes
	Attrs         isTestResource_Attrs `protobuf_oneof:"attrs"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestResource) ProtoMessage() {}

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

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

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

func (x *TestResource) GetOtherId() string {
	if x != nil {
		return x.OtherId
	}
	return ""
}

func (x *TestResource) GetAttrs() isTestResource_Attrs {
	if x != nil {
		return x.Attrs
	}
	return nil
}

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

func (x *TestResource) GetSubResourceAttributes() *TestSubResourceAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*TestResource_SubResourceAttributes); ok {
			return x.SubResourceAttributes
		}
	}
	return nil
}

type isTestResource_Attrs interface {
	isTestResource_Attrs()
}

type TestResource_Attributes struct {
	Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3,oneof"`
}

type TestResource_SubResourceAttributes struct {
	SubResourceAttributes *TestSubResourceAttributes `protobuf:"bytes,20,opt,name=sub_resource_attributes,json=subResourceAttributes,proto3,oneof"`
}

func (*TestResource_Attributes) isTestResource_Attrs() {}

func (*TestResource_SubResourceAttributes) isTestResource_Attrs() {}

type TestSubResourceAttributes struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestSubResourceAttributes) ProtoMessage() {}

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

func (x *TestSubResourceAttributes) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type TestNoAttributes struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type          string                 `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestNoAttributes) ProtoMessage() {}

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

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

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

type TestNoOneOf struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type          string                 `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	Attributes    *structpb.Struct       `protobuf:"bytes,10,opt,name=attributes,proto3" json:"attributes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestNoOneOf) ProtoMessage() {}

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

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

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

func (x *TestNoOneOf) GetAttributes() *structpb.Struct {
	if x != nil {
		return x.Attributes
	}
	return nil
}

type TestCustomTransformation struct {
	state        protoimpl.MessageState `protogen:"open.v1"`
	SomeRandomId string                 `protobuf:"bytes,1,opt,name=some_random_id,json=someRandomId,proto3" json:"some_random_id,omitempty"`
	SecondaryId  string                 `protobuf:"bytes,2,opt,name=secondary_id,json=secondaryId,proto3" json:"secondary_id,omitempty"`
	// Types that are valid to be assigned to Attrs:
	//
	//	*TestCustomTransformation_Attributes
	//	*TestCustomTransformation_SubResourceAttributes
	Attrs         isTestCustomTransformation_Attrs `protobuf_oneof:"attrs"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestCustomTransformation) ProtoMessage() {}

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

func (x *TestCustomTransformation) GetSomeRandomId() string {
	if x != nil {
		return x.SomeRandomId
	}
	return ""
}

func (x *TestCustomTransformation) GetSecondaryId() string {
	if x != nil {
		return x.SecondaryId
	}
	return ""
}

func (x *TestCustomTransformation) GetAttrs() isTestCustomTransformation_Attrs {
	if x != nil {
		return x.Attrs
	}
	return nil
}

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

func (x *TestCustomTransformation) GetSubResourceAttributes() *TestSubResourceAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*TestCustomTransformation_SubResourceAttributes); ok {
			return x.SubResourceAttributes
		}
	}
	return nil
}

type isTestCustomTransformation_Attrs interface {
	isTestCustomTransformation_Attrs()
}

type TestCustomTransformation_Attributes struct {
	Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3,oneof"`
}

type TestCustomTransformation_SubResourceAttributes struct {
	SubResourceAttributes *TestSubResourceAttributes `protobuf:"bytes,20,opt,name=sub_resource_attributes,json=subResourceAttributes,proto3,oneof"`
}

func (*TestCustomTransformation_Attributes) isTestCustomTransformation_Attrs() {}

func (*TestCustomTransformation_SubResourceAttributes) isTestCustomTransformation_Attrs() {}

type TestListResourceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestListResourceRequest) ProtoMessage() {}

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

type TestListResourceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Items         []*TestResource        `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestListResourceResponse) Reset() {
	*x = TestListResourceResponse{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestListResourceResponse) ProtoMessage() {}

func (x *TestListResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[6]
	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 TestListResourceResponse.ProtoReflect.Descriptor instead.
func (*TestListResourceResponse) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{6}
}

func (x *TestListResourceResponse) GetItems() []*TestResource {
	if x != nil {
		return x.Items
	}
	return nil
}

type TestGetResourceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestGetResourceRequest) Reset() {
	*x = TestGetResourceRequest{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestGetResourceRequest) ProtoMessage() {}

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

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

type TestGetResourceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestResource          `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestGetResourceResponse) Reset() {
	*x = TestGetResourceResponse{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestGetResourceResponse) ProtoMessage() {}

func (x *TestGetResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[8]
	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 TestGetResourceResponse.ProtoReflect.Descriptor instead.
func (*TestGetResourceResponse) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{8}
}

func (x *TestGetResourceResponse) GetItem() *TestResource {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestCreateResourceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestResource          `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestCreateResourceRequest) Reset() {
	*x = TestCreateResourceRequest{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestCreateResourceRequest) ProtoMessage() {}

func (x *TestCreateResourceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[9]
	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 TestCreateResourceRequest.ProtoReflect.Descriptor instead.
func (*TestCreateResourceRequest) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{9}
}

func (x *TestCreateResourceRequest) GetItem() *TestResource {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestCreateResourceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestResource          `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestCreateResourceResponse) Reset() {
	*x = TestCreateResourceResponse{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestCreateResourceResponse) ProtoMessage() {}

func (x *TestCreateResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[10]
	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 TestCreateResourceResponse.ProtoReflect.Descriptor instead.
func (*TestCreateResourceResponse) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{10}
}

func (x *TestCreateResourceResponse) GetItem() *TestResource {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestUpdateResourceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Item          *TestResource          `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"`
	UpdateMask    *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,proto3" json:"update_mask,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestUpdateResourceRequest) Reset() {
	*x = TestUpdateResourceRequest{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestUpdateResourceRequest) ProtoMessage() {}

func (x *TestUpdateResourceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[11]
	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 TestUpdateResourceRequest.ProtoReflect.Descriptor instead.
func (*TestUpdateResourceRequest) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{11}
}

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

func (x *TestUpdateResourceRequest) GetItem() *TestResource {
	if x != nil {
		return x.Item
	}
	return nil
}

func (x *TestUpdateResourceRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

type TestUpdateResourceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestResource          `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestUpdateResourceResponse) Reset() {
	*x = TestUpdateResourceResponse{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestUpdateResourceResponse) ProtoMessage() {}

func (x *TestUpdateResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[12]
	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 TestUpdateResourceResponse.ProtoReflect.Descriptor instead.
func (*TestUpdateResourceResponse) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{12}
}

func (x *TestUpdateResourceResponse) GetItem() *TestResource {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestRequestNoItem struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequestNoItem) Reset() {
	*x = TestRequestNoItem{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestRequestNoItem) ProtoMessage() {}

func (x *TestRequestNoItem) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[13]
	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 TestRequestNoItem.ProtoReflect.Descriptor instead.
func (*TestRequestNoItem) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{13}
}

func (x *TestRequestNoItem) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type TestRequestItemNotMessage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          string                 `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequestItemNotMessage) Reset() {
	*x = TestRequestItemNotMessage{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestRequestItemNotMessage) ProtoMessage() {}

func (x *TestRequestItemNotMessage) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[14]
	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 TestRequestItemNotMessage.ProtoReflect.Descriptor instead.
func (*TestRequestItemNotMessage) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{14}
}

func (x *TestRequestItemNotMessage) GetItem() string {
	if x != nil {
		return x.Item
	}
	return ""
}

type TestItemNoType struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestItemNoType) Reset() {
	*x = TestItemNoType{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestItemNoType) ProtoMessage() {}

func (x *TestItemNoType) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[15]
	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 TestItemNoType.ProtoReflect.Descriptor instead.
func (*TestItemNoType) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{15}
}

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

type TestRequestItemNoType struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestItemNoType        `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequestItemNoType) Reset() {
	*x = TestRequestItemNoType{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestRequestItemNoType) ProtoMessage() {}

func (x *TestRequestItemNoType) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[16]
	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 TestRequestItemNoType.ProtoReflect.Descriptor instead.
func (*TestRequestItemNoType) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{16}
}

func (x *TestRequestItemNoType) GetItem() *TestItemNoType {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestNoItemAttributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Id    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Types that are valid to be assigned to Attrs:
	//
	//	*TestNoItemAttributes_Attributes
	//	*TestNoItemAttributes_SubResourceAttributes
	Attrs         isTestNoItemAttributes_Attrs `protobuf_oneof:"attrs"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestNoItemAttributes) Reset() {
	*x = TestNoItemAttributes{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestNoItemAttributes) ProtoMessage() {}

func (x *TestNoItemAttributes) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[17]
	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 TestNoItemAttributes.ProtoReflect.Descriptor instead.
func (*TestNoItemAttributes) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{17}
}

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

func (x *TestNoItemAttributes) GetAttrs() isTestNoItemAttributes_Attrs {
	if x != nil {
		return x.Attrs
	}
	return nil
}

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

func (x *TestNoItemAttributes) GetSubResourceAttributes() *TestSubResourceAttributes {
	if x != nil {
		if x, ok := x.Attrs.(*TestNoItemAttributes_SubResourceAttributes); ok {
			return x.SubResourceAttributes
		}
	}
	return nil
}

type isTestNoItemAttributes_Attrs interface {
	isTestNoItemAttributes_Attrs()
}

type TestNoItemAttributes_Attributes struct {
	Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3,oneof"`
}

type TestNoItemAttributes_SubResourceAttributes struct {
	SubResourceAttributes *TestSubResourceAttributes `protobuf:"bytes,20,opt,name=sub_resource_attributes,json=subResourceAttributes,proto3,oneof"`
}

func (*TestNoItemAttributes_Attributes) isTestNoItemAttributes_Attrs() {}

func (*TestNoItemAttributes_SubResourceAttributes) isTestNoItemAttributes_Attrs() {}

type TestCreateNoOneOfRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestNoOneOf           `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestCreateNoOneOfRequest) Reset() {
	*x = TestCreateNoOneOfRequest{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestCreateNoOneOfRequest) ProtoMessage() {}

func (x *TestCreateNoOneOfRequest) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[18]
	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 TestCreateNoOneOfRequest.ProtoReflect.Descriptor instead.
func (*TestCreateNoOneOfRequest) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{18}
}

func (x *TestCreateNoOneOfRequest) GetItem() *TestNoOneOf {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestUpdateNoOneOfRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Item          *TestNoOneOf           `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestUpdateNoOneOfRequest) Reset() {
	*x = TestUpdateNoOneOfRequest{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestUpdateNoOneOfRequest) ProtoMessage() {}

func (x *TestUpdateNoOneOfRequest) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[19]
	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 TestUpdateNoOneOfRequest.ProtoReflect.Descriptor instead.
func (*TestUpdateNoOneOfRequest) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{19}
}

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

func (x *TestUpdateNoOneOfRequest) GetItem() *TestNoOneOf {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestResponseNoItem struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResponseNoItem) Reset() {
	*x = TestResponseNoItem{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResponseNoItem) ProtoMessage() {}

func (x *TestResponseNoItem) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[20]
	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 TestResponseNoItem.ProtoReflect.Descriptor instead.
func (*TestResponseNoItem) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{20}
}

func (x *TestResponseNoItem) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type TestResponseItemNotMessage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          string                 `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResponseItemNotMessage) Reset() {
	*x = TestResponseItemNotMessage{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResponseItemNotMessage) ProtoMessage() {}

func (x *TestResponseItemNotMessage) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[21]
	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 TestResponseItemNotMessage.ProtoReflect.Descriptor instead.
func (*TestResponseItemNotMessage) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{21}
}

func (x *TestResponseItemNotMessage) GetItem() string {
	if x != nil {
		return x.Item
	}
	return ""
}

type TestResponseItemNoType struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestItemNoType        `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResponseItemNoType) Reset() {
	*x = TestResponseItemNoType{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResponseItemNoType) ProtoMessage() {}

func (x *TestResponseItemNoType) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[22]
	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 TestResponseItemNoType.ProtoReflect.Descriptor instead.
func (*TestResponseItemNoType) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{22}
}

func (x *TestResponseItemNoType) GetItem() *TestItemNoType {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestCreateNoOneOfResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestNoOneOf           `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestCreateNoOneOfResponse) Reset() {
	*x = TestCreateNoOneOfResponse{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestCreateNoOneOfResponse) ProtoMessage() {}

func (x *TestCreateNoOneOfResponse) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[23]
	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 TestCreateNoOneOfResponse.ProtoReflect.Descriptor instead.
func (*TestCreateNoOneOfResponse) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{23}
}

func (x *TestCreateNoOneOfResponse) GetItem() *TestNoOneOf {
	if x != nil {
		return x.Item
	}
	return nil
}

type TestUpdateNoOneOfResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Item          *TestNoOneOf           `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestUpdateNoOneOfResponse) Reset() {
	*x = TestUpdateNoOneOfResponse{}
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestUpdateNoOneOfResponse) ProtoMessage() {}

func (x *TestUpdateNoOneOfResponse) ProtoReflect() protoreflect.Message {
	mi := &file_testing_attribute_v1_attribute_proto_msgTypes[24]
	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 TestUpdateNoOneOfResponse.ProtoReflect.Descriptor instead.
func (*TestUpdateNoOneOfResponse) Descriptor() ([]byte, []int) {
	return file_testing_attribute_v1_attribute_proto_rawDescGZIP(), []int{24}
}

func (x *TestUpdateNoOneOfResponse) GetItem() *TestNoOneOf {
	if x != nil {
		return x.Item
	}
	return nil
}

var File_testing_attribute_v1_attribute_proto protoreflect.FileDescriptor

const file_testing_attribute_v1_attribute_proto_rawDesc = "" +
	"\n" +
	"$testing/attribute/v1/attribute.proto\x12\x14testing.attribute.v1\x1a*controller/custom_options/v1/options.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xa1\x02\n" +
	"\fTestResource\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04type\x18\x02 \x01(\tR\x04type\x12\x1f\n" +
	"\bother_id\x18\x03 \x01(\tB\x04\xa0\xe3)\x01R\aotherId\x12F\n" +
	"\n" +
	"attributes\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructB\v\x9a\xe3)\adefaultH\x00R\n" +
	"attributes\x12{\n" +
	"\x17sub_resource_attributes\x18\x14 \x01(\v2/.testing.attribute.v1.TestSubResourceAttributesB\x10\x9a\xe3)\fsub_resourceH\x00R\x15subResourceAttributesB\a\n" +
	"\x05attrs\"/\n" +
	"\x19TestSubResourceAttributes\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"6\n" +
	"\x10TestNoAttributes\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04type\x18\x02 \x01(\tR\x04type\"j\n" +
	"\vTestNoOneOf\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04type\x18\x02 \x01(\tR\x04type\x127\n" +
	"\n" +
	"attributes\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructR\n" +
	"attributes\"\x92\x02\n" +
	"\x18TestCustomTransformation\x12$\n" +
	"\x0esome_random_id\x18\x01 \x01(\tR\fsomeRandomId\x12!\n" +
	"\fsecondary_id\x18\x02 \x01(\tR\vsecondaryId\x129\n" +
	"\n" +
	"attributes\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructH\x00R\n" +
	"attributes\x12i\n" +
	"\x17sub_resource_attributes\x18\x14 \x01(\v2/.testing.attribute.v1.TestSubResourceAttributesH\x00R\x15subResourceAttributesB\a\n" +
	"\x05attrs\"\x19\n" +
	"\x17TestListResourceRequest\"T\n" +
	"\x18TestListResourceResponse\x128\n" +
	"\x05items\x18\x01 \x03(\v2\".testing.attribute.v1.TestResourceR\x05items\"(\n" +
	"\x16TestGetResourceRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"Q\n" +
	"\x17TestGetResourceResponse\x126\n" +
	"\x04item\x18\x01 \x01(\v2\".testing.attribute.v1.TestResourceR\x04item\"S\n" +
	"\x19TestCreateResourceRequest\x126\n" +
	"\x04item\x18\x02 \x01(\v2\".testing.attribute.v1.TestResourceR\x04item\"T\n" +
	"\x1aTestCreateResourceResponse\x126\n" +
	"\x04item\x18\x01 \x01(\v2\".testing.attribute.v1.TestResourceR\x04item\"\xa1\x01\n" +
	"\x19TestUpdateResourceRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x126\n" +
	"\x04item\x18\x02 \x01(\v2\".testing.attribute.v1.TestResourceR\x04item\x12<\n" +
	"\vupdate_mask\x18\x03 \x01(\v2\x1a.google.protobuf.FieldMaskR\vupdate_mask\"T\n" +
	"\x1aTestUpdateResourceResponse\x126\n" +
	"\x04item\x18\x01 \x01(\v2\".testing.attribute.v1.TestResourceR\x04item\"'\n" +
	"\x11TestRequestNoItem\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"/\n" +
	"\x19TestRequestItemNotMessage\x12\x12\n" +
	"\x04item\x18\x01 \x01(\tR\x04item\" \n" +
	"\x0eTestItemNoType\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"Q\n" +
	"\x15TestRequestItemNoType\x128\n" +
	"\x04item\x18\x01 \x01(\v2$.testing.attribute.v1.TestItemNoTypeR\x04item\"\xf4\x01\n" +
	"\x14TestNoItemAttributes\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12F\n" +
	"\n" +
	"attributes\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructB\v\x9a\xe3)\adefaultH\x00R\n" +
	"attributes\x12{\n" +
	"\x17sub_resource_attributes\x18\x14 \x01(\v2/.testing.attribute.v1.TestSubResourceAttributesB\x10\x9a\xe3)\fsub_resourceH\x00R\x15subResourceAttributesB\a\n" +
	"\x05attrs\"Q\n" +
	"\x18TestCreateNoOneOfRequest\x125\n" +
	"\x04item\x18\x01 \x01(\v2!.testing.attribute.v1.TestNoOneOfR\x04item\"a\n" +
	"\x18TestUpdateNoOneOfRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x125\n" +
	"\x04item\x18\x02 \x01(\v2!.testing.attribute.v1.TestNoOneOfR\x04item\"(\n" +
	"\x12TestResponseNoItem\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"0\n" +
	"\x1aTestResponseItemNotMessage\x12\x12\n" +
	"\x04item\x18\x01 \x01(\tR\x04item\"R\n" +
	"\x16TestResponseItemNoType\x128\n" +
	"\x04item\x18\x01 \x01(\v2$.testing.attribute.v1.TestItemNoTypeR\x04item\"R\n" +
	"\x19TestCreateNoOneOfResponse\x125\n" +
	"\x04item\x18\x01 \x01(\v2!.testing.attribute.v1.TestNoOneOfR\x04item\"R\n" +
	"\x19TestUpdateNoOneOfResponse\x125\n" +
	"\x04item\x18\x01 \x01(\v2!.testing.attribute.v1.TestNoOneOfR\x04item2\xc1\x05\n" +
	"\x13TestResourceService\x12\x9b\x01\n" +
	"\x10TestListResource\x12-.testing.attribute.v1.TestListResourceRequest\x1a..testing.attribute.v1.TestListResourceResponse\"(\x92A\v\x12\tTest list\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/test-resources\x12\xaf\x01\n" +
	"\x12TestCreateResource\x12/.testing.attribute.v1.TestCreateResourceRequest\x1a0.testing.attribute.v1.TestCreateResourceResponse\"6\x92A\r\x12\vTest create\x82\xd3\xe4\x93\x02 :\x04itemb\x04item\"\x12/v1/test-resources\x12\xb4\x01\n" +
	"\x12TestUpdateResource\x12/.testing.attribute.v1.TestUpdateResourceRequest\x1a0.testing.attribute.v1.TestUpdateResourceResponse\";\x92A\r\x12\vTest update\x82\xd3\xe4\x93\x02%:\x04itemb\x04item2\x17/v1/test-resources/{id}\x12\xa2\x01\n" +
	"\x0fTestGetResource\x12,.testing.attribute.v1.TestGetResourceRequest\x1a-.testing.attribute.v1.TestGetResourceResponse\"2\x92A\n" +
	"\x12\bTest get\x82\xd3\xe4\x93\x02\x1fb\x04item\x12\x17/v1/test-resources/{id}BP\xa2\xe3)\x04testZFgithub.com/hashicorp/boundary/internal/gen/testing/attribute;attributeb\x06proto3"

var (
	file_testing_attribute_v1_attribute_proto_rawDescOnce sync.Once
	file_testing_attribute_v1_attribute_proto_rawDescData []byte
)

func file_testing_attribute_v1_attribute_proto_rawDescGZIP() []byte {
	file_testing_attribute_v1_attribute_proto_rawDescOnce.Do(func() {
		file_testing_attribute_v1_attribute_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_testing_attribute_v1_attribute_proto_rawDesc), len(file_testing_attribute_v1_attribute_proto_rawDesc)))
	})
	return file_testing_attribute_v1_attribute_proto_rawDescData
}

var file_testing_attribute_v1_attribute_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_testing_attribute_v1_attribute_proto_goTypes = []any{
	(*TestResource)(nil),               // 0: testing.attribute.v1.TestResource
	(*TestSubResourceAttributes)(nil),  // 1: testing.attribute.v1.TestSubResourceAttributes
	(*TestNoAttributes)(nil),           // 2: testing.attribute.v1.TestNoAttributes
	(*TestNoOneOf)(nil),                // 3: testing.attribute.v1.TestNoOneOf
	(*TestCustomTransformation)(nil),   // 4: testing.attribute.v1.TestCustomTransformation
	(*TestListResourceRequest)(nil),    // 5: testing.attribute.v1.TestListResourceRequest
	(*TestListResourceResponse)(nil),   // 6: testing.attribute.v1.TestListResourceResponse
	(*TestGetResourceRequest)(nil),     // 7: testing.attribute.v1.TestGetResourceRequest
	(*TestGetResourceResponse)(nil),    // 8: testing.attribute.v1.TestGetResourceResponse
	(*TestCreateResourceRequest)(nil),  // 9: testing.attribute.v1.TestCreateResourceRequest
	(*TestCreateResourceResponse)(nil), // 10: testing.attribute.v1.TestCreateResourceResponse
	(*TestUpdateResourceRequest)(nil),  // 11: testing.attribute.v1.TestUpdateResourceRequest
	(*TestUpdateResourceResponse)(nil), // 12: testing.attribute.v1.TestUpdateResourceResponse
	(*TestRequestNoItem)(nil),          // 13: testing.attribute.v1.TestRequestNoItem
	(*TestRequestItemNotMessage)(nil),  // 14: testing.attribute.v1.TestRequestItemNotMessage
	(*TestItemNoType)(nil),             // 15: testing.attribute.v1.TestItemNoType
	(*TestRequestItemNoType)(nil),      // 16: testing.attribute.v1.TestRequestItemNoType
	(*TestNoItemAttributes)(nil),       // 17: testing.attribute.v1.TestNoItemAttributes
	(*TestCreateNoOneOfRequest)(nil),   // 18: testing.attribute.v1.TestCreateNoOneOfRequest
	(*TestUpdateNoOneOfRequest)(nil),   // 19: testing.attribute.v1.TestUpdateNoOneOfRequest
	(*TestResponseNoItem)(nil),         // 20: testing.attribute.v1.TestResponseNoItem
	(*TestResponseItemNotMessage)(nil), // 21: testing.attribute.v1.TestResponseItemNotMessage
	(*TestResponseItemNoType)(nil),     // 22: testing.attribute.v1.TestResponseItemNoType
	(*TestCreateNoOneOfResponse)(nil),  // 23: testing.attribute.v1.TestCreateNoOneOfResponse
	(*TestUpdateNoOneOfResponse)(nil),  // 24: testing.attribute.v1.TestUpdateNoOneOfResponse
	(*structpb.Struct)(nil),            // 25: google.protobuf.Struct
	(*fieldmaskpb.FieldMask)(nil),      // 26: google.protobuf.FieldMask
}
var file_testing_attribute_v1_attribute_proto_depIdxs = []int32{
	25, // 0: testing.attribute.v1.TestResource.attributes:type_name -> google.protobuf.Struct
	1,  // 1: testing.attribute.v1.TestResource.sub_resource_attributes:type_name -> testing.attribute.v1.TestSubResourceAttributes
	25, // 2: testing.attribute.v1.TestNoOneOf.attributes:type_name -> google.protobuf.Struct
	25, // 3: testing.attribute.v1.TestCustomTransformation.attributes:type_name -> google.protobuf.Struct
	1,  // 4: testing.attribute.v1.TestCustomTransformation.sub_resource_attributes:type_name -> testing.attribute.v1.TestSubResourceAttributes
	0,  // 5: testing.attribute.v1.TestListResourceResponse.items:type_name -> testing.attribute.v1.TestResource
	0,  // 6: testing.attribute.v1.TestGetResourceResponse.item:type_name -> testing.attribute.v1.TestResource
	0,  // 7: testing.attribute.v1.TestCreateResourceRequest.item:type_name -> testing.attribute.v1.TestResource
	0,  // 8: testing.attribute.v1.TestCreateResourceResponse.item:type_name -> testing.attribute.v1.TestResource
	0,  // 9: testing.attribute.v1.TestUpdateResourceRequest.item:type_name -> testing.attribute.v1.TestResource
	26, // 10: testing.attribute.v1.TestUpdateResourceRequest.update_mask:type_name -> google.protobuf.FieldMask
	0,  // 11: testing.attribute.v1.TestUpdateResourceResponse.item:type_name -> testing.attribute.v1.TestResource
	15, // 12: testing.attribute.v1.TestRequestItemNoType.item:type_name -> testing.attribute.v1.TestItemNoType
	25, // 13: testing.attribute.v1.TestNoItemAttributes.attributes:type_name -> google.protobuf.Struct
	1,  // 14: testing.attribute.v1.TestNoItemAttributes.sub_resource_attributes:type_name -> testing.attribute.v1.TestSubResourceAttributes
	3,  // 15: testing.attribute.v1.TestCreateNoOneOfRequest.item:type_name -> testing.attribute.v1.TestNoOneOf
	3,  // 16: testing.attribute.v1.TestUpdateNoOneOfRequest.item:type_name -> testing.attribute.v1.TestNoOneOf
	15, // 17: testing.attribute.v1.TestResponseItemNoType.item:type_name -> testing.attribute.v1.TestItemNoType
	3,  // 18: testing.attribute.v1.TestCreateNoOneOfResponse.item:type_name -> testing.attribute.v1.TestNoOneOf
	3,  // 19: testing.attribute.v1.TestUpdateNoOneOfResponse.item:type_name -> testing.attribute.v1.TestNoOneOf
	5,  // 20: testing.attribute.v1.TestResourceService.TestListResource:input_type -> testing.attribute.v1.TestListResourceRequest
	9,  // 21: testing.attribute.v1.TestResourceService.TestCreateResource:input_type -> testing.attribute.v1.TestCreateResourceRequest
	11, // 22: testing.attribute.v1.TestResourceService.TestUpdateResource:input_type -> testing.attribute.v1.TestUpdateResourceRequest
	7,  // 23: testing.attribute.v1.TestResourceService.TestGetResource:input_type -> testing.attribute.v1.TestGetResourceRequest
	6,  // 24: testing.attribute.v1.TestResourceService.TestListResource:output_type -> testing.attribute.v1.TestListResourceResponse
	10, // 25: testing.attribute.v1.TestResourceService.TestCreateResource:output_type -> testing.attribute.v1.TestCreateResourceResponse
	12, // 26: testing.attribute.v1.TestResourceService.TestUpdateResource:output_type -> testing.attribute.v1.TestUpdateResourceResponse
	8,  // 27: testing.attribute.v1.TestResourceService.TestGetResource:output_type -> testing.attribute.v1.TestGetResourceResponse
	24, // [24:28] is the sub-list for method output_type
	20, // [20:24] is the sub-list for method input_type
	20, // [20:20] is the sub-list for extension type_name
	20, // [20:20] is the sub-list for extension extendee
	0,  // [0:20] is the sub-list for field type_name
}

func init() { file_testing_attribute_v1_attribute_proto_init() }
func file_testing_attribute_v1_attribute_proto_init() {
	if File_testing_attribute_v1_attribute_proto != nil {
		return
	}
	file_testing_attribute_v1_attribute_proto_msgTypes[0].OneofWrappers = []any{
		(*TestResource_Attributes)(nil),
		(*TestResource_SubResourceAttributes)(nil),
	}
	file_testing_attribute_v1_attribute_proto_msgTypes[4].OneofWrappers = []any{
		(*TestCustomTransformation_Attributes)(nil),
		(*TestCustomTransformation_SubResourceAttributes)(nil),
	}
	file_testing_attribute_v1_attribute_proto_msgTypes[17].OneofWrappers = []any{
		(*TestNoItemAttributes_Attributes)(nil),
		(*TestNoItemAttributes_SubResourceAttributes)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_testing_attribute_v1_attribute_proto_rawDesc), len(file_testing_attribute_v1_attribute_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_testing_attribute_v1_attribute_proto_goTypes,
		DependencyIndexes: file_testing_attribute_v1_attribute_proto_depIdxs,
		MessageInfos:      file_testing_attribute_v1_attribute_proto_msgTypes,
	}.Build()
	File_testing_attribute_v1_attribute_proto = out.File
	file_testing_attribute_v1_attribute_proto_goTypes = nil
	file_testing_attribute_v1_attribute_proto_depIdxs = nil
}
