github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/plugins/device/proto/device.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: plugins/device/proto/device.proto
     3  
     4  package proto
     5  
     6  import (
     7  	context "context"
     8  	fmt "fmt"
     9  	proto "github.com/golang/protobuf/proto"
    10  	duration "github.com/golang/protobuf/ptypes/duration"
    11  	timestamp "github.com/golang/protobuf/ptypes/timestamp"
    12  	proto1 "github.com/hashicorp/nomad/plugins/shared/structs/proto"
    13  	grpc "google.golang.org/grpc"
    14  	codes "google.golang.org/grpc/codes"
    15  	status "google.golang.org/grpc/status"
    16  	math "math"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var _ = proto.Marshal
    21  var _ = fmt.Errorf
    22  var _ = math.Inf
    23  
    24  // This is a compile-time assertion to ensure that this generated file
    25  // is compatible with the proto package it is being compiled against.
    26  // A compilation error at this line likely means your copy of the
    27  // proto package needs to be updated.
    28  const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
    29  
    30  // FingerprintRequest is used to request for devices to be fingerprinted.
    31  type FingerprintRequest struct {
    32  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
    33  	XXX_unrecognized     []byte   `json:"-"`
    34  	XXX_sizecache        int32    `json:"-"`
    35  }
    36  
    37  func (m *FingerprintRequest) Reset()         { *m = FingerprintRequest{} }
    38  func (m *FingerprintRequest) String() string { return proto.CompactTextString(m) }
    39  func (*FingerprintRequest) ProtoMessage()    {}
    40  func (*FingerprintRequest) Descriptor() ([]byte, []int) {
    41  	return fileDescriptor_5edb0c35c07fa415, []int{0}
    42  }
    43  
    44  func (m *FingerprintRequest) XXX_Unmarshal(b []byte) error {
    45  	return xxx_messageInfo_FingerprintRequest.Unmarshal(m, b)
    46  }
    47  func (m *FingerprintRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    48  	return xxx_messageInfo_FingerprintRequest.Marshal(b, m, deterministic)
    49  }
    50  func (m *FingerprintRequest) XXX_Merge(src proto.Message) {
    51  	xxx_messageInfo_FingerprintRequest.Merge(m, src)
    52  }
    53  func (m *FingerprintRequest) XXX_Size() int {
    54  	return xxx_messageInfo_FingerprintRequest.Size(m)
    55  }
    56  func (m *FingerprintRequest) XXX_DiscardUnknown() {
    57  	xxx_messageInfo_FingerprintRequest.DiscardUnknown(m)
    58  }
    59  
    60  var xxx_messageInfo_FingerprintRequest proto.InternalMessageInfo
    61  
    62  // FingerprintResponse returns a set of detected devices.
    63  type FingerprintResponse struct {
    64  	// device_group is a group of devices that share a vendor, device_type, and
    65  	// device_name. This is returned as a set so that a single plugin could
    66  	// potentially detect several device types and models.
    67  	DeviceGroup          []*DeviceGroup `protobuf:"bytes,1,rep,name=device_group,json=deviceGroup,proto3" json:"device_group,omitempty"`
    68  	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
    69  	XXX_unrecognized     []byte         `json:"-"`
    70  	XXX_sizecache        int32          `json:"-"`
    71  }
    72  
    73  func (m *FingerprintResponse) Reset()         { *m = FingerprintResponse{} }
    74  func (m *FingerprintResponse) String() string { return proto.CompactTextString(m) }
    75  func (*FingerprintResponse) ProtoMessage()    {}
    76  func (*FingerprintResponse) Descriptor() ([]byte, []int) {
    77  	return fileDescriptor_5edb0c35c07fa415, []int{1}
    78  }
    79  
    80  func (m *FingerprintResponse) XXX_Unmarshal(b []byte) error {
    81  	return xxx_messageInfo_FingerprintResponse.Unmarshal(m, b)
    82  }
    83  func (m *FingerprintResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    84  	return xxx_messageInfo_FingerprintResponse.Marshal(b, m, deterministic)
    85  }
    86  func (m *FingerprintResponse) XXX_Merge(src proto.Message) {
    87  	xxx_messageInfo_FingerprintResponse.Merge(m, src)
    88  }
    89  func (m *FingerprintResponse) XXX_Size() int {
    90  	return xxx_messageInfo_FingerprintResponse.Size(m)
    91  }
    92  func (m *FingerprintResponse) XXX_DiscardUnknown() {
    93  	xxx_messageInfo_FingerprintResponse.DiscardUnknown(m)
    94  }
    95  
    96  var xxx_messageInfo_FingerprintResponse proto.InternalMessageInfo
    97  
    98  func (m *FingerprintResponse) GetDeviceGroup() []*DeviceGroup {
    99  	if m != nil {
   100  		return m.DeviceGroup
   101  	}
   102  	return nil
   103  }
   104  
   105  // DeviceGroup is a group of devices that share a vendor, device type and name.
   106  type DeviceGroup struct {
   107  	// vendor is the name of the vendor of the device
   108  	Vendor string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"`
   109  	// device_type is the type of the device (gpu, fpga, etc).
   110  	DeviceType string `protobuf:"bytes,2,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
   111  	// device_name is the name of the device.
   112  	DeviceName string `protobuf:"bytes,3,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"`
   113  	// devices is the set of devices detected by the plugin.
   114  	Devices []*DetectedDevice `protobuf:"bytes,4,rep,name=devices,proto3" json:"devices,omitempty"`
   115  	// attributes allows adding attributes to be used for constraints or
   116  	// affinities.
   117  	Attributes           map[string]*proto1.Attribute `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   118  	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
   119  	XXX_unrecognized     []byte                       `json:"-"`
   120  	XXX_sizecache        int32                        `json:"-"`
   121  }
   122  
   123  func (m *DeviceGroup) Reset()         { *m = DeviceGroup{} }
   124  func (m *DeviceGroup) String() string { return proto.CompactTextString(m) }
   125  func (*DeviceGroup) ProtoMessage()    {}
   126  func (*DeviceGroup) Descriptor() ([]byte, []int) {
   127  	return fileDescriptor_5edb0c35c07fa415, []int{2}
   128  }
   129  
   130  func (m *DeviceGroup) XXX_Unmarshal(b []byte) error {
   131  	return xxx_messageInfo_DeviceGroup.Unmarshal(m, b)
   132  }
   133  func (m *DeviceGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   134  	return xxx_messageInfo_DeviceGroup.Marshal(b, m, deterministic)
   135  }
   136  func (m *DeviceGroup) XXX_Merge(src proto.Message) {
   137  	xxx_messageInfo_DeviceGroup.Merge(m, src)
   138  }
   139  func (m *DeviceGroup) XXX_Size() int {
   140  	return xxx_messageInfo_DeviceGroup.Size(m)
   141  }
   142  func (m *DeviceGroup) XXX_DiscardUnknown() {
   143  	xxx_messageInfo_DeviceGroup.DiscardUnknown(m)
   144  }
   145  
   146  var xxx_messageInfo_DeviceGroup proto.InternalMessageInfo
   147  
   148  func (m *DeviceGroup) GetVendor() string {
   149  	if m != nil {
   150  		return m.Vendor
   151  	}
   152  	return ""
   153  }
   154  
   155  func (m *DeviceGroup) GetDeviceType() string {
   156  	if m != nil {
   157  		return m.DeviceType
   158  	}
   159  	return ""
   160  }
   161  
   162  func (m *DeviceGroup) GetDeviceName() string {
   163  	if m != nil {
   164  		return m.DeviceName
   165  	}
   166  	return ""
   167  }
   168  
   169  func (m *DeviceGroup) GetDevices() []*DetectedDevice {
   170  	if m != nil {
   171  		return m.Devices
   172  	}
   173  	return nil
   174  }
   175  
   176  func (m *DeviceGroup) GetAttributes() map[string]*proto1.Attribute {
   177  	if m != nil {
   178  		return m.Attributes
   179  	}
   180  	return nil
   181  }
   182  
   183  // DetectedDevice is a single detected device.
   184  type DetectedDevice struct {
   185  	// ID is the ID of the device. This ID is used during allocation and must be
   186  	// stable across restarts of the device driver.
   187  	ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
   188  	// Health of the device.
   189  	Healthy bool `protobuf:"varint,2,opt,name=healthy,proto3" json:"healthy,omitempty"`
   190  	// health_description allows the device plugin to optionally
   191  	// annotate the health field with a human readable reason.
   192  	HealthDescription string `protobuf:"bytes,3,opt,name=health_description,json=healthDescription,proto3" json:"health_description,omitempty"`
   193  	// hw_locality is optionally set to expose hardware locality information for
   194  	// more optimal placement decisions.
   195  	HwLocality           *DeviceLocality `protobuf:"bytes,4,opt,name=hw_locality,json=hwLocality,proto3" json:"hw_locality,omitempty"`
   196  	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
   197  	XXX_unrecognized     []byte          `json:"-"`
   198  	XXX_sizecache        int32           `json:"-"`
   199  }
   200  
   201  func (m *DetectedDevice) Reset()         { *m = DetectedDevice{} }
   202  func (m *DetectedDevice) String() string { return proto.CompactTextString(m) }
   203  func (*DetectedDevice) ProtoMessage()    {}
   204  func (*DetectedDevice) Descriptor() ([]byte, []int) {
   205  	return fileDescriptor_5edb0c35c07fa415, []int{3}
   206  }
   207  
   208  func (m *DetectedDevice) XXX_Unmarshal(b []byte) error {
   209  	return xxx_messageInfo_DetectedDevice.Unmarshal(m, b)
   210  }
   211  func (m *DetectedDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   212  	return xxx_messageInfo_DetectedDevice.Marshal(b, m, deterministic)
   213  }
   214  func (m *DetectedDevice) XXX_Merge(src proto.Message) {
   215  	xxx_messageInfo_DetectedDevice.Merge(m, src)
   216  }
   217  func (m *DetectedDevice) XXX_Size() int {
   218  	return xxx_messageInfo_DetectedDevice.Size(m)
   219  }
   220  func (m *DetectedDevice) XXX_DiscardUnknown() {
   221  	xxx_messageInfo_DetectedDevice.DiscardUnknown(m)
   222  }
   223  
   224  var xxx_messageInfo_DetectedDevice proto.InternalMessageInfo
   225  
   226  func (m *DetectedDevice) GetID() string {
   227  	if m != nil {
   228  		return m.ID
   229  	}
   230  	return ""
   231  }
   232  
   233  func (m *DetectedDevice) GetHealthy() bool {
   234  	if m != nil {
   235  		return m.Healthy
   236  	}
   237  	return false
   238  }
   239  
   240  func (m *DetectedDevice) GetHealthDescription() string {
   241  	if m != nil {
   242  		return m.HealthDescription
   243  	}
   244  	return ""
   245  }
   246  
   247  func (m *DetectedDevice) GetHwLocality() *DeviceLocality {
   248  	if m != nil {
   249  		return m.HwLocality
   250  	}
   251  	return nil
   252  }
   253  
   254  // DeviceLocality is used to expose HW locality information about a device.
   255  type DeviceLocality struct {
   256  	// pci_bus_id is the PCI bus ID for the device. If reported, it
   257  	// allows Nomad to make NUMA aware optimizations.
   258  	PciBusId             string   `protobuf:"bytes,1,opt,name=pci_bus_id,json=pciBusId,proto3" json:"pci_bus_id,omitempty"`
   259  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   260  	XXX_unrecognized     []byte   `json:"-"`
   261  	XXX_sizecache        int32    `json:"-"`
   262  }
   263  
   264  func (m *DeviceLocality) Reset()         { *m = DeviceLocality{} }
   265  func (m *DeviceLocality) String() string { return proto.CompactTextString(m) }
   266  func (*DeviceLocality) ProtoMessage()    {}
   267  func (*DeviceLocality) Descriptor() ([]byte, []int) {
   268  	return fileDescriptor_5edb0c35c07fa415, []int{4}
   269  }
   270  
   271  func (m *DeviceLocality) XXX_Unmarshal(b []byte) error {
   272  	return xxx_messageInfo_DeviceLocality.Unmarshal(m, b)
   273  }
   274  func (m *DeviceLocality) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   275  	return xxx_messageInfo_DeviceLocality.Marshal(b, m, deterministic)
   276  }
   277  func (m *DeviceLocality) XXX_Merge(src proto.Message) {
   278  	xxx_messageInfo_DeviceLocality.Merge(m, src)
   279  }
   280  func (m *DeviceLocality) XXX_Size() int {
   281  	return xxx_messageInfo_DeviceLocality.Size(m)
   282  }
   283  func (m *DeviceLocality) XXX_DiscardUnknown() {
   284  	xxx_messageInfo_DeviceLocality.DiscardUnknown(m)
   285  }
   286  
   287  var xxx_messageInfo_DeviceLocality proto.InternalMessageInfo
   288  
   289  func (m *DeviceLocality) GetPciBusId() string {
   290  	if m != nil {
   291  		return m.PciBusId
   292  	}
   293  	return ""
   294  }
   295  
   296  // ReserveRequest is used to ask the device driver for information on
   297  // how to allocate the requested devices.
   298  type ReserveRequest struct {
   299  	// device_ids are the requested devices.
   300  	DeviceIds            []string `protobuf:"bytes,1,rep,name=device_ids,json=deviceIds,proto3" json:"device_ids,omitempty"`
   301  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   302  	XXX_unrecognized     []byte   `json:"-"`
   303  	XXX_sizecache        int32    `json:"-"`
   304  }
   305  
   306  func (m *ReserveRequest) Reset()         { *m = ReserveRequest{} }
   307  func (m *ReserveRequest) String() string { return proto.CompactTextString(m) }
   308  func (*ReserveRequest) ProtoMessage()    {}
   309  func (*ReserveRequest) Descriptor() ([]byte, []int) {
   310  	return fileDescriptor_5edb0c35c07fa415, []int{5}
   311  }
   312  
   313  func (m *ReserveRequest) XXX_Unmarshal(b []byte) error {
   314  	return xxx_messageInfo_ReserveRequest.Unmarshal(m, b)
   315  }
   316  func (m *ReserveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   317  	return xxx_messageInfo_ReserveRequest.Marshal(b, m, deterministic)
   318  }
   319  func (m *ReserveRequest) XXX_Merge(src proto.Message) {
   320  	xxx_messageInfo_ReserveRequest.Merge(m, src)
   321  }
   322  func (m *ReserveRequest) XXX_Size() int {
   323  	return xxx_messageInfo_ReserveRequest.Size(m)
   324  }
   325  func (m *ReserveRequest) XXX_DiscardUnknown() {
   326  	xxx_messageInfo_ReserveRequest.DiscardUnknown(m)
   327  }
   328  
   329  var xxx_messageInfo_ReserveRequest proto.InternalMessageInfo
   330  
   331  func (m *ReserveRequest) GetDeviceIds() []string {
   332  	if m != nil {
   333  		return m.DeviceIds
   334  	}
   335  	return nil
   336  }
   337  
   338  // ReserveResponse informs Nomad how to expose the requested devices
   339  // to the the task.
   340  type ReserveResponse struct {
   341  	// container_res contains information on how to mount the device
   342  	// into a task isolated using container technologies (where the
   343  	// host is shared)
   344  	ContainerRes         *ContainerReservation `protobuf:"bytes,1,opt,name=container_res,json=containerRes,proto3" json:"container_res,omitempty"`
   345  	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
   346  	XXX_unrecognized     []byte                `json:"-"`
   347  	XXX_sizecache        int32                 `json:"-"`
   348  }
   349  
   350  func (m *ReserveResponse) Reset()         { *m = ReserveResponse{} }
   351  func (m *ReserveResponse) String() string { return proto.CompactTextString(m) }
   352  func (*ReserveResponse) ProtoMessage()    {}
   353  func (*ReserveResponse) Descriptor() ([]byte, []int) {
   354  	return fileDescriptor_5edb0c35c07fa415, []int{6}
   355  }
   356  
   357  func (m *ReserveResponse) XXX_Unmarshal(b []byte) error {
   358  	return xxx_messageInfo_ReserveResponse.Unmarshal(m, b)
   359  }
   360  func (m *ReserveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   361  	return xxx_messageInfo_ReserveResponse.Marshal(b, m, deterministic)
   362  }
   363  func (m *ReserveResponse) XXX_Merge(src proto.Message) {
   364  	xxx_messageInfo_ReserveResponse.Merge(m, src)
   365  }
   366  func (m *ReserveResponse) XXX_Size() int {
   367  	return xxx_messageInfo_ReserveResponse.Size(m)
   368  }
   369  func (m *ReserveResponse) XXX_DiscardUnknown() {
   370  	xxx_messageInfo_ReserveResponse.DiscardUnknown(m)
   371  }
   372  
   373  var xxx_messageInfo_ReserveResponse proto.InternalMessageInfo
   374  
   375  func (m *ReserveResponse) GetContainerRes() *ContainerReservation {
   376  	if m != nil {
   377  		return m.ContainerRes
   378  	}
   379  	return nil
   380  }
   381  
   382  // ContainerReservation returns how to mount the device into a
   383  // container that shares the host OS.
   384  type ContainerReservation struct {
   385  	// List of environment variable to be set
   386  	Envs map[string]string `protobuf:"bytes,1,rep,name=envs,proto3" json:"envs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   387  	// Mounts for the task.
   388  	Mounts []*Mount `protobuf:"bytes,2,rep,name=mounts,proto3" json:"mounts,omitempty"`
   389  	// Devices for the task.
   390  	Devices              []*DeviceSpec `protobuf:"bytes,3,rep,name=devices,proto3" json:"devices,omitempty"`
   391  	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
   392  	XXX_unrecognized     []byte        `json:"-"`
   393  	XXX_sizecache        int32         `json:"-"`
   394  }
   395  
   396  func (m *ContainerReservation) Reset()         { *m = ContainerReservation{} }
   397  func (m *ContainerReservation) String() string { return proto.CompactTextString(m) }
   398  func (*ContainerReservation) ProtoMessage()    {}
   399  func (*ContainerReservation) Descriptor() ([]byte, []int) {
   400  	return fileDescriptor_5edb0c35c07fa415, []int{7}
   401  }
   402  
   403  func (m *ContainerReservation) XXX_Unmarshal(b []byte) error {
   404  	return xxx_messageInfo_ContainerReservation.Unmarshal(m, b)
   405  }
   406  func (m *ContainerReservation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   407  	return xxx_messageInfo_ContainerReservation.Marshal(b, m, deterministic)
   408  }
   409  func (m *ContainerReservation) XXX_Merge(src proto.Message) {
   410  	xxx_messageInfo_ContainerReservation.Merge(m, src)
   411  }
   412  func (m *ContainerReservation) XXX_Size() int {
   413  	return xxx_messageInfo_ContainerReservation.Size(m)
   414  }
   415  func (m *ContainerReservation) XXX_DiscardUnknown() {
   416  	xxx_messageInfo_ContainerReservation.DiscardUnknown(m)
   417  }
   418  
   419  var xxx_messageInfo_ContainerReservation proto.InternalMessageInfo
   420  
   421  func (m *ContainerReservation) GetEnvs() map[string]string {
   422  	if m != nil {
   423  		return m.Envs
   424  	}
   425  	return nil
   426  }
   427  
   428  func (m *ContainerReservation) GetMounts() []*Mount {
   429  	if m != nil {
   430  		return m.Mounts
   431  	}
   432  	return nil
   433  }
   434  
   435  func (m *ContainerReservation) GetDevices() []*DeviceSpec {
   436  	if m != nil {
   437  		return m.Devices
   438  	}
   439  	return nil
   440  }
   441  
   442  // Mount specifies a host volume to mount into a task.
   443  // where device library or tools are installed on host and task
   444  type Mount struct {
   445  	// Path of the mount within the task.
   446  	TaskPath string `protobuf:"bytes,1,opt,name=task_path,json=taskPath,proto3" json:"task_path,omitempty"`
   447  	// Path of the mount on the host.
   448  	HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"`
   449  	// If set, the mount is read-only.
   450  	ReadOnly             bool     `protobuf:"varint,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"`
   451  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   452  	XXX_unrecognized     []byte   `json:"-"`
   453  	XXX_sizecache        int32    `json:"-"`
   454  }
   455  
   456  func (m *Mount) Reset()         { *m = Mount{} }
   457  func (m *Mount) String() string { return proto.CompactTextString(m) }
   458  func (*Mount) ProtoMessage()    {}
   459  func (*Mount) Descriptor() ([]byte, []int) {
   460  	return fileDescriptor_5edb0c35c07fa415, []int{8}
   461  }
   462  
   463  func (m *Mount) XXX_Unmarshal(b []byte) error {
   464  	return xxx_messageInfo_Mount.Unmarshal(m, b)
   465  }
   466  func (m *Mount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   467  	return xxx_messageInfo_Mount.Marshal(b, m, deterministic)
   468  }
   469  func (m *Mount) XXX_Merge(src proto.Message) {
   470  	xxx_messageInfo_Mount.Merge(m, src)
   471  }
   472  func (m *Mount) XXX_Size() int {
   473  	return xxx_messageInfo_Mount.Size(m)
   474  }
   475  func (m *Mount) XXX_DiscardUnknown() {
   476  	xxx_messageInfo_Mount.DiscardUnknown(m)
   477  }
   478  
   479  var xxx_messageInfo_Mount proto.InternalMessageInfo
   480  
   481  func (m *Mount) GetTaskPath() string {
   482  	if m != nil {
   483  		return m.TaskPath
   484  	}
   485  	return ""
   486  }
   487  
   488  func (m *Mount) GetHostPath() string {
   489  	if m != nil {
   490  		return m.HostPath
   491  	}
   492  	return ""
   493  }
   494  
   495  func (m *Mount) GetReadOnly() bool {
   496  	if m != nil {
   497  		return m.ReadOnly
   498  	}
   499  	return false
   500  }
   501  
   502  // DeviceSpec specifies a host device to mount into a task.
   503  type DeviceSpec struct {
   504  	// Path of the device within the task.
   505  	TaskPath string `protobuf:"bytes,1,opt,name=task_path,json=taskPath,proto3" json:"task_path,omitempty"`
   506  	// Path of the device on the host.
   507  	HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"`
   508  	// Cgroups permissions of the device, candidates are one or more of
   509  	// * r - allows task to read from the specified device.
   510  	// * w - allows task to write to the specified device.
   511  	// * m - allows task to create device files that do not yet exist
   512  	Permissions          string   `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"`
   513  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   514  	XXX_unrecognized     []byte   `json:"-"`
   515  	XXX_sizecache        int32    `json:"-"`
   516  }
   517  
   518  func (m *DeviceSpec) Reset()         { *m = DeviceSpec{} }
   519  func (m *DeviceSpec) String() string { return proto.CompactTextString(m) }
   520  func (*DeviceSpec) ProtoMessage()    {}
   521  func (*DeviceSpec) Descriptor() ([]byte, []int) {
   522  	return fileDescriptor_5edb0c35c07fa415, []int{9}
   523  }
   524  
   525  func (m *DeviceSpec) XXX_Unmarshal(b []byte) error {
   526  	return xxx_messageInfo_DeviceSpec.Unmarshal(m, b)
   527  }
   528  func (m *DeviceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   529  	return xxx_messageInfo_DeviceSpec.Marshal(b, m, deterministic)
   530  }
   531  func (m *DeviceSpec) XXX_Merge(src proto.Message) {
   532  	xxx_messageInfo_DeviceSpec.Merge(m, src)
   533  }
   534  func (m *DeviceSpec) XXX_Size() int {
   535  	return xxx_messageInfo_DeviceSpec.Size(m)
   536  }
   537  func (m *DeviceSpec) XXX_DiscardUnknown() {
   538  	xxx_messageInfo_DeviceSpec.DiscardUnknown(m)
   539  }
   540  
   541  var xxx_messageInfo_DeviceSpec proto.InternalMessageInfo
   542  
   543  func (m *DeviceSpec) GetTaskPath() string {
   544  	if m != nil {
   545  		return m.TaskPath
   546  	}
   547  	return ""
   548  }
   549  
   550  func (m *DeviceSpec) GetHostPath() string {
   551  	if m != nil {
   552  		return m.HostPath
   553  	}
   554  	return ""
   555  }
   556  
   557  func (m *DeviceSpec) GetPermissions() string {
   558  	if m != nil {
   559  		return m.Permissions
   560  	}
   561  	return ""
   562  }
   563  
   564  // StatsRequest is used to parameterize the retrieval of statistics.
   565  type StatsRequest struct {
   566  	// collection_interval is the duration in which to collect statistics.
   567  	CollectionInterval   *duration.Duration `protobuf:"bytes,1,opt,name=collection_interval,json=collectionInterval,proto3" json:"collection_interval,omitempty"`
   568  	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
   569  	XXX_unrecognized     []byte             `json:"-"`
   570  	XXX_sizecache        int32              `json:"-"`
   571  }
   572  
   573  func (m *StatsRequest) Reset()         { *m = StatsRequest{} }
   574  func (m *StatsRequest) String() string { return proto.CompactTextString(m) }
   575  func (*StatsRequest) ProtoMessage()    {}
   576  func (*StatsRequest) Descriptor() ([]byte, []int) {
   577  	return fileDescriptor_5edb0c35c07fa415, []int{10}
   578  }
   579  
   580  func (m *StatsRequest) XXX_Unmarshal(b []byte) error {
   581  	return xxx_messageInfo_StatsRequest.Unmarshal(m, b)
   582  }
   583  func (m *StatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   584  	return xxx_messageInfo_StatsRequest.Marshal(b, m, deterministic)
   585  }
   586  func (m *StatsRequest) XXX_Merge(src proto.Message) {
   587  	xxx_messageInfo_StatsRequest.Merge(m, src)
   588  }
   589  func (m *StatsRequest) XXX_Size() int {
   590  	return xxx_messageInfo_StatsRequest.Size(m)
   591  }
   592  func (m *StatsRequest) XXX_DiscardUnknown() {
   593  	xxx_messageInfo_StatsRequest.DiscardUnknown(m)
   594  }
   595  
   596  var xxx_messageInfo_StatsRequest proto.InternalMessageInfo
   597  
   598  func (m *StatsRequest) GetCollectionInterval() *duration.Duration {
   599  	if m != nil {
   600  		return m.CollectionInterval
   601  	}
   602  	return nil
   603  }
   604  
   605  // StatsResponse returns the statistics for each device group.
   606  type StatsResponse struct {
   607  	// groups contains statistics for each device group.
   608  	Groups               []*DeviceGroupStats `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
   609  	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
   610  	XXX_unrecognized     []byte              `json:"-"`
   611  	XXX_sizecache        int32               `json:"-"`
   612  }
   613  
   614  func (m *StatsResponse) Reset()         { *m = StatsResponse{} }
   615  func (m *StatsResponse) String() string { return proto.CompactTextString(m) }
   616  func (*StatsResponse) ProtoMessage()    {}
   617  func (*StatsResponse) Descriptor() ([]byte, []int) {
   618  	return fileDescriptor_5edb0c35c07fa415, []int{11}
   619  }
   620  
   621  func (m *StatsResponse) XXX_Unmarshal(b []byte) error {
   622  	return xxx_messageInfo_StatsResponse.Unmarshal(m, b)
   623  }
   624  func (m *StatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   625  	return xxx_messageInfo_StatsResponse.Marshal(b, m, deterministic)
   626  }
   627  func (m *StatsResponse) XXX_Merge(src proto.Message) {
   628  	xxx_messageInfo_StatsResponse.Merge(m, src)
   629  }
   630  func (m *StatsResponse) XXX_Size() int {
   631  	return xxx_messageInfo_StatsResponse.Size(m)
   632  }
   633  func (m *StatsResponse) XXX_DiscardUnknown() {
   634  	xxx_messageInfo_StatsResponse.DiscardUnknown(m)
   635  }
   636  
   637  var xxx_messageInfo_StatsResponse proto.InternalMessageInfo
   638  
   639  func (m *StatsResponse) GetGroups() []*DeviceGroupStats {
   640  	if m != nil {
   641  		return m.Groups
   642  	}
   643  	return nil
   644  }
   645  
   646  // DeviceGroupStats contains statistics for each device of a particular
   647  // device group, identified by the vendor, type and name of the device.
   648  type DeviceGroupStats struct {
   649  	Vendor string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"`
   650  	Type   string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
   651  	Name   string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   652  	// instance_stats is a mapping of each device ID to its statistics.
   653  	InstanceStats        map[string]*DeviceStats `protobuf:"bytes,4,rep,name=instance_stats,json=instanceStats,proto3" json:"instance_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   654  	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
   655  	XXX_unrecognized     []byte                  `json:"-"`
   656  	XXX_sizecache        int32                   `json:"-"`
   657  }
   658  
   659  func (m *DeviceGroupStats) Reset()         { *m = DeviceGroupStats{} }
   660  func (m *DeviceGroupStats) String() string { return proto.CompactTextString(m) }
   661  func (*DeviceGroupStats) ProtoMessage()    {}
   662  func (*DeviceGroupStats) Descriptor() ([]byte, []int) {
   663  	return fileDescriptor_5edb0c35c07fa415, []int{12}
   664  }
   665  
   666  func (m *DeviceGroupStats) XXX_Unmarshal(b []byte) error {
   667  	return xxx_messageInfo_DeviceGroupStats.Unmarshal(m, b)
   668  }
   669  func (m *DeviceGroupStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   670  	return xxx_messageInfo_DeviceGroupStats.Marshal(b, m, deterministic)
   671  }
   672  func (m *DeviceGroupStats) XXX_Merge(src proto.Message) {
   673  	xxx_messageInfo_DeviceGroupStats.Merge(m, src)
   674  }
   675  func (m *DeviceGroupStats) XXX_Size() int {
   676  	return xxx_messageInfo_DeviceGroupStats.Size(m)
   677  }
   678  func (m *DeviceGroupStats) XXX_DiscardUnknown() {
   679  	xxx_messageInfo_DeviceGroupStats.DiscardUnknown(m)
   680  }
   681  
   682  var xxx_messageInfo_DeviceGroupStats proto.InternalMessageInfo
   683  
   684  func (m *DeviceGroupStats) GetVendor() string {
   685  	if m != nil {
   686  		return m.Vendor
   687  	}
   688  	return ""
   689  }
   690  
   691  func (m *DeviceGroupStats) GetType() string {
   692  	if m != nil {
   693  		return m.Type
   694  	}
   695  	return ""
   696  }
   697  
   698  func (m *DeviceGroupStats) GetName() string {
   699  	if m != nil {
   700  		return m.Name
   701  	}
   702  	return ""
   703  }
   704  
   705  func (m *DeviceGroupStats) GetInstanceStats() map[string]*DeviceStats {
   706  	if m != nil {
   707  		return m.InstanceStats
   708  	}
   709  	return nil
   710  }
   711  
   712  // DeviceStats is the statistics for an individual device
   713  type DeviceStats struct {
   714  	// summary exposes a single summary metric that should be the most
   715  	// informative to users.
   716  	Summary *proto1.StatValue `protobuf:"bytes,1,opt,name=summary,proto3" json:"summary,omitempty"`
   717  	// stats contains the verbose statistics for the device.
   718  	Stats *proto1.StatObject `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"`
   719  	// timestamp is the time the statistics were collected.
   720  	Timestamp            *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   721  	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
   722  	XXX_unrecognized     []byte               `json:"-"`
   723  	XXX_sizecache        int32                `json:"-"`
   724  }
   725  
   726  func (m *DeviceStats) Reset()         { *m = DeviceStats{} }
   727  func (m *DeviceStats) String() string { return proto.CompactTextString(m) }
   728  func (*DeviceStats) ProtoMessage()    {}
   729  func (*DeviceStats) Descriptor() ([]byte, []int) {
   730  	return fileDescriptor_5edb0c35c07fa415, []int{13}
   731  }
   732  
   733  func (m *DeviceStats) XXX_Unmarshal(b []byte) error {
   734  	return xxx_messageInfo_DeviceStats.Unmarshal(m, b)
   735  }
   736  func (m *DeviceStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   737  	return xxx_messageInfo_DeviceStats.Marshal(b, m, deterministic)
   738  }
   739  func (m *DeviceStats) XXX_Merge(src proto.Message) {
   740  	xxx_messageInfo_DeviceStats.Merge(m, src)
   741  }
   742  func (m *DeviceStats) XXX_Size() int {
   743  	return xxx_messageInfo_DeviceStats.Size(m)
   744  }
   745  func (m *DeviceStats) XXX_DiscardUnknown() {
   746  	xxx_messageInfo_DeviceStats.DiscardUnknown(m)
   747  }
   748  
   749  var xxx_messageInfo_DeviceStats proto.InternalMessageInfo
   750  
   751  func (m *DeviceStats) GetSummary() *proto1.StatValue {
   752  	if m != nil {
   753  		return m.Summary
   754  	}
   755  	return nil
   756  }
   757  
   758  func (m *DeviceStats) GetStats() *proto1.StatObject {
   759  	if m != nil {
   760  		return m.Stats
   761  	}
   762  	return nil
   763  }
   764  
   765  func (m *DeviceStats) GetTimestamp() *timestamp.Timestamp {
   766  	if m != nil {
   767  		return m.Timestamp
   768  	}
   769  	return nil
   770  }
   771  
   772  func init() {
   773  	proto.RegisterType((*FingerprintRequest)(nil), "hashicorp.nomad.plugins.device.FingerprintRequest")
   774  	proto.RegisterType((*FingerprintResponse)(nil), "hashicorp.nomad.plugins.device.FingerprintResponse")
   775  	proto.RegisterType((*DeviceGroup)(nil), "hashicorp.nomad.plugins.device.DeviceGroup")
   776  	proto.RegisterMapType((map[string]*proto1.Attribute)(nil), "hashicorp.nomad.plugins.device.DeviceGroup.AttributesEntry")
   777  	proto.RegisterType((*DetectedDevice)(nil), "hashicorp.nomad.plugins.device.DetectedDevice")
   778  	proto.RegisterType((*DeviceLocality)(nil), "hashicorp.nomad.plugins.device.DeviceLocality")
   779  	proto.RegisterType((*ReserveRequest)(nil), "hashicorp.nomad.plugins.device.ReserveRequest")
   780  	proto.RegisterType((*ReserveResponse)(nil), "hashicorp.nomad.plugins.device.ReserveResponse")
   781  	proto.RegisterType((*ContainerReservation)(nil), "hashicorp.nomad.plugins.device.ContainerReservation")
   782  	proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.device.ContainerReservation.EnvsEntry")
   783  	proto.RegisterType((*Mount)(nil), "hashicorp.nomad.plugins.device.Mount")
   784  	proto.RegisterType((*DeviceSpec)(nil), "hashicorp.nomad.plugins.device.DeviceSpec")
   785  	proto.RegisterType((*StatsRequest)(nil), "hashicorp.nomad.plugins.device.StatsRequest")
   786  	proto.RegisterType((*StatsResponse)(nil), "hashicorp.nomad.plugins.device.StatsResponse")
   787  	proto.RegisterType((*DeviceGroupStats)(nil), "hashicorp.nomad.plugins.device.DeviceGroupStats")
   788  	proto.RegisterMapType((map[string]*DeviceStats)(nil), "hashicorp.nomad.plugins.device.DeviceGroupStats.InstanceStatsEntry")
   789  	proto.RegisterType((*DeviceStats)(nil), "hashicorp.nomad.plugins.device.DeviceStats")
   790  }
   791  
   792  func init() {
   793  	proto.RegisterFile("plugins/device/proto/device.proto", fileDescriptor_5edb0c35c07fa415)
   794  }
   795  
   796  var fileDescriptor_5edb0c35c07fa415 = []byte{
   797  	// 979 bytes of a gzipped FileDescriptorProto
   798  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xef, 0x8e, 0x1b, 0x35,
   799  	0x10, 0x27, 0xb9, 0xcb, 0x25, 0x99, 0xdc, 0x5d, 0x8b, 0x7b, 0x42, 0x61, 0x81, 0xf6, 0x58, 0x09,
   800  	0xa9, 0x02, 0xba, 0x29, 0x29, 0x12, 0x15, 0x08, 0xa4, 0xf6, 0x52, 0xee, 0xc2, 0x9f, 0x5e, 0xe5,
   801  	0x56, 0x48, 0x2d, 0x12, 0x2b, 0x67, 0xd7, 0x64, 0xdd, 0xee, 0xda, 0x8b, 0xed, 0x4d, 0x15, 0x3e,
   802  	0xf1, 0x38, 0x7c, 0xe1, 0x05, 0x78, 0x18, 0x3e, 0xf0, 0x24, 0x68, 0x6d, 0x6f, 0xb2, 0xf7, 0xa7,
   803  	0x24, 0x69, 0x3f, 0xad, 0x3d, 0x33, 0xbf, 0x99, 0xf1, 0xcc, 0xcf, 0xe3, 0x85, 0x0f, 0xf3, 0xb4,
   804  	0x98, 0x32, 0xae, 0x06, 0x31, 0x9d, 0xb1, 0x88, 0x0e, 0x72, 0x29, 0xb4, 0x70, 0x9b, 0xc0, 0x6c,
   805  	0xd0, 0xf5, 0x84, 0xa8, 0x84, 0x45, 0x42, 0xe6, 0x01, 0x17, 0x19, 0x89, 0x03, 0x07, 0x09, 0xac,
   806  	0x95, 0x77, 0x63, 0x2a, 0xc4, 0x34, 0x75, 0xd0, 0x49, 0xf1, 0xeb, 0x40, 0xb3, 0x8c, 0x2a, 0x4d,
   807  	0xb2, 0xdc, 0x3a, 0xf0, 0xae, 0x9f, 0x37, 0x88, 0x0b, 0x49, 0x34, 0x13, 0xdc, 0xe9, 0x8f, 0xa7,
   808  	0x4c, 0x27, 0xc5, 0x24, 0x88, 0x44, 0x36, 0x58, 0xc4, 0x1a, 0x98, 0x58, 0x83, 0x2a, 0x3d, 0x95,
   809  	0x10, 0x49, 0xe3, 0x81, 0xd2, 0xb2, 0x88, 0xb4, 0x72, 0x69, 0x12, 0xad, 0x25, 0x9b, 0x14, 0xda,
   810  	0x65, 0xea, 0x1d, 0xbd, 0xae, 0x23, 0xa5, 0x89, 0x56, 0xd6, 0x89, 0x7f, 0x00, 0xe8, 0x5b, 0xc6,
   811  	0xa7, 0x54, 0xe6, 0x92, 0x71, 0x8d, 0xe9, 0x6f, 0x05, 0x55, 0xda, 0xa7, 0x70, 0xed, 0x8c, 0x54,
   812  	0xe5, 0x82, 0x2b, 0x8a, 0x1e, 0xc2, 0xae, 0xad, 0x42, 0x38, 0x95, 0xa2, 0xc8, 0xfb, 0x8d, 0xc3,
   813  	0xad, 0x9b, 0xbd, 0xe1, 0x27, 0xc1, 0xff, 0x97, 0x2c, 0x18, 0x99, 0xcf, 0x71, 0x09, 0xc1, 0xbd,
   814  	0x78, 0xb9, 0xf1, 0xff, 0xd8, 0x82, 0x5e, 0x4d, 0x89, 0xde, 0x81, 0x9d, 0x19, 0xe5, 0xb1, 0x90,
   815  	0xfd, 0xc6, 0x61, 0xe3, 0x66, 0x17, 0xbb, 0x1d, 0xba, 0x01, 0x0e, 0x16, 0xea, 0x79, 0x4e, 0xfb,
   816  	0x4d, 0xa3, 0x04, 0x2b, 0x7a, 0x32, 0xcf, 0x69, 0xcd, 0x80, 0x93, 0x8c, 0xf6, 0xb7, 0xea, 0x06,
   817  	0x0f, 0x49, 0x46, 0xd1, 0x09, 0xb4, 0xed, 0x4e, 0xf5, 0xb7, 0x4d, 0xd2, 0xc1, 0xea, 0xa4, 0x35,
   818  	0x8d, 0x34, 0x8d, 0x6d, 0x7e, 0xb8, 0x82, 0xa3, 0x9f, 0x01, 0x16, 0x8d, 0x50, 0xfd, 0x96, 0x71,
   819  	0xf6, 0xd5, 0x06, 0x15, 0x08, 0xee, 0x2d, 0xd0, 0x0f, 0xb8, 0x96, 0x73, 0x5c, 0x73, 0xe7, 0xe5,
   820  	0x70, 0xe5, 0x9c, 0x1a, 0x5d, 0x85, 0xad, 0x17, 0x74, 0xee, 0x0a, 0x52, 0x2e, 0xd1, 0x31, 0xb4,
   821  	0x66, 0x24, 0x2d, 0x6c, 0x1d, 0x7a, 0xc3, 0xcf, 0x5e, 0x19, 0xdc, 0x36, 0x3f, 0x70, 0xcd, 0x5f,
   822  	0x06, 0xc6, 0x16, 0xff, 0x65, 0xf3, 0x6e, 0xc3, 0xff, 0xbb, 0x01, 0xfb, 0x67, 0x8f, 0x8a, 0xf6,
   823  	0xa1, 0x39, 0x1e, 0xb9, 0x80, 0xcd, 0xf1, 0x08, 0xf5, 0xa1, 0x9d, 0x50, 0x92, 0xea, 0x64, 0x6e,
   824  	0x22, 0x76, 0x70, 0xb5, 0x45, 0xb7, 0x00, 0xd9, 0x65, 0x18, 0x53, 0x15, 0x49, 0x96, 0x97, 0x34,
   825  	0x77, 0xd5, 0x7f, 0xdb, 0x6a, 0x46, 0x4b, 0x05, 0x3a, 0x85, 0x5e, 0xf2, 0x32, 0x4c, 0x45, 0x44,
   826  	0x52, 0xa6, 0xe7, 0xfd, 0x6d, 0x93, 0x7e, 0xb0, 0x5e, 0xed, 0x7e, 0x70, 0x28, 0x0c, 0xc9, 0xcb,
   827  	0x6a, 0xed, 0x07, 0x65, 0xee, 0x75, 0x2d, 0x7a, 0x1f, 0x20, 0x8f, 0x58, 0x38, 0x29, 0x54, 0xc8,
   828  	0x62, 0x77, 0x86, 0x4e, 0x1e, 0xb1, 0xfb, 0x85, 0x1a, 0xc7, 0xfe, 0x00, 0xf6, 0x31, 0x55, 0x54,
   829  	0xce, 0xa8, 0x23, 0x3a, 0xfa, 0x00, 0x1c, 0x4b, 0x42, 0x16, 0x2b, 0xc3, 0xe7, 0x2e, 0xee, 0x5a,
   830  	0xc9, 0x38, 0x56, 0x7e, 0x0a, 0x57, 0x16, 0x00, 0x77, 0x07, 0x9e, 0xc2, 0x5e, 0x24, 0xb8, 0x26,
   831  	0x8c, 0x53, 0x19, 0x4a, 0xaa, 0x4c, 0x90, 0xde, 0xf0, 0xf3, 0x55, 0xc7, 0x38, 0xaa, 0x40, 0xd6,
   832  	0xa1, 0x99, 0x08, 0x78, 0x37, 0xaa, 0x49, 0xfd, 0x3f, 0x9b, 0x70, 0x70, 0x99, 0x19, 0xc2, 0xb0,
   833  	0x4d, 0xf9, 0x4c, 0xb9, 0xfb, 0xf6, 0xcd, 0xeb, 0x84, 0x0a, 0x1e, 0xf0, 0x99, 0x23, 0x9c, 0xf1,
   834  	0x85, 0xbe, 0x86, 0x9d, 0x4c, 0x14, 0x5c, 0xab, 0x7e, 0xd3, 0x78, 0xfd, 0x68, 0x95, 0xd7, 0x1f,
   835  	0x4b, 0x6b, 0xec, 0x40, 0x68, 0xb4, 0xbc, 0x50, 0x5b, 0x06, 0xff, 0xf1, 0x7a, 0x7d, 0x7c, 0x9c,
   836  	0xd3, 0x68, 0x71, 0x99, 0xbc, 0x2f, 0xa0, 0xbb, 0xc8, 0xeb, 0x12, 0xa6, 0x1f, 0xd4, 0x99, 0xde,
   837  	0xad, 0xd3, 0xf6, 0x17, 0x68, 0x99, 0x7c, 0xd0, 0x7b, 0xd0, 0xd5, 0x44, 0xbd, 0x08, 0x73, 0xa2,
   838  	0x93, 0xaa, 0xdf, 0xa5, 0xe0, 0x11, 0xd1, 0x49, 0xa9, 0x4c, 0x84, 0xd2, 0x56, 0x69, 0x7d, 0x74,
   839  	0x4a, 0x41, 0xa5, 0x94, 0x94, 0xc4, 0xa1, 0xe0, 0xe9, 0xdc, 0x70, 0xb6, 0x83, 0x3b, 0xa5, 0xe0,
   840  	0x94, 0xa7, 0x73, 0x3f, 0x01, 0x58, 0xe6, 0xfb, 0x06, 0x41, 0x0e, 0xa1, 0x97, 0x53, 0x99, 0x31,
   841  	0xa5, 0x98, 0xe0, 0xca, 0x5d, 0x8d, 0xba, 0xc8, 0x7f, 0x06, 0xbb, 0x8f, 0xcb, 0x79, 0x5c, 0x31,
   842  	0xf2, 0x3b, 0xb8, 0x16, 0x89, 0x34, 0xa5, 0x51, 0xd9, 0xb5, 0x90, 0x71, 0x5d, 0x76, 0x30, 0x75,
   843  	0x2c, 0x7b, 0x37, 0xb0, 0x8f, 0x4b, 0x50, 0x3d, 0x2e, 0xc1, 0xc8, 0x3d, 0x2e, 0x18, 0x2d, 0x51,
   844  	0x63, 0x07, 0xf2, 0x9f, 0xc2, 0x9e, 0xf3, 0xed, 0xc8, 0x7b, 0x02, 0x3b, 0x66, 0x72, 0x57, 0x54,
   845  	0xba, 0xbd, 0xc1, 0xe0, 0xb2, 0x9e, 0x1c, 0xde, 0xff, 0xab, 0x09, 0x57, 0xcf, 0x2b, 0x5f, 0x39,
   846  	0xbf, 0x11, 0x6c, 0xd7, 0x06, 0xb7, 0x59, 0x97, 0xb2, 0xda, 0xac, 0x36, 0x6b, 0xf4, 0x1c, 0xf6,
   847  	0x19, 0x57, 0x9a, 0xf0, 0x88, 0x86, 0xe6, 0x91, 0x72, 0xc3, 0xfa, 0x68, 0xd3, 0x34, 0x83, 0xb1,
   848  	0x73, 0x63, 0x76, 0x96, 0xf6, 0x7b, 0xac, 0x2e, 0xf3, 0x32, 0x40, 0x17, 0x8d, 0x2e, 0xe1, 0xe0,
   849  	0xbd, 0xb3, 0xd3, 0x76, 0xcd, 0xc7, 0xce, 0x16, 0xab, 0x46, 0xd8, 0x7f, 0x1a, 0xd5, 0x53, 0x67,
   850  	0x4b, 0xf5, 0x3d, 0xb4, 0x55, 0x91, 0x65, 0x44, 0xce, 0x5d, 0x6b, 0xd7, 0x1e, 0xe3, 0x25, 0xfe,
   851  	0xa7, 0xd2, 0x2f, 0xae, 0x3c, 0xa0, 0x13, 0x68, 0xd9, 0x72, 0xd9, 0x1c, 0x87, 0x9b, 0xb8, 0x3a,
   852  	0x9d, 0x3c, 0xa7, 0x91, 0xc6, 0xd6, 0x01, 0xba, 0x0b, 0xdd, 0xc5, 0xff, 0x8c, 0x69, 0x4d, 0x6f,
   853  	0xe8, 0x5d, 0xe0, 0xdc, 0x93, 0xca, 0x02, 0x2f, 0x8d, 0x87, 0xff, 0x36, 0x61, 0xd7, 0x1e, 0xf0,
   854  	0x91, 0x09, 0x86, 0x7e, 0x87, 0x5e, 0xed, 0x1f, 0x02, 0x0d, 0x57, 0x15, 0xee, 0xe2, 0x6f, 0x88,
   855  	0x77, 0x67, 0x23, 0x8c, 0xe5, 0xb8, 0xff, 0xd6, 0xed, 0x06, 0x4a, 0xa1, 0xed, 0xe6, 0x36, 0x5a,
   856  	0xf9, 0xbe, 0x9c, 0x7d, 0x11, 0xbc, 0xc1, 0xda, 0xf6, 0x55, 0x3c, 0x94, 0x40, 0xcb, 0x36, 0xf5,
   857  	0xd3, 0x55, 0xd8, 0xfa, 0x4d, 0xf7, 0x6e, 0xad, 0x69, 0xbd, 0x3c, 0xd7, 0xfd, 0xf6, 0xb3, 0x96,
   858  	0xed, 0xc2, 0x8e, 0xf9, 0xdc, 0xf9, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x12, 0xb9, 0x76, 0xd8, 0xd1,
   859  	0x0a, 0x00, 0x00,
   860  }
   861  
   862  // Reference imports to suppress errors if they are not otherwise used.
   863  var _ context.Context
   864  var _ grpc.ClientConnInterface
   865  
   866  // This is a compile-time assertion to ensure that this generated file
   867  // is compatible with the grpc package it is being compiled against.
   868  const _ = grpc.SupportPackageIsVersion6
   869  
   870  // DevicePluginClient is the client API for DevicePlugin service.
   871  //
   872  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
   873  type DevicePluginClient interface {
   874  	// Fingerprint allows the device plugin to return a set of
   875  	// detected devices and provide a mechanism to update the state of
   876  	// the device.
   877  	Fingerprint(ctx context.Context, in *FingerprintRequest, opts ...grpc.CallOption) (DevicePlugin_FingerprintClient, error)
   878  	// Reserve is called by the client before starting an allocation
   879  	// that requires access to the plugin’s devices. The plugin can use
   880  	// this to run any setup steps and provides the mounting details to
   881  	// the Nomad client
   882  	Reserve(ctx context.Context, in *ReserveRequest, opts ...grpc.CallOption) (*ReserveResponse, error)
   883  	// Stats returns a stream of device statistics.
   884  	Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (DevicePlugin_StatsClient, error)
   885  }
   886  
   887  type devicePluginClient struct {
   888  	cc grpc.ClientConnInterface
   889  }
   890  
   891  func NewDevicePluginClient(cc grpc.ClientConnInterface) DevicePluginClient {
   892  	return &devicePluginClient{cc}
   893  }
   894  
   895  func (c *devicePluginClient) Fingerprint(ctx context.Context, in *FingerprintRequest, opts ...grpc.CallOption) (DevicePlugin_FingerprintClient, error) {
   896  	stream, err := c.cc.NewStream(ctx, &_DevicePlugin_serviceDesc.Streams[0], "/hashicorp.nomad.plugins.device.DevicePlugin/Fingerprint", opts...)
   897  	if err != nil {
   898  		return nil, err
   899  	}
   900  	x := &devicePluginFingerprintClient{stream}
   901  	if err := x.ClientStream.SendMsg(in); err != nil {
   902  		return nil, err
   903  	}
   904  	if err := x.ClientStream.CloseSend(); err != nil {
   905  		return nil, err
   906  	}
   907  	return x, nil
   908  }
   909  
   910  type DevicePlugin_FingerprintClient interface {
   911  	Recv() (*FingerprintResponse, error)
   912  	grpc.ClientStream
   913  }
   914  
   915  type devicePluginFingerprintClient struct {
   916  	grpc.ClientStream
   917  }
   918  
   919  func (x *devicePluginFingerprintClient) Recv() (*FingerprintResponse, error) {
   920  	m := new(FingerprintResponse)
   921  	if err := x.ClientStream.RecvMsg(m); err != nil {
   922  		return nil, err
   923  	}
   924  	return m, nil
   925  }
   926  
   927  func (c *devicePluginClient) Reserve(ctx context.Context, in *ReserveRequest, opts ...grpc.CallOption) (*ReserveResponse, error) {
   928  	out := new(ReserveResponse)
   929  	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.device.DevicePlugin/Reserve", in, out, opts...)
   930  	if err != nil {
   931  		return nil, err
   932  	}
   933  	return out, nil
   934  }
   935  
   936  func (c *devicePluginClient) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (DevicePlugin_StatsClient, error) {
   937  	stream, err := c.cc.NewStream(ctx, &_DevicePlugin_serviceDesc.Streams[1], "/hashicorp.nomad.plugins.device.DevicePlugin/Stats", opts...)
   938  	if err != nil {
   939  		return nil, err
   940  	}
   941  	x := &devicePluginStatsClient{stream}
   942  	if err := x.ClientStream.SendMsg(in); err != nil {
   943  		return nil, err
   944  	}
   945  	if err := x.ClientStream.CloseSend(); err != nil {
   946  		return nil, err
   947  	}
   948  	return x, nil
   949  }
   950  
   951  type DevicePlugin_StatsClient interface {
   952  	Recv() (*StatsResponse, error)
   953  	grpc.ClientStream
   954  }
   955  
   956  type devicePluginStatsClient struct {
   957  	grpc.ClientStream
   958  }
   959  
   960  func (x *devicePluginStatsClient) Recv() (*StatsResponse, error) {
   961  	m := new(StatsResponse)
   962  	if err := x.ClientStream.RecvMsg(m); err != nil {
   963  		return nil, err
   964  	}
   965  	return m, nil
   966  }
   967  
   968  // DevicePluginServer is the server API for DevicePlugin service.
   969  type DevicePluginServer interface {
   970  	// Fingerprint allows the device plugin to return a set of
   971  	// detected devices and provide a mechanism to update the state of
   972  	// the device.
   973  	Fingerprint(*FingerprintRequest, DevicePlugin_FingerprintServer) error
   974  	// Reserve is called by the client before starting an allocation
   975  	// that requires access to the plugin’s devices. The plugin can use
   976  	// this to run any setup steps and provides the mounting details to
   977  	// the Nomad client
   978  	Reserve(context.Context, *ReserveRequest) (*ReserveResponse, error)
   979  	// Stats returns a stream of device statistics.
   980  	Stats(*StatsRequest, DevicePlugin_StatsServer) error
   981  }
   982  
   983  // UnimplementedDevicePluginServer can be embedded to have forward compatible implementations.
   984  type UnimplementedDevicePluginServer struct {
   985  }
   986  
   987  func (*UnimplementedDevicePluginServer) Fingerprint(req *FingerprintRequest, srv DevicePlugin_FingerprintServer) error {
   988  	return status.Errorf(codes.Unimplemented, "method Fingerprint not implemented")
   989  }
   990  func (*UnimplementedDevicePluginServer) Reserve(ctx context.Context, req *ReserveRequest) (*ReserveResponse, error) {
   991  	return nil, status.Errorf(codes.Unimplemented, "method Reserve not implemented")
   992  }
   993  func (*UnimplementedDevicePluginServer) Stats(req *StatsRequest, srv DevicePlugin_StatsServer) error {
   994  	return status.Errorf(codes.Unimplemented, "method Stats not implemented")
   995  }
   996  
   997  func RegisterDevicePluginServer(s *grpc.Server, srv DevicePluginServer) {
   998  	s.RegisterService(&_DevicePlugin_serviceDesc, srv)
   999  }
  1000  
  1001  func _DevicePlugin_Fingerprint_Handler(srv interface{}, stream grpc.ServerStream) error {
  1002  	m := new(FingerprintRequest)
  1003  	if err := stream.RecvMsg(m); err != nil {
  1004  		return err
  1005  	}
  1006  	return srv.(DevicePluginServer).Fingerprint(m, &devicePluginFingerprintServer{stream})
  1007  }
  1008  
  1009  type DevicePlugin_FingerprintServer interface {
  1010  	Send(*FingerprintResponse) error
  1011  	grpc.ServerStream
  1012  }
  1013  
  1014  type devicePluginFingerprintServer struct {
  1015  	grpc.ServerStream
  1016  }
  1017  
  1018  func (x *devicePluginFingerprintServer) Send(m *FingerprintResponse) error {
  1019  	return x.ServerStream.SendMsg(m)
  1020  }
  1021  
  1022  func _DevicePlugin_Reserve_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1023  	in := new(ReserveRequest)
  1024  	if err := dec(in); err != nil {
  1025  		return nil, err
  1026  	}
  1027  	if interceptor == nil {
  1028  		return srv.(DevicePluginServer).Reserve(ctx, in)
  1029  	}
  1030  	info := &grpc.UnaryServerInfo{
  1031  		Server:     srv,
  1032  		FullMethod: "/hashicorp.nomad.plugins.device.DevicePlugin/Reserve",
  1033  	}
  1034  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1035  		return srv.(DevicePluginServer).Reserve(ctx, req.(*ReserveRequest))
  1036  	}
  1037  	return interceptor(ctx, in, info, handler)
  1038  }
  1039  
  1040  func _DevicePlugin_Stats_Handler(srv interface{}, stream grpc.ServerStream) error {
  1041  	m := new(StatsRequest)
  1042  	if err := stream.RecvMsg(m); err != nil {
  1043  		return err
  1044  	}
  1045  	return srv.(DevicePluginServer).Stats(m, &devicePluginStatsServer{stream})
  1046  }
  1047  
  1048  type DevicePlugin_StatsServer interface {
  1049  	Send(*StatsResponse) error
  1050  	grpc.ServerStream
  1051  }
  1052  
  1053  type devicePluginStatsServer struct {
  1054  	grpc.ServerStream
  1055  }
  1056  
  1057  func (x *devicePluginStatsServer) Send(m *StatsResponse) error {
  1058  	return x.ServerStream.SendMsg(m)
  1059  }
  1060  
  1061  var _DevicePlugin_serviceDesc = grpc.ServiceDesc{
  1062  	ServiceName: "hashicorp.nomad.plugins.device.DevicePlugin",
  1063  	HandlerType: (*DevicePluginServer)(nil),
  1064  	Methods: []grpc.MethodDesc{
  1065  		{
  1066  			MethodName: "Reserve",
  1067  			Handler:    _DevicePlugin_Reserve_Handler,
  1068  		},
  1069  	},
  1070  	Streams: []grpc.StreamDesc{
  1071  		{
  1072  			StreamName:    "Fingerprint",
  1073  			Handler:       _DevicePlugin_Fingerprint_Handler,
  1074  			ServerStreams: true,
  1075  		},
  1076  		{
  1077  			StreamName:    "Stats",
  1078  			Handler:       _DevicePlugin_Stats_Handler,
  1079  			ServerStreams: true,
  1080  		},
  1081  	},
  1082  	Metadata: "plugins/device/proto/device.proto",
  1083  }