diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 7c4abaf043..34b11b69d7 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -452,9 +452,9 @@ "Rev": "8d75e11374a1928608c906fe745b538483e7aeb2" }, { - "ImportPath": "github.com/container-storage-interface/spec/lib/go/csi", + "ImportPath": "github.com/container-storage-interface/spec/lib/go/csi/v0", "Comment": "v0.1.0-5-g7ab01a9", - "Rev": "91c189774c16b0661255943c09ea9d97d5a423e7" + "Rev": "31c167062b1a62a9810e4fd94d7c986113b490b8" }, { "ImportPath": "github.com/containerd/console", diff --git a/Godeps/LICENSES b/Godeps/LICENSES index ef8f4946d9..f322ef1cfd 100644 --- a/Godeps/LICENSES +++ b/Godeps/LICENSES @@ -12786,7 +12786,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/container-storage-interface/spec/lib/go/csi licensed under: = += vendor/github.com/container-storage-interface/spec/lib/go/csi/v0 licensed under: = Apache License Version 2.0, January 2004 diff --git a/pkg/volume/csi/BUILD b/pkg/volume/csi/BUILD index 247ce5dd1b..8cdba0adbd 100644 --- a/pkg/volume/csi/BUILD +++ b/pkg/volume/csi/BUILD @@ -16,7 +16,7 @@ go_library( "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", "//pkg/volume/util:go_default_library", - "//vendor/github.com/container-storage-interface/spec/lib/go/csi:go_default_library", + "//vendor/github.com/container-storage-interface/spec/lib/go/csi/v0:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", @@ -43,7 +43,6 @@ go_test( "//pkg/volume:go_default_library", "//pkg/volume/csi/fake:go_default_library", "//pkg/volume/testing:go_default_library", - "//vendor/github.com/container-storage-interface/spec/lib/go/csi:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/volume/csi/csi_client.go b/pkg/volume/csi/csi_client.go index ec561e85e2..5dfc83482c 100644 --- a/pkg/volume/csi/csi_client.go +++ b/pkg/volume/csi/csi_client.go @@ -17,13 +17,11 @@ limitations under the License. package csi import ( - "bytes" "errors" - "fmt" "net" "time" - csipb "github.com/container-storage-interface/spec/lib/go/csi" + csipb "github.com/container-storage-interface/spec/lib/go/csi/v0" "github.com/golang/glog" grpctx "golang.org/x/net/context" "google.golang.org/grpc" @@ -31,7 +29,6 @@ import ( ) type csiClient interface { - AssertSupportedVersion(ctx grpctx.Context, ver *csipb.Version) error NodePublishVolume( ctx grpctx.Context, volumeid string, @@ -40,14 +37,13 @@ type csiClient interface { accessMode api.PersistentVolumeAccessMode, volumeInfo map[string]string, volumeAttribs map[string]string, - nodePublishCredentials map[string]string, + nodePublishSecrets map[string]string, fsType string, ) error NodeUnpublishVolume( ctx grpctx.Context, volID string, targetPath string, - nodeUnpublishCredentials map[string]string, ) error } @@ -94,63 +90,6 @@ func (c *csiDriverClient) assertConnection() error { return nil } -// AssertSupportedVersion ensures driver supports specified spec version. -// If version is not supported, the assertion fails with an error. -// This test should be done early during the storage operation flow to avoid -// unnecessary calls later. -// `ver` argument holds the expected supported version. -func (c *csiDriverClient) AssertSupportedVersion(ctx grpctx.Context, ver *csipb.Version) error { - if c.versionAsserted { - if !c.versionSupported { - return fmt.Errorf("version %s not supported", verToStr(ver)) - } - return nil - } - - if err := c.assertConnection(); err != nil { - c.versionAsserted = false - return err - } - - glog.V(4).Info(log("asserting version supported by driver")) - rsp, err := c.idClient.GetSupportedVersions(ctx, &csipb.GetSupportedVersionsRequest{}) - if err != nil { - c.versionAsserted = false - return err - } - - supported := false - vers := rsp.GetSupportedVersions() - glog.V(4).Info(log("driver reports %d versions supported: %s", len(vers), versToStr(vers))) - - // If our supported version is still at 0.X.X, then check - // also the minor number. If our supported version is >= 1.X.X - // then check only the major number. - for _, v := range vers { - if ver.GetMajor() == int32(0) && - (ver.GetMajor() == v.GetMajor() && ver.GetMinor() == v.GetMinor()) { - supported = true - break - } else if ver.GetMajor() != int32(0) && ver.GetMajor() == v.GetMajor() { - supported = true - break - } - } - - c.versionAsserted = true - c.versionSupported = supported - - if !supported { - return fmt.Errorf( - "CSI Driver does not support version %s. Instead it supports versions %s", - verToStr(ver), - versToStr(vers)) - } - - glog.V(4).Info(log("version %s supported", verToStr(ver))) - return nil -} - func (c *csiDriverClient) NodePublishVolume( ctx grpctx.Context, volID string, @@ -159,7 +98,7 @@ func (c *csiDriverClient) NodePublishVolume( accessMode api.PersistentVolumeAccessMode, volumeInfo map[string]string, volumeAttribs map[string]string, - nodePublishCredentials map[string]string, + nodePublishSecrets map[string]string, fsType string, ) error { glog.V(4).Info(log("calling NodePublishVolume rpc [volid=%s,target_path=%s]", volID, targetPath)) @@ -175,13 +114,12 @@ func (c *csiDriverClient) NodePublishVolume( } req := &csipb.NodePublishVolumeRequest{ - Version: csiVersion, - VolumeId: volID, - TargetPath: targetPath, - Readonly: readOnly, - PublishInfo: volumeInfo, - VolumeAttributes: volumeAttribs, - NodePublishCredentials: nodePublishCredentials, + VolumeId: volID, + TargetPath: targetPath, + Readonly: readOnly, + PublishInfo: volumeInfo, + VolumeAttributes: volumeAttribs, + NodePublishSecrets: nodePublishSecrets, VolumeCapability: &csipb.VolumeCapability{ AccessMode: &csipb.VolumeCapability_AccessMode{ Mode: asCSIAccessMode(accessMode), @@ -198,7 +136,7 @@ func (c *csiDriverClient) NodePublishVolume( return err } -func (c *csiDriverClient) NodeUnpublishVolume(ctx grpctx.Context, volID string, targetPath string, nodeUnpublishCredentials map[string]string) error { +func (c *csiDriverClient) NodeUnpublishVolume(ctx grpctx.Context, volID string, targetPath string) error { glog.V(4).Info(log("calling NodeUnpublishVolume rpc: [volid=%s, target_path=%s", volID, targetPath)) if volID == "" { return errors.New("missing volume id") @@ -212,10 +150,8 @@ func (c *csiDriverClient) NodeUnpublishVolume(ctx grpctx.Context, volID string, } req := &csipb.NodeUnpublishVolumeRequest{ - Version: csiVersion, - VolumeId: volID, - TargetPath: targetPath, - NodeUnpublishCredentials: nodeUnpublishCredentials, + VolumeId: volID, + TargetPath: targetPath, } _, err := c.nodeClient.NodeUnpublishVolume(ctx, req) @@ -233,22 +169,3 @@ func asCSIAccessMode(am api.PersistentVolumeAccessMode) csipb.VolumeCapability_A } return csipb.VolumeCapability_AccessMode_UNKNOWN } - -func verToStr(ver *csipb.Version) string { - if ver == nil { - return "" - } - return fmt.Sprintf("%d.%d.%d", ver.GetMajor(), ver.GetMinor(), ver.GetPatch()) -} - -func versToStr(vers []*csipb.Version) string { - if vers == nil { - return "" - } - str := bytes.NewBufferString("[") - for _, v := range vers { - str.WriteString(fmt.Sprintf("{%s};", verToStr(v))) - } - str.WriteString("]") - return str.String() -} diff --git a/pkg/volume/csi/csi_client_test.go b/pkg/volume/csi/csi_client_test.go index c8132e4f66..4a53ebc529 100644 --- a/pkg/volume/csi/csi_client_test.go +++ b/pkg/volume/csi/csi_client_test.go @@ -20,7 +20,6 @@ import ( "errors" "testing" - csipb "github.com/container-storage-interface/spec/lib/go/csi" grpctx "golang.org/x/net/context" "google.golang.org/grpc" api "k8s.io/api/core/v1" @@ -39,35 +38,6 @@ func setupClient(t *testing.T) *csiDriverClient { return client } -func TestClientAssertSupportedVersion(t *testing.T) { - testCases := []struct { - testName string - ver *csipb.Version - mustFail bool - err error - }{ - {testName: "supported version", ver: &csipb.Version{Major: 0, Minor: 0, Patch: 0}}, - {testName: "supported version", ver: &csipb.Version{Major: 0, Minor: 1, Patch: 0}}, - {testName: "supported version", ver: &csipb.Version{Major: 0, Minor: 1, Patch: 10}}, - {testName: "supported version", ver: &csipb.Version{Major: 0, Minor: 2, Patch: 0}}, - {testName: "supported version", ver: &csipb.Version{Major: 1, Minor: 1, Patch: 0}}, - {testName: "supported version", ver: &csipb.Version{Major: 1, Minor: 0, Patch: 10}}, - {testName: "unsupported version", ver: &csipb.Version{Major: 10, Minor: 0, Patch: 0}, mustFail: true}, - {testName: "unsupported version", ver: &csipb.Version{Major: 0, Minor: 10, Patch: 0}, mustFail: true}, - {testName: "grpc error", ver: &csipb.Version{Major: 0, Minor: 1, Patch: 0}, mustFail: true, err: errors.New("grpc error")}, - } - - for _, tc := range testCases { - t.Logf("test case: %s", tc.testName) - client := setupClient(t) - client.idClient.(*fake.IdentityClient).SetNextError(tc.err) - err := client.AssertSupportedVersion(grpctx.Background(), tc.ver) - if tc.mustFail && err == nil { - t.Error("test must fail, but err = nil") - } - } -} - func TestClientNodePublishVolume(t *testing.T) { testCases := []struct { name string @@ -126,8 +96,7 @@ func TestClientNodeUnpublishVolume(t *testing.T) { for _, tc := range testCases { t.Logf("test case: %s", tc.name) client.nodeClient.(*fake.NodeClient).SetNextError(tc.err) - nodeUnpublishCredentials := map[string]string{} - err := client.NodeUnpublishVolume(grpctx.Background(), tc.volID, tc.targetPath, nodeUnpublishCredentials) + err := client.NodeUnpublishVolume(grpctx.Background(), tc.volID, tc.targetPath) if tc.mustFail && err == nil { t.Error("test must fail, but err is nil") } diff --git a/pkg/volume/csi/csi_mounter.go b/pkg/volume/csi/csi_mounter.go index 56ad824fd8..576ef09e78 100644 --- a/pkg/volume/csi/csi_mounter.go +++ b/pkg/volume/csi/csi_mounter.go @@ -121,12 +121,6 @@ func (c *csiMountMgr) SetUpAt(dir string, fsGroup *int64) error { nodeName := string(c.plugin.host.GetNodeName()) attachID := getAttachmentName(csiSource.VolumeHandle, csiSource.Driver, nodeName) - // ensure version is supported - if err := csi.AssertSupportedVersion(ctx, csiVersion); err != nil { - glog.Error(log("mounter.SetUpAt failed to assert version: %v", err)) - return err - } - // search for attachment by VolumeAttachment.Spec.Source.PersistentVolumeName if c.volumeInfo == nil { attachment, err := c.k8s.StorageV1beta1().VolumeAttachments().Get(attachID, meta.GetOptions{}) @@ -179,9 +173,9 @@ func (c *csiMountMgr) SetUpAt(dir string, fsGroup *int64) error { if len(fsType) == 0 { fsType = defaultFSType } - nodePublishCredentials := map[string]string{} + nodePublishSecrets := map[string]string{} if csiSource.NodePublishSecretRef != nil { - nodePublishCredentials = getCredentialsFromSecret(c.k8s, csiSource.NodePublishSecretRef) + nodePublishSecrets = getCredentialsFromSecret(c.k8s, csiSource.NodePublishSecretRef) } err = csi.NodePublishVolume( ctx, @@ -191,7 +185,7 @@ func (c *csiMountMgr) SetUpAt(dir string, fsGroup *int64) error { accessMode, c.volumeInfo, attribs, - nodePublishCredentials, + nodePublishSecrets, fsType, ) @@ -239,7 +233,6 @@ func (c *csiMountMgr) TearDownAt(dir string) error { return nil } - csiSource, err := getCSISourceFromSpec(c.spec) if err != nil { glog.Error(log("mounter.TearDownAt failed to get CSI persistent source: %v", err)) return err @@ -268,17 +261,7 @@ func (c *csiMountMgr) TearDownAt(dir string) error { csi := c.csiClient - // TODO make all assertion calls private within the client itself - if err := csi.AssertSupportedVersion(ctx, csiVersion); err != nil { - glog.Errorf(log("mounter.TearDownAt failed to assert version: %v", err)) - return err - } - - nodeUnpublishCredentials := map[string]string{} - if csiSource.NodePublishSecretRef != nil { - nodeUnpublishCredentials = getCredentialsFromSecret(c.k8s, csiSource.NodePublishSecretRef) - } - if err := csi.NodeUnpublishVolume(ctx, volID, dir, nodeUnpublishCredentials); err != nil { + if err := csi.NodeUnpublishVolume(ctx, volID, dir); err != nil { glog.Errorf(log("mounter.TearDownAt failed: %v", err)) return err } diff --git a/pkg/volume/csi/csi_plugin.go b/pkg/volume/csi/csi_plugin.go index 0b9b25241e..14dd8a9b36 100644 --- a/pkg/volume/csi/csi_plugin.go +++ b/pkg/volume/csi/csi_plugin.go @@ -21,7 +21,6 @@ import ( "fmt" "time" - csipb "github.com/container-storage-interface/spec/lib/go/csi" "github.com/golang/glog" api "k8s.io/api/core/v1" meta "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -43,11 +42,6 @@ const ( volDataFileName = "vol_data.json" ) -var ( - // csiVersion supported csi version - csiVersion = &csipb.Version{Major: 0, Minor: 2, Patch: 0} -) - type csiPlugin struct { host volume.VolumeHost } diff --git a/pkg/volume/csi/fake/BUILD b/pkg/volume/csi/fake/BUILD index 49a9c80ccc..1f715f0c1d 100644 --- a/pkg/volume/csi/fake/BUILD +++ b/pkg/volume/csi/fake/BUILD @@ -6,7 +6,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/volume/csi/fake", visibility = ["//visibility:public"], deps = [ - "//vendor/github.com/container-storage-interface/spec/lib/go/csi:go_default_library", + "//vendor/github.com/container-storage-interface/spec/lib/go/csi/v0:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", ], diff --git a/pkg/volume/csi/fake/fake_client.go b/pkg/volume/csi/fake/fake_client.go index 59d961e949..9fe28926e0 100644 --- a/pkg/volume/csi/fake/fake_client.go +++ b/pkg/volume/csi/fake/fake_client.go @@ -23,7 +23,7 @@ import ( "google.golang.org/grpc" - csipb "github.com/container-storage-interface/spec/lib/go/csi" + csipb "github.com/container-storage-interface/spec/lib/go/csi/v0" grpctx "golang.org/x/net/context" ) @@ -42,26 +42,6 @@ func (f *IdentityClient) SetNextError(err error) { f.nextErr = err } -// GetSupportedVersions returns supported version -func (f *IdentityClient) GetSupportedVersions(ctx grpctx.Context, req *csipb.GetSupportedVersionsRequest, opts ...grpc.CallOption) (*csipb.GetSupportedVersionsResponse, error) { - // short circuit with an error - if f.nextErr != nil { - return nil, f.nextErr - } - - rsp := &csipb.GetSupportedVersionsResponse{ - SupportedVersions: []*csipb.Version{ - {Major: 0, Minor: 0, Patch: 1}, - {Major: 0, Minor: 1, Patch: 0}, - {Major: 0, Minor: 2, Patch: 0}, - {Major: 1, Minor: 0, Patch: 0}, - {Major: 1, Minor: 0, Patch: 1}, - {Major: 1, Minor: 1, Patch: 1}, - }, - } - return rsp, nil -} - // GetPluginInfo returns plugin info func (f *IdentityClient) GetPluginInfo(ctx context.Context, in *csipb.GetPluginInfoRequest, opts ...grpc.CallOption) (*csipb.GetPluginInfoResponse, error) { return nil, nil diff --git a/vendor/github.com/container-storage-interface/spec/lib/go/csi/BUILD b/vendor/github.com/container-storage-interface/spec/lib/go/csi/BUILD index c9708f927b..a9bc214479 100644 --- a/vendor/github.com/container-storage-interface/spec/lib/go/csi/BUILD +++ b/vendor/github.com/container-storage-interface/spec/lib/go/csi/BUILD @@ -1,17 +1,3 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["csi.pb.go"], - importpath = "github.com/container-storage-interface/spec/lib/go/csi", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/golang/protobuf/proto:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/google.golang.org/grpc:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), @@ -21,7 +7,10 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//vendor/github.com/container-storage-interface/spec/lib/go/csi/v0:all-srcs", + ], tags = ["automanaged"], visibility = ["//visibility:public"], ) diff --git a/vendor/github.com/container-storage-interface/spec/lib/go/csi/v0/BUILD b/vendor/github.com/container-storage-interface/spec/lib/go/csi/v0/BUILD new file mode 100644 index 0000000000..a16a228e8c --- /dev/null +++ b/vendor/github.com/container-storage-interface/spec/lib/go/csi/v0/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["csi.pb.go"], + importpath = "github.com/container-storage-interface/spec/lib/go/csi/v0", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go b/vendor/github.com/container-storage-interface/spec/lib/go/csi/v0/csi.pb.go similarity index 66% rename from vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go rename to vendor/github.com/container-storage-interface/spec/lib/go/csi/v0/csi.pb.go index 997102111a..969362ff47 100644 --- a/vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go +++ b/vendor/github.com/container-storage-interface/spec/lib/go/csi/v0/csi.pb.go @@ -8,9 +8,6 @@ It is generated from these files: csi.proto It has these top-level messages: - GetSupportedVersionsRequest - GetSupportedVersionsResponse - Version GetPluginInfoRequest GetPluginInfoResponse GetPluginCapabilitiesRequest @@ -102,7 +99,7 @@ func (x PluginCapability_Service_Type) String() string { return proto.EnumName(PluginCapability_Service_Type_name, int32(x)) } func (PluginCapability_Service_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{7, 0, 0} + return fileDescriptor0, []int{4, 0, 0} } type VolumeCapability_AccessMode_Mode int32 @@ -146,7 +143,7 @@ func (x VolumeCapability_AccessMode_Mode) String() string { return proto.EnumName(VolumeCapability_AccessMode_Mode_name, int32(x)) } func (VolumeCapability_AccessMode_Mode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{12, 2, 0} + return fileDescriptor0, []int{9, 2, 0} } type ControllerServiceCapability_RPC_Type int32 @@ -178,7 +175,7 @@ func (x ControllerServiceCapability_RPC_Type) String() string { return proto.EnumName(ControllerServiceCapability_RPC_Type_name, int32(x)) } func (ControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{29, 0, 0} + return fileDescriptor0, []int{26, 0, 0} } type NodeServiceCapability_RPC_Type int32 @@ -201,92 +198,16 @@ func (x NodeServiceCapability_RPC_Type) String() string { return proto.EnumName(NodeServiceCapability_RPC_Type_name, int32(x)) } func (NodeServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{42, 0, 0} + return fileDescriptor0, []int{39, 0, 0} } -// ////// -// ////// -type GetSupportedVersionsRequest struct { -} - -func (m *GetSupportedVersionsRequest) Reset() { *m = GetSupportedVersionsRequest{} } -func (m *GetSupportedVersionsRequest) String() string { return proto.CompactTextString(m) } -func (*GetSupportedVersionsRequest) ProtoMessage() {} -func (*GetSupportedVersionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } - -type GetSupportedVersionsResponse struct { - // All the CSI versions that the Plugin supports. This field is - // REQUIRED. - SupportedVersions []*Version `protobuf:"bytes,1,rep,name=supported_versions,json=supportedVersions" json:"supported_versions,omitempty"` -} - -func (m *GetSupportedVersionsResponse) Reset() { *m = GetSupportedVersionsResponse{} } -func (m *GetSupportedVersionsResponse) String() string { return proto.CompactTextString(m) } -func (*GetSupportedVersionsResponse) ProtoMessage() {} -func (*GetSupportedVersionsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } - -func (m *GetSupportedVersionsResponse) GetSupportedVersions() []*Version { - if m != nil { - return m.SupportedVersions - } - return nil -} - -// Specifies a version in Semantic Version 2.0 format. -// (http://semver.org/spec/v2.0.0.html) -type Version struct { - // The value of this field MUST NOT be negative. - Major int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"` - // The value of this field MUST NOT be negative. - Minor int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"` - // The value of this field MUST NOT be negative. - Patch int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"` -} - -func (m *Version) Reset() { *m = Version{} } -func (m *Version) String() string { return proto.CompactTextString(m) } -func (*Version) ProtoMessage() {} -func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } - -func (m *Version) GetMajor() int32 { - if m != nil { - return m.Major - } - return 0 -} - -func (m *Version) GetMinor() int32 { - if m != nil { - return m.Minor - } - return 0 -} - -func (m *Version) GetPatch() int32 { - if m != nil { - return m.Patch - } - return 0 -} - -// ////// -// ////// type GetPluginInfoRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` } func (m *GetPluginInfoRequest) Reset() { *m = GetPluginInfoRequest{} } func (m *GetPluginInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetPluginInfoRequest) ProtoMessage() {} -func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } - -func (m *GetPluginInfoRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type GetPluginInfoResponse struct { // The name MUST follow reverse domain name notation format @@ -306,7 +227,7 @@ type GetPluginInfoResponse struct { func (m *GetPluginInfoResponse) Reset() { *m = GetPluginInfoResponse{} } func (m *GetPluginInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetPluginInfoResponse) ProtoMessage() {} -func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } func (m *GetPluginInfoResponse) GetName() string { if m != nil { @@ -329,24 +250,13 @@ func (m *GetPluginInfoResponse) GetManifest() map[string]string { return nil } -// ////// -// ////// type GetPluginCapabilitiesRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` } func (m *GetPluginCapabilitiesRequest) Reset() { *m = GetPluginCapabilitiesRequest{} } func (m *GetPluginCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*GetPluginCapabilitiesRequest) ProtoMessage() {} -func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } - -func (m *GetPluginCapabilitiesRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } type GetPluginCapabilitiesResponse struct { // All the capabilities that the controller service supports. This @@ -357,7 +267,7 @@ type GetPluginCapabilitiesResponse struct { func (m *GetPluginCapabilitiesResponse) Reset() { *m = GetPluginCapabilitiesResponse{} } func (m *GetPluginCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*GetPluginCapabilitiesResponse) ProtoMessage() {} -func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability { if m != nil { @@ -376,7 +286,7 @@ type PluginCapability struct { func (m *PluginCapability) Reset() { *m = PluginCapability{} } func (m *PluginCapability) String() string { return proto.CompactTextString(m) } func (*PluginCapability) ProtoMessage() {} -func (*PluginCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +func (*PluginCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } type isPluginCapability_Type interface { isPluginCapability_Type() @@ -458,13 +368,13 @@ func _PluginCapability_OneofSizer(msg proto.Message) (n int) { } type PluginCapability_Service struct { - Type PluginCapability_Service_Type `protobuf:"varint,1,opt,name=type,enum=csi.PluginCapability_Service_Type" json:"type,omitempty"` + Type PluginCapability_Service_Type `protobuf:"varint,1,opt,name=type,enum=csi.v0.PluginCapability_Service_Type" json:"type,omitempty"` } func (m *PluginCapability_Service) Reset() { *m = PluginCapability_Service{} } func (m *PluginCapability_Service) String() string { return proto.CompactTextString(m) } func (*PluginCapability_Service) ProtoMessage() {} -func (*PluginCapability_Service) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 0} } +func (*PluginCapability_Service) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} } func (m *PluginCapability_Service) GetType() PluginCapability_Service_Type { if m != nil { @@ -473,24 +383,13 @@ func (m *PluginCapability_Service) GetType() PluginCapability_Service_Type { return PluginCapability_Service_UNKNOWN } -// ////// -// ////// type ProbeRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` } func (m *ProbeRequest) Reset() { *m = ProbeRequest{} } func (m *ProbeRequest) String() string { return proto.CompactTextString(m) } func (*ProbeRequest) ProtoMessage() {} -func (*ProbeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } - -func (m *ProbeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*ProbeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } type ProbeResponse struct { } @@ -498,13 +397,9 @@ type ProbeResponse struct { func (m *ProbeResponse) Reset() { *m = ProbeResponse{} } func (m *ProbeResponse) String() string { return proto.CompactTextString(m) } func (*ProbeResponse) ProtoMessage() {} -func (*ProbeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (*ProbeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } -// ////// -// ////// type CreateVolumeRequest struct { - // The API version assumed by the CO. This field is REQUIRED. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The suggested name for the storage space. This field is REQUIRED. // It serves two purposes: // 1) Idempotency - This name is generated by the CO to achieve @@ -520,11 +415,11 @@ type CreateVolumeRequest struct { // an identifier by which to refer to the newly provisioned // storage. If a storage system supports this, it can optionally // use this name as the identifier for the new volume. - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` // This field is OPTIONAL. This allows the CO to specify the capacity // requirement of the volume to be provisioned. If not specified, the // Plugin MAY choose an implementation-defined capacity range. - CapacityRange *CapacityRange `protobuf:"bytes,3,opt,name=capacity_range,json=capacityRange" json:"capacity_range,omitempty"` + CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange" json:"capacity_range,omitempty"` // The capabilities that the provisioned volume MUST have: the Plugin // MUST provision a volume that could satisfy ALL of the // capabilities specified in this list. The Plugin MUST assume that @@ -533,36 +428,35 @@ type CreateVolumeRequest struct { // early validation: if ANY of the specified volume capabilities are // not supported by the Plugin, the call SHALL fail. This field is // REQUIRED. - VolumeCapabilities []*VolumeCapability `protobuf:"bytes,4,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` // Plugin specific parameters passed in as opaque key-value pairs. // This field is OPTIONAL. The Plugin is responsible for parsing and // validating these parameters. COs will treat these as opaque. - Parameters map[string]string `protobuf:"bytes,5,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - // Credentials used by Controller plugin to authenticate/authorize - // volume creation request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Secrets required by plugin to complete volume creation request. + // A secret is a string to string map where the key identifies the + // name of the secret (e.g. "username" or "password"), and the value + // contains the secret data (e.g. "bob" or "abc123"). + // Each key MUST consist of alphanumeric characters, '-', '_' or '.'. + // Each value MUST contain a valid string. An SP MAY choose to accept + // binary (non-string) data by using a binary-to-text encoding scheme, + // like base64. + // An SP SHALL advertise the requirements for required secret keys and + // values in documentation. + // CO SHALL permit passing through the required secrets. + // A CO MAY pass the same secrets to all RPCs, therefore the keys for + // all unique secrets that an SP expects must be unique across all CSI + // operations. + // This information is sensitive and MUST be treated as such (not + // logged, etc.) by the CO. // This field is OPTIONAL. - ControllerCreateCredentials map[string]string `protobuf:"bytes,6,rep,name=controller_create_credentials,json=controllerCreateCredentials" json:"controller_create_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ControllerCreateSecrets map[string]string `protobuf:"bytes,5,rep,name=controller_create_secrets,json=controllerCreateSecrets" json:"controller_create_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *CreateVolumeRequest) Reset() { *m = CreateVolumeRequest{} } func (m *CreateVolumeRequest) String() string { return proto.CompactTextString(m) } func (*CreateVolumeRequest) ProtoMessage() {} -func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } - -func (m *CreateVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } func (m *CreateVolumeRequest) GetName() string { if m != nil { @@ -592,9 +486,9 @@ func (m *CreateVolumeRequest) GetParameters() map[string]string { return nil } -func (m *CreateVolumeRequest) GetControllerCreateCredentials() map[string]string { +func (m *CreateVolumeRequest) GetControllerCreateSecrets() map[string]string { if m != nil { - return m.ControllerCreateCredentials + return m.ControllerCreateSecrets } return nil } @@ -609,7 +503,7 @@ type CreateVolumeResponse struct { func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } func (m *CreateVolumeResponse) String() string { return proto.CompactTextString(m) } func (*CreateVolumeResponse) ProtoMessage() {} -func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } func (m *CreateVolumeResponse) GetVolume() *Volume { if m != nil { @@ -634,7 +528,7 @@ type VolumeCapability struct { func (m *VolumeCapability) Reset() { *m = VolumeCapability{} } func (m *VolumeCapability) String() string { return proto.CompactTextString(m) } func (*VolumeCapability) ProtoMessage() {} -func (*VolumeCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } +func (*VolumeCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } type isVolumeCapability_AccessType interface { isVolumeCapability_AccessType() @@ -756,12 +650,10 @@ func _VolumeCapability_OneofSizer(msg proto.Message) (n int) { type VolumeCapability_BlockVolume struct { } -func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } -func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } -func (*VolumeCapability_BlockVolume) ProtoMessage() {} -func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{12, 0} -} +func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } +func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_BlockVolume) ProtoMessage() {} +func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9, 0} } // Indicate that the volume will be accessed via the filesystem API. type VolumeCapability_MountVolume struct { @@ -776,12 +668,10 @@ type VolumeCapability_MountVolume struct { MountFlags []string `protobuf:"bytes,2,rep,name=mount_flags,json=mountFlags" json:"mount_flags,omitempty"` } -func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } -func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } -func (*VolumeCapability_MountVolume) ProtoMessage() {} -func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{12, 1} -} +func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } +func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_MountVolume) ProtoMessage() {} +func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9, 1} } func (m *VolumeCapability_MountVolume) GetFsType() string { if m != nil { @@ -800,13 +690,13 @@ func (m *VolumeCapability_MountVolume) GetMountFlags() []string { // Specify how a volume can be accessed. type VolumeCapability_AccessMode struct { // This field is REQUIRED. - Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,enum=csi.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` + Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,enum=csi.v0.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` } func (m *VolumeCapability_AccessMode) Reset() { *m = VolumeCapability_AccessMode{} } func (m *VolumeCapability_AccessMode) String() string { return proto.CompactTextString(m) } func (*VolumeCapability_AccessMode) ProtoMessage() {} -func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 2} } +func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9, 2} } func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode { if m != nil { @@ -832,7 +722,7 @@ type CapacityRange struct { func (m *CapacityRange) Reset() { *m = CapacityRange{} } func (m *CapacityRange) String() string { return proto.CompactTextString(m) } func (*CapacityRange) ProtoMessage() {} -func (*CapacityRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (*CapacityRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } func (m *CapacityRange) GetRequiredBytes() int64 { if m != nil { @@ -873,7 +763,7 @@ type Volume struct { func (m *Volume) Reset() { *m = Volume{} } func (m *Volume) String() string { return proto.CompactTextString(m) } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } func (m *Volume) GetCapacityBytes() int64 { if m != nil { @@ -896,39 +786,34 @@ func (m *Volume) GetAttributes() map[string]string { return nil } -// ////// -// ////// type DeleteVolumeRequest struct { - // The API version assumed by the CO. This field is REQUIRED. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume to be deprovisioned. // This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` - // Credentials used by Controller plugin to authenticate/authorize - // volume deletion request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // Secrets required by plugin to complete volume deletion request. + // A secret is a string to string map where the key identifies the + // name of the secret (e.g. "username" or "password"), and the value + // contains the secret data (e.g. "bob" or "abc123"). + // Each key MUST consist of alphanumeric characters, '-', '_' or '.'. + // Each value MUST contain a valid string. An SP MAY choose to accept + // binary (non-string) data by using a binary-to-text encoding scheme, + // like base64. + // An SP SHALL advertise the requirements for required secret keys and + // values in documentation. + // CO SHALL permit passing through the required secrets. + // A CO MAY pass the same secrets to all RPCs, therefore the keys for + // all unique secrets that an SP expects must be unique across all CSI + // operations. + // This information is sensitive and MUST be treated as such (not + // logged, etc.) by the CO. // This field is OPTIONAL. - ControllerDeleteCredentials map[string]string `protobuf:"bytes,3,rep,name=controller_delete_credentials,json=controllerDeleteCredentials" json:"controller_delete_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ControllerDeleteSecrets map[string]string `protobuf:"bytes,2,rep,name=controller_delete_secrets,json=controllerDeleteSecrets" json:"controller_delete_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *DeleteVolumeRequest) Reset() { *m = DeleteVolumeRequest{} } func (m *DeleteVolumeRequest) String() string { return proto.CompactTextString(m) } func (*DeleteVolumeRequest) ProtoMessage() {} -func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } - -func (m *DeleteVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } func (m *DeleteVolumeRequest) GetVolumeId() string { if m != nil { @@ -937,9 +822,9 @@ func (m *DeleteVolumeRequest) GetVolumeId() string { return "" } -func (m *DeleteVolumeRequest) GetControllerDeleteCredentials() map[string]string { +func (m *DeleteVolumeRequest) GetControllerDeleteSecrets() map[string]string { if m != nil { - return m.ControllerDeleteCredentials + return m.ControllerDeleteSecrets } return nil } @@ -950,54 +835,50 @@ type DeleteVolumeResponse struct { func (m *DeleteVolumeResponse) Reset() { *m = DeleteVolumeResponse{} } func (m *DeleteVolumeResponse) String() string { return proto.CompactTextString(m) } func (*DeleteVolumeResponse) ProtoMessage() {} -func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } +func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } -// ////// -// ////// type ControllerPublishVolumeRequest struct { - // The API version assumed by the CO. This field is REQUIRED. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume to be used on a node. // This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` // The ID of the node. This field is REQUIRED. The CO SHALL set this // field to match the node ID returned by `NodeGetId`. - NodeId string `protobuf:"bytes,3,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` // The capability of the volume the CO expects the volume to have. // This is a REQUIRED field. - VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` + VolumeCapability *VolumeCapability `protobuf:"bytes,3,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` // Whether to publish the volume in readonly mode. This field is // REQUIRED. - Readonly bool `protobuf:"varint,5,opt,name=readonly" json:"readonly,omitempty"` - // Credentials used by Controller plugin to authenticate/authorize - // controller publish request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. + Readonly bool `protobuf:"varint,4,opt,name=readonly" json:"readonly,omitempty"` + // Secrets required by plugin to complete controller publish volume + // request. + // A secret is a string to string map where the key identifies the + // name of the secret (e.g. "username" or "password"), and the value + // contains the secret data (e.g. "bob" or "abc123"). + // Each key MUST consist of alphanumeric characters, '-', '_' or '.'. + // Each value MUST contain a valid string. An SP MAY choose to accept + // binary (non-string) data by using a binary-to-text encoding scheme, + // like base64. + // An SP SHALL advertise the requirements for required secret keys and + // values in documentation. + // CO SHALL permit passing through the required secrets. + // A CO MAY pass the same secrets to all RPCs, therefore the keys for + // all unique secrets that an SP expects must be unique across all CSI + // operations. + // This information is sensitive and MUST be treated as such (not + // logged, etc.) by the CO. // This field is OPTIONAL. - ControllerPublishCredentials map[string]string `protobuf:"bytes,6,rep,name=controller_publish_credentials,json=controllerPublishCredentials" json:"controller_publish_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ControllerPublishSecrets map[string]string `protobuf:"bytes,5,rep,name=controller_publish_secrets,json=controllerPublishSecrets" json:"controller_publish_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Attributes of the volume to be used on a node. This field is // OPTIONAL and MUST match the attributes of the Volume identified // by `volume_id`. - VolumeAttributes map[string]string `protobuf:"bytes,7,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + VolumeAttributes map[string]string `protobuf:"bytes,6,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *ControllerPublishVolumeRequest) Reset() { *m = ControllerPublishVolumeRequest{} } func (m *ControllerPublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*ControllerPublishVolumeRequest) ProtoMessage() {} -func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } - -func (m *ControllerPublishVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } func (m *ControllerPublishVolumeRequest) GetVolumeId() string { if m != nil { @@ -1027,9 +908,9 @@ func (m *ControllerPublishVolumeRequest) GetReadonly() bool { return false } -func (m *ControllerPublishVolumeRequest) GetControllerPublishCredentials() map[string]string { +func (m *ControllerPublishVolumeRequest) GetControllerPublishSecrets() map[string]string { if m != nil { - return m.ControllerPublishCredentials + return m.ControllerPublishSecrets } return nil } @@ -1053,7 +934,7 @@ func (m *ControllerPublishVolumeResponse) Reset() { *m = ControllerPubli func (m *ControllerPublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*ControllerPublishVolumeResponse) ProtoMessage() {} func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{18} + return fileDescriptor0, []int{15} } func (m *ControllerPublishVolumeResponse) GetPublishInfo() map[string]string { @@ -1063,45 +944,43 @@ func (m *ControllerPublishVolumeResponse) GetPublishInfo() map[string]string { return nil } -// ////// -// ////// type ControllerUnpublishVolumeRequest struct { - // The API version assumed by the CO. This field is REQUIRED. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume. This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` // The ID of the node. This field is OPTIONAL. The CO SHOULD set this // field to match the node ID returned by `NodeGetId` or leave it // unset. If the value is set, the SP MUST unpublish the volume from // the specified node. If the value is unset, the SP MUST unpublish // the volume from all nodes it is published to. - NodeId string `protobuf:"bytes,3,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` - // Credentials used by Controller plugin to authenticate/authorize - // controller unpublish request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` + // Secrets required by plugin to complete controller unpublish volume + // request. This SHOULD be the same secrets passed to the + // ControllerPublishVolume. + // call for the specified volume. + // A secret is a string to string map where the key identifies the + // name of the secret (e.g. "username" or "password"), and the value + // contains the secret data (e.g. "bob" or "abc123"). + // Each key MUST consist of alphanumeric characters, '-', '_' or '.'. + // Each value MUST contain a valid string. An SP MAY choose to accept + // binary (non-string) data by using a binary-to-text encoding scheme, + // like base64. + // An SP SHALL advertise the requirements for required secret keys and + // values in documentation. + // CO SHALL permit passing through the required secrets. + // A CO MAY pass the same secrets to all RPCs, therefore the keys for + // all unique secrets that an SP expects must be unique across all CSI + // operations. + // This information is sensitive and MUST be treated as such (not + // logged, etc.) by the CO. // This field is OPTIONAL. - ControllerUnpublishCredentials map[string]string `protobuf:"bytes,4,rep,name=controller_unpublish_credentials,json=controllerUnpublishCredentials" json:"controller_unpublish_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ControllerUnpublishSecrets map[string]string `protobuf:"bytes,3,rep,name=controller_unpublish_secrets,json=controllerUnpublishSecrets" json:"controller_unpublish_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *ControllerUnpublishVolumeRequest) Reset() { *m = ControllerUnpublishVolumeRequest{} } func (m *ControllerUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*ControllerUnpublishVolumeRequest) ProtoMessage() {} func (*ControllerUnpublishVolumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{19} -} - -func (m *ControllerUnpublishVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil + return fileDescriptor0, []int{16} } func (m *ControllerUnpublishVolumeRequest) GetVolumeId() string { @@ -1118,9 +997,9 @@ func (m *ControllerUnpublishVolumeRequest) GetNodeId() string { return "" } -func (m *ControllerUnpublishVolumeRequest) GetControllerUnpublishCredentials() map[string]string { +func (m *ControllerUnpublishVolumeRequest) GetControllerUnpublishSecrets() map[string]string { if m != nil { - return m.ControllerUnpublishCredentials + return m.ControllerUnpublishSecrets } return nil } @@ -1132,37 +1011,26 @@ func (m *ControllerUnpublishVolumeResponse) Reset() { *m = ControllerUnp func (m *ControllerUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*ControllerUnpublishVolumeResponse) ProtoMessage() {} func (*ControllerUnpublishVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{20} + return fileDescriptor0, []int{17} } -// ////// -// ////// type ValidateVolumeCapabilitiesRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume to check. This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` // The capabilities that the CO wants to check for the volume. This // call SHALL return "supported" only if all the volume capabilities // specified below are supported. This field is REQUIRED. - VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,2,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` // Attributes of the volume to check. This field is OPTIONAL and MUST // match the attributes of the Volume identified by `volume_id`. - VolumeAttributes map[string]string `protobuf:"bytes,4,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + VolumeAttributes map[string]string `protobuf:"bytes,3,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *ValidateVolumeCapabilitiesRequest) Reset() { *m = ValidateVolumeCapabilitiesRequest{} } func (m *ValidateVolumeCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*ValidateVolumeCapabilitiesRequest) ProtoMessage() {} func (*ValidateVolumeCapabilitiesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{21} -} - -func (m *ValidateVolumeCapabilitiesRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil + return fileDescriptor0, []int{18} } func (m *ValidateVolumeCapabilitiesRequest) GetVolumeId() string { @@ -1200,7 +1068,7 @@ func (m *ValidateVolumeCapabilitiesResponse) Reset() { *m = ValidateVolu func (m *ValidateVolumeCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*ValidateVolumeCapabilitiesResponse) ProtoMessage() {} func (*ValidateVolumeCapabilitiesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{22} + return fileDescriptor0, []int{19} } func (m *ValidateVolumeCapabilitiesResponse) GetSupported() bool { @@ -1217,11 +1085,7 @@ func (m *ValidateVolumeCapabilitiesResponse) GetMessage() string { return "" } -// ////// -// ////// type ListVolumesRequest struct { - // The API version assumed by the CO. This field is REQUIRED. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // If specified (non-zero value), the Plugin MUST NOT return more // entries than this number in the response. If the actual number of // entries is more than this number, the Plugin MUST set `next_token` @@ -1230,25 +1094,18 @@ type ListVolumesRequest struct { // not specified (zero value), it means there is no restriction on the // number of entries that can be returned. // The value of this field MUST NOT be negative. - MaxEntries int32 `protobuf:"varint,2,opt,name=max_entries,json=maxEntries" json:"max_entries,omitempty"` + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries" json:"max_entries,omitempty"` // A token to specify where to start paginating. Set this field to // `next_token` returned by a previous `ListVolumes` call to get the // next page of entries. This field is OPTIONAL. // An empty string is equal to an unspecified field value. - StartingToken string `protobuf:"bytes,3,opt,name=starting_token,json=startingToken" json:"starting_token,omitempty"` + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken" json:"starting_token,omitempty"` } func (m *ListVolumesRequest) Reset() { *m = ListVolumesRequest{} } func (m *ListVolumesRequest) String() string { return proto.CompactTextString(m) } func (*ListVolumesRequest) ProtoMessage() {} -func (*ListVolumesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } - -func (m *ListVolumesRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } func (m *ListVolumesRequest) GetMaxEntries() int32 { if m != nil { @@ -1278,7 +1135,7 @@ type ListVolumesResponse struct { func (m *ListVolumesResponse) Reset() { *m = ListVolumesResponse{} } func (m *ListVolumesResponse) String() string { return proto.CompactTextString(m) } func (*ListVolumesResponse) ProtoMessage() {} -func (*ListVolumesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } func (m *ListVolumesResponse) GetEntries() []*ListVolumesResponse_Entry { if m != nil { @@ -1301,7 +1158,7 @@ type ListVolumesResponse_Entry struct { func (m *ListVolumesResponse_Entry) Reset() { *m = ListVolumesResponse_Entry{} } func (m *ListVolumesResponse_Entry) String() string { return proto.CompactTextString(m) } func (*ListVolumesResponse_Entry) ProtoMessage() {} -func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24, 0} } +func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21, 0} } func (m *ListVolumesResponse_Entry) GetVolume() *Volume { if m != nil { @@ -1310,35 +1167,24 @@ func (m *ListVolumesResponse_Entry) GetVolume() *Volume { return nil } -// ////// -// ////// type GetCapacityRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // If specified, the Plugin SHALL report the capacity of the storage // that can be used to provision volumes that satisfy ALL of the // specified `volume_capabilities`. These are the same // `volume_capabilities` the CO will use in `CreateVolumeRequest`. // This field is OPTIONAL. - VolumeCapabilities []*VolumeCapability `protobuf:"bytes,2,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,1,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` // If specified, the Plugin SHALL report the capacity of the storage // that can be used to provision volumes with the given Plugin // specific `parameters`. These are the same `parameters` the CO will // use in `CreateVolumeRequest`. This field is OPTIONAL. - Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Parameters map[string]string `protobuf:"bytes,2,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *GetCapacityRequest) Reset() { *m = GetCapacityRequest{} } func (m *GetCapacityRequest) String() string { return proto.CompactTextString(m) } func (*GetCapacityRequest) ProtoMessage() {} -func (*GetCapacityRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } - -func (m *GetCapacityRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*GetCapacityRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } func (m *GetCapacityRequest) GetVolumeCapabilities() []*VolumeCapability { if m != nil { @@ -1367,7 +1213,7 @@ type GetCapacityResponse struct { func (m *GetCapacityResponse) Reset() { *m = GetCapacityResponse{} } func (m *GetCapacityResponse) String() string { return proto.CompactTextString(m) } func (*GetCapacityResponse) ProtoMessage() {} -func (*GetCapacityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +func (*GetCapacityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } func (m *GetCapacityResponse) GetAvailableCapacity() int64 { if m != nil { @@ -1376,25 +1222,14 @@ func (m *GetCapacityResponse) GetAvailableCapacity() int64 { return 0 } -// ////// -// ////// type ControllerGetCapabilitiesRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` } func (m *ControllerGetCapabilitiesRequest) Reset() { *m = ControllerGetCapabilitiesRequest{} } func (m *ControllerGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*ControllerGetCapabilitiesRequest) ProtoMessage() {} func (*ControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{27} -} - -func (m *ControllerGetCapabilitiesRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil + return fileDescriptor0, []int{24} } type ControllerGetCapabilitiesResponse struct { @@ -1407,7 +1242,7 @@ func (m *ControllerGetCapabilitiesResponse) Reset() { *m = ControllerGet func (m *ControllerGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*ControllerGetCapabilitiesResponse) ProtoMessage() {} func (*ControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{28} + return fileDescriptor0, []int{25} } func (m *ControllerGetCapabilitiesResponse) GetCapabilities() []*ControllerServiceCapability { @@ -1427,7 +1262,7 @@ type ControllerServiceCapability struct { func (m *ControllerServiceCapability) Reset() { *m = ControllerServiceCapability{} } func (m *ControllerServiceCapability) String() string { return proto.CompactTextString(m) } func (*ControllerServiceCapability) ProtoMessage() {} -func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } type isControllerServiceCapability_Type interface { isControllerServiceCapability_Type() @@ -1509,14 +1344,14 @@ func _ControllerServiceCapability_OneofSizer(msg proto.Message) (n int) { } type ControllerServiceCapability_RPC struct { - Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` + Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.v0.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` } func (m *ControllerServiceCapability_RPC) Reset() { *m = ControllerServiceCapability_RPC{} } func (m *ControllerServiceCapability_RPC) String() string { return proto.CompactTextString(m) } func (*ControllerServiceCapability_RPC) ProtoMessage() {} func (*ControllerServiceCapability_RPC) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{29, 0} + return fileDescriptor0, []int{26, 0} } func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_RPC_Type { @@ -1526,57 +1361,52 @@ func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_ return ControllerServiceCapability_RPC_UNKNOWN } -// ////// -// ////// type NodeStageVolumeRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume to publish. This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` // The CO SHALL set this field to the value returned by // `ControllerPublishVolume` if the corresponding Controller Plugin // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be // left unset if the corresponding Controller Plugin does not have // this capability. This is an OPTIONAL field. - PublishInfo map[string]string `protobuf:"bytes,3,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + PublishInfo map[string]string `protobuf:"bytes,2,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // The path to which the volume will be published. It MUST be an // absolute path in the root filesystem of the process serving this // request. The CO SHALL ensure that there is only one // staging_target_path per volume. // This is a REQUIRED field. - StagingTargetPath string `protobuf:"bytes,4,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` // The capability of the volume the CO expects the volume to have. // This is a REQUIRED field. - VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` - // Credentials used by Node plugin to authenticate/authorize node - // stage request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. + VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` + // Secrets required by plugin to complete node stage volume request. + // A secret is a string to string map where the key identifies the + // name of the secret (e.g. "username" or "password"), and the value + // contains the secret data (e.g. "bob" or "abc123"). + // Each key MUST consist of alphanumeric characters, '-', '_' or '.'. + // Each value MUST contain a valid string. An SP MAY choose to accept + // binary (non-string) data by using a binary-to-text encoding scheme, + // like base64. + // An SP SHALL advertise the requirements for required secret keys and + // values in documentation. + // CO SHALL permit passing through the required secrets. + // A CO MAY pass the same secrets to all RPCs, therefore the keys for + // all unique secrets that an SP expects must be unique across all CSI + // operations. + // This information is sensitive and MUST be treated as such (not + // logged, etc.) by the CO. // This field is OPTIONAL. - NodeStageCredentials map[string]string `protobuf:"bytes,6,rep,name=node_stage_credentials,json=nodeStageCredentials" json:"node_stage_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NodeStageSecrets map[string]string `protobuf:"bytes,5,rep,name=node_stage_secrets,json=nodeStageSecrets" json:"node_stage_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Attributes of the volume to publish. This field is OPTIONAL and // MUST match the attributes of the VolumeInfo identified by // `volume_id`. - VolumeAttributes map[string]string `protobuf:"bytes,7,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + VolumeAttributes map[string]string `protobuf:"bytes,6,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *NodeStageVolumeRequest) Reset() { *m = NodeStageVolumeRequest{} } func (m *NodeStageVolumeRequest) String() string { return proto.CompactTextString(m) } func (*NodeStageVolumeRequest) ProtoMessage() {} -func (*NodeStageVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } - -func (m *NodeStageVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*NodeStageVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (m *NodeStageVolumeRequest) GetVolumeId() string { if m != nil { @@ -1606,9 +1436,9 @@ func (m *NodeStageVolumeRequest) GetVolumeCapability() *VolumeCapability { return nil } -func (m *NodeStageVolumeRequest) GetNodeStageCredentials() map[string]string { +func (m *NodeStageVolumeRequest) GetNodeStageSecrets() map[string]string { if m != nil { - return m.NodeStageCredentials + return m.NodeStageSecrets } return nil } @@ -1626,44 +1456,21 @@ type NodeStageVolumeResponse struct { func (m *NodeStageVolumeResponse) Reset() { *m = NodeStageVolumeResponse{} } func (m *NodeStageVolumeResponse) String() string { return proto.CompactTextString(m) } func (*NodeStageVolumeResponse) ProtoMessage() {} -func (*NodeStageVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } +func (*NodeStageVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } -// ////// -// ////// type NodeUnstageVolumeRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume. This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` // The path at which the volume was published. It MUST be an absolute // path in the root filesystem of the process serving this request. // This is a REQUIRED field. - StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` - // Credentials used by Node plugin to authenticate/authorize node - // unstage request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. - // This field is OPTIONAL. - NodeUnstageCredentials map[string]string `protobuf:"bytes,4,rep,name=node_unstage_credentials,json=nodeUnstageCredentials" json:"node_unstage_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StagingTargetPath string `protobuf:"bytes,2,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` } func (m *NodeUnstageVolumeRequest) Reset() { *m = NodeUnstageVolumeRequest{} } func (m *NodeUnstageVolumeRequest) String() string { return proto.CompactTextString(m) } func (*NodeUnstageVolumeRequest) ProtoMessage() {} -func (*NodeUnstageVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } - -func (m *NodeUnstageVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*NodeUnstageVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } func (m *NodeUnstageVolumeRequest) GetVolumeId() string { if m != nil { @@ -1679,83 +1486,71 @@ func (m *NodeUnstageVolumeRequest) GetStagingTargetPath() string { return "" } -func (m *NodeUnstageVolumeRequest) GetNodeUnstageCredentials() map[string]string { - if m != nil { - return m.NodeUnstageCredentials - } - return nil -} - type NodeUnstageVolumeResponse struct { } func (m *NodeUnstageVolumeResponse) Reset() { *m = NodeUnstageVolumeResponse{} } func (m *NodeUnstageVolumeResponse) String() string { return proto.CompactTextString(m) } func (*NodeUnstageVolumeResponse) ProtoMessage() {} -func (*NodeUnstageVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } +func (*NodeUnstageVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } -// ////// -// ////// type NodePublishVolumeRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume to publish. This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` // The CO SHALL set this field to the value returned by // `ControllerPublishVolume` if the corresponding Controller Plugin // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be // left unset if the corresponding Controller Plugin does not have // this capability. This is an OPTIONAL field. - PublishInfo map[string]string `protobuf:"bytes,3,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + PublishInfo map[string]string `protobuf:"bytes,2,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // The path to which the device was mounted by `NodeStageVolume`. // It MUST be an absolute path in the root filesystem of the process // serving this request. // It MUST be set if the Node Plugin implements the // `STAGE_UNSTAGE_VOLUME` node capability. // This is an OPTIONAL field. - StagingTargetPath string `protobuf:"bytes,4,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` // The path to which the volume will be published. It MUST be an // absolute path in the root filesystem of the process serving this // request. The CO SHALL ensure uniqueness of target_path per volume. // The CO SHALL ensure that the path exists, and that the process // serving the request has `read` and `write` permissions to the path. // This is a REQUIRED field. - TargetPath string `protobuf:"bytes,5,opt,name=target_path,json=targetPath" json:"target_path,omitempty"` + TargetPath string `protobuf:"bytes,4,opt,name=target_path,json=targetPath" json:"target_path,omitempty"` // The capability of the volume the CO expects the volume to have. // This is a REQUIRED field. - VolumeCapability *VolumeCapability `protobuf:"bytes,6,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` + VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` // Whether to publish the volume in readonly mode. This field is // REQUIRED. - Readonly bool `protobuf:"varint,7,opt,name=readonly" json:"readonly,omitempty"` - // Credentials used by Node plugin to authenticate/authorize node - // publish request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. + Readonly bool `protobuf:"varint,6,opt,name=readonly" json:"readonly,omitempty"` + // Secrets required by plugin to complete node publish volume request. + // A secret is a string to string map where the key identifies the + // name of the secret (e.g. "username" or "password"), and the value + // contains the secret data (e.g. "bob" or "abc123"). + // Each key MUST consist of alphanumeric characters, '-', '_' or '.'. + // Each value MUST contain a valid string. An SP MAY choose to accept + // binary (non-string) data by using a binary-to-text encoding scheme, + // like base64. + // An SP SHALL advertise the requirements for required secret keys and + // values in documentation. + // CO SHALL permit passing through the required secrets. + // A CO MAY pass the same secrets to all RPCs, therefore the keys for + // all unique secrets that an SP expects must be unique across all CSI + // operations. + // This information is sensitive and MUST be treated as such (not + // logged, etc.) by the CO. // This field is OPTIONAL. - NodePublishCredentials map[string]string `protobuf:"bytes,8,rep,name=node_publish_credentials,json=nodePublishCredentials" json:"node_publish_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NodePublishSecrets map[string]string `protobuf:"bytes,7,rep,name=node_publish_secrets,json=nodePublishSecrets" json:"node_publish_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Attributes of the volume to publish. This field is OPTIONAL and // MUST match the attributes of the Volume identified by // `volume_id`. - VolumeAttributes map[string]string `protobuf:"bytes,9,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + VolumeAttributes map[string]string `protobuf:"bytes,8,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *NodePublishVolumeRequest) Reset() { *m = NodePublishVolumeRequest{} } func (m *NodePublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*NodePublishVolumeRequest) ProtoMessage() {} -func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } - -func (m *NodePublishVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } func (m *NodePublishVolumeRequest) GetVolumeId() string { if m != nil { @@ -1799,9 +1594,9 @@ func (m *NodePublishVolumeRequest) GetReadonly() bool { return false } -func (m *NodePublishVolumeRequest) GetNodePublishCredentials() map[string]string { +func (m *NodePublishVolumeRequest) GetNodePublishSecrets() map[string]string { if m != nil { - return m.NodePublishCredentials + return m.NodePublishSecrets } return nil } @@ -1819,44 +1614,21 @@ type NodePublishVolumeResponse struct { func (m *NodePublishVolumeResponse) Reset() { *m = NodePublishVolumeResponse{} } func (m *NodePublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*NodePublishVolumeResponse) ProtoMessage() {} -func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } +func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } -// ////// -// ////// type NodeUnpublishVolumeRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` // The ID of the volume. This field is REQUIRED. - VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` // The path at which the volume was published. It MUST be an absolute // path in the root filesystem of the process serving this request. // This is a REQUIRED field. - TargetPath string `protobuf:"bytes,3,opt,name=target_path,json=targetPath" json:"target_path,omitempty"` - // Credentials used by Node plugin to authenticate/authorize node - // unpublish request. - // This field contains credential data, for example username and - // password. Each key must consist of alphanumeric characters, '-', - // '_' or '.'. Each value MUST contain a valid string. An SP MAY - // choose to accept binary (non-string) data by using a binary-to-text - // encoding scheme, like base64. An SP SHALL advertise the - // requirements for credentials in documentation. COs SHALL permit - // passing through the required credentials. This information is - // sensitive and MUST be treated as such (not logged, etc.) by the CO. - // This field is OPTIONAL. - NodeUnpublishCredentials map[string]string `protobuf:"bytes,4,rep,name=node_unpublish_credentials,json=nodeUnpublishCredentials" json:"node_unpublish_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath" json:"target_path,omitempty"` } func (m *NodeUnpublishVolumeRequest) Reset() { *m = NodeUnpublishVolumeRequest{} } func (m *NodeUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*NodeUnpublishVolumeRequest) ProtoMessage() {} -func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } - -func (m *NodeUnpublishVolumeRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } func (m *NodeUnpublishVolumeRequest) GetVolumeId() string { if m != nil { @@ -1872,39 +1644,21 @@ func (m *NodeUnpublishVolumeRequest) GetTargetPath() string { return "" } -func (m *NodeUnpublishVolumeRequest) GetNodeUnpublishCredentials() map[string]string { - if m != nil { - return m.NodeUnpublishCredentials - } - return nil -} - type NodeUnpublishVolumeResponse struct { } func (m *NodeUnpublishVolumeResponse) Reset() { *m = NodeUnpublishVolumeResponse{} } func (m *NodeUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*NodeUnpublishVolumeResponse) ProtoMessage() {} -func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } -// ////// -// ////// type NodeGetIdRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` } func (m *NodeGetIdRequest) Reset() { *m = NodeGetIdRequest{} } func (m *NodeGetIdRequest) String() string { return proto.CompactTextString(m) } func (*NodeGetIdRequest) ProtoMessage() {} -func (*NodeGetIdRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } - -func (m *NodeGetIdRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*NodeGetIdRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } type NodeGetIdResponse struct { // The ID of the node as understood by the SP which SHALL be used by @@ -1916,7 +1670,7 @@ type NodeGetIdResponse struct { func (m *NodeGetIdResponse) Reset() { *m = NodeGetIdResponse{} } func (m *NodeGetIdResponse) String() string { return proto.CompactTextString(m) } func (*NodeGetIdResponse) ProtoMessage() {} -func (*NodeGetIdResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } +func (*NodeGetIdResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } func (m *NodeGetIdResponse) GetNodeId() string { if m != nil { @@ -1925,24 +1679,13 @@ func (m *NodeGetIdResponse) GetNodeId() string { return "" } -// ////// -// ////// type NodeGetCapabilitiesRequest struct { - // The API version assumed by the CO. This is a REQUIRED field. - Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` } func (m *NodeGetCapabilitiesRequest) Reset() { *m = NodeGetCapabilitiesRequest{} } func (m *NodeGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*NodeGetCapabilitiesRequest) ProtoMessage() {} -func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } - -func (m *NodeGetCapabilitiesRequest) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} +func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } type NodeGetCapabilitiesResponse struct { // All the capabilities that the node service supports. This field @@ -1953,7 +1696,7 @@ type NodeGetCapabilitiesResponse struct { func (m *NodeGetCapabilitiesResponse) Reset() { *m = NodeGetCapabilitiesResponse{} } func (m *NodeGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*NodeGetCapabilitiesResponse) ProtoMessage() {} -func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } +func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability { if m != nil { @@ -1972,7 +1715,7 @@ type NodeServiceCapability struct { func (m *NodeServiceCapability) Reset() { *m = NodeServiceCapability{} } func (m *NodeServiceCapability) String() string { return proto.CompactTextString(m) } func (*NodeServiceCapability) ProtoMessage() {} -func (*NodeServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } +func (*NodeServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } type isNodeServiceCapability_Type interface { isNodeServiceCapability_Type() @@ -2054,13 +1797,13 @@ func _NodeServiceCapability_OneofSizer(msg proto.Message) (n int) { } type NodeServiceCapability_RPC struct { - Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.NodeServiceCapability_RPC_Type" json:"type,omitempty"` + Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.v0.NodeServiceCapability_RPC_Type" json:"type,omitempty"` } func (m *NodeServiceCapability_RPC) Reset() { *m = NodeServiceCapability_RPC{} } func (m *NodeServiceCapability_RPC) String() string { return proto.CompactTextString(m) } func (*NodeServiceCapability_RPC) ProtoMessage() {} -func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42, 0} } +func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39, 0} } func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { if m != nil { @@ -2070,60 +1813,57 @@ func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { } func init() { - proto.RegisterType((*GetSupportedVersionsRequest)(nil), "csi.GetSupportedVersionsRequest") - proto.RegisterType((*GetSupportedVersionsResponse)(nil), "csi.GetSupportedVersionsResponse") - proto.RegisterType((*Version)(nil), "csi.Version") - proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.GetPluginInfoRequest") - proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.GetPluginInfoResponse") - proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.GetPluginCapabilitiesRequest") - proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csi.GetPluginCapabilitiesResponse") - proto.RegisterType((*PluginCapability)(nil), "csi.PluginCapability") - proto.RegisterType((*PluginCapability_Service)(nil), "csi.PluginCapability.Service") - proto.RegisterType((*ProbeRequest)(nil), "csi.ProbeRequest") - proto.RegisterType((*ProbeResponse)(nil), "csi.ProbeResponse") - proto.RegisterType((*CreateVolumeRequest)(nil), "csi.CreateVolumeRequest") - proto.RegisterType((*CreateVolumeResponse)(nil), "csi.CreateVolumeResponse") - proto.RegisterType((*VolumeCapability)(nil), "csi.VolumeCapability") - proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csi.VolumeCapability.BlockVolume") - proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.VolumeCapability.MountVolume") - proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.VolumeCapability.AccessMode") - proto.RegisterType((*CapacityRange)(nil), "csi.CapacityRange") - proto.RegisterType((*Volume)(nil), "csi.Volume") - proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.DeleteVolumeRequest") - proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.DeleteVolumeResponse") - proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.ControllerPublishVolumeRequest") - proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csi.ControllerPublishVolumeResponse") - proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csi.ControllerUnpublishVolumeRequest") - proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csi.ControllerUnpublishVolumeResponse") - proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csi.ValidateVolumeCapabilitiesRequest") - proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csi.ValidateVolumeCapabilitiesResponse") - proto.RegisterType((*ListVolumesRequest)(nil), "csi.ListVolumesRequest") - proto.RegisterType((*ListVolumesResponse)(nil), "csi.ListVolumesResponse") - proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csi.ListVolumesResponse.Entry") - proto.RegisterType((*GetCapacityRequest)(nil), "csi.GetCapacityRequest") - proto.RegisterType((*GetCapacityResponse)(nil), "csi.GetCapacityResponse") - proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csi.ControllerGetCapabilitiesRequest") - proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csi.ControllerGetCapabilitiesResponse") - proto.RegisterType((*ControllerServiceCapability)(nil), "csi.ControllerServiceCapability") - proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csi.ControllerServiceCapability.RPC") - proto.RegisterType((*NodeStageVolumeRequest)(nil), "csi.NodeStageVolumeRequest") - proto.RegisterType((*NodeStageVolumeResponse)(nil), "csi.NodeStageVolumeResponse") - proto.RegisterType((*NodeUnstageVolumeRequest)(nil), "csi.NodeUnstageVolumeRequest") - proto.RegisterType((*NodeUnstageVolumeResponse)(nil), "csi.NodeUnstageVolumeResponse") - proto.RegisterType((*NodePublishVolumeRequest)(nil), "csi.NodePublishVolumeRequest") - proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.NodePublishVolumeResponse") - proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.NodeUnpublishVolumeRequest") - proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.NodeUnpublishVolumeResponse") - proto.RegisterType((*NodeGetIdRequest)(nil), "csi.NodeGetIdRequest") - proto.RegisterType((*NodeGetIdResponse)(nil), "csi.NodeGetIdResponse") - proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csi.NodeGetCapabilitiesRequest") - proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csi.NodeGetCapabilitiesResponse") - proto.RegisterType((*NodeServiceCapability)(nil), "csi.NodeServiceCapability") - proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csi.NodeServiceCapability.RPC") - proto.RegisterEnum("csi.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) - proto.RegisterEnum("csi.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) - proto.RegisterEnum("csi.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) - proto.RegisterEnum("csi.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) + proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.v0.GetPluginInfoRequest") + proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.v0.GetPluginInfoResponse") + proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.v0.GetPluginCapabilitiesRequest") + proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csi.v0.GetPluginCapabilitiesResponse") + proto.RegisterType((*PluginCapability)(nil), "csi.v0.PluginCapability") + proto.RegisterType((*PluginCapability_Service)(nil), "csi.v0.PluginCapability.Service") + proto.RegisterType((*ProbeRequest)(nil), "csi.v0.ProbeRequest") + proto.RegisterType((*ProbeResponse)(nil), "csi.v0.ProbeResponse") + proto.RegisterType((*CreateVolumeRequest)(nil), "csi.v0.CreateVolumeRequest") + proto.RegisterType((*CreateVolumeResponse)(nil), "csi.v0.CreateVolumeResponse") + proto.RegisterType((*VolumeCapability)(nil), "csi.v0.VolumeCapability") + proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csi.v0.VolumeCapability.BlockVolume") + proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.v0.VolumeCapability.MountVolume") + proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.v0.VolumeCapability.AccessMode") + proto.RegisterType((*CapacityRange)(nil), "csi.v0.CapacityRange") + proto.RegisterType((*Volume)(nil), "csi.v0.Volume") + proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.v0.DeleteVolumeRequest") + proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.v0.DeleteVolumeResponse") + proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.v0.ControllerPublishVolumeRequest") + proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csi.v0.ControllerPublishVolumeResponse") + proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csi.v0.ControllerUnpublishVolumeRequest") + proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csi.v0.ControllerUnpublishVolumeResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csi.v0.ValidateVolumeCapabilitiesRequest") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csi.v0.ValidateVolumeCapabilitiesResponse") + proto.RegisterType((*ListVolumesRequest)(nil), "csi.v0.ListVolumesRequest") + proto.RegisterType((*ListVolumesResponse)(nil), "csi.v0.ListVolumesResponse") + proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csi.v0.ListVolumesResponse.Entry") + proto.RegisterType((*GetCapacityRequest)(nil), "csi.v0.GetCapacityRequest") + proto.RegisterType((*GetCapacityResponse)(nil), "csi.v0.GetCapacityResponse") + proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csi.v0.ControllerGetCapabilitiesRequest") + proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csi.v0.ControllerGetCapabilitiesResponse") + proto.RegisterType((*ControllerServiceCapability)(nil), "csi.v0.ControllerServiceCapability") + proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csi.v0.ControllerServiceCapability.RPC") + proto.RegisterType((*NodeStageVolumeRequest)(nil), "csi.v0.NodeStageVolumeRequest") + proto.RegisterType((*NodeStageVolumeResponse)(nil), "csi.v0.NodeStageVolumeResponse") + proto.RegisterType((*NodeUnstageVolumeRequest)(nil), "csi.v0.NodeUnstageVolumeRequest") + proto.RegisterType((*NodeUnstageVolumeResponse)(nil), "csi.v0.NodeUnstageVolumeResponse") + proto.RegisterType((*NodePublishVolumeRequest)(nil), "csi.v0.NodePublishVolumeRequest") + proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.v0.NodePublishVolumeResponse") + proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.v0.NodeUnpublishVolumeRequest") + proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.v0.NodeUnpublishVolumeResponse") + proto.RegisterType((*NodeGetIdRequest)(nil), "csi.v0.NodeGetIdRequest") + proto.RegisterType((*NodeGetIdResponse)(nil), "csi.v0.NodeGetIdResponse") + proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csi.v0.NodeGetCapabilitiesRequest") + proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csi.v0.NodeGetCapabilitiesResponse") + proto.RegisterType((*NodeServiceCapability)(nil), "csi.v0.NodeServiceCapability") + proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csi.v0.NodeServiceCapability.RPC") + proto.RegisterEnum("csi.v0.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) + proto.RegisterEnum("csi.v0.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) + proto.RegisterEnum("csi.v0.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) + proto.RegisterEnum("csi.v0.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) } // Reference imports to suppress errors if they are not otherwise used. @@ -2137,7 +1877,6 @@ const _ = grpc.SupportPackageIsVersion4 // Client API for Identity service type IdentityClient interface { - GetSupportedVersions(ctx context.Context, in *GetSupportedVersionsRequest, opts ...grpc.CallOption) (*GetSupportedVersionsResponse, error) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) @@ -2151,18 +1890,9 @@ func NewIdentityClient(cc *grpc.ClientConn) IdentityClient { return &identityClient{cc} } -func (c *identityClient) GetSupportedVersions(ctx context.Context, in *GetSupportedVersionsRequest, opts ...grpc.CallOption) (*GetSupportedVersionsResponse, error) { - out := new(GetSupportedVersionsResponse) - err := grpc.Invoke(ctx, "/csi.Identity/GetSupportedVersions", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) { out := new(GetPluginInfoResponse) - err := grpc.Invoke(ctx, "/csi.Identity/GetPluginInfo", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Identity/GetPluginInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2171,7 +1901,7 @@ func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoReq func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) { out := new(GetPluginCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Identity/GetPluginCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Identity/GetPluginCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2180,7 +1910,7 @@ func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPlugi func (c *identityClient) Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) { out := new(ProbeResponse) - err := grpc.Invoke(ctx, "/csi.Identity/Probe", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Identity/Probe", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2190,7 +1920,6 @@ func (c *identityClient) Probe(ctx context.Context, in *ProbeRequest, opts ...gr // Server API for Identity service type IdentityServer interface { - GetSupportedVersions(context.Context, *GetSupportedVersionsRequest) (*GetSupportedVersionsResponse, error) GetPluginInfo(context.Context, *GetPluginInfoRequest) (*GetPluginInfoResponse, error) GetPluginCapabilities(context.Context, *GetPluginCapabilitiesRequest) (*GetPluginCapabilitiesResponse, error) Probe(context.Context, *ProbeRequest) (*ProbeResponse, error) @@ -2200,24 +1929,6 @@ func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { s.RegisterService(&_Identity_serviceDesc, srv) } -func _Identity_GetSupportedVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetSupportedVersionsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(IdentityServer).GetSupportedVersions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/csi.Identity/GetSupportedVersions", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(IdentityServer).GetSupportedVersions(ctx, req.(*GetSupportedVersionsRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPluginInfoRequest) if err := dec(in); err != nil { @@ -2228,7 +1939,7 @@ func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Identity/GetPluginInfo", + FullMethod: "/csi.v0.Identity/GetPluginInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(IdentityServer).GetPluginInfo(ctx, req.(*GetPluginInfoRequest)) @@ -2246,7 +1957,7 @@ func _Identity_GetPluginCapabilities_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Identity/GetPluginCapabilities", + FullMethod: "/csi.v0.Identity/GetPluginCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(IdentityServer).GetPluginCapabilities(ctx, req.(*GetPluginCapabilitiesRequest)) @@ -2264,7 +1975,7 @@ func _Identity_Probe_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Identity/Probe", + FullMethod: "/csi.v0.Identity/Probe", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(IdentityServer).Probe(ctx, req.(*ProbeRequest)) @@ -2273,13 +1984,9 @@ func _Identity_Probe_Handler(srv interface{}, ctx context.Context, dec func(inte } var _Identity_serviceDesc = grpc.ServiceDesc{ - ServiceName: "csi.Identity", + ServiceName: "csi.v0.Identity", HandlerType: (*IdentityServer)(nil), Methods: []grpc.MethodDesc{ - { - MethodName: "GetSupportedVersions", - Handler: _Identity_GetSupportedVersions_Handler, - }, { MethodName: "GetPluginInfo", Handler: _Identity_GetPluginInfo_Handler, @@ -2320,7 +2027,7 @@ func NewControllerClient(cc *grpc.ClientConn) ControllerClient { func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) { out := new(CreateVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/CreateVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/CreateVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2329,7 +2036,7 @@ func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeReq func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) { out := new(DeleteVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/DeleteVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/DeleteVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2338,7 +2045,7 @@ func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeReq func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) { out := new(ControllerPublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ControllerPublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ControllerPublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2347,7 +2054,7 @@ func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *Cont func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) { out := new(ControllerUnpublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ControllerUnpublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ControllerUnpublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2356,7 +2063,7 @@ func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *Co func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) { out := new(ValidateVolumeCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ValidateVolumeCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ValidateVolumeCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2365,7 +2072,7 @@ func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *V func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { out := new(ListVolumesResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ListVolumes", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ListVolumes", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2374,7 +2081,7 @@ func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesReque func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) { out := new(GetCapacityResponse) - err := grpc.Invoke(ctx, "/csi.Controller/GetCapacity", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/GetCapacity", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2383,7 +2090,7 @@ func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityReque func (c *controllerClient) ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) { out := new(ControllerGetCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ControllerGetCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ControllerGetCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2417,7 +2124,7 @@ func _Controller_CreateVolume_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/CreateVolume", + FullMethod: "/csi.v0.Controller/CreateVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) @@ -2435,7 +2142,7 @@ func _Controller_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/DeleteVolume", + FullMethod: "/csi.v0.Controller/DeleteVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).DeleteVolume(ctx, req.(*DeleteVolumeRequest)) @@ -2453,7 +2160,7 @@ func _Controller_ControllerPublishVolume_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ControllerPublishVolume", + FullMethod: "/csi.v0.Controller/ControllerPublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ControllerPublishVolume(ctx, req.(*ControllerPublishVolumeRequest)) @@ -2471,7 +2178,7 @@ func _Controller_ControllerUnpublishVolume_Handler(srv interface{}, ctx context. } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ControllerUnpublishVolume", + FullMethod: "/csi.v0.Controller/ControllerUnpublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ControllerUnpublishVolume(ctx, req.(*ControllerUnpublishVolumeRequest)) @@ -2489,7 +2196,7 @@ func _Controller_ValidateVolumeCapabilities_Handler(srv interface{}, ctx context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ValidateVolumeCapabilities", + FullMethod: "/csi.v0.Controller/ValidateVolumeCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, req.(*ValidateVolumeCapabilitiesRequest)) @@ -2507,7 +2214,7 @@ func _Controller_ListVolumes_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ListVolumes", + FullMethod: "/csi.v0.Controller/ListVolumes", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ListVolumes(ctx, req.(*ListVolumesRequest)) @@ -2525,7 +2232,7 @@ func _Controller_GetCapacity_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/GetCapacity", + FullMethod: "/csi.v0.Controller/GetCapacity", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).GetCapacity(ctx, req.(*GetCapacityRequest)) @@ -2543,7 +2250,7 @@ func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context. } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ControllerGetCapabilities", + FullMethod: "/csi.v0.Controller/ControllerGetCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ControllerGetCapabilities(ctx, req.(*ControllerGetCapabilitiesRequest)) @@ -2552,7 +2259,7 @@ func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context. } var _Controller_serviceDesc = grpc.ServiceDesc{ - ServiceName: "csi.Controller", + ServiceName: "csi.v0.Controller", HandlerType: (*ControllerServer)(nil), Methods: []grpc.MethodDesc{ { @@ -2613,7 +2320,7 @@ func NewNodeClient(cc *grpc.ClientConn) NodeClient { func (c *nodeClient) NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) { out := new(NodeStageVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeStageVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeStageVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2622,7 +2329,7 @@ func (c *nodeClient) NodeStageVolume(ctx context.Context, in *NodeStageVolumeReq func (c *nodeClient) NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) { out := new(NodeUnstageVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeUnstageVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeUnstageVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2631,7 +2338,7 @@ func (c *nodeClient) NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolum func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) { out := new(NodePublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodePublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodePublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2640,7 +2347,7 @@ func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolum func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) { out := new(NodeUnpublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeUnpublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeUnpublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2649,7 +2356,7 @@ func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishV func (c *nodeClient) NodeGetId(ctx context.Context, in *NodeGetIdRequest, opts ...grpc.CallOption) (*NodeGetIdResponse, error) { out := new(NodeGetIdResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeGetId", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeGetId", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2658,7 +2365,7 @@ func (c *nodeClient) NodeGetId(ctx context.Context, in *NodeGetIdRequest, opts . func (c *nodeClient) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) { out := new(NodeGetCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeGetCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeGetCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2690,7 +2397,7 @@ func _Node_NodeStageVolume_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeStageVolume", + FullMethod: "/csi.v0.Node/NodeStageVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeStageVolume(ctx, req.(*NodeStageVolumeRequest)) @@ -2708,7 +2415,7 @@ func _Node_NodeUnstageVolume_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeUnstageVolume", + FullMethod: "/csi.v0.Node/NodeUnstageVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeUnstageVolume(ctx, req.(*NodeUnstageVolumeRequest)) @@ -2726,7 +2433,7 @@ func _Node_NodePublishVolume_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodePublishVolume", + FullMethod: "/csi.v0.Node/NodePublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodePublishVolume(ctx, req.(*NodePublishVolumeRequest)) @@ -2744,7 +2451,7 @@ func _Node_NodeUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeUnpublishVolume", + FullMethod: "/csi.v0.Node/NodeUnpublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeUnpublishVolume(ctx, req.(*NodeUnpublishVolumeRequest)) @@ -2762,7 +2469,7 @@ func _Node_NodeGetId_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeGetId", + FullMethod: "/csi.v0.Node/NodeGetId", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeGetId(ctx, req.(*NodeGetIdRequest)) @@ -2780,7 +2487,7 @@ func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeGetCapabilities", + FullMethod: "/csi.v0.Node/NodeGetCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeGetCapabilities(ctx, req.(*NodeGetCapabilitiesRequest)) @@ -2789,7 +2496,7 @@ func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec } var _Node_serviceDesc = grpc.ServiceDesc{ - ServiceName: "csi.Node", + ServiceName: "csi.v0.Node", HandlerType: (*NodeServer)(nil), Methods: []grpc.MethodDesc{ { @@ -2824,152 +2531,141 @@ var _Node_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("csi.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 2348 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4d, 0x6f, 0xdb, 0xc8, - 0xd5, 0xd4, 0x87, 0x65, 0x3d, 0xd9, 0x89, 0x3c, 0x76, 0x6c, 0x85, 0x8e, 0x13, 0x87, 0xd9, 0x64, - 0x53, 0x34, 0x2b, 0xb4, 0x5e, 0xec, 0x36, 0xde, 0x6c, 0x02, 0xd8, 0x32, 0x63, 0xab, 0x71, 0x64, - 0x2f, 0x2d, 0x27, 0xdd, 0x6d, 0xb7, 0x5c, 0x5a, 0x1a, 0x3b, 0x6c, 0x24, 0x52, 0x4b, 0x52, 0x46, - 0x84, 0xa2, 0xb7, 0x9e, 0xda, 0xde, 0x7a, 0xe8, 0xa5, 0x68, 0xcf, 0x05, 0x7a, 0xed, 0x69, 0xd1, - 0x4b, 0x81, 0xa2, 0x97, 0x02, 0x3d, 0x15, 0xbd, 0xf6, 0xba, 0xfd, 0x05, 0x3d, 0x16, 0x9c, 0x19, - 0x52, 0x43, 0x6a, 0x48, 0x59, 0xc9, 0x3a, 0xe8, 0xc9, 0xe2, 0xfb, 0x9e, 0x37, 0x6f, 0xde, 0xbc, - 0xf7, 0xc6, 0x50, 0x6c, 0xb9, 0x66, 0xb5, 0xe7, 0xd8, 0x9e, 0x8d, 0xb2, 0x2d, 0xd7, 0x54, 0x56, - 0x61, 0x65, 0x07, 0x7b, 0x87, 0xfd, 0x5e, 0xcf, 0x76, 0x3c, 0xdc, 0x7e, 0x86, 0x1d, 0xd7, 0xb4, - 0x2d, 0x57, 0xc3, 0x5f, 0xf6, 0xb1, 0xeb, 0x29, 0x3f, 0x84, 0x6b, 0x62, 0xb4, 0xdb, 0xb3, 0x2d, - 0x17, 0xa3, 0x07, 0x80, 0xdc, 0x00, 0xa9, 0x9f, 0x31, 0x6c, 0x45, 0x5a, 0xcb, 0xde, 0x2d, 0xad, - 0xcf, 0x56, 0x7d, 0x5d, 0x8c, 0x45, 0x9b, 0x77, 0xe3, 0x42, 0x94, 0x27, 0x50, 0x60, 0xbf, 0xd1, - 0x22, 0xe4, 0xbb, 0xc6, 0x4f, 0x6c, 0xa7, 0x22, 0xad, 0x49, 0x77, 0xf3, 0x1a, 0xfd, 0x20, 0x50, - 0xd3, 0xb2, 0x9d, 0x4a, 0x86, 0x41, 0xfd, 0x0f, 0x1f, 0xda, 0x33, 0xbc, 0xd6, 0x8b, 0x4a, 0x96, - 0x42, 0xc9, 0x87, 0xf2, 0x08, 0x16, 0x77, 0xb0, 0x77, 0xd0, 0xe9, 0x9f, 0x9a, 0x56, 0xdd, 0x3a, - 0xb1, 0xd9, 0x0a, 0xd0, 0x1d, 0x28, 0x30, 0xbb, 0x88, 0xec, 0xb8, 0x59, 0x01, 0x52, 0xf9, 0xa7, - 0x04, 0x57, 0x62, 0x02, 0xd8, 0x1a, 0x11, 0xe4, 0x2c, 0xa3, 0x8b, 0x09, 0x7b, 0x51, 0x23, 0xbf, - 0xd1, 0x6d, 0xb8, 0x74, 0x86, 0xad, 0xb6, 0xed, 0x04, 0x8b, 0x26, 0x26, 0x16, 0xb5, 0x39, 0x0a, - 0x0d, 0x96, 0xb5, 0x0d, 0x33, 0x5d, 0xc3, 0x32, 0x4f, 0xb0, 0xeb, 0x55, 0xb2, 0xc4, 0x29, 0x77, - 0x89, 0x76, 0xa1, 0xa2, 0xea, 0x53, 0x46, 0xaa, 0x5a, 0x9e, 0x33, 0xd0, 0x42, 0x4e, 0xf9, 0x01, - 0xcc, 0x45, 0x50, 0xa8, 0x0c, 0xd9, 0x97, 0x78, 0xc0, 0x0c, 0xf2, 0x7f, 0xfa, 0x3e, 0x39, 0x33, - 0x3a, 0x7d, 0xcc, 0xcc, 0xa0, 0x1f, 0x1f, 0x65, 0xee, 0x4b, 0xca, 0x63, 0xb2, 0x83, 0x54, 0x5b, - 0xcd, 0xe8, 0x19, 0xc7, 0x66, 0xc7, 0xf4, 0x4c, 0xec, 0x4e, 0xea, 0x9f, 0xcf, 0x60, 0x35, 0x41, - 0x0e, 0x73, 0xd3, 0x06, 0xcc, 0xb6, 0x38, 0x78, 0x25, 0x43, 0xd6, 0x7b, 0x85, 0x48, 0x8b, 0xb1, - 0x0d, 0xb4, 0x08, 0xa9, 0xf2, 0x57, 0x09, 0xca, 0x71, 0x12, 0xb4, 0x01, 0x05, 0x17, 0x3b, 0x67, - 0x66, 0x0b, 0x33, 0xc3, 0x56, 0x85, 0xa2, 0xaa, 0x87, 0x94, 0x68, 0x77, 0x4a, 0x0b, 0xe8, 0x65, - 0x0b, 0x0a, 0x0c, 0x8a, 0x3e, 0x84, 0x9c, 0x37, 0xe8, 0x51, 0x11, 0x97, 0xd6, 0x95, 0x54, 0x11, - 0xd5, 0xe6, 0xa0, 0x87, 0x35, 0x42, 0xaf, 0x7c, 0x1b, 0x72, 0xfe, 0x17, 0x2a, 0x41, 0xe1, 0xa8, - 0xf1, 0xa4, 0xb1, 0xff, 0xbc, 0x51, 0x9e, 0x42, 0x4b, 0x80, 0x6a, 0xfb, 0x8d, 0xa6, 0xb6, 0xbf, - 0xb7, 0xa7, 0x6a, 0xfa, 0xa1, 0xaa, 0x3d, 0xab, 0xd7, 0xd4, 0xb2, 0xb4, 0x35, 0x4d, 0x95, 0x28, - 0x1f, 0xc2, 0xec, 0x81, 0x63, 0x1f, 0xe3, 0x49, 0x7d, 0x7b, 0x19, 0xe6, 0x18, 0x1f, 0xf5, 0xa5, - 0xf2, 0xc7, 0x1c, 0x2c, 0xd4, 0x1c, 0x6c, 0x78, 0xf8, 0x99, 0xdd, 0xe9, 0x77, 0x27, 0x15, 0x18, - 0x86, 0x6c, 0x86, 0x0b, 0xd9, 0x0d, 0xb8, 0xe4, 0x3b, 0xbd, 0x65, 0x7a, 0x03, 0xdd, 0x31, 0xac, - 0x53, 0x4c, 0xce, 0x4f, 0x69, 0x1d, 0x11, 0x11, 0x35, 0x86, 0xd2, 0x7c, 0x8c, 0x36, 0xd7, 0xe2, - 0x3f, 0xd1, 0x63, 0x58, 0x38, 0x23, 0x76, 0xe8, 0x91, 0x1d, 0xce, 0x71, 0x3b, 0x4c, 0xed, 0xe4, - 0x76, 0x18, 0x9d, 0x45, 0x21, 0x26, 0x76, 0xd1, 0x2e, 0x40, 0xcf, 0x70, 0x8c, 0x2e, 0xf6, 0xb0, - 0xe3, 0x56, 0xf2, 0xdc, 0x81, 0x10, 0x2c, 0xb6, 0x7a, 0x10, 0x92, 0xd2, 0x03, 0xc1, 0xf1, 0xa2, - 0x9f, 0xc1, 0x6a, 0xcb, 0xb6, 0x3c, 0xc7, 0xee, 0x74, 0xb0, 0xa3, 0xb7, 0x08, 0xb7, 0xff, 0xa7, - 0x8d, 0x2d, 0xcf, 0x34, 0x3a, 0x6e, 0x65, 0x9a, 0x08, 0xdf, 0x48, 0x14, 0x5e, 0x0b, 0xb9, 0x29, - 0xb6, 0x36, 0xe4, 0xa5, 0xda, 0x56, 0x5a, 0xc9, 0x14, 0xf2, 0x43, 0xb8, 0x1c, 0xb3, 0x6e, 0x92, - 0x33, 0x29, 0x37, 0x60, 0x6d, 0x9c, 0xfe, 0x89, 0xce, 0xf8, 0x03, 0x58, 0x8c, 0xae, 0x91, 0x1d, - 0xc9, 0x5b, 0x30, 0x4d, 0x77, 0x81, 0x45, 0x4b, 0x89, 0xdb, 0x2a, 0x8d, 0xa1, 0x94, 0xdf, 0xe5, - 0xa0, 0x1c, 0xdf, 0x3d, 0xb4, 0x01, 0xf9, 0xe3, 0x8e, 0xdd, 0x7a, 0xc9, 0x18, 0x6f, 0x0a, 0xf7, - 0xb8, 0xba, 0xe5, 0x93, 0x50, 0xe8, 0xee, 0x94, 0x46, 0x39, 0x7c, 0xd6, 0xae, 0xdd, 0xb7, 0x3c, - 0x62, 0x66, 0x22, 0xeb, 0x53, 0x9f, 0x64, 0xc8, 0x4a, 0x38, 0xd0, 0x26, 0x94, 0x8c, 0x56, 0x0b, - 0xbb, 0xae, 0xde, 0xb5, 0xdb, 0x41, 0x7c, 0xae, 0x89, 0x05, 0x6c, 0x12, 0xc2, 0xa7, 0x76, 0x1b, - 0x6b, 0x60, 0x84, 0xbf, 0xe5, 0x39, 0x28, 0x71, 0x56, 0xc9, 0x3b, 0x50, 0xe2, 0x34, 0xa1, 0x65, - 0x28, 0x9c, 0xb8, 0x7a, 0x98, 0x10, 0x8a, 0xda, 0xf4, 0x89, 0x4b, 0x8e, 0xf9, 0x0d, 0x28, 0x11, - 0x13, 0xf4, 0x93, 0x8e, 0x71, 0x4a, 0x73, 0x57, 0x51, 0x03, 0x02, 0x7a, 0xec, 0x43, 0xe4, 0xaf, - 0x25, 0x80, 0xa1, 0x4a, 0xb4, 0x01, 0x39, 0x62, 0x22, 0x4d, 0x2b, 0xb7, 0xc7, 0x99, 0x58, 0x25, - 0x76, 0x12, 0x16, 0xe5, 0xf7, 0x12, 0xe4, 0x88, 0x8c, 0x78, 0x6a, 0x39, 0xac, 0x37, 0x76, 0xf6, - 0x54, 0xbd, 0xb1, 0xbf, 0xad, 0xea, 0xcf, 0xb5, 0x7a, 0x53, 0xd5, 0xca, 0x12, 0x5a, 0x81, 0x65, - 0x1e, 0xae, 0xa9, 0x9b, 0xdb, 0xaa, 0xa6, 0xef, 0x37, 0xf6, 0x3e, 0x2d, 0x67, 0x90, 0x0c, 0x4b, - 0x4f, 0x8f, 0xf6, 0x9a, 0xf5, 0x51, 0x5c, 0x16, 0x5d, 0x83, 0x0a, 0x87, 0x63, 0x32, 0x98, 0xd8, - 0x9c, 0x2f, 0x96, 0xc3, 0xd2, 0x9f, 0x0c, 0x99, 0xdf, 0x9a, 0x0b, 0xb7, 0x81, 0x64, 0xb5, 0xe7, - 0x30, 0x17, 0xc9, 0x0e, 0xfe, 0xe5, 0xe7, 0xe0, 0x2f, 0xfb, 0xa6, 0x83, 0xdb, 0xfa, 0xf1, 0xc0, - 0xc3, 0x2e, 0x71, 0x43, 0x56, 0x9b, 0x0b, 0xa0, 0x5b, 0x3e, 0xd0, 0xf7, 0x69, 0xc7, 0xec, 0x9a, - 0x1e, 0xa3, 0xc9, 0x10, 0x1a, 0x20, 0x20, 0x42, 0xa0, 0x7c, 0x25, 0xc1, 0x34, 0xdb, 0x98, 0xdb, - 0x5c, 0x72, 0x8a, 0x88, 0x0c, 0xa0, 0x54, 0xe4, 0x25, 0xc8, 0x98, 0x6d, 0x16, 0xff, 0x19, 0xb3, - 0x8d, 0x1e, 0x00, 0x18, 0x9e, 0xe7, 0x98, 0xc7, 0x7d, 0x9f, 0x85, 0xde, 0xb0, 0x2b, 0xdc, 0x66, - 0x54, 0x37, 0x43, 0x2c, 0xcb, 0x21, 0x43, 0x72, 0xff, 0x10, 0xc7, 0xd0, 0x13, 0x1d, 0xba, 0x3f, - 0x64, 0x60, 0x61, 0x1b, 0x77, 0xf0, 0xeb, 0xe6, 0xe8, 0x15, 0x28, 0xb2, 0xa4, 0x1a, 0x2e, 0x69, - 0x86, 0x02, 0xea, 0xed, 0x58, 0x7e, 0x6b, 0x13, 0x35, 0x91, 0xfc, 0x96, 0xe5, 0xf2, 0x9b, 0xc0, - 0x0a, 0x2e, 0xbf, 0x51, 0x6c, 0x5a, 0x7e, 0x1b, 0xa1, 0x88, 0x26, 0x28, 0xb1, 0x80, 0x89, 0x7c, - 0xb5, 0x04, 0x8b, 0x51, 0x23, 0xd9, 0x3d, 0xf7, 0x9f, 0x1c, 0x5c, 0x1f, 0x2a, 0x3a, 0xe8, 0x1f, - 0x77, 0x4c, 0xf7, 0xc5, 0x05, 0xb8, 0x73, 0x19, 0x0a, 0x96, 0xdd, 0x26, 0xa8, 0x2c, 0x3d, 0xf7, - 0xfe, 0x67, 0xbd, 0x8d, 0xb6, 0x60, 0x3e, 0x7e, 0xb3, 0x0d, 0x2a, 0x39, 0xa2, 0x27, 0xe1, 0x5e, - 0x2b, 0x9f, 0xc5, 0x73, 0xa5, 0x0c, 0x33, 0x0e, 0x36, 0xda, 0xb6, 0xd5, 0x19, 0x54, 0xf2, 0x6b, - 0xd2, 0xdd, 0x19, 0x2d, 0xfc, 0x46, 0xbf, 0x94, 0xe0, 0x3a, 0xb7, 0x91, 0x3d, 0xba, 0x42, 0xc1, - 0x4d, 0xa5, 0xd2, 0x9b, 0x2a, 0xd5, 0x17, 0xa3, 0xe8, 0x91, 0x5d, 0xbd, 0xd6, 0x4a, 0x21, 0x41, - 0x27, 0xe1, 0x6a, 0xb9, 0x53, 0x53, 0xe0, 0x6f, 0xca, 0x74, 0xfd, 0xf4, 0x2b, 0x7e, 0xa6, 0x98, - 0x47, 0x86, 0x60, 0x79, 0x1f, 0x6e, 0x8e, 0x35, 0x75, 0xa2, 0x0b, 0xb3, 0x06, 0x57, 0x84, 0xba, - 0x27, 0x0a, 0xc2, 0xaf, 0x24, 0xb8, 0x91, 0xb8, 0x40, 0x76, 0x63, 0xfe, 0x00, 0x66, 0x83, 0x3d, - 0x32, 0xad, 0x13, 0x9b, 0x75, 0x32, 0x1f, 0xa4, 0x3b, 0x87, 0x95, 0xef, 0x0c, 0xea, 0x97, 0xf4, - 0xd4, 0x31, 0xa5, 0xde, 0x10, 0x22, 0x3f, 0x82, 0x72, 0x9c, 0x60, 0x22, 0xeb, 0xbf, 0xce, 0xf0, - 0x67, 0xf2, 0xc8, 0xea, 0xbd, 0xfd, 0xc3, 0xf2, 0x6b, 0x09, 0xd6, 0xb8, 0x60, 0xee, 0x5b, 0xa2, - 0x70, 0xa6, 0x45, 0x61, 0x3d, 0xe6, 0x31, 0xb1, 0xbd, 0x22, 0x82, 0x91, 0x90, 0xe6, 0xce, 0x8f, - 0x88, 0x48, 0xfe, 0x04, 0x6e, 0x9d, 0x43, 0xcc, 0x44, 0xbe, 0xbe, 0xc5, 0xc7, 0xef, 0x88, 0xe9, - 0x2c, 0x77, 0xfd, 0x3b, 0x03, 0x37, 0x9f, 0x19, 0x1d, 0xb3, 0x1d, 0xd6, 0x5d, 0x6f, 0xd0, 0x5e, - 0xa5, 0xef, 0x48, 0x42, 0xfd, 0x9d, 0x9d, 0xb4, 0xfe, 0x36, 0x45, 0xe7, 0x9f, 0x6e, 0xd8, 0xc7, - 0x54, 0xca, 0xb8, 0xf5, 0x9c, 0x3b, 0x05, 0x7c, 0x23, 0x27, 0xf6, 0x47, 0xa0, 0xa4, 0x59, 0xc4, - 0xce, 0xec, 0x35, 0x28, 0x86, 0xb3, 0x05, 0x22, 0x77, 0x46, 0x1b, 0x02, 0x50, 0x05, 0x0a, 0x5d, - 0xec, 0xba, 0xc6, 0x69, 0x20, 0x3f, 0xf8, 0x54, 0x7e, 0x2e, 0x01, 0xda, 0x33, 0x5d, 0x56, 0x1b, - 0x4e, 0xbc, 0x63, 0x7e, 0xc9, 0x68, 0xbc, 0xd2, 0xb1, 0xe5, 0x39, 0x26, 0x2b, 0x6f, 0xf2, 0x1a, - 0x74, 0x8d, 0x57, 0x2a, 0x85, 0xf8, 0x35, 0x8d, 0xeb, 0x19, 0x8e, 0x67, 0x5a, 0xa7, 0xba, 0x67, - 0xbf, 0xc4, 0x16, 0x3b, 0x4e, 0x73, 0x01, 0xb4, 0xe9, 0x03, 0x95, 0xdf, 0x4a, 0xb0, 0x10, 0x31, - 0x83, 0x2d, 0xeb, 0x3e, 0x14, 0x02, 0xd9, 0x34, 0x0b, 0x5d, 0x27, 0x76, 0x08, 0x48, 0xab, 0x74, - 0x13, 0x02, 0x72, 0xb4, 0x0a, 0x60, 0xe1, 0x57, 0x1e, 0x53, 0x4a, 0x57, 0x5d, 0xf4, 0x21, 0x44, - 0xa1, 0x7c, 0x0f, 0xf2, 0x74, 0x2b, 0xce, 0xd5, 0x1e, 0xfc, 0x2a, 0x03, 0x68, 0x07, 0x7b, 0x61, - 0x05, 0x38, 0xa1, 0x97, 0x12, 0x42, 0x37, 0x33, 0x69, 0xe8, 0xee, 0x44, 0x5a, 0x47, 0x1a, 0xf9, - 0xef, 0x06, 0xb3, 0x94, 0x98, 0x71, 0x69, 0x9d, 0xe3, 0x1b, 0xb6, 0x6e, 0xca, 0x36, 0x2c, 0x44, - 0x14, 0xb2, 0xcd, 0x7a, 0x0f, 0x90, 0x71, 0x66, 0x98, 0x1d, 0xe3, 0xb8, 0x43, 0x57, 0xea, 0x63, - 0x59, 0x0d, 0x3b, 0x1f, 0x62, 0x02, 0x36, 0xe5, 0xfb, 0x7c, 0x2e, 0x67, 0xf2, 0x5e, 0x77, 0x30, - 0x63, 0xf2, 0xc9, 0x6a, 0x44, 0x16, 0xb3, 0x6f, 0x5b, 0x38, 0x9c, 0x59, 0x8b, 0x65, 0x69, 0x36, - 0x07, 0x49, 0x9c, 0xd3, 0xfc, 0x26, 0x03, 0x2b, 0x29, 0xd4, 0xe8, 0x3e, 0x64, 0x9d, 0x5e, 0x8b, - 0x99, 0xfb, 0xce, 0x38, 0xe1, 0x55, 0xed, 0xa0, 0xb6, 0x3b, 0xa5, 0xf9, 0x2c, 0xf2, 0x9f, 0x24, - 0xc8, 0x6a, 0x07, 0x35, 0xf4, 0x30, 0x32, 0xae, 0xf9, 0xd6, 0x79, 0x44, 0xf0, 0x53, 0x1b, 0x5b, - 0x34, 0xb5, 0xa9, 0xc0, 0x62, 0x4d, 0x53, 0x37, 0x9b, 0xaa, 0xbe, 0xad, 0xee, 0xa9, 0x4d, 0x55, - 0x7f, 0xb6, 0xbf, 0x77, 0xf4, 0x54, 0x2d, 0x4b, 0x7e, 0x8f, 0x74, 0x70, 0xb4, 0xb5, 0x57, 0x3f, - 0xdc, 0xd5, 0x8f, 0x1a, 0xc1, 0x2f, 0x86, 0xcd, 0xa0, 0x32, 0xcc, 0xee, 0xd5, 0x0f, 0x9b, 0x0c, - 0x70, 0x58, 0xce, 0xfa, 0x90, 0x1d, 0xb5, 0xa9, 0xd7, 0x36, 0x0f, 0x36, 0x6b, 0xf5, 0xe6, 0xa7, - 0xe5, 0x5c, 0x38, 0xf9, 0xf9, 0x73, 0x1e, 0x96, 0x1a, 0x76, 0x1b, 0x1f, 0x7a, 0xc6, 0xe9, 0x45, - 0xf4, 0x03, 0xfb, 0xb1, 0xba, 0x84, 0x1e, 0x80, 0x7b, 0x44, 0x92, 0x58, 0x6f, 0x7a, 0x39, 0x82, - 0xaa, 0xb0, 0xe0, 0x7a, 0xc6, 0x29, 0xc9, 0x4d, 0x86, 0x73, 0x8a, 0x3d, 0xbd, 0x67, 0x78, 0x2f, - 0x48, 0xe9, 0x5b, 0xd4, 0xe6, 0x19, 0xaa, 0x49, 0x30, 0x07, 0x86, 0xf7, 0x42, 0x5c, 0x28, 0xe7, - 0x27, 0x2b, 0x94, 0x5f, 0xc2, 0x12, 0x29, 0x2c, 0x7c, 0xe9, 0xa2, 0x69, 0xcd, 0x07, 0x69, 0xcb, - 0x09, 0xc1, 0x23, 0x05, 0xc2, 0xa2, 0x25, 0x40, 0xa1, 0x1f, 0x27, 0xd7, 0xba, 0xdf, 0x4d, 0xd3, - 0x73, 0xde, 0x0b, 0xee, 0x0d, 0xeb, 0x39, 0x79, 0x07, 0xae, 0x26, 0x2e, 0xe9, 0xed, 0xd7, 0xc6, - 0x57, 0x61, 0x79, 0xc4, 0x1f, 0xac, 0xce, 0xf9, 0x47, 0x06, 0x2a, 0x3e, 0xee, 0xc8, 0x72, 0x2f, - 0x28, 0xb8, 0x13, 0x62, 0x31, 0x9b, 0x14, 0x8b, 0x2e, 0x54, 0x48, 0x1c, 0xf5, 0xad, 0xd1, 0x48, - 0xca, 0x71, 0xdd, 0x4c, 0x92, 0xd5, 0x3c, 0x62, 0x24, 0x9a, 0x48, 0x88, 0x8e, 0x22, 0xe5, 0x3a, - 0xac, 0xa4, 0xb0, 0x4d, 0xe4, 0xec, 0x15, 0xba, 0xf5, 0x31, 0xd3, 0x98, 0xbb, 0x7f, 0x31, 0x4d, - 0xdd, 0x7d, 0x71, 0xcd, 0xf0, 0x27, 0xc2, 0x5c, 0x52, 0x0d, 0x5d, 0x26, 0x6c, 0xfd, 0xbe, 0xd9, - 0x6c, 0x72, 0x03, 0x4a, 0x3c, 0x5d, 0x9e, 0xd0, 0x81, 0x37, 0x26, 0xdd, 0x4c, 0xbf, 0x7e, 0x5f, - 0x5e, 0x88, 0xf5, 0xe5, 0x41, 0x08, 0x89, 0x3a, 0x98, 0x99, 0x58, 0x08, 0x09, 0xfd, 0xc1, 0x21, - 0xc4, 0x21, 0x24, 0x68, 0xbf, 0xbf, 0x10, 0xa5, 0xa4, 0x22, 0xd1, 0xf6, 0x7e, 0xba, 0xb6, 0xb7, - 0x95, 0x94, 0x58, 0x90, 0xff, 0xdf, 0xb4, 0xec, 0xec, 0xa4, 0x08, 0xfb, 0x6d, 0xe5, 0xef, 0x19, - 0x90, 0xe9, 0x39, 0xba, 0xb8, 0x5e, 0x38, 0x16, 0xa8, 0xd9, 0x91, 0x40, 0xfd, 0x29, 0xc8, 0x2c, - 0x17, 0x25, 0x37, 0xc3, 0x0f, 0xb9, 0x6c, 0xd4, 0x4b, 0x0a, 0xa6, 0xe4, 0x06, 0xb8, 0x62, 0x25, - 0xa0, 0xe5, 0x27, 0xb0, 0x9a, 0xca, 0x3a, 0x91, 0xaf, 0x57, 0x83, 0x04, 0x27, 0x6e, 0x77, 0x3f, - 0x82, 0xb2, 0x8f, 0xde, 0xc1, 0x5e, 0xbd, 0x3d, 0x69, 0x89, 0x7a, 0x0f, 0xe6, 0x39, 0x5e, 0x56, - 0x92, 0x72, 0x63, 0x06, 0x89, 0x1f, 0x33, 0x28, 0xdb, 0x74, 0x5b, 0xdf, 0xb0, 0x2c, 0xfe, 0x9c, - 0x2e, 0x27, 0xa9, 0x20, 0x7e, 0x14, 0x2b, 0x88, 0x69, 0x8b, 0x25, 0x0f, 0x2b, 0x83, 0x31, 0xa5, - 0xf0, 0x5f, 0x24, 0xb8, 0x22, 0xa4, 0x43, 0xeb, 0x7c, 0x11, 0x7c, 0x3d, 0x59, 0x20, 0x5f, 0xfe, - 0x76, 0x69, 0xf5, 0xfb, 0xbd, 0x48, 0xf5, 0x7b, 0x2b, 0x9d, 0x97, 0xaf, 0x7b, 0xdf, 0x4b, 0xa8, - 0x7b, 0x0f, 0x9b, 0x9b, 0x3b, 0xaa, 0x7e, 0xd4, 0xa0, 0x7f, 0x83, 0xba, 0x37, 0xa8, 0x5a, 0xd7, - 0xff, 0x96, 0x81, 0x99, 0x3a, 0x89, 0x18, 0x6f, 0x80, 0x3e, 0x27, 0x0f, 0xe8, 0x23, 0x4f, 0xfd, - 0x68, 0x2d, 0xe8, 0xb2, 0x92, 0xfe, 0x49, 0x40, 0xbe, 0x99, 0x42, 0xc1, 0xa2, 0x67, 0x0a, 0xed, - 0xc2, 0x5c, 0xe4, 0xd5, 0x1b, 0x5d, 0x15, 0xbd, 0x84, 0x53, 0x81, 0x72, 0xf2, 0x23, 0xb9, 0x32, - 0x85, 0xbe, 0xe0, 0x1e, 0xea, 0x23, 0x3d, 0xe2, 0xcd, 0x28, 0x9b, 0x20, 0x7a, 0x64, 0x25, 0x8d, - 0x24, 0xd4, 0xf0, 0x1d, 0xc8, 0x93, 0xf7, 0x58, 0x34, 0x4f, 0xdf, 0x8b, 0xb9, 0x37, 0x5d, 0x19, - 0xf1, 0xa0, 0x80, 0x63, 0xfd, 0x5f, 0x79, 0x80, 0x61, 0x9f, 0x82, 0x54, 0x98, 0xe5, 0x1f, 0xe4, - 0x50, 0x25, 0xe9, 0x1d, 0x52, 0xbe, 0x2a, 0xc0, 0x84, 0x76, 0xa8, 0x30, 0xcb, 0x8f, 0xcd, 0x99, - 0x18, 0xc1, 0xb8, 0x9f, 0x89, 0x11, 0xce, 0xd8, 0xa7, 0xd0, 0x09, 0x2c, 0x27, 0xcc, 0x2e, 0xd1, - 0xad, 0x73, 0x8c, 0x7d, 0xe5, 0x77, 0xce, 0x33, 0xfe, 0x54, 0xa6, 0x50, 0x07, 0xae, 0x26, 0x8e, - 0xcd, 0xd0, 0xed, 0x73, 0x4d, 0x04, 0xe5, 0x3b, 0xe3, 0xc8, 0x42, 0x6d, 0x36, 0xc8, 0xc9, 0xc3, - 0x21, 0x74, 0xe7, 0x7c, 0xf3, 0x2c, 0xf9, 0xdd, 0xb1, 0x74, 0xa1, 0xc2, 0x2d, 0x28, 0x71, 0xc3, - 0x17, 0xb4, 0x3c, 0x3a, 0x8e, 0xa1, 0x22, 0x2b, 0x49, 0x73, 0x1a, 0x2a, 0x83, 0x1b, 0x1f, 0x30, - 0x19, 0xa3, 0x13, 0x0c, 0x26, 0x43, 0x30, 0x69, 0x88, 0xbb, 0x39, 0x96, 0xdf, 0x46, 0xdc, 0x2c, - 0xce, 0xa2, 0x23, 0x6e, 0x4e, 0x48, 0x93, 0xca, 0xd4, 0xfa, 0x7f, 0xb3, 0x90, 0xf3, 0x73, 0x10, - 0x6a, 0xc0, 0xe5, 0x58, 0x8b, 0x80, 0x56, 0x52, 0x1a, 0x29, 0xf9, 0x9a, 0x18, 0x19, 0x2e, 0xa3, - 0x49, 0x2f, 0x85, 0x48, 0x15, 0x8c, 0x56, 0x53, 0x0b, 0x77, 0xf9, 0x7a, 0x12, 0x3a, 0x2e, 0x35, - 0x1a, 0xe5, 0xab, 0xa9, 0xd5, 0x15, 0x27, 0x35, 0x29, 0xb2, 0x3f, 0x83, 0x05, 0xc1, 0xdd, 0x88, - 0x6e, 0x8c, 0xb9, 0xd8, 0xe5, 0xb5, 0x64, 0x82, 0x50, 0xf6, 0xc7, 0x50, 0x0c, 0x2f, 0x47, 0x74, - 0x25, 0x64, 0xe0, 0x2f, 0x5a, 0x79, 0x29, 0x0e, 0x8e, 0x5b, 0x16, 0x0f, 0x83, 0x1b, 0x3c, 0x83, - 0x28, 0x00, 0xd6, 0x92, 0x09, 0x02, 0xd9, 0xc7, 0xd3, 0xe4, 0xff, 0xc4, 0xde, 0xff, 0x5f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x2a, 0x1b, 0xdc, 0x39, 0x34, 0x26, 0x00, 0x00, + // 2173 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4d, 0x53, 0xe3, 0xc8, + 0x15, 0xf9, 0x0b, 0x78, 0x06, 0xd6, 0xd3, 0x30, 0x83, 0x11, 0x30, 0x03, 0x62, 0x67, 0x96, 0xfd, + 0xf2, 0x26, 0x24, 0xd9, 0xda, 0xec, 0x90, 0x49, 0xc0, 0x28, 0xe0, 0xc5, 0x18, 0x4a, 0x18, 0xa6, + 0x76, 0xb2, 0x29, 0xad, 0xb0, 0x1b, 0x46, 0x19, 0x23, 0x79, 0x24, 0x99, 0x1a, 0x6e, 0xa9, 0x5c, + 0x52, 0x95, 0x5b, 0xee, 0x49, 0xa5, 0x2a, 0xc7, 0x9c, 0x73, 0x48, 0x55, 0xaa, 0xe6, 0x9c, 0xaa, + 0xfc, 0x81, 0x9c, 0xf2, 0x03, 0x52, 0x39, 0xe6, 0x94, 0x53, 0x4a, 0xdd, 0x2d, 0xb9, 0x25, 0xb7, + 0x64, 0x7b, 0x67, 0x6a, 0x2b, 0x27, 0xac, 0xf7, 0xdd, 0xaf, 0xdf, 0x7b, 0xfd, 0x5e, 0x37, 0x30, + 0xdd, 0x72, 0xcd, 0x4a, 0xd7, 0xb1, 0x3d, 0x1b, 0x15, 0xfc, 0x9f, 0x37, 0xdf, 0x51, 0xee, 0xc1, + 0xc2, 0x3e, 0xf6, 0x4e, 0x3a, 0xbd, 0x2b, 0xd3, 0xaa, 0x59, 0x97, 0xb6, 0x86, 0x5f, 0xf6, 0xb0, + 0xeb, 0x29, 0xff, 0x90, 0xe0, 0x6e, 0x0c, 0xe1, 0x76, 0x6d, 0xcb, 0xc5, 0x08, 0x41, 0xce, 0x32, + 0xae, 0x71, 0x59, 0x5a, 0x93, 0x36, 0xa7, 0x35, 0xf2, 0x1b, 0x3d, 0x84, 0xb9, 0x1b, 0x6c, 0xb5, + 0x6d, 0x47, 0xbf, 0xc1, 0x8e, 0x6b, 0xda, 0x56, 0x39, 0x43, 0xb0, 0xb3, 0x14, 0x7a, 0x4e, 0x81, + 0x68, 0x1f, 0xa6, 0xae, 0x0d, 0xcb, 0xbc, 0xc4, 0xae, 0x57, 0xce, 0xae, 0x65, 0x37, 0x8b, 0x5b, + 0x1f, 0x56, 0xa8, 0x1d, 0x15, 0xa1, 0xae, 0xca, 0x11, 0xa3, 0x56, 0x2d, 0xcf, 0xb9, 0xd5, 0x42, + 0x66, 0xf9, 0x31, 0xcc, 0x46, 0x50, 0xa8, 0x04, 0xd9, 0x17, 0xf8, 0x96, 0xd9, 0xe4, 0xff, 0x44, + 0x0b, 0x90, 0xbf, 0x31, 0x3a, 0x3d, 0xcc, 0x2c, 0xa1, 0x1f, 0x9f, 0x67, 0x3e, 0x93, 0x94, 0xfb, + 0xb0, 0x12, 0x6a, 0xab, 0x1a, 0x5d, 0xe3, 0xc2, 0xec, 0x98, 0x9e, 0x89, 0xdd, 0x60, 0xe9, 0x3f, + 0x87, 0xd5, 0x04, 0x3c, 0xf3, 0xc0, 0x36, 0xcc, 0xb4, 0x38, 0x78, 0x39, 0x43, 0x96, 0x52, 0x0e, + 0x96, 0x12, 0xe3, 0xbc, 0xd5, 0x22, 0xd4, 0xca, 0xdf, 0x25, 0x28, 0xc5, 0x49, 0xd0, 0x36, 0x4c, + 0xba, 0xd8, 0xb9, 0x31, 0x5b, 0xd4, 0xaf, 0xc5, 0xad, 0xb5, 0x24, 0x69, 0x95, 0x53, 0x4a, 0x77, + 0x30, 0xa1, 0x05, 0x2c, 0xf2, 0x4b, 0x98, 0x64, 0x50, 0xf4, 0x43, 0xc8, 0x79, 0xb7, 0x5d, 0x2a, + 0x65, 0x6e, 0xeb, 0xe1, 0x30, 0x29, 0x95, 0xe6, 0x6d, 0x17, 0x6b, 0x84, 0x45, 0xf9, 0x10, 0x72, + 0xfe, 0x17, 0x2a, 0xc2, 0xe4, 0x59, 0xe3, 0xb0, 0x71, 0xfc, 0xb4, 0x51, 0x9a, 0x40, 0xf7, 0x00, + 0x55, 0x8f, 0x1b, 0x4d, 0xed, 0xb8, 0x5e, 0x57, 0x35, 0xfd, 0x54, 0xd5, 0xce, 0x6b, 0x55, 0xb5, + 0x24, 0xed, 0x16, 0xa8, 0x1e, 0x65, 0x0e, 0x66, 0x4e, 0x1c, 0xfb, 0x02, 0x07, 0xce, 0x7b, 0x07, + 0x66, 0xd9, 0x37, 0x75, 0x96, 0xf2, 0xcb, 0x1c, 0xcc, 0x57, 0x1d, 0x6c, 0x78, 0xf8, 0xdc, 0xee, + 0xf4, 0xae, 0x03, 0x42, 0x61, 0x18, 0x6d, 0xc3, 0x9c, 0xef, 0xaa, 0x96, 0xe9, 0xdd, 0xea, 0x8e, + 0x61, 0x5d, 0xd1, 0xcd, 0x2b, 0x6e, 0xdd, 0x0d, 0x96, 0x51, 0x65, 0x58, 0xcd, 0x47, 0x6a, 0xb3, + 0x2d, 0xfe, 0x13, 0xd5, 0x60, 0xfe, 0x86, 0xa8, 0xd0, 0x23, 0xbb, 0x93, 0x8d, 0xee, 0x0e, 0xb5, + 0x82, 0xdb, 0x1d, 0x74, 0x13, 0x85, 0x98, 0xd8, 0x45, 0x87, 0x00, 0x5d, 0xc3, 0x31, 0xae, 0xb1, + 0x87, 0x1d, 0xb7, 0x9c, 0x8b, 0x86, 0xaa, 0x60, 0x35, 0x95, 0x93, 0x90, 0x9a, 0x86, 0x2a, 0xc7, + 0x8e, 0x3c, 0x58, 0x6a, 0xd9, 0x96, 0xe7, 0xd8, 0x9d, 0x0e, 0x76, 0xf4, 0x16, 0xe1, 0xd6, 0x5d, + 0xdc, 0x72, 0xb0, 0xe7, 0x96, 0xf3, 0x44, 0xf6, 0x67, 0x69, 0xb2, 0xab, 0x21, 0x33, 0xc5, 0x9e, + 0x52, 0x56, 0xaa, 0x68, 0xb1, 0x25, 0xc6, 0xca, 0x3f, 0x82, 0x77, 0x62, 0x46, 0x8d, 0x93, 0x24, + 0xf2, 0x17, 0xb0, 0x92, 0xa6, 0x77, 0xac, 0x84, 0x7b, 0x02, 0x0b, 0xd1, 0x75, 0xb1, 0x3c, 0x7a, + 0x04, 0x05, 0xea, 0x7b, 0x16, 0xf3, 0x73, 0xd1, 0x3d, 0xd2, 0x18, 0x56, 0xf9, 0x53, 0x0e, 0x4a, + 0xf1, 0x6d, 0x43, 0xdb, 0x90, 0xbf, 0xe8, 0xd8, 0xad, 0x17, 0x8c, 0xf7, 0xdd, 0xa4, 0xfd, 0xad, + 0xec, 0xfa, 0x54, 0x14, 0x7a, 0x30, 0xa1, 0x51, 0x26, 0x9f, 0xfb, 0xda, 0xee, 0x59, 0x1e, 0x0b, + 0xb0, 0x64, 0xee, 0x23, 0x9f, 0xaa, 0xcf, 0x4d, 0x98, 0xd0, 0x1e, 0x14, 0x8d, 0x56, 0x0b, 0xbb, + 0xae, 0x7e, 0x6d, 0xb7, 0x71, 0x39, 0x4b, 0x64, 0x6c, 0x24, 0xca, 0xd8, 0x21, 0xb4, 0x47, 0x76, + 0x1b, 0x6b, 0x60, 0x84, 0xbf, 0xe5, 0x59, 0x28, 0x72, 0xb6, 0xc9, 0xfb, 0x50, 0xe4, 0x94, 0xa1, + 0x45, 0x98, 0xbc, 0x74, 0xf5, 0x30, 0x97, 0xa7, 0xb5, 0xc2, 0xa5, 0x4b, 0xd2, 0xf3, 0x01, 0x14, + 0x89, 0x15, 0xfa, 0x65, 0xc7, 0xb8, 0xa2, 0xc5, 0x67, 0x5a, 0x03, 0x02, 0xfa, 0xa9, 0x0f, 0x91, + 0xff, 0x2d, 0x01, 0xf4, 0x55, 0xa2, 0x6d, 0xc8, 0x11, 0x2b, 0x69, 0x45, 0xd8, 0x1c, 0xc1, 0xca, + 0x0a, 0x31, 0x95, 0x70, 0x29, 0x7f, 0x90, 0x20, 0x47, 0xc4, 0xc4, 0xab, 0xc2, 0x69, 0xad, 0xb1, + 0x5f, 0x57, 0xf5, 0xc6, 0xf1, 0x9e, 0xaa, 0x3f, 0xd5, 0x6a, 0x4d, 0x55, 0x2b, 0x49, 0x68, 0x19, + 0x16, 0x79, 0xb8, 0xa6, 0xee, 0xec, 0xa9, 0x9a, 0x7e, 0xdc, 0xa8, 0x7f, 0x59, 0xca, 0x20, 0x19, + 0xee, 0x1d, 0x9d, 0xd5, 0x9b, 0xb5, 0x41, 0x5c, 0x16, 0xad, 0x40, 0x99, 0xc3, 0x31, 0x19, 0x4c, + 0x6c, 0xce, 0x17, 0xcb, 0x61, 0xe9, 0x4f, 0x86, 0xcc, 0xef, 0xce, 0x86, 0x9b, 0x41, 0x0a, 0xd2, + 0x53, 0x98, 0x8d, 0x54, 0x09, 0xff, 0x6c, 0x72, 0xf0, 0xcb, 0x9e, 0xe9, 0xe0, 0xb6, 0x7e, 0x71, + 0xeb, 0x61, 0x97, 0x78, 0x22, 0xab, 0xcd, 0x06, 0xd0, 0x5d, 0x1f, 0xe8, 0xbb, 0xb5, 0x63, 0x5e, + 0x9b, 0x1e, 0xa3, 0xc9, 0x10, 0x1a, 0x20, 0x20, 0x42, 0xa0, 0xbc, 0x96, 0xa0, 0xc0, 0xf6, 0xe6, + 0x21, 0x57, 0xa7, 0x22, 0x22, 0x03, 0x28, 0x15, 0x39, 0x07, 0x19, 0xb3, 0xcd, 0xd2, 0x21, 0x63, + 0xb6, 0xd1, 0x13, 0x00, 0xc3, 0xf3, 0x1c, 0xf3, 0xa2, 0xe7, 0x85, 0x75, 0xe9, 0x7e, 0x74, 0x3f, + 0x2a, 0x3b, 0x21, 0x01, 0x2b, 0x24, 0x7d, 0x0e, 0x3f, 0xa5, 0x63, 0xe8, 0xb1, 0xd2, 0xf0, 0x3f, + 0x12, 0xcc, 0xef, 0xe1, 0x0e, 0x8e, 0x57, 0xe2, 0x65, 0x98, 0x66, 0x75, 0xd3, 0x6c, 0x33, 0x49, + 0x53, 0x14, 0x50, 0x6b, 0xc7, 0x8a, 0x57, 0x9b, 0xb0, 0x87, 0xc5, 0x2b, 0x13, 0x2d, 0x5e, 0x02, + 0xe1, 0x5c, 0xf1, 0xa2, 0xd8, 0xa4, 0xe2, 0x15, 0xc1, 0x46, 0xab, 0xcf, 0x20, 0xe3, 0x58, 0xcb, + 0xbe, 0x07, 0x0b, 0x51, 0xc3, 0xd8, 0xc1, 0xf4, 0xd7, 0x1c, 0xdc, 0xef, 0x2b, 0x39, 0xe9, 0x5d, + 0x74, 0x4c, 0xf7, 0xf9, 0x18, 0x9e, 0x59, 0x84, 0x49, 0xcb, 0x6e, 0x13, 0x14, 0xd5, 0x59, 0xf0, + 0x3f, 0x6b, 0x6d, 0xa4, 0xc2, 0x9d, 0xf8, 0x39, 0x74, 0xcb, 0x6a, 0x44, 0xf2, 0x29, 0x54, 0xba, + 0x89, 0x17, 0x38, 0x19, 0xa6, 0x1c, 0x6c, 0xb4, 0x6d, 0xab, 0x73, 0x5b, 0xce, 0xad, 0x49, 0x9b, + 0x53, 0x5a, 0xf8, 0x8d, 0x7e, 0x25, 0x81, 0xcc, 0x6d, 0x4b, 0x97, 0x1a, 0x1f, 0x3b, 0x54, 0xf6, + 0xc2, 0x43, 0x25, 0x75, 0x95, 0x83, 0xe8, 0xc8, 0x1e, 0x95, 0x5b, 0x09, 0x68, 0x64, 0x86, 0xeb, + 0xe4, 0xa2, 0xba, 0x40, 0x54, 0x6f, 0x8f, 0xa8, 0x9a, 0x7e, 0xc5, 0x63, 0x9e, 0xf9, 0xa2, 0x0f, + 0x96, 0x0f, 0x61, 0x35, 0xd5, 0xca, 0xb1, 0x8e, 0xb6, 0x2a, 0xdc, 0x15, 0xea, 0x1d, 0x2b, 0xaa, + 0x5e, 0x4b, 0xf0, 0x20, 0x71, 0x71, 0xec, 0x7c, 0xfb, 0x19, 0xcc, 0x04, 0x3b, 0x63, 0x5a, 0x97, + 0x76, 0x59, 0x8a, 0x9d, 0xf5, 0xe9, 0xec, 0x15, 0x06, 0xf5, 0x1b, 0x62, 0xea, 0x97, 0x62, 0xb7, + 0x0f, 0x91, 0x9f, 0x40, 0x29, 0x4e, 0x30, 0xd6, 0x02, 0xfe, 0x9c, 0x81, 0xb5, 0xbe, 0x05, 0x67, + 0x56, 0xf7, 0xed, 0x25, 0xc0, 0x6f, 0x24, 0x58, 0xe1, 0xa2, 0xb3, 0x67, 0xc5, 0xe3, 0x93, 0x96, + 0xbe, 0x83, 0x41, 0x47, 0x88, 0xcd, 0x10, 0x11, 0x44, 0x62, 0x94, 0xcb, 0x85, 0x38, 0x81, 0x7c, + 0xc4, 0xef, 0x93, 0x90, 0x7d, 0x2c, 0xb7, 0x6d, 0xc0, 0x7a, 0x8a, 0xb9, 0xac, 0xb4, 0xbc, 0xce, + 0xc0, 0xfa, 0xb9, 0xd1, 0x31, 0xdb, 0x61, 0xcf, 0x23, 0x98, 0x33, 0xd2, 0x9d, 0x9b, 0xd0, 0xcc, + 0x66, 0xbe, 0x41, 0x33, 0xdb, 0x11, 0xe5, 0x29, 0xdd, 0x82, 0x1f, 0x87, 0x82, 0x86, 0x59, 0x3b, + 0x72, 0xaa, 0xbe, 0x95, 0xec, 0xfa, 0x0a, 0x94, 0x34, 0x8b, 0x58, 0x7e, 0xad, 0xc0, 0xb4, 0xdb, + 0xeb, 0x76, 0x6d, 0xc7, 0xc3, 0xd4, 0x81, 0x53, 0x5a, 0x1f, 0x80, 0xca, 0x30, 0x79, 0x8d, 0x5d, + 0xd7, 0xb8, 0x0a, 0xe4, 0x07, 0x9f, 0xca, 0x57, 0x80, 0xea, 0xa6, 0xcb, 0x1a, 0xad, 0x70, 0x3b, + 0xfc, 0xbe, 0xca, 0x78, 0xa5, 0x63, 0xcb, 0x73, 0x4c, 0x76, 0xa2, 0xe7, 0x35, 0xb8, 0x36, 0x5e, + 0xa9, 0x14, 0xe2, 0x9f, 0xfa, 0xae, 0x67, 0x38, 0x9e, 0x69, 0x5d, 0xe9, 0x9e, 0xfd, 0x02, 0x87, + 0x43, 0x6e, 0x00, 0x6d, 0xfa, 0x40, 0xe5, 0x8f, 0x12, 0xcc, 0x47, 0xc4, 0x33, 0x6b, 0x1f, 0xc3, + 0x64, 0x5f, 0xb6, 0xef, 0xfc, 0xf5, 0xc0, 0xf9, 0x02, 0xea, 0x0a, 0x75, 0x6f, 0xc0, 0x81, 0x56, + 0x01, 0x2c, 0xfc, 0xca, 0x8b, 0xe8, 0x9d, 0xf6, 0x21, 0x44, 0xa7, 0xfc, 0x09, 0xe4, 0xa9, 0x93, + 0x47, 0x6d, 0xa9, 0xff, 0x25, 0x01, 0xda, 0xc7, 0x5e, 0xd8, 0x29, 0x31, 0x1f, 0x24, 0x44, 0x9d, + 0xf4, 0x0d, 0xa2, 0xee, 0x8b, 0xc8, 0x08, 0x45, 0xe3, 0xf6, 0x03, 0x6e, 0xda, 0x8f, 0xa9, 0x4e, + 0x9b, 0xa0, 0xde, 0x70, 0x96, 0x51, 0xf6, 0x60, 0x3e, 0xa2, 0x90, 0x6d, 0xc8, 0xc7, 0x80, 0x8c, + 0x1b, 0xc3, 0xec, 0x18, 0x17, 0x1d, 0xba, 0x5e, 0x1f, 0xcb, 0x3a, 0xb9, 0x3b, 0x21, 0x26, 0x60, + 0x53, 0x14, 0xbe, 0x5e, 0x32, 0x79, 0xf1, 0xab, 0x83, 0x0e, 0x5f, 0x1d, 0x06, 0x68, 0x98, 0xde, + 0x7d, 0xe1, 0xf5, 0xc1, 0xc6, 0x60, 0x35, 0x64, 0x33, 0x7a, 0xe2, 0x4d, 0xc2, 0xef, 0x33, 0xb0, + 0x9c, 0x42, 0x8d, 0x1e, 0x43, 0xd6, 0xe9, 0xb6, 0x58, 0x24, 0xbc, 0x37, 0x82, 0xfc, 0x8a, 0x76, + 0x52, 0x3d, 0x98, 0xd0, 0x7c, 0x2e, 0xf9, 0x2f, 0x12, 0x64, 0xb5, 0x93, 0x2a, 0xfa, 0x49, 0xe4, + 0x42, 0xe1, 0xa3, 0x11, 0xa5, 0xf0, 0xf7, 0x0a, 0xb6, 0xe8, 0x5e, 0xa1, 0x0c, 0x0b, 0x55, 0x4d, + 0xdd, 0x69, 0xaa, 0xfa, 0x9e, 0x5a, 0x57, 0x9b, 0xaa, 0x7e, 0x7e, 0x5c, 0x3f, 0x3b, 0x52, 0x4b, + 0x92, 0x3f, 0x0a, 0x9c, 0x9c, 0xed, 0xd6, 0x6b, 0xa7, 0x07, 0xfa, 0x59, 0x23, 0xf8, 0xc5, 0xb0, + 0x19, 0x54, 0x82, 0x99, 0x7a, 0xed, 0xb4, 0xc9, 0x00, 0xa7, 0xa5, 0xac, 0x0f, 0xd9, 0x57, 0x9b, + 0x7a, 0x75, 0xe7, 0x64, 0xa7, 0x5a, 0x6b, 0x7e, 0x59, 0xca, 0x85, 0x77, 0x13, 0xbf, 0xcd, 0xc3, + 0xbd, 0x86, 0xdd, 0xc6, 0xa7, 0x9e, 0x71, 0x35, 0x4e, 0xcf, 0xab, 0xc5, 0xce, 0x6d, 0xba, 0x41, + 0x9f, 0x04, 0x4b, 0x17, 0x8b, 0x4c, 0x3f, 0xae, 0x51, 0x05, 0xe6, 0x5d, 0xcf, 0xb8, 0x22, 0xb5, + 0xc3, 0x70, 0xae, 0xb0, 0xa7, 0x77, 0x0d, 0xef, 0x39, 0x69, 0x0b, 0xa7, 0xb5, 0x3b, 0x0c, 0xd5, + 0x24, 0x98, 0x13, 0xc3, 0x7b, 0x2e, 0x6e, 0x22, 0x73, 0x63, 0x37, 0x91, 0x17, 0x80, 0xc8, 0x19, + 0xed, 0x2b, 0x88, 0x5f, 0x3a, 0x7c, 0x7f, 0xc8, 0x82, 0x42, 0x70, 0xe4, 0xac, 0x2d, 0x59, 0x31, + 0x30, 0x32, 0x92, 0xfb, 0xc0, 0x61, 0x2a, 0x46, 0x3d, 0x54, 0xde, 0xb0, 0xd9, 0xf1, 0x0f, 0x25, + 0xe1, 0x6a, 0xbe, 0xfd, 0xbe, 0x71, 0x09, 0x16, 0x07, 0x7c, 0xc1, 0xba, 0x86, 0x2b, 0x28, 0xfb, + 0xa8, 0x33, 0xcb, 0x1d, 0x33, 0x5e, 0x13, 0x62, 0x2b, 0x93, 0x10, 0x5b, 0xca, 0x32, 0x2c, 0x09, + 0x14, 0x31, 0x2b, 0xfe, 0x99, 0xa7, 0x66, 0x8c, 0x3f, 0x10, 0x35, 0x85, 0x69, 0xf3, 0x5d, 0x3e, + 0x04, 0x84, 0x43, 0xc0, 0xdb, 0x4d, 0x9c, 0x07, 0x50, 0xe4, 0xe9, 0x72, 0x84, 0x0e, 0xbc, 0x21, + 0x99, 0x95, 0x7f, 0xa3, 0xf1, 0xac, 0x10, 0x1b, 0xcf, 0x7e, 0x01, 0x0b, 0x24, 0xeb, 0xe2, 0x7d, + 0xef, 0x64, 0x74, 0x00, 0x48, 0xf4, 0x08, 0x87, 0x88, 0xe4, 0x1e, 0xc9, 0xe5, 0xd8, 0x14, 0xd6, + 0x12, 0x65, 0xdf, 0x14, 0x51, 0xf4, 0xe9, 0x50, 0x45, 0xdf, 0x56, 0xfe, 0xa9, 0x34, 0xea, 0xff, + 0x2f, 0x26, 0x37, 0x16, 0xfd, 0xc2, 0x99, 0x4b, 0x79, 0x06, 0x32, 0x4d, 0x8d, 0xf1, 0xc7, 0xa1, + 0x58, 0xe0, 0x65, 0xe2, 0x81, 0xa7, 0xac, 0xc2, 0xb2, 0x50, 0x36, 0x53, 0x8d, 0xa0, 0xe4, 0xa3, + 0xf7, 0xb1, 0x57, 0x6b, 0x07, 0xfd, 0xc4, 0x47, 0x70, 0x87, 0x83, 0xb1, 0xfe, 0x81, 0x9b, 0xbb, + 0x24, 0x7e, 0xee, 0x52, 0x56, 0xa8, 0xf1, 0x09, 0xbd, 0xc9, 0xd7, 0x54, 0x7d, 0x52, 0x57, 0xb2, + 0x13, 0xeb, 0x4a, 0x68, 0xcf, 0xb7, 0x1a, 0x29, 0xe0, 0x43, 0xfa, 0x91, 0xbf, 0x49, 0xac, 0xcc, + 0x0e, 0x74, 0x22, 0x3f, 0xe0, 0x3b, 0x91, 0xf5, 0x54, 0x99, 0x7c, 0x0f, 0xd2, 0xa5, 0x2d, 0xc8, + 0xe7, 0x91, 0x16, 0xe4, 0xd1, 0x50, 0x76, 0xbe, 0xf9, 0xf8, 0x38, 0xa1, 0xf9, 0x38, 0x6d, 0xee, + 0xec, 0xab, 0xfa, 0x59, 0x83, 0xfe, 0x0d, 0x9a, 0x8f, 0xa0, 0x75, 0xd8, 0xfa, 0xaf, 0x04, 0x53, + 0xb5, 0x36, 0xb6, 0x3c, 0xdf, 0xfa, 0x06, 0xcc, 0x46, 0x9e, 0xa7, 0xd0, 0x4a, 0xc2, 0xab, 0x15, + 0x71, 0xb4, 0xbc, 0x9a, 0xfa, 0xa6, 0xa5, 0x4c, 0xa0, 0x4b, 0xee, 0x69, 0x2d, 0xd2, 0x33, 0xbf, + 0x3b, 0xc0, 0x29, 0xd8, 0x48, 0xf9, 0xe1, 0x10, 0xaa, 0x50, 0xcf, 0xa7, 0x90, 0x27, 0x6f, 0x31, + 0x68, 0x21, 0x7c, 0x06, 0xe2, 0x9e, 0x6a, 0xe4, 0xbb, 0x31, 0x68, 0xc0, 0xb7, 0xf5, 0xeb, 0x02, + 0x40, 0xbf, 0xbf, 0x43, 0x87, 0x30, 0xc3, 0x5f, 0xdf, 0xa3, 0xe5, 0x94, 0xc7, 0x0a, 0x79, 0x45, + 0x8c, 0x0c, 0x6d, 0x3a, 0x84, 0x19, 0xfe, 0x36, 0xae, 0x2f, 0x4c, 0x70, 0x79, 0xd8, 0x17, 0x26, + 0xbc, 0xc0, 0x9b, 0x40, 0x1d, 0x58, 0x4c, 0xb8, 0x44, 0x41, 0x8f, 0x46, 0xbb, 0x81, 0x92, 0xdf, + 0x1b, 0xf1, 0x36, 0x46, 0x99, 0x40, 0x0e, 0x2c, 0x25, 0x8e, 0xfe, 0x68, 0x73, 0xd4, 0xcb, 0x0c, + 0xf9, 0xfd, 0x11, 0x28, 0x43, 0x9d, 0x3d, 0x90, 0x93, 0x07, 0x61, 0xf4, 0xfe, 0xc8, 0xe3, 0xbb, + 0xfc, 0xc1, 0x28, 0xa4, 0xa1, 0xda, 0x03, 0x28, 0x72, 0x43, 0x29, 0x92, 0x85, 0x93, 0x2a, 0x15, + 0xbc, 0x9c, 0x32, 0xc5, 0x52, 0x49, 0xdc, 0xec, 0xd5, 0x97, 0x34, 0x38, 0x01, 0xf6, 0x25, 0x09, + 0x86, 0xb5, 0xb8, 0xfb, 0x63, 0x55, 0x4c, 0xe4, 0x7e, 0x71, 0x19, 0x14, 0xb9, 0x3f, 0xa1, 0x24, + 0x2a, 0x13, 0x5b, 0xbf, 0xcb, 0x41, 0xce, 0x2f, 0x33, 0xa8, 0x09, 0xef, 0xc4, 0xda, 0x36, 0x74, + 0x3f, 0xbd, 0xb7, 0x95, 0x1f, 0x24, 0xe2, 0xc3, 0x25, 0x3d, 0xa3, 0xe5, 0x3d, 0xd2, 0x88, 0xa1, + 0x35, 0x9e, 0x4f, 0xd4, 0x0c, 0xca, 0xeb, 0x29, 0x14, 0x71, 0xd9, 0xd1, 0xac, 0x58, 0x1b, 0xd6, + 0x11, 0x44, 0x65, 0x27, 0x65, 0xc2, 0xd7, 0x30, 0x2f, 0x38, 0xc9, 0x90, 0x12, 0xb5, 0x4b, 0x18, + 0xfd, 0x1b, 0xa9, 0x34, 0xa1, 0x86, 0x5d, 0x98, 0x0e, 0x0f, 0x3e, 0x54, 0xe6, 0x79, 0xf8, 0xf3, + 0x51, 0x5e, 0x12, 0x60, 0xe2, 0x56, 0xc6, 0x43, 0x45, 0x89, 0xf1, 0x88, 0x82, 0x64, 0x23, 0x95, + 0x26, 0xd0, 0xb0, 0x9b, 0x7f, 0x96, 0x6d, 0xb9, 0xe6, 0x45, 0x81, 0xfc, 0x4b, 0xc5, 0xf7, 0xfe, + 0x17, 0x00, 0x00, 0xff, 0xff, 0x69, 0xaa, 0xdb, 0x41, 0x5f, 0x21, 0x00, 0x00, }