Merge pull request #2424 from aduffeck/bump-cs3apis

Bump reva and the cs3 apis
This commit is contained in:
Andre Duffeck
2026-03-09 08:47:35 +01:00
committed by GitHub
99 changed files with 5496 additions and 2871 deletions

22
go.mod
View File

@@ -14,7 +14,7 @@ require (
github.com/blevesearch/bleve/v2 v2.5.7
github.com/cenkalti/backoff v2.2.1+incompatible
github.com/coreos/go-oidc/v3 v3.17.0
github.com/cs3org/go-cs3apis v0.0.0-20250908152307-4ca807afe54e
github.com/cs3org/go-cs3apis v0.0.0-20260130145416-2dc593dc27e7
github.com/davidbyttow/govips/v2 v2.17.0
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8
github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e
@@ -65,7 +65,7 @@ require (
github.com/open-policy-agent/opa v1.13.2
github.com/opencloud-eu/icap-client v0.0.0-20250930132611-28a2afe62d89
github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260204102724-10bcda1b3068
github.com/opencloud-eu/reva/v2 v2.42.4
github.com/opencloud-eu/reva/v2 v2.42.5-0.20260306135406-7dc643429c82
github.com/opensearch-project/opensearch-go/v4 v4.6.0
github.com/orcaman/concurrent-map v1.0.0
github.com/pkg/errors v0.9.1
@@ -99,9 +99,9 @@ require (
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0
go.opentelemetry.io/contrib/zpages v0.65.0
go.opentelemetry.io/otel v1.41.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0
go.opentelemetry.io/otel/sdk v1.40.0
go.opentelemetry.io/otel/sdk v1.41.0
go.opentelemetry.io/otel/trace v1.41.0
golang.org/x/crypto v0.48.0
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac
@@ -122,7 +122,7 @@ require (
require (
contrib.go.opencensus.io/exporter/prometheus v0.4.2 // indirect
filippo.io/edwards25519 v1.1.0 // indirect
filippo.io/edwards25519 v1.1.1 // indirect
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect
github.com/BurntSushi/toml v1.6.0 // indirect
@@ -169,7 +169,7 @@ require (
github.com/clipperhouse/displaywidth v0.6.2 // indirect
github.com/clipperhouse/stringish v0.1.1 // indirect
github.com/clipperhouse/uax29/v2 v2.3.0 // indirect
github.com/cloudflare/circl v1.6.1 // indirect
github.com/cloudflare/circl v1.6.3 // indirect
github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
@@ -283,7 +283,7 @@ require (
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/mattn/go-sqlite3 v1.14.33 // indirect
github.com/mattn/go-sqlite3 v1.14.34 // indirect
github.com/maxymania/go-system v0.0.0-20170110133659-647cc364bf0b // indirect
github.com/mendsley/gojwk v0.0.0-20141217222730-4d5ec6e58103 // indirect
github.com/miekg/dns v1.1.68 // indirect
@@ -378,12 +378,12 @@ require (
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
github.com/yashtewari/glob-intersection v0.2.0 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.etcd.io/etcd/api/v3 v3.6.7 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.6.7 // indirect
go.etcd.io/etcd/client/v3 v3.6.7 // indirect
go.etcd.io/etcd/api/v3 v3.6.8 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.6.8 // indirect
go.etcd.io/etcd/client/v3 v3.6.8 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect
go.opentelemetry.io/otel/metric v1.41.0 // indirect
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
go.uber.org/multierr v1.11.0 // indirect

48
go.sum
View File

@@ -39,8 +39,8 @@ contrib.go.opencensus.io/exporter/prometheus v0.4.2/go.mod h1:dvEHbiKmgvbr5pjaF9
dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
filippo.io/edwards25519 v1.1.1 h1:YpjwWWlNmGIDyXOn8zLzqiD+9TyIlPhGFG96P39uBpw=
filippo.io/edwards25519 v1.1.1/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/Acconut/go-httptest-recorder v1.0.0 h1:TAv2dfnqp/l+SUvIaMAUK4GeN4+wqb6KZsFFFTGhoJg=
github.com/Acconut/go-httptest-recorder v1.0.0/go.mod h1:CwQyhTH1kq/gLyWiRieo7c0uokpu3PXeyF/nZjUNtmM=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk=
@@ -229,8 +229,8 @@ github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfa
github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
github.com/clipperhouse/uax29/v2 v2.3.0 h1:SNdx9DVUqMoBuBoW3iLOj4FQv3dN5mDtuqwuhIGpJy4=
github.com/clipperhouse/uax29/v2 v2.3.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
@@ -269,8 +269,8 @@ github.com/crewjam/httperr v0.2.0 h1:b2BfXR8U3AlIHwNeFFvZ+BV1LFvKLlzMjzaTnZMybNo
github.com/crewjam/httperr v0.2.0/go.mod h1:Jlz+Sg/XqBQhyMjdDiC+GNNRzZTD7x39Gu3pglZ5oH4=
github.com/crewjam/saml v0.4.14 h1:g9FBNx62osKusnFzs3QTN5L9CVA/Egfgm+stJShzw/c=
github.com/crewjam/saml v0.4.14/go.mod h1:UVSZCf18jJkk6GpWNVqcyQJMD5HsRugBPf4I1nl2mME=
github.com/cs3org/go-cs3apis v0.0.0-20250908152307-4ca807afe54e h1:fC/BWMVWNFlSbzvSp2xTaH0qpJiq7ScRrOsCzpgi1xI=
github.com/cs3org/go-cs3apis v0.0.0-20250908152307-4ca807afe54e/go.mod h1:DedpcqXl193qF/08Y04IO0PpxyyMu8+GrkD6kWK2MEQ=
github.com/cs3org/go-cs3apis v0.0.0-20260130145416-2dc593dc27e7 h1:ez+InorrZ2HXkPmPeeDstPSTkjNmySUZXaT7xEJNOkk=
github.com/cs3org/go-cs3apis v0.0.0-20260130145416-2dc593dc27e7/go.mod h1:DedpcqXl193qF/08Y04IO0PpxyyMu8+GrkD6kWK2MEQ=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
github.com/cyphar/filepath-securejoin v0.5.1 h1:eYgfMq5yryL4fbWfkLpFFy2ukSELzaJOTaUTuh+oF48=
github.com/cyphar/filepath-securejoin v0.5.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
@@ -833,8 +833,8 @@ github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mattn/go-sqlite3 v1.14.33 h1:A5blZ5ulQo2AtayQ9/limgHEkFreKj1Dv226a1K73s0=
github.com/mattn/go-sqlite3 v1.14.33/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk=
github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
@@ -965,8 +965,8 @@ github.com/opencloud-eu/inotifywaitgo v0.0.0-20251111171128-a390bae3c5e9 h1:dIft
github.com/opencloud-eu/inotifywaitgo v0.0.0-20251111171128-a390bae3c5e9/go.mod h1:JWyDC6H+5oZRdUJUgKuaye+8Ph5hEs6HVzVoPKzWSGI=
github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260204102724-10bcda1b3068 h1:i09YEVYbiUBMhxyak93REn/ZJOTRhAN4I3PXp2nCXgU=
github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260204102724-10bcda1b3068/go.mod h1:pzatilMEHZFT3qV7C/X3MqOa3NlRQuYhlRhZTL+hN6Q=
github.com/opencloud-eu/reva/v2 v2.42.4 h1:e1jNg5IGtRul7JUnrqMIa4lYFjAfbGzNZaSSJL/4h5U=
github.com/opencloud-eu/reva/v2 v2.42.4/go.mod h1:uYGfaWGUxQOKnLSbu8tFUHBz2AFib263VGfyapuxILA=
github.com/opencloud-eu/reva/v2 v2.42.5-0.20260306135406-7dc643429c82 h1:6KovbISmxW54FEKy/1TOSYDA7SZ035pOA6ZNHuACzmQ=
github.com/opencloud-eu/reva/v2 v2.42.5-0.20260306135406-7dc643429c82/go.mod h1:4aBKDa49LC+OQFvJgAPY4ZQIwi0Fuh3vJPcRt/DPL7w=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
@@ -1290,12 +1290,12 @@ github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo=
go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E=
go.etcd.io/etcd/api/v3 v3.6.7 h1:7BNJ2gQmc3DNM+9cRkv7KkGQDayElg8x3X+tFDYS+E0=
go.etcd.io/etcd/api/v3 v3.6.7/go.mod h1:xJ81TLj9hxrYYEDmXTeKURMeY3qEDN24hqe+q7KhbnI=
go.etcd.io/etcd/client/pkg/v3 v3.6.7 h1:vvzgyozz46q+TyeGBuFzVuI53/yd133CHceNb/AhBVs=
go.etcd.io/etcd/client/pkg/v3 v3.6.7/go.mod h1:2IVulJ3FZ/czIGl9T4lMF1uxzrhRahLqe+hSgy+Kh7Q=
go.etcd.io/etcd/client/v3 v3.6.7 h1:9WqA5RpIBtdMxAy1ukXLAdtg2pAxNqW5NUoO2wQrE6U=
go.etcd.io/etcd/client/v3 v3.6.7/go.mod h1:2XfROY56AXnUqGsvl+6k29wrwsSbEh1lAouQB1vHpeE=
go.etcd.io/etcd/api/v3 v3.6.8 h1:gqb1VN92TAI6G2FiBvWcqKtHiIjr4SU2GdXxTwyexbM=
go.etcd.io/etcd/api/v3 v3.6.8/go.mod h1:qyQj1HZPUV3B5cbAL8scG62+fyz5dSxxu0w8pn28N6Q=
go.etcd.io/etcd/client/pkg/v3 v3.6.8 h1:Qs/5C0LNFiqXxYf2GU8MVjYUEXJ6sZaYOz0zEqQgy50=
go.etcd.io/etcd/client/pkg/v3 v3.6.8/go.mod h1:GsiTRUZE2318PggZkAo6sWb6l8JLVrnckTNfbG8PWtw=
go.etcd.io/etcd/client/v3 v3.6.8 h1:B3G76t1UykqAOrbio7s/EPatixQDkQBevN8/mwiplrY=
go.etcd.io/etcd/client/v3 v3.6.8/go.mod h1:MVG4BpSIuumPi+ELF7wYtySETmoTWBHVcDoHdVupwt8=
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
@@ -1316,20 +1316,20 @@ go.opentelemetry.io/contrib/zpages v0.65.0 h1:mi6aZS4PRSDIOYmr8DB7mdKpuyL+Q7ivIh
go.opentelemetry.io/contrib/zpages v0.65.0/go.mod h1:eMI6Q53htJ08b8+QxQsIjofw+oUSsT4ieNGu5fcimoU=
go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c=
go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0 h1:Ckwye2FpXkYgiHX7fyVrN1uA/UYd9ounqqTuSNAv0k4=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0/go.mod h1:teIFJh5pW2y+AN7riv6IBPX2DuesS3HgP39mwOspKwU=
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0 h1:MzfofMZN8ulNqobCmCAVbqVL5syHw+eB2qPRkCMA/fQ=
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0/go.mod h1:E73G9UFtKRXrxhBsHtG00TB5WxX57lpsQzogDkqBTz8=
go.opentelemetry.io/otel/metric v1.41.0 h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ=
go.opentelemetry.io/otel/metric v1.41.0/go.mod h1:xPvCwd9pU0VN8tPZYzDZV/BMj9CM9vs00GuBjeKhJps=
go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8=
go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE=
go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw=
go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg=
go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8=
go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90=
go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8=
go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y=
go.opentelemetry.io/otel/trace v1.41.0 h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0=
go.opentelemetry.io/otel/trace v1.41.0/go.mod h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis=
go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A=

View File

@@ -111,7 +111,14 @@ func (i *CS3) GetUsers(ctx context.Context, oreq *godata.GoDataRequest) ([]*libr
res, err := gatewayClient.FindUsers(ctx, &cs3user.FindUsersRequest{
// FIXME presence match is currently not implemented, an empty search currently leads to
// Unwilling To Perform": Search Error: error parsing filter: (&(objectclass=posixAccount)(|(cn=*)(displayname=*)(mail=*))), error: Present filter match for cn not implemented
Query: search,
Filters: []*cs3user.Filter{
{
Type: cs3user.Filter_TYPE_QUERY,
Term: &cs3user.Filter_Query{
Query: search,
},
},
},
})
switch {
case err != nil:
@@ -162,7 +169,14 @@ func (i *CS3) GetGroups(ctx context.Context, oreq *godata.GoDataRequest) ([]*lib
res, err := gatewayClient.FindGroups(ctx, &cs3group.FindGroupsRequest{
// FIXME presence match is currently not implemented, an empty search currently leads to
// Unwilling To Perform": Search Error: error parsing filter: (&(objectclass=posixAccount)(|(cn=*)(displayname=*)(mail=*))), error: Present filter match for cn not implemented
Filter: search,
Filters: []*cs3group.Filter{
{
Type: cs3group.Filter_TYPE_QUERY,
Term: &cs3group.Filter_Query{
Query: search,
},
},
},
})
switch {

View File

@@ -265,6 +265,7 @@ func (v *Point) MultiScalarMult(scalars []*Scalar, points []*Point) *Point {
tmp1 := &projP1xP1{}
tmp2 := &projP2{}
// Lookup-and-add the appropriate multiple of each input point
v.Set(NewIdentityPoint())
for j := range tables {
tables[j].SelectInto(multiple, digits[j][63])
tmp1.Add(v, multiple) // tmp1 = v + x_(j,63)*Q in P1xP1 coords

View File

@@ -14,14 +14,14 @@ import "unsafe"
type storageBuf [maxRate / 8]uint64
func (b *storageBuf) asBytes() *[maxRate]byte {
return (*[maxRate]byte)(unsafe.Pointer(b))
return (*[maxRate]byte)(unsafe.Pointer(b)) //nolint:gosec
}
// xorInuses unaligned reads and writes to update d.a to contain d.a
// XOR buf.
func xorIn(d *State, buf []byte) {
n := len(buf)
bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8]
bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8] //nolint:gosec
if n >= 72 {
d.a[0] ^= bw[0]
d.a[1] ^= bw[1]
@@ -56,6 +56,6 @@ func xorIn(d *State, buf []byte) {
}
func copyOut(d *State, buf []byte) {
ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0]))
ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) //nolint:gosec
copy(buf, ab[:])
}

View File

@@ -38,6 +38,12 @@ type PrivateKey interface {
encoding.BinaryMarshaler
}
// A private key that retains the seed with which it was generated.
type Seeded interface {
// returns the seed if retained, otherwise nil
Seed() []byte
}
// A Scheme represents a specific instance of a signature scheme.
type Scheme interface {
// Name of the scheme.

View File

@@ -55,6 +55,8 @@ const (
// or if in a view-only mode users are not allowed to switch to edit mode,
// then this mode MUST fall back to READ_WRITE.
ViewMode_VIEW_MODE_PREVIEW ViewMode = 4
// The resource can be viewed in embedded mode. Editing is disabled.
ViewMode_VIEW_MODE_EMBEDDED ViewMode = 5
)
// Enum value maps for ViewMode.
@@ -65,6 +67,7 @@ var (
2: "VIEW_MODE_READ_ONLY",
3: "VIEW_MODE_READ_WRITE",
4: "VIEW_MODE_PREVIEW",
5: "VIEW_MODE_EMBEDDED",
}
ViewMode_value = map[string]int32{
"VIEW_MODE_INVALID": 0,
@@ -72,6 +75,7 @@ var (
"VIEW_MODE_READ_ONLY": 2,
"VIEW_MODE_READ_WRITE": 3,
"VIEW_MODE_PREVIEW": 4,
"VIEW_MODE_EMBEDDED": 5,
}
)
@@ -280,7 +284,7 @@ var file_cs3_app_provider_v1beta1_resources_proto_rawDesc = []byte{
0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x2a, 0x84, 0x01, 0x0a, 0x08, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x6f, 0x64, 0x65,
0x02, 0x38, 0x01, 0x2a, 0x9c, 0x01, 0x0a, 0x08, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x6f, 0x64, 0x65,
0x12, 0x15, 0x0a, 0x11, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e,
0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x56, 0x49, 0x45, 0x57, 0x5f,
0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01,
@@ -288,27 +292,29 @@ var file_cs3_app_provider_v1beta1_resources_proto_rawDesc = []byte{
0x41, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x49, 0x45,
0x57, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54,
0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x4d, 0x4f, 0x44, 0x45,
0x5f, 0x50, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x2a, 0x41, 0x0a, 0x06, 0x54, 0x61,
0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x49,
0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x41, 0x52, 0x47,
0x45, 0x54, 0x5f, 0x49, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54,
0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x41, 0x4e, 0x4b, 0x10, 0x02, 0x42, 0xf8, 0x01,
0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e,
0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73, 0x33,
0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
0x73, 0x33, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x50, 0xaa, 0x02, 0x18,
0x43, 0x73, 0x33, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, 0x43, 0x73, 0x33, 0x5c, 0x41,
0x70, 0x70, 0x5c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x43, 0x73, 0x33, 0x5c, 0x41, 0x70, 0x70, 0x5c, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47,
0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1b, 0x43, 0x73, 0x33,
0x3a, 0x3a, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a,
0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x5f, 0x50, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x49,
0x45, 0x57, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x4d, 0x42, 0x45, 0x44, 0x44, 0x45, 0x44,
0x10, 0x05, 0x2a, 0x41, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x0e,
0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00,
0x12, 0x11, 0x0a, 0x0d, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x49, 0x46, 0x52, 0x41, 0x4d,
0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c,
0x41, 0x4e, 0x4b, 0x10, 0x02, 0x42, 0xf8, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x2d, 0x63,
0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x70,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b,
0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2,
0x02, 0x03, 0x43, 0x41, 0x50, 0xaa, 0x02, 0x18, 0x43, 0x73, 0x33, 0x2e, 0x41, 0x70, 0x70, 0x2e,
0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0xca, 0x02, 0x18, 0x43, 0x73, 0x33, 0x5c, 0x41, 0x70, 0x70, 0x5c, 0x50, 0x72, 0x6f, 0x76, 0x69,
0x64, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x43, 0x73,
0x33, 0x5c, 0x41, 0x70, 0x70, 0x5c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5c, 0x56,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0xea, 0x02, 0x1b, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x50,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

File diff suppressed because it is too large Load Diff

View File

@@ -32,16 +32,17 @@ import (
v1beta110 "github.com/cs3org/go-cs3apis/cs3/auth/registry/v1beta1"
v1beta19 "github.com/cs3org/go-cs3apis/cs3/identity/group/v1beta1"
v1beta18 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
v1beta113 "github.com/cs3org/go-cs3apis/cs3/ocm/core/v1beta1"
v1beta114 "github.com/cs3org/go-cs3apis/cs3/ocm/core/v1beta1"
v1beta113 "github.com/cs3org/go-cs3apis/cs3/ocm/incoming/v1beta1"
v1beta111 "github.com/cs3org/go-cs3apis/cs3/ocm/invite/v1beta1"
v1beta112 "github.com/cs3org/go-cs3apis/cs3/ocm/provider/v1beta1"
v1beta115 "github.com/cs3org/go-cs3apis/cs3/permissions/v1beta1"
v1beta116 "github.com/cs3org/go-cs3apis/cs3/permissions/v1beta1"
v1beta14 "github.com/cs3org/go-cs3apis/cs3/preferences/v1beta1"
v1beta13 "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1"
v1beta15 "github.com/cs3org/go-cs3apis/cs3/sharing/link/v1beta1"
v1beta16 "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1"
v1beta11 "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
v1beta114 "github.com/cs3org/go-cs3apis/cs3/tx/v1beta1"
v1beta115 "github.com/cs3org/go-cs3apis/cs3/tx/v1beta1"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
@@ -113,6 +114,7 @@ const (
GatewayAPI_GetOCMShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/GetOCMShare"
GatewayAPI_GetOCMShareByToken_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/GetOCMShareByToken"
GatewayAPI_ListOCMShares_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/ListOCMShares"
GatewayAPI_ListExistingOCMShares_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/ListExistingOCMShares"
GatewayAPI_UpdateOCMShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/UpdateOCMShare"
GatewayAPI_ListReceivedOCMShares_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/ListReceivedOCMShares"
GatewayAPI_UpdateReceivedOCMShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/UpdateReceivedOCMShare"
@@ -144,6 +146,9 @@ const (
GatewayAPI_IsProviderAllowed_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/IsProviderAllowed"
GatewayAPI_GetInfoByDomain_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/GetInfoByDomain"
GatewayAPI_ListAllProviders_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/ListAllProviders"
GatewayAPI_CreateOCMIncomingShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/CreateOCMIncomingShare"
GatewayAPI_UpdateOCMIncomingShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/UpdateOCMIncomingShare"
GatewayAPI_DeleteOCMIncomingShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/DeleteOCMIncomingShare"
GatewayAPI_CreateOCMCoreShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/CreateOCMCoreShare"
GatewayAPI_UpdateOCMCoreShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/UpdateOCMCoreShare"
GatewayAPI_DeleteOCMCoreShare_FullMethodName = "/cs3.gateway.v1beta1.GatewayAPI/DeleteOCMCoreShare"
@@ -371,6 +376,9 @@ type GatewayAPIClient interface {
// both as owner and creator. If a filter is specified, only
// shares satisfying the filter MUST be returned.
ListOCMShares(ctx context.Context, in *v1beta16.ListOCMSharesRequest, opts ...grpc.CallOption) (*v1beta16.ListOCMSharesResponse, error)
// List all existing shares the authenticated principal has created,
// including their storage resource information.
ListExistingOCMShares(ctx context.Context, in *v1beta16.ListOCMSharesRequest, opts ...grpc.CallOption) (*ListExistingOCMSharesResponse, error)
// Updates a share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
UpdateOCMShare(ctx context.Context, in *v1beta16.UpdateOCMShareRequest, opts ...grpc.CallOption) (*v1beta16.UpdateOCMShareResponse, error)
@@ -442,24 +450,30 @@ type GatewayAPIClient interface {
GetInfoByDomain(ctx context.Context, in *v1beta112.GetInfoByDomainRequest, opts ...grpc.CallOption) (*v1beta112.GetInfoByDomainResponse, error)
// Get the information of all the providers registered in the mesh.
ListAllProviders(ctx context.Context, in *v1beta112.ListAllProvidersRequest, opts ...grpc.CallOption) (*v1beta112.ListAllProvidersResponse, error)
// Creates a new OCM share.
CreateOCMCoreShare(ctx context.Context, in *v1beta113.CreateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta113.CreateOCMCoreShareResponse, error)
// Updates an OCM share.
UpdateOCMCoreShare(ctx context.Context, in *v1beta113.UpdateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta113.UpdateOCMCoreShareResponse, error)
// Deletes an OCM share.
DeleteOCMCoreShare(ctx context.Context, in *v1beta113.DeleteOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta113.DeleteOCMCoreShareResponse, error)
// Creates a new incoming OCM share.
CreateOCMIncomingShare(ctx context.Context, in *v1beta113.CreateOCMIncomingShareRequest, opts ...grpc.CallOption) (*v1beta113.CreateOCMIncomingShareResponse, error)
// Updates an incoming OCM share.
UpdateOCMIncomingShare(ctx context.Context, in *v1beta113.UpdateOCMIncomingShareRequest, opts ...grpc.CallOption) (*v1beta113.UpdateOCMIncomingShareResponse, error)
// Deletes an incoming OCM share.
DeleteOCMIncomingShare(ctx context.Context, in *v1beta113.DeleteOCMIncomingShareRequest, opts ...grpc.CallOption) (*v1beta113.DeleteOCMIncomingShareResponse, error)
// Deprecated. Creates a new OCM share.
CreateOCMCoreShare(ctx context.Context, in *v1beta114.CreateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta114.CreateOCMCoreShareResponse, error)
// Deprecated. Updates an OCM share.
UpdateOCMCoreShare(ctx context.Context, in *v1beta114.UpdateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta114.UpdateOCMCoreShareResponse, error)
// Deprecated. Deletes an OCM share.
DeleteOCMCoreShare(ctx context.Context, in *v1beta114.DeleteOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta114.DeleteOCMCoreShareResponse, error)
// Requests creation of a transfer.
CreateTransfer(ctx context.Context, in *v1beta114.CreateTransferRequest, opts ...grpc.CallOption) (*v1beta114.CreateTransferResponse, error)
CreateTransfer(ctx context.Context, in *v1beta115.CreateTransferRequest, opts ...grpc.CallOption) (*v1beta115.CreateTransferResponse, error)
// Requests a transfer status.
GetTransferStatus(ctx context.Context, in *v1beta114.GetTransferStatusRequest, opts ...grpc.CallOption) (*v1beta114.GetTransferStatusResponse, error)
GetTransferStatus(ctx context.Context, in *v1beta115.GetTransferStatusRequest, opts ...grpc.CallOption) (*v1beta115.GetTransferStatusResponse, error)
// Requests to cancel a transfer.
CancelTransfer(ctx context.Context, in *v1beta114.CancelTransferRequest, opts ...grpc.CallOption) (*v1beta114.CancelTransferResponse, error)
CancelTransfer(ctx context.Context, in *v1beta115.CancelTransferRequest, opts ...grpc.CallOption) (*v1beta115.CancelTransferResponse, error)
// Requests a list of transfers received by the authenticated principle.
ListTransfers(ctx context.Context, in *v1beta114.ListTransfersRequest, opts ...grpc.CallOption) (*v1beta114.ListTransfersResponse, error)
ListTransfers(ctx context.Context, in *v1beta115.ListTransfersRequest, opts ...grpc.CallOption) (*v1beta115.ListTransfersResponse, error)
// Requests retrying a transfer.
RetryTransfer(ctx context.Context, in *v1beta114.RetryTransferRequest, opts ...grpc.CallOption) (*v1beta114.RetryTransferResponse, error)
RetryTransfer(ctx context.Context, in *v1beta115.RetryTransferRequest, opts ...grpc.CallOption) (*v1beta115.RetryTransferResponse, error)
// CheckPermission checks if a user or group has a certain permission.
CheckPermission(ctx context.Context, in *v1beta115.CheckPermissionRequest, opts ...grpc.CallOption) (*v1beta115.CheckPermissionResponse, error)
CheckPermission(ctx context.Context, in *v1beta116.CheckPermissionRequest, opts ...grpc.CallOption) (*v1beta116.CheckPermissionResponse, error)
}
type gatewayAPIClient struct {
@@ -1056,6 +1070,15 @@ func (c *gatewayAPIClient) ListOCMShares(ctx context.Context, in *v1beta16.ListO
return out, nil
}
func (c *gatewayAPIClient) ListExistingOCMShares(ctx context.Context, in *v1beta16.ListOCMSharesRequest, opts ...grpc.CallOption) (*ListExistingOCMSharesResponse, error) {
out := new(ListExistingOCMSharesResponse)
err := c.cc.Invoke(ctx, GatewayAPI_ListExistingOCMShares_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *gatewayAPIClient) UpdateOCMShare(ctx context.Context, in *v1beta16.UpdateOCMShareRequest, opts ...grpc.CallOption) (*v1beta16.UpdateOCMShareResponse, error) {
out := new(v1beta16.UpdateOCMShareResponse)
err := c.cc.Invoke(ctx, GatewayAPI_UpdateOCMShare_FullMethodName, in, out, opts...)
@@ -1335,8 +1358,35 @@ func (c *gatewayAPIClient) ListAllProviders(ctx context.Context, in *v1beta112.L
return out, nil
}
func (c *gatewayAPIClient) CreateOCMCoreShare(ctx context.Context, in *v1beta113.CreateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta113.CreateOCMCoreShareResponse, error) {
out := new(v1beta113.CreateOCMCoreShareResponse)
func (c *gatewayAPIClient) CreateOCMIncomingShare(ctx context.Context, in *v1beta113.CreateOCMIncomingShareRequest, opts ...grpc.CallOption) (*v1beta113.CreateOCMIncomingShareResponse, error) {
out := new(v1beta113.CreateOCMIncomingShareResponse)
err := c.cc.Invoke(ctx, GatewayAPI_CreateOCMIncomingShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *gatewayAPIClient) UpdateOCMIncomingShare(ctx context.Context, in *v1beta113.UpdateOCMIncomingShareRequest, opts ...grpc.CallOption) (*v1beta113.UpdateOCMIncomingShareResponse, error) {
out := new(v1beta113.UpdateOCMIncomingShareResponse)
err := c.cc.Invoke(ctx, GatewayAPI_UpdateOCMIncomingShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *gatewayAPIClient) DeleteOCMIncomingShare(ctx context.Context, in *v1beta113.DeleteOCMIncomingShareRequest, opts ...grpc.CallOption) (*v1beta113.DeleteOCMIncomingShareResponse, error) {
out := new(v1beta113.DeleteOCMIncomingShareResponse)
err := c.cc.Invoke(ctx, GatewayAPI_DeleteOCMIncomingShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *gatewayAPIClient) CreateOCMCoreShare(ctx context.Context, in *v1beta114.CreateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta114.CreateOCMCoreShareResponse, error) {
out := new(v1beta114.CreateOCMCoreShareResponse)
err := c.cc.Invoke(ctx, GatewayAPI_CreateOCMCoreShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1344,8 +1394,8 @@ func (c *gatewayAPIClient) CreateOCMCoreShare(ctx context.Context, in *v1beta113
return out, nil
}
func (c *gatewayAPIClient) UpdateOCMCoreShare(ctx context.Context, in *v1beta113.UpdateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta113.UpdateOCMCoreShareResponse, error) {
out := new(v1beta113.UpdateOCMCoreShareResponse)
func (c *gatewayAPIClient) UpdateOCMCoreShare(ctx context.Context, in *v1beta114.UpdateOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta114.UpdateOCMCoreShareResponse, error) {
out := new(v1beta114.UpdateOCMCoreShareResponse)
err := c.cc.Invoke(ctx, GatewayAPI_UpdateOCMCoreShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1353,8 +1403,8 @@ func (c *gatewayAPIClient) UpdateOCMCoreShare(ctx context.Context, in *v1beta113
return out, nil
}
func (c *gatewayAPIClient) DeleteOCMCoreShare(ctx context.Context, in *v1beta113.DeleteOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta113.DeleteOCMCoreShareResponse, error) {
out := new(v1beta113.DeleteOCMCoreShareResponse)
func (c *gatewayAPIClient) DeleteOCMCoreShare(ctx context.Context, in *v1beta114.DeleteOCMCoreShareRequest, opts ...grpc.CallOption) (*v1beta114.DeleteOCMCoreShareResponse, error) {
out := new(v1beta114.DeleteOCMCoreShareResponse)
err := c.cc.Invoke(ctx, GatewayAPI_DeleteOCMCoreShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1362,8 +1412,8 @@ func (c *gatewayAPIClient) DeleteOCMCoreShare(ctx context.Context, in *v1beta113
return out, nil
}
func (c *gatewayAPIClient) CreateTransfer(ctx context.Context, in *v1beta114.CreateTransferRequest, opts ...grpc.CallOption) (*v1beta114.CreateTransferResponse, error) {
out := new(v1beta114.CreateTransferResponse)
func (c *gatewayAPIClient) CreateTransfer(ctx context.Context, in *v1beta115.CreateTransferRequest, opts ...grpc.CallOption) (*v1beta115.CreateTransferResponse, error) {
out := new(v1beta115.CreateTransferResponse)
err := c.cc.Invoke(ctx, GatewayAPI_CreateTransfer_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1371,8 +1421,8 @@ func (c *gatewayAPIClient) CreateTransfer(ctx context.Context, in *v1beta114.Cre
return out, nil
}
func (c *gatewayAPIClient) GetTransferStatus(ctx context.Context, in *v1beta114.GetTransferStatusRequest, opts ...grpc.CallOption) (*v1beta114.GetTransferStatusResponse, error) {
out := new(v1beta114.GetTransferStatusResponse)
func (c *gatewayAPIClient) GetTransferStatus(ctx context.Context, in *v1beta115.GetTransferStatusRequest, opts ...grpc.CallOption) (*v1beta115.GetTransferStatusResponse, error) {
out := new(v1beta115.GetTransferStatusResponse)
err := c.cc.Invoke(ctx, GatewayAPI_GetTransferStatus_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1380,8 +1430,8 @@ func (c *gatewayAPIClient) GetTransferStatus(ctx context.Context, in *v1beta114.
return out, nil
}
func (c *gatewayAPIClient) CancelTransfer(ctx context.Context, in *v1beta114.CancelTransferRequest, opts ...grpc.CallOption) (*v1beta114.CancelTransferResponse, error) {
out := new(v1beta114.CancelTransferResponse)
func (c *gatewayAPIClient) CancelTransfer(ctx context.Context, in *v1beta115.CancelTransferRequest, opts ...grpc.CallOption) (*v1beta115.CancelTransferResponse, error) {
out := new(v1beta115.CancelTransferResponse)
err := c.cc.Invoke(ctx, GatewayAPI_CancelTransfer_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1389,8 +1439,8 @@ func (c *gatewayAPIClient) CancelTransfer(ctx context.Context, in *v1beta114.Can
return out, nil
}
func (c *gatewayAPIClient) ListTransfers(ctx context.Context, in *v1beta114.ListTransfersRequest, opts ...grpc.CallOption) (*v1beta114.ListTransfersResponse, error) {
out := new(v1beta114.ListTransfersResponse)
func (c *gatewayAPIClient) ListTransfers(ctx context.Context, in *v1beta115.ListTransfersRequest, opts ...grpc.CallOption) (*v1beta115.ListTransfersResponse, error) {
out := new(v1beta115.ListTransfersResponse)
err := c.cc.Invoke(ctx, GatewayAPI_ListTransfers_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1398,8 +1448,8 @@ func (c *gatewayAPIClient) ListTransfers(ctx context.Context, in *v1beta114.List
return out, nil
}
func (c *gatewayAPIClient) RetryTransfer(ctx context.Context, in *v1beta114.RetryTransferRequest, opts ...grpc.CallOption) (*v1beta114.RetryTransferResponse, error) {
out := new(v1beta114.RetryTransferResponse)
func (c *gatewayAPIClient) RetryTransfer(ctx context.Context, in *v1beta115.RetryTransferRequest, opts ...grpc.CallOption) (*v1beta115.RetryTransferResponse, error) {
out := new(v1beta115.RetryTransferResponse)
err := c.cc.Invoke(ctx, GatewayAPI_RetryTransfer_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1407,8 +1457,8 @@ func (c *gatewayAPIClient) RetryTransfer(ctx context.Context, in *v1beta114.Retr
return out, nil
}
func (c *gatewayAPIClient) CheckPermission(ctx context.Context, in *v1beta115.CheckPermissionRequest, opts ...grpc.CallOption) (*v1beta115.CheckPermissionResponse, error) {
out := new(v1beta115.CheckPermissionResponse)
func (c *gatewayAPIClient) CheckPermission(ctx context.Context, in *v1beta116.CheckPermissionRequest, opts ...grpc.CallOption) (*v1beta116.CheckPermissionResponse, error) {
out := new(v1beta116.CheckPermissionResponse)
err := c.cc.Invoke(ctx, GatewayAPI_CheckPermission_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
@@ -1632,6 +1682,9 @@ type GatewayAPIServer interface {
// both as owner and creator. If a filter is specified, only
// shares satisfying the filter MUST be returned.
ListOCMShares(context.Context, *v1beta16.ListOCMSharesRequest) (*v1beta16.ListOCMSharesResponse, error)
// List all existing shares the authenticated principal has created,
// including their storage resource information.
ListExistingOCMShares(context.Context, *v1beta16.ListOCMSharesRequest) (*ListExistingOCMSharesResponse, error)
// Updates a share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
UpdateOCMShare(context.Context, *v1beta16.UpdateOCMShareRequest) (*v1beta16.UpdateOCMShareResponse, error)
@@ -1703,24 +1756,30 @@ type GatewayAPIServer interface {
GetInfoByDomain(context.Context, *v1beta112.GetInfoByDomainRequest) (*v1beta112.GetInfoByDomainResponse, error)
// Get the information of all the providers registered in the mesh.
ListAllProviders(context.Context, *v1beta112.ListAllProvidersRequest) (*v1beta112.ListAllProvidersResponse, error)
// Creates a new OCM share.
CreateOCMCoreShare(context.Context, *v1beta113.CreateOCMCoreShareRequest) (*v1beta113.CreateOCMCoreShareResponse, error)
// Updates an OCM share.
UpdateOCMCoreShare(context.Context, *v1beta113.UpdateOCMCoreShareRequest) (*v1beta113.UpdateOCMCoreShareResponse, error)
// Deletes an OCM share.
DeleteOCMCoreShare(context.Context, *v1beta113.DeleteOCMCoreShareRequest) (*v1beta113.DeleteOCMCoreShareResponse, error)
// Creates a new incoming OCM share.
CreateOCMIncomingShare(context.Context, *v1beta113.CreateOCMIncomingShareRequest) (*v1beta113.CreateOCMIncomingShareResponse, error)
// Updates an incoming OCM share.
UpdateOCMIncomingShare(context.Context, *v1beta113.UpdateOCMIncomingShareRequest) (*v1beta113.UpdateOCMIncomingShareResponse, error)
// Deletes an incoming OCM share.
DeleteOCMIncomingShare(context.Context, *v1beta113.DeleteOCMIncomingShareRequest) (*v1beta113.DeleteOCMIncomingShareResponse, error)
// Deprecated. Creates a new OCM share.
CreateOCMCoreShare(context.Context, *v1beta114.CreateOCMCoreShareRequest) (*v1beta114.CreateOCMCoreShareResponse, error)
// Deprecated. Updates an OCM share.
UpdateOCMCoreShare(context.Context, *v1beta114.UpdateOCMCoreShareRequest) (*v1beta114.UpdateOCMCoreShareResponse, error)
// Deprecated. Deletes an OCM share.
DeleteOCMCoreShare(context.Context, *v1beta114.DeleteOCMCoreShareRequest) (*v1beta114.DeleteOCMCoreShareResponse, error)
// Requests creation of a transfer.
CreateTransfer(context.Context, *v1beta114.CreateTransferRequest) (*v1beta114.CreateTransferResponse, error)
CreateTransfer(context.Context, *v1beta115.CreateTransferRequest) (*v1beta115.CreateTransferResponse, error)
// Requests a transfer status.
GetTransferStatus(context.Context, *v1beta114.GetTransferStatusRequest) (*v1beta114.GetTransferStatusResponse, error)
GetTransferStatus(context.Context, *v1beta115.GetTransferStatusRequest) (*v1beta115.GetTransferStatusResponse, error)
// Requests to cancel a transfer.
CancelTransfer(context.Context, *v1beta114.CancelTransferRequest) (*v1beta114.CancelTransferResponse, error)
CancelTransfer(context.Context, *v1beta115.CancelTransferRequest) (*v1beta115.CancelTransferResponse, error)
// Requests a list of transfers received by the authenticated principle.
ListTransfers(context.Context, *v1beta114.ListTransfersRequest) (*v1beta114.ListTransfersResponse, error)
ListTransfers(context.Context, *v1beta115.ListTransfersRequest) (*v1beta115.ListTransfersResponse, error)
// Requests retrying a transfer.
RetryTransfer(context.Context, *v1beta114.RetryTransferRequest) (*v1beta114.RetryTransferResponse, error)
RetryTransfer(context.Context, *v1beta115.RetryTransferRequest) (*v1beta115.RetryTransferResponse, error)
// CheckPermission checks if a user or group has a certain permission.
CheckPermission(context.Context, *v1beta115.CheckPermissionRequest) (*v1beta115.CheckPermissionResponse, error)
CheckPermission(context.Context, *v1beta116.CheckPermissionRequest) (*v1beta116.CheckPermissionResponse, error)
}
// UnimplementedGatewayAPIServer should be embedded to have forward compatible implementations.
@@ -1907,6 +1966,9 @@ func (UnimplementedGatewayAPIServer) GetOCMShareByToken(context.Context, *v1beta
func (UnimplementedGatewayAPIServer) ListOCMShares(context.Context, *v1beta16.ListOCMSharesRequest) (*v1beta16.ListOCMSharesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListOCMShares not implemented")
}
func (UnimplementedGatewayAPIServer) ListExistingOCMShares(context.Context, *v1beta16.ListOCMSharesRequest) (*ListExistingOCMSharesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListExistingOCMShares not implemented")
}
func (UnimplementedGatewayAPIServer) UpdateOCMShare(context.Context, *v1beta16.UpdateOCMShareRequest) (*v1beta16.UpdateOCMShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateOCMShare not implemented")
}
@@ -2000,31 +2062,40 @@ func (UnimplementedGatewayAPIServer) GetInfoByDomain(context.Context, *v1beta112
func (UnimplementedGatewayAPIServer) ListAllProviders(context.Context, *v1beta112.ListAllProvidersRequest) (*v1beta112.ListAllProvidersResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListAllProviders not implemented")
}
func (UnimplementedGatewayAPIServer) CreateOCMCoreShare(context.Context, *v1beta113.CreateOCMCoreShareRequest) (*v1beta113.CreateOCMCoreShareResponse, error) {
func (UnimplementedGatewayAPIServer) CreateOCMIncomingShare(context.Context, *v1beta113.CreateOCMIncomingShareRequest) (*v1beta113.CreateOCMIncomingShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateOCMIncomingShare not implemented")
}
func (UnimplementedGatewayAPIServer) UpdateOCMIncomingShare(context.Context, *v1beta113.UpdateOCMIncomingShareRequest) (*v1beta113.UpdateOCMIncomingShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateOCMIncomingShare not implemented")
}
func (UnimplementedGatewayAPIServer) DeleteOCMIncomingShare(context.Context, *v1beta113.DeleteOCMIncomingShareRequest) (*v1beta113.DeleteOCMIncomingShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteOCMIncomingShare not implemented")
}
func (UnimplementedGatewayAPIServer) CreateOCMCoreShare(context.Context, *v1beta114.CreateOCMCoreShareRequest) (*v1beta114.CreateOCMCoreShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateOCMCoreShare not implemented")
}
func (UnimplementedGatewayAPIServer) UpdateOCMCoreShare(context.Context, *v1beta113.UpdateOCMCoreShareRequest) (*v1beta113.UpdateOCMCoreShareResponse, error) {
func (UnimplementedGatewayAPIServer) UpdateOCMCoreShare(context.Context, *v1beta114.UpdateOCMCoreShareRequest) (*v1beta114.UpdateOCMCoreShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateOCMCoreShare not implemented")
}
func (UnimplementedGatewayAPIServer) DeleteOCMCoreShare(context.Context, *v1beta113.DeleteOCMCoreShareRequest) (*v1beta113.DeleteOCMCoreShareResponse, error) {
func (UnimplementedGatewayAPIServer) DeleteOCMCoreShare(context.Context, *v1beta114.DeleteOCMCoreShareRequest) (*v1beta114.DeleteOCMCoreShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteOCMCoreShare not implemented")
}
func (UnimplementedGatewayAPIServer) CreateTransfer(context.Context, *v1beta114.CreateTransferRequest) (*v1beta114.CreateTransferResponse, error) {
func (UnimplementedGatewayAPIServer) CreateTransfer(context.Context, *v1beta115.CreateTransferRequest) (*v1beta115.CreateTransferResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateTransfer not implemented")
}
func (UnimplementedGatewayAPIServer) GetTransferStatus(context.Context, *v1beta114.GetTransferStatusRequest) (*v1beta114.GetTransferStatusResponse, error) {
func (UnimplementedGatewayAPIServer) GetTransferStatus(context.Context, *v1beta115.GetTransferStatusRequest) (*v1beta115.GetTransferStatusResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetTransferStatus not implemented")
}
func (UnimplementedGatewayAPIServer) CancelTransfer(context.Context, *v1beta114.CancelTransferRequest) (*v1beta114.CancelTransferResponse, error) {
func (UnimplementedGatewayAPIServer) CancelTransfer(context.Context, *v1beta115.CancelTransferRequest) (*v1beta115.CancelTransferResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CancelTransfer not implemented")
}
func (UnimplementedGatewayAPIServer) ListTransfers(context.Context, *v1beta114.ListTransfersRequest) (*v1beta114.ListTransfersResponse, error) {
func (UnimplementedGatewayAPIServer) ListTransfers(context.Context, *v1beta115.ListTransfersRequest) (*v1beta115.ListTransfersResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListTransfers not implemented")
}
func (UnimplementedGatewayAPIServer) RetryTransfer(context.Context, *v1beta114.RetryTransferRequest) (*v1beta114.RetryTransferResponse, error) {
func (UnimplementedGatewayAPIServer) RetryTransfer(context.Context, *v1beta115.RetryTransferRequest) (*v1beta115.RetryTransferResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RetryTransfer not implemented")
}
func (UnimplementedGatewayAPIServer) CheckPermission(context.Context, *v1beta115.CheckPermissionRequest) (*v1beta115.CheckPermissionResponse, error) {
func (UnimplementedGatewayAPIServer) CheckPermission(context.Context, *v1beta116.CheckPermissionRequest) (*v1beta116.CheckPermissionResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CheckPermission not implemented")
}
@@ -3125,6 +3196,24 @@ func _GatewayAPI_ListOCMShares_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_ListExistingOCMShares_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta16.ListOCMSharesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(GatewayAPIServer).ListExistingOCMShares(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: GatewayAPI_ListExistingOCMShares_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).ListExistingOCMShares(ctx, req.(*v1beta16.ListOCMSharesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_UpdateOCMShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta16.UpdateOCMShareRequest)
if err := dec(in); err != nil {
@@ -3683,8 +3772,62 @@ func _GatewayAPI_ListAllProviders_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_CreateOCMIncomingShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta113.CreateOCMIncomingShareRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(GatewayAPIServer).CreateOCMIncomingShare(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: GatewayAPI_CreateOCMIncomingShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).CreateOCMIncomingShare(ctx, req.(*v1beta113.CreateOCMIncomingShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_UpdateOCMIncomingShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta113.UpdateOCMIncomingShareRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(GatewayAPIServer).UpdateOCMIncomingShare(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: GatewayAPI_UpdateOCMIncomingShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).UpdateOCMIncomingShare(ctx, req.(*v1beta113.UpdateOCMIncomingShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_DeleteOCMIncomingShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta113.DeleteOCMIncomingShareRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(GatewayAPIServer).DeleteOCMIncomingShare(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: GatewayAPI_DeleteOCMIncomingShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).DeleteOCMIncomingShare(ctx, req.(*v1beta113.DeleteOCMIncomingShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_CreateOCMCoreShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta113.CreateOCMCoreShareRequest)
in := new(v1beta114.CreateOCMCoreShareRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3696,13 +3839,13 @@ func _GatewayAPI_CreateOCMCoreShare_Handler(srv interface{}, ctx context.Context
FullMethod: GatewayAPI_CreateOCMCoreShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).CreateOCMCoreShare(ctx, req.(*v1beta113.CreateOCMCoreShareRequest))
return srv.(GatewayAPIServer).CreateOCMCoreShare(ctx, req.(*v1beta114.CreateOCMCoreShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_UpdateOCMCoreShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta113.UpdateOCMCoreShareRequest)
in := new(v1beta114.UpdateOCMCoreShareRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3714,13 +3857,13 @@ func _GatewayAPI_UpdateOCMCoreShare_Handler(srv interface{}, ctx context.Context
FullMethod: GatewayAPI_UpdateOCMCoreShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).UpdateOCMCoreShare(ctx, req.(*v1beta113.UpdateOCMCoreShareRequest))
return srv.(GatewayAPIServer).UpdateOCMCoreShare(ctx, req.(*v1beta114.UpdateOCMCoreShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_DeleteOCMCoreShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta113.DeleteOCMCoreShareRequest)
in := new(v1beta114.DeleteOCMCoreShareRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3732,13 +3875,13 @@ func _GatewayAPI_DeleteOCMCoreShare_Handler(srv interface{}, ctx context.Context
FullMethod: GatewayAPI_DeleteOCMCoreShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).DeleteOCMCoreShare(ctx, req.(*v1beta113.DeleteOCMCoreShareRequest))
return srv.(GatewayAPIServer).DeleteOCMCoreShare(ctx, req.(*v1beta114.DeleteOCMCoreShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_CreateTransfer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta114.CreateTransferRequest)
in := new(v1beta115.CreateTransferRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3750,13 +3893,13 @@ func _GatewayAPI_CreateTransfer_Handler(srv interface{}, ctx context.Context, de
FullMethod: GatewayAPI_CreateTransfer_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).CreateTransfer(ctx, req.(*v1beta114.CreateTransferRequest))
return srv.(GatewayAPIServer).CreateTransfer(ctx, req.(*v1beta115.CreateTransferRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_GetTransferStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta114.GetTransferStatusRequest)
in := new(v1beta115.GetTransferStatusRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3768,13 +3911,13 @@ func _GatewayAPI_GetTransferStatus_Handler(srv interface{}, ctx context.Context,
FullMethod: GatewayAPI_GetTransferStatus_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).GetTransferStatus(ctx, req.(*v1beta114.GetTransferStatusRequest))
return srv.(GatewayAPIServer).GetTransferStatus(ctx, req.(*v1beta115.GetTransferStatusRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_CancelTransfer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta114.CancelTransferRequest)
in := new(v1beta115.CancelTransferRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3786,13 +3929,13 @@ func _GatewayAPI_CancelTransfer_Handler(srv interface{}, ctx context.Context, de
FullMethod: GatewayAPI_CancelTransfer_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).CancelTransfer(ctx, req.(*v1beta114.CancelTransferRequest))
return srv.(GatewayAPIServer).CancelTransfer(ctx, req.(*v1beta115.CancelTransferRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_ListTransfers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta114.ListTransfersRequest)
in := new(v1beta115.ListTransfersRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3804,13 +3947,13 @@ func _GatewayAPI_ListTransfers_Handler(srv interface{}, ctx context.Context, dec
FullMethod: GatewayAPI_ListTransfers_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).ListTransfers(ctx, req.(*v1beta114.ListTransfersRequest))
return srv.(GatewayAPIServer).ListTransfers(ctx, req.(*v1beta115.ListTransfersRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_RetryTransfer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta114.RetryTransferRequest)
in := new(v1beta115.RetryTransferRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3822,13 +3965,13 @@ func _GatewayAPI_RetryTransfer_Handler(srv interface{}, ctx context.Context, dec
FullMethod: GatewayAPI_RetryTransfer_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).RetryTransfer(ctx, req.(*v1beta114.RetryTransferRequest))
return srv.(GatewayAPIServer).RetryTransfer(ctx, req.(*v1beta115.RetryTransferRequest))
}
return interceptor(ctx, in, info, handler)
}
func _GatewayAPI_CheckPermission_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1beta115.CheckPermissionRequest)
in := new(v1beta116.CheckPermissionRequest)
if err := dec(in); err != nil {
return nil, err
}
@@ -3840,7 +3983,7 @@ func _GatewayAPI_CheckPermission_Handler(srv interface{}, ctx context.Context, d
FullMethod: GatewayAPI_CheckPermission_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GatewayAPIServer).CheckPermission(ctx, req.(*v1beta115.CheckPermissionRequest))
return srv.(GatewayAPIServer).CheckPermission(ctx, req.(*v1beta116.CheckPermissionRequest))
}
return interceptor(ctx, in, info, handler)
}
@@ -4084,6 +4227,10 @@ var GatewayAPI_ServiceDesc = grpc.ServiceDesc{
MethodName: "ListOCMShares",
Handler: _GatewayAPI_ListOCMShares_Handler,
},
{
MethodName: "ListExistingOCMShares",
Handler: _GatewayAPI_ListExistingOCMShares_Handler,
},
{
MethodName: "UpdateOCMShare",
Handler: _GatewayAPI_UpdateOCMShare_Handler,
@@ -4208,6 +4355,18 @@ var GatewayAPI_ServiceDesc = grpc.ServiceDesc{
MethodName: "ListAllProviders",
Handler: _GatewayAPI_ListAllProviders_Handler,
},
{
MethodName: "CreateOCMIncomingShare",
Handler: _GatewayAPI_CreateOCMIncomingShare_Handler,
},
{
MethodName: "UpdateOCMIncomingShare",
Handler: _GatewayAPI_UpdateOCMIncomingShare_Handler,
},
{
MethodName: "DeleteOCMIncomingShare",
Handler: _GatewayAPI_DeleteOCMIncomingShare_Handler,
},
{
MethodName: "CreateOCMCoreShare",
Handler: _GatewayAPI_CreateOCMCoreShare_Handler,

View File

@@ -27,6 +27,7 @@ package gatewayv1beta1
import (
v1beta12 "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1"
v1beta13 "github.com/cs3org/go-cs3apis/cs3/sharing/link/v1beta1"
v1beta14 "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1"
v1beta11 "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
v1beta1 "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
@@ -435,6 +436,77 @@ func (x *PublicShareResourceInfo) GetResourceInfo() *v1beta11.ResourceInfo {
return nil
}
// OCMShareResourceInfo includes the sharing information
// and the storage-related information about an OCM share resource.
type OCMShareResourceInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// OPTIONAL.
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,1,opt,name=opaque,proto3" json:"opaque,omitempty"`
// REQUIRED.
// The underlying share as returned by the collaboration service.
OcmShare *v1beta14.Share `protobuf:"bytes,2,opt,name=ocm_share,json=ocmShare,proto3" json:"ocm_share,omitempty"`
// REQUIRED.
// The corresponding resource information as returned by the storage provider.
ResourceInfo *v1beta11.ResourceInfo `protobuf:"bytes,3,opt,name=resource_info,json=resourceInfo,proto3" json:"resource_info,omitempty"`
}
func (x *OCMShareResourceInfo) Reset() {
*x = OCMShareResourceInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_gateway_v1beta1_resources_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OCMShareResourceInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OCMShareResourceInfo) ProtoMessage() {}
func (x *OCMShareResourceInfo) ProtoReflect() protoreflect.Message {
mi := &file_cs3_gateway_v1beta1_resources_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use OCMShareResourceInfo.ProtoReflect.Descriptor instead.
func (*OCMShareResourceInfo) Descriptor() ([]byte, []int) {
return file_cs3_gateway_v1beta1_resources_proto_rawDescGZIP(), []int{5}
}
func (x *OCMShareResourceInfo) GetOpaque() *v1beta1.Opaque {
if x != nil {
return x.Opaque
}
return nil
}
func (x *OCMShareResourceInfo) GetOcmShare() *v1beta14.Share {
if x != nil {
return x.OcmShare
}
return nil
}
func (x *OCMShareResourceInfo) GetResourceInfo() *v1beta11.ResourceInfo {
if x != nil {
return x.ResourceInfo
}
return nil
}
var File_cs3_gateway_v1beta1_resources_proto protoreflect.FileDescriptor
var file_cs3_gateway_v1beta1_resources_proto_rawDesc = []byte{
@@ -447,97 +519,114 @@ var file_cs3_gateway_v1beta1_resources_proto_rawDesc = []byte{
0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x63, 0x73, 0x33, 0x2f, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x63, 0x73, 0x33,
0x2f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x2f, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x63, 0x73, 0x33, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8b, 0x02, 0x0a, 0x12, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c,
0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x6f,
0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70,
0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x36, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d,
0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
0x62, 0x6c, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b,
0x65, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x14, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x6f,
0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x6f,
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x45,
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xd7, 0x01,
0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06,
0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72,
0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52,
0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
0x63, 0x73, 0x33, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73,
0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xf8, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65,
0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x30, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x63,
0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61,
0x72, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72,
0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e,
0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73,
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x22, 0xe7, 0x01, 0x0a, 0x17, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x68, 0x61,
0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, 0x73, 0x33,
0x2f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x63, 0x6d, 0x2f, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x63, 0x73, 0x33, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
0x67, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72,
0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d,
0x63, 0x73, 0x33, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8b, 0x02,
0x0a, 0x12, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52,
0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e,
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x70,
0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x13,
0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73,
0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
0x79, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x68, 0x65, 0x63,
0x6b, 0x73, 0x75, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x14,
0x46, 0x69, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52,
0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xd7, 0x01, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x65,
0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06,
0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12,
0x3e, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6c,
0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12,
0x4f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x22, 0xf8, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61,
0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31,
0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x12, 0x48, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x73, 0x68, 0x61, 0x72,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x0b,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x72,
0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c,
0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0xd8, 0x01, 0x0a,
0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f,
0x2d, 0x63, 0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47,
0x58, 0xaa, 0x02, 0x13, 0x43, 0x73, 0x33, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e,
0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x73, 0x33, 0x5c, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f,
0x43, 0x73, 0x33, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5c, 0x56, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea,
0x02, 0x15, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x3a, 0x3a,
0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x65, 0x12, 0x57, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x68,
0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x72, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72,
0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe7, 0x01, 0x0a, 0x17,
0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71,
0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x25, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6c,
0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53,
0x68, 0x61, 0x72, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd7, 0x01, 0x0a, 0x14, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61,
0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31,
0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x12, 0x3b, 0x0a, 0x09, 0x6f, 0x63, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69,
0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53,
0x68, 0x61, 0x72, 0x65, 0x52, 0x08, 0x6f, 0x63, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x4f,
0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x74, 0x6f, 0x72,
0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42,
0xd8, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e, 0x52, 0x65, 0x73,
0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67,
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67,
0x2f, 0x67, 0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f,
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b,
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02,
0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x73, 0x33, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x73, 0x33,
0x5c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0xe2, 0x02, 0x1f, 0x43, 0x73, 0x33, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5c, 0x56,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
@@ -552,38 +641,43 @@ func file_cs3_gateway_v1beta1_resources_proto_rawDescGZIP() []byte {
return file_cs3_gateway_v1beta1_resources_proto_rawDescData
}
var file_cs3_gateway_v1beta1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_cs3_gateway_v1beta1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_cs3_gateway_v1beta1_resources_proto_goTypes = []interface{}{
(*FileUploadProtocol)(nil), // 0: cs3.gateway.v1beta1.FileUploadProtocol
(*FileDownloadProtocol)(nil), // 1: cs3.gateway.v1beta1.FileDownloadProtocol
(*ShareResourceInfo)(nil), // 2: cs3.gateway.v1beta1.ShareResourceInfo
(*ReceivedShareResourceInfo)(nil), // 3: cs3.gateway.v1beta1.ReceivedShareResourceInfo
(*PublicShareResourceInfo)(nil), // 4: cs3.gateway.v1beta1.PublicShareResourceInfo
(*v1beta1.Opaque)(nil), // 5: cs3.types.v1beta1.Opaque
(*v1beta11.ResourceChecksumPriority)(nil), // 6: cs3.storage.provider.v1beta1.ResourceChecksumPriority
(*v1beta12.Share)(nil), // 7: cs3.sharing.collaboration.v1beta1.Share
(*v1beta11.ResourceInfo)(nil), // 8: cs3.storage.provider.v1beta1.ResourceInfo
(*v1beta12.ReceivedShare)(nil), // 9: cs3.sharing.collaboration.v1beta1.ReceivedShare
(*v1beta13.PublicShare)(nil), // 10: cs3.sharing.link.v1beta1.PublicShare
(*OCMShareResourceInfo)(nil), // 5: cs3.gateway.v1beta1.OCMShareResourceInfo
(*v1beta1.Opaque)(nil), // 6: cs3.types.v1beta1.Opaque
(*v1beta11.ResourceChecksumPriority)(nil), // 7: cs3.storage.provider.v1beta1.ResourceChecksumPriority
(*v1beta12.Share)(nil), // 8: cs3.sharing.collaboration.v1beta1.Share
(*v1beta11.ResourceInfo)(nil), // 9: cs3.storage.provider.v1beta1.ResourceInfo
(*v1beta12.ReceivedShare)(nil), // 10: cs3.sharing.collaboration.v1beta1.ReceivedShare
(*v1beta13.PublicShare)(nil), // 11: cs3.sharing.link.v1beta1.PublicShare
(*v1beta14.Share)(nil), // 12: cs3.sharing.ocm.v1beta1.Share
}
var file_cs3_gateway_v1beta1_resources_proto_depIdxs = []int32{
5, // 0: cs3.gateway.v1beta1.FileUploadProtocol.opaque:type_name -> cs3.types.v1beta1.Opaque
6, // 1: cs3.gateway.v1beta1.FileUploadProtocol.available_checksums:type_name -> cs3.storage.provider.v1beta1.ResourceChecksumPriority
5, // 2: cs3.gateway.v1beta1.FileDownloadProtocol.opaque:type_name -> cs3.types.v1beta1.Opaque
5, // 3: cs3.gateway.v1beta1.ShareResourceInfo.opaque:type_name -> cs3.types.v1beta1.Opaque
7, // 4: cs3.gateway.v1beta1.ShareResourceInfo.share:type_name -> cs3.sharing.collaboration.v1beta1.Share
8, // 5: cs3.gateway.v1beta1.ShareResourceInfo.resource_info:type_name -> cs3.storage.provider.v1beta1.ResourceInfo
5, // 6: cs3.gateway.v1beta1.ReceivedShareResourceInfo.opaque:type_name -> cs3.types.v1beta1.Opaque
9, // 7: cs3.gateway.v1beta1.ReceivedShareResourceInfo.received_share:type_name -> cs3.sharing.collaboration.v1beta1.ReceivedShare
8, // 8: cs3.gateway.v1beta1.ReceivedShareResourceInfo.resource_info:type_name -> cs3.storage.provider.v1beta1.ResourceInfo
5, // 9: cs3.gateway.v1beta1.PublicShareResourceInfo.opaque:type_name -> cs3.types.v1beta1.Opaque
10, // 10: cs3.gateway.v1beta1.PublicShareResourceInfo.public_share:type_name -> cs3.sharing.link.v1beta1.PublicShare
8, // 11: cs3.gateway.v1beta1.PublicShareResourceInfo.resource_info:type_name -> cs3.storage.provider.v1beta1.ResourceInfo
12, // [12:12] is the sub-list for method output_type
12, // [12:12] is the sub-list for method input_type
12, // [12:12] is the sub-list for extension type_name
12, // [12:12] is the sub-list for extension extendee
0, // [0:12] is the sub-list for field type_name
6, // 0: cs3.gateway.v1beta1.FileUploadProtocol.opaque:type_name -> cs3.types.v1beta1.Opaque
7, // 1: cs3.gateway.v1beta1.FileUploadProtocol.available_checksums:type_name -> cs3.storage.provider.v1beta1.ResourceChecksumPriority
6, // 2: cs3.gateway.v1beta1.FileDownloadProtocol.opaque:type_name -> cs3.types.v1beta1.Opaque
6, // 3: cs3.gateway.v1beta1.ShareResourceInfo.opaque:type_name -> cs3.types.v1beta1.Opaque
8, // 4: cs3.gateway.v1beta1.ShareResourceInfo.share:type_name -> cs3.sharing.collaboration.v1beta1.Share
9, // 5: cs3.gateway.v1beta1.ShareResourceInfo.resource_info:type_name -> cs3.storage.provider.v1beta1.ResourceInfo
6, // 6: cs3.gateway.v1beta1.ReceivedShareResourceInfo.opaque:type_name -> cs3.types.v1beta1.Opaque
10, // 7: cs3.gateway.v1beta1.ReceivedShareResourceInfo.received_share:type_name -> cs3.sharing.collaboration.v1beta1.ReceivedShare
9, // 8: cs3.gateway.v1beta1.ReceivedShareResourceInfo.resource_info:type_name -> cs3.storage.provider.v1beta1.ResourceInfo
6, // 9: cs3.gateway.v1beta1.PublicShareResourceInfo.opaque:type_name -> cs3.types.v1beta1.Opaque
11, // 10: cs3.gateway.v1beta1.PublicShareResourceInfo.public_share:type_name -> cs3.sharing.link.v1beta1.PublicShare
9, // 11: cs3.gateway.v1beta1.PublicShareResourceInfo.resource_info:type_name -> cs3.storage.provider.v1beta1.ResourceInfo
6, // 12: cs3.gateway.v1beta1.OCMShareResourceInfo.opaque:type_name -> cs3.types.v1beta1.Opaque
12, // 13: cs3.gateway.v1beta1.OCMShareResourceInfo.ocm_share:type_name -> cs3.sharing.ocm.v1beta1.Share
9, // 14: cs3.gateway.v1beta1.OCMShareResourceInfo.resource_info:type_name -> cs3.storage.provider.v1beta1.ResourceInfo
15, // [15:15] is the sub-list for method output_type
15, // [15:15] is the sub-list for method input_type
15, // [15:15] is the sub-list for extension type_name
15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name
}
func init() { file_cs3_gateway_v1beta1_resources_proto_init() }
@@ -652,6 +746,18 @@ func file_cs3_gateway_v1beta1_resources_proto_init() {
return nil
}
}
file_cs3_gateway_v1beta1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OCMShareResourceInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -659,7 +765,7 @@ func file_cs3_gateway_v1beta1_resources_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cs3_gateway_v1beta1_resources_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},

View File

@@ -41,6 +41,58 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// The filter to apply.
type Filter_Type int32
const (
Filter_TYPE_INVALID Filter_Type = 0
// extract all groups of a given GroupType
Filter_TYPE_GROUPTYPE Filter_Type = 1
// extract all groups matching the given query
Filter_TYPE_QUERY Filter_Type = 2
)
// Enum value maps for Filter_Type.
var (
Filter_Type_name = map[int32]string{
0: "TYPE_INVALID",
1: "TYPE_GROUPTYPE",
2: "TYPE_QUERY",
}
Filter_Type_value = map[string]int32{
"TYPE_INVALID": 0,
"TYPE_GROUPTYPE": 1,
"TYPE_QUERY": 2,
}
)
func (x Filter_Type) Enum() *Filter_Type {
p := new(Filter_Type)
*p = x
return p
}
func (x Filter_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Filter_Type) Descriptor() protoreflect.EnumDescriptor {
return file_cs3_identity_group_v1beta1_group_api_proto_enumTypes[0].Descriptor()
}
func (Filter_Type) Type() protoreflect.EnumType {
return &file_cs3_identity_group_v1beta1_group_api_proto_enumTypes[0]
}
func (x Filter_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Filter_Type.Descriptor instead.
func (Filter_Type) EnumDescriptor() ([]byte, []int) {
return file_cs3_identity_group_v1beta1_group_api_proto_rawDescGZIP(), []int{10, 0}
}
type GetGroupRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -602,8 +654,8 @@ type FindGroupsRequest struct {
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,1,opt,name=opaque,proto3" json:"opaque,omitempty"`
// REQUIRED.
// The filter to apply.
Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
// The filters to apply.
Filters []*Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
// OPTIONAL.
// Whether to skip fetching members along with the group object.
SkipFetchingMembers bool `protobuf:"varint,3,opt,name=skip_fetching_members,json=skipFetchingMembers,proto3" json:"skip_fetching_members,omitempty"`
@@ -648,11 +700,11 @@ func (x *FindGroupsRequest) GetOpaque() *v1beta1.Opaque {
return nil
}
func (x *FindGroupsRequest) GetFilter() string {
func (x *FindGroupsRequest) GetFilters() []*Filter {
if x != nil {
return x.Filter
return x.Filters
}
return ""
return nil
}
func (x *FindGroupsRequest) GetSkipFetchingMembers() bool {
@@ -731,6 +783,97 @@ func (x *FindGroupsResponse) GetGroups() []*Group {
return nil
}
// Represents a filter to apply to the request.
type Filter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED.
Type Filter_Type `protobuf:"varint,1,opt,name=type,proto3,enum=cs3.identity.group.v1beta1.Filter_Type" json:"type,omitempty"`
// Types that are assignable to Term:
//
// *Filter_Grouptype
// *Filter_Query
Term isFilter_Term `protobuf_oneof:"term"`
}
func (x *Filter) Reset() {
*x = Filter{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_identity_group_v1beta1_group_api_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Filter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Filter) ProtoMessage() {}
func (x *Filter) ProtoReflect() protoreflect.Message {
mi := &file_cs3_identity_group_v1beta1_group_api_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Filter.ProtoReflect.Descriptor instead.
func (*Filter) Descriptor() ([]byte, []int) {
return file_cs3_identity_group_v1beta1_group_api_proto_rawDescGZIP(), []int{10}
}
func (x *Filter) GetType() Filter_Type {
if x != nil {
return x.Type
}
return Filter_TYPE_INVALID
}
func (m *Filter) GetTerm() isFilter_Term {
if m != nil {
return m.Term
}
return nil
}
func (x *Filter) GetGrouptype() GroupType {
if x, ok := x.GetTerm().(*Filter_Grouptype); ok {
return x.Grouptype
}
return GroupType_GROUP_TYPE_INVALID
}
func (x *Filter) GetQuery() string {
if x, ok := x.GetTerm().(*Filter_Query); ok {
return x.Query
}
return ""
}
type isFilter_Term interface {
isFilter_Term()
}
type Filter_Grouptype struct {
Grouptype GroupType `protobuf:"varint,2,opt,name=grouptype,proto3,enum=cs3.identity.group.v1beta1.GroupType,oneof"`
}
type Filter_Query struct {
Query string `protobuf:"bytes,3,opt,name=query,proto3,oneof"`
}
func (*Filter_Grouptype) isFilter_Term() {}
func (*Filter_Query) isFilter_Term() {}
var File_cs3_identity_group_v1beta1_group_api_proto protoreflect.FileDescriptor
var file_cs3_identity_group_v1beta1_group_api_proto_rawDesc = []byte{
@@ -834,79 +977,96 @@ var file_cs3_identity_group_v1beta1_group_api_proto_rawDesc = []byte{
0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12,
0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22,
0x92, 0x01, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65,
0xb8, 0x01, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65,
0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
0x12, 0x32, 0x0a, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e,
0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
0x13, 0x73, 0x6b, 0x69, 0x70, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06,
0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12,
0x39, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x21, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x32, 0xb1, 0x04, 0x0a, 0x08, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x41, 0x50, 0x49, 0x12, 0x65, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65,
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a,
0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x69,
0x6d, 0x12, 0x32, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47,
0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e,
0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66,
0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x66,
0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18,
0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x6b, 0x69, 0x70, 0x46, 0x65, 0x74, 0x63, 0x68,
0x69, 0x6e, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x12, 0x46,
0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f,
0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x43, 0x6c, 0x61,
0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0a, 0x47, 0x65,
0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69,
0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
0x22, 0xea, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x04, 0x74,
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x79,
0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79,
0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12,
0x16, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x3c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10,
0x00, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x54,
0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55,
0x45, 0x52, 0x59, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x32, 0xb1, 0x04,
0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x50, 0x49, 0x12, 0x65, 0x0a, 0x08, 0x47, 0x65,
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65,
0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x7a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x43,
0x6c, 0x61, 0x69, 0x6d, 0x12, 0x32, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74,
0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x69,
0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69,
0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79,
0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a,
0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x73, 0x33,
0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x09, 0x48, 0x61,
0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x09, 0x48, 0x61, 0x73, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74,
0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x48, 0x61, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x48, 0x61, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x48, 0x61, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x48, 0x61, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x6b, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12,
0x2d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e,
0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x80,
0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74,
0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x42, 0x0d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f,
0x50, 0x01, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
0x73, 0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61, 0x70, 0x69, 0x73,
0x2f, 0x63, 0x73, 0x33, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x49, 0x47, 0xaa, 0x02,
0x1a, 0x43, 0x73, 0x33, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1a, 0x43, 0x73,
0x46, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46,
0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x42, 0x80, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x69, 0x50, 0x72,
0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61,
0x70, 0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x49,
0x47, 0xaa, 0x02, 0x1a, 0x43, 0x73, 0x33, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02,
0x1a, 0x43, 0x73, 0x33, 0x5c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5c, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x26, 0x43, 0x73,
0x33, 0x5c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5c, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x26, 0x43, 0x73, 0x33, 0x5c, 0x49,
0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5c, 0x56, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0xea, 0x02, 0x1d, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
0x79, 0x3a, 0x3a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x49, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -921,63 +1081,70 @@ func file_cs3_identity_group_v1beta1_group_api_proto_rawDescGZIP() []byte {
return file_cs3_identity_group_v1beta1_group_api_proto_rawDescData
}
var file_cs3_identity_group_v1beta1_group_api_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_cs3_identity_group_v1beta1_group_api_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_cs3_identity_group_v1beta1_group_api_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_cs3_identity_group_v1beta1_group_api_proto_goTypes = []interface{}{
(*GetGroupRequest)(nil), // 0: cs3.identity.group.v1beta1.GetGroupRequest
(*GetGroupResponse)(nil), // 1: cs3.identity.group.v1beta1.GetGroupResponse
(*GetGroupByClaimRequest)(nil), // 2: cs3.identity.group.v1beta1.GetGroupByClaimRequest
(*GetGroupByClaimResponse)(nil), // 3: cs3.identity.group.v1beta1.GetGroupByClaimResponse
(*GetMembersRequest)(nil), // 4: cs3.identity.group.v1beta1.GetMembersRequest
(*GetMembersResponse)(nil), // 5: cs3.identity.group.v1beta1.GetMembersResponse
(*HasMemberRequest)(nil), // 6: cs3.identity.group.v1beta1.HasMemberRequest
(*HasMemberResponse)(nil), // 7: cs3.identity.group.v1beta1.HasMemberResponse
(*FindGroupsRequest)(nil), // 8: cs3.identity.group.v1beta1.FindGroupsRequest
(*FindGroupsResponse)(nil), // 9: cs3.identity.group.v1beta1.FindGroupsResponse
(*v1beta1.Opaque)(nil), // 10: cs3.types.v1beta1.Opaque
(*GroupId)(nil), // 11: cs3.identity.group.v1beta1.GroupId
(*v1beta11.Status)(nil), // 12: cs3.rpc.v1beta1.Status
(*Group)(nil), // 13: cs3.identity.group.v1beta1.Group
(*v1beta12.UserId)(nil), // 14: cs3.identity.user.v1beta1.UserId
(Filter_Type)(0), // 0: cs3.identity.group.v1beta1.Filter.Type
(*GetGroupRequest)(nil), // 1: cs3.identity.group.v1beta1.GetGroupRequest
(*GetGroupResponse)(nil), // 2: cs3.identity.group.v1beta1.GetGroupResponse
(*GetGroupByClaimRequest)(nil), // 3: cs3.identity.group.v1beta1.GetGroupByClaimRequest
(*GetGroupByClaimResponse)(nil), // 4: cs3.identity.group.v1beta1.GetGroupByClaimResponse
(*GetMembersRequest)(nil), // 5: cs3.identity.group.v1beta1.GetMembersRequest
(*GetMembersResponse)(nil), // 6: cs3.identity.group.v1beta1.GetMembersResponse
(*HasMemberRequest)(nil), // 7: cs3.identity.group.v1beta1.HasMemberRequest
(*HasMemberResponse)(nil), // 8: cs3.identity.group.v1beta1.HasMemberResponse
(*FindGroupsRequest)(nil), // 9: cs3.identity.group.v1beta1.FindGroupsRequest
(*FindGroupsResponse)(nil), // 10: cs3.identity.group.v1beta1.FindGroupsResponse
(*Filter)(nil), // 11: cs3.identity.group.v1beta1.Filter
(*v1beta1.Opaque)(nil), // 12: cs3.types.v1beta1.Opaque
(*GroupId)(nil), // 13: cs3.identity.group.v1beta1.GroupId
(*v1beta11.Status)(nil), // 14: cs3.rpc.v1beta1.Status
(*Group)(nil), // 15: cs3.identity.group.v1beta1.Group
(*v1beta12.UserId)(nil), // 16: cs3.identity.user.v1beta1.UserId
(GroupType)(0), // 17: cs3.identity.group.v1beta1.GroupType
}
var file_cs3_identity_group_v1beta1_group_api_proto_depIdxs = []int32{
10, // 0: cs3.identity.group.v1beta1.GetGroupRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
11, // 1: cs3.identity.group.v1beta1.GetGroupRequest.group_id:type_name -> cs3.identity.group.v1beta1.GroupId
12, // 2: cs3.identity.group.v1beta1.GetGroupResponse.status:type_name -> cs3.rpc.v1beta1.Status
10, // 3: cs3.identity.group.v1beta1.GetGroupResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
13, // 4: cs3.identity.group.v1beta1.GetGroupResponse.group:type_name -> cs3.identity.group.v1beta1.Group
10, // 5: cs3.identity.group.v1beta1.GetGroupByClaimRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
12, // 6: cs3.identity.group.v1beta1.GetGroupByClaimResponse.status:type_name -> cs3.rpc.v1beta1.Status
10, // 7: cs3.identity.group.v1beta1.GetGroupByClaimResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
13, // 8: cs3.identity.group.v1beta1.GetGroupByClaimResponse.group:type_name -> cs3.identity.group.v1beta1.Group
10, // 9: cs3.identity.group.v1beta1.GetMembersRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
11, // 10: cs3.identity.group.v1beta1.GetMembersRequest.group_id:type_name -> cs3.identity.group.v1beta1.GroupId
12, // 11: cs3.identity.group.v1beta1.GetMembersResponse.status:type_name -> cs3.rpc.v1beta1.Status
10, // 12: cs3.identity.group.v1beta1.GetMembersResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
14, // 13: cs3.identity.group.v1beta1.GetMembersResponse.members:type_name -> cs3.identity.user.v1beta1.UserId
10, // 14: cs3.identity.group.v1beta1.HasMemberRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
11, // 15: cs3.identity.group.v1beta1.HasMemberRequest.group_id:type_name -> cs3.identity.group.v1beta1.GroupId
14, // 16: cs3.identity.group.v1beta1.HasMemberRequest.user_id:type_name -> cs3.identity.user.v1beta1.UserId
12, // 17: cs3.identity.group.v1beta1.HasMemberResponse.status:type_name -> cs3.rpc.v1beta1.Status
10, // 18: cs3.identity.group.v1beta1.HasMemberResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
10, // 19: cs3.identity.group.v1beta1.FindGroupsRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
12, // 20: cs3.identity.group.v1beta1.FindGroupsResponse.status:type_name -> cs3.rpc.v1beta1.Status
10, // 21: cs3.identity.group.v1beta1.FindGroupsResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
13, // 22: cs3.identity.group.v1beta1.FindGroupsResponse.groups:type_name -> cs3.identity.group.v1beta1.Group
0, // 23: cs3.identity.group.v1beta1.GroupAPI.GetGroup:input_type -> cs3.identity.group.v1beta1.GetGroupRequest
2, // 24: cs3.identity.group.v1beta1.GroupAPI.GetGroupByClaim:input_type -> cs3.identity.group.v1beta1.GetGroupByClaimRequest
4, // 25: cs3.identity.group.v1beta1.GroupAPI.GetMembers:input_type -> cs3.identity.group.v1beta1.GetMembersRequest
6, // 26: cs3.identity.group.v1beta1.GroupAPI.HasMember:input_type -> cs3.identity.group.v1beta1.HasMemberRequest
8, // 27: cs3.identity.group.v1beta1.GroupAPI.FindGroups:input_type -> cs3.identity.group.v1beta1.FindGroupsRequest
1, // 28: cs3.identity.group.v1beta1.GroupAPI.GetGroup:output_type -> cs3.identity.group.v1beta1.GetGroupResponse
3, // 29: cs3.identity.group.v1beta1.GroupAPI.GetGroupByClaim:output_type -> cs3.identity.group.v1beta1.GetGroupByClaimResponse
5, // 30: cs3.identity.group.v1beta1.GroupAPI.GetMembers:output_type -> cs3.identity.group.v1beta1.GetMembersResponse
7, // 31: cs3.identity.group.v1beta1.GroupAPI.HasMember:output_type -> cs3.identity.group.v1beta1.HasMemberResponse
9, // 32: cs3.identity.group.v1beta1.GroupAPI.FindGroups:output_type -> cs3.identity.group.v1beta1.FindGroupsResponse
28, // [28:33] is the sub-list for method output_type
23, // [23:28] is the sub-list for method input_type
23, // [23:23] is the sub-list for extension type_name
23, // [23:23] is the sub-list for extension extendee
0, // [0:23] is the sub-list for field type_name
12, // 0: cs3.identity.group.v1beta1.GetGroupRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
13, // 1: cs3.identity.group.v1beta1.GetGroupRequest.group_id:type_name -> cs3.identity.group.v1beta1.GroupId
14, // 2: cs3.identity.group.v1beta1.GetGroupResponse.status:type_name -> cs3.rpc.v1beta1.Status
12, // 3: cs3.identity.group.v1beta1.GetGroupResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
15, // 4: cs3.identity.group.v1beta1.GetGroupResponse.group:type_name -> cs3.identity.group.v1beta1.Group
12, // 5: cs3.identity.group.v1beta1.GetGroupByClaimRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
14, // 6: cs3.identity.group.v1beta1.GetGroupByClaimResponse.status:type_name -> cs3.rpc.v1beta1.Status
12, // 7: cs3.identity.group.v1beta1.GetGroupByClaimResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
15, // 8: cs3.identity.group.v1beta1.GetGroupByClaimResponse.group:type_name -> cs3.identity.group.v1beta1.Group
12, // 9: cs3.identity.group.v1beta1.GetMembersRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
13, // 10: cs3.identity.group.v1beta1.GetMembersRequest.group_id:type_name -> cs3.identity.group.v1beta1.GroupId
14, // 11: cs3.identity.group.v1beta1.GetMembersResponse.status:type_name -> cs3.rpc.v1beta1.Status
12, // 12: cs3.identity.group.v1beta1.GetMembersResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
16, // 13: cs3.identity.group.v1beta1.GetMembersResponse.members:type_name -> cs3.identity.user.v1beta1.UserId
12, // 14: cs3.identity.group.v1beta1.HasMemberRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
13, // 15: cs3.identity.group.v1beta1.HasMemberRequest.group_id:type_name -> cs3.identity.group.v1beta1.GroupId
16, // 16: cs3.identity.group.v1beta1.HasMemberRequest.user_id:type_name -> cs3.identity.user.v1beta1.UserId
14, // 17: cs3.identity.group.v1beta1.HasMemberResponse.status:type_name -> cs3.rpc.v1beta1.Status
12, // 18: cs3.identity.group.v1beta1.HasMemberResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
12, // 19: cs3.identity.group.v1beta1.FindGroupsRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
11, // 20: cs3.identity.group.v1beta1.FindGroupsRequest.filters:type_name -> cs3.identity.group.v1beta1.Filter
14, // 21: cs3.identity.group.v1beta1.FindGroupsResponse.status:type_name -> cs3.rpc.v1beta1.Status
12, // 22: cs3.identity.group.v1beta1.FindGroupsResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
15, // 23: cs3.identity.group.v1beta1.FindGroupsResponse.groups:type_name -> cs3.identity.group.v1beta1.Group
0, // 24: cs3.identity.group.v1beta1.Filter.type:type_name -> cs3.identity.group.v1beta1.Filter.Type
17, // 25: cs3.identity.group.v1beta1.Filter.grouptype:type_name -> cs3.identity.group.v1beta1.GroupType
1, // 26: cs3.identity.group.v1beta1.GroupAPI.GetGroup:input_type -> cs3.identity.group.v1beta1.GetGroupRequest
3, // 27: cs3.identity.group.v1beta1.GroupAPI.GetGroupByClaim:input_type -> cs3.identity.group.v1beta1.GetGroupByClaimRequest
5, // 28: cs3.identity.group.v1beta1.GroupAPI.GetMembers:input_type -> cs3.identity.group.v1beta1.GetMembersRequest
7, // 29: cs3.identity.group.v1beta1.GroupAPI.HasMember:input_type -> cs3.identity.group.v1beta1.HasMemberRequest
9, // 30: cs3.identity.group.v1beta1.GroupAPI.FindGroups:input_type -> cs3.identity.group.v1beta1.FindGroupsRequest
2, // 31: cs3.identity.group.v1beta1.GroupAPI.GetGroup:output_type -> cs3.identity.group.v1beta1.GetGroupResponse
4, // 32: cs3.identity.group.v1beta1.GroupAPI.GetGroupByClaim:output_type -> cs3.identity.group.v1beta1.GetGroupByClaimResponse
6, // 33: cs3.identity.group.v1beta1.GroupAPI.GetMembers:output_type -> cs3.identity.group.v1beta1.GetMembersResponse
8, // 34: cs3.identity.group.v1beta1.GroupAPI.HasMember:output_type -> cs3.identity.group.v1beta1.HasMemberResponse
10, // 35: cs3.identity.group.v1beta1.GroupAPI.FindGroups:output_type -> cs3.identity.group.v1beta1.FindGroupsResponse
31, // [31:36] is the sub-list for method output_type
26, // [26:31] is the sub-list for method input_type
26, // [26:26] is the sub-list for extension type_name
26, // [26:26] is the sub-list for extension extendee
0, // [0:26] is the sub-list for field type_name
}
func init() { file_cs3_identity_group_v1beta1_group_api_proto_init() }
@@ -1107,19 +1274,36 @@ func file_cs3_identity_group_v1beta1_group_api_proto_init() {
return nil
}
}
file_cs3_identity_group_v1beta1_group_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Filter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_cs3_identity_group_v1beta1_group_api_proto_msgTypes[10].OneofWrappers = []interface{}{
(*Filter_Grouptype)(nil),
(*Filter_Query)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cs3_identity_group_v1beta1_group_api_proto_rawDesc,
NumEnums: 0,
NumMessages: 10,
NumEnums: 1,
NumMessages: 11,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_cs3_identity_group_v1beta1_group_api_proto_goTypes,
DependencyIndexes: file_cs3_identity_group_v1beta1_group_api_proto_depIdxs,
EnumInfos: file_cs3_identity_group_v1beta1_group_api_proto_enumTypes,
MessageInfos: file_cs3_identity_group_v1beta1_group_api_proto_msgTypes,
}.Build()
File_cs3_identity_group_v1beta1_group_api_proto = out.File

View File

@@ -56,7 +56,8 @@ type GroupAPIClient interface {
GetMembers(ctx context.Context, in *GetMembersRequest, opts ...grpc.CallOption) (*GetMembersResponse, error)
// Tells if the group has certain member.
HasMember(ctx context.Context, in *HasMemberRequest, opts ...grpc.CallOption) (*HasMemberResponse, error)
// Finds groups whose names match the specified filter.
// Finds groups whose names match the specified filters.
// MAY return CODE_RESOURCE_EXHAUSTED if the filters return too many responses.
FindGroups(ctx context.Context, in *FindGroupsRequest, opts ...grpc.CallOption) (*FindGroupsResponse, error)
}
@@ -125,7 +126,8 @@ type GroupAPIServer interface {
GetMembers(context.Context, *GetMembersRequest) (*GetMembersResponse, error)
// Tells if the group has certain member.
HasMember(context.Context, *HasMemberRequest) (*HasMemberResponse, error)
// Finds groups whose names match the specified filter.
// Finds groups whose names match the specified filters.
// MAY return CODE_RESOURCE_EXHAUSTED if the filters return too many responses.
FindGroups(context.Context, *FindGroupsRequest) (*FindGroupsResponse, error)
}

View File

@@ -44,8 +44,11 @@ const (
type Filter_Type int32
const (
Filter_TYPE_INVALID Filter_Type = 0
Filter_TYPE_INVALID Filter_Type = 0
// extract all users of a given UserType
Filter_TYPE_USERTYPE Filter_Type = 1
// extract all users matching the given query
Filter_TYPE_QUERY Filter_Type = 2
)
// Enum value maps for Filter_Type.
@@ -53,10 +56,12 @@ var (
Filter_Type_name = map[int32]string{
0: "TYPE_INVALID",
1: "TYPE_USERTYPE",
2: "TYPE_QUERY",
}
Filter_Type_value = map[string]int32{
"TYPE_INVALID": 0,
"TYPE_USERTYPE": 1,
"TYPE_QUERY": 2,
}
)
@@ -510,11 +515,8 @@ type FindUsersRequest struct {
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,1,opt,name=opaque,proto3" json:"opaque,omitempty"`
// REQUIRED.
// The search query to apply.
Query string `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"`
// OPTIONAL.
// Optional filters on users, such as filtering for a specific UserType.
Filter []*Filter `protobuf:"bytes,5,rep,name=filter,proto3" json:"filter,omitempty"`
// The filters to apply.
Filters []*Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
// OPTIONAL.
// Whether to skip fetching user groups along with the user object.
SkipFetchingUserGroups bool `protobuf:"varint,3,opt,name=skip_fetching_user_groups,json=skipFetchingUserGroups,proto3" json:"skip_fetching_user_groups,omitempty"`
@@ -559,16 +561,9 @@ func (x *FindUsersRequest) GetOpaque() *v1beta1.Opaque {
return nil
}
func (x *FindUsersRequest) GetQuery() string {
func (x *FindUsersRequest) GetFilters() []*Filter {
if x != nil {
return x.Query
}
return ""
}
func (x *FindUsersRequest) GetFilter() []*Filter {
if x != nil {
return x.Filter
return x.Filters
}
return nil
}
@@ -660,6 +655,7 @@ type Filter struct {
// Types that are assignable to Term:
//
// *Filter_Usertype
// *Filter_Query
Term isFilter_Term `protobuf_oneof:"term"`
}
@@ -716,6 +712,13 @@ func (x *Filter) GetUsertype() UserType {
return UserType_USER_TYPE_INVALID
}
func (x *Filter) GetQuery() string {
if x, ok := x.GetTerm().(*Filter_Query); ok {
return x.Query
}
return ""
}
type isFilter_Term interface {
isFilter_Term()
}
@@ -724,8 +727,14 @@ type Filter_Usertype struct {
Usertype UserType `protobuf:"varint,2,opt,name=usertype,proto3,enum=cs3.identity.user.v1beta1.UserType,oneof"`
}
type Filter_Query struct {
Query string `protobuf:"bytes,3,opt,name=query,proto3,oneof"`
}
func (*Filter_Usertype) isFilter_Term() {}
func (*Filter_Query) isFilter_Term() {}
var File_cs3_identity_user_v1beta1_user_api_proto protoreflect.FileDescriptor
var file_cs3_identity_user_v1beta1_user_api_proto_rawDesc = []byte{
@@ -802,88 +811,89 @@ var file_cs3_identity_user_v1beta1_user_api_proto_rawDesc = []byte{
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f,
0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xd1, 0x01,
0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xbd, 0x01,
0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f,
0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x06, 0x66,
0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06,
0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x66,
0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x6b, 0x69, 0x70, 0x46,
0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x22, 0xae, 0x01, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61,
0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x75,
0x73, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x73, 0x33,
0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65,
0x72, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a,
0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54,
0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x75, 0x73, 0x65,
0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65,
0x48, 0x00, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04,
0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56,
0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55,
0x53, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x65, 0x72,
0x6d, 0x32, 0xbe, 0x03, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x60, 0x0a,
0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69,
0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x75, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x69,
0x6d, 0x12, 0x30, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65,
0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65,
0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65,
0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68,
0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18,
0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x6b, 0x69, 0x70, 0x46, 0x65, 0x74, 0x63, 0x68,
0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xae, 0x01,
0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52,
0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65,
0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0xe4,
0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69,
0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x46, 0x69,
0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x74, 0x79, 0x70,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74,
0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x42, 0xf8, 0x01, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69,
0x74, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08,
0x75, 0x73, 0x65, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72,
0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
0x22, 0x3b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45,
0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59,
0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a,
0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x02, 0x42, 0x06, 0x0a,
0x04, 0x74, 0x65, 0x72, 0x6d, 0x32, 0xbe, 0x03, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x41, 0x50,
0x49, 0x12, 0x60, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79,
0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x30, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x43, 0x6c, 0x61,
0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x47, 0x65,
0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66,
0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69,
0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f,
0x74, 0x6f, 0x50, 0x01, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61, 0x70,
0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f,
0x75, 0x73, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x75, 0x73, 0x65,
0x72, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x49, 0x55, 0xaa, 0x02,
0x19, 0x43, 0x73, 0x33, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x55, 0x73,
0x65, 0x72, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x19, 0x43, 0x73, 0x33,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xf8, 0x01, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70,
0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x2d, 0x63,
0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74,
0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x3b, 0x75, 0x73, 0x65, 0x72, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43,
0x49, 0x55, 0xaa, 0x02, 0x19, 0x43, 0x73, 0x33, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02,
0x19, 0x43, 0x73, 0x33, 0x5c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5c, 0x55, 0x73,
0x65, 0x72, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x25, 0x43, 0x73, 0x33,
0x5c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x56,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x25, 0x43, 0x73, 0x33, 0x5c, 0x49, 0x64, 0x65,
0x6e, 0x74, 0x69, 0x74, 0x79, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
0x1c, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x3a, 0x3a,
0x55, 0x73, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0xea, 0x02, 0x1c, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
0x74, 0x79, 0x3a, 0x3a, 0x55, 0x73, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -932,7 +942,7 @@ var file_cs3_identity_user_v1beta1_user_api_proto_depIdxs = []int32{
12, // 11: cs3.identity.user.v1beta1.GetUserGroupsResponse.status:type_name -> cs3.rpc.v1beta1.Status
10, // 12: cs3.identity.user.v1beta1.GetUserGroupsResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
10, // 13: cs3.identity.user.v1beta1.FindUsersRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
9, // 14: cs3.identity.user.v1beta1.FindUsersRequest.filter:type_name -> cs3.identity.user.v1beta1.Filter
9, // 14: cs3.identity.user.v1beta1.FindUsersRequest.filters:type_name -> cs3.identity.user.v1beta1.Filter
12, // 15: cs3.identity.user.v1beta1.FindUsersResponse.status:type_name -> cs3.rpc.v1beta1.Status
10, // 16: cs3.identity.user.v1beta1.FindUsersResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
13, // 17: cs3.identity.user.v1beta1.FindUsersResponse.users:type_name -> cs3.identity.user.v1beta1.User
@@ -1071,6 +1081,7 @@ func file_cs3_identity_user_v1beta1_user_api_proto_init() {
}
file_cs3_identity_user_v1beta1_user_api_proto_msgTypes[8].OneofWrappers = []interface{}{
(*Filter_Usertype)(nil),
(*Filter_Query)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{

View File

@@ -53,8 +53,8 @@ type UserAPIClient interface {
GetUserByClaim(ctx context.Context, in *GetUserByClaimRequest, opts ...grpc.CallOption) (*GetUserByClaimResponse, error)
// Gets the groups of a user.
GetUserGroups(ctx context.Context, in *GetUserGroupsRequest, opts ...grpc.CallOption) (*GetUserGroupsResponse, error)
// Finds users by any attribute of the user.
// TODO(labkode): to define the filters that make more sense.
// Finds users that match the specified filters.
// MAY return CODE_RESOURCE_EXHAUSTED if the filters return too many responses.
FindUsers(ctx context.Context, in *FindUsersRequest, opts ...grpc.CallOption) (*FindUsersResponse, error)
}
@@ -112,8 +112,8 @@ type UserAPIServer interface {
GetUserByClaim(context.Context, *GetUserByClaimRequest) (*GetUserByClaimResponse, error)
// Gets the groups of a user.
GetUserGroups(context.Context, *GetUserGroupsRequest) (*GetUserGroupsResponse, error)
// Finds users by any attribute of the user.
// TODO(labkode): to define the filters that make more sense.
// Finds users that match the specified filters.
// MAY return CODE_RESOURCE_EXHAUSTED if the filters return too many responses.
FindUsers(context.Context, *FindUsersRequest) (*FindUsersResponse, error)
}

View File

@@ -46,14 +46,11 @@ const (
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type OcmCoreAPIClient interface {
// Creates a new OCM share, in response to a call from remote to:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
// Deprecated. Creates a new OCM share, in response to a call from the remote system
CreateOCMCoreShare(ctx context.Context, in *CreateOCMCoreShareRequest, opts ...grpc.CallOption) (*CreateOCMCoreShareResponse, error)
// Updates an OCM share, in response to a notification from the remote system to:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// Deprecated. Updates an OCM share, in response to a notification from the remote system
UpdateOCMCoreShare(ctx context.Context, in *UpdateOCMCoreShareRequest, opts ...grpc.CallOption) (*UpdateOCMCoreShareResponse, error)
// Deletes an OCM share, in response to a notification from the remote system to:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// Deprecated. Deletes an OCM share, in response to a notification from the remote system
DeleteOCMCoreShare(ctx context.Context, in *DeleteOCMCoreShareRequest, opts ...grpc.CallOption) (*DeleteOCMCoreShareResponse, error)
}
@@ -96,14 +93,11 @@ func (c *ocmCoreAPIClient) DeleteOCMCoreShare(ctx context.Context, in *DeleteOCM
// All implementations should embed UnimplementedOcmCoreAPIServer
// for forward compatibility
type OcmCoreAPIServer interface {
// Creates a new OCM share, in response to a call from remote to:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
// Deprecated. Creates a new OCM share, in response to a call from the remote system
CreateOCMCoreShare(context.Context, *CreateOCMCoreShareRequest) (*CreateOCMCoreShareResponse, error)
// Updates an OCM share, in response to a notification from the remote system to:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// Deprecated. Updates an OCM share, in response to a notification from the remote system
UpdateOCMCoreShare(context.Context, *UpdateOCMCoreShareRequest) (*UpdateOCMCoreShareResponse, error)
// Deletes an OCM share, in response to a notification from the remote system to:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// Deprecated. Deletes an OCM share, in response to a notification from the remote system
DeleteOCMCoreShare(context.Context, *DeleteOCMCoreShareRequest) (*DeleteOCMCoreShareResponse, error)
}

View File

@@ -0,0 +1,957 @@
// Copyright 2018-2025 CERN
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// In applying this license, CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc (unknown)
// source: cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto
package incomingv1beta1
import (
v1beta11 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
v1beta14 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
v1beta13 "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1"
v1beta12 "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
v1beta1 "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
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 CreateOCMIncomingShareRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// OPTIONAL.
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,1,opt,name=opaque,proto3" json:"opaque,omitempty"`
// OPTIONAL.
// Description for the share.
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// REQUIRED.
// Name of the resource (file or folder).
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
// REQUIRED.
// Identifier to identify the resource at the provider side. This is unique per provider.
ResourceId string `protobuf:"bytes,4,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
// REQUIRED.
// Provider specific identifier of the owner of the resource.
Owner *v1beta11.UserId `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"`
// REQUIRED.
// Provider specific identifier of the user that wants to share the resource.
Sender *v1beta11.UserId `protobuf:"bytes,6,opt,name=sender,proto3" json:"sender,omitempty"`
// REQUIRED.
// Consumer specific identifier of the user or group the provider wants to share the resource with.
// This is known in advance, for example using the OCM invitation flow.
// Please note that the consumer service endpoint is known in advance as well, so this is no part of the request body.
// TODO: this field needs to represent either a user or group in the future, not only a user.
ShareWith *v1beta11.UserId `protobuf:"bytes,7,opt,name=share_with,json=shareWith,proto3" json:"share_with,omitempty"`
// REQUIRED.
// Resource type.
// Deprecated: a resource might not always be a storage resource, use shared_resource_type instead.
//
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
ResourceType v1beta12.ResourceType `protobuf:"varint,8,opt,name=resource_type,json=resourceType,proto3,enum=cs3.storage.provider.v1beta1.ResourceType" json:"resource_type,omitempty"`
// REQUIRED.
// Recipient share type.
// Deprecated: use recipient_type instead.
//
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
ShareType v1beta13.ShareType `protobuf:"varint,9,opt,name=share_type,json=shareType,proto3,enum=cs3.sharing.ocm.v1beta1.ShareType" json:"share_type,omitempty"`
// OPTIONAL.
// The expiration time for the OCM share.
Expiration *v1beta1.Timestamp `protobuf:"bytes,10,opt,name=expiration,proto3" json:"expiration,omitempty"`
// REQUIRED.
// The protocols which are used to establish synchronisation,
// with their access rights.
// See also cs3/sharing/ocm/v1beta1/resources.proto for how to map
// this to the OCM share payload.
Protocols []*v1beta13.Protocol `protobuf:"bytes,11,rep,name=protocols,proto3" json:"protocols,omitempty"`
// OPTIONAL.
// A nonce to be exchanged for a (potentially short-lived) bearer token. Deprecated in OCM 1.3.
//
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
Code string `protobuf:"bytes,12,opt,name=code,proto3" json:"code,omitempty"`
// REQUIRED.
// Shared resource type.
SharedResourceType v1beta13.SharedResourceType `protobuf:"varint,13,opt,name=shared_resource_type,json=sharedResourceType,proto3,enum=cs3.sharing.ocm.v1beta1.SharedResourceType" json:"shared_resource_type,omitempty"`
// REQUIRED.
// Recipient type, e.g. user or group.
RecipientType v1beta13.RecipientType `protobuf:"varint,14,opt,name=recipient_type,json=recipientType,proto3,enum=cs3.sharing.ocm.v1beta1.RecipientType" json:"recipient_type,omitempty"`
}
func (x *CreateOCMIncomingShareRequest) Reset() {
*x = CreateOCMIncomingShareRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateOCMIncomingShareRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateOCMIncomingShareRequest) ProtoMessage() {}
func (x *CreateOCMIncomingShareRequest) ProtoReflect() protoreflect.Message {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CreateOCMIncomingShareRequest.ProtoReflect.Descriptor instead.
func (*CreateOCMIncomingShareRequest) Descriptor() ([]byte, []int) {
return file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescGZIP(), []int{0}
}
func (x *CreateOCMIncomingShareRequest) GetOpaque() *v1beta1.Opaque {
if x != nil {
return x.Opaque
}
return nil
}
func (x *CreateOCMIncomingShareRequest) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *CreateOCMIncomingShareRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *CreateOCMIncomingShareRequest) GetResourceId() string {
if x != nil {
return x.ResourceId
}
return ""
}
func (x *CreateOCMIncomingShareRequest) GetOwner() *v1beta11.UserId {
if x != nil {
return x.Owner
}
return nil
}
func (x *CreateOCMIncomingShareRequest) GetSender() *v1beta11.UserId {
if x != nil {
return x.Sender
}
return nil
}
func (x *CreateOCMIncomingShareRequest) GetShareWith() *v1beta11.UserId {
if x != nil {
return x.ShareWith
}
return nil
}
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
func (x *CreateOCMIncomingShareRequest) GetResourceType() v1beta12.ResourceType {
if x != nil {
return x.ResourceType
}
return v1beta12.ResourceType(0)
}
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
func (x *CreateOCMIncomingShareRequest) GetShareType() v1beta13.ShareType {
if x != nil {
return x.ShareType
}
return v1beta13.ShareType(0)
}
func (x *CreateOCMIncomingShareRequest) GetExpiration() *v1beta1.Timestamp {
if x != nil {
return x.Expiration
}
return nil
}
func (x *CreateOCMIncomingShareRequest) GetProtocols() []*v1beta13.Protocol {
if x != nil {
return x.Protocols
}
return nil
}
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
func (x *CreateOCMIncomingShareRequest) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *CreateOCMIncomingShareRequest) GetSharedResourceType() v1beta13.SharedResourceType {
if x != nil {
return x.SharedResourceType
}
return v1beta13.SharedResourceType(0)
}
func (x *CreateOCMIncomingShareRequest) GetRecipientType() v1beta13.RecipientType {
if x != nil {
return x.RecipientType
}
return v1beta13.RecipientType(0)
}
type CreateOCMIncomingShareResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED.
// The response status.
Status *v1beta14.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
// OPTIONAL.
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,2,opt,name=opaque,proto3" json:"opaque,omitempty"`
// REQUIRED.
// Unique ID to identify the share at the consumer side.
Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
// REQUIRED.
Created *v1beta1.Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"`
}
func (x *CreateOCMIncomingShareResponse) Reset() {
*x = CreateOCMIncomingShareResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateOCMIncomingShareResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateOCMIncomingShareResponse) ProtoMessage() {}
func (x *CreateOCMIncomingShareResponse) ProtoReflect() protoreflect.Message {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CreateOCMIncomingShareResponse.ProtoReflect.Descriptor instead.
func (*CreateOCMIncomingShareResponse) Descriptor() ([]byte, []int) {
return file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescGZIP(), []int{1}
}
func (x *CreateOCMIncomingShareResponse) GetStatus() *v1beta14.Status {
if x != nil {
return x.Status
}
return nil
}
func (x *CreateOCMIncomingShareResponse) GetOpaque() *v1beta1.Opaque {
if x != nil {
return x.Opaque
}
return nil
}
func (x *CreateOCMIncomingShareResponse) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *CreateOCMIncomingShareResponse) GetCreated() *v1beta1.Timestamp {
if x != nil {
return x.Created
}
return nil
}
type UpdateOCMIncomingShareRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// OPTIONAL.
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,1,opt,name=opaque,proto3" json:"opaque,omitempty"`
// REQUIRED.
// Unique ID to identify the share at the consumer side.
OcmShareId string `protobuf:"bytes,2,opt,name=ocm_share_id,json=ocmShareId,proto3" json:"ocm_share_id,omitempty"`
// OPTIONAL.
// Description for the share.
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
// OPTIONAL.
// Recipient share type.
// Deprecated: use recipient_type instead.
//
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
ShareType v1beta13.ShareType `protobuf:"varint,5,opt,name=share_type,json=shareType,proto3,enum=cs3.sharing.ocm.v1beta1.ShareType" json:"share_type,omitempty"`
// OPTIONAL.
// The expiration time for the OCM share.
Expiration *v1beta1.Timestamp `protobuf:"bytes,6,opt,name=expiration,proto3" json:"expiration,omitempty"`
// OPTIONAL.
// The protocols which are used to establish synchronisation,
// with their access rights.
Protocols []*v1beta13.Protocol `protobuf:"bytes,7,rep,name=protocols,proto3" json:"protocols,omitempty"`
// OPTIONAL.
// Recipient type.
RecipientType v1beta13.RecipientType `protobuf:"varint,8,opt,name=recipient_type,json=recipientType,proto3,enum=cs3.sharing.ocm.v1beta1.RecipientType" json:"recipient_type,omitempty"`
}
func (x *UpdateOCMIncomingShareRequest) Reset() {
*x = UpdateOCMIncomingShareRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateOCMIncomingShareRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateOCMIncomingShareRequest) ProtoMessage() {}
func (x *UpdateOCMIncomingShareRequest) ProtoReflect() protoreflect.Message {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateOCMIncomingShareRequest.ProtoReflect.Descriptor instead.
func (*UpdateOCMIncomingShareRequest) Descriptor() ([]byte, []int) {
return file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescGZIP(), []int{2}
}
func (x *UpdateOCMIncomingShareRequest) GetOpaque() *v1beta1.Opaque {
if x != nil {
return x.Opaque
}
return nil
}
func (x *UpdateOCMIncomingShareRequest) GetOcmShareId() string {
if x != nil {
return x.OcmShareId
}
return ""
}
func (x *UpdateOCMIncomingShareRequest) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
// Deprecated: Marked as deprecated in cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto.
func (x *UpdateOCMIncomingShareRequest) GetShareType() v1beta13.ShareType {
if x != nil {
return x.ShareType
}
return v1beta13.ShareType(0)
}
func (x *UpdateOCMIncomingShareRequest) GetExpiration() *v1beta1.Timestamp {
if x != nil {
return x.Expiration
}
return nil
}
func (x *UpdateOCMIncomingShareRequest) GetProtocols() []*v1beta13.Protocol {
if x != nil {
return x.Protocols
}
return nil
}
func (x *UpdateOCMIncomingShareRequest) GetRecipientType() v1beta13.RecipientType {
if x != nil {
return x.RecipientType
}
return v1beta13.RecipientType(0)
}
type UpdateOCMIncomingShareResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED.
// The response status.
Status *v1beta14.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
// OPTIONAL.
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,2,opt,name=opaque,proto3" json:"opaque,omitempty"`
}
func (x *UpdateOCMIncomingShareResponse) Reset() {
*x = UpdateOCMIncomingShareResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateOCMIncomingShareResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateOCMIncomingShareResponse) ProtoMessage() {}
func (x *UpdateOCMIncomingShareResponse) ProtoReflect() protoreflect.Message {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateOCMIncomingShareResponse.ProtoReflect.Descriptor instead.
func (*UpdateOCMIncomingShareResponse) Descriptor() ([]byte, []int) {
return file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescGZIP(), []int{3}
}
func (x *UpdateOCMIncomingShareResponse) GetStatus() *v1beta14.Status {
if x != nil {
return x.Status
}
return nil
}
func (x *UpdateOCMIncomingShareResponse) GetOpaque() *v1beta1.Opaque {
if x != nil {
return x.Opaque
}
return nil
}
type DeleteOCMIncomingShareRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED.
// Unique ID to identify the share at the consumer side.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// OPTIONAL.
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,2,opt,name=opaque,proto3" json:"opaque,omitempty"`
}
func (x *DeleteOCMIncomingShareRequest) Reset() {
*x = DeleteOCMIncomingShareRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteOCMIncomingShareRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteOCMIncomingShareRequest) ProtoMessage() {}
func (x *DeleteOCMIncomingShareRequest) ProtoReflect() protoreflect.Message {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteOCMIncomingShareRequest.ProtoReflect.Descriptor instead.
func (*DeleteOCMIncomingShareRequest) Descriptor() ([]byte, []int) {
return file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescGZIP(), []int{4}
}
func (x *DeleteOCMIncomingShareRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DeleteOCMIncomingShareRequest) GetOpaque() *v1beta1.Opaque {
if x != nil {
return x.Opaque
}
return nil
}
type DeleteOCMIncomingShareResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED.
// The response status.
Status *v1beta14.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
// OPTIONAL.
// Opaque information.
Opaque *v1beta1.Opaque `protobuf:"bytes,2,opt,name=opaque,proto3" json:"opaque,omitempty"`
}
func (x *DeleteOCMIncomingShareResponse) Reset() {
*x = DeleteOCMIncomingShareResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteOCMIncomingShareResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteOCMIncomingShareResponse) ProtoMessage() {}
func (x *DeleteOCMIncomingShareResponse) ProtoReflect() protoreflect.Message {
mi := &file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteOCMIncomingShareResponse.ProtoReflect.Descriptor instead.
func (*DeleteOCMIncomingShareResponse) Descriptor() ([]byte, []int) {
return file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescGZIP(), []int{5}
}
func (x *DeleteOCMIncomingShareResponse) GetStatus() *v1beta14.Status {
if x != nil {
return x.Status
}
return nil
}
func (x *DeleteOCMIncomingShareResponse) GetOpaque() *v1beta1.Opaque {
if x != nil {
return x.Opaque
}
return nil
}
var File_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto protoreflect.FileDescriptor
var file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDesc = []byte{
0x0a, 0x2f, 0x63, 0x73, 0x33, 0x2f, 0x6f, 0x63, 0x6d, 0x2f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6f, 0x63, 0x6d, 0x5f, 0x69,
0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x18, 0x63, 0x73, 0x33, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x69, 0x6e, 0x63, 0x6f, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x29, 0x63, 0x73, 0x33,
0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x63, 0x73, 0x33, 0x2f, 0x72, 0x70, 0x63, 0x2f,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, 0x73, 0x33, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
0x67, 0x2f, 0x6f, 0x63, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x63,
0x73, 0x33, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69,
0x64, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x63, 0x73, 0x33,
0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x06, 0x0a, 0x1d, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06,
0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12,
0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12,
0x39, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x21, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72,
0x49, 0x64, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0a, 0x73, 0x68,
0x61, 0x72, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73,
0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49,
0x64, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x57, 0x69, 0x74, 0x68, 0x12, 0x53, 0x0a, 0x0d,
0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42,
0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x12, 0x45, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72,
0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x53, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x73,
0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
0x6f, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x09, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x5d, 0x0a, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e,
0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x73, 0x68, 0x61, 0x72,
0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d,
0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d,
0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xcc, 0x01,
0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d,
0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70,
0x61, 0x71, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0xab, 0x03, 0x0a,
0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31,
0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6f, 0x63, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x63, 0x6d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18,
0x01, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x0a,
0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a,
0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x09, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e,
0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0e, 0x72,
0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65,
0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x63,
0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a,
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31,
0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x22, 0x62, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e,
0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f,
0x70, 0x61, 0x71, 0x75, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72,
0x70, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61,
0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70,
0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x32, 0xba, 0x03, 0x0a,
0x0e, 0x4f, 0x63, 0x6d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x50, 0x49, 0x12,
0x8b, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63,
0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x73, 0x33,
0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49,
0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x69, 0x6e,
0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01,
0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d,
0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x6f,
0x63, 0x6d, 0x2e, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63,
0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x38, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x69, 0x6e, 0x63, 0x6f,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x68,
0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x16,
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e,
0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x6f, 0x63, 0x6d,
0x2e, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d,
0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x38, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x4f, 0x43, 0x4d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72,
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xfd, 0x01, 0x0a, 0x1c, 0x63, 0x6f,
0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x13, 0x4f, 0x63, 0x6d, 0x49,
0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73,
0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f,
0x63, 0x73, 0x33, 0x2f, 0x6f, 0x63, 0x6d, 0x2f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e,
0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x4f, 0x49, 0xaa, 0x02,
0x18, 0x43, 0x73, 0x33, 0x2e, 0x4f, 0x63, 0x6d, 0x2e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, 0x43, 0x73, 0x33, 0x5c,
0x4f, 0x63, 0x6d, 0x5c, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x43, 0x73, 0x33, 0x5c, 0x4f, 0x63, 0x6d, 0x5c, 0x49,
0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c,
0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1b, 0x43, 0x73,
0x33, 0x3a, 0x3a, 0x4f, 0x63, 0x6d, 0x3a, 0x3a, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescOnce sync.Once
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescData = file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDesc
)
func file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescGZIP() []byte {
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescOnce.Do(func() {
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescData)
})
return file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDescData
}
var file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_goTypes = []interface{}{
(*CreateOCMIncomingShareRequest)(nil), // 0: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest
(*CreateOCMIncomingShareResponse)(nil), // 1: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareResponse
(*UpdateOCMIncomingShareRequest)(nil), // 2: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareRequest
(*UpdateOCMIncomingShareResponse)(nil), // 3: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareResponse
(*DeleteOCMIncomingShareRequest)(nil), // 4: cs3.ocm.incoming.v1beta1.DeleteOCMIncomingShareRequest
(*DeleteOCMIncomingShareResponse)(nil), // 5: cs3.ocm.incoming.v1beta1.DeleteOCMIncomingShareResponse
(*v1beta1.Opaque)(nil), // 6: cs3.types.v1beta1.Opaque
(*v1beta11.UserId)(nil), // 7: cs3.identity.user.v1beta1.UserId
(v1beta12.ResourceType)(0), // 8: cs3.storage.provider.v1beta1.ResourceType
(v1beta13.ShareType)(0), // 9: cs3.sharing.ocm.v1beta1.ShareType
(*v1beta1.Timestamp)(nil), // 10: cs3.types.v1beta1.Timestamp
(*v1beta13.Protocol)(nil), // 11: cs3.sharing.ocm.v1beta1.Protocol
(v1beta13.SharedResourceType)(0), // 12: cs3.sharing.ocm.v1beta1.SharedResourceType
(v1beta13.RecipientType)(0), // 13: cs3.sharing.ocm.v1beta1.RecipientType
(*v1beta14.Status)(nil), // 14: cs3.rpc.v1beta1.Status
}
var file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_depIdxs = []int32{
6, // 0: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
7, // 1: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.owner:type_name -> cs3.identity.user.v1beta1.UserId
7, // 2: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.sender:type_name -> cs3.identity.user.v1beta1.UserId
7, // 3: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.share_with:type_name -> cs3.identity.user.v1beta1.UserId
8, // 4: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.resource_type:type_name -> cs3.storage.provider.v1beta1.ResourceType
9, // 5: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.share_type:type_name -> cs3.sharing.ocm.v1beta1.ShareType
10, // 6: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.expiration:type_name -> cs3.types.v1beta1.Timestamp
11, // 7: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.protocols:type_name -> cs3.sharing.ocm.v1beta1.Protocol
12, // 8: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.shared_resource_type:type_name -> cs3.sharing.ocm.v1beta1.SharedResourceType
13, // 9: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest.recipient_type:type_name -> cs3.sharing.ocm.v1beta1.RecipientType
14, // 10: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
6, // 11: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
10, // 12: cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareResponse.created:type_name -> cs3.types.v1beta1.Timestamp
6, // 13: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
9, // 14: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareRequest.share_type:type_name -> cs3.sharing.ocm.v1beta1.ShareType
10, // 15: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareRequest.expiration:type_name -> cs3.types.v1beta1.Timestamp
11, // 16: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareRequest.protocols:type_name -> cs3.sharing.ocm.v1beta1.Protocol
13, // 17: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareRequest.recipient_type:type_name -> cs3.sharing.ocm.v1beta1.RecipientType
14, // 18: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
6, // 19: cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
6, // 20: cs3.ocm.incoming.v1beta1.DeleteOCMIncomingShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
14, // 21: cs3.ocm.incoming.v1beta1.DeleteOCMIncomingShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
6, // 22: cs3.ocm.incoming.v1beta1.DeleteOCMIncomingShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
0, // 23: cs3.ocm.incoming.v1beta1.OcmIncomingAPI.CreateOCMIncomingShare:input_type -> cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareRequest
2, // 24: cs3.ocm.incoming.v1beta1.OcmIncomingAPI.UpdateOCMIncomingShare:input_type -> cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareRequest
4, // 25: cs3.ocm.incoming.v1beta1.OcmIncomingAPI.DeleteOCMIncomingShare:input_type -> cs3.ocm.incoming.v1beta1.DeleteOCMIncomingShareRequest
1, // 26: cs3.ocm.incoming.v1beta1.OcmIncomingAPI.CreateOCMIncomingShare:output_type -> cs3.ocm.incoming.v1beta1.CreateOCMIncomingShareResponse
3, // 27: cs3.ocm.incoming.v1beta1.OcmIncomingAPI.UpdateOCMIncomingShare:output_type -> cs3.ocm.incoming.v1beta1.UpdateOCMIncomingShareResponse
5, // 28: cs3.ocm.incoming.v1beta1.OcmIncomingAPI.DeleteOCMIncomingShare:output_type -> cs3.ocm.incoming.v1beta1.DeleteOCMIncomingShareResponse
26, // [26:29] is the sub-list for method output_type
23, // [23:26] is the sub-list for method input_type
23, // [23:23] is the sub-list for extension type_name
23, // [23:23] is the sub-list for extension extendee
0, // [0:23] is the sub-list for field type_name
}
func init() { file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_init() }
func file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_init() {
if File_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateOCMIncomingShareRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateOCMIncomingShareResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateOCMIncomingShareRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateOCMIncomingShareResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteOCMIncomingShareRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteOCMIncomingShareResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_goTypes,
DependencyIndexes: file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_depIdxs,
MessageInfos: file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_msgTypes,
}.Build()
File_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto = out.File
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_rawDesc = nil
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_goTypes = nil
file_cs3_ocm_incoming_v1beta1_ocm_incoming_api_proto_depIdxs = nil
}

View File

@@ -0,0 +1,211 @@
// Copyright 2018-2025 CERN
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// In applying this license, CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc (unknown)
// source: cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto
package incomingv1beta1
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
const (
OcmIncomingAPI_CreateOCMIncomingShare_FullMethodName = "/cs3.ocm.incoming.v1beta1.OcmIncomingAPI/CreateOCMIncomingShare"
OcmIncomingAPI_UpdateOCMIncomingShare_FullMethodName = "/cs3.ocm.incoming.v1beta1.OcmIncomingAPI/UpdateOCMIncomingShare"
OcmIncomingAPI_DeleteOCMIncomingShare_FullMethodName = "/cs3.ocm.incoming.v1beta1.OcmIncomingAPI/DeleteOCMIncomingShare"
)
// OcmIncomingAPIClient is the client API for OcmIncomingAPI service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type OcmIncomingAPIClient interface {
// Creates a new OCM share in response to a call from remote to `/ocm/shares`. See:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
CreateOCMIncomingShare(ctx context.Context, in *CreateOCMIncomingShareRequest, opts ...grpc.CallOption) (*CreateOCMIncomingShareResponse, error)
// Updates an OCM share in response to a notification from remote to `/ocm/notifications`. See:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
UpdateOCMIncomingShare(ctx context.Context, in *UpdateOCMIncomingShareRequest, opts ...grpc.CallOption) (*UpdateOCMIncomingShareResponse, error)
// Deletes an OCM share in response to a notification from remote to `/ocm/notifications`. See:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
DeleteOCMIncomingShare(ctx context.Context, in *DeleteOCMIncomingShareRequest, opts ...grpc.CallOption) (*DeleteOCMIncomingShareResponse, error)
}
type ocmIncomingAPIClient struct {
cc grpc.ClientConnInterface
}
func NewOcmIncomingAPIClient(cc grpc.ClientConnInterface) OcmIncomingAPIClient {
return &ocmIncomingAPIClient{cc}
}
func (c *ocmIncomingAPIClient) CreateOCMIncomingShare(ctx context.Context, in *CreateOCMIncomingShareRequest, opts ...grpc.CallOption) (*CreateOCMIncomingShareResponse, error) {
out := new(CreateOCMIncomingShareResponse)
err := c.cc.Invoke(ctx, OcmIncomingAPI_CreateOCMIncomingShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ocmIncomingAPIClient) UpdateOCMIncomingShare(ctx context.Context, in *UpdateOCMIncomingShareRequest, opts ...grpc.CallOption) (*UpdateOCMIncomingShareResponse, error) {
out := new(UpdateOCMIncomingShareResponse)
err := c.cc.Invoke(ctx, OcmIncomingAPI_UpdateOCMIncomingShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ocmIncomingAPIClient) DeleteOCMIncomingShare(ctx context.Context, in *DeleteOCMIncomingShareRequest, opts ...grpc.CallOption) (*DeleteOCMIncomingShareResponse, error) {
out := new(DeleteOCMIncomingShareResponse)
err := c.cc.Invoke(ctx, OcmIncomingAPI_DeleteOCMIncomingShare_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// OcmIncomingAPIServer is the server API for OcmIncomingAPI service.
// All implementations should embed UnimplementedOcmIncomingAPIServer
// for forward compatibility
type OcmIncomingAPIServer interface {
// Creates a new OCM share in response to a call from remote to `/ocm/shares`. See:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
CreateOCMIncomingShare(context.Context, *CreateOCMIncomingShareRequest) (*CreateOCMIncomingShareResponse, error)
// Updates an OCM share in response to a notification from remote to `/ocm/notifications`. See:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
UpdateOCMIncomingShare(context.Context, *UpdateOCMIncomingShareRequest) (*UpdateOCMIncomingShareResponse, error)
// Deletes an OCM share in response to a notification from remote to `/ocm/notifications`. See:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
DeleteOCMIncomingShare(context.Context, *DeleteOCMIncomingShareRequest) (*DeleteOCMIncomingShareResponse, error)
}
// UnimplementedOcmIncomingAPIServer should be embedded to have forward compatible implementations.
type UnimplementedOcmIncomingAPIServer struct {
}
func (UnimplementedOcmIncomingAPIServer) CreateOCMIncomingShare(context.Context, *CreateOCMIncomingShareRequest) (*CreateOCMIncomingShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateOCMIncomingShare not implemented")
}
func (UnimplementedOcmIncomingAPIServer) UpdateOCMIncomingShare(context.Context, *UpdateOCMIncomingShareRequest) (*UpdateOCMIncomingShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateOCMIncomingShare not implemented")
}
func (UnimplementedOcmIncomingAPIServer) DeleteOCMIncomingShare(context.Context, *DeleteOCMIncomingShareRequest) (*DeleteOCMIncomingShareResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteOCMIncomingShare not implemented")
}
// UnsafeOcmIncomingAPIServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to OcmIncomingAPIServer will
// result in compilation errors.
type UnsafeOcmIncomingAPIServer interface {
mustEmbedUnimplementedOcmIncomingAPIServer()
}
func RegisterOcmIncomingAPIServer(s grpc.ServiceRegistrar, srv OcmIncomingAPIServer) {
s.RegisterService(&OcmIncomingAPI_ServiceDesc, srv)
}
func _OcmIncomingAPI_CreateOCMIncomingShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateOCMIncomingShareRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(OcmIncomingAPIServer).CreateOCMIncomingShare(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: OcmIncomingAPI_CreateOCMIncomingShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(OcmIncomingAPIServer).CreateOCMIncomingShare(ctx, req.(*CreateOCMIncomingShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _OcmIncomingAPI_UpdateOCMIncomingShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateOCMIncomingShareRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(OcmIncomingAPIServer).UpdateOCMIncomingShare(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: OcmIncomingAPI_UpdateOCMIncomingShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(OcmIncomingAPIServer).UpdateOCMIncomingShare(ctx, req.(*UpdateOCMIncomingShareRequest))
}
return interceptor(ctx, in, info, handler)
}
func _OcmIncomingAPI_DeleteOCMIncomingShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteOCMIncomingShareRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(OcmIncomingAPIServer).DeleteOCMIncomingShare(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: OcmIncomingAPI_DeleteOCMIncomingShare_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(OcmIncomingAPIServer).DeleteOCMIncomingShare(ctx, req.(*DeleteOCMIncomingShareRequest))
}
return interceptor(ctx, in, info, handler)
}
// OcmIncomingAPI_ServiceDesc is the grpc.ServiceDesc for OcmIncomingAPI service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var OcmIncomingAPI_ServiceDesc = grpc.ServiceDesc{
ServiceName: "cs3.ocm.incoming.v1beta1.OcmIncomingAPI",
HandlerType: (*OcmIncomingAPIServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "CreateOCMIncomingShare",
Handler: _OcmIncomingAPI_CreateOCMIncomingShare_Handler,
},
{
MethodName: "UpdateOCMIncomingShare",
Handler: _OcmIncomingAPI_UpdateOCMIncomingShare_Handler,
},
{
MethodName: "DeleteOCMIncomingShare",
Handler: _OcmIncomingAPI_DeleteOCMIncomingShare_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "cs3/ocm/incoming/v1beta1/ocm_incoming_api.proto",
}

View File

@@ -107,6 +107,60 @@ func (ListOCMSharesRequest_Filter_Type) EnumDescriptor() ([]byte, []int) {
return file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDescGZIP(), []int{4, 0, 0}
}
// REQUIRED.
// The filter to apply.
type ListReceivedOCMSharesRequest_Filter_Type int32
const (
ListReceivedOCMSharesRequest_Filter_TYPE_INVALID ListReceivedOCMSharesRequest_Filter_Type = 0
ListReceivedOCMSharesRequest_Filter_TYPE_OWNER ListReceivedOCMSharesRequest_Filter_Type = 1
ListReceivedOCMSharesRequest_Filter_TYPE_CREATOR ListReceivedOCMSharesRequest_Filter_Type = 2
ListReceivedOCMSharesRequest_Filter_TYPE_SHARE_TYPE ListReceivedOCMSharesRequest_Filter_Type = 3
)
// Enum value maps for ListReceivedOCMSharesRequest_Filter_Type.
var (
ListReceivedOCMSharesRequest_Filter_Type_name = map[int32]string{
0: "TYPE_INVALID",
1: "TYPE_OWNER",
2: "TYPE_CREATOR",
3: "TYPE_SHARE_TYPE",
}
ListReceivedOCMSharesRequest_Filter_Type_value = map[string]int32{
"TYPE_INVALID": 0,
"TYPE_OWNER": 1,
"TYPE_CREATOR": 2,
"TYPE_SHARE_TYPE": 3,
}
)
func (x ListReceivedOCMSharesRequest_Filter_Type) Enum() *ListReceivedOCMSharesRequest_Filter_Type {
p := new(ListReceivedOCMSharesRequest_Filter_Type)
*p = x
return p
}
func (x ListReceivedOCMSharesRequest_Filter_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ListReceivedOCMSharesRequest_Filter_Type) Descriptor() protoreflect.EnumDescriptor {
return file_cs3_sharing_ocm_v1beta1_ocm_api_proto_enumTypes[1].Descriptor()
}
func (ListReceivedOCMSharesRequest_Filter_Type) Type() protoreflect.EnumType {
return &file_cs3_sharing_ocm_v1beta1_ocm_api_proto_enumTypes[1]
}
func (x ListReceivedOCMSharesRequest_Filter_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ListReceivedOCMSharesRequest_Filter_Type.Descriptor instead.
func (ListReceivedOCMSharesRequest_Filter_Type) EnumDescriptor() ([]byte, []int) {
return file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDescGZIP(), []int{12, 0, 0}
}
type CreateOCMShareRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -125,6 +179,7 @@ type CreateOCMShareRequest struct {
// The details of the recipient user's mesh provider.
RecipientMeshProvider *v1beta12.ProviderInfo `protobuf:"bytes,4,opt,name=recipient_mesh_provider,json=recipientMeshProvider,proto3" json:"recipient_mesh_provider,omitempty"`
// REQUIRED.
// The protocols used to access the resource from remote.
AccessMethods []*AccessMethod `protobuf:"bytes,5,rep,name=access_methods,json=accessMethods,proto3" json:"access_methods,omitempty"`
// OPTIONAL.
// The expiration time for the ocm share.
@@ -943,6 +998,9 @@ type ListReceivedOCMSharesRequest struct {
// OPTIONAL.
// The client uses this field to request a specific page of the list results.
PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
// OPTIONAL.
// The list of filters to apply if any.
Filters []*ListReceivedOCMSharesRequest_Filter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"`
}
func (x *ListReceivedOCMSharesRequest) Reset() {
@@ -998,6 +1056,13 @@ func (x *ListReceivedOCMSharesRequest) GetPageToken() string {
return ""
}
func (x *ListReceivedOCMSharesRequest) GetFilters() []*ListReceivedOCMSharesRequest_Filter {
if x != nil {
return x.Filters
}
return nil
}
type ListReceivedOCMSharesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1528,6 +1593,111 @@ func (*ListOCMSharesRequest_Filter_Owner) isListOCMSharesRequest_Filter_Term() {
func (*ListOCMSharesRequest_Filter_Creator) isListOCMSharesRequest_Filter_Term() {}
type ListReceivedOCMSharesRequest_Filter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED.
Type ListReceivedOCMSharesRequest_Filter_Type `protobuf:"varint,1,opt,name=type,proto3,enum=cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest_Filter_Type" json:"type,omitempty"`
// Types that are assignable to Term:
//
// *ListReceivedOCMSharesRequest_Filter_Owner
// *ListReceivedOCMSharesRequest_Filter_Creator
// *ListReceivedOCMSharesRequest_Filter_SharedResourceType
Term isListReceivedOCMSharesRequest_Filter_Term `protobuf_oneof:"term"`
}
func (x *ListReceivedOCMSharesRequest_Filter) Reset() {
*x = ListReceivedOCMSharesRequest_Filter{}
if protoimpl.UnsafeEnabled {
mi := &file_cs3_sharing_ocm_v1beta1_ocm_api_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListReceivedOCMSharesRequest_Filter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListReceivedOCMSharesRequest_Filter) ProtoMessage() {}
func (x *ListReceivedOCMSharesRequest_Filter) ProtoReflect() protoreflect.Message {
mi := &file_cs3_sharing_ocm_v1beta1_ocm_api_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListReceivedOCMSharesRequest_Filter.ProtoReflect.Descriptor instead.
func (*ListReceivedOCMSharesRequest_Filter) Descriptor() ([]byte, []int) {
return file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDescGZIP(), []int{12, 0}
}
func (x *ListReceivedOCMSharesRequest_Filter) GetType() ListReceivedOCMSharesRequest_Filter_Type {
if x != nil {
return x.Type
}
return ListReceivedOCMSharesRequest_Filter_TYPE_INVALID
}
func (m *ListReceivedOCMSharesRequest_Filter) GetTerm() isListReceivedOCMSharesRequest_Filter_Term {
if m != nil {
return m.Term
}
return nil
}
func (x *ListReceivedOCMSharesRequest_Filter) GetOwner() *v1beta14.UserId {
if x, ok := x.GetTerm().(*ListReceivedOCMSharesRequest_Filter_Owner); ok {
return x.Owner
}
return nil
}
func (x *ListReceivedOCMSharesRequest_Filter) GetCreator() *v1beta14.UserId {
if x, ok := x.GetTerm().(*ListReceivedOCMSharesRequest_Filter_Creator); ok {
return x.Creator
}
return nil
}
func (x *ListReceivedOCMSharesRequest_Filter) GetSharedResourceType() SharedResourceType {
if x, ok := x.GetTerm().(*ListReceivedOCMSharesRequest_Filter_SharedResourceType); ok {
return x.SharedResourceType
}
return SharedResourceType_SHARE_RESOURCE_TYPE_INVALID
}
type isListReceivedOCMSharesRequest_Filter_Term interface {
isListReceivedOCMSharesRequest_Filter_Term()
}
type ListReceivedOCMSharesRequest_Filter_Owner struct {
Owner *v1beta14.UserId `protobuf:"bytes,2,opt,name=owner,proto3,oneof"`
}
type ListReceivedOCMSharesRequest_Filter_Creator struct {
Creator *v1beta14.UserId `protobuf:"bytes,3,opt,name=creator,proto3,oneof"`
}
type ListReceivedOCMSharesRequest_Filter_SharedResourceType struct {
SharedResourceType SharedResourceType `protobuf:"varint,4,opt,name=shared_resource_type,json=sharedResourceType,proto3,enum=cs3.sharing.ocm.v1beta1.SharedResourceType,oneof"`
}
func (*ListReceivedOCMSharesRequest_Filter_Owner) isListReceivedOCMSharesRequest_Filter_Term() {}
func (*ListReceivedOCMSharesRequest_Filter_Creator) isListReceivedOCMSharesRequest_Filter_Term() {}
func (*ListReceivedOCMSharesRequest_Filter_SharedResourceType) isListReceivedOCMSharesRequest_Filter_Term() {
}
var File_cs3_sharing_ocm_v1beta1_ocm_api_proto protoreflect.FileDescriptor
var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDesc = []byte{
@@ -1729,7 +1899,7 @@ var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDesc = []byte{
0x34, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x05,
0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0xfb, 0x04, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70,
@@ -1738,149 +1908,180 @@ var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDesc = []byte{
0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61,
0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xeb, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61,
0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73,
0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68,
0x61, 0x72, 0x65, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e,
0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f,
0x6b, 0x65, 0x6e, 0x22, 0xcd, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x56, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d,
0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x93, 0x03,
0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d,
0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
0x39, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73,
0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49,
0x64, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x07, 0x63, 0x72,
0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x73,
0x33, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00,
0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5f, 0x0a, 0x14, 0x73, 0x68, 0x61,
0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x12, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x54, 0x79,
0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c,
0x49, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x57, 0x4e,
0x45, 0x52, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x45,
0x41, 0x54, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53,
0x48, 0x41, 0x52, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x74,
0x65, 0x72, 0x6d, 0x22, 0xeb, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70,
0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x68, 0x61,
0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72,
0x65, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78,
0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
0x6e, 0x22, 0xcd, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06,
0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72,
0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x05, 0x73,
0x68, 0x61, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d,
0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c,
0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73,
0x6b, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65,
0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52,
0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69,
0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d,
0x61, 0x73, 0x6b, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79,
0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74,
0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71,
0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1a, 0x47,
0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61,
0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61,
0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70,
0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x03,
0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
0x63, 0x65, 0x52, 0x03, 0x72, 0x65, 0x66, 0x22, 0xbf, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52,
0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61,
0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x73,
0x68, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33,
0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61,
0x72, 0x65, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x32, 0xd2, 0x08, 0x0a, 0x06, 0x4f, 0x63,
0x6d, 0x41, 0x50, 0x49, 0x12, 0x71, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43,
0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76,
0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61,
0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61,
0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0b, 0x47, 0x65,
0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x73, 0x33, 0x2e,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68,
0x61, 0x72, 0x65, 0x42, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, 0x63, 0x73, 0x33,
0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65,
0x42, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53,
0x68, 0x61, 0x72, 0x65, 0x42, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68,
0x61, 0x72, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69,
0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c,
0x69, 0x73, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69,
0x73, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d,
0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72,
0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72,
0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73,
0x12, 0x35, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f,
0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x03, 0x72, 0x65,
0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43,
0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x89, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76,
0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x36, 0x2e, 0x63, 0x73, 0x33,
0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69,
0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67,
0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68,
0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13,
0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68,
0x61, 0x72, 0x65, 0x12, 0x33, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65,
0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73,
0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
0x52, 0x03, 0x72, 0x65, 0x66, 0x22, 0xbf, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x74, 0x79, 0x70,
0x65, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x68, 0x61,
0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73,
0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43,
0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xea,
0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69,
0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0b,
0x4f, 0x63, 0x6d, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67,
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67,
0x2f, 0x67, 0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x63, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x3b, 0x6f, 0x63, 0x6d, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02,
0x03, 0x43, 0x53, 0x4f, 0xaa, 0x02, 0x17, 0x43, 0x73, 0x33, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69,
0x6e, 0x67, 0x2e, 0x4f, 0x63, 0x6d, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02,
0x17, 0x43, 0x73, 0x33, 0x5c, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x4f, 0x63, 0x6d,
0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, 0x43, 0x73, 0x33, 0x5c, 0x53,
0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x4f, 0x63, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
0x1a, 0x43, 0x73, 0x33, 0x3a, 0x3a, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x4f,
0x63, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
0x61, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65,
0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x32, 0xd2, 0x08, 0x0a, 0x06, 0x4f, 0x63, 0x6d, 0x41,
0x50, 0x49, 0x12, 0x71, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53,
0x68, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69,
0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69,
0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f,
0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4f,
0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69,
0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47,
0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x42, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73,
0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x42, 0x79,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63,
0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61,
0x72, 0x65, 0x42, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x6e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67,
0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73,
0x74, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e,
0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x71, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68,
0x61, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x35,
0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72,
0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53,
0x68, 0x61, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01,
0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64,
0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x36, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73,
0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x37, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f,
0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x47, 0x65,
0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x12, 0x33, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e,
0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52,
0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4f, 0x43, 0x4d, 0x53,
0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xea, 0x01, 0x0a,
0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x73, 0x33, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67,
0x2e, 0x6f, 0x63, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0b, 0x4f, 0x63,
0x6d, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x73, 0x33, 0x6f, 0x72, 0x67, 0x2f, 0x67,
0x6f, 0x2d, 0x63, 0x73, 0x33, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x73, 0x33, 0x2f, 0x73, 0x68,
0x61, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x63, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x3b, 0x6f, 0x63, 0x6d, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43,
0x53, 0x4f, 0xaa, 0x02, 0x17, 0x43, 0x73, 0x33, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67,
0x2e, 0x4f, 0x63, 0x6d, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43,
0x73, 0x33, 0x5c, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x4f, 0x63, 0x6d, 0x5c, 0x56,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, 0x43, 0x73, 0x33, 0x5c, 0x53, 0x68, 0x61,
0x72, 0x69, 0x6e, 0x67, 0x5c, 0x4f, 0x63, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x43,
0x73, 0x33, 0x3a, 0x3a, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x4f, 0x63, 0x6d,
0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
@@ -1895,117 +2096,125 @@ func file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDescGZIP() []byte {
return file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDescData
}
var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_goTypes = []interface{}{
(ListOCMSharesRequest_Filter_Type)(0), // 0: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.Type
(*CreateOCMShareRequest)(nil), // 1: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest
(*CreateOCMShareResponse)(nil), // 2: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse
(*UpdateOCMShareRequest)(nil), // 3: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest
(*UpdateOCMShareResponse)(nil), // 4: cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse
(*ListOCMSharesRequest)(nil), // 5: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest
(*ListOCMSharesResponse)(nil), // 6: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse
(*RemoveOCMShareRequest)(nil), // 7: cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest
(*RemoveOCMShareResponse)(nil), // 8: cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse
(*GetOCMShareRequest)(nil), // 9: cs3.sharing.ocm.v1beta1.GetOCMShareRequest
(*GetOCMShareResponse)(nil), // 10: cs3.sharing.ocm.v1beta1.GetOCMShareResponse
(*GetOCMShareByTokenRequest)(nil), // 11: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenRequest
(*GetOCMShareByTokenResponse)(nil), // 12: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse
(*ListReceivedOCMSharesRequest)(nil), // 13: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest
(*ListReceivedOCMSharesResponse)(nil), // 14: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse
(*UpdateReceivedOCMShareRequest)(nil), // 15: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest
(*UpdateReceivedOCMShareResponse)(nil), // 16: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse
(*GetReceivedOCMShareRequest)(nil), // 17: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest
(*GetReceivedOCMShareResponse)(nil), // 18: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse
(*UpdateOCMShareRequest_UpdateField)(nil), // 19: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField
(*ListOCMSharesRequest_Filter)(nil), // 20: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter
(*v1beta1.Opaque)(nil), // 21: cs3.types.v1beta1.Opaque
(*v1beta11.ResourceId)(nil), // 22: cs3.storage.provider.v1beta1.ResourceId
(*v1beta11.Grantee)(nil), // 23: cs3.storage.provider.v1beta1.Grantee
(*v1beta12.ProviderInfo)(nil), // 24: cs3.ocm.provider.v1beta1.ProviderInfo
(*AccessMethod)(nil), // 25: cs3.sharing.ocm.v1beta1.AccessMethod
(*v1beta1.Timestamp)(nil), // 26: cs3.types.v1beta1.Timestamp
(*v1beta13.Status)(nil), // 27: cs3.rpc.v1beta1.Status
(*Share)(nil), // 28: cs3.sharing.ocm.v1beta1.Share
(*ShareReference)(nil), // 29: cs3.sharing.ocm.v1beta1.ShareReference
(*ReceivedShare)(nil), // 30: cs3.sharing.ocm.v1beta1.ReceivedShare
(*fieldmaskpb.FieldMask)(nil), // 31: google.protobuf.FieldMask
(*v1beta14.UserId)(nil), // 32: cs3.identity.user.v1beta1.UserId
(ListOCMSharesRequest_Filter_Type)(0), // 0: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.Type
(ListReceivedOCMSharesRequest_Filter_Type)(0), // 1: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter.Type
(*CreateOCMShareRequest)(nil), // 2: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest
(*CreateOCMShareResponse)(nil), // 3: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse
(*UpdateOCMShareRequest)(nil), // 4: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest
(*UpdateOCMShareResponse)(nil), // 5: cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse
(*ListOCMSharesRequest)(nil), // 6: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest
(*ListOCMSharesResponse)(nil), // 7: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse
(*RemoveOCMShareRequest)(nil), // 8: cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest
(*RemoveOCMShareResponse)(nil), // 9: cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse
(*GetOCMShareRequest)(nil), // 10: cs3.sharing.ocm.v1beta1.GetOCMShareRequest
(*GetOCMShareResponse)(nil), // 11: cs3.sharing.ocm.v1beta1.GetOCMShareResponse
(*GetOCMShareByTokenRequest)(nil), // 12: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenRequest
(*GetOCMShareByTokenResponse)(nil), // 13: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse
(*ListReceivedOCMSharesRequest)(nil), // 14: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest
(*ListReceivedOCMSharesResponse)(nil), // 15: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse
(*UpdateReceivedOCMShareRequest)(nil), // 16: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest
(*UpdateReceivedOCMShareResponse)(nil), // 17: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse
(*GetReceivedOCMShareRequest)(nil), // 18: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest
(*GetReceivedOCMShareResponse)(nil), // 19: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse
(*UpdateOCMShareRequest_UpdateField)(nil), // 20: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField
(*ListOCMSharesRequest_Filter)(nil), // 21: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter
(*ListReceivedOCMSharesRequest_Filter)(nil), // 22: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter
(*v1beta1.Opaque)(nil), // 23: cs3.types.v1beta1.Opaque
(*v1beta11.ResourceId)(nil), // 24: cs3.storage.provider.v1beta1.ResourceId
(*v1beta11.Grantee)(nil), // 25: cs3.storage.provider.v1beta1.Grantee
(*v1beta12.ProviderInfo)(nil), // 26: cs3.ocm.provider.v1beta1.ProviderInfo
(*AccessMethod)(nil), // 27: cs3.sharing.ocm.v1beta1.AccessMethod
(*v1beta1.Timestamp)(nil), // 28: cs3.types.v1beta1.Timestamp
(*v1beta13.Status)(nil), // 29: cs3.rpc.v1beta1.Status
(*Share)(nil), // 30: cs3.sharing.ocm.v1beta1.Share
(*ShareReference)(nil), // 31: cs3.sharing.ocm.v1beta1.ShareReference
(*ReceivedShare)(nil), // 32: cs3.sharing.ocm.v1beta1.ReceivedShare
(*fieldmaskpb.FieldMask)(nil), // 33: google.protobuf.FieldMask
(*v1beta14.UserId)(nil), // 34: cs3.identity.user.v1beta1.UserId
(SharedResourceType)(0), // 35: cs3.sharing.ocm.v1beta1.SharedResourceType
}
var file_cs3_sharing_ocm_v1beta1_ocm_api_proto_depIdxs = []int32{
21, // 0: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
22, // 1: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.resource_id:type_name -> cs3.storage.provider.v1beta1.ResourceId
23, // 2: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.grantee:type_name -> cs3.storage.provider.v1beta1.Grantee
24, // 3: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.recipient_mesh_provider:type_name -> cs3.ocm.provider.v1beta1.ProviderInfo
25, // 4: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.access_methods:type_name -> cs3.sharing.ocm.v1beta1.AccessMethod
26, // 5: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.expiration:type_name -> cs3.types.v1beta1.Timestamp
27, // 6: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 7: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
28, // 8: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse.share:type_name -> cs3.sharing.ocm.v1beta1.Share
21, // 9: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
29, // 10: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
19, // 11: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.field:type_name -> cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField
27, // 12: cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 13: cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
21, // 14: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
20, // 15: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.filters:type_name -> cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter
27, // 16: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 17: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
28, // 18: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse.shares:type_name -> cs3.sharing.ocm.v1beta1.Share
21, // 19: cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
29, // 20: cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
27, // 21: cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 22: cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
21, // 23: cs3.sharing.ocm.v1beta1.GetOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
29, // 24: cs3.sharing.ocm.v1beta1.GetOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
27, // 25: cs3.sharing.ocm.v1beta1.GetOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 26: cs3.sharing.ocm.v1beta1.GetOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
28, // 27: cs3.sharing.ocm.v1beta1.GetOCMShareResponse.share:type_name -> cs3.sharing.ocm.v1beta1.Share
27, // 28: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse.status:type_name -> cs3.rpc.v1beta1.Status
28, // 29: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse.share:type_name -> cs3.sharing.ocm.v1beta1.Share
21, // 30: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
27, // 31: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 32: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
30, // 33: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse.shares:type_name -> cs3.sharing.ocm.v1beta1.ReceivedShare
21, // 34: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
30, // 35: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest.share:type_name -> cs3.sharing.ocm.v1beta1.ReceivedShare
31, // 36: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest.update_mask:type_name -> google.protobuf.FieldMask
27, // 37: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 38: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
21, // 39: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
29, // 40: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
27, // 41: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
21, // 42: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
30, // 43: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse.share:type_name -> cs3.sharing.ocm.v1beta1.ReceivedShare
26, // 44: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField.expiration:type_name -> cs3.types.v1beta1.Timestamp
25, // 45: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField.access_methods:type_name -> cs3.sharing.ocm.v1beta1.AccessMethod
0, // 46: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.type:type_name -> cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.Type
22, // 47: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.resource_id:type_name -> cs3.storage.provider.v1beta1.ResourceId
32, // 48: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.owner:type_name -> cs3.identity.user.v1beta1.UserId
32, // 49: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.creator:type_name -> cs3.identity.user.v1beta1.UserId
1, // 50: cs3.sharing.ocm.v1beta1.OcmAPI.CreateOCMShare:input_type -> cs3.sharing.ocm.v1beta1.CreateOCMShareRequest
7, // 51: cs3.sharing.ocm.v1beta1.OcmAPI.RemoveOCMShare:input_type -> cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest
9, // 52: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShare:input_type -> cs3.sharing.ocm.v1beta1.GetOCMShareRequest
11, // 53: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShareByToken:input_type -> cs3.sharing.ocm.v1beta1.GetOCMShareByTokenRequest
5, // 54: cs3.sharing.ocm.v1beta1.OcmAPI.ListOCMShares:input_type -> cs3.sharing.ocm.v1beta1.ListOCMSharesRequest
3, // 55: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateOCMShare:input_type -> cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest
13, // 56: cs3.sharing.ocm.v1beta1.OcmAPI.ListReceivedOCMShares:input_type -> cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest
15, // 57: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateReceivedOCMShare:input_type -> cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest
17, // 58: cs3.sharing.ocm.v1beta1.OcmAPI.GetReceivedOCMShare:input_type -> cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest
2, // 59: cs3.sharing.ocm.v1beta1.OcmAPI.CreateOCMShare:output_type -> cs3.sharing.ocm.v1beta1.CreateOCMShareResponse
8, // 60: cs3.sharing.ocm.v1beta1.OcmAPI.RemoveOCMShare:output_type -> cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse
10, // 61: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShare:output_type -> cs3.sharing.ocm.v1beta1.GetOCMShareResponse
12, // 62: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShareByToken:output_type -> cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse
6, // 63: cs3.sharing.ocm.v1beta1.OcmAPI.ListOCMShares:output_type -> cs3.sharing.ocm.v1beta1.ListOCMSharesResponse
4, // 64: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateOCMShare:output_type -> cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse
14, // 65: cs3.sharing.ocm.v1beta1.OcmAPI.ListReceivedOCMShares:output_type -> cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse
16, // 66: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateReceivedOCMShare:output_type -> cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse
18, // 67: cs3.sharing.ocm.v1beta1.OcmAPI.GetReceivedOCMShare:output_type -> cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse
59, // [59:68] is the sub-list for method output_type
50, // [50:59] is the sub-list for method input_type
50, // [50:50] is the sub-list for extension type_name
50, // [50:50] is the sub-list for extension extendee
0, // [0:50] is the sub-list for field type_name
23, // 0: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
24, // 1: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.resource_id:type_name -> cs3.storage.provider.v1beta1.ResourceId
25, // 2: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.grantee:type_name -> cs3.storage.provider.v1beta1.Grantee
26, // 3: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.recipient_mesh_provider:type_name -> cs3.ocm.provider.v1beta1.ProviderInfo
27, // 4: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.access_methods:type_name -> cs3.sharing.ocm.v1beta1.AccessMethod
28, // 5: cs3.sharing.ocm.v1beta1.CreateOCMShareRequest.expiration:type_name -> cs3.types.v1beta1.Timestamp
29, // 6: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 7: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
30, // 8: cs3.sharing.ocm.v1beta1.CreateOCMShareResponse.share:type_name -> cs3.sharing.ocm.v1beta1.Share
23, // 9: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
31, // 10: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
20, // 11: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.field:type_name -> cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField
29, // 12: cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 13: cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
23, // 14: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
21, // 15: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.filters:type_name -> cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter
29, // 16: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 17: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
30, // 18: cs3.sharing.ocm.v1beta1.ListOCMSharesResponse.shares:type_name -> cs3.sharing.ocm.v1beta1.Share
23, // 19: cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
31, // 20: cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
29, // 21: cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 22: cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
23, // 23: cs3.sharing.ocm.v1beta1.GetOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
31, // 24: cs3.sharing.ocm.v1beta1.GetOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
29, // 25: cs3.sharing.ocm.v1beta1.GetOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 26: cs3.sharing.ocm.v1beta1.GetOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
30, // 27: cs3.sharing.ocm.v1beta1.GetOCMShareResponse.share:type_name -> cs3.sharing.ocm.v1beta1.Share
29, // 28: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse.status:type_name -> cs3.rpc.v1beta1.Status
30, // 29: cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse.share:type_name -> cs3.sharing.ocm.v1beta1.Share
23, // 30: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
22, // 31: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.filters:type_name -> cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter
29, // 32: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 33: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
32, // 34: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse.shares:type_name -> cs3.sharing.ocm.v1beta1.ReceivedShare
23, // 35: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
32, // 36: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest.share:type_name -> cs3.sharing.ocm.v1beta1.ReceivedShare
33, // 37: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest.update_mask:type_name -> google.protobuf.FieldMask
29, // 38: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 39: cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
23, // 40: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest.opaque:type_name -> cs3.types.v1beta1.Opaque
31, // 41: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest.ref:type_name -> cs3.sharing.ocm.v1beta1.ShareReference
29, // 42: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse.status:type_name -> cs3.rpc.v1beta1.Status
23, // 43: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse.opaque:type_name -> cs3.types.v1beta1.Opaque
32, // 44: cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse.share:type_name -> cs3.sharing.ocm.v1beta1.ReceivedShare
28, // 45: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField.expiration:type_name -> cs3.types.v1beta1.Timestamp
27, // 46: cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest.UpdateField.access_methods:type_name -> cs3.sharing.ocm.v1beta1.AccessMethod
0, // 47: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.type:type_name -> cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.Type
24, // 48: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.resource_id:type_name -> cs3.storage.provider.v1beta1.ResourceId
34, // 49: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.owner:type_name -> cs3.identity.user.v1beta1.UserId
34, // 50: cs3.sharing.ocm.v1beta1.ListOCMSharesRequest.Filter.creator:type_name -> cs3.identity.user.v1beta1.UserId
1, // 51: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter.type:type_name -> cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter.Type
34, // 52: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter.owner:type_name -> cs3.identity.user.v1beta1.UserId
34, // 53: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter.creator:type_name -> cs3.identity.user.v1beta1.UserId
35, // 54: cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest.Filter.shared_resource_type:type_name -> cs3.sharing.ocm.v1beta1.SharedResourceType
2, // 55: cs3.sharing.ocm.v1beta1.OcmAPI.CreateOCMShare:input_type -> cs3.sharing.ocm.v1beta1.CreateOCMShareRequest
8, // 56: cs3.sharing.ocm.v1beta1.OcmAPI.RemoveOCMShare:input_type -> cs3.sharing.ocm.v1beta1.RemoveOCMShareRequest
10, // 57: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShare:input_type -> cs3.sharing.ocm.v1beta1.GetOCMShareRequest
12, // 58: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShareByToken:input_type -> cs3.sharing.ocm.v1beta1.GetOCMShareByTokenRequest
6, // 59: cs3.sharing.ocm.v1beta1.OcmAPI.ListOCMShares:input_type -> cs3.sharing.ocm.v1beta1.ListOCMSharesRequest
4, // 60: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateOCMShare:input_type -> cs3.sharing.ocm.v1beta1.UpdateOCMShareRequest
14, // 61: cs3.sharing.ocm.v1beta1.OcmAPI.ListReceivedOCMShares:input_type -> cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesRequest
16, // 62: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateReceivedOCMShare:input_type -> cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareRequest
18, // 63: cs3.sharing.ocm.v1beta1.OcmAPI.GetReceivedOCMShare:input_type -> cs3.sharing.ocm.v1beta1.GetReceivedOCMShareRequest
3, // 64: cs3.sharing.ocm.v1beta1.OcmAPI.CreateOCMShare:output_type -> cs3.sharing.ocm.v1beta1.CreateOCMShareResponse
9, // 65: cs3.sharing.ocm.v1beta1.OcmAPI.RemoveOCMShare:output_type -> cs3.sharing.ocm.v1beta1.RemoveOCMShareResponse
11, // 66: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShare:output_type -> cs3.sharing.ocm.v1beta1.GetOCMShareResponse
13, // 67: cs3.sharing.ocm.v1beta1.OcmAPI.GetOCMShareByToken:output_type -> cs3.sharing.ocm.v1beta1.GetOCMShareByTokenResponse
7, // 68: cs3.sharing.ocm.v1beta1.OcmAPI.ListOCMShares:output_type -> cs3.sharing.ocm.v1beta1.ListOCMSharesResponse
5, // 69: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateOCMShare:output_type -> cs3.sharing.ocm.v1beta1.UpdateOCMShareResponse
15, // 70: cs3.sharing.ocm.v1beta1.OcmAPI.ListReceivedOCMShares:output_type -> cs3.sharing.ocm.v1beta1.ListReceivedOCMSharesResponse
17, // 71: cs3.sharing.ocm.v1beta1.OcmAPI.UpdateReceivedOCMShare:output_type -> cs3.sharing.ocm.v1beta1.UpdateReceivedOCMShareResponse
19, // 72: cs3.sharing.ocm.v1beta1.OcmAPI.GetReceivedOCMShare:output_type -> cs3.sharing.ocm.v1beta1.GetReceivedOCMShareResponse
64, // [64:73] is the sub-list for method output_type
55, // [55:64] is the sub-list for method input_type
55, // [55:55] is the sub-list for extension type_name
55, // [55:55] is the sub-list for extension extendee
0, // [0:55] is the sub-list for field type_name
}
func init() { file_cs3_sharing_ocm_v1beta1_ocm_api_proto_init() }
@@ -2255,6 +2464,18 @@ func file_cs3_sharing_ocm_v1beta1_ocm_api_proto_init() {
return nil
}
}
file_cs3_sharing_ocm_v1beta1_ocm_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListReceivedOCMSharesRequest_Filter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_cs3_sharing_ocm_v1beta1_ocm_api_proto_msgTypes[18].OneofWrappers = []interface{}{
(*UpdateOCMShareRequest_UpdateField_Expiration)(nil),
@@ -2265,13 +2486,18 @@ func file_cs3_sharing_ocm_v1beta1_ocm_api_proto_init() {
(*ListOCMSharesRequest_Filter_Owner)(nil),
(*ListOCMSharesRequest_Filter_Creator)(nil),
}
file_cs3_sharing_ocm_v1beta1_ocm_api_proto_msgTypes[20].OneofWrappers = []interface{}{
(*ListReceivedOCMSharesRequest_Filter_Owner)(nil),
(*ListReceivedOCMSharesRequest_Filter_Creator)(nil),
(*ListReceivedOCMSharesRequest_Filter_SharedResourceType)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cs3_sharing_ocm_v1beta1_ocm_api_proto_rawDesc,
NumEnums: 1,
NumMessages: 20,
NumEnums: 2,
NumMessages: 21,
NumExtensions: 0,
NumServices: 1,
},

View File

@@ -52,19 +52,18 @@ const (
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type OcmAPIClient interface {
// Creates a new ocm share.
// Creates a new OCM share.
// MUST return CODE_NOT_FOUND if the resource reference does not exist.
// MUST return CODE_ALREADY_EXISTS if the share already exists for the 4-tuple consisting of
// MUST return CODE_ALREADY_EXISTS if the share already exists for the 3-tuple consisting of
// (owner, shared_resource, grantee).
// New shares MUST be created in the state SHARE_STATE_PENDING, and MUST be sent
// to the remote system using the OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
// to the remote system using the `/ocm/shares` OCM API, see:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
CreateOCMShare(ctx context.Context, in *CreateOCMShareRequest, opts ...grpc.CallOption) (*CreateOCMShareResponse, error)
// Removes a share.
// Removes an OCM share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
// This action SHALL be notified to the remote system
// using the OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// This action MUST be notified to the remote system using the `/ocm/notifications` OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
RemoveOCMShare(ctx context.Context, in *RemoveOCMShareRequest, opts ...grpc.CallOption) (*RemoveOCMShareResponse, error)
// Gets share information for a single share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
@@ -72,17 +71,16 @@ type OcmAPIClient interface {
// Gets share information for a single share by its unlisted token.
// MUST return CODE_NOT_FOUND if the share does not exist.
GetOCMShareByToken(ctx context.Context, in *GetOCMShareByTokenRequest, opts ...grpc.CallOption) (*GetOCMShareByTokenResponse, error)
// List the shares the authenticated principal has created,
// List the shares the currently authenticated user has created,
// both as owner and creator. If a filter is specified, only
// shares satisfying the filter MUST be returned.
ListOCMShares(ctx context.Context, in *ListOCMSharesRequest, opts ...grpc.CallOption) (*ListOCMSharesResponse, error)
// Updates a share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
// This action SHALL be notified to the remote system
// using the OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// This action MUST be notified to the remote system using the `/ocm/notifications` OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
UpdateOCMShare(ctx context.Context, in *UpdateOCMShareRequest, opts ...grpc.CallOption) (*UpdateOCMShareResponse, error)
// List all shares the authenticated principal has received.
// List all shares the currently authenticated user has received.
ListReceivedOCMShares(ctx context.Context, in *ListReceivedOCMSharesRequest, opts ...grpc.CallOption) (*ListReceivedOCMSharesResponse, error)
// Update the received share to change the share state or the display name.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
@@ -185,19 +183,18 @@ func (c *ocmAPIClient) GetReceivedOCMShare(ctx context.Context, in *GetReceivedO
// All implementations should embed UnimplementedOcmAPIServer
// for forward compatibility
type OcmAPIServer interface {
// Creates a new ocm share.
// Creates a new OCM share.
// MUST return CODE_NOT_FOUND if the resource reference does not exist.
// MUST return CODE_ALREADY_EXISTS if the share already exists for the 4-tuple consisting of
// MUST return CODE_ALREADY_EXISTS if the share already exists for the 3-tuple consisting of
// (owner, shared_resource, grantee).
// New shares MUST be created in the state SHARE_STATE_PENDING, and MUST be sent
// to the remote system using the OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
// to the remote system using the `/ocm/shares` OCM API, see:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1shares/post
CreateOCMShare(context.Context, *CreateOCMShareRequest) (*CreateOCMShareResponse, error)
// Removes a share.
// Removes an OCM share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
// This action SHALL be notified to the remote system
// using the OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// This action MUST be notified to the remote system using the `/ocm/notifications` OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
RemoveOCMShare(context.Context, *RemoveOCMShareRequest) (*RemoveOCMShareResponse, error)
// Gets share information for a single share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
@@ -205,17 +202,16 @@ type OcmAPIServer interface {
// Gets share information for a single share by its unlisted token.
// MUST return CODE_NOT_FOUND if the share does not exist.
GetOCMShareByToken(context.Context, *GetOCMShareByTokenRequest) (*GetOCMShareByTokenResponse, error)
// List the shares the authenticated principal has created,
// List the shares the currently authenticated user has created,
// both as owner and creator. If a filter is specified, only
// shares satisfying the filter MUST be returned.
ListOCMShares(context.Context, *ListOCMSharesRequest) (*ListOCMSharesResponse, error)
// Updates a share.
// MUST return CODE_NOT_FOUND if the share reference does not exist.
// This action SHALL be notified to the remote system
// using the OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
// This action MUST be notified to the remote system using the `/ocm/notifications` OCM API at:
// https://cs3org.github.io/OCM-API/docs.html?branch=v1.2.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post
UpdateOCMShare(context.Context, *UpdateOCMShareRequest) (*UpdateOCMShareResponse, error)
// List all shares the authenticated principal has received.
// List all shares the currently authenticated user has received.
ListReceivedOCMShares(context.Context, *ListReceivedOCMSharesRequest) (*ListReceivedOCMSharesResponse, error)
// Update the received share to change the share state or the display name.
// MUST return CODE_NOT_FOUND if the share reference does not exist.

View File

File diff suppressed because it is too large Load Diff

View File

@@ -174,6 +174,7 @@ go build -tags "icu json1 fts5 secure_delete"
| JSON SQL Functions | sqlite_json | When this option is defined in the amalgamation, the JSON SQL functions are added to the build automatically |
| Math Functions | sqlite_math_functions | This compile-time option enables built-in scalar math functions. For more information see [Built-In Mathematical SQL Functions](https://www.sqlite.org/lang_mathfunc.html) |
| OS Trace | sqlite_os_trace | This option enables OSTRACE() debug logging. This can be verbose and should not be used in production. |
| Percentile | sqlite_percentile | This option enables [The Percentile Extension](sqlite.org/percentile.html). |
| Pre Update Hook | sqlite_preupdate_hook | Registers a callback function that is invoked prior to each INSERT, UPDATE, and DELETE operation on a database table. |
| Secure Delete | sqlite_secure_delete | This compile-time option changes the default setting of the secure_delete pragma.<br><br>When this option is not used, secure_delete defaults to off. When this option is present, secure_delete defaults to on.<br><br>The secure_delete setting causes deleted content to be overwritten with zeros. There is a small performance penalty since additional I/O must occur.<br><br>On the other hand, secure_delete can prevent fragments of sensitive information from lingering in unused parts of the database file after it has been deleted. See the documentation on the secure_delete pragma for additional information |
| Secure Delete (FAST) | sqlite_secure_delete_fast | For more information see [PRAGMA secure_delete](https://www.sqlite.org/pragma.html#pragma_secure_delete) |

View File

@@ -1,7 +1,7 @@
#ifndef USE_LIBSQLITE3
/******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite
** version 3.51.1. By combining all the individual C code files into this
** version 3.51.2. By combining all the individual C code files into this
** single large file, the entire code can be compiled as a single translation
** unit. This allows many compilers to do optimizations that would not be
** possible if the files were compiled separately. Performance improvements
@@ -19,7 +19,7 @@
** separate file. This file contains only code for the core SQLite library.
**
** The content in this amalgamation comes from Fossil check-in
** 281fc0e9afc38674b9b0991943b9e9d1e64c with changes in files:
** b270f8339eb13b504d0b2ba154ebca966b7d with changes in files:
**
**
*/
@@ -468,12 +468,12 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION "3.51.1"
#define SQLITE_VERSION_NUMBER 3051001
#define SQLITE_SOURCE_ID "2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88"
#define SQLITE_VERSION "3.51.2"
#define SQLITE_VERSION_NUMBER 3051002
#define SQLITE_SOURCE_ID "2026-01-09 17:27:48 b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075"
#define SQLITE_SCM_BRANCH "branch-3.51"
#define SQLITE_SCM_TAGS "release version-3.51.1"
#define SQLITE_SCM_DATETIME "2025-11-28T17:28:25.933Z"
#define SQLITE_SCM_TAGS "release version-3.51.2"
#define SQLITE_SCM_DATETIME "2026-01-09T17:27:48.405Z"
/*
** CAPI3REF: Run-Time Library Version Numbers
@@ -41229,12 +41229,18 @@ static int unixLock(sqlite3_file *id, int eFileLock){
pInode->nLock++;
pInode->nShared = 1;
}
}else if( (eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1)
|| unixIsSharingShmNode(pFile)
){
}else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){
/* We are trying for an exclusive lock but another thread in this
** same process is still holding a shared lock. */
rc = SQLITE_BUSY;
}else if( unixIsSharingShmNode(pFile) ){
/* We are in WAL mode and attempting to delete the SHM and WAL
** files due to closing the connection or changing out of WAL mode,
** but another process still holds locks on the SHM file, thus
** indicating that database locks have been broken, perhaps due
** to a rogue close(open(dbFile)) or similar.
*/
rc = SQLITE_BUSY;
}else{
/* The request was for a RESERVED or EXCLUSIVE lock. It is
** assumed that there is a SHARED or greater lock on the file
@@ -43873,26 +43879,21 @@ static int unixFcntlExternalReader(unixFile *pFile, int *piOut){
** still not a disaster.
*/
static int unixIsSharingShmNode(unixFile *pFile){
int rc;
unixShmNode *pShmNode;
struct flock lock;
if( pFile->pShm==0 ) return 0;
if( pFile->ctrlFlags & UNIXFILE_EXCL ) return 0;
pShmNode = pFile->pShm->pShmNode;
rc = 1;
unixEnterMutex();
if( ALWAYS(pShmNode->nRef==1) ){
struct flock lock;
lock.l_whence = SEEK_SET;
lock.l_start = UNIX_SHM_DMS;
lock.l_len = 1;
lock.l_type = F_WRLCK;
osFcntl(pShmNode->hShm, F_GETLK, &lock);
if( lock.l_type==F_UNLCK ){
rc = 0;
}
}
unixLeaveMutex();
return rc;
#if SQLITE_ATOMIC_INTRINSICS
assert( AtomicLoad(&pShmNode->nRef)==1 );
#endif
memset(&lock, 0, sizeof(lock));
lock.l_whence = SEEK_SET;
lock.l_start = UNIX_SHM_DMS;
lock.l_len = 1;
lock.l_type = F_WRLCK;
osFcntl(pShmNode->hShm, F_GETLK, &lock);
return (lock.l_type!=F_UNLCK);
}
/*
@@ -115317,9 +115318,22 @@ SQLITE_PRIVATE int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){
pParse->nMem += nReg;
if( pExpr->op==TK_SELECT ){
dest.eDest = SRT_Mem;
dest.iSdst = dest.iSDParm;
if( (pSel->selFlags&SF_Distinct) && pSel->pLimit && pSel->pLimit->pRight ){
/* If there is both a DISTINCT and an OFFSET clause, then allocate
** a separate dest.iSdst array for sqlite3Select() and other
** routines to populate. In this case results will be copied over
** into the dest.iSDParm array only after OFFSET processing. This
** ensures that in the case where OFFSET excludes all rows, the
** dest.iSDParm array is not left populated with the contents of the
** last row visited - it should be all NULLs if all rows were
** excluded by OFFSET. */
dest.iSdst = pParse->nMem+1;
pParse->nMem += nReg;
}else{
dest.iSdst = dest.iSDParm;
}
dest.nSdst = nReg;
sqlite3VdbeAddOp3(v, OP_Null, 0, dest.iSDParm, dest.iSDParm+nReg-1);
sqlite3VdbeAddOp3(v, OP_Null, 0, dest.iSDParm, pParse->nMem);
VdbeComment((v, "Init subquery result"));
}else{
dest.eDest = SRT_Exists;
@@ -148187,9 +148201,14 @@ static void selectInnerLoop(
assert( nResultCol<=pDest->nSdst );
pushOntoSorter(
pParse, pSort, p, regResult, regOrig, nResultCol, nPrefixReg);
pDest->iSDParm = regResult;
}else{
assert( nResultCol==pDest->nSdst );
assert( regResult==iParm );
if( regResult!=iParm ){
/* This occurs in cases where the SELECT had both a DISTINCT and
** an OFFSET clause. */
sqlite3VdbeAddOp3(v, OP_Copy, regResult, iParm, nResultCol-1);
}
/* The LIMIT clause will jump out of the loop for us */
}
break;
@@ -154204,12 +154223,24 @@ static SQLITE_NOINLINE void existsToJoin(
&& (pSub->selFlags & SF_Aggregate)==0
&& !pSub->pSrc->a[0].fg.isSubquery
&& pSub->pLimit==0
&& pSub->pPrior==0
){
/* Before combining the sub-select with the parent, renumber the
** cursor used by the subselect. This is because the EXISTS expression
** might be a copy of another EXISTS expression from somewhere
** else in the tree, and in this case it is important that it use
** a unique cursor number. */
sqlite3 *db = pParse->db;
int *aCsrMap = sqlite3DbMallocZero(db, (pParse->nTab+2)*sizeof(int));
if( aCsrMap==0 ) return;
aCsrMap[0] = (pParse->nTab+1);
renumberCursors(pParse, pSub, -1, aCsrMap);
sqlite3DbFree(db, aCsrMap);
memset(pWhere, 0, sizeof(*pWhere));
pWhere->op = TK_INTEGER;
pWhere->u.iValue = 1;
ExprSetProperty(pWhere, EP_IntValue);
assert( p->pWhere!=0 );
pSub->pSrc->a[0].fg.fromExists = 1;
pSub->pSrc->a[0].fg.jointype |= JT_CROSS;
@@ -174002,6 +174033,9 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){
sqlite3 *db = pParse->db;
int iEnd = sqlite3VdbeCurrentAddr(v);
int nRJ = 0;
#ifndef SQLITE_DISABLE_SKIPAHEAD_DISTINCT
int addrSeek = 0;
#endif
/* Generate loop termination code.
*/
@@ -174014,7 +174048,10 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){
** the RIGHT JOIN table */
WhereRightJoin *pRJ = pLevel->pRJ;
sqlite3VdbeResolveLabel(v, pLevel->addrCont);
pLevel->addrCont = 0;
/* Replace addrCont with a new label that will never be used, just so
** the subsequent call to resolve pLevel->addrCont will have something
** to resolve. */
pLevel->addrCont = sqlite3VdbeMakeLabel(pParse);
pRJ->endSubrtn = sqlite3VdbeCurrentAddr(v);
sqlite3VdbeAddOp3(v, OP_Return, pRJ->regReturn, pRJ->addrSubrtn, 1);
VdbeCoverage(v);
@@ -174023,7 +174060,6 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){
pLoop = pLevel->pWLoop;
if( pLevel->op!=OP_Noop ){
#ifndef SQLITE_DISABLE_SKIPAHEAD_DISTINCT
int addrSeek = 0;
Index *pIdx;
int n;
if( pWInfo->eDistinct==WHERE_DISTINCT_ORDERED
@@ -174046,25 +174082,26 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){
sqlite3VdbeAddOp2(v, OP_Goto, 1, pLevel->p2);
}
#endif /* SQLITE_DISABLE_SKIPAHEAD_DISTINCT */
if( pTabList->a[pLevel->iFrom].fg.fromExists && i==pWInfo->nLevel-1 ){
/* If the EXISTS-to-JOIN optimization was applied, then the EXISTS
** loop(s) will be the inner-most loops of the join. There might be
** multiple EXISTS loops, but they will all be nested, and the join
** order will not have been changed by the query planner. If the
** inner-most EXISTS loop sees a single successful row, it should
** break out of *all* EXISTS loops. But only the inner-most of the
** nested EXISTS loops should do this breakout. */
int nOuter = 0; /* Nr of outer EXISTS that this one is nested within */
while( nOuter<i ){
if( !pTabList->a[pLevel[-nOuter-1].iFrom].fg.fromExists ) break;
nOuter++;
}
testcase( nOuter>0 );
sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel[-nOuter].addrBrk);
VdbeComment((v, "EXISTS break"));
}
if( pTabList->a[pLevel->iFrom].fg.fromExists && i==pWInfo->nLevel-1 ){
/* If the EXISTS-to-JOIN optimization was applied, then the EXISTS
** loop(s) will be the inner-most loops of the join. There might be
** multiple EXISTS loops, but they will all be nested, and the join
** order will not have been changed by the query planner. If the
** inner-most EXISTS loop sees a single successful row, it should
** break out of *all* EXISTS loops. But only the inner-most of the
** nested EXISTS loops should do this breakout. */
int nOuter = 0; /* Nr of outer EXISTS that this one is nested within */
while( nOuter<i ){
if( !pTabList->a[pLevel[-nOuter-1].iFrom].fg.fromExists ) break;
nOuter++;
}
/* The common case: Advance to the next row */
if( pLevel->addrCont ) sqlite3VdbeResolveLabel(v, pLevel->addrCont);
testcase( nOuter>0 );
sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel[-nOuter].addrBrk);
VdbeComment((v, "EXISTS break"));
}
sqlite3VdbeResolveLabel(v, pLevel->addrCont);
if( pLevel->op!=OP_Noop ){
sqlite3VdbeAddOp3(v, pLevel->op, pLevel->p1, pLevel->p2, pLevel->p3);
sqlite3VdbeChangeP5(v, pLevel->p5);
VdbeCoverage(v);
@@ -174077,10 +174114,11 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){
VdbeCoverage(v);
}
#ifndef SQLITE_DISABLE_SKIPAHEAD_DISTINCT
if( addrSeek ) sqlite3VdbeJumpHere(v, addrSeek);
if( addrSeek ){
sqlite3VdbeJumpHere(v, addrSeek);
addrSeek = 0;
}
#endif
}else if( pLevel->addrCont ){
sqlite3VdbeResolveLabel(v, pLevel->addrCont);
}
if( (pLoop->wsFlags & WHERE_IN_ABLE)!=0 && pLevel->u.in.nIn>0 ){
struct InLoop *pIn;
@@ -219454,7 +219492,7 @@ static void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){
if( node.zData==0 ) return;
nData = sqlite3_value_bytes(apArg[1]);
if( nData<4 ) return;
if( nData<NCELL(&node)*tree.nBytesPerCell ) return;
if( nData<4+NCELL(&node)*tree.nBytesPerCell ) return;
pOut = sqlite3_str_new(0);
for(ii=0; ii<NCELL(&node); ii++){
@@ -238535,7 +238573,13 @@ typedef sqlite3_uint64 u64;
# define FLEXARRAY 1
#endif
#endif
#endif /* SQLITE_AMALGAMATION */
/*
** Constants for the largest and smallest possible 32-bit signed integers.
*/
# define LARGEST_INT32 ((int)(0x7fffffff))
# define SMALLEST_INT32 ((int)((-1) - LARGEST_INT32))
/* Truncate very long tokens to this many bytes. Hard limit is
** (65536-1-1-4-9)==65521 bytes. The limiting factor is the 16-bit offset
@@ -253098,7 +253142,7 @@ static int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge){
fts5StructureRelease(pStruct);
pStruct = pNew;
nMin = 1;
nMerge = nMerge*-1;
nMerge = (nMerge==SMALLEST_INT32 ? LARGEST_INT32 : (nMerge*-1));
}
if( pStruct && pStruct->nLevel ){
if( fts5IndexMerge(p, &pStruct, nMerge, nMin) ){
@@ -260305,7 +260349,7 @@ static void fts5SourceIdFunc(
){
assert( nArg==0 );
UNUSED_PARAM2(nArg, apUnused);
sqlite3_result_text(pCtx, "fts5: 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88", -1, SQLITE_TRANSIENT);
sqlite3_result_text(pCtx, "fts5: 2026-01-09 17:27:48 b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075", -1, SQLITE_TRANSIENT);
}
/*

View File

@@ -147,12 +147,12 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION "3.51.1"
#define SQLITE_VERSION_NUMBER 3051001
#define SQLITE_SOURCE_ID "2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88"
#define SQLITE_VERSION "3.51.2"
#define SQLITE_VERSION_NUMBER 3051002
#define SQLITE_SOURCE_ID "2026-01-09 17:27:48 b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075"
#define SQLITE_SCM_BRANCH "branch-3.51"
#define SQLITE_SCM_TAGS "release version-3.51.1"
#define SQLITE_SCM_DATETIME "2025-11-28T17:28:25.933Z"
#define SQLITE_SCM_TAGS "release version-3.51.2"
#define SQLITE_SCM_DATETIME "2026-01-09T17:27:48.405Z"
/*
** CAPI3REF: Run-Time Library Version Numbers

View File

@@ -0,0 +1,15 @@
// Copyright (C) 2019 Yasuhiro Matsumoto <mattn.jp@gmail.com>.
// Copyright (C) 2018 G.J.R. Timmer <gjr.timmer@gmail.com>.
//
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
//go:build sqlite_percentile
// +build sqlite_percentile
package sqlite3
/*
#cgo CFLAGS: -DSQLITE_ENABLE_PERCENTILE
*/
import "C"

View File

@@ -25,6 +25,7 @@ import (
"github.com/mitchellh/mapstructure"
"github.com/opencloud-eu/reva/v2/pkg/appauth"
"github.com/opencloud-eu/reva/v2/pkg/appauth/manager/registry"
"github.com/opencloud-eu/reva/v2/pkg/appctx"
"github.com/opencloud-eu/reva/v2/pkg/errtypes"
"github.com/opencloud-eu/reva/v2/pkg/rgrpc"
"github.com/opencloud-eu/reva/v2/pkg/rgrpc/status"
@@ -104,8 +105,10 @@ func (s *service) UnprotectedEndpoints() []string {
}
func (s *service) GenerateAppPassword(ctx context.Context, req *appauthpb.GenerateAppPasswordRequest) (*appauthpb.GenerateAppPasswordResponse, error) {
logger := appctx.GetLogger(ctx)
pwd, err := s.am.GenerateAppPassword(ctx, req.TokenScope, req.Label, req.Expiration)
if err != nil {
logger.Debug().Err(err).Msg("error generating app password")
return &appauthpb.GenerateAppPasswordResponse{
Status: status.NewInternal(ctx, "error generating app password"),
}, nil
@@ -148,7 +151,7 @@ func (s *service) GetAppPassword(ctx context.Context, req *appauthpb.GetAppPassw
pwd, err := s.am.GetAppPassword(ctx, req.User, req.Password)
if err != nil {
return &appauthpb.GetAppPasswordResponse{
Status: status.NewInternal(ctx, "error getting app password via username/password"),
Status: status.NewStatusFromErrType(ctx, "error getting app password via username/password", err),
}, nil
}

View File

@@ -23,8 +23,11 @@ import (
"fmt"
"net/url"
"path"
"slices"
"strings"
gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
incoming "github.com/cs3org/go-cs3apis/cs3/ocm/incoming/v1beta1"
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
ocm "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
@@ -332,7 +335,7 @@ func (s *svc) handleTransfer(ctx context.Context, share *ocm.ReceivedShare, tran
if !ok {
return errors.New("gateway: unable to retrieve transfer protocol")
}
sourceURI := protocol.SourceUri
sourceURI := protocol.Uri
// get the webdav endpoint of the grantee's idp
var granteeIdp string
@@ -434,11 +437,29 @@ func (s *svc) GetReceivedOCMShare(ctx context.Context, req *ocm.GetReceivedOCMSh
return res, nil
}
func (s *svc) getTransferProtocol(share *ocm.ReceivedShare) (*ocm.TransferProtocol, bool) {
func (s *svc) getTransferProtocol(share *ocm.ReceivedShare) (*ocm.WebDAVProtocol, bool) {
for _, p := range share.Protocols {
if d, ok := p.Term.(*ocm.Protocol_TransferOptions); ok {
return d.TransferOptions, true
if d, ok := p.Term.(*ocm.Protocol_WebdavOptions); ok {
if slices.Contains(d.WebdavOptions.AccessTypes, ocm.AccessType_ACCESS_TYPE_DATATX) {
return d.WebdavOptions, true
}
}
}
return nil, false
}
func (s *svc) CreateOCMIncomingShare(context.Context, *incoming.CreateOCMIncomingShareRequest) (*incoming.CreateOCMIncomingShareResponse, error) {
return nil, errtypes.NotSupported("gateway: CreateOCMIncomingShare is not supported")
}
func (s *svc) UpdateOCMIncomingShare(context.Context, *incoming.UpdateOCMIncomingShareRequest) (*incoming.UpdateOCMIncomingShareResponse, error) {
return nil, errtypes.NotSupported("gateway: UpdateOCMIncomingShare is not supported")
}
func (s *svc) DeleteOCMIncomingShare(context.Context, *incoming.DeleteOCMIncomingShareRequest) (*incoming.DeleteOCMIncomingShareResponse, error) {
return nil, errtypes.NotSupported("gateway: DeleteOCMIncomingShare is not supported")
}
func (s *svc) ListExistingOCMShares(context.Context, *ocm.ListOCMSharesRequest) (*gateway.ListExistingOCMSharesResponse, error) {
return nil, errtypes.NotSupported("gateway: ListExistingOCMShares is not supported")
}

View File

@@ -144,7 +144,11 @@ func (s *service) GetGroupByClaim(ctx context.Context, req *grouppb.GetGroupByCl
}
func (s *service) FindGroups(ctx context.Context, req *grouppb.FindGroupsRequest) (*grouppb.FindGroupsResponse, error) {
groups, err := s.groupmgr.FindGroups(ctx, req.Filter, req.SkipFetchingMembers)
if len(req.Filters) > 1 || req.Filters[0].GetType() != grouppb.Filter_TYPE_QUERY {
return nil, fmt.Errorf("only one query filter supported")
}
groups, err := s.groupmgr.FindGroups(ctx, req.Filters[0].GetQuery(), req.SkipFetchingMembers)
if err != nil {
return &grouppb.FindGroupsResponse{
Status: status.NewInternal(ctx, "error finding groups"),

View File

@@ -201,38 +201,6 @@ func (s *service) getWebappProtocol(share *ocm.Share) *ocmd.Webapp {
}
}
func (s *service) getDataTransferProtocol(ctx context.Context, share *ocm.Share) *ocmd.Datatx {
var size uint64
gatewayClient, err := s.gatewaySelector.Next()
if err != nil {
return nil
}
// get the path of the share
statRes, err := gatewayClient.Stat(ctx, &providerpb.StatRequest{
Ref: &providerpb.Reference{
ResourceId: share.ResourceId,
},
})
if err != nil {
return nil
}
err = s.walker.Walk(ctx, statRes.GetInfo().GetId(), func(path string, info *providerpb.ResourceInfo, err error) error {
if info.Type == providerpb.ResourceType_RESOURCE_TYPE_FILE {
size += info.Size
}
return nil
})
if err != nil {
return nil
}
return &ocmd.Datatx{
SourceURI: s.webdavURL(ctx, share),
Size: size,
}
}
func (s *service) getProtocols(ctx context.Context, share *ocm.Share) ocmd.Protocols {
var p ocmd.Protocols
for _, m := range share.AccessMethods {
@@ -242,8 +210,6 @@ func (s *service) getProtocols(ctx context.Context, share *ocm.Share) ocmd.Proto
newProtocol = s.getWebdavProtocol(ctx, share, t)
case *ocm.AccessMethod_WebappOptions:
newProtocol = s.getWebappProtocol(share)
case *ocm.AccessMethod_TransferOptions:
newProtocol = s.getDataTransferProtocol(ctx, share)
}
if newProtocol != nil {
p = append(p, newProtocol)

View File

@@ -365,7 +365,7 @@ func (s *Service) InitiateFileUpload(ctx context.Context, req *provider.Initiate
if ifMatch != "" {
if !validateIfMatch(ifMatch, sRes.GetInfo()) {
return &provider.InitiateFileUploadResponse{
Status: status.NewFailedPrecondition(ctx, errors.New("etag mismatch"), "etag mismatch"),
Status: status.NewAborted(ctx, errors.New("etag mismatch"), "etag mismatch"),
}, nil
}
metadata["if-match"] = ifMatch
@@ -375,7 +375,7 @@ func (s *Service) InitiateFileUpload(ctx context.Context, req *provider.Initiate
metadata["if-unmodified-since"] = utils.TSToTime(ifUnmodifiedSince).Format(time.RFC3339Nano)
if !validateIfUnmodifiedSince(ifUnmodifiedSince, sRes.GetInfo()) {
return &provider.InitiateFileUploadResponse{
Status: status.NewFailedPrecondition(ctx, errors.New("resource has been modified"), "resource has been modified"),
Status: status.NewAborted(ctx, errors.New("resource has been modified"), "resource has been modified"),
}, nil
}
}
@@ -517,7 +517,7 @@ func (s *Service) CreateStorageSpace(ctx context.Context, req *provider.CreateSt
case errtypes.NotSupported:
// if trying to create a user home fall back to CreateHome
if u, ok := ctxpkg.ContextGetUser(ctx); ok && req.Type == "personal" && utils.UserEqual(req.GetOwner().GetId(), u.GetId()) {
if err := s.Storage.CreateHome(ctx); err != nil {
if err := s.Storage.CreateHome(ctx); err != nil { //nolint:staticcheck // falling back to deprecated method if the new one is not supported by the driver
st = status.NewInternal(ctx, "error creating home")
} else {
st = status.NewOK(ctx)

View File

@@ -183,9 +183,13 @@ func (s *service) GetUserByClaim(ctx context.Context, req *userpb.GetUserByClaim
}
func (s *service) FindUsers(ctx context.Context, req *userpb.FindUsersRequest) (*userpb.FindUsersResponse, error) {
if len(req.Filters) > 1 || req.Filters[0].GetType() != userpb.Filter_TYPE_QUERY {
return nil, fmt.Errorf("only one query filter supported")
}
currentUser := revactx.ContextMustGetUser(ctx)
users, err := s.usermgr.FindUsers(ctx, req.Query, currentUser.GetId().GetTenantId(), req.SkipFetchingUserGroups)
users, err := s.usermgr.FindUsers(ctx, req.Filters[0].GetQuery(), currentUser.GetId().GetTenantId(), req.SkipFetchingUserGroups)
if err != nil {
res := &userpb.FindUsersResponse{
Status: status.NewInternal(ctx, "error finding users"),

View File

@@ -180,10 +180,10 @@ type hijackLogger struct {
}
func (l *hijackLogger) Hijack() (net.Conn, *bufio.ReadWriter, error) {
h := l.responseLogger.w.(http.Hijacker)
h := l.w.(http.Hijacker)
conn, rw, err := h.Hijack()
if err == nil && l.responseLogger.status == 0 {
l.responseLogger.status = http.StatusSwitchingProtocols
if err == nil && l.status == 0 {
l.status = http.StatusSwitchingProtocols
}
return conn, rw, err
}

View File

@@ -120,22 +120,9 @@ func (w *Webapp) ToOCMProtocol() *ocm.Protocol {
return ocmshare.NewWebappProtocol(w.URITemplate, utils.GetAppViewMode(w.ViewMode))
}
// Datatx contains the parameters for the Datatx protocol.
type Datatx struct {
SharedSecret string `json:"sharedSecret" validate:"required"`
SourceURI string `json:"srcUri" validate:"required"`
Size uint64 `json:"size" validate:"required"`
}
// ToOCMProtocol convert the protocol to a ocm Protocol struct.
func (w *Datatx) ToOCMProtocol() *ocm.Protocol {
return ocmshare.NewTransferProtocol(w.SourceURI, w.SharedSecret, w.Size)
}
var protocolImpl = map[string]reflect.Type{
"webdav": reflect.TypeOf(WebDAV{}),
"webapp": reflect.TypeOf(Webapp{}),
"datatx": reflect.TypeOf(Datatx{}),
}
// UnmarshalJSON implements the Unmarshaler interface.

View File

@@ -304,7 +304,7 @@ func (h *DavHandler) Handler(s *svc) http.Handler {
sig := q.Get("signature")
expiration := q.Get("expiration")
// We restrict the pre-signed urls to downloads.
if sig != "" && expiration != "" && !(r.Method == http.MethodGet || r.Method == http.MethodHead) {
if sig != "" && expiration != "" && (r.Method != http.MethodGet && r.Method != http.MethodHead) {
w.WriteHeader(http.StatusUnauthorized)
return
}
@@ -372,7 +372,7 @@ func (h *DavHandler) Handler(s *svc) http.Handler {
}
fallthrough
case sRes.Status.Code == rpc.Code_CODE_NOT_FOUND:
log.Debug().Str("token", token).Interface("status", res.Status).Msg("resource not found")
log.Debug().Str("token", token).Interface("status", res.Status).Msg("Resource not found")
w.WriteHeader(http.StatusNotFound) // log the difference
return
case sRes.Status.Code == rpc.Code_CODE_UNAUTHENTICATED:

View File

@@ -90,7 +90,7 @@ func (s *svc) handleDelete(ctx context.Context, w http.ResponseWriter, r *http.R
return http.StatusNoContent, nil
case res.Status.Code == rpc.Code_CODE_NOT_FOUND:
//lint:ignore ST1005 mimic the exact oc10 error message
return http.StatusNotFound, errors.New("Resource not found")
return http.StatusNotFound, errors.New("Resource not found") //nolint:staticcheck
case res.Status.Code == rpc.Code_CODE_PERMISSION_DENIED:
status = http.StatusForbidden
if lockID := utils.ReadPlainFromOpaque(res.Opaque, "lockid"); lockID != "" {
@@ -110,7 +110,7 @@ func (s *svc) handleDelete(ctx context.Context, w http.ResponseWriter, r *http.R
// TODO hide permission failed for users without access in every kind of request
// TODO should this be done in the driver?
//lint:ignore ST1005 mimic the exact oc10 error message
return http.StatusNotFound, errors.New("Resource not found")
return http.StatusNotFound, errors.New("Resource not found") //nolint:staticcheck
}
return status, errors.New("") // mimic the oc10 error messages which have an empty message in this case
case res.Status.Code == rpc.Code_CODE_INTERNAL && res.Status.Message == "can't delete mount path":

View File

@@ -615,27 +615,27 @@ func writeLockInfo(w io.Writer, token string, ld LockDetails) (int, error) {
lockdiscovery.WriteString("<d:prop xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\"><d:lockdiscovery><d:activelock>\n")
lockdiscovery.WriteString(" <d:locktype><d:write/></d:locktype>\n")
lockdiscovery.WriteString(" <d:lockscope><d:exclusive/></d:lockscope>\n")
lockdiscovery.WriteString(fmt.Sprintf(" <d:depth>%s</d:depth>\n", depth))
fmt.Fprintf(&lockdiscovery, " <d:depth>%s</d:depth>\n", depth)
if ld.OwnerXML != "" {
lockdiscovery.WriteString(fmt.Sprintf(" <d:owner>%s</d:owner>\n", ld.OwnerXML))
fmt.Fprintf(&lockdiscovery, " <d:owner>%s</d:owner>\n", ld.OwnerXML)
}
if ld.Duration > 0 {
timeout := ld.Duration / time.Second
lockdiscovery.WriteString(fmt.Sprintf(" <d:timeout>Second-%d</d:timeout>\n", timeout))
fmt.Fprintf(&lockdiscovery, " <d:timeout>Second-%d</d:timeout>\n", timeout)
} else {
lockdiscovery.WriteString(" <d:timeout>Infinite</d:timeout>\n")
}
if token != "" {
lockdiscovery.WriteString(fmt.Sprintf(" <d:locktoken><d:href>%s</d:href></d:locktoken>\n", prop.Escape(token)))
fmt.Fprintf(&lockdiscovery, " <d:locktoken><d:href>%s</d:href></d:locktoken>\n", prop.Escape(token))
}
if href != "" {
lockdiscovery.WriteString(fmt.Sprintf(" <d:lockroot><d:href>%s</d:href></d:lockroot>\n", prop.Escape(href)))
fmt.Fprintf(&lockdiscovery, " <d:lockroot><d:href>%s</d:href></d:lockroot>\n", prop.Escape(href))
}
if ld.OwnerName != "" {
lockdiscovery.WriteString(fmt.Sprintf(" <oc:ownername>%s</oc:ownername>\n", prop.Escape(ld.OwnerName)))
fmt.Fprintf(&lockdiscovery, " <oc:ownername>%s</oc:ownername>\n", prop.Escape(ld.OwnerName))
}
if !ld.Locktime.IsZero() {
lockdiscovery.WriteString(fmt.Sprintf(" <oc:locktime>%s</oc:locktime>\n", prop.Escape(ld.Locktime.Format(time.RFC3339))))
fmt.Fprintf(&lockdiscovery, " <oc:locktime>%s</oc:locktime>\n", prop.Escape(ld.Locktime.Format(time.RFC3339)))
}
lockdiscovery.WriteString("</d:activelock></d:lockdiscovery></d:prop>")

View File

@@ -63,7 +63,7 @@ func (s *svc) handlePathMkcol(w http.ResponseWriter, r *http.Request, ns string)
case sr.Status.Code == rpc.Code_CODE_OK:
// https://www.rfc-editor.org/rfc/rfc4918#section-9.3.1:
// 405 (Method Not Allowed) - MKCOL can only be executed on an unmapped URL.
return http.StatusMethodNotAllowed, fmt.Errorf("The resource you tried to create already exists")
return http.StatusMethodNotAllowed, fmt.Errorf("The resource you tried to create already exists") //nolint:staticcheck
case sr.Status.Code == rpc.Code_CODE_ABORTED:
return http.StatusPreconditionFailed, errtypes.NewErrtypeFromStatus(sr.Status)
case sr.Status.Code != rpc.Code_CODE_NOT_FOUND:
@@ -133,7 +133,7 @@ func (s *svc) handleMkcol(ctx context.Context, w http.ResponseWriter, r *http.Re
// This should never happen because if the parent collection does not exist we should
// get a Code_CODE_FAILED_PRECONDITION. We play stupid and return what the response gave us
//lint:ignore ST1005 mimic the exact oc10 error message
return http.StatusNotFound, errors.New("Resource not found")
return http.StatusNotFound, errors.New("Resource not found") //nolint:staticcheck
case res.Status.Code == rpc.Code_CODE_PERMISSION_DENIED:
// check if user has access to parent
sRes, err := client.Stat(ctx, &provider.StatRequest{Ref: &provider.Reference{
@@ -148,7 +148,7 @@ func (s *svc) handleMkcol(ctx context.Context, w http.ResponseWriter, r *http.Re
// TODO hide permission failed for users without access in every kind of request
// TODO should this be done in the driver?
//lint:ignore ST1005 mimic the exact oc10 error message
return http.StatusNotFound, errors.New("Resource not found")
return http.StatusNotFound, errors.New("Resource not found") //nolint:staticcheck
}
return http.StatusForbidden, errors.New(sRes.Status.Message)
case res.Status.Code == rpc.Code_CODE_ABORTED:
@@ -163,7 +163,7 @@ func (s *svc) handleMkcol(ctx context.Context, w http.ResponseWriter, r *http.Re
// https://www.rfc-editor.org/rfc/rfc4918#section-9.3.1:
// 405 (Method Not Allowed) - MKCOL can only be executed on an unmapped URL.
//lint:ignore ST1005 mimic the exact oc10 error message
return http.StatusMethodNotAllowed, errors.New("The resource you tried to create already exists")
return http.StatusMethodNotAllowed, errors.New("The resource you tried to create already exists") //nolint:staticcheck
}
return rstatus.HTTPStatusFromCode(res.Status.Code), errtypes.NewErrtypeFromStatus(res.Status)
}

View File

@@ -849,7 +849,7 @@ func (p *Handler) getSpaceResourceInfos(ctx context.Context, w http.ResponseWrit
}
func metadataKeysWithPrefix(prefix string, keys []string) []string {
fullKeys := []string{}
fullKeys := make([]string, 0, len(keys))
for _, key := range keys {
fullKeys = append(fullKeys, fmt.Sprintf("%s.%s", prefix, key))
}

View File

@@ -340,7 +340,7 @@ func (s *svc) formatProppatchResponse(ctx context.Context, acceptedProps []xml.N
}
if len(acceptedProps) > 0 {
propstatBody := []prop.PropertyXML{}
propstatBody := make([]prop.PropertyXML, 0, len(acceptedProps))
for i := range acceptedProps {
propstatBody = append(propstatBody, prop.EscapedNS(acceptedProps[i].Space, acceptedProps[i].Local, ""))
}
@@ -351,7 +351,7 @@ func (s *svc) formatProppatchResponse(ctx context.Context, acceptedProps []xml.N
}
if len(removedProps) > 0 {
propstatBody := []prop.PropertyXML{}
propstatBody := make([]prop.PropertyXML, 0, len(removedProps))
for i := range removedProps {
propstatBody = append(propstatBody, prop.EscapedNS(removedProps[i].Space, removedProps[i].Local, ""))
}

View File

@@ -24,7 +24,6 @@ import (
"net/http"
rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
providerv1beta1 "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
"github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocdav/net"
"github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocdav/propfind"
@@ -100,7 +99,7 @@ func (s *svc) doFilterFiles(w http.ResponseWriter, r *http.Request, ff *reportFi
return
}
infos := make([]*provider.ResourceInfo, 0, len(favorites))
infos := make([]*providerv1beta1.ResourceInfo, 0, len(favorites))
for i := range favorites {
statRes, err := client.Stat(ctx, &providerv1beta1.StatRequest{Ref: &providerv1beta1.Reference{ResourceId: favorites[i]}})
if err != nil {
@@ -179,14 +178,15 @@ func readReport(r io.Reader) (rep *report, status int, err error) {
}
if v, ok := t.(xml.StartElement); ok {
if v.Name.Local == elementNameSearchFiles {
switch v.Name.Local {
case elementNameSearchFiles:
var repSF reportSearchFiles
err = decoder.DecodeElement(&repSF, &v)
if err != nil {
return nil, http.StatusBadRequest, err
}
rep.SearchFiles = &repSF
} else if v.Name.Local == elementNameFilterFiles {
case elementNameFilterFiles:
var repFF reportFilterFiles
err = decoder.DecodeElement(&repFF, &v)
if err != nil {

View File

@@ -384,7 +384,7 @@ func (s *svc) performHTTPPush(ctx context.Context, r *http.Request, w http.Respo
defer httpDownloadRes.Body.Close()
if httpDownloadRes.StatusCode != http.StatusOK {
w.WriteHeader(httpDownloadRes.StatusCode)
return fmt.Errorf("Remote PUT returned status code %d", httpDownloadRes.StatusCode)
return fmt.Errorf("remote PUT returned status code %d", httpDownloadRes.StatusCode)
}
// send performance markers periodically every PerfMarkerResponseTime (5 seconds unless configured)

View File

@@ -13,14 +13,11 @@ type Validator func(string) error
// ValidatorsFromConfig returns the configured Validators
func ValidatorsFromConfig(c *config.Config) []Validator {
// we always want to exclude empty names
vals := []Validator{notEmpty()}
// forbidden characters
vals = append(vals, doesNotContain(c.NameValidation.InvalidChars))
// max length
vals = append(vals, isShorterThan(c.NameValidation.MaxLength))
vals := []Validator{
notEmpty(), // we always want to exclude empty names
doesNotContain(c.NameValidation.InvalidChars), // forbidden characters
isShorterThan(c.NameValidation.MaxLength), // max length
}
return vals
}

View File

@@ -66,7 +66,17 @@ func (h *Handler) FindSharees(w http.ResponseWriter, r *http.Request) {
response.WriteOCSError(w, r, response.MetaServerError.StatusCode, "error getting gateway grpc client", err)
return
}
usersRes, err := gwc.FindUsers(r.Context(), &userpb.FindUsersRequest{Query: term, SkipFetchingUserGroups: true})
usersRes, err := gwc.FindUsers(r.Context(), &userpb.FindUsersRequest{
Filters: []*userpb.Filter{
{
Type: userpb.Filter_TYPE_QUERY,
Term: &userpb.Filter_Query{
Query: term,
},
},
},
SkipFetchingUserGroups: true,
})
if err != nil {
response.WriteOCSError(w, r, response.MetaServerError.StatusCode, "error searching users", err)
return
@@ -106,7 +116,16 @@ func (h *Handler) FindSharees(w http.ResponseWriter, r *http.Request) {
}
}
groupsRes, err := gwc.FindGroups(r.Context(), &grouppb.FindGroupsRequest{Filter: term, SkipFetchingMembers: true})
groupsRes, err := gwc.FindGroups(r.Context(), &grouppb.FindGroupsRequest{
Filters: []*grouppb.Filter{
{
Type: grouppb.Filter_TYPE_QUERY,
Term: &grouppb.Filter_Query{
Query: term,
},
},
},
SkipFetchingMembers: true})
if err != nil {
response.WriteOCSError(w, r, response.MetaServerError.StatusCode, "error searching groups", err)
return

View File

@@ -49,7 +49,6 @@ import (
"google.golang.org/protobuf/types/known/fieldmaskpb"
ocm "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1"
ocmv1beta1 "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1"
"github.com/jellydator/ttlcache/v2"
"github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocs/config"
"github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocs/response"
@@ -1305,8 +1304,8 @@ func (h *Handler) addFileInfo(ctx context.Context, s *conversions.ShareData, inf
s.ItemSource = storagespace.FormatResourceID(info.Id)
s.FileSource = s.ItemSource
s.Path = path.Join("/", info.Path)
switch {
case h.sharePrefix == "/":
switch h.sharePrefix {
case "/":
s.FileTarget = info.Path
client, err := h.getClient()
if err == nil {
@@ -1627,13 +1626,13 @@ func mapState(state collaboration.ShareState) int {
return mapped
}
func mapOCMState(state ocmv1beta1.ShareState) int {
func mapOCMState(state ocm.ShareState) int {
switch state {
case ocmv1beta1.ShareState_SHARE_STATE_PENDING:
case ocm.ShareState_SHARE_STATE_PENDING:
return ocsStatePending
case ocmv1beta1.ShareState_SHARE_STATE_ACCEPTED:
case ocm.ShareState_SHARE_STATE_ACCEPTED:
return ocsStateAccepted
case ocmv1beta1.ShareState_SHARE_STATE_REJECTED:
case ocm.ShareState_SHARE_STATE_REJECTED:
return ocsStateRejected
default:
return ocsStateUnknown
@@ -1657,18 +1656,18 @@ func getStateFilter(s string) collaboration.ShareState {
return stateFilter
}
func getOCMStateFilter(s string) ocmv1beta1.ShareState {
func getOCMStateFilter(s string) ocm.ShareState {
switch s {
case "all":
return ocsStateUnknown // no filter
case "0": // accepted
return ocmv1beta1.ShareState_SHARE_STATE_ACCEPTED
return ocm.ShareState_SHARE_STATE_ACCEPTED
case "1": // pending
return ocmv1beta1.ShareState_SHARE_STATE_PENDING
return ocm.ShareState_SHARE_STATE_PENDING
case "2": // rejected
return ocmv1beta1.ShareState_SHARE_STATE_REJECTED
return ocm.ShareState_SHARE_STATE_REJECTED
default:
return ocmv1beta1.ShareState_SHARE_STATE_ACCEPTED
return ocm.ShareState_SHARE_STATE_ACCEPTED
}
}

View File

@@ -117,11 +117,11 @@ func (h *Handler) GetUsers(w http.ResponseWriter, r *http.Request) {
}
var user *cs3identity.User
switch {
case userid == "":
switch userid {
case "":
response.WriteOCSError(w, r, response.MetaBadRequest.StatusCode, "missing username", fmt.Errorf("missing username"))
return
case userid == currentUser.Username:
case currentUser.Username:
user = currentUser
default:
// FIXME allow fetching other users info? only for admins

View File

@@ -335,12 +335,13 @@ func getAppURLs(c *config) (map[string]map[string]string, error) {
var appURLs map[string]map[string]string
if discRes.StatusCode == http.StatusOK {
switch discRes.StatusCode {
case http.StatusOK:
appURLs, err = parseWopiDiscovery(discRes.Body)
if err != nil {
return nil, errors.Wrap(err, "error parsing wopi discovery response")
}
} else if discRes.StatusCode == http.StatusNotFound {
case http.StatusNotFound:
// this may be a bridge-supported app
discReq, err = http.NewRequest("GET", c.AppIntURL, nil)
if err != nil {

View File

@@ -139,7 +139,7 @@ func (m *manager) ListSupportedMimeTypes(ctx context.Context) ([]*registrypb.Mim
m.RLock()
defer m.RUnlock()
res := []*registrypb.MimeTypeInfo{}
res := make([]*registrypb.MimeTypeInfo, 0, len(m.config.MimeTypes))
for _, mime := range m.config.MimeTypes {
res = append(res, &registrypb.MimeTypeInfo{
MimeType: mime.MimeType,

View File

@@ -175,7 +175,7 @@ func (mgr *jsonManager) ListAppPasswords(ctx context.Context) ([]*apppb.AppPassw
userID := ctxpkg.ContextMustGetUser(ctx).GetId()
mgr.Lock()
defer mgr.Unlock()
appPasswords := []*apppb.AppPassword{}
appPasswords := make([]*apppb.AppPassword, 0, len(mgr.passwords[userID.String()]))
for _, pw := range mgr.passwords[userID.String()] {
appPasswords = append(appPasswords, pw)
}

View File

@@ -4,6 +4,7 @@ import (
"context"
"encoding/json"
"fmt"
"math/rand"
"strings"
"sync"
"time"
@@ -37,10 +38,12 @@ func init() {
}
type manager struct {
sync.RWMutex // for lazy initialization
mds metadata.Storage
generator PasswordGenerator
initialized bool
sync.RWMutex // for lazy initialization
mds metadata.Storage
generator PasswordGenerator
uTimeUpdateInterval time.Duration
updateRetryCount int
initialized bool
}
type config struct {
@@ -50,6 +53,10 @@ type config struct {
MachineAuthAPIKey string `mapstructure:"machine_auth_apikey"`
Generator string `mapstructure:"password_generator"`
GeneratorConfig map[string]any `mapstructure:"generator_config"`
// Time interval in seconds to update the UTime of a token when calling GetAppPassword. Default is 5 min.
// For testing set this -1 to disable automatic updates.
UTimeUpdateInterval int `mapstructure:"utime_update_interval_seconds"`
UpdateRetryCount int `mapstructure:"update_retry_count"`
}
type updaterFunc func(map[string]*apppb.AppPassword) (map[string]*apppb.AppPassword, error)
@@ -82,6 +89,19 @@ func New(m map[string]any) (appauth.Manager, error) {
if c.Generator == "" {
c.Generator = "diceware"
}
if c.UpdateRetryCount <= 0 {
c.UpdateRetryCount = 5
}
var updateInterval time.Duration
switch c.UTimeUpdateInterval {
case -1:
updateInterval = 0
case 0:
updateInterval = 5 * time.Minute
default:
updateInterval = time.Duration(c.UTimeUpdateInterval) * time.Second
}
var pwgen PasswordGenerator
var err error
@@ -103,33 +123,39 @@ func New(m map[string]any) (appauth.Manager, error) {
return nil, err
}
return NewWithOptions(cs3, pwgen)
return NewWithOptions(cs3, pwgen, updateInterval, c.UpdateRetryCount)
}
func NewWithOptions(mds metadata.Storage, generator PasswordGenerator) (*manager, error) {
func NewWithOptions(mds metadata.Storage, generator PasswordGenerator, uTimeUpdateInterval time.Duration, updateRetries int) (*manager, error) {
return &manager{
mds: mds,
generator: generator,
mds: mds,
generator: generator,
uTimeUpdateInterval: uTimeUpdateInterval,
updateRetryCount: updateRetries,
}, nil
}
// GenerateAppPassword creates a password with specified scope to be used by
// third-party applications.
func (m *manager) GenerateAppPassword(ctx context.Context, scope map[string]*authpb.Scope, label string, expiration *typespb.Timestamp) (*apppb.AppPassword, error) {
logger := appctx.GetLogger(ctx)
ctx, span := appctx.GetTracerProvider(ctx).Tracer(tracerName).Start(ctx, "GenerateAppPassword")
defer span.End()
if err := m.initialize(ctx); err != nil {
logger.Error().Err(err).Msg("initializing appauth manager failed")
span.RecordError(err)
span.SetStatus(codes.Error, err.Error())
return nil, err
}
token, err := m.generator.GeneratePassword()
if err != nil {
logger.Debug().Err(err).Msg("error generating new password")
return nil, errors.Wrap(err, "error creating new token")
}
tokenHashed, err := argon2id.CreateHash(token, argon2id.DefaultParams)
if err != nil {
logger.Debug().Err(err).Msg("error generating password hash")
return nil, errors.Wrap(err, "error creating new token")
}
@@ -137,6 +163,7 @@ func (m *manager) GenerateAppPassword(ctx context.Context, scope map[string]*aut
if user, ok := ctxpkg.ContextGetUser(ctx); ok {
userID = user.GetId()
} else {
logger.Debug().Err(err).Msg("no user in context")
return nil, errtypes.BadRequest("no user in context")
}
@@ -156,12 +183,13 @@ func (m *manager) GenerateAppPassword(ctx context.Context, scope map[string]*aut
id := uuid.New().String()
err = m.updateWithRetry(ctx, 5, true, userID, func(a map[string]*apppb.AppPassword) (map[string]*apppb.AppPassword, error) {
err = m.updateWithRetry(ctx, m.updateRetryCount, true, userID, func(a map[string]*apppb.AppPassword) (map[string]*apppb.AppPassword, error) {
a[id] = appPass
return a, nil
})
if err != nil {
logger.Debug().Err(err).Msg("failed to store new app password")
return nil, err
}
@@ -248,7 +276,7 @@ func (m *manager) InvalidateAppPassword(ctx context.Context, secretOrId string)
return a, errtypes.NotFound("password not found")
}
err := m.updateWithRetry(ctx, 5, false, userID, updater)
err := m.updateWithRetry(ctx, m.updateRetryCount, false, userID, updater)
if err != nil {
log.Error().Err(err).Msg("getUserAppPasswords failed")
return errtypes.NotFound("password not found")
@@ -291,8 +319,8 @@ func (m *manager) GetAppPassword(ctx context.Context, user *userpb.UserId, secre
matchedID = id
// password not expired
// Updating the Utime will cause an Upload for every single GetAppPassword request. We are limiting this to one
// update per 5 minutes otherwise this backend will become unusable.
if time.Since(utils.TSToTime(pw.Utime)) > 5*time.Minute {
// update per 'uTimeUpdateInterval' (default 5 min) otherwise this backend will become unusable.
if time.Since(utils.TSToTime(pw.Utime)) > m.uTimeUpdateInterval {
a[id].Utime = utils.TSNow()
return a, nil
}
@@ -302,7 +330,7 @@ func (m *manager) GetAppPassword(ctx context.Context, user *userpb.UserId, secre
return nil, errtypes.NotFound("password not found")
}
err := m.updateWithRetry(ctx, 5, false, user, updater)
err := m.updateWithRetry(ctx, m.updateRetryCount, false, user, updater)
switch {
case err == nil:
fallthrough
@@ -317,6 +345,7 @@ func (m *manager) GetAppPassword(ctx context.Context, user *userpb.UserId, secre
func (m *manager) initialize(ctx context.Context) error {
_, span := appctx.GetTracerProvider(ctx).Tracer(tracerName).Start(ctx, "initialize")
logger := appctx.GetLogger(ctx)
defer span.End()
if m.initialized {
span.SetStatus(codes.Ok, "already initialized")
@@ -332,6 +361,7 @@ func (m *manager) initialize(ctx context.Context) error {
}
ctx = context.Background()
ctx = appctx.WithLogger(ctx, logger)
err := m.mds.Init(ctx, "jsoncs3-appauth-data")
if err != nil {
span.RecordError(err)
@@ -343,6 +373,7 @@ func (m *manager) initialize(ctx context.Context) error {
}
func (m *manager) updateWithRetry(ctx context.Context, retries int, createIfNotFound bool, userid *userpb.UserId, updater updaterFunc) error {
log := appctx.GetLogger(ctx)
_, span := appctx.GetTracerProvider(ctx).Tracer(tracerName).Start(ctx, "initialize")
defer span.End()
@@ -355,6 +386,12 @@ func (m *manager) updateWithRetry(ctx context.Context, retries int, createIfNotF
// retry for the specified number of times, then error out
for i := 0; i < retries && retry; i++ {
if i > 0 {
// if we're retrying, wait a bit before the next try
jitter := time.Duration(rand.Int63n(int64(100 * time.Millisecond)))
time.Sleep(jitter + 100*time.Millisecond)
}
etag, userAppPasswords, err = m.getUserAppPasswords(ctx, userid)
switch err.(type) {
case nil:
@@ -363,11 +400,18 @@ func (m *manager) updateWithRetry(ctx context.Context, retries int, createIfNotF
if createIfNotFound {
userAppPasswords = map[string]*apppb.AppPassword{}
} else {
log.Debug().Err(err).Msg("getUserAppPasswords failed (not found)")
span.RecordError(err)
span.SetStatus(codes.Error, "downloading app tokens failed")
return err
}
case errtypes.TooEarly:
// Ideally this should never happen as we disable asynchronous uploads for the metadata storage.
log.Debug().Err(err).Int("try", i).Msg("getUserAppPasswords failed (too early, retrying)")
retry = true
continue
default:
log.Debug().Err(err).Msg("getUserAppPasswords failed")
span.RecordError(err)
span.SetStatus(codes.Error, "downloading app tokens failed")
return err
@@ -382,17 +426,20 @@ func (m *manager) updateWithRetry(ctx context.Context, retries int, createIfNotF
switch err.(type) {
case nil:
retry = false
case errtypes.PreconditionFailed:
case errtypes.Aborted:
log.Debug().Err(err).Int("attempt", i).Msg("updateUserAppPassword failed (retrying)")
retry = true
default:
log.Debug().Err(err).Int("attempt", i).Msg("updateUserAppPassword failed (not retrying)")
span.RecordError(err)
span.SetStatus(codes.Error, err.Error())
return err
}
}
if retry {
log.Debug().Err(err).Msg("updateUserAppPassword failed")
span.RecordError(err)
span.SetStatus(codes.Error, "updating app tokens failed")
span.SetStatus(codes.Error, "updating app token failed")
return err
}
return nil
@@ -424,7 +471,7 @@ func (m *manager) updateUserAppPassword(ctx context.Context, userid *userpb.User
if err != nil {
span.RecordError(err)
span.SetStatus(codes.Error, err.Error())
log.Debug().Err(err).Msg("persisting provider cache failed")
log.Debug().Err(err).Msg("failed to upload AppPasswword")
return err
}
return nil

View File

@@ -50,7 +50,7 @@ type reg struct {
}
func (r *reg) ListProviders(ctx context.Context) ([]*registrypb.ProviderInfo, error) {
providers := []*registrypb.ProviderInfo{}
providers := make([]*registrypb.ProviderInfo, 0, len(r.rules))
for k, v := range r.rules {
providers = append(providers, &registrypb.ProviderInfo{
ProviderType: k,

View File

@@ -404,7 +404,7 @@ func (m *mgr) getReceivedByID(ctx context.Context, id *collaboration.ShareId) (*
user := ctxpkg.ContextMustGetUser(ctx)
uid := conversions.FormatUserID(user.Id)
params := []interface{}{uid, id.OpaqueId, uid}
params := []interface{}{uid, id.OpaqueId, uid} // nolint:prealloc
for _, v := range user.Groups {
params = append(params, v)
}
@@ -438,7 +438,7 @@ func (m *mgr) getReceivedByKey(ctx context.Context, key *collaboration.ShareKey)
uid := conversions.FormatUserID(user.Id)
shareType, shareWith := conversions.FormatGrantee(key.Grantee)
params := []interface{}{uid, conversions.FormatUserID(key.Owner), key.GetResourceId().SpaceId, key.ResourceId.OpaqueId, shareType, shareWith, shareWith}
params := []interface{}{uid, conversions.FormatUserID(key.Owner), key.GetResourceId().SpaceId, key.ResourceId.OpaqueId, shareType, shareWith, shareWith} // nolint:prealloc
for _, v := range user.Groups {
params = append(params, v)
}

View File

@@ -265,10 +265,7 @@ func ConvertToCS3PublicShare(ctx context.Context, gateway gatewayv1beta1.Gateway
ts := &typespb.Timestamp{
Seconds: uint64(s.STime),
}
pwd := false
if s.ShareWith != "" {
pwd = true
}
pwd := s.ShareWith != ""
var expires *typespb.Timestamp
if s.Expiration != "" {
t, err := time.Parse("2006-01-02 15:04:05", s.Expiration)

View File

@@ -240,7 +240,8 @@ func CS3Share2ShareData(ctx context.Context, share *collaboration.Share) *ShareD
UIDFileOwner: LocalUserIDToString(share.GetOwner()),
}
if share.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_USER {
switch share.Grantee.Type {
case provider.GranteeType_GRANTEE_TYPE_USER:
sd.ShareType = ShareTypeUser
sd.ShareWith = LocalUserIDToString(share.Grantee.GetUserId())
shareType := share.GetGrantee().GetUserId().GetType()
@@ -249,7 +250,7 @@ func CS3Share2ShareData(ctx context.Context, share *collaboration.Share) *ShareD
} else {
sd.ShareWithUserType = ShareWithUserTypeUser
}
} else if share.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_GROUP {
case provider.GranteeType_GRANTEE_TYPE_GROUP:
sd.ShareType = ShareTypeGroup
sd.ShareWith = LocalGroupIDToString(share.Grantee.GetGroupId())
}
@@ -343,8 +344,8 @@ func ReceivedOCMShare2ShareData(share *ocm.ReceivedShare, path string) (*ShareDa
ShareType: ShareTypeFederatedCloudShare,
Path: shareTarget,
FileTarget: shareTarget,
MimeType: mime.Detect(share.ResourceType == provider.ResourceType_RESOURCE_TYPE_CONTAINER, share.Name),
ItemType: ResourceType(share.ResourceType).String(),
MimeType: mime.Detect(share.ResourceType == provider.ResourceType_RESOURCE_TYPE_CONTAINER, share.Name), //nolint:staticcheck // we will update our ocm implementation later
ItemType: ResourceType(share.ResourceType).String(), //nolint:staticcheck // we will update our ocm implementation later
ItemSource: storagespace.FormatResourceID(&provider.ResourceId{
StorageId: utils.OCMStorageProviderID,
SpaceId: share.Id.OpaqueId,

View File

@@ -52,7 +52,7 @@ const (
var (
// ErrPermissionNotInRange defines a permission specific error.
ErrPermissionNotInRange = fmt.Errorf("The provided permission is not between %d and %d", PermissionMinInput, PermissionMaxInput)
ErrPermissionNotInRange = fmt.Errorf("the provided permission is not between %d and %d", PermissionMinInput, PermissionMaxInput)
// ErrZeroPermission defines a permission specific error
ErrZeroPermission = errors.New("permission is zero")
)

View File

@@ -511,7 +511,7 @@ func (c *Client) SetAttr(ctx context.Context, auth eosclient.Authorization, attr
// We need to set the attrs on the version folder as they are not persisted across writes
// Except for the sys.eval.useracl attr as EOS uses that to determine if it needs to obey
// the user ACLs set on the file
if !(attr.Type == eosclient.SystemAttr && attr.Key == userACLEvalKey) {
if attr.Type != eosclient.SystemAttr || attr.Key != userACLEvalKey {
info, err = c.getRawFileInfoByPath(ctx, auth, path)
if err != nil {
return err
@@ -587,7 +587,7 @@ func (c *Client) UnsetAttr(ctx context.Context, auth eosclient.Authorization, at
// We need to set the attrs on the version folder as they are not persisted across writes
// Except for the sys.eval.useracl attr as EOS uses that to determine if it needs to obey
// the user ACLs set on the file
if !(attr.Type == eosclient.SystemAttr && attr.Key == userACLEvalKey) {
if attr.Type != eosclient.SystemAttr || attr.Key != userACLEvalKey {
info, err = c.getRawFileInfoByPath(ctx, auth, path)
if err != nil {
return err
@@ -927,10 +927,7 @@ func parseRecycleEntry(raw string) (*eosclient.DeletedEntry, error) {
if err != nil {
return nil, err
}
isDir := false
if kv["type"] == "recursive-dir" {
isDir = true
}
isDir := kv["type"] == "recursive-dir"
deletionMTime, err := strconv.ParseUint(strings.Split(kv["deletion-time"], ".")[0], 10, 64)
if err != nil {
return nil, err
@@ -1087,13 +1084,13 @@ func (c *Client) parseFileInfo(ctx context.Context, raw string, parseFavoriteKey
partsByEqual := strings.SplitN(p, "=", 2) // we have kv pairs like [size 14]
if len(partsByEqual) == 2 {
// handle xattrn and xattrv special cases
switch {
case partsByEqual[0] == "xattrn":
switch partsByEqual[0] {
case "xattrn":
previousXAttr = partsByEqual[1]
if previousXAttr != "user.acl" {
previousXAttr = strings.Replace(previousXAttr, "user.", "", 1)
}
case partsByEqual[0] == "xattrv":
case "xattrv":
attrs[previousXAttr] = partsByEqual[1]
previousXAttr = ""
default:

View File

@@ -92,10 +92,11 @@ func (m *Metrics) Update(meshData *meshdata.MeshData) error {
}
func (m *Metrics) exportSiteMetrics(site *meshdata.Site) error {
mutators := make([]tag.Mutator, 0)
mutators = append(mutators, tag.Insert(tag.MustNewKey(keySiteID), site.ID))
mutators = append(mutators, tag.Insert(tag.MustNewKey(keySiteName), site.Name))
mutators = append(mutators, tag.Insert(tag.MustNewKey(keyServiceType), "SCIENCEMESH_HCHECK"))
mutators := []tag.Mutator{
tag.Insert(tag.MustNewKey(keySiteID), site.ID),
tag.Insert(tag.MustNewKey(keySiteName), site.Name),
tag.Insert(tag.MustNewKey(keyServiceType), "SCIENCEMESH_HCHECK"),
}
// Create a new context to serve the metrics
if ctx, err := tag.New(context.Background(), mutators...); err == nil {

View File

@@ -72,7 +72,7 @@ type MetricsJSONDriver struct {
// Configure configures this driver
func (d *MetricsJSONDriver) Configure(c *config.Config) error {
if c.MetricsDataLocation == "" {
err := errors.New("Unable to initialize a metrics data driver, has the data location (metrics_data_location) been configured?")
err := errors.New("unable to initialize a metrics data driver, has the data location (metrics_data_location) been configured?")
return err
}

View File

@@ -399,26 +399,22 @@ func (m *mgr) UpdateShare(ctx context.Context, user *userpb.User, ref *ocm.Share
}
if am := f.GetAccessMethods(); am != nil {
var (
webdavOptions *ocm.WebDAVAccessMethod
webappOptions *ocm.WebappAccessMethod
transferOptions *ocm.TransferAccessMethod
webdavOptions *ocm.WebDAVAccessMethod
webappOptions *ocm.WebappAccessMethod
// TODO: *AccessMethod_GenericOptions
newWebdavOptions *ocm.WebDAVAccessMethod
newWebappOptions *ocm.WebappAccessMethod
newTransferOptions *ocm.TransferAccessMethod
newWebdavOptions *ocm.WebDAVAccessMethod
newWebappOptions *ocm.WebappAccessMethod
// TODO: *AccessMethod_GenericOptions
)
for _, sm := range s.GetAccessMethods() {
webdavOptions = sm.GetWebdavOptions()
webappOptions = sm.GetWebappOptions()
transferOptions = sm.GetTransferOptions()
}
newWebdavOptions = am.GetWebdavOptions()
newWebappOptions = am.GetWebappOptions()
newTransferOptions = am.GetTransferOptions()
newAccesMethods := []*ocm.AccessMethod{}
@@ -450,19 +446,6 @@ func (m *mgr) UpdateShare(ctx context.Context, user *userpb.User, ref *ocm.Share
})
}
if newTransferOptions != nil {
newAccesMethods = append(newAccesMethods, &ocm.AccessMethod{
Term: &ocm.AccessMethod_TransferOptions{
TransferOptions: newTransferOptions,
},
})
} else if transferOptions != nil {
newAccesMethods = append(newAccesMethods, &ocm.AccessMethod{
Term: &ocm.AccessMethod_TransferOptions{
TransferOptions: transferOptions,
},
})
}
s.AccessMethods = newAccesMethods
}
}

View File

@@ -430,7 +430,7 @@ func (sm *Manager) do(ctx context.Context, a Action, username string) (int, []by
log.Info().Msgf("am.do response %d %s", resp.StatusCode, body)
if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated {
return 0, nil, fmt.Errorf("Unexpected response code from EFSS API: %d", resp.StatusCode)
return 0, nil, fmt.Errorf("unexpected response code from EFSS API: %d", resp.StatusCode)
}
return resp.StatusCode, body, nil
}

View File

@@ -49,19 +49,6 @@ func NewWebappProtocol(uriTemplate string, viewMode appprovider.ViewMode) *ocm.P
}
}
// NewTransferProtocol is an abstraction for creating a Transfer protocol.
func NewTransferProtocol(sourceURI, sharedSecret string, size uint64) *ocm.Protocol {
return &ocm.Protocol{
Term: &ocm.Protocol_TransferOptions{
TransferOptions: &ocm.TransferProtocol{
SourceUri: sourceURI,
SharedSecret: sharedSecret,
Size: size,
},
},
}
}
// NewWebDavAccessMethod is an abstraction for creating a WebDAV access method.
func NewWebDavAccessMethod(perms *provider.ResourcePermissions) *ocm.AccessMethod {
return &ocm.AccessMethod{
@@ -83,12 +70,3 @@ func NewWebappAccessMethod(mode appprovider.ViewMode) *ocm.AccessMethod {
},
}
}
// NewTransferAccessMethod is an abstraction for creating a Transfer access method.
func NewTransferAccessMethod() *ocm.AccessMethod {
return &ocm.AccessMethod{
Term: &ocm.AccessMethod_TransferOptions{
TransferOptions: &ocm.TransferAccessMethod{},
},
}
}

View File

@@ -260,7 +260,7 @@ func convertStatToResourceInfo(ref *provider.Reference, f fs.FileInfo, share *oc
var name string
switch {
case share.ResourceType == provider.ResourceType_RESOURCE_TYPE_FILE:
case share.ResourceType == provider.ResourceType_RESOURCE_TYPE_FILE: //nolint:staticcheck // we will update our ocm implementation later
name = share.Name
case webdavFile.Path() == "/":
name = share.Name

View File

@@ -154,10 +154,10 @@ func (d *driver) GetUpload(ctx context.Context, id string) (tusd.Upload, error)
}
func NewUpload(ctx context.Context, d *driver, storageRoot string, info tusd.FileInfo) (tusd.Upload, error) {
if info.MetaData["filename"] == "" {
return nil, errors.New("Decomposedfs: missing filename in metadata")
return nil, errors.New("decomposedfs: missing filename in metadata")
}
if info.MetaData["dir"] == "" {
return nil, errors.New("Decomposedfs: missing dir in metadata")
return nil, errors.New("decomposedfs: missing dir in metadata")
}
uploadRoot := filepath.Join(storageRoot, "uploads")
@@ -328,7 +328,7 @@ func (u *upload) FinishUpload(ctx context.Context) error {
// shareID, rel := shareInfoFromReference(u.Info.MetaData["ref"])
// p := getPathFromShareIDAndRelPath(shareID, rel)
serviceUserCtx, err := utils.GetServiceUserContext(u.d.c.ServiceAccountID, u.d.gateway, u.d.c.ServiceAccountSecret)
serviceUserCtx, err := utils.GetServiceUserContextWithContext(context.Background(), u.d.gateway, u.d.c.ServiceAccountID, u.d.c.ServiceAccountSecret)
if err != nil {
return err
}

View File

@@ -557,7 +557,7 @@ func (m *manager) ListPublicShares(ctx context.Context, u *user.User, filters []
cache[key] = struct{}{}
}
if local.PublicShare.PasswordProtected && sign {
if local.PasswordProtected && sign {
if err := publicshare.AddSignature(&local.PublicShare, local.Password); err != nil {
return nil, err
}

View File

@@ -189,10 +189,7 @@ func (m *mgr) ConvertToCS3PublicShare(ctx context.Context, s DBShare) (*link.Pub
return nil, err
}
}
pwd := false
if s.ShareWith != "" {
pwd = true
}
pwd := s.ShareWith != ""
var expires *typespb.Timestamp
if s.Expiration != "" {
t, err := time.Parse("2006-01-02 15:04:05", s.Expiration)

View File

@@ -677,7 +677,7 @@ func (m *Manager) listSharesByIDs(ctx context.Context, user *userv1beta1.User, f
continue
}
if !(share.IsCreatedByUser(s, user) || share.IsGrantedToUser(s, user)) {
if !share.IsCreatedByUser(s, user) && !share.IsGrantedToUser(s, user) {
key := storagespace.FormatResourceID(resourceID)
if _, hit := statCache[key]; !hit {
req := &provider.StatRequest{

View File

@@ -25,7 +25,6 @@ import (
grouppb "github.com/cs3org/go-cs3apis/cs3/identity/group/v1beta1"
userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
userprovider "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
collaboration "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
@@ -99,7 +98,7 @@ func (c *GatewayUserConverter) UserIDToUserName(ctx context.Context, userid *use
if err != nil {
return "", err
}
getUserResponse, err := gwConn.GetUser(ctx, &userprovider.GetUserRequest{
getUserResponse, err := gwConn.GetUser(ctx, &userpb.GetUserRequest{
UserId: userid,
SkipFetchingUserGroups: true,
})

View File

@@ -484,7 +484,7 @@ func (m *mgr) UpdateReceivedShare(ctx context.Context, receivedShare *collaborat
return err
}
if affected < 1 {
return fmt.Errorf("No rows updated")
return fmt.Errorf("no rows updated")
}
return nil
}
@@ -538,7 +538,7 @@ func (m *mgr) getReceivedByID(ctx context.Context, id *collaboration.ShareId) (*
user := ctxpkg.ContextMustGetUser(ctx)
uid := user.Username
params := []interface{}{id.OpaqueId, id.OpaqueId, uid}
params := []interface{}{id.OpaqueId, id.OpaqueId, uid} //nolint:prealloc
for _, v := range user.Groups {
params = append(params, v)
}
@@ -559,16 +559,16 @@ func (m *mgr) getReceivedByID(ctx context.Context, id *collaboration.ShareId) (*
query := `
WITH results AS
(
SELECT s.*, storages.numeric_id
SELECT s.*, storages.numeric_id
FROM oc_share s
LEFT JOIN oc_storages storages ON ` + homeConcat + `
WHERE s.id=? OR s.parent=? ` + userSelect + `
)
SELECT COALESCE(r.uid_owner, '') AS uid_owner, COALESCE(r.uid_initiator, '') AS uid_initiator, COALESCE(r.share_with, '')
AS share_with, COALESCE(r.file_source, '') AS file_source, COALESCE(r2.file_target, r.file_target), r.id, r.stime, r.permissions, r.share_type, COALESCE(r2.accepted, r.accepted),
r.numeric_id, COALESCE(r.parent, -1) AS parent
FROM results r
LEFT JOIN results r2 ON r.id = r2.parent
r.numeric_id, COALESCE(r.parent, -1) AS parent
FROM results r
LEFT JOIN results r2 ON r.id = r2.parent
WHERE r.parent IS NULL;
`

View File

@@ -97,14 +97,14 @@ func getEndpoints() []endpoint {
func callAdministrationEndpoint(siteacc *SiteAccounts, ep endpoint, w http.ResponseWriter, r *http.Request, session *html.Session) {
if err := siteacc.ShowAdministrationPanel(w, r, session); err != nil {
w.WriteHeader(http.StatusInternalServerError)
_, _ = w.Write([]byte(fmt.Sprintf("Unable to show the administration panel: %v", err)))
_, _ = fmt.Fprintf(w, "Unable to show the administration panel: %v", err)
}
}
func callAccountEndpoint(siteacc *SiteAccounts, ep endpoint, w http.ResponseWriter, r *http.Request, session *html.Session) {
if err := siteacc.ShowAccountPanel(w, r, session); err != nil {
w.WriteHeader(http.StatusInternalServerError)
_, _ = w.Write([]byte(fmt.Sprintf("Unable to show the account panel: %v", err)))
_, _ = fmt.Fprintf(w, "Unable to show the account panel: %v", err)
}
}

View File

@@ -145,7 +145,7 @@ func (siteacc *SiteAccounts) RequestHandler() http.Handler {
if !epHandled {
w.WriteHeader(http.StatusBadRequest)
_, _ = w.Write([]byte(fmt.Sprintf("Unknown endpoint %v", r.URL.Path)))
_, _ = fmt.Fprintf(w, "Unknown endpoint %v", r.URL.Path)
}
})
}

View File

@@ -211,7 +211,7 @@ func (cache cacheStore) PushToCache(key string, src interface{}) error {
// List lists the keys on the configured database and table of the underlying store
func (cache cacheStore) List(opts ...microstore.ListOption) ([]string, error) {
o := []microstore.ListOption{
o := []microstore.ListOption{ // nolint:prealloc
microstore.ListFrom(cache.database, cache.table),
}
o = append(o, opts...)
@@ -224,7 +224,7 @@ func (cache cacheStore) List(opts ...microstore.ListOption) ([]string, error) {
// Delete deletes the given key on the configured database and table of the underlying store
func (cache cacheStore) Delete(key string, opts ...microstore.DeleteOption) error {
o := []microstore.DeleteOption{
o := []microstore.DeleteOption{ // nolint:prealloc
microstore.DeleteFrom(cache.database, cache.table),
}
o = append(o, opts...)

View File

@@ -187,12 +187,14 @@ func (fs *hellofs) RestoreRecycleItem(ctx context.Context, ref *provider.Referen
}
// CreateHome creates a users home
//
// Deprecated: use CreateStorageSpace with type personal
func (fs *hellofs) CreateHome(ctx context.Context) error {
return errtypes.NotSupported("unimplemented")
}
// GetHome returns the path to the users home
//
// Deprecated: use ListStorageSpaces with type personal
func (fs *hellofs) GetHome(ctx context.Context) (string, error) {
return "", errtypes.NotSupported("unimplemented")

View File

@@ -1113,9 +1113,9 @@ func (fs *owncloudsqlfs) UnsetArbitraryMetadata(ctx context.Context, ref *provid
if err = xattr.Remove(ip, mdPrefix+k); err != nil {
// a non-existing attribute will return an error, which we can ignore
// (using string compare because the error type is syscall.Errno and not wrapped/recognizable)
if e, ok := err.(*xattr.Error); !ok || !(e.Err.Error() == "no data available" ||
if e, ok := err.(*xattr.Error); !ok || (e.Err.Error() != "no data available" &&
// darwin
e.Err.Error() == "attribute not found") {
e.Err.Error() != "attribute not found") {
log.Error().Err(err).
Str("ipath", ip).
Str("key", k).

View File

@@ -324,9 +324,10 @@ func (fs *owncloudsqlfs) GetUpload(ctx context.Context, id string) (tusd.Upload,
ctx = ctxpkg.ContextSetUser(ctx, u)
// TODO configure the logger the same way ... store and add traceid in file info
var opts []logger.Option
opts = append(opts, logger.WithLevel(info.Storage["LogLevel"]))
opts = append(opts, logger.WithWriter(os.Stderr, logger.ConsoleMode))
opts := []logger.Option{
logger.WithLevel(info.Storage["LogLevel"]),
logger.WithWriter(os.Stderr, logger.ConsoleMode),
}
l := logger.New(opts...)
sub := l.With().Int("pid", os.Getpid()).Logger()

View File

@@ -83,8 +83,8 @@ type Lookup struct {
// New returns a new Lookup instance
func New(b metadata.Backend, um usermapper.Mapper, o *options.Options, tm node.TimeManager) *Lookup {
idHistoryConf := o.Options.IDCache
idHistoryConf.Table = o.Options.IDCache.Table + "_history"
idHistoryConf := o.IDCache
idHistoryConf.Table = o.IDCache.Table + "_history"
idHistoryConf.TTL = 1 * time.Minute
spaceRootCache, _ := lru.New[string, string](1000)
@@ -92,7 +92,7 @@ func New(b metadata.Backend, um usermapper.Mapper, o *options.Options, tm node.T
lu := &Lookup{
Options: o,
metadataBackend: b,
IDCache: NewStoreIDCache(o.Options.IDCache),
IDCache: NewStoreIDCache(o.IDCache),
IDHistoryCache: NewStoreIDCache(idHistoryConf),
spaceRootCache: spaceRootCache,
userMapper: um,
@@ -417,7 +417,7 @@ func (lu *Lookup) CopyMetadataWithSourceLock(ctx context.Context, src, target me
switch {
case lockedSource == nil:
return errors.New("no lock provided")
case lockedSource.File.Name() != lu.MetadataBackend().LockfilePath(src):
case lockedSource.Name() != lu.MetadataBackend().LockfilePath(src):
return errors.New("lockpath does not match filepath")
}

View File

@@ -333,8 +333,7 @@ func (t *Tree) HandleFileDelete(path string, sendSSE bool) error {
return err
}
t.PublishEvent(events.ItemTrashed{
Owner: parentNode.Owner(),
Executant: parentNode.Owner(),
Owner: parentNode.Owner(),
Ref: &provider.Reference{
ResourceId: &provider.ResourceId{
StorageId: t.options.MountID,
@@ -538,10 +537,39 @@ func (t *Tree) assimilate(item scanItem) error {
t.log.Error().Err(err).Str("spaceID", spaceID).Str("id", id).Str("path", item.Path).Msg("could not cache id")
}
_, _, err := t.updateFile(item.Path, id, spaceID, fi)
fi, attrs, err := t.updateFile(item.Path, id, spaceID, fi)
if err != nil {
return err
}
if !fi.IsDir() {
ref := &provider.Reference{
ResourceId: &provider.ResourceId{
StorageId: t.options.MountID,
SpaceId: spaceID,
OpaqueId: id,
},
}
parentResourceID := &provider.ResourceId{
StorageId: t.options.MountID,
SpaceId: ref.ResourceId.SpaceId,
OpaqueId: string(attrs[prefixes.ParentidAttr]),
}
if fi.Size() == 0 {
t.PublishEvent(events.FileTouched{
Ref: ref,
ParentID: parentResourceID,
Timestamp: utils.TSNow(),
})
} else {
t.PublishEvent(events.UploadReady{
FileRef: ref,
ParentID: parentResourceID,
Timestamp: utils.TSNow(),
IsVersion: true,
})
}
}
}
} else {
t.log.Debug().Str("path", item.Path).Msg("new item detected")
@@ -583,7 +611,6 @@ func (t *Tree) assimilate(item scanItem) error {
OpaqueId: string(attrs[prefixes.ParentidAttr]),
}
}
ref := &provider.Reference{
ResourceId: &provider.ResourceId{
StorageId: t.options.MountID,
@@ -609,6 +636,7 @@ func (t *Tree) assimilate(item scanItem) error {
FileRef: ref,
ParentID: parentId,
Timestamp: utils.TSNow(),
IsVersion: false,
})
}
}

View File

@@ -104,7 +104,7 @@ func (fs *Decomposedfs) AddGrant(ctx context.Context, ref *provider.Reference, g
// When the owner is empty but grants are set then we do want to check the grants.
// However, if we are trying to edit an existing grant we do not have to check for permission if the user owns the grant
// TODO: find a better to check this
if !(len(grants) == 0 && (owner == nil || owner.OpaqueId == "" || (owner.OpaqueId == grantNode.SpaceID && owner.Type == 8))) {
if len(grants) != 0 || (owner != nil && owner.OpaqueId != "" && (owner.OpaqueId != grantNode.SpaceID || owner.Type != 8)) {
rp, err := fs.p.AssemblePermissions(ctx, grantNode)
switch {
case err != nil:
@@ -232,13 +232,13 @@ func (fs *Decomposedfs) RemoveGrant(ctx context.Context, ref *provider.Reference
// FIXME we should invalidate the by-type index, but that requires reference counting
} else {
// invalidate space grant
switch {
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_USER:
switch g.Grantee.Type {
case provider.GranteeType_GRANTEE_TYPE_USER:
// remove from user index
if err := fs.userSpaceIndex.Remove(g.Grantee.GetUserId().GetOpaqueId(), grantNode.SpaceID); err != nil {
return err
}
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_GROUP:
case provider.GranteeType_GRANTEE_TYPE_GROUP:
// remove from group index
if err := fs.groupSpaceIndex.Remove(g.Grantee.GetGroupId().GetOpaqueId(), grantNode.SpaceID); err != nil {
return err

View File

@@ -279,6 +279,7 @@ func (lu *Lookup) LockfilePaths(n *node.Node) []string {
}
// VersionPath returns the internal path for a version of a node
//
// Deprecated: use InternalPath instead
func (lu *Lookup) VersionPath(spaceID, nodeID, version string) string {
return lu.InternalPath(spaceID, nodeID) + node.RevisionIDDelimiter + version
@@ -337,7 +338,7 @@ func (lu *Lookup) CopyMetadataWithSourceLock(ctx context.Context, sourceNode, ta
switch {
case lockedSource == nil:
return errors.New("no lock provided")
case lockedSource.File.Name() != lu.MetadataBackend().LockfilePath(sourceNode):
case lockedSource.Name() != lu.MetadataBackend().LockfilePath(sourceNode):
return errors.New("lockpath does not match filepath")
}

View File

@@ -852,10 +852,10 @@ func (fs *Decomposedfs) updateIndexes(ctx context.Context, grantee *provider.Gra
}
// create space grant index
switch {
case grantee.Type == provider.GranteeType_GRANTEE_TYPE_USER:
switch grantee.Type {
case provider.GranteeType_GRANTEE_TYPE_USER:
return fs.linkSpaceByUser(ctx, grantee.GetUserId().GetOpaqueId(), spaceID, target)
case grantee.Type == provider.GranteeType_GRANTEE_TYPE_GROUP:
case provider.GranteeType_GRANTEE_TYPE_GROUP:
return fs.linkSpaceByGroup(ctx, grantee.GetGroupId().GetOpaqueId(), spaceID, target)
default:
return errtypes.BadRequest("invalid grantee type: " + grantee.GetType().String())
@@ -941,14 +941,14 @@ func (fs *Decomposedfs) StorageSpaceFromNode(ctx context.Context, n *node.Node,
}
if n.IsSpaceRoot(ctx) {
// invalidate space grant
switch {
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_USER:
switch g.Grantee.Type {
case provider.GranteeType_GRANTEE_TYPE_USER:
// remove from user index
if err := fs.userSpaceIndex.Remove(g.Grantee.GetUserId().GetOpaqueId(), n.GetSpaceID()); err != nil {
sublog.Error().Err(err).Str("grantee", id).
Msg("failed to delete expired user space index")
}
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_GROUP:
case provider.GranteeType_GRANTEE_TYPE_GROUP:
// remove from group index
if err := fs.groupSpaceIndex.Remove(g.Grantee.GetGroupId().GetOpaqueId(), n.GetSpaceID()); err != nil {
sublog.Error().Err(err).Str("grantee", id).

View File

@@ -137,9 +137,11 @@ type FS interface {
DeleteStorageSpace(ctx context.Context, req *provider.DeleteStorageSpaceRequest) error
// CreateHome creates a users home
//
// Deprecated: use CreateStorageSpace with type personal
CreateHome(ctx context.Context) error
// GetHome returns the path to the users home
//
// Deprecated: use ListStorageSpaces with type personal
GetHome(ctx context.Context) (string, error)
}

View File

@@ -39,6 +39,7 @@ type UploadRequest struct {
}
// UploadsManager defines the interface for storage drivers that allow for managing uploads
//
// Deprecated: No longer used. Storage drivers should implement the UploadSessionLister.
type UploadsManager interface {
ListUploads() ([]tusd.FileInfo, error)

View File

@@ -79,7 +79,7 @@ func isComment(line string) bool {
// Serialize always serializes to short text form
func (m *ACLs) Serialize() string {
sysACL := []string{}
sysACL := make([]string, 0, len(m.Entries))
for _, e := range m.Entries {
sysACL = append(sysACL, e.CitrineSerialize())
}

View File

@@ -104,7 +104,7 @@ func (fs *Decomposedfs) AddGrant(ctx context.Context, ref *provider.Reference, g
// When the owner is empty but grants are set then we do want to check the grants.
// However, if we are trying to edit an existing grant we do not have to check for permission if the user owns the grant
// TODO: find a better to check this
if !(len(grants) == 0 && (owner == nil || owner.OpaqueId == "" || (owner.OpaqueId == grantNode.SpaceID && owner.Type == 8))) {
if len(grants) != 0 || (owner != nil && owner.OpaqueId != "" && (owner.OpaqueId != grantNode.SpaceID || owner.Type != 8)) {
rp, err := fs.p.AssemblePermissions(ctx, grantNode)
switch {
case err != nil:
@@ -218,13 +218,13 @@ func (fs *Decomposedfs) RemoveGrant(ctx context.Context, ref *provider.Reference
// FIXME we should invalidate the by-type index, but that requires reference counting
} else {
// invalidate space grant
switch {
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_USER:
switch g.Grantee.Type {
case provider.GranteeType_GRANTEE_TYPE_USER:
// remove from user index
if err := fs.userSpaceIndex.Remove(g.Grantee.GetUserId().GetOpaqueId(), grantNode.SpaceID); err != nil {
return err
}
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_GROUP:
case provider.GranteeType_GRANTEE_TYPE_GROUP:
// remove from group index
if err := fs.groupSpaceIndex.Remove(g.Grantee.GetGroupId().GetOpaqueId(), grantNode.SpaceID); err != nil {
return err

View File

@@ -362,7 +362,7 @@ func (lu *Lookup) CopyMetadataWithSourceLock(ctx context.Context, sourcePath, ta
switch {
case lockedSource == nil:
return errors.New("no lock provided")
case lockedSource.File.Name() != lu.MetadataBackend().LockfilePath(sourcePath):
case lockedSource.Name() != lu.MetadataBackend().LockfilePath(sourcePath):
return errors.New("lockpath does not match filepath")
}

View File

@@ -52,7 +52,7 @@ func registerMigration(name string, migration migration) {
}
func allMigrations() []string {
ms := []string{}
ms := make([]string, 0, len(migrations))
for k := range migrations {
ms = append(ms, k)

View File

@@ -823,10 +823,10 @@ func (fs *Decomposedfs) updateIndexes(ctx context.Context, grantee *provider.Gra
}
// create space grant index
switch {
case grantee.Type == provider.GranteeType_GRANTEE_TYPE_USER:
switch grantee.Type {
case provider.GranteeType_GRANTEE_TYPE_USER:
return fs.linkSpaceByUser(ctx, grantee.GetUserId().GetOpaqueId(), spaceID, target)
case grantee.Type == provider.GranteeType_GRANTEE_TYPE_GROUP:
case provider.GranteeType_GRANTEE_TYPE_GROUP:
return fs.linkSpaceByGroup(ctx, grantee.GetGroupId().GetOpaqueId(), spaceID, target)
default:
return errtypes.BadRequest("invalid grantee type: " + grantee.GetType().String())
@@ -912,14 +912,14 @@ func (fs *Decomposedfs) StorageSpaceFromNode(ctx context.Context, n *node.Node,
}
if n.IsSpaceRoot(ctx) {
// invalidate space grant
switch {
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_USER:
switch g.Grantee.Type {
case provider.GranteeType_GRANTEE_TYPE_USER:
// remove from user index
if err := fs.userSpaceIndex.Remove(g.Grantee.GetUserId().GetOpaqueId(), n.SpaceID); err != nil {
sublog.Error().Err(err).Str("grantee", id).
Msg("failed to delete expired user space index")
}
case g.Grantee.Type == provider.GranteeType_GRANTEE_TYPE_GROUP:
case provider.GranteeType_GRANTEE_TYPE_GROUP:
// remove from group index
if err := fs.groupSpaceIndex.Remove(g.Grantee.GetGroupId().GetOpaqueId(), n.SpaceID); err != nil {
sublog.Error().Err(err).Str("grantee", id).

View File

@@ -1166,8 +1166,8 @@ func (fs *eosfs) ListGrants(ctx context.Context, ref *provider.Reference) ([]*pr
grantList := []*provider.Grant{}
for _, a := range acls {
var grantee *provider.Grantee
switch {
case a.Type == acl.TypeUser:
switch a.Type {
case acl.TypeUser:
// EOS Citrine ACLs are stored with uid for users.
// This needs to be resolved to the user opaque ID.
qualifier, err := fs.getUserIDGateway(ctx, a.Qualifier)
@@ -1178,7 +1178,7 @@ func (fs *eosfs) ListGrants(ctx context.Context, ref *provider.Reference) ([]*pr
Id: &provider.Grantee_UserId{UserId: qualifier},
Type: grants.GetGranteeType(a.Type),
}
case a.Type == acl.TypeLightweight:
case acl.TypeLightweight:
a.Type = acl.TypeUser
grantee = &provider.Grantee{
Id: &provider.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: a.Qualifier}},

View File

@@ -459,9 +459,10 @@ func (fs *localfs) AddGrant(ctx context.Context, ref *provider.Reference, g *pro
return errors.Wrap(err, "localfs: error getting grantee type")
}
var grantee string
if granteeType == acl.TypeUser {
switch granteeType {
case acl.TypeUser:
grantee = fmt.Sprintf("%s:%s:%s@%s", granteeType, g.Grantee.GetUserId().OpaqueId, utils.UserTypeToString(g.Grantee.GetUserId().Type), g.Grantee.GetUserId().Idp)
} else if granteeType == acl.TypeGroup {
case acl.TypeGroup:
grantee = fmt.Sprintf("%s::%s@%s", granteeType, g.Grantee.GetGroupId().OpaqueId, g.Grantee.GetGroupId().Idp)
}
@@ -495,9 +496,10 @@ func (fs *localfs) ListGrants(ctx context.Context, ref *provider.Reference) ([]*
grantSplit := strings.Split(granteeID, ":")
grantee := &provider.Grantee{Type: grants.GetGranteeType(grantSplit[0])}
parts := strings.Split(grantSplit[2], "@")
if grantSplit[0] == acl.TypeUser {
switch grantSplit[0] {
case acl.TypeUser:
grantee.Id = &provider.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: parts[0], Idp: parts[1], Type: utils.UserTypeMap(grantSplit[1])}}
} else if grantSplit[0] == acl.TypeGroup {
case acl.TypeGroup:
grantee.Id = &provider.Grantee_GroupId{GroupId: &grouppb.GroupId{OpaqueId: parts[0], Idp: parts[1]}}
}
permissions := grants.GetGrantPermissionSet(role)
@@ -523,9 +525,10 @@ func (fs *localfs) RemoveGrant(ctx context.Context, ref *provider.Reference, g *
return errors.Wrap(err, "localfs: error getting grantee type")
}
var grantee string
if granteeType == acl.TypeUser {
switch granteeType {
case acl.TypeUser:
grantee = fmt.Sprintf("%s:%s@%s", granteeType, g.Grantee.GetUserId().OpaqueId, g.Grantee.GetUserId().Idp)
} else if granteeType == acl.TypeGroup {
case acl.TypeGroup:
grantee = fmt.Sprintf("%s:%s@%s", granteeType, g.Grantee.GetGroupId().OpaqueId, g.Grantee.GetGroupId().Idp)
}

View File

@@ -39,6 +39,7 @@ import (
"google.golang.org/grpc/metadata"
"github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocdav/net"
"github.com/opencloud-eu/reva/v2/pkg/appctx"
ctxpkg "github.com/opencloud-eu/reva/v2/pkg/ctx"
"github.com/opencloud-eu/reva/v2/pkg/errtypes"
"github.com/opencloud-eu/reva/v2/pkg/rgrpc/todo/pool"
@@ -97,16 +98,19 @@ func (cs3 *CS3) Backend() string {
// Init creates the metadata space
func (cs3 *CS3) Init(ctx context.Context, spaceid string) (err error) {
logger := appctx.GetLogger(ctx)
ctx, span := tracer.Start(ctx, "Init")
defer span.End()
client, err := cs3.spacesClient()
if err != nil {
logger.Err(err).Msg("error getting spaces client")
return err
}
ctx, err = cs3.getAuthContext(ctx)
if err != nil {
logger.Err(err).Msg("error getting auth context")
return err
}
@@ -146,12 +150,14 @@ func (cs3 *CS3) Init(ctx context.Context, spaceid string) (err error) {
})
switch {
case err != nil:
logger.Err(err).Msg("error creating storage space")
return err
case cssr.Status.Code == rpc.Code_CODE_OK:
cs3.SpaceRoot = cssr.StorageSpace.Root
case cssr.Status.Code == rpc.Code_CODE_ALREADY_EXISTS:
return errtypes.AlreadyExists(fmt.Sprintf("user %s does not have access to metadata space %s, but it exists", cs3.serviceUser.Id.OpaqueId, spaceid))
default:
logger.Debug().Str("Status", cssr.Status.Message).Msg("error creating storage space")
return errtypes.NewErrtypeFromStatus(cssr.Status)
}
return nil

View File

@@ -107,7 +107,7 @@ func (f *FS) GetHome(ctx context.Context) (string, error) {
}
}
res0, res1 := f.next.GetHome(ctx)
res0, res1 := f.next.GetHome(ctx) //nolint:staticcheck // we're just exposing the deprecated method here
for _, unhook := range unhooks {
if err := unhook(); err != nil {
@@ -134,7 +134,7 @@ func (f *FS) CreateHome(ctx context.Context) error {
}
}
res0 := f.next.CreateHome(ctx)
res0 := f.next.CreateHome(ctx) //nolint:staticcheck // we're just exposing the deprecated method here
for _, unhook := range unhooks {
if err := unhook(); err != nil {

View File

@@ -33,7 +33,6 @@ import (
"github.com/opencloud-eu/reva/v2/pkg/store/etcd"
"github.com/opencloud-eu/reva/v2/pkg/store/memory"
"go-micro.dev/v4/logger"
"go-micro.dev/v4/store"
microstore "go-micro.dev/v4/store"
)
@@ -162,8 +161,8 @@ func Create(opts ...microstore.Option) microstore.Store {
}
}
func updateNatsStore(opts []store.Option, ttl time.Duration, natsOptions nats.Options) error {
options := store.Options{}
func updateNatsStore(opts []microstore.Option, ttl time.Duration, natsOptions nats.Options) error {
options := microstore.Options{}
for _, o := range opts {
o(&options)
}

View File

@@ -37,6 +37,7 @@ var (
)
// GetServiceUserContext returns an authenticated context of the given service user
//
// Deprecated: Use GetServiceUserContextWithContext()
func GetServiceUserContext(serviceUserID string, gwc gateway.GatewayAPIClient, serviceUserSecret string) (context.Context, error) {
return GetServiceUserContextWithContext(context.Background(), gwc, serviceUserID, serviceUserSecret)

View File

@@ -183,11 +183,11 @@ func (i *Identity) Setup() error {
if sharedconf.MultiTenantEnabled() {
if i.User.Schema.TenantID == "" {
return fmt.Errorf("Invalid configuration: a 'tenantId' user schema attribute must be defined for multi-tenant setups")
return fmt.Errorf("invalid configuration: a 'tenantId' user schema attribute must be defined for multi-tenant setups")
}
} else {
if i.User.Schema.TenantID != "" {
return fmt.Errorf("Invalid configuration: Superfluous 'tenantId' user schema attribute defined for single-tenant setups")
return fmt.Errorf("invalid configuration: superfluous 'tenantId' user schema attribute defined for single-tenant setups")
}
}

View File

@@ -38,6 +38,8 @@ import (
grpc "google.golang.org/grpc"
incomingv1beta1 "github.com/cs3org/go-cs3apis/cs3/ocm/incoming/v1beta1"
invitev1beta1 "github.com/cs3org/go-cs3apis/cs3/ocm/invite/v1beta1"
linkv1beta1 "github.com/cs3org/go-cs3apis/cs3/sharing/link/v1beta1"
@@ -658,6 +660,79 @@ func (_c *GatewayAPIClient_CreateOCMCoreShare_Call) RunAndReturn(run func(contex
return _c
}
// CreateOCMIncomingShare provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) CreateOCMIncomingShare(ctx context.Context, in *incomingv1beta1.CreateOCMIncomingShareRequest, opts ...grpc.CallOption) (*incomingv1beta1.CreateOCMIncomingShareResponse, error) {
var tmpRet mock.Arguments
if len(opts) > 0 {
tmpRet = _m.Called(ctx, in, opts)
} else {
tmpRet = _m.Called(ctx, in)
}
ret := tmpRet
if len(ret) == 0 {
panic("no return value specified for CreateOCMIncomingShare")
}
var r0 *incomingv1beta1.CreateOCMIncomingShareResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *incomingv1beta1.CreateOCMIncomingShareRequest, ...grpc.CallOption) (*incomingv1beta1.CreateOCMIncomingShareResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *incomingv1beta1.CreateOCMIncomingShareRequest, ...grpc.CallOption) *incomingv1beta1.CreateOCMIncomingShareResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*incomingv1beta1.CreateOCMIncomingShareResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *incomingv1beta1.CreateOCMIncomingShareRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GatewayAPIClient_CreateOCMIncomingShare_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateOCMIncomingShare'
type GatewayAPIClient_CreateOCMIncomingShare_Call struct {
*mock.Call
}
// CreateOCMIncomingShare is a helper method to define mock.On call
// - ctx context.Context
// - in *incomingv1beta1.CreateOCMIncomingShareRequest
// - opts ...grpc.CallOption
func (_e *GatewayAPIClient_Expecter) CreateOCMIncomingShare(ctx interface{}, in interface{}, opts ...interface{}) *GatewayAPIClient_CreateOCMIncomingShare_Call {
return &GatewayAPIClient_CreateOCMIncomingShare_Call{Call: _e.mock.On("CreateOCMIncomingShare",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *GatewayAPIClient_CreateOCMIncomingShare_Call) Run(run func(ctx context.Context, in *incomingv1beta1.CreateOCMIncomingShareRequest, opts ...grpc.CallOption)) *GatewayAPIClient_CreateOCMIncomingShare_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*incomingv1beta1.CreateOCMIncomingShareRequest), variadicArgs...)
})
return _c
}
func (_c *GatewayAPIClient_CreateOCMIncomingShare_Call) Return(_a0 *incomingv1beta1.CreateOCMIncomingShareResponse, _a1 error) *GatewayAPIClient_CreateOCMIncomingShare_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *GatewayAPIClient_CreateOCMIncomingShare_Call) RunAndReturn(run func(context.Context, *incomingv1beta1.CreateOCMIncomingShareRequest, ...grpc.CallOption) (*incomingv1beta1.CreateOCMIncomingShareResponse, error)) *GatewayAPIClient_CreateOCMIncomingShare_Call {
_c.Call.Return(run)
return _c
}
// CreateOCMShare provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) CreateOCMShare(ctx context.Context, in *ocmv1beta1.CreateOCMShareRequest, opts ...grpc.CallOption) (*ocmv1beta1.CreateOCMShareResponse, error) {
var tmpRet mock.Arguments
@@ -1315,6 +1390,79 @@ func (_c *GatewayAPIClient_DeleteOCMCoreShare_Call) RunAndReturn(run func(contex
return _c
}
// DeleteOCMIncomingShare provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) DeleteOCMIncomingShare(ctx context.Context, in *incomingv1beta1.DeleteOCMIncomingShareRequest, opts ...grpc.CallOption) (*incomingv1beta1.DeleteOCMIncomingShareResponse, error) {
var tmpRet mock.Arguments
if len(opts) > 0 {
tmpRet = _m.Called(ctx, in, opts)
} else {
tmpRet = _m.Called(ctx, in)
}
ret := tmpRet
if len(ret) == 0 {
panic("no return value specified for DeleteOCMIncomingShare")
}
var r0 *incomingv1beta1.DeleteOCMIncomingShareResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *incomingv1beta1.DeleteOCMIncomingShareRequest, ...grpc.CallOption) (*incomingv1beta1.DeleteOCMIncomingShareResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *incomingv1beta1.DeleteOCMIncomingShareRequest, ...grpc.CallOption) *incomingv1beta1.DeleteOCMIncomingShareResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*incomingv1beta1.DeleteOCMIncomingShareResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *incomingv1beta1.DeleteOCMIncomingShareRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GatewayAPIClient_DeleteOCMIncomingShare_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteOCMIncomingShare'
type GatewayAPIClient_DeleteOCMIncomingShare_Call struct {
*mock.Call
}
// DeleteOCMIncomingShare is a helper method to define mock.On call
// - ctx context.Context
// - in *incomingv1beta1.DeleteOCMIncomingShareRequest
// - opts ...grpc.CallOption
func (_e *GatewayAPIClient_Expecter) DeleteOCMIncomingShare(ctx interface{}, in interface{}, opts ...interface{}) *GatewayAPIClient_DeleteOCMIncomingShare_Call {
return &GatewayAPIClient_DeleteOCMIncomingShare_Call{Call: _e.mock.On("DeleteOCMIncomingShare",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *GatewayAPIClient_DeleteOCMIncomingShare_Call) Run(run func(ctx context.Context, in *incomingv1beta1.DeleteOCMIncomingShareRequest, opts ...grpc.CallOption)) *GatewayAPIClient_DeleteOCMIncomingShare_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*incomingv1beta1.DeleteOCMIncomingShareRequest), variadicArgs...)
})
return _c
}
func (_c *GatewayAPIClient_DeleteOCMIncomingShare_Call) Return(_a0 *incomingv1beta1.DeleteOCMIncomingShareResponse, _a1 error) *GatewayAPIClient_DeleteOCMIncomingShare_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *GatewayAPIClient_DeleteOCMIncomingShare_Call) RunAndReturn(run func(context.Context, *incomingv1beta1.DeleteOCMIncomingShareRequest, ...grpc.CallOption) (*incomingv1beta1.DeleteOCMIncomingShareResponse, error)) *GatewayAPIClient_DeleteOCMIncomingShare_Call {
_c.Call.Return(run)
return _c
}
// DeleteStorageSpace provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) DeleteStorageSpace(ctx context.Context, in *providerv1beta1.DeleteStorageSpaceRequest, opts ...grpc.CallOption) (*providerv1beta1.DeleteStorageSpaceResponse, error) {
var tmpRet mock.Arguments
@@ -4381,6 +4529,79 @@ func (_c *GatewayAPIClient_ListContainerStream_Call) RunAndReturn(run func(conte
return _c
}
// ListExistingOCMShares provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) ListExistingOCMShares(ctx context.Context, in *ocmv1beta1.ListOCMSharesRequest, opts ...grpc.CallOption) (*gatewayv1beta1.ListExistingOCMSharesResponse, error) {
var tmpRet mock.Arguments
if len(opts) > 0 {
tmpRet = _m.Called(ctx, in, opts)
} else {
tmpRet = _m.Called(ctx, in)
}
ret := tmpRet
if len(ret) == 0 {
panic("no return value specified for ListExistingOCMShares")
}
var r0 *gatewayv1beta1.ListExistingOCMSharesResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *ocmv1beta1.ListOCMSharesRequest, ...grpc.CallOption) (*gatewayv1beta1.ListExistingOCMSharesResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *ocmv1beta1.ListOCMSharesRequest, ...grpc.CallOption) *gatewayv1beta1.ListExistingOCMSharesResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*gatewayv1beta1.ListExistingOCMSharesResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *ocmv1beta1.ListOCMSharesRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GatewayAPIClient_ListExistingOCMShares_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListExistingOCMShares'
type GatewayAPIClient_ListExistingOCMShares_Call struct {
*mock.Call
}
// ListExistingOCMShares is a helper method to define mock.On call
// - ctx context.Context
// - in *ocmv1beta1.ListOCMSharesRequest
// - opts ...grpc.CallOption
func (_e *GatewayAPIClient_Expecter) ListExistingOCMShares(ctx interface{}, in interface{}, opts ...interface{}) *GatewayAPIClient_ListExistingOCMShares_Call {
return &GatewayAPIClient_ListExistingOCMShares_Call{Call: _e.mock.On("ListExistingOCMShares",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *GatewayAPIClient_ListExistingOCMShares_Call) Run(run func(ctx context.Context, in *ocmv1beta1.ListOCMSharesRequest, opts ...grpc.CallOption)) *GatewayAPIClient_ListExistingOCMShares_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*ocmv1beta1.ListOCMSharesRequest), variadicArgs...)
})
return _c
}
func (_c *GatewayAPIClient_ListExistingOCMShares_Call) Return(_a0 *gatewayv1beta1.ListExistingOCMSharesResponse, _a1 error) *GatewayAPIClient_ListExistingOCMShares_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *GatewayAPIClient_ListExistingOCMShares_Call) RunAndReturn(run func(context.Context, *ocmv1beta1.ListOCMSharesRequest, ...grpc.CallOption) (*gatewayv1beta1.ListExistingOCMSharesResponse, error)) *GatewayAPIClient_ListExistingOCMShares_Call {
_c.Call.Return(run)
return _c
}
// ListExistingPublicShares provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) ListExistingPublicShares(ctx context.Context, in *linkv1beta1.ListPublicSharesRequest, opts ...grpc.CallOption) (*gatewayv1beta1.ListExistingPublicSharesResponse, error) {
var tmpRet mock.Arguments
@@ -6863,6 +7084,79 @@ func (_c *GatewayAPIClient_UpdateOCMCoreShare_Call) RunAndReturn(run func(contex
return _c
}
// UpdateOCMIncomingShare provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) UpdateOCMIncomingShare(ctx context.Context, in *incomingv1beta1.UpdateOCMIncomingShareRequest, opts ...grpc.CallOption) (*incomingv1beta1.UpdateOCMIncomingShareResponse, error) {
var tmpRet mock.Arguments
if len(opts) > 0 {
tmpRet = _m.Called(ctx, in, opts)
} else {
tmpRet = _m.Called(ctx, in)
}
ret := tmpRet
if len(ret) == 0 {
panic("no return value specified for UpdateOCMIncomingShare")
}
var r0 *incomingv1beta1.UpdateOCMIncomingShareResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *incomingv1beta1.UpdateOCMIncomingShareRequest, ...grpc.CallOption) (*incomingv1beta1.UpdateOCMIncomingShareResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *incomingv1beta1.UpdateOCMIncomingShareRequest, ...grpc.CallOption) *incomingv1beta1.UpdateOCMIncomingShareResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*incomingv1beta1.UpdateOCMIncomingShareResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *incomingv1beta1.UpdateOCMIncomingShareRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GatewayAPIClient_UpdateOCMIncomingShare_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateOCMIncomingShare'
type GatewayAPIClient_UpdateOCMIncomingShare_Call struct {
*mock.Call
}
// UpdateOCMIncomingShare is a helper method to define mock.On call
// - ctx context.Context
// - in *incomingv1beta1.UpdateOCMIncomingShareRequest
// - opts ...grpc.CallOption
func (_e *GatewayAPIClient_Expecter) UpdateOCMIncomingShare(ctx interface{}, in interface{}, opts ...interface{}) *GatewayAPIClient_UpdateOCMIncomingShare_Call {
return &GatewayAPIClient_UpdateOCMIncomingShare_Call{Call: _e.mock.On("UpdateOCMIncomingShare",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *GatewayAPIClient_UpdateOCMIncomingShare_Call) Run(run func(ctx context.Context, in *incomingv1beta1.UpdateOCMIncomingShareRequest, opts ...grpc.CallOption)) *GatewayAPIClient_UpdateOCMIncomingShare_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*incomingv1beta1.UpdateOCMIncomingShareRequest), variadicArgs...)
})
return _c
}
func (_c *GatewayAPIClient_UpdateOCMIncomingShare_Call) Return(_a0 *incomingv1beta1.UpdateOCMIncomingShareResponse, _a1 error) *GatewayAPIClient_UpdateOCMIncomingShare_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *GatewayAPIClient_UpdateOCMIncomingShare_Call) RunAndReturn(run func(context.Context, *incomingv1beta1.UpdateOCMIncomingShareRequest, ...grpc.CallOption) (*incomingv1beta1.UpdateOCMIncomingShareResponse, error)) *GatewayAPIClient_UpdateOCMIncomingShare_Call {
_c.Call.Return(run)
return _c
}
// UpdateOCMShare provides a mock function with given fields: ctx, in, opts
func (_m *GatewayAPIClient) UpdateOCMShare(ctx context.Context, in *ocmv1beta1.UpdateOCMShareRequest, opts ...grpc.CallOption) (*ocmv1beta1.UpdateOCMShareResponse, error) {
var tmpRet mock.Arguments

View File

@@ -26,7 +26,7 @@ import (
var (
// MinClusterVersion is the min cluster version this etcd binary is compatible with.
MinClusterVersion = "3.0.0"
Version = "3.6.7"
Version = "3.6.8"
APIVersion = "unknown"
// Git SHA Value will be set during build

View File

@@ -208,10 +208,12 @@ func BaseAttrs(id int64, target string) []attribute.KeyValue {
func (i *Instrumentation) ExportSpans(ctx context.Context, nSpans int) ExportOp {
start := time.Now()
addOpt := get[metric.AddOption](addOptPool)
defer put(addOptPool, addOpt)
*addOpt = append(*addOpt, i.addOpt)
i.inflightSpans.Add(ctx, int64(nSpans), *addOpt...)
if i.inflightSpans.Enabled(ctx) {
addOpt := get[metric.AddOption](addOptPool)
defer put(addOptPool, addOpt)
*addOpt = append(*addOpt, i.addOpt)
i.inflightSpans.Add(ctx, int64(nSpans), *addOpt...)
}
return ExportOp{
ctx: ctx,
@@ -244,14 +246,18 @@ func (e ExportOp) End(err error, code codes.Code) {
defer put(addOptPool, addOpt)
*addOpt = append(*addOpt, e.inst.addOpt)
e.inst.inflightSpans.Add(e.ctx, -e.nSpans, *addOpt...)
if e.inst.inflightSpans.Enabled(e.ctx) {
e.inst.inflightSpans.Add(e.ctx, -e.nSpans, *addOpt...)
}
success := successful(e.nSpans, err)
// Record successfully exported spans, even if the value is 0 which are
// meaningful to distribution aggregations.
e.inst.exportedSpans.Add(e.ctx, success, *addOpt...)
if e.inst.exportedSpans.Enabled(e.ctx) {
e.inst.exportedSpans.Add(e.ctx, success, *addOpt...)
}
if err != nil {
if err != nil && e.inst.exportedSpans.Enabled(e.ctx) {
attrs := get[attribute.KeyValue](measureAttrsPool)
defer put(measureAttrsPool, attrs)
*attrs = append(*attrs, e.inst.attrs...)
@@ -266,12 +272,14 @@ func (e ExportOp) End(err error, code codes.Code) {
e.inst.exportedSpans.Add(e.ctx, e.nSpans-success, *addOpt...)
}
recOpt := get[metric.RecordOption](recordOptPool)
defer put(recordOptPool, recOpt)
*recOpt = append(*recOpt, e.inst.recordOption(err, code))
if e.inst.opDuration.Enabled(e.ctx) {
recOpt := get[metric.RecordOption](recordOptPool)
defer put(recordOptPool, recOpt)
*recOpt = append(*recOpt, e.inst.recordOption(err, code))
d := time.Since(e.start).Seconds()
e.inst.opDuration.Record(e.ctx, d, *recOpt...)
d := time.Since(e.start).Seconds()
e.inst.opDuration.Record(e.ctx, d, *recOpt...)
}
}
// recordOption returns a RecordOption with attributes representing the

View File

@@ -5,4 +5,4 @@ package internal // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/ot
// Version is the current release version of the OpenTelemetry OTLP gRPC trace
// exporter in use.
const Version = "1.40.0"
const Version = "1.41.0"

View File

@@ -5,5 +5,5 @@ package otlptrace // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace"
// Version is the current release version of the OpenTelemetry OTLP trace exporter in use.
func Version() string {
return "1.40.0"
return "1.41.0"
}

View File

@@ -8,7 +8,7 @@ package resource // import "go.opentelemetry.io/otel/sdk/resource"
import "os"
func readFile(filename string) (string, error) {
b, err := os.ReadFile(filename)
b, err := os.ReadFile(filename) // nolint:gosec // false positive
if err != nil {
return "", err
}

View File

@@ -6,5 +6,5 @@ package sdk // import "go.opentelemetry.io/otel/sdk"
// Version is the current release version of the OpenTelemetry SDK in use.
func Version() string {
return "1.40.0"
return "1.41.0"
}

23
vendor/modules.txt vendored
View File

@@ -4,7 +4,7 @@ contrib.go.opencensus.io/exporter/prometheus
# dario.cat/mergo v1.0.2
## explicit; go 1.13
dario.cat/mergo
# filippo.io/edwards25519 v1.1.0
# filippo.io/edwards25519 v1.1.1
## explicit; go 1.20
filippo.io/edwards25519
filippo.io/edwards25519/field
@@ -265,7 +265,7 @@ github.com/clipperhouse/stringish
## explicit; go 1.18
github.com/clipperhouse/uax29/v2/graphemes
github.com/clipperhouse/uax29/v2/internal/iterators
# github.com/cloudflare/circl v1.6.1
# github.com/cloudflare/circl v1.6.3
## explicit; go 1.22.0
github.com/cloudflare/circl/dh/x25519
github.com/cloudflare/circl/dh/x448
@@ -319,7 +319,7 @@ github.com/crewjam/saml
github.com/crewjam/saml/logger
github.com/crewjam/saml/samlsp
github.com/crewjam/saml/xmlenc
# github.com/cs3org/go-cs3apis v0.0.0-20250908152307-4ca807afe54e
# github.com/cs3org/go-cs3apis v0.0.0-20260130145416-2dc593dc27e7
## explicit; go 1.21
github.com/cs3org/go-cs3apis/cs3/app/provider/v1beta1
github.com/cs3org/go-cs3apis/cs3/app/registry/v1beta1
@@ -330,6 +330,7 @@ github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1
github.com/cs3org/go-cs3apis/cs3/identity/group/v1beta1
github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1
github.com/cs3org/go-cs3apis/cs3/ocm/core/v1beta1
github.com/cs3org/go-cs3apis/cs3/ocm/incoming/v1beta1
github.com/cs3org/go-cs3apis/cs3/ocm/invite/v1beta1
github.com/cs3org/go-cs3apis/cs3/ocm/provider/v1beta1
github.com/cs3org/go-cs3apis/cs3/permissions/v1beta1
@@ -1061,7 +1062,7 @@ github.com/mattn/go-isatty
# github.com/mattn/go-runewidth v0.0.19
## explicit; go 1.20
github.com/mattn/go-runewidth
# github.com/mattn/go-sqlite3 v1.14.33
# github.com/mattn/go-sqlite3 v1.14.34
## explicit; go 1.19
github.com/mattn/go-sqlite3
# github.com/maxymania/go-system v0.0.0-20170110133659-647cc364bf0b
@@ -1383,7 +1384,7 @@ github.com/opencloud-eu/icap-client
# github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260204102724-10bcda1b3068
## explicit; go 1.18
github.com/opencloud-eu/libre-graph-api-go
# github.com/opencloud-eu/reva/v2 v2.42.4
# github.com/opencloud-eu/reva/v2 v2.42.5-0.20260306135406-7dc643429c82
## explicit; go 1.24.1
github.com/opencloud-eu/reva/v2/cmd/revad/internal/grace
github.com/opencloud-eu/reva/v2/cmd/revad/runtime
@@ -2292,7 +2293,7 @@ go.etcd.io/bbolt
go.etcd.io/bbolt/errors
go.etcd.io/bbolt/internal/common
go.etcd.io/bbolt/internal/freelist
# go.etcd.io/etcd/api/v3 v3.6.7
# go.etcd.io/etcd/api/v3 v3.6.8
## explicit; go 1.24.0
go.etcd.io/etcd/api/v3/authpb
go.etcd.io/etcd/api/v3/etcdserverpb
@@ -2301,7 +2302,7 @@ go.etcd.io/etcd/api/v3/mvccpb
go.etcd.io/etcd/api/v3/v3rpc/rpctypes
go.etcd.io/etcd/api/v3/version
go.etcd.io/etcd/api/v3/versionpb
# go.etcd.io/etcd/client/pkg/v3 v3.6.7
# go.etcd.io/etcd/client/pkg/v3 v3.6.8
## explicit; go 1.24.0
go.etcd.io/etcd/client/pkg/v3/fileutil
go.etcd.io/etcd/client/pkg/v3/logutil
@@ -2310,7 +2311,7 @@ go.etcd.io/etcd/client/pkg/v3/tlsutil
go.etcd.io/etcd/client/pkg/v3/transport
go.etcd.io/etcd/client/pkg/v3/types
go.etcd.io/etcd/client/pkg/v3/verify
# go.etcd.io/etcd/client/v3 v3.6.7
# go.etcd.io/etcd/client/v3 v3.6.8
## explicit; go 1.24.0
go.etcd.io/etcd/client/v3
go.etcd.io/etcd/client/v3/credentials
@@ -2373,11 +2374,11 @@ go.opentelemetry.io/otel/semconv/v1.39.0
go.opentelemetry.io/otel/semconv/v1.39.0/httpconv
go.opentelemetry.io/otel/semconv/v1.39.0/otelconv
go.opentelemetry.io/otel/semconv/v1.39.0/rpcconv
# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0
# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0
## explicit; go 1.24.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform
# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0
# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0
## explicit; go 1.24.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal
@@ -2399,7 +2400,7 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace/internal/x
go.opentelemetry.io/otel/metric
go.opentelemetry.io/otel/metric/embedded
go.opentelemetry.io/otel/metric/noop
# go.opentelemetry.io/otel/sdk v1.40.0
# go.opentelemetry.io/otel/sdk v1.41.0
## explicit; go 1.24.0
go.opentelemetry.io/otel/sdk
go.opentelemetry.io/otel/sdk/instrumentation