// Code generated by protoc-gen-go. DO NOT EDIT.
// source: cs3/sharing/collaboration/v1beta1/resources.proto

package collaborationv1beta1

import (
	fmt "fmt"
	v1beta11 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
	v1beta1 "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
	v1beta12 "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

// 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.ProtoPackageIsVersion3 // please upgrade the proto package

// The state of the share.
type ShareState int32

const (
	// The share is no longer valid, for example, the share expired.
	ShareState_SHARE_STATE_INVALID ShareState = 0
	// New shares MUST be created in the SHARE_STATE_PENDING state.
	// This state means the share is pending to be accepted or rejected
	// by the recipient of the share.
	ShareState_SHARE_STATE_PENDING ShareState = 1
	// The recipient of the share has accepted the share.
	ShareState_SHARE_STATE_ACCEPTED ShareState = 2
	// The recipient of the share has rejected the share.
	// Do not means the share is removed, the recipient MAY
	// change the state to accepted or pending.
	ShareState_SHARE_STATE_REJECTED ShareState = 3
)

var ShareState_name = map[int32]string{
	0: "SHARE_STATE_INVALID",
	1: "SHARE_STATE_PENDING",
	2: "SHARE_STATE_ACCEPTED",
	3: "SHARE_STATE_REJECTED",
}

var ShareState_value = map[string]int32{
	"SHARE_STATE_INVALID":  0,
	"SHARE_STATE_PENDING":  1,
	"SHARE_STATE_ACCEPTED": 2,
	"SHARE_STATE_REJECTED": 3,
}

func (x ShareState) String() string {
	return proto.EnumName(ShareState_name, int32(x))
}

func (ShareState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{0}
}

// The filter to apply.
type Filter_Type int32

const (
	Filter_TYPE_INVALID         Filter_Type = 0
	Filter_TYPE_NO              Filter_Type = 1
	Filter_TYPE_RESOURCE_ID     Filter_Type = 2
	Filter_TYPE_OWNER           Filter_Type = 3
	Filter_TYPE_CREATOR         Filter_Type = 4
	Filter_TYPE_GRANTEE_TYPE    Filter_Type = 5
	Filter_TYPE_EXCLUDE_DENIALS Filter_Type = 6
	Filter_TYPE_SPACE_ID        Filter_Type = 7
	Filter_TYPE_STATE           Filter_Type = 8
)

var Filter_Type_name = map[int32]string{
	0: "TYPE_INVALID",
	1: "TYPE_NO",
	2: "TYPE_RESOURCE_ID",
	3: "TYPE_OWNER",
	4: "TYPE_CREATOR",
	5: "TYPE_GRANTEE_TYPE",
	6: "TYPE_EXCLUDE_DENIALS",
	7: "TYPE_SPACE_ID",
	8: "TYPE_STATE",
}

var Filter_Type_value = map[string]int32{
	"TYPE_INVALID":         0,
	"TYPE_NO":              1,
	"TYPE_RESOURCE_ID":     2,
	"TYPE_OWNER":           3,
	"TYPE_CREATOR":         4,
	"TYPE_GRANTEE_TYPE":    5,
	"TYPE_EXCLUDE_DENIALS": 6,
	"TYPE_SPACE_ID":        7,
	"TYPE_STATE":           8,
}

func (x Filter_Type) String() string {
	return proto.EnumName(Filter_Type_name, int32(x))
}

func (Filter_Type) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{7, 0}
}

// Shares are relationships between a resource owner
// (usually the authenticated user) who grants permissions to a recipient (grantee)
// on a specified resource (resource_id). UserShares represents both user and groups.
type Share struct {
	// REQUIRED.
	// Opaque unique identifier of the share.
	Id *ShareId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// REQUIRED.
	// Unique identifier of the shared resource.
	ResourceId *v1beta1.ResourceId `protobuf:"bytes,2,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
	// REQUIRED.
	// Permissions for the grantee to use
	// the resource.
	Permissions *SharePermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"`
	// REQUIRED.
	// The receiver of the share, like a user, group ...
	Grantee *v1beta1.Grantee `protobuf:"bytes,4,opt,name=grantee,proto3" json:"grantee,omitempty"`
	// REQUIRED.
	// Uniquely identifies the owner of the share
	// (the resource owner at the time of creating the share).
	// In case the ownership of the underlying resource changes
	// the share owner field MAY change to reflect the change of ownsership.
	Owner *v1beta11.UserId `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"`
	// REQUIRED.
	// Uniquely identifies a principal who initiates the share creation.
	// A creator can create shares on behalf of the owner (because of re-sharing,
	// because belonging to special groups, ...).
	// Creator and owner often result in being the same principal.
	Creator *v1beta11.UserId `protobuf:"bytes,6,opt,name=creator,proto3" json:"creator,omitempty"`
	// REQUIRED.
	// Creation time of the share.
	Ctime *v1beta12.Timestamp `protobuf:"bytes,7,opt,name=ctime,proto3" json:"ctime,omitempty"`
	// REQUIRED.
	// Last modification time of the share.
	Mtime *v1beta12.Timestamp `protobuf:"bytes,8,opt,name=mtime,proto3" json:"mtime,omitempty"`
	// Optional.
	// The expiration time of the share.
	Expiration           *v1beta12.Timestamp `protobuf:"bytes,9,opt,name=expiration,proto3" json:"expiration,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *Share) Reset()         { *m = Share{} }
func (m *Share) String() string { return proto.CompactTextString(m) }
func (*Share) ProtoMessage()    {}
func (*Share) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{0}
}

func (m *Share) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Share.Unmarshal(m, b)
}
func (m *Share) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Share.Marshal(b, m, deterministic)
}
func (m *Share) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Share.Merge(m, src)
}
func (m *Share) XXX_Size() int {
	return xxx_messageInfo_Share.Size(m)
}
func (m *Share) XXX_DiscardUnknown() {
	xxx_messageInfo_Share.DiscardUnknown(m)
}

var xxx_messageInfo_Share proto.InternalMessageInfo

func (m *Share) GetId() *ShareId {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *Share) GetResourceId() *v1beta1.ResourceId {
	if m != nil {
		return m.ResourceId
	}
	return nil
}

func (m *Share) GetPermissions() *SharePermissions {
	if m != nil {
		return m.Permissions
	}
	return nil
}

func (m *Share) GetGrantee() *v1beta1.Grantee {
	if m != nil {
		return m.Grantee
	}
	return nil
}

func (m *Share) GetOwner() *v1beta11.UserId {
	if m != nil {
		return m.Owner
	}
	return nil
}

func (m *Share) GetCreator() *v1beta11.UserId {
	if m != nil {
		return m.Creator
	}
	return nil
}

func (m *Share) GetCtime() *v1beta12.Timestamp {
	if m != nil {
		return m.Ctime
	}
	return nil
}

func (m *Share) GetMtime() *v1beta12.Timestamp {
	if m != nil {
		return m.Mtime
	}
	return nil
}

func (m *Share) GetExpiration() *v1beta12.Timestamp {
	if m != nil {
		return m.Expiration
	}
	return nil
}

// The permissions for a share.
type SharePermissions struct {
	Permissions          *v1beta1.ResourcePermissions `protobuf:"bytes,1,opt,name=permissions,proto3" json:"permissions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

func (m *SharePermissions) Reset()         { *m = SharePermissions{} }
func (m *SharePermissions) String() string { return proto.CompactTextString(m) }
func (*SharePermissions) ProtoMessage()    {}
func (*SharePermissions) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{1}
}

func (m *SharePermissions) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SharePermissions.Unmarshal(m, b)
}
func (m *SharePermissions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SharePermissions.Marshal(b, m, deterministic)
}
func (m *SharePermissions) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SharePermissions.Merge(m, src)
}
func (m *SharePermissions) XXX_Size() int {
	return xxx_messageInfo_SharePermissions.Size(m)
}
func (m *SharePermissions) XXX_DiscardUnknown() {
	xxx_messageInfo_SharePermissions.DiscardUnknown(m)
}

var xxx_messageInfo_SharePermissions proto.InternalMessageInfo

func (m *SharePermissions) GetPermissions() *v1beta1.ResourcePermissions {
	if m != nil {
		return m.Permissions
	}
	return nil
}

// A received share is the share that a grantee will receive.
// It expands the original share by adding state to the share,
// a display name from the perspective of the grantee and a
// resource mount point in case the share will be mounted
// in a storage provider.
type ReceivedShare struct {
	// REQUIRED.
	Share *Share `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"`
	// REQUIRED.
	// The state of the share.
	State ShareState `protobuf:"varint,2,opt,name=state,proto3,enum=cs3.sharing.collaboration.v1beta1.ShareState" json:"state,omitempty"`
	// REQUIRED.
	// The mount point of the share.
	MountPoint *v1beta1.Reference `protobuf:"bytes,3,opt,name=mount_point,json=mountPoint,proto3" json:"mount_point,omitempty"`
	// Optional.
	// Hide share, default false
	Hidden               bool     `protobuf:"varint,4,opt,name=hidden,proto3" json:"hidden,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReceivedShare) Reset()         { *m = ReceivedShare{} }
func (m *ReceivedShare) String() string { return proto.CompactTextString(m) }
func (*ReceivedShare) ProtoMessage()    {}
func (*ReceivedShare) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{2}
}

func (m *ReceivedShare) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceivedShare.Unmarshal(m, b)
}
func (m *ReceivedShare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceivedShare.Marshal(b, m, deterministic)
}
func (m *ReceivedShare) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceivedShare.Merge(m, src)
}
func (m *ReceivedShare) XXX_Size() int {
	return xxx_messageInfo_ReceivedShare.Size(m)
}
func (m *ReceivedShare) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceivedShare.DiscardUnknown(m)
}

var xxx_messageInfo_ReceivedShare proto.InternalMessageInfo

func (m *ReceivedShare) GetShare() *Share {
	if m != nil {
		return m.Share
	}
	return nil
}

func (m *ReceivedShare) GetState() ShareState {
	if m != nil {
		return m.State
	}
	return ShareState_SHARE_STATE_INVALID
}

func (m *ReceivedShare) GetMountPoint() *v1beta1.Reference {
	if m != nil {
		return m.MountPoint
	}
	return nil
}

func (m *ReceivedShare) GetHidden() bool {
	if m != nil {
		return m.Hidden
	}
	return false
}

// Uniquely identifies a share in the share provider.
// A share MUST be uniquely identify by four (4) elements:
// 1) The share provider id
// 2) The owner of the share
// 3) The resource id
// 4) The grantee for the share
// This 4-tuple MUST be unique.
// For example, owner Alice shares the resource /home/docs with id
// home:1234 to an user named Bob. The 4-tuple will consist of
// 1) The share provider id = "user"
// 2) The owner of the share = "Alice"
// 3) The resource id = "home:1234"
// 4) The grantee for the share = Grantee("type" = "user", "" => "Bob")
type ShareKey struct {
	// REQUIRED.
	Owner *v1beta11.UserId `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	// REQUIRED.
	ResourceId *v1beta1.ResourceId `protobuf:"bytes,3,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
	// REQUIRED.
	Grantee              *v1beta1.Grantee `protobuf:"bytes,4,opt,name=grantee,proto3" json:"grantee,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ShareKey) Reset()         { *m = ShareKey{} }
func (m *ShareKey) String() string { return proto.CompactTextString(m) }
func (*ShareKey) ProtoMessage()    {}
func (*ShareKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{3}
}

func (m *ShareKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ShareKey.Unmarshal(m, b)
}
func (m *ShareKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ShareKey.Marshal(b, m, deterministic)
}
func (m *ShareKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ShareKey.Merge(m, src)
}
func (m *ShareKey) XXX_Size() int {
	return xxx_messageInfo_ShareKey.Size(m)
}
func (m *ShareKey) XXX_DiscardUnknown() {
	xxx_messageInfo_ShareKey.DiscardUnknown(m)
}

var xxx_messageInfo_ShareKey proto.InternalMessageInfo

func (m *ShareKey) GetOwner() *v1beta11.UserId {
	if m != nil {
		return m.Owner
	}
	return nil
}

func (m *ShareKey) GetResourceId() *v1beta1.ResourceId {
	if m != nil {
		return m.ResourceId
	}
	return nil
}

func (m *ShareKey) GetGrantee() *v1beta1.Grantee {
	if m != nil {
		return m.Grantee
	}
	return nil
}

// A share id identifies uniquely a // share in the share provider namespace.
// A ShareId MUST be unique inside the share provider.
type ShareId struct {
	// REQUIRED.
	// The internal id used by service implementor to
	// uniquely Collaboration the share in the internal
	// implementation of the service.
	OpaqueId             string   `protobuf:"bytes,2,opt,name=opaque_id,json=opaqueId,proto3" json:"opaque_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ShareId) Reset()         { *m = ShareId{} }
func (m *ShareId) String() string { return proto.CompactTextString(m) }
func (*ShareId) ProtoMessage()    {}
func (*ShareId) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{4}
}

func (m *ShareId) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ShareId.Unmarshal(m, b)
}
func (m *ShareId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ShareId.Marshal(b, m, deterministic)
}
func (m *ShareId) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ShareId.Merge(m, src)
}
func (m *ShareId) XXX_Size() int {
	return xxx_messageInfo_ShareId.Size(m)
}
func (m *ShareId) XXX_DiscardUnknown() {
	xxx_messageInfo_ShareId.DiscardUnknown(m)
}

var xxx_messageInfo_ShareId proto.InternalMessageInfo

func (m *ShareId) GetOpaqueId() string {
	if m != nil {
		return m.OpaqueId
	}
	return ""
}

// The mechanism to identify a share
// in the share provider namespace.
type ShareReference struct {
	// REQUIRED.
	// One of the specifications MUST be specified.
	//
	// Types that are valid to be assigned to Spec:
	//	*ShareReference_Id
	//	*ShareReference_Key
	Spec                 isShareReference_Spec `protobuf_oneof:"spec"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ShareReference) Reset()         { *m = ShareReference{} }
func (m *ShareReference) String() string { return proto.CompactTextString(m) }
func (*ShareReference) ProtoMessage()    {}
func (*ShareReference) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{5}
}

func (m *ShareReference) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ShareReference.Unmarshal(m, b)
}
func (m *ShareReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ShareReference.Marshal(b, m, deterministic)
}
func (m *ShareReference) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ShareReference.Merge(m, src)
}
func (m *ShareReference) XXX_Size() int {
	return xxx_messageInfo_ShareReference.Size(m)
}
func (m *ShareReference) XXX_DiscardUnknown() {
	xxx_messageInfo_ShareReference.DiscardUnknown(m)
}

var xxx_messageInfo_ShareReference proto.InternalMessageInfo

type isShareReference_Spec interface {
	isShareReference_Spec()
}

type ShareReference_Id struct {
	Id *ShareId `protobuf:"bytes,1,opt,name=id,proto3,oneof"`
}

type ShareReference_Key struct {
	Key *ShareKey `protobuf:"bytes,2,opt,name=key,proto3,oneof"`
}

func (*ShareReference_Id) isShareReference_Spec() {}

func (*ShareReference_Key) isShareReference_Spec() {}

func (m *ShareReference) GetSpec() isShareReference_Spec {
	if m != nil {
		return m.Spec
	}
	return nil
}

func (m *ShareReference) GetId() *ShareId {
	if x, ok := m.GetSpec().(*ShareReference_Id); ok {
		return x.Id
	}
	return nil
}

func (m *ShareReference) GetKey() *ShareKey {
	if x, ok := m.GetSpec().(*ShareReference_Key); ok {
		return x.Key
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ShareReference) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ShareReference_Id)(nil),
		(*ShareReference_Key)(nil),
	}
}

// A share grant specifies the share permissions
// for a grantee.
type ShareGrant struct {
	// REQUIRED.
	// The grantee of the grant.
	Grantee *v1beta1.Grantee `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"`
	// REQUIRED.
	// The share permissions for the grant.
	Permissions *SharePermissions `protobuf:"bytes,2,opt,name=permissions,proto3" json:"permissions,omitempty"`
	// OPTIONAL
	// Expiration of the grant.
	Expiration           *v1beta12.Timestamp `protobuf:"bytes,3,opt,name=expiration,proto3" json:"expiration,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *ShareGrant) Reset()         { *m = ShareGrant{} }
func (m *ShareGrant) String() string { return proto.CompactTextString(m) }
func (*ShareGrant) ProtoMessage()    {}
func (*ShareGrant) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{6}
}

func (m *ShareGrant) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ShareGrant.Unmarshal(m, b)
}
func (m *ShareGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ShareGrant.Marshal(b, m, deterministic)
}
func (m *ShareGrant) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ShareGrant.Merge(m, src)
}
func (m *ShareGrant) XXX_Size() int {
	return xxx_messageInfo_ShareGrant.Size(m)
}
func (m *ShareGrant) XXX_DiscardUnknown() {
	xxx_messageInfo_ShareGrant.DiscardUnknown(m)
}

var xxx_messageInfo_ShareGrant proto.InternalMessageInfo

func (m *ShareGrant) GetGrantee() *v1beta1.Grantee {
	if m != nil {
		return m.Grantee
	}
	return nil
}

func (m *ShareGrant) GetPermissions() *SharePermissions {
	if m != nil {
		return m.Permissions
	}
	return nil
}

func (m *ShareGrant) GetExpiration() *v1beta12.Timestamp {
	if m != nil {
		return m.Expiration
	}
	return nil
}

// Represents a filter to apply to the request.
type Filter struct {
	// REQUIRED.
	Type Filter_Type `protobuf:"varint,2,opt,name=type,proto3,enum=cs3.sharing.collaboration.v1beta1.Filter_Type" json:"type,omitempty"`
	// Types that are valid to be assigned to Term:
	//	*Filter_ResourceId
	//	*Filter_Owner
	//	*Filter_Creator
	//	*Filter_GranteeType
	//	*Filter_SpaceId
	//	*Filter_State
	Term                 isFilter_Term `protobuf_oneof:"term"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *Filter) Reset()         { *m = Filter{} }
func (m *Filter) String() string { return proto.CompactTextString(m) }
func (*Filter) ProtoMessage()    {}
func (*Filter) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb95b447da150104, []int{7}
}

func (m *Filter) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Filter.Unmarshal(m, b)
}
func (m *Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Filter.Marshal(b, m, deterministic)
}
func (m *Filter) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Filter.Merge(m, src)
}
func (m *Filter) XXX_Size() int {
	return xxx_messageInfo_Filter.Size(m)
}
func (m *Filter) XXX_DiscardUnknown() {
	xxx_messageInfo_Filter.DiscardUnknown(m)
}

var xxx_messageInfo_Filter proto.InternalMessageInfo

func (m *Filter) GetType() Filter_Type {
	if m != nil {
		return m.Type
	}
	return Filter_TYPE_INVALID
}

type isFilter_Term interface {
	isFilter_Term()
}

type Filter_ResourceId struct {
	ResourceId *v1beta1.ResourceId `protobuf:"bytes,3,opt,name=resource_id,json=resourceId,proto3,oneof"`
}

type Filter_Owner struct {
	Owner *v1beta11.UserId `protobuf:"bytes,4,opt,name=owner,proto3,oneof"`
}

type Filter_Creator struct {
	Creator *v1beta11.UserId `protobuf:"bytes,5,opt,name=creator,proto3,oneof"`
}

type Filter_GranteeType struct {
	GranteeType v1beta1.GranteeType `protobuf:"varint,6,opt,name=grantee_type,json=granteeType,proto3,enum=cs3.storage.provider.v1beta1.GranteeType,oneof"`
}

type Filter_SpaceId struct {
	SpaceId string `protobuf:"bytes,7,opt,name=space_id,json=spaceId,proto3,oneof"`
}

type Filter_State struct {
	State ShareState `protobuf:"varint,8,opt,name=state,proto3,enum=cs3.sharing.collaboration.v1beta1.ShareState,oneof"`
}

func (*Filter_ResourceId) isFilter_Term() {}

func (*Filter_Owner) isFilter_Term() {}

func (*Filter_Creator) isFilter_Term() {}

func (*Filter_GranteeType) isFilter_Term() {}

func (*Filter_SpaceId) isFilter_Term() {}

func (*Filter_State) isFilter_Term() {}

func (m *Filter) GetTerm() isFilter_Term {
	if m != nil {
		return m.Term
	}
	return nil
}

func (m *Filter) GetResourceId() *v1beta1.ResourceId {
	if x, ok := m.GetTerm().(*Filter_ResourceId); ok {
		return x.ResourceId
	}
	return nil
}

func (m *Filter) GetOwner() *v1beta11.UserId {
	if x, ok := m.GetTerm().(*Filter_Owner); ok {
		return x.Owner
	}
	return nil
}

func (m *Filter) GetCreator() *v1beta11.UserId {
	if x, ok := m.GetTerm().(*Filter_Creator); ok {
		return x.Creator
	}
	return nil
}

func (m *Filter) GetGranteeType() v1beta1.GranteeType {
	if x, ok := m.GetTerm().(*Filter_GranteeType); ok {
		return x.GranteeType
	}
	return v1beta1.GranteeType_GRANTEE_TYPE_INVALID
}

func (m *Filter) GetSpaceId() string {
	if x, ok := m.GetTerm().(*Filter_SpaceId); ok {
		return x.SpaceId
	}
	return ""
}

func (m *Filter) GetState() ShareState {
	if x, ok := m.GetTerm().(*Filter_State); ok {
		return x.State
	}
	return ShareState_SHARE_STATE_INVALID
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Filter) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Filter_ResourceId)(nil),
		(*Filter_Owner)(nil),
		(*Filter_Creator)(nil),
		(*Filter_GranteeType)(nil),
		(*Filter_SpaceId)(nil),
		(*Filter_State)(nil),
	}
}

func init() {
	proto.RegisterEnum("cs3.sharing.collaboration.v1beta1.ShareState", ShareState_name, ShareState_value)
	proto.RegisterEnum("cs3.sharing.collaboration.v1beta1.Filter_Type", Filter_Type_name, Filter_Type_value)
	proto.RegisterType((*Share)(nil), "cs3.sharing.collaboration.v1beta1.Share")
	proto.RegisterType((*SharePermissions)(nil), "cs3.sharing.collaboration.v1beta1.SharePermissions")
	proto.RegisterType((*ReceivedShare)(nil), "cs3.sharing.collaboration.v1beta1.ReceivedShare")
	proto.RegisterType((*ShareKey)(nil), "cs3.sharing.collaboration.v1beta1.ShareKey")
	proto.RegisterType((*ShareId)(nil), "cs3.sharing.collaboration.v1beta1.ShareId")
	proto.RegisterType((*ShareReference)(nil), "cs3.sharing.collaboration.v1beta1.ShareReference")
	proto.RegisterType((*ShareGrant)(nil), "cs3.sharing.collaboration.v1beta1.ShareGrant")
	proto.RegisterType((*Filter)(nil), "cs3.sharing.collaboration.v1beta1.Filter")
}

func init() {
	proto.RegisterFile("cs3/sharing/collaboration/v1beta1/resources.proto", fileDescriptor_cb95b447da150104)
}

var fileDescriptor_cb95b447da150104 = []byte{
	// 934 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x4d, 0x6f, 0xe3, 0x44,
	0x18, 0xc7, 0xe3, 0x24, 0x4e, 0xd2, 0x27, 0xbb, 0x95, 0x77, 0x58, 0xc0, 0xda, 0x05, 0x89, 0x46,
	0x5a, 0xe8, 0x2e, 0xe0, 0x28, 0xcd, 0x01, 0x01, 0x0b, 0xab, 0xc4, 0x31, 0x8d, 0x69, 0x95, 0x46,
	0xe3, 0x74, 0x79, 0x51, 0xa5, 0xc8, 0xb5, 0x87, 0xd4, 0xa2, 0xb1, 0xcd, 0xd8, 0x2d, 0xe4, 0xcc,
	0x87, 0xe0, 0xc4, 0x85, 0x23, 0x37, 0xbe, 0x02, 0x47, 0x2e, 0x7c, 0x07, 0x3e, 0x04, 0x67, 0x34,
	0xcf, 0xd8, 0x69, 0x12, 0x69, 0xb7, 0xde, 0x96, 0x9b, 0x67, 0xe6, 0xff, 0x7b, 0xe6, 0x99, 0xe7,
	0x4d, 0x86, 0x8e, 0x97, 0x74, 0xdb, 0xc9, 0x99, 0xcb, 0x83, 0x70, 0xd6, 0xf6, 0xa2, 0xf3, 0x73,
	0xf7, 0x34, 0xe2, 0x6e, 0x1a, 0x44, 0x61, 0xfb, 0xb2, 0x73, 0xca, 0x52, 0xb7, 0xd3, 0xe6, 0x2c,
	0x89, 0x2e, 0xb8, 0xc7, 0x12, 0x23, 0xe6, 0x51, 0x1a, 0x91, 0x1d, 0x2f, 0xe9, 0x1a, 0x19, 0x62,
	0xac, 0x21, 0x46, 0x86, 0x3c, 0x78, 0x2c, 0xac, 0x06, 0x3e, 0x0b, 0xd3, 0x20, 0x5d, 0xb4, 0x2f,
	0x12, 0xc6, 0x5f, 0x64, 0xed, 0xc1, 0x07, 0xe8, 0x40, 0x1a, 0x71, 0x77, 0xc6, 0xda, 0x31, 0x8f,
	0x2e, 0x03, 0xff, 0x25, 0xea, 0xb7, 0x85, 0x3a, 0x5d, 0xc4, 0x2c, 0x59, 0x4a, 0x70, 0x25, 0x8f,
	0x5b, 0x7f, 0x56, 0x41, 0x75, 0xce, 0x5c, 0xce, 0xc8, 0x27, 0x50, 0x0e, 0x7c, 0x5d, 0x79, 0x47,
	0xd9, 0x6d, 0xee, 0x3d, 0x31, 0xae, 0xf5, 0xd8, 0x40, 0xca, 0xf6, 0x69, 0x39, 0xf0, 0x89, 0x0d,
	0xcd, 0xfc, 0xde, 0x69, 0xe0, 0xeb, 0x65, 0x34, 0xb2, 0x2b, 0x8d, 0x48, 0x47, 0x8d, 0xdc, 0xd1,
	0x25, 0x4f, 0x33, 0xc0, 0xf6, 0x29, 0xf0, 0xe5, 0x37, 0x39, 0x86, 0x66, 0xcc, 0xf8, 0x3c, 0x48,
	0x92, 0x20, 0x0a, 0x13, 0xbd, 0x82, 0xa6, 0xba, 0x45, 0xfd, 0x19, 0x5f, 0xa1, 0x74, 0xd5, 0x0e,
	0x79, 0x06, 0xf5, 0x19, 0x77, 0xc3, 0x94, 0x31, 0xbd, 0x8a, 0x26, 0x1f, 0xbd, 0xdc, 0xbb, 0x7d,
	0x29, 0xa6, 0x39, 0x45, 0x3e, 0x02, 0x35, 0xfa, 0x31, 0x64, 0x5c, 0x57, 0x11, 0xdf, 0x41, 0x3c,
	0x4f, 0x98, 0x21, 0x12, 0xb6, 0x64, 0x8f, 0x13, 0xc6, 0x6d, 0x9f, 0x4a, 0x3d, 0xf9, 0x14, 0xea,
	0x1e, 0x67, 0x6e, 0x1a, 0x71, 0xbd, 0x56, 0x14, 0xcd, 0x09, 0xb2, 0x07, 0xaa, 0x97, 0x06, 0x73,
	0xa6, 0xd7, 0x11, 0x7d, 0x0b, 0x51, 0x99, 0xbf, 0x1c, 0x99, 0x04, 0x73, 0x96, 0xa4, 0xee, 0x3c,
	0xa6, 0x52, 0x2a, 0x98, 0x39, 0x32, 0x8d, 0x22, 0x0c, 0x4a, 0xc9, 0x53, 0x00, 0xf6, 0x53, 0x1c,
	0xc8, 0x90, 0xea, 0x5b, 0x05, 0xc0, 0x15, 0x7d, 0x6b, 0x06, 0xda, 0x66, 0xf4, 0x89, 0xb3, 0x9e,
	0x47, 0x59, 0x57, 0x9d, 0x62, 0x25, 0xf1, 0xa2, 0x2c, 0xb6, 0xfe, 0x55, 0xe0, 0x2e, 0x65, 0x1e,
	0x0b, 0x2e, 0x99, 0x2f, 0xab, 0xf6, 0x73, 0x50, 0x45, 0x59, 0xb0, 0xec, 0x82, 0xdd, 0xa2, 0x85,
	0x42, 0x25, 0x46, 0x4c, 0x50, 0x93, 0xd4, 0x4d, 0x19, 0xd6, 0xec, 0xf6, 0xde, 0x87, 0x45, 0x79,
	0x47, 0x40, 0x54, 0xb2, 0x64, 0x08, 0xcd, 0x79, 0x74, 0x11, 0xa6, 0xd3, 0x38, 0x0a, 0xc2, 0x34,
	0xab, 0xd9, 0xf7, 0xae, 0x7b, 0xeb, 0x77, 0x8c, 0xb3, 0xd0, 0x63, 0x14, 0x90, 0x1d, 0x0b, 0x94,
	0xbc, 0x01, 0xb5, 0xb3, 0xc0, 0xf7, 0x59, 0x88, 0x55, 0xda, 0xa0, 0xd9, 0xaa, 0xf5, 0xb7, 0x02,
	0x0d, 0xbc, 0xf7, 0x80, 0x2d, 0xae, 0x4a, 0xb1, 0xfc, 0x8a, 0xa5, 0xb8, 0xd1, 0xa6, 0x95, 0x5b,
	0xb4, 0xe9, 0x6d, 0xfb, 0xa9, 0xf5, 0x2e, 0xd4, 0xb3, 0x09, 0x42, 0x1e, 0xc2, 0x56, 0x14, 0xbb,
	0x3f, 0x5c, 0x2c, 0x67, 0xc7, 0x16, 0x6d, 0xc8, 0x0d, 0xdb, 0x6f, 0xfd, 0xa2, 0xc0, 0xb6, 0xcc,
	0x58, 0x1e, 0x30, 0xf2, 0xf4, 0x66, 0x93, 0x6a, 0x58, 0xc2, 0x59, 0xf5, 0x0c, 0x2a, 0xdf, 0xb3,
	0x45, 0x16, 0xbb, 0xf7, 0x8b, 0xe2, 0x07, 0x6c, 0x31, 0x2c, 0x51, 0x41, 0xf6, 0x6b, 0x50, 0x4d,
	0x62, 0xe6, 0xb5, 0xfe, 0x51, 0x00, 0xf0, 0x0c, 0xdf, 0xb6, 0x1a, 0x11, 0xe5, 0x46, 0x13, 0x66,
	0x63, 0xf2, 0x95, 0xff, 0xa7, 0xc9, 0xb7, 0xde, 0xda, 0x95, 0x57, 0x6c, 0xed, 0x9f, 0x55, 0xa8,
	0x7d, 0x11, 0x9c, 0xa7, 0x8c, 0x93, 0x3e, 0x54, 0x05, 0x91, 0x75, 0x8a, 0x51, 0xc0, 0x31, 0x09,
	0x1a, 0x93, 0x45, 0xcc, 0x28, 0xb2, 0xe4, 0xe0, 0x56, 0x15, 0x38, 0x2c, 0xad, 0xd5, 0xe0, 0xc7,
	0x79, 0x1f, 0x54, 0x0b, 0xf6, 0xc1, 0xb0, 0x94, 0x77, 0xc2, 0x67, 0x57, 0x43, 0x59, 0x2d, 0x0e,
	0x2f, 0xc7, 0xf2, 0x08, 0xee, 0x64, 0x59, 0x9b, 0x62, 0x48, 0x6a, 0x18, 0x92, 0xc7, 0x85, 0x12,
	0x2e, 0xa2, 0x31, 0x2c, 0xd1, 0xe6, 0xec, 0x6a, 0x49, 0x1e, 0x42, 0x23, 0x89, 0x5d, 0x19, 0x13,
	0x31, 0xe9, 0xb7, 0xc4, 0x65, 0xb8, 0x63, 0xfb, 0xc4, 0xca, 0x47, 0x54, 0xe3, 0x06, 0x23, 0x4a,
	0x3c, 0x19, 0xe9, 0xd6, 0x1f, 0x0a, 0x54, 0xf1, 0x32, 0x0d, 0xee, 0x4c, 0xbe, 0x19, 0x5b, 0x53,
	0x7b, 0xf4, 0xbc, 0x77, 0x68, 0x0f, 0xb4, 0x12, 0x69, 0x42, 0x1d, 0x77, 0x46, 0x47, 0x9a, 0x42,
	0xee, 0x83, 0x86, 0x0b, 0x6a, 0x39, 0x47, 0xc7, 0xd4, 0xb4, 0xa6, 0xf6, 0x40, 0x2b, 0x93, 0x6d,
	0x00, 0xdc, 0x3d, 0xfa, 0x6a, 0x64, 0x51, 0xad, 0xb2, 0x34, 0x62, 0x52, 0xab, 0x37, 0x39, 0xa2,
	0x5a, 0x95, 0xbc, 0x0e, 0xf7, 0x70, 0x67, 0x9f, 0xf6, 0x46, 0x13, 0xcb, 0x9a, 0x8a, 0x85, 0xa6,
	0x12, 0x1d, 0xee, 0xe3, 0xb6, 0xf5, 0xb5, 0x79, 0x78, 0x3c, 0xb0, 0xa6, 0x03, 0x6b, 0x64, 0xf7,
	0x0e, 0x1d, 0xad, 0x46, 0xee, 0xc1, 0x5d, 0x3c, 0x71, 0xc6, 0x3d, 0x79, 0x4b, 0x7d, 0x79, 0x8b,
	0x33, 0xe9, 0x4d, 0x2c, 0xad, 0x21, 0x5a, 0x2d, 0x65, 0x7c, 0xfe, 0x84, 0x67, 0x9d, 0x86, 0x4f,
	0x22, 0x6f, 0xc2, 0x6b, 0xce, 0xb0, 0x47, 0x33, 0xd9, 0xca, 0x3b, 0x36, 0x0e, 0xc6, 0xd6, 0x68,
	0x60, 0x8f, 0xf6, 0x35, 0x45, 0x38, 0xb1, 0x7a, 0xd0, 0x33, 0x4d, 0x6b, 0x3c, 0xb1, 0xc4, 0xbb,
	0x36, 0x4e, 0xa8, 0xf5, 0xa5, 0x65, 0x8a, 0x93, 0x4a, 0xff, 0x57, 0x05, 0x1e, 0x79, 0xd1, 0xfc,
	0xfa, 0x68, 0xf7, 0xb7, 0xf3, 0x0a, 0x4d, 0xc6, 0xe2, 0x9f, 0x6a, 0xac, 0x7c, 0x7b, 0x7f, 0x4d,
	0x98, 0xe9, 0x7e, 0x2b, 0x57, 0x4c, 0xc7, 0xfc, 0xbd, 0xbc, 0x63, 0x26, 0x5d, 0xcc, 0x90, 0xb0,
	0x68, 0xae, 0x59, 0x7c, 0xde, 0xe9, 0x0b, 0xe5, 0x5f, 0xa8, 0x39, 0xc9, 0x34, 0x27, 0x6b, 0x9a,
	0x93, 0x4c, 0x73, 0x5a, 0xc3, 0x1f, 0xb8, 0xee, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x41, 0x35,
	0x12, 0xf0, 0x90, 0x0a, 0x00, 0x00,
}
