// Code generated by protoc-gen-go. DO NOT EDIT.
// source: encryptedobject/message.proto

package encryptedobject

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import timestamp "github.com/golang/protobuf/ptypes/timestamp"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

type Algorithm int32

const (
	Algorithm_AES_256_GCM Algorithm = 0
)

var Algorithm_name = map[int32]string{
	0: "AES_256_GCM",
}
var Algorithm_value = map[string]int32{
	"AES_256_GCM": 0,
}

func (x Algorithm) String() string {
	return proto.EnumName(Algorithm_name, int32(x))
}
func (Algorithm) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_message_8c006b9183e29068, []int{0}
}

type AWSKMSEncryptedDataKey struct {
	AlgorithmId          Algorithm         `protobuf:"varint,1,opt,name=algorithm_id,json=algorithmId,proto3,enum=encryptedobject.Algorithm" json:"algorithm_id,omitempty"`
	EncryptionContext    map[string]string `protobuf:"bytes,2,rep,name=encryption_context,json=encryptionContext,proto3" json:"encryption_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	CmkArn               string            `protobuf:"bytes,3,opt,name=cmk_arn,json=cmkArn,proto3" json:"cmk_arn,omitempty"`
	EncryptedDataKey     []byte            `protobuf:"bytes,4,opt,name=encrypted_data_key,json=encryptedDataKey,proto3" json:"encrypted_data_key,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *AWSKMSEncryptedDataKey) Reset()         { *m = AWSKMSEncryptedDataKey{} }
func (m *AWSKMSEncryptedDataKey) String() string { return proto.CompactTextString(m) }
func (*AWSKMSEncryptedDataKey) ProtoMessage()    {}
func (*AWSKMSEncryptedDataKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_message_8c006b9183e29068, []int{0}
}
func (m *AWSKMSEncryptedDataKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AWSKMSEncryptedDataKey.Unmarshal(m, b)
}
func (m *AWSKMSEncryptedDataKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AWSKMSEncryptedDataKey.Marshal(b, m, deterministic)
}
func (dst *AWSKMSEncryptedDataKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AWSKMSEncryptedDataKey.Merge(dst, src)
}
func (m *AWSKMSEncryptedDataKey) XXX_Size() int {
	return xxx_messageInfo_AWSKMSEncryptedDataKey.Size(m)
}
func (m *AWSKMSEncryptedDataKey) XXX_DiscardUnknown() {
	xxx_messageInfo_AWSKMSEncryptedDataKey.DiscardUnknown(m)
}

var xxx_messageInfo_AWSKMSEncryptedDataKey proto.InternalMessageInfo

func (m *AWSKMSEncryptedDataKey) GetAlgorithmId() Algorithm {
	if m != nil {
		return m.AlgorithmId
	}
	return Algorithm_AES_256_GCM
}

func (m *AWSKMSEncryptedDataKey) GetEncryptionContext() map[string]string {
	if m != nil {
		return m.EncryptionContext
	}
	return nil
}

func (m *AWSKMSEncryptedDataKey) GetCmkArn() string {
	if m != nil {
		return m.CmkArn
	}
	return ""
}

func (m *AWSKMSEncryptedDataKey) GetEncryptedDataKey() []byte {
	if m != nil {
		return m.EncryptedDataKey
	}
	return nil
}

type EncryptedObject struct {
	Version     uint32               `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	MessageId   []byte               `protobuf:"bytes,2,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	Timestamp   *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	AlgorithmId Algorithm            `protobuf:"varint,4,opt,name=algorithm_id,json=algorithmId,proto3,enum=encryptedobject.Algorithm" json:"algorithm_id,omitempty"`
	Iv          []byte               `protobuf:"bytes,5,opt,name=iv,proto3" json:"iv,omitempty"`
	// Types that are valid to be assigned to DataKey:
	//	*EncryptedObject_AWSKMSEncryptedDataKey
	DataKey              isEncryptedObject_DataKey `protobuf_oneof:"DataKey"`
	Ciphertext           []byte                    `protobuf:"bytes,7,opt,name=ciphertext,proto3" json:"ciphertext,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *EncryptedObject) Reset()         { *m = EncryptedObject{} }
func (m *EncryptedObject) String() string { return proto.CompactTextString(m) }
func (*EncryptedObject) ProtoMessage()    {}
func (*EncryptedObject) Descriptor() ([]byte, []int) {
	return fileDescriptor_message_8c006b9183e29068, []int{1}
}
func (m *EncryptedObject) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EncryptedObject.Unmarshal(m, b)
}
func (m *EncryptedObject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EncryptedObject.Marshal(b, m, deterministic)
}
func (dst *EncryptedObject) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EncryptedObject.Merge(dst, src)
}
func (m *EncryptedObject) XXX_Size() int {
	return xxx_messageInfo_EncryptedObject.Size(m)
}
func (m *EncryptedObject) XXX_DiscardUnknown() {
	xxx_messageInfo_EncryptedObject.DiscardUnknown(m)
}

var xxx_messageInfo_EncryptedObject proto.InternalMessageInfo

type isEncryptedObject_DataKey interface {
	isEncryptedObject_DataKey()
}

type EncryptedObject_AWSKMSEncryptedDataKey struct {
	AWSKMSEncryptedDataKey *AWSKMSEncryptedDataKey `protobuf:"bytes,6,opt,name=AWSKMSEncryptedDataKey,proto3,oneof"`
}

func (*EncryptedObject_AWSKMSEncryptedDataKey) isEncryptedObject_DataKey() {}

func (m *EncryptedObject) GetDataKey() isEncryptedObject_DataKey {
	if m != nil {
		return m.DataKey
	}
	return nil
}

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

func (m *EncryptedObject) GetMessageId() []byte {
	if m != nil {
		return m.MessageId
	}
	return nil
}

func (m *EncryptedObject) GetTimestamp() *timestamp.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *EncryptedObject) GetAlgorithmId() Algorithm {
	if m != nil {
		return m.AlgorithmId
	}
	return Algorithm_AES_256_GCM
}

func (m *EncryptedObject) GetIv() []byte {
	if m != nil {
		return m.Iv
	}
	return nil
}

func (m *EncryptedObject) GetAWSKMSEncryptedDataKey() *AWSKMSEncryptedDataKey {
	if x, ok := m.GetDataKey().(*EncryptedObject_AWSKMSEncryptedDataKey); ok {
		return x.AWSKMSEncryptedDataKey
	}
	return nil
}

func (m *EncryptedObject) GetCiphertext() []byte {
	if m != nil {
		return m.Ciphertext
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*EncryptedObject) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _EncryptedObject_OneofMarshaler, _EncryptedObject_OneofUnmarshaler, _EncryptedObject_OneofSizer, []interface{}{
		(*EncryptedObject_AWSKMSEncryptedDataKey)(nil),
	}
}

func _EncryptedObject_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*EncryptedObject)
	// DataKey
	switch x := m.DataKey.(type) {
	case *EncryptedObject_AWSKMSEncryptedDataKey:
		b.EncodeVarint(6<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.AWSKMSEncryptedDataKey); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("EncryptedObject.DataKey has unexpected type %T", x)
	}
	return nil
}

func _EncryptedObject_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*EncryptedObject)
	switch tag {
	case 6: // DataKey.AWSKMSEncryptedDataKey
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(AWSKMSEncryptedDataKey)
		err := b.DecodeMessage(msg)
		m.DataKey = &EncryptedObject_AWSKMSEncryptedDataKey{msg}
		return true, err
	default:
		return false, nil
	}
}

func _EncryptedObject_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*EncryptedObject)
	// DataKey
	switch x := m.DataKey.(type) {
	case *EncryptedObject_AWSKMSEncryptedDataKey:
		s := proto.Size(x.AWSKMSEncryptedDataKey)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

func init() {
	proto.RegisterType((*AWSKMSEncryptedDataKey)(nil), "encryptedobject.AWSKMSEncryptedDataKey")
	proto.RegisterMapType((map[string]string)(nil), "encryptedobject.AWSKMSEncryptedDataKey.EncryptionContextEntry")
	proto.RegisterType((*EncryptedObject)(nil), "encryptedobject.EncryptedObject")
	proto.RegisterEnum("encryptedobject.Algorithm", Algorithm_name, Algorithm_value)
}

func init() {
	proto.RegisterFile("encryptedobject/message.proto", fileDescriptor_message_8c006b9183e29068)
}

var fileDescriptor_message_8c006b9183e29068 = []byte{
	// 428 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0x7f, 0x6b, 0xd3, 0x40,
	0x18, 0x5e, 0xae, 0x5b, 0x4b, 0xde, 0xce, 0xb5, 0x3b, 0x64, 0x1e, 0xc5, 0x69, 0xd9, 0x3f, 0x16,
	0x91, 0x14, 0x2a, 0xca, 0x10, 0x14, 0xba, 0x2d, 0xe8, 0x18, 0x43, 0x48, 0x05, 0xc1, 0x7f, 0xc2,
	0x35, 0x79, 0xcd, 0xce, 0x36, 0xb9, 0x70, 0xb9, 0x05, 0xf3, 0x39, 0xfd, 0x04, 0x7e, 0x13, 0xe9,
	0xe5, 0x87, 0x92, 0xad, 0xe0, 0xfe, 0xcb, 0xbd, 0xf7, 0xbc, 0xcf, 0xf3, 0xbc, 0xf7, 0xbc, 0x81,
	0x63, 0x4c, 0x02, 0x55, 0xa4, 0x1a, 0x43, 0xb9, 0xfc, 0x81, 0x81, 0x9e, 0xc6, 0x98, 0x65, 0x3c,
	0x42, 0x27, 0x55, 0x52, 0x4b, 0x3a, 0x68, 0x5d, 0x8f, 0x9e, 0x47, 0x52, 0x46, 0x6b, 0x9c, 0x9a,
	0xeb, 0xe5, 0xed, 0xf7, 0xa9, 0x16, 0x31, 0x66, 0x9a, 0xc7, 0x69, 0xd9, 0x71, 0xf2, 0x8b, 0xc0,
	0xd1, 0xfc, 0xeb, 0xe2, 0xea, 0x7a, 0xe1, 0xd6, 0xad, 0x17, 0x5c, 0xf3, 0x2b, 0x2c, 0xe8, 0x7b,
	0xd8, 0xe7, 0xeb, 0x48, 0x2a, 0xa1, 0x6f, 0x62, 0x5f, 0x84, 0xcc, 0x1a, 0x5b, 0x93, 0x83, 0xd9,
	0xc8, 0x69, 0x69, 0x38, 0xf3, 0x1a, 0xe4, 0xf5, 0x1b, 0xfc, 0x65, 0x48, 0x63, 0xa0, 0x15, 0x52,
	0xc8, 0xc4, 0x0f, 0x64, 0xa2, 0xf1, 0xa7, 0x66, 0x64, 0xdc, 0x99, 0xf4, 0x67, 0x1f, 0xee, 0x92,
	0xdc, 0xeb, 0xc1, 0x71, 0x1b, 0x86, 0xf3, 0x92, 0xc0, 0x4d, 0xb4, 0x2a, 0xbc, 0x43, 0x6c, 0xd7,
	0xe9, 0x13, 0xe8, 0x05, 0xf1, 0xca, 0xe7, 0x2a, 0x61, 0x9d, 0xb1, 0x35, 0xb1, 0xbd, 0x6e, 0x10,
	0xaf, 0xe6, 0x2a, 0xa1, 0xaf, 0x1a, 0x1f, 0x18, 0xfa, 0x21, 0xd7, 0xdc, 0x5f, 0x61, 0xc1, 0x76,
	0xc7, 0xd6, 0x64, 0xdf, 0x1b, 0x62, 0x4b, 0x70, 0x74, 0x01, 0x47, 0xf7, 0x6b, 0xd2, 0x21, 0x74,
	0x36, 0x8d, 0x96, 0x21, 0xdf, 0x7c, 0xd2, 0xc7, 0xb0, 0x97, 0xf3, 0xf5, 0x2d, 0x32, 0x62, 0x6a,
	0xe5, 0xe1, 0x1d, 0x39, 0xb5, 0x4e, 0x7e, 0x13, 0x18, 0x34, 0xb3, 0x7c, 0x36, 0x13, 0x52, 0x06,
	0xbd, 0x1c, 0x55, 0x26, 0x64, 0x62, 0x38, 0x1e, 0x79, 0xf5, 0x91, 0x1e, 0x03, 0x54, 0x31, 0x6e,
	0x9e, 0x99, 0x18, 0x67, 0x76, 0x55, 0xb9, 0x0c, 0xe9, 0x29, 0xd8, 0x4d, 0x6a, 0x66, 0xb6, 0xfe,
	0x6c, 0xe4, 0x94, 0xb9, 0x3a, 0x75, 0xae, 0xce, 0x97, 0x1a, 0xe1, 0xfd, 0x05, 0xdf, 0x49, 0x70,
	0xf7, 0x61, 0x09, 0x1e, 0x00, 0x11, 0x39, 0xdb, 0x33, 0x7e, 0x88, 0xc8, 0x29, 0xdf, 0xb6, 0x2a,
	0xac, 0x6b, 0x5c, 0xbd, 0xf8, 0xcf, 0x54, 0x3f, 0xed, 0x78, 0xdb, 0x76, 0xee, 0x19, 0x40, 0x20,
	0xd2, 0x1b, 0x54, 0x66, 0x59, 0x7a, 0x46, 0xfa, 0x9f, 0xca, 0x99, 0x0d, 0xbd, 0x0a, 0xfa, 0xf2,
	0x29, 0xd8, 0x8d, 0x6f, 0x3a, 0x80, 0xfe, 0xdc, 0x5d, 0xf8, 0xb3, 0x37, 0x6f, 0xfd, 0x8f, 0xe7,
	0xd7, 0xc3, 0x9d, 0xb3, 0xc3, 0x6f, 0xed, 0x7f, 0x61, 0xd9, 0x35, 0x8f, 0xf5, 0xfa, 0x4f, 0x00,
	0x00, 0x00, 0xff, 0xff, 0xde, 0xa5, 0x2d, 0x30, 0x44, 0x03, 0x00, 0x00,
}
