// Code generated by protoc-gen-go. DO NOT EDIT.
// source: plugins/drivers/proto/driver.proto

package proto

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	hclspec "github.com/hashicorp/nomad/plugins/shared/hclspec"
	proto1 "github.com/hashicorp/nomad/plugins/shared/structs/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

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

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

type TaskState int32

const (
	TaskState_UNKNOWN TaskState = 0
	TaskState_RUNNING TaskState = 1
	TaskState_EXITED  TaskState = 2
)

var TaskState_name = map[int32]string{
	0: "UNKNOWN",
	1: "RUNNING",
	2: "EXITED",
}

var TaskState_value = map[string]int32{
	"UNKNOWN": 0,
	"RUNNING": 1,
	"EXITED":  2,
}

func (x TaskState) String() string {
	return proto.EnumName(TaskState_name, int32(x))
}

func (TaskState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{0}
}

type FingerprintResponse_HealthState int32

const (
	FingerprintResponse_UNDETECTED FingerprintResponse_HealthState = 0
	FingerprintResponse_UNHEALTHY  FingerprintResponse_HealthState = 1
	FingerprintResponse_HEALTHY    FingerprintResponse_HealthState = 2
)

var FingerprintResponse_HealthState_name = map[int32]string{
	0: "UNDETECTED",
	1: "UNHEALTHY",
	2: "HEALTHY",
}

var FingerprintResponse_HealthState_value = map[string]int32{
	"UNDETECTED": 0,
	"UNHEALTHY":  1,
	"HEALTHY":    2,
}

func (x FingerprintResponse_HealthState) String() string {
	return proto.EnumName(FingerprintResponse_HealthState_name, int32(x))
}

func (FingerprintResponse_HealthState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{5, 0}
}

type StartTaskResponse_Result int32

const (
	StartTaskResponse_SUCCESS StartTaskResponse_Result = 0
	StartTaskResponse_RETRY   StartTaskResponse_Result = 1
	StartTaskResponse_FATAL   StartTaskResponse_Result = 2
)

var StartTaskResponse_Result_name = map[int32]string{
	0: "SUCCESS",
	1: "RETRY",
	2: "FATAL",
}

var StartTaskResponse_Result_value = map[string]int32{
	"SUCCESS": 0,
	"RETRY":   1,
	"FATAL":   2,
}

func (x StartTaskResponse_Result) String() string {
	return proto.EnumName(StartTaskResponse_Result_name, int32(x))
}

func (StartTaskResponse_Result) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{9, 0}
}

type DriverCapabilities_FSIsolation int32

const (
	DriverCapabilities_NONE   DriverCapabilities_FSIsolation = 0
	DriverCapabilities_CHROOT DriverCapabilities_FSIsolation = 1
	DriverCapabilities_IMAGE  DriverCapabilities_FSIsolation = 2
)

var DriverCapabilities_FSIsolation_name = map[int32]string{
	0: "NONE",
	1: "CHROOT",
	2: "IMAGE",
}

var DriverCapabilities_FSIsolation_value = map[string]int32{
	"NONE":   0,
	"CHROOT": 1,
	"IMAGE":  2,
}

func (x DriverCapabilities_FSIsolation) String() string {
	return proto.EnumName(DriverCapabilities_FSIsolation_name, int32(x))
}

func (DriverCapabilities_FSIsolation) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{32, 0}
}

type DriverCapabilities_MountConfigs int32

const (
	DriverCapabilities_UNKNOWN_MOUNTS DriverCapabilities_MountConfigs = 0
	DriverCapabilities_ANY_MOUNTS     DriverCapabilities_MountConfigs = 0
	DriverCapabilities_NO_MOUNTS      DriverCapabilities_MountConfigs = 1
)

var DriverCapabilities_MountConfigs_name = map[int32]string{
	0: "UNKNOWN_MOUNTS",
	// Duplicate value: 0: "ANY_MOUNTS",
	1: "NO_MOUNTS",
}

var DriverCapabilities_MountConfigs_value = map[string]int32{
	"UNKNOWN_MOUNTS": 0,
	"ANY_MOUNTS":     0,
	"NO_MOUNTS":      1,
}

func (x DriverCapabilities_MountConfigs) String() string {
	return proto.EnumName(DriverCapabilities_MountConfigs_name, int32(x))
}

func (DriverCapabilities_MountConfigs) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{32, 1}
}

type NetworkIsolationSpec_NetworkIsolationMode int32

const (
	NetworkIsolationSpec_HOST  NetworkIsolationSpec_NetworkIsolationMode = 0
	NetworkIsolationSpec_GROUP NetworkIsolationSpec_NetworkIsolationMode = 1
	NetworkIsolationSpec_TASK  NetworkIsolationSpec_NetworkIsolationMode = 2
	NetworkIsolationSpec_NONE  NetworkIsolationSpec_NetworkIsolationMode = 3
)

var NetworkIsolationSpec_NetworkIsolationMode_name = map[int32]string{
	0: "HOST",
	1: "GROUP",
	2: "TASK",
	3: "NONE",
}

var NetworkIsolationSpec_NetworkIsolationMode_value = map[string]int32{
	"HOST":  0,
	"GROUP": 1,
	"TASK":  2,
	"NONE":  3,
}

func (x NetworkIsolationSpec_NetworkIsolationMode) String() string {
	return proto.EnumName(NetworkIsolationSpec_NetworkIsolationMode_name, int32(x))
}

func (NetworkIsolationSpec_NetworkIsolationMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{33, 0}
}

type CPUUsage_Fields int32

const (
	CPUUsage_SYSTEM_MODE       CPUUsage_Fields = 0
	CPUUsage_USER_MODE         CPUUsage_Fields = 1
	CPUUsage_TOTAL_TICKS       CPUUsage_Fields = 2
	CPUUsage_THROTTLED_PERIODS CPUUsage_Fields = 3
	CPUUsage_THROTTLED_TIME    CPUUsage_Fields = 4
	CPUUsage_PERCENT           CPUUsage_Fields = 5
)

var CPUUsage_Fields_name = map[int32]string{
	0: "SYSTEM_MODE",
	1: "USER_MODE",
	2: "TOTAL_TICKS",
	3: "THROTTLED_PERIODS",
	4: "THROTTLED_TIME",
	5: "PERCENT",
}

var CPUUsage_Fields_value = map[string]int32{
	"SYSTEM_MODE":       0,
	"USER_MODE":         1,
	"TOTAL_TICKS":       2,
	"THROTTLED_PERIODS": 3,
	"THROTTLED_TIME":    4,
	"PERCENT":           5,
}

func (x CPUUsage_Fields) String() string {
	return proto.EnumName(CPUUsage_Fields_name, int32(x))
}

func (CPUUsage_Fields) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{54, 0}
}

type MemoryUsage_Fields int32

const (
	MemoryUsage_RSS              MemoryUsage_Fields = 0
	MemoryUsage_CACHE            MemoryUsage_Fields = 1
	MemoryUsage_MAX_USAGE        MemoryUsage_Fields = 2
	MemoryUsage_KERNEL_USAGE     MemoryUsage_Fields = 3
	MemoryUsage_KERNEL_MAX_USAGE MemoryUsage_Fields = 4
	MemoryUsage_USAGE            MemoryUsage_Fields = 5
	MemoryUsage_SWAP             MemoryUsage_Fields = 6
)

var MemoryUsage_Fields_name = map[int32]string{
	0: "RSS",
	1: "CACHE",
	2: "MAX_USAGE",
	3: "KERNEL_USAGE",
	4: "KERNEL_MAX_USAGE",
	5: "USAGE",
	6: "SWAP",
}

var MemoryUsage_Fields_value = map[string]int32{
	"RSS":              0,
	"CACHE":            1,
	"MAX_USAGE":        2,
	"KERNEL_USAGE":     3,
	"KERNEL_MAX_USAGE": 4,
	"USAGE":            5,
	"SWAP":             6,
}

func (x MemoryUsage_Fields) String() string {
	return proto.EnumName(MemoryUsage_Fields_name, int32(x))
}

func (MemoryUsage_Fields) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{55, 0}
}

type TaskConfigSchemaRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_TaskConfigSchemaRequest proto.InternalMessageInfo

type TaskConfigSchemaResponse struct {
	// Spec is the configuration schema for the job driver config stanza
	Spec                 *hclspec.Spec `protobuf:"bytes,1,opt,name=spec,proto3" json:"spec,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_TaskConfigSchemaResponse proto.InternalMessageInfo

func (m *TaskConfigSchemaResponse) GetSpec() *hclspec.Spec {
	if m != nil {
		return m.Spec
	}
	return nil
}

type CapabilitiesRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_CapabilitiesRequest proto.InternalMessageInfo

type CapabilitiesResponse struct {
	// Capabilities provides a way for the driver to denote if it implements
	// non-core RPCs. Some Driver service RPCs expose additional information
	// or functionality outside of the core task management functions. These
	// RPCs are only implemented if the driver sets the corresponding capability.
	Capabilities         *DriverCapabilities `protobuf:"bytes,1,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_CapabilitiesResponse proto.InternalMessageInfo

func (m *CapabilitiesResponse) GetCapabilities() *DriverCapabilities {
	if m != nil {
		return m.Capabilities
	}
	return nil
}

type FingerprintRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_FingerprintRequest proto.InternalMessageInfo

type FingerprintResponse struct {
	// Attributes are key/value pairs that annotate the nomad client and can be
	// used in scheduling constraints and affinities.
	Attributes map[string]*proto1.Attribute `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Health is used to determine the state of the health the driver is in.
	// Health can be one of the following states:
	//  * UNDETECTED: driver dependencies are not met and the driver can not start
	//  * UNHEALTHY: driver dependencies are met but the driver is unable to
	//      perform operations due to some other problem
	//  * HEALTHY: driver is able to perform all operations
	Health FingerprintResponse_HealthState `protobuf:"varint,2,opt,name=health,proto3,enum=hashicorp.nomad.plugins.drivers.proto.FingerprintResponse_HealthState" json:"health,omitempty"`
	// HealthDescription is a human readable message describing the current
	// state of driver health
	HealthDescription    string   `protobuf:"bytes,3,opt,name=health_description,json=healthDescription,proto3" json:"health_description,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_FingerprintResponse proto.InternalMessageInfo

func (m *FingerprintResponse) GetAttributes() map[string]*proto1.Attribute {
	if m != nil {
		return m.Attributes
	}
	return nil
}

func (m *FingerprintResponse) GetHealth() FingerprintResponse_HealthState {
	if m != nil {
		return m.Health
	}
	return FingerprintResponse_UNDETECTED
}

func (m *FingerprintResponse) GetHealthDescription() string {
	if m != nil {
		return m.HealthDescription
	}
	return ""
}

type RecoverTaskRequest struct {
	// TaskId is the ID of the target task
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Handle is the TaskHandle returned from StartTask
	Handle               *TaskHandle `protobuf:"bytes,2,opt,name=handle,proto3" json:"handle,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

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

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

var xxx_messageInfo_RecoverTaskRequest proto.InternalMessageInfo

func (m *RecoverTaskRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *RecoverTaskRequest) GetHandle() *TaskHandle {
	if m != nil {
		return m.Handle
	}
	return nil
}

type RecoverTaskResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_RecoverTaskResponse proto.InternalMessageInfo

type StartTaskRequest struct {
	// Task configuration to launch
	Task                 *TaskConfig `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *StartTaskRequest) Reset()         { *m = StartTaskRequest{} }
func (m *StartTaskRequest) String() string { return proto.CompactTextString(m) }
func (*StartTaskRequest) ProtoMessage()    {}
func (*StartTaskRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{8}
}

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

var xxx_messageInfo_StartTaskRequest proto.InternalMessageInfo

func (m *StartTaskRequest) GetTask() *TaskConfig {
	if m != nil {
		return m.Task
	}
	return nil
}

type StartTaskResponse struct {
	// Result is set depending on the type of error that occurred while starting
	// a task:
	//
	//   * SUCCESS: No error occurred, handle is set
	//   * RETRY: An error occurred, but is recoverable and the RPC should be retried
	//   * FATAL: A fatal error occurred and is not likely to succeed if retried
	//
	// If Result is not successful, the DriverErrorMsg will be set.
	Result StartTaskResponse_Result `protobuf:"varint,1,opt,name=result,proto3,enum=hashicorp.nomad.plugins.drivers.proto.StartTaskResponse_Result" json:"result,omitempty"`
	// DriverErrorMsg is set if an error occurred
	DriverErrorMsg string `protobuf:"bytes,2,opt,name=driver_error_msg,json=driverErrorMsg,proto3" json:"driver_error_msg,omitempty"`
	// Handle is opaque to the client, but must be stored in order to recover
	// the task.
	Handle *TaskHandle `protobuf:"bytes,3,opt,name=handle,proto3" json:"handle,omitempty"`
	// NetworkOverride is set if the driver sets network settings and the service ip/port
	// needs to be set differently.
	NetworkOverride      *NetworkOverride `protobuf:"bytes,4,opt,name=network_override,json=networkOverride,proto3" json:"network_override,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *StartTaskResponse) Reset()         { *m = StartTaskResponse{} }
func (m *StartTaskResponse) String() string { return proto.CompactTextString(m) }
func (*StartTaskResponse) ProtoMessage()    {}
func (*StartTaskResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{9}
}

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

var xxx_messageInfo_StartTaskResponse proto.InternalMessageInfo

func (m *StartTaskResponse) GetResult() StartTaskResponse_Result {
	if m != nil {
		return m.Result
	}
	return StartTaskResponse_SUCCESS
}

func (m *StartTaskResponse) GetDriverErrorMsg() string {
	if m != nil {
		return m.DriverErrorMsg
	}
	return ""
}

func (m *StartTaskResponse) GetHandle() *TaskHandle {
	if m != nil {
		return m.Handle
	}
	return nil
}

func (m *StartTaskResponse) GetNetworkOverride() *NetworkOverride {
	if m != nil {
		return m.NetworkOverride
	}
	return nil
}

type WaitTaskRequest struct {
	// TaskId is the ID of the target task
	TaskId               string   `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WaitTaskRequest) Reset()         { *m = WaitTaskRequest{} }
func (m *WaitTaskRequest) String() string { return proto.CompactTextString(m) }
func (*WaitTaskRequest) ProtoMessage()    {}
func (*WaitTaskRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{10}
}

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

var xxx_messageInfo_WaitTaskRequest proto.InternalMessageInfo

func (m *WaitTaskRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

type WaitTaskResponse struct {
	// Result is the exit status of the task
	Result *ExitResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	// Err is set if any driver error occurred while waiting for the task
	Err                  string   `protobuf:"bytes,2,opt,name=err,proto3" json:"err,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WaitTaskResponse) Reset()         { *m = WaitTaskResponse{} }
func (m *WaitTaskResponse) String() string { return proto.CompactTextString(m) }
func (*WaitTaskResponse) ProtoMessage()    {}
func (*WaitTaskResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{11}
}

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

var xxx_messageInfo_WaitTaskResponse proto.InternalMessageInfo

func (m *WaitTaskResponse) GetResult() *ExitResult {
	if m != nil {
		return m.Result
	}
	return nil
}

func (m *WaitTaskResponse) GetErr() string {
	if m != nil {
		return m.Err
	}
	return ""
}

type StopTaskRequest struct {
	// TaskId is the ID of the target task
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Timeout defines the amount of time to wait before forcefully killing
	// the task. For example, on Unix clients, this means sending a SIGKILL to
	// the process.
	Timeout *duration.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
	// Signal can be set to override the Task's configured shutdown signal
	Signal               string   `protobuf:"bytes,3,opt,name=signal,proto3" json:"signal,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StopTaskRequest) Reset()         { *m = StopTaskRequest{} }
func (m *StopTaskRequest) String() string { return proto.CompactTextString(m) }
func (*StopTaskRequest) ProtoMessage()    {}
func (*StopTaskRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{12}
}

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

var xxx_messageInfo_StopTaskRequest proto.InternalMessageInfo

func (m *StopTaskRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *StopTaskRequest) GetTimeout() *duration.Duration {
	if m != nil {
		return m.Timeout
	}
	return nil
}

func (m *StopTaskRequest) GetSignal() string {
	if m != nil {
		return m.Signal
	}
	return ""
}

type StopTaskResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StopTaskResponse) Reset()         { *m = StopTaskResponse{} }
func (m *StopTaskResponse) String() string { return proto.CompactTextString(m) }
func (*StopTaskResponse) ProtoMessage()    {}
func (*StopTaskResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{13}
}

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

var xxx_messageInfo_StopTaskResponse proto.InternalMessageInfo

type DestroyTaskRequest struct {
	// TaskId is the ID of the target task
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Force destroys the task even if it is still in a running state
	Force                bool     `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DestroyTaskRequest) Reset()         { *m = DestroyTaskRequest{} }
func (m *DestroyTaskRequest) String() string { return proto.CompactTextString(m) }
func (*DestroyTaskRequest) ProtoMessage()    {}
func (*DestroyTaskRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{14}
}

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

var xxx_messageInfo_DestroyTaskRequest proto.InternalMessageInfo

func (m *DestroyTaskRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *DestroyTaskRequest) GetForce() bool {
	if m != nil {
		return m.Force
	}
	return false
}

type DestroyTaskResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DestroyTaskResponse) Reset()         { *m = DestroyTaskResponse{} }
func (m *DestroyTaskResponse) String() string { return proto.CompactTextString(m) }
func (*DestroyTaskResponse) ProtoMessage()    {}
func (*DestroyTaskResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{15}
}

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

var xxx_messageInfo_DestroyTaskResponse proto.InternalMessageInfo

type InspectTaskRequest struct {
	// TaskId is the ID of the target task
	TaskId               string   `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InspectTaskRequest) Reset()         { *m = InspectTaskRequest{} }
func (m *InspectTaskRequest) String() string { return proto.CompactTextString(m) }
func (*InspectTaskRequest) ProtoMessage()    {}
func (*InspectTaskRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{16}
}

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

var xxx_messageInfo_InspectTaskRequest proto.InternalMessageInfo

func (m *InspectTaskRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

type InspectTaskResponse struct {
	// Task details
	Task *TaskStatus `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
	// Driver details for task
	Driver *TaskDriverStatus `protobuf:"bytes,2,opt,name=driver,proto3" json:"driver,omitempty"`
	// NetworkOverride info if set
	NetworkOverride      *NetworkOverride `protobuf:"bytes,3,opt,name=network_override,json=networkOverride,proto3" json:"network_override,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *InspectTaskResponse) Reset()         { *m = InspectTaskResponse{} }
func (m *InspectTaskResponse) String() string { return proto.CompactTextString(m) }
func (*InspectTaskResponse) ProtoMessage()    {}
func (*InspectTaskResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{17}
}

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

var xxx_messageInfo_InspectTaskResponse proto.InternalMessageInfo

func (m *InspectTaskResponse) GetTask() *TaskStatus {
	if m != nil {
		return m.Task
	}
	return nil
}

func (m *InspectTaskResponse) GetDriver() *TaskDriverStatus {
	if m != nil {
		return m.Driver
	}
	return nil
}

func (m *InspectTaskResponse) GetNetworkOverride() *NetworkOverride {
	if m != nil {
		return m.NetworkOverride
	}
	return nil
}

type TaskStatsRequest struct {
	// TaskId is the ID of the target task
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// CollectionInterval is the interval at which to stream stats to the caller
	CollectionInterval   *duration.Duration `protobuf:"bytes,2,opt,name=collection_interval,json=collectionInterval,proto3" json:"collection_interval,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *TaskStatsRequest) Reset()         { *m = TaskStatsRequest{} }
func (m *TaskStatsRequest) String() string { return proto.CompactTextString(m) }
func (*TaskStatsRequest) ProtoMessage()    {}
func (*TaskStatsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{18}
}

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

var xxx_messageInfo_TaskStatsRequest proto.InternalMessageInfo

func (m *TaskStatsRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *TaskStatsRequest) GetCollectionInterval() *duration.Duration {
	if m != nil {
		return m.CollectionInterval
	}
	return nil
}

type TaskStatsResponse struct {
	// Stats for the task
	Stats                *TaskStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *TaskStatsResponse) Reset()         { *m = TaskStatsResponse{} }
func (m *TaskStatsResponse) String() string { return proto.CompactTextString(m) }
func (*TaskStatsResponse) ProtoMessage()    {}
func (*TaskStatsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{19}
}

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

var xxx_messageInfo_TaskStatsResponse proto.InternalMessageInfo

func (m *TaskStatsResponse) GetStats() *TaskStats {
	if m != nil {
		return m.Stats
	}
	return nil
}

type TaskEventsRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TaskEventsRequest) Reset()         { *m = TaskEventsRequest{} }
func (m *TaskEventsRequest) String() string { return proto.CompactTextString(m) }
func (*TaskEventsRequest) ProtoMessage()    {}
func (*TaskEventsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{20}
}

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

var xxx_messageInfo_TaskEventsRequest proto.InternalMessageInfo

type SignalTaskRequest struct {
	// TaskId is the ID of the target task
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Signal is the operating system signal to send to the task. Ex: SIGHUP
	Signal               string   `protobuf:"bytes,2,opt,name=signal,proto3" json:"signal,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SignalTaskRequest) Reset()         { *m = SignalTaskRequest{} }
func (m *SignalTaskRequest) String() string { return proto.CompactTextString(m) }
func (*SignalTaskRequest) ProtoMessage()    {}
func (*SignalTaskRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{21}
}

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

var xxx_messageInfo_SignalTaskRequest proto.InternalMessageInfo

func (m *SignalTaskRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *SignalTaskRequest) GetSignal() string {
	if m != nil {
		return m.Signal
	}
	return ""
}

type SignalTaskResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SignalTaskResponse) Reset()         { *m = SignalTaskResponse{} }
func (m *SignalTaskResponse) String() string { return proto.CompactTextString(m) }
func (*SignalTaskResponse) ProtoMessage()    {}
func (*SignalTaskResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{22}
}

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

var xxx_messageInfo_SignalTaskResponse proto.InternalMessageInfo

type ExecTaskRequest struct {
	// TaskId is the ID of the target task
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Command is the command to execute in the task environment
	Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"`
	// Timeout is the amount of time to wait for the command to stop.
	// Defaults to 0 (run forever)
	Timeout              *duration.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *ExecTaskRequest) Reset()         { *m = ExecTaskRequest{} }
func (m *ExecTaskRequest) String() string { return proto.CompactTextString(m) }
func (*ExecTaskRequest) ProtoMessage()    {}
func (*ExecTaskRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{23}
}

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

var xxx_messageInfo_ExecTaskRequest proto.InternalMessageInfo

func (m *ExecTaskRequest) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *ExecTaskRequest) GetCommand() []string {
	if m != nil {
		return m.Command
	}
	return nil
}

func (m *ExecTaskRequest) GetTimeout() *duration.Duration {
	if m != nil {
		return m.Timeout
	}
	return nil
}

type ExecTaskResponse struct {
	// Stdout from the exec
	Stdout []byte `protobuf:"bytes,1,opt,name=stdout,proto3" json:"stdout,omitempty"`
	// Stderr from the exec
	Stderr []byte `protobuf:"bytes,2,opt,name=stderr,proto3" json:"stderr,omitempty"`
	// Result from the exec
	Result               *ExitResult `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *ExecTaskResponse) Reset()         { *m = ExecTaskResponse{} }
func (m *ExecTaskResponse) String() string { return proto.CompactTextString(m) }
func (*ExecTaskResponse) ProtoMessage()    {}
func (*ExecTaskResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{24}
}

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

var xxx_messageInfo_ExecTaskResponse proto.InternalMessageInfo

func (m *ExecTaskResponse) GetStdout() []byte {
	if m != nil {
		return m.Stdout
	}
	return nil
}

func (m *ExecTaskResponse) GetStderr() []byte {
	if m != nil {
		return m.Stderr
	}
	return nil
}

func (m *ExecTaskResponse) GetResult() *ExitResult {
	if m != nil {
		return m.Result
	}
	return nil
}

type ExecTaskStreamingIOOperation struct {
	Data                 []byte   `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Close                bool     `protobuf:"varint,2,opt,name=close,proto3" json:"close,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ExecTaskStreamingIOOperation) Reset()         { *m = ExecTaskStreamingIOOperation{} }
func (m *ExecTaskStreamingIOOperation) String() string { return proto.CompactTextString(m) }
func (*ExecTaskStreamingIOOperation) ProtoMessage()    {}
func (*ExecTaskStreamingIOOperation) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{25}
}

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

var xxx_messageInfo_ExecTaskStreamingIOOperation proto.InternalMessageInfo

func (m *ExecTaskStreamingIOOperation) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func (m *ExecTaskStreamingIOOperation) GetClose() bool {
	if m != nil {
		return m.Close
	}
	return false
}

type ExecTaskStreamingRequest struct {
	Setup                *ExecTaskStreamingRequest_Setup        `protobuf:"bytes,1,opt,name=setup,proto3" json:"setup,omitempty"`
	TtySize              *ExecTaskStreamingRequest_TerminalSize `protobuf:"bytes,2,opt,name=tty_size,json=ttySize,proto3" json:"tty_size,omitempty"`
	Stdin                *ExecTaskStreamingIOOperation          `protobuf:"bytes,3,opt,name=stdin,proto3" json:"stdin,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                               `json:"-"`
	XXX_unrecognized     []byte                                 `json:"-"`
	XXX_sizecache        int32                                  `json:"-"`
}

func (m *ExecTaskStreamingRequest) Reset()         { *m = ExecTaskStreamingRequest{} }
func (m *ExecTaskStreamingRequest) String() string { return proto.CompactTextString(m) }
func (*ExecTaskStreamingRequest) ProtoMessage()    {}
func (*ExecTaskStreamingRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{26}
}

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

var xxx_messageInfo_ExecTaskStreamingRequest proto.InternalMessageInfo

func (m *ExecTaskStreamingRequest) GetSetup() *ExecTaskStreamingRequest_Setup {
	if m != nil {
		return m.Setup
	}
	return nil
}

func (m *ExecTaskStreamingRequest) GetTtySize() *ExecTaskStreamingRequest_TerminalSize {
	if m != nil {
		return m.TtySize
	}
	return nil
}

func (m *ExecTaskStreamingRequest) GetStdin() *ExecTaskStreamingIOOperation {
	if m != nil {
		return m.Stdin
	}
	return nil
}

type ExecTaskStreamingRequest_Setup struct {
	TaskId               string   `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	Command              []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"`
	Tty                  bool     `protobuf:"varint,3,opt,name=tty,proto3" json:"tty,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ExecTaskStreamingRequest_Setup proto.InternalMessageInfo

func (m *ExecTaskStreamingRequest_Setup) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *ExecTaskStreamingRequest_Setup) GetCommand() []string {
	if m != nil {
		return m.Command
	}
	return nil
}

func (m *ExecTaskStreamingRequest_Setup) GetTty() bool {
	if m != nil {
		return m.Tty
	}
	return false
}

type ExecTaskStreamingRequest_TerminalSize struct {
	Height               int32    `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Width                int32    `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ExecTaskStreamingRequest_TerminalSize proto.InternalMessageInfo

func (m *ExecTaskStreamingRequest_TerminalSize) GetHeight() int32 {
	if m != nil {
		return m.Height
	}
	return 0
}

func (m *ExecTaskStreamingRequest_TerminalSize) GetWidth() int32 {
	if m != nil {
		return m.Width
	}
	return 0
}

type ExecTaskStreamingResponse struct {
	Stdout               *ExecTaskStreamingIOOperation `protobuf:"bytes,1,opt,name=stdout,proto3" json:"stdout,omitempty"`
	Stderr               *ExecTaskStreamingIOOperation `protobuf:"bytes,2,opt,name=stderr,proto3" json:"stderr,omitempty"`
	Exited               bool                          `protobuf:"varint,3,opt,name=exited,proto3" json:"exited,omitempty"`
	Result               *ExitResult                   `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *ExecTaskStreamingResponse) Reset()         { *m = ExecTaskStreamingResponse{} }
func (m *ExecTaskStreamingResponse) String() string { return proto.CompactTextString(m) }
func (*ExecTaskStreamingResponse) ProtoMessage()    {}
func (*ExecTaskStreamingResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{27}
}

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

var xxx_messageInfo_ExecTaskStreamingResponse proto.InternalMessageInfo

func (m *ExecTaskStreamingResponse) GetStdout() *ExecTaskStreamingIOOperation {
	if m != nil {
		return m.Stdout
	}
	return nil
}

func (m *ExecTaskStreamingResponse) GetStderr() *ExecTaskStreamingIOOperation {
	if m != nil {
		return m.Stderr
	}
	return nil
}

func (m *ExecTaskStreamingResponse) GetExited() bool {
	if m != nil {
		return m.Exited
	}
	return false
}

func (m *ExecTaskStreamingResponse) GetResult() *ExitResult {
	if m != nil {
		return m.Result
	}
	return nil
}

type CreateNetworkRequest struct {
	// AllocID of the allocation the network is associated with
	AllocId string `protobuf:"bytes,1,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
	// Hostname of the network namespace
	Hostname             string   `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateNetworkRequest) Reset()         { *m = CreateNetworkRequest{} }
func (m *CreateNetworkRequest) String() string { return proto.CompactTextString(m) }
func (*CreateNetworkRequest) ProtoMessage()    {}
func (*CreateNetworkRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{28}
}

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

var xxx_messageInfo_CreateNetworkRequest proto.InternalMessageInfo

func (m *CreateNetworkRequest) GetAllocId() string {
	if m != nil {
		return m.AllocId
	}
	return ""
}

func (m *CreateNetworkRequest) GetHostname() string {
	if m != nil {
		return m.Hostname
	}
	return ""
}

type CreateNetworkResponse struct {
	IsolationSpec *NetworkIsolationSpec `protobuf:"bytes,1,opt,name=isolation_spec,json=isolationSpec,proto3" json:"isolation_spec,omitempty"`
	// created indicates that the network namespace is newly created
	// as a result of this request. if false, the NetworkIsolationSpec
	// value returned is an existing spec.
	Created              bool     `protobuf:"varint,2,opt,name=created,proto3" json:"created,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateNetworkResponse) Reset()         { *m = CreateNetworkResponse{} }
func (m *CreateNetworkResponse) String() string { return proto.CompactTextString(m) }
func (*CreateNetworkResponse) ProtoMessage()    {}
func (*CreateNetworkResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{29}
}

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

var xxx_messageInfo_CreateNetworkResponse proto.InternalMessageInfo

func (m *CreateNetworkResponse) GetIsolationSpec() *NetworkIsolationSpec {
	if m != nil {
		return m.IsolationSpec
	}
	return nil
}

func (m *CreateNetworkResponse) GetCreated() bool {
	if m != nil {
		return m.Created
	}
	return false
}

type DestroyNetworkRequest struct {
	// AllocID of the allocation the network is associated with
	AllocId              string                `protobuf:"bytes,1,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
	IsolationSpec        *NetworkIsolationSpec `protobuf:"bytes,2,opt,name=isolation_spec,json=isolationSpec,proto3" json:"isolation_spec,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *DestroyNetworkRequest) Reset()         { *m = DestroyNetworkRequest{} }
func (m *DestroyNetworkRequest) String() string { return proto.CompactTextString(m) }
func (*DestroyNetworkRequest) ProtoMessage()    {}
func (*DestroyNetworkRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{30}
}

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

var xxx_messageInfo_DestroyNetworkRequest proto.InternalMessageInfo

func (m *DestroyNetworkRequest) GetAllocId() string {
	if m != nil {
		return m.AllocId
	}
	return ""
}

func (m *DestroyNetworkRequest) GetIsolationSpec() *NetworkIsolationSpec {
	if m != nil {
		return m.IsolationSpec
	}
	return nil
}

type DestroyNetworkResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DestroyNetworkResponse) Reset()         { *m = DestroyNetworkResponse{} }
func (m *DestroyNetworkResponse) String() string { return proto.CompactTextString(m) }
func (*DestroyNetworkResponse) ProtoMessage()    {}
func (*DestroyNetworkResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{31}
}

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

var xxx_messageInfo_DestroyNetworkResponse proto.InternalMessageInfo

type DriverCapabilities struct {
	// SendSignals indicates that the driver can send process signals (ex. SIGUSR1)
	// to the task.
	SendSignals bool `protobuf:"varint,1,opt,name=send_signals,json=sendSignals,proto3" json:"send_signals,omitempty"`
	// Exec indicates that the driver supports executing arbitrary commands
	// in the task's execution environment.
	Exec bool `protobuf:"varint,2,opt,name=exec,proto3" json:"exec,omitempty"`
	// FsIsolation indicates what kind of filesystem isolation a driver supports.
	FsIsolation           DriverCapabilities_FSIsolation              `protobuf:"varint,3,opt,name=fs_isolation,json=fsIsolation,proto3,enum=hashicorp.nomad.plugins.drivers.proto.DriverCapabilities_FSIsolation" json:"fs_isolation,omitempty"`
	NetworkIsolationModes []NetworkIsolationSpec_NetworkIsolationMode `protobuf:"varint,4,rep,packed,name=network_isolation_modes,json=networkIsolationModes,proto3,enum=hashicorp.nomad.plugins.drivers.proto.NetworkIsolationSpec_NetworkIsolationMode" json:"network_isolation_modes,omitempty"`
	MustCreateNetwork     bool                                        `protobuf:"varint,5,opt,name=must_create_network,json=mustCreateNetwork,proto3" json:"must_create_network,omitempty"`
	// MountConfigs indicates whether the driver supports mount configurations.
	MountConfigs DriverCapabilities_MountConfigs `protobuf:"varint,6,opt,name=mount_configs,json=mountConfigs,proto3,enum=hashicorp.nomad.plugins.drivers.proto.DriverCapabilities_MountConfigs" json:"mount_configs,omitempty"`
	// remote_tasks indicates whether the driver executes tasks remotely such
	// on cloud runtimes like AWS ECS.
	RemoteTasks          bool     `protobuf:"varint,7,opt,name=remote_tasks,json=remoteTasks,proto3" json:"remote_tasks,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DriverCapabilities) Reset()         { *m = DriverCapabilities{} }
func (m *DriverCapabilities) String() string { return proto.CompactTextString(m) }
func (*DriverCapabilities) ProtoMessage()    {}
func (*DriverCapabilities) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{32}
}

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

var xxx_messageInfo_DriverCapabilities proto.InternalMessageInfo

func (m *DriverCapabilities) GetSendSignals() bool {
	if m != nil {
		return m.SendSignals
	}
	return false
}

func (m *DriverCapabilities) GetExec() bool {
	if m != nil {
		return m.Exec
	}
	return false
}

func (m *DriverCapabilities) GetFsIsolation() DriverCapabilities_FSIsolation {
	if m != nil {
		return m.FsIsolation
	}
	return DriverCapabilities_NONE
}

func (m *DriverCapabilities) GetNetworkIsolationModes() []NetworkIsolationSpec_NetworkIsolationMode {
	if m != nil {
		return m.NetworkIsolationModes
	}
	return nil
}

func (m *DriverCapabilities) GetMustCreateNetwork() bool {
	if m != nil {
		return m.MustCreateNetwork
	}
	return false
}

func (m *DriverCapabilities) GetMountConfigs() DriverCapabilities_MountConfigs {
	if m != nil {
		return m.MountConfigs
	}
	return DriverCapabilities_UNKNOWN_MOUNTS
}

func (m *DriverCapabilities) GetRemoteTasks() bool {
	if m != nil {
		return m.RemoteTasks
	}
	return false
}

type NetworkIsolationSpec struct {
	Mode                 NetworkIsolationSpec_NetworkIsolationMode `protobuf:"varint,1,opt,name=mode,proto3,enum=hashicorp.nomad.plugins.drivers.proto.NetworkIsolationSpec_NetworkIsolationMode" json:"mode,omitempty"`
	Path                 string                                    `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	Labels               map[string]string                         `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	HostsConfig          *HostsConfig                              `protobuf:"bytes,4,opt,name=hostsConfig,proto3" json:"hostsConfig,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
	XXX_unrecognized     []byte                                    `json:"-"`
	XXX_sizecache        int32                                     `json:"-"`
}

func (m *NetworkIsolationSpec) Reset()         { *m = NetworkIsolationSpec{} }
func (m *NetworkIsolationSpec) String() string { return proto.CompactTextString(m) }
func (*NetworkIsolationSpec) ProtoMessage()    {}
func (*NetworkIsolationSpec) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{33}
}

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

var xxx_messageInfo_NetworkIsolationSpec proto.InternalMessageInfo

func (m *NetworkIsolationSpec) GetMode() NetworkIsolationSpec_NetworkIsolationMode {
	if m != nil {
		return m.Mode
	}
	return NetworkIsolationSpec_HOST
}

func (m *NetworkIsolationSpec) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *NetworkIsolationSpec) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

func (m *NetworkIsolationSpec) GetHostsConfig() *HostsConfig {
	if m != nil {
		return m.HostsConfig
	}
	return nil
}

type HostsConfig struct {
	Hostname             string   `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Address              string   `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *HostsConfig) Reset()         { *m = HostsConfig{} }
func (m *HostsConfig) String() string { return proto.CompactTextString(m) }
func (*HostsConfig) ProtoMessage()    {}
func (*HostsConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{34}
}

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

var xxx_messageInfo_HostsConfig proto.InternalMessageInfo

func (m *HostsConfig) GetHostname() string {
	if m != nil {
		return m.Hostname
	}
	return ""
}

func (m *HostsConfig) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

type DNSConfig struct {
	Servers              []string `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"`
	Searches             []string `protobuf:"bytes,2,rep,name=searches,proto3" json:"searches,omitempty"`
	Options              []string `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DNSConfig) Reset()         { *m = DNSConfig{} }
func (m *DNSConfig) String() string { return proto.CompactTextString(m) }
func (*DNSConfig) ProtoMessage()    {}
func (*DNSConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{35}
}

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

var xxx_messageInfo_DNSConfig proto.InternalMessageInfo

func (m *DNSConfig) GetServers() []string {
	if m != nil {
		return m.Servers
	}
	return nil
}

func (m *DNSConfig) GetSearches() []string {
	if m != nil {
		return m.Searches
	}
	return nil
}

func (m *DNSConfig) GetOptions() []string {
	if m != nil {
		return m.Options
	}
	return nil
}

type TaskConfig struct {
	// Id of the task, recommended to the globally unique, must be unique to the driver.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Name of the task
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// MsgpackDriverConfig is the encoded driver configuation of the task
	MsgpackDriverConfig []byte `protobuf:"bytes,3,opt,name=msgpack_driver_config,json=msgpackDriverConfig,proto3" json:"msgpack_driver_config,omitempty"`
	// Env is the a set of key/value pairs to be set as environment variables
	Env map[string]string `protobuf:"bytes,4,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// DeviceEnv is the set of environment variables that are defined by device
	// plugins. This allows the driver to differentiate environment variables
	// set by the device plugins and those by the user. When populating the
	// task's environment env should be used.
	DeviceEnv map[string]string `protobuf:"bytes,5,rep,name=device_env,json=deviceEnv,proto3" json:"device_env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Resources defines the resources to isolate
	Resources *Resources `protobuf:"bytes,6,opt,name=resources,proto3" json:"resources,omitempty"`
	// Mounts is a list of targets to bind mount into the task directory
	Mounts []*Mount `protobuf:"bytes,7,rep,name=mounts,proto3" json:"mounts,omitempty"`
	// Devices is a list of system devices to mount into the task's execution
	// environment.
	Devices []*Device `protobuf:"bytes,8,rep,name=devices,proto3" json:"devices,omitempty"`
	// User defines the operating system user the tasks should run as
	User string `protobuf:"bytes,9,opt,name=user,proto3" json:"user,omitempty"`
	// AllocDir is the directory on the host where the allocation directory
	// exists.
	AllocDir string `protobuf:"bytes,10,opt,name=alloc_dir,json=allocDir,proto3" json:"alloc_dir,omitempty"`
	// StdoutPath is the path to the file to open and write task stdout to
	StdoutPath string `protobuf:"bytes,11,opt,name=stdout_path,json=stdoutPath,proto3" json:"stdout_path,omitempty"`
	// StderrPath is the path to the file to open and write task stderr to
	StderrPath string `protobuf:"bytes,12,opt,name=stderr_path,json=stderrPath,proto3" json:"stderr_path,omitempty"`
	// TaskGroupName is the name of the task group which this task is a member of
	TaskGroupName string `protobuf:"bytes,13,opt,name=task_group_name,json=taskGroupName,proto3" json:"task_group_name,omitempty"`
	// JobName is the name of the job of which this task is part of
	JobName string `protobuf:"bytes,14,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"`
	// AllocId is the ID of the associated allocation
	AllocId string `protobuf:"bytes,15,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
	// NetworkIsolationSpec specifies the configuration for the network namespace
	// to use for the task. *Only supported on Linux
	NetworkIsolationSpec *NetworkIsolationSpec `protobuf:"bytes,16,opt,name=network_isolation_spec,json=networkIsolationSpec,proto3" json:"network_isolation_spec,omitempty"`
	// DNSConfig is the configuration for task DNS resolvers and other options
	Dns                  *DNSConfig `protobuf:"bytes,17,opt,name=dns,proto3" json:"dns,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *TaskConfig) Reset()         { *m = TaskConfig{} }
func (m *TaskConfig) String() string { return proto.CompactTextString(m) }
func (*TaskConfig) ProtoMessage()    {}
func (*TaskConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{36}
}

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

var xxx_messageInfo_TaskConfig proto.InternalMessageInfo

func (m *TaskConfig) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *TaskConfig) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *TaskConfig) GetMsgpackDriverConfig() []byte {
	if m != nil {
		return m.MsgpackDriverConfig
	}
	return nil
}

func (m *TaskConfig) GetEnv() map[string]string {
	if m != nil {
		return m.Env
	}
	return nil
}

func (m *TaskConfig) GetDeviceEnv() map[string]string {
	if m != nil {
		return m.DeviceEnv
	}
	return nil
}

func (m *TaskConfig) GetResources() *Resources {
	if m != nil {
		return m.Resources
	}
	return nil
}

func (m *TaskConfig) GetMounts() []*Mount {
	if m != nil {
		return m.Mounts
	}
	return nil
}

func (m *TaskConfig) GetDevices() []*Device {
	if m != nil {
		return m.Devices
	}
	return nil
}

func (m *TaskConfig) GetUser() string {
	if m != nil {
		return m.User
	}
	return ""
}

func (m *TaskConfig) GetAllocDir() string {
	if m != nil {
		return m.AllocDir
	}
	return ""
}

func (m *TaskConfig) GetStdoutPath() string {
	if m != nil {
		return m.StdoutPath
	}
	return ""
}

func (m *TaskConfig) GetStderrPath() string {
	if m != nil {
		return m.StderrPath
	}
	return ""
}

func (m *TaskConfig) GetTaskGroupName() string {
	if m != nil {
		return m.TaskGroupName
	}
	return ""
}

func (m *TaskConfig) GetJobName() string {
	if m != nil {
		return m.JobName
	}
	return ""
}

func (m *TaskConfig) GetAllocId() string {
	if m != nil {
		return m.AllocId
	}
	return ""
}

func (m *TaskConfig) GetNetworkIsolationSpec() *NetworkIsolationSpec {
	if m != nil {
		return m.NetworkIsolationSpec
	}
	return nil
}

func (m *TaskConfig) GetDns() *DNSConfig {
	if m != nil {
		return m.Dns
	}
	return nil
}

type Resources struct {
	// AllocatedResources are the resources set for the task
	AllocatedResources *AllocatedTaskResources `protobuf:"bytes,1,opt,name=allocated_resources,json=allocatedResources,proto3" json:"allocated_resources,omitempty"`
	// LinuxResources are the computed values to set for specific Linux features
	LinuxResources *LinuxResources `protobuf:"bytes,2,opt,name=linux_resources,json=linuxResources,proto3" json:"linux_resources,omitempty"`
	// Ports are the allocated port mappings for the allocation.
	// A task may use these to manually configure port mapping if shared network namespaces aren't being used.
	Ports                []*PortMapping `protobuf:"bytes,3,rep,name=ports,proto3" json:"ports,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *Resources) Reset()         { *m = Resources{} }
func (m *Resources) String() string { return proto.CompactTextString(m) }
func (*Resources) ProtoMessage()    {}
func (*Resources) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{37}
}

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

var xxx_messageInfo_Resources proto.InternalMessageInfo

func (m *Resources) GetAllocatedResources() *AllocatedTaskResources {
	if m != nil {
		return m.AllocatedResources
	}
	return nil
}

func (m *Resources) GetLinuxResources() *LinuxResources {
	if m != nil {
		return m.LinuxResources
	}
	return nil
}

func (m *Resources) GetPorts() []*PortMapping {
	if m != nil {
		return m.Ports
	}
	return nil
}

type AllocatedTaskResources struct {
	Cpu                  *AllocatedCpuResources    `protobuf:"bytes,1,opt,name=cpu,proto3" json:"cpu,omitempty"`
	Memory               *AllocatedMemoryResources `protobuf:"bytes,2,opt,name=memory,proto3" json:"memory,omitempty"`
	Networks             []*NetworkResource        `protobuf:"bytes,5,rep,name=networks,proto3" json:"networks,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *AllocatedTaskResources) Reset()         { *m = AllocatedTaskResources{} }
func (m *AllocatedTaskResources) String() string { return proto.CompactTextString(m) }
func (*AllocatedTaskResources) ProtoMessage()    {}
func (*AllocatedTaskResources) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{38}
}

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

var xxx_messageInfo_AllocatedTaskResources proto.InternalMessageInfo

func (m *AllocatedTaskResources) GetCpu() *AllocatedCpuResources {
	if m != nil {
		return m.Cpu
	}
	return nil
}

func (m *AllocatedTaskResources) GetMemory() *AllocatedMemoryResources {
	if m != nil {
		return m.Memory
	}
	return nil
}

func (m *AllocatedTaskResources) GetNetworks() []*NetworkResource {
	if m != nil {
		return m.Networks
	}
	return nil
}

type AllocatedCpuResources struct {
	CpuShares            int64    `protobuf:"varint,1,opt,name=cpu_shares,json=cpuShares,proto3" json:"cpu_shares,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AllocatedCpuResources) Reset()         { *m = AllocatedCpuResources{} }
func (m *AllocatedCpuResources) String() string { return proto.CompactTextString(m) }
func (*AllocatedCpuResources) ProtoMessage()    {}
func (*AllocatedCpuResources) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{39}
}

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

var xxx_messageInfo_AllocatedCpuResources proto.InternalMessageInfo

func (m *AllocatedCpuResources) GetCpuShares() int64 {
	if m != nil {
		return m.CpuShares
	}
	return 0
}

type AllocatedMemoryResources struct {
	MemoryMb             int64    `protobuf:"varint,2,opt,name=memory_mb,json=memoryMb,proto3" json:"memory_mb,omitempty"`
	MemoryMaxMb          int64    `protobuf:"varint,3,opt,name=memory_max_mb,json=memoryMaxMb,proto3" json:"memory_max_mb,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AllocatedMemoryResources) Reset()         { *m = AllocatedMemoryResources{} }
func (m *AllocatedMemoryResources) String() string { return proto.CompactTextString(m) }
func (*AllocatedMemoryResources) ProtoMessage()    {}
func (*AllocatedMemoryResources) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{40}
}

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

var xxx_messageInfo_AllocatedMemoryResources proto.InternalMessageInfo

func (m *AllocatedMemoryResources) GetMemoryMb() int64 {
	if m != nil {
		return m.MemoryMb
	}
	return 0
}

func (m *AllocatedMemoryResources) GetMemoryMaxMb() int64 {
	if m != nil {
		return m.MemoryMaxMb
	}
	return 0
}

type NetworkResource struct {
	Device               string         `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	Cidr                 string         `protobuf:"bytes,2,opt,name=cidr,proto3" json:"cidr,omitempty"`
	Ip                   string         `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
	Mbits                int32          `protobuf:"varint,4,opt,name=mbits,proto3" json:"mbits,omitempty"`
	ReservedPorts        []*NetworkPort `protobuf:"bytes,5,rep,name=reserved_ports,json=reservedPorts,proto3" json:"reserved_ports,omitempty"`
	DynamicPorts         []*NetworkPort `protobuf:"bytes,6,rep,name=dynamic_ports,json=dynamicPorts,proto3" json:"dynamic_ports,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *NetworkResource) Reset()         { *m = NetworkResource{} }
func (m *NetworkResource) String() string { return proto.CompactTextString(m) }
func (*NetworkResource) ProtoMessage()    {}
func (*NetworkResource) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{41}
}

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

var xxx_messageInfo_NetworkResource proto.InternalMessageInfo

func (m *NetworkResource) GetDevice() string {
	if m != nil {
		return m.Device
	}
	return ""
}

func (m *NetworkResource) GetCidr() string {
	if m != nil {
		return m.Cidr
	}
	return ""
}

func (m *NetworkResource) GetIp() string {
	if m != nil {
		return m.Ip
	}
	return ""
}

func (m *NetworkResource) GetMbits() int32 {
	if m != nil {
		return m.Mbits
	}
	return 0
}

func (m *NetworkResource) GetReservedPorts() []*NetworkPort {
	if m != nil {
		return m.ReservedPorts
	}
	return nil
}

func (m *NetworkResource) GetDynamicPorts() []*NetworkPort {
	if m != nil {
		return m.DynamicPorts
	}
	return nil
}

type NetworkPort struct {
	Label                string   `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
	Value                int32    `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NetworkPort) Reset()         { *m = NetworkPort{} }
func (m *NetworkPort) String() string { return proto.CompactTextString(m) }
func (*NetworkPort) ProtoMessage()    {}
func (*NetworkPort) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{42}
}

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

var xxx_messageInfo_NetworkPort proto.InternalMessageInfo

func (m *NetworkPort) GetLabel() string {
	if m != nil {
		return m.Label
	}
	return ""
}

func (m *NetworkPort) GetValue() int32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type PortMapping struct {
	Label                string   `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
	Value                int32    `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	To                   int32    `protobuf:"varint,3,opt,name=to,proto3" json:"to,omitempty"`
	HostIp               string   `protobuf:"bytes,4,opt,name=host_ip,json=hostIp,proto3" json:"host_ip,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PortMapping) Reset()         { *m = PortMapping{} }
func (m *PortMapping) String() string { return proto.CompactTextString(m) }
func (*PortMapping) ProtoMessage()    {}
func (*PortMapping) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{43}
}

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

var xxx_messageInfo_PortMapping proto.InternalMessageInfo

func (m *PortMapping) GetLabel() string {
	if m != nil {
		return m.Label
	}
	return ""
}

func (m *PortMapping) GetValue() int32 {
	if m != nil {
		return m.Value
	}
	return 0
}

func (m *PortMapping) GetTo() int32 {
	if m != nil {
		return m.To
	}
	return 0
}

func (m *PortMapping) GetHostIp() string {
	if m != nil {
		return m.HostIp
	}
	return ""
}

type LinuxResources struct {
	// CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified)
	CpuPeriod int64 `protobuf:"varint,1,opt,name=cpu_period,json=cpuPeriod,proto3" json:"cpu_period,omitempty"`
	// CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified)
	CpuQuota int64 `protobuf:"varint,2,opt,name=cpu_quota,json=cpuQuota,proto3" json:"cpu_quota,omitempty"`
	// CPU shares (relative weight vs. other containers). Default: 0 (not specified)
	CpuShares int64 `protobuf:"varint,3,opt,name=cpu_shares,json=cpuShares,proto3" json:"cpu_shares,omitempty"`
	// Memory limit in bytes. Default: 0 (not specified)
	MemoryLimitBytes int64 `protobuf:"varint,4,opt,name=memory_limit_bytes,json=memoryLimitBytes,proto3" json:"memory_limit_bytes,omitempty"`
	// OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified)
	OomScoreAdj int64 `protobuf:"varint,5,opt,name=oom_score_adj,json=oomScoreAdj,proto3" json:"oom_score_adj,omitempty"`
	// CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified)
	// This field exists to support drivers which can't set a cgroup path.
	CpusetCpus string `protobuf:"bytes,6,opt,name=cpuset_cpus,json=cpusetCpus,proto3" json:"cpuset_cpus,omitempty"`
	// CpusetCgroup is the path to the cpuset cgroup managed by the client
	CpusetCgroup string `protobuf:"bytes,9,opt,name=cpuset_cgroup,json=cpusetCgroup,proto3" json:"cpuset_cgroup,omitempty"`
	// PercentTicks is a compatibility option for docker and should not be used
	// buf:lint:ignore FIELD_LOWER_SNAKE_CASE
	PercentTicks         float64  `protobuf:"fixed64,8,opt,name=PercentTicks,proto3" json:"PercentTicks,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LinuxResources) Reset()         { *m = LinuxResources{} }
func (m *LinuxResources) String() string { return proto.CompactTextString(m) }
func (*LinuxResources) ProtoMessage()    {}
func (*LinuxResources) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{44}
}

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

var xxx_messageInfo_LinuxResources proto.InternalMessageInfo

func (m *LinuxResources) GetCpuPeriod() int64 {
	if m != nil {
		return m.CpuPeriod
	}
	return 0
}

func (m *LinuxResources) GetCpuQuota() int64 {
	if m != nil {
		return m.CpuQuota
	}
	return 0
}

func (m *LinuxResources) GetCpuShares() int64 {
	if m != nil {
		return m.CpuShares
	}
	return 0
}

func (m *LinuxResources) GetMemoryLimitBytes() int64 {
	if m != nil {
		return m.MemoryLimitBytes
	}
	return 0
}

func (m *LinuxResources) GetOomScoreAdj() int64 {
	if m != nil {
		return m.OomScoreAdj
	}
	return 0
}

func (m *LinuxResources) GetCpusetCpus() string {
	if m != nil {
		return m.CpusetCpus
	}
	return ""
}

func (m *LinuxResources) GetCpusetCgroup() string {
	if m != nil {
		return m.CpusetCgroup
	}
	return ""
}

func (m *LinuxResources) GetPercentTicks() float64 {
	if m != nil {
		return m.PercentTicks
	}
	return 0
}

type Mount struct {
	// TaskPath is the file path within the task directory to mount to
	TaskPath string `protobuf:"bytes,1,opt,name=task_path,json=taskPath,proto3" json:"task_path,omitempty"`
	// HostPath is the file path on the host to mount from
	HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"`
	// Readonly if set true, mounts the path in readonly mode
	Readonly             bool     `protobuf:"varint,3,opt,name=readonly,proto3" json:"readonly,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Mount) Reset()         { *m = Mount{} }
func (m *Mount) String() string { return proto.CompactTextString(m) }
func (*Mount) ProtoMessage()    {}
func (*Mount) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{45}
}

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

var xxx_messageInfo_Mount proto.InternalMessageInfo

func (m *Mount) GetTaskPath() string {
	if m != nil {
		return m.TaskPath
	}
	return ""
}

func (m *Mount) GetHostPath() string {
	if m != nil {
		return m.HostPath
	}
	return ""
}

func (m *Mount) GetReadonly() bool {
	if m != nil {
		return m.Readonly
	}
	return false
}

type Device struct {
	// TaskPath is the file path within the task to mount the device to
	TaskPath string `protobuf:"bytes,1,opt,name=task_path,json=taskPath,proto3" json:"task_path,omitempty"`
	// HostPath is the path on the host to the source device
	HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"`
	// CgroupPermissions defines the Cgroup permissions of the device.
	// One or more of the following options can be set:
	//  * r - allows the task to read from the specified device.
	//  * w - allows the task to write to the specified device.
	//  * m - allows the task to create device files that do not yet exist.
	//
	// Example: "rw"
	CgroupPermissions    string   `protobuf:"bytes,3,opt,name=cgroup_permissions,json=cgroupPermissions,proto3" json:"cgroup_permissions,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Device) Reset()         { *m = Device{} }
func (m *Device) String() string { return proto.CompactTextString(m) }
func (*Device) ProtoMessage()    {}
func (*Device) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{46}
}

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

var xxx_messageInfo_Device proto.InternalMessageInfo

func (m *Device) GetTaskPath() string {
	if m != nil {
		return m.TaskPath
	}
	return ""
}

func (m *Device) GetHostPath() string {
	if m != nil {
		return m.HostPath
	}
	return ""
}

func (m *Device) GetCgroupPermissions() string {
	if m != nil {
		return m.CgroupPermissions
	}
	return ""
}

// TaskHandle is created when starting a task and is used to recover task
type TaskHandle struct {
	// Version is used by the driver to version the DriverState schema.
	// Version 0 is reserved by Nomad and should not be used.
	Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	// Config is the TaskConfig for the task
	Config *TaskConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
	// State is the state of the task's execution
	State TaskState `protobuf:"varint,3,opt,name=state,proto3,enum=hashicorp.nomad.plugins.drivers.proto.TaskState" json:"state,omitempty"`
	// DriverState is the encoded state for the specific driver
	DriverState          []byte   `protobuf:"bytes,4,opt,name=driver_state,json=driverState,proto3" json:"driver_state,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TaskHandle) Reset()         { *m = TaskHandle{} }
func (m *TaskHandle) String() string { return proto.CompactTextString(m) }
func (*TaskHandle) ProtoMessage()    {}
func (*TaskHandle) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{47}
}

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

var xxx_messageInfo_TaskHandle proto.InternalMessageInfo

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

func (m *TaskHandle) GetConfig() *TaskConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *TaskHandle) GetState() TaskState {
	if m != nil {
		return m.State
	}
	return TaskState_UNKNOWN
}

func (m *TaskHandle) GetDriverState() []byte {
	if m != nil {
		return m.DriverState
	}
	return nil
}

// NetworkOverride contains network settings which the driver may override
// for the task, such as when the driver is setting up the task's network.
type NetworkOverride struct {
	// PortMap can be set to replace ports with driver-specific mappings
	PortMap map[string]int32 `protobuf:"bytes,1,rep,name=port_map,json=portMap,proto3" json:"port_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	// Addr is the IP address for the task created by the driver
	Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
	// AutoAdvertise indicates whether the driver thinks services that choose
	// to auto_advertise_addresses should use this IP instead of the host's.
	AutoAdvertise        bool     `protobuf:"varint,3,opt,name=auto_advertise,json=autoAdvertise,proto3" json:"auto_advertise,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NetworkOverride) Reset()         { *m = NetworkOverride{} }
func (m *NetworkOverride) String() string { return proto.CompactTextString(m) }
func (*NetworkOverride) ProtoMessage()    {}
func (*NetworkOverride) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{48}
}

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

var xxx_messageInfo_NetworkOverride proto.InternalMessageInfo

func (m *NetworkOverride) GetPortMap() map[string]int32 {
	if m != nil {
		return m.PortMap
	}
	return nil
}

func (m *NetworkOverride) GetAddr() string {
	if m != nil {
		return m.Addr
	}
	return ""
}

func (m *NetworkOverride) GetAutoAdvertise() bool {
	if m != nil {
		return m.AutoAdvertise
	}
	return false
}

// ExitResult contains information about the exit status of a task
type ExitResult struct {
	// ExitCode returned from the task on exit
	ExitCode int32 `protobuf:"varint,1,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
	// Signal is set if a signal was sent to the task
	Signal int32 `protobuf:"varint,2,opt,name=signal,proto3" json:"signal,omitempty"`
	// OomKilled is true if the task exited as a result of the OOM Killer
	OomKilled            bool     `protobuf:"varint,3,opt,name=oom_killed,json=oomKilled,proto3" json:"oom_killed,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ExitResult) Reset()         { *m = ExitResult{} }
func (m *ExitResult) String() string { return proto.CompactTextString(m) }
func (*ExitResult) ProtoMessage()    {}
func (*ExitResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{49}
}

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

var xxx_messageInfo_ExitResult proto.InternalMessageInfo

func (m *ExitResult) GetExitCode() int32 {
	if m != nil {
		return m.ExitCode
	}
	return 0
}

func (m *ExitResult) GetSignal() int32 {
	if m != nil {
		return m.Signal
	}
	return 0
}

func (m *ExitResult) GetOomKilled() bool {
	if m != nil {
		return m.OomKilled
	}
	return false
}

// TaskStatus includes information of a specific task
type TaskStatus struct {
	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// State is the state of the task's execution
	State TaskState `protobuf:"varint,3,opt,name=state,proto3,enum=hashicorp.nomad.plugins.drivers.proto.TaskState" json:"state,omitempty"`
	// StartedAt is the timestamp when the task was started
	StartedAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
	// CompletedAt is the timestamp when the task exited.
	// If the task is still running, CompletedAt will not be set
	CompletedAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
	// Result is set when CompletedAt is set.
	Result               *ExitResult `protobuf:"bytes,6,opt,name=result,proto3" json:"result,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *TaskStatus) Reset()         { *m = TaskStatus{} }
func (m *TaskStatus) String() string { return proto.CompactTextString(m) }
func (*TaskStatus) ProtoMessage()    {}
func (*TaskStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{50}
}

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

var xxx_messageInfo_TaskStatus proto.InternalMessageInfo

func (m *TaskStatus) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *TaskStatus) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *TaskStatus) GetState() TaskState {
	if m != nil {
		return m.State
	}
	return TaskState_UNKNOWN
}

func (m *TaskStatus) GetStartedAt() *timestamp.Timestamp {
	if m != nil {
		return m.StartedAt
	}
	return nil
}

func (m *TaskStatus) GetCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.CompletedAt
	}
	return nil
}

func (m *TaskStatus) GetResult() *ExitResult {
	if m != nil {
		return m.Result
	}
	return nil
}

type TaskDriverStatus struct {
	// Attributes is a set of string/string key value pairs specific to the
	// implementing driver
	Attributes           map[string]string `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *TaskDriverStatus) Reset()         { *m = TaskDriverStatus{} }
func (m *TaskDriverStatus) String() string { return proto.CompactTextString(m) }
func (*TaskDriverStatus) ProtoMessage()    {}
func (*TaskDriverStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{51}
}

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

var xxx_messageInfo_TaskDriverStatus proto.InternalMessageInfo

func (m *TaskDriverStatus) GetAttributes() map[string]string {
	if m != nil {
		return m.Attributes
	}
	return nil
}

type TaskStats struct {
	// Id of the task
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Timestamp for which the stats were collected
	Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// AggResourceUsage is the aggreate usage of all processes
	AggResourceUsage *TaskResourceUsage `protobuf:"bytes,3,opt,name=agg_resource_usage,json=aggResourceUsage,proto3" json:"agg_resource_usage,omitempty"`
	// ResourceUsageByPid breaks the usage stats by process
	ResourceUsageByPid   map[string]*TaskResourceUsage `protobuf:"bytes,4,rep,name=resource_usage_by_pid,json=resourceUsageByPid,proto3" json:"resource_usage_by_pid,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *TaskStats) Reset()         { *m = TaskStats{} }
func (m *TaskStats) String() string { return proto.CompactTextString(m) }
func (*TaskStats) ProtoMessage()    {}
func (*TaskStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{52}
}

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

var xxx_messageInfo_TaskStats proto.InternalMessageInfo

func (m *TaskStats) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

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

func (m *TaskStats) GetAggResourceUsage() *TaskResourceUsage {
	if m != nil {
		return m.AggResourceUsage
	}
	return nil
}

func (m *TaskStats) GetResourceUsageByPid() map[string]*TaskResourceUsage {
	if m != nil {
		return m.ResourceUsageByPid
	}
	return nil
}

type TaskResourceUsage struct {
	// CPU usage stats
	Cpu *CPUUsage `protobuf:"bytes,1,opt,name=cpu,proto3" json:"cpu,omitempty"`
	// Memory usage stats
	Memory               *MemoryUsage `protobuf:"bytes,2,opt,name=memory,proto3" json:"memory,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *TaskResourceUsage) Reset()         { *m = TaskResourceUsage{} }
func (m *TaskResourceUsage) String() string { return proto.CompactTextString(m) }
func (*TaskResourceUsage) ProtoMessage()    {}
func (*TaskResourceUsage) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{53}
}

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

var xxx_messageInfo_TaskResourceUsage proto.InternalMessageInfo

func (m *TaskResourceUsage) GetCpu() *CPUUsage {
	if m != nil {
		return m.Cpu
	}
	return nil
}

func (m *TaskResourceUsage) GetMemory() *MemoryUsage {
	if m != nil {
		return m.Memory
	}
	return nil
}

type CPUUsage struct {
	SystemMode       float64 `protobuf:"fixed64,1,opt,name=system_mode,json=systemMode,proto3" json:"system_mode,omitempty"`
	UserMode         float64 `protobuf:"fixed64,2,opt,name=user_mode,json=userMode,proto3" json:"user_mode,omitempty"`
	TotalTicks       float64 `protobuf:"fixed64,3,opt,name=total_ticks,json=totalTicks,proto3" json:"total_ticks,omitempty"`
	ThrottledPeriods uint64  `protobuf:"varint,4,opt,name=throttled_periods,json=throttledPeriods,proto3" json:"throttled_periods,omitempty"`
	ThrottledTime    uint64  `protobuf:"varint,5,opt,name=throttled_time,json=throttledTime,proto3" json:"throttled_time,omitempty"`
	Percent          float64 `protobuf:"fixed64,6,opt,name=percent,proto3" json:"percent,omitempty"`
	// MeasuredFields indicates which fields were actually sampled
	MeasuredFields       []CPUUsage_Fields `protobuf:"varint,7,rep,packed,name=measured_fields,json=measuredFields,proto3,enum=hashicorp.nomad.plugins.drivers.proto.CPUUsage_Fields" json:"measured_fields,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *CPUUsage) Reset()         { *m = CPUUsage{} }
func (m *CPUUsage) String() string { return proto.CompactTextString(m) }
func (*CPUUsage) ProtoMessage()    {}
func (*CPUUsage) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{54}
}

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

var xxx_messageInfo_CPUUsage proto.InternalMessageInfo

func (m *CPUUsage) GetSystemMode() float64 {
	if m != nil {
		return m.SystemMode
	}
	return 0
}

func (m *CPUUsage) GetUserMode() float64 {
	if m != nil {
		return m.UserMode
	}
	return 0
}

func (m *CPUUsage) GetTotalTicks() float64 {
	if m != nil {
		return m.TotalTicks
	}
	return 0
}

func (m *CPUUsage) GetThrottledPeriods() uint64 {
	if m != nil {
		return m.ThrottledPeriods
	}
	return 0
}

func (m *CPUUsage) GetThrottledTime() uint64 {
	if m != nil {
		return m.ThrottledTime
	}
	return 0
}

func (m *CPUUsage) GetPercent() float64 {
	if m != nil {
		return m.Percent
	}
	return 0
}

func (m *CPUUsage) GetMeasuredFields() []CPUUsage_Fields {
	if m != nil {
		return m.MeasuredFields
	}
	return nil
}

type MemoryUsage struct {
	Rss            uint64 `protobuf:"varint,1,opt,name=rss,proto3" json:"rss,omitempty"`
	Cache          uint64 `protobuf:"varint,2,opt,name=cache,proto3" json:"cache,omitempty"`
	MaxUsage       uint64 `protobuf:"varint,3,opt,name=max_usage,json=maxUsage,proto3" json:"max_usage,omitempty"`
	KernelUsage    uint64 `protobuf:"varint,4,opt,name=kernel_usage,json=kernelUsage,proto3" json:"kernel_usage,omitempty"`
	KernelMaxUsage uint64 `protobuf:"varint,5,opt,name=kernel_max_usage,json=kernelMaxUsage,proto3" json:"kernel_max_usage,omitempty"`
	Usage          uint64 `protobuf:"varint,7,opt,name=usage,proto3" json:"usage,omitempty"`
	Swap           uint64 `protobuf:"varint,8,opt,name=swap,proto3" json:"swap,omitempty"`
	// MeasuredFields indicates which fields were actually sampled
	MeasuredFields       []MemoryUsage_Fields `protobuf:"varint,6,rep,packed,name=measured_fields,json=measuredFields,proto3,enum=hashicorp.nomad.plugins.drivers.proto.MemoryUsage_Fields" json:"measured_fields,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *MemoryUsage) Reset()         { *m = MemoryUsage{} }
func (m *MemoryUsage) String() string { return proto.CompactTextString(m) }
func (*MemoryUsage) ProtoMessage()    {}
func (*MemoryUsage) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{55}
}

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

var xxx_messageInfo_MemoryUsage proto.InternalMessageInfo

func (m *MemoryUsage) GetRss() uint64 {
	if m != nil {
		return m.Rss
	}
	return 0
}

func (m *MemoryUsage) GetCache() uint64 {
	if m != nil {
		return m.Cache
	}
	return 0
}

func (m *MemoryUsage) GetMaxUsage() uint64 {
	if m != nil {
		return m.MaxUsage
	}
	return 0
}

func (m *MemoryUsage) GetKernelUsage() uint64 {
	if m != nil {
		return m.KernelUsage
	}
	return 0
}

func (m *MemoryUsage) GetKernelMaxUsage() uint64 {
	if m != nil {
		return m.KernelMaxUsage
	}
	return 0
}

func (m *MemoryUsage) GetUsage() uint64 {
	if m != nil {
		return m.Usage
	}
	return 0
}

func (m *MemoryUsage) GetSwap() uint64 {
	if m != nil {
		return m.Swap
	}
	return 0
}

func (m *MemoryUsage) GetMeasuredFields() []MemoryUsage_Fields {
	if m != nil {
		return m.MeasuredFields
	}
	return nil
}

type DriverTaskEvent struct {
	// TaskId is the id of the task for the event
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// AllocId of the task for the event
	AllocId string `protobuf:"bytes,2,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
	// TaskName is the name of the task for the event
	TaskName string `protobuf:"bytes,3,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`
	// Timestamp when the event occurred
	Timestamp *timestamp.Timestamp `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// Message is the body of the event
	Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
	// Annotations allows for additional key/value data to be sent along with the event
	Annotations          map[string]string `protobuf:"bytes,6,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *DriverTaskEvent) Reset()         { *m = DriverTaskEvent{} }
func (m *DriverTaskEvent) String() string { return proto.CompactTextString(m) }
func (*DriverTaskEvent) ProtoMessage()    {}
func (*DriverTaskEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_4a8f45747846a74d, []int{56}
}

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

var xxx_messageInfo_DriverTaskEvent proto.InternalMessageInfo

func (m *DriverTaskEvent) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

func (m *DriverTaskEvent) GetAllocId() string {
	if m != nil {
		return m.AllocId
	}
	return ""
}

func (m *DriverTaskEvent) GetTaskName() string {
	if m != nil {
		return m.TaskName
	}
	return ""
}

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

func (m *DriverTaskEvent) GetMessage() string {
	if m != nil {
		return m.Message
	}
	return ""
}

func (m *DriverTaskEvent) GetAnnotations() map[string]string {
	if m != nil {
		return m.Annotations
	}
	return nil
}

func init() {
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.TaskState", TaskState_name, TaskState_value)
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.FingerprintResponse_HealthState", FingerprintResponse_HealthState_name, FingerprintResponse_HealthState_value)
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.StartTaskResponse_Result", StartTaskResponse_Result_name, StartTaskResponse_Result_value)
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.DriverCapabilities_FSIsolation", DriverCapabilities_FSIsolation_name, DriverCapabilities_FSIsolation_value)
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.DriverCapabilities_MountConfigs", DriverCapabilities_MountConfigs_name, DriverCapabilities_MountConfigs_value)
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.NetworkIsolationSpec_NetworkIsolationMode", NetworkIsolationSpec_NetworkIsolationMode_name, NetworkIsolationSpec_NetworkIsolationMode_value)
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.CPUUsage_Fields", CPUUsage_Fields_name, CPUUsage_Fields_value)
	proto.RegisterEnum("hashicorp.nomad.plugins.drivers.proto.MemoryUsage_Fields", MemoryUsage_Fields_name, MemoryUsage_Fields_value)
	proto.RegisterType((*TaskConfigSchemaRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskConfigSchemaRequest")
	proto.RegisterType((*TaskConfigSchemaResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskConfigSchemaResponse")
	proto.RegisterType((*CapabilitiesRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.CapabilitiesRequest")
	proto.RegisterType((*CapabilitiesResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.CapabilitiesResponse")
	proto.RegisterType((*FingerprintRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.FingerprintRequest")
	proto.RegisterType((*FingerprintResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.FingerprintResponse")
	proto.RegisterMapType((map[string]*proto1.Attribute)(nil), "hashicorp.nomad.plugins.drivers.proto.FingerprintResponse.AttributesEntry")
	proto.RegisterType((*RecoverTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.RecoverTaskRequest")
	proto.RegisterType((*RecoverTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.RecoverTaskResponse")
	proto.RegisterType((*StartTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.StartTaskRequest")
	proto.RegisterType((*StartTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.StartTaskResponse")
	proto.RegisterType((*WaitTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.WaitTaskRequest")
	proto.RegisterType((*WaitTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.WaitTaskResponse")
	proto.RegisterType((*StopTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.StopTaskRequest")
	proto.RegisterType((*StopTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.StopTaskResponse")
	proto.RegisterType((*DestroyTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.DestroyTaskRequest")
	proto.RegisterType((*DestroyTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.DestroyTaskResponse")
	proto.RegisterType((*InspectTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.InspectTaskRequest")
	proto.RegisterType((*InspectTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.InspectTaskResponse")
	proto.RegisterType((*TaskStatsRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskStatsRequest")
	proto.RegisterType((*TaskStatsResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskStatsResponse")
	proto.RegisterType((*TaskEventsRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskEventsRequest")
	proto.RegisterType((*SignalTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.SignalTaskRequest")
	proto.RegisterType((*SignalTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.SignalTaskResponse")
	proto.RegisterType((*ExecTaskRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.ExecTaskRequest")
	proto.RegisterType((*ExecTaskResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.ExecTaskResponse")
	proto.RegisterType((*ExecTaskStreamingIOOperation)(nil), "hashicorp.nomad.plugins.drivers.proto.ExecTaskStreamingIOOperation")
	proto.RegisterType((*ExecTaskStreamingRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.ExecTaskStreamingRequest")
	proto.RegisterType((*ExecTaskStreamingRequest_Setup)(nil), "hashicorp.nomad.plugins.drivers.proto.ExecTaskStreamingRequest.Setup")
	proto.RegisterType((*ExecTaskStreamingRequest_TerminalSize)(nil), "hashicorp.nomad.plugins.drivers.proto.ExecTaskStreamingRequest.TerminalSize")
	proto.RegisterType((*ExecTaskStreamingResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.ExecTaskStreamingResponse")
	proto.RegisterType((*CreateNetworkRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.CreateNetworkRequest")
	proto.RegisterType((*CreateNetworkResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.CreateNetworkResponse")
	proto.RegisterType((*DestroyNetworkRequest)(nil), "hashicorp.nomad.plugins.drivers.proto.DestroyNetworkRequest")
	proto.RegisterType((*DestroyNetworkResponse)(nil), "hashicorp.nomad.plugins.drivers.proto.DestroyNetworkResponse")
	proto.RegisterType((*DriverCapabilities)(nil), "hashicorp.nomad.plugins.drivers.proto.DriverCapabilities")
	proto.RegisterType((*NetworkIsolationSpec)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkIsolationSpec")
	proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkIsolationSpec.LabelsEntry")
	proto.RegisterType((*HostsConfig)(nil), "hashicorp.nomad.plugins.drivers.proto.HostsConfig")
	proto.RegisterType((*DNSConfig)(nil), "hashicorp.nomad.plugins.drivers.proto.DNSConfig")
	proto.RegisterType((*TaskConfig)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskConfig")
	proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskConfig.DeviceEnvEntry")
	proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskConfig.EnvEntry")
	proto.RegisterType((*Resources)(nil), "hashicorp.nomad.plugins.drivers.proto.Resources")
	proto.RegisterType((*AllocatedTaskResources)(nil), "hashicorp.nomad.plugins.drivers.proto.AllocatedTaskResources")
	proto.RegisterType((*AllocatedCpuResources)(nil), "hashicorp.nomad.plugins.drivers.proto.AllocatedCpuResources")
	proto.RegisterType((*AllocatedMemoryResources)(nil), "hashicorp.nomad.plugins.drivers.proto.AllocatedMemoryResources")
	proto.RegisterType((*NetworkResource)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkResource")
	proto.RegisterType((*NetworkPort)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkPort")
	proto.RegisterType((*PortMapping)(nil), "hashicorp.nomad.plugins.drivers.proto.PortMapping")
	proto.RegisterType((*LinuxResources)(nil), "hashicorp.nomad.plugins.drivers.proto.LinuxResources")
	proto.RegisterType((*Mount)(nil), "hashicorp.nomad.plugins.drivers.proto.Mount")
	proto.RegisterType((*Device)(nil), "hashicorp.nomad.plugins.drivers.proto.Device")
	proto.RegisterType((*TaskHandle)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskHandle")
	proto.RegisterType((*NetworkOverride)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkOverride")
	proto.RegisterMapType((map[string]int32)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkOverride.PortMapEntry")
	proto.RegisterType((*ExitResult)(nil), "hashicorp.nomad.plugins.drivers.proto.ExitResult")
	proto.RegisterType((*TaskStatus)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskStatus")
	proto.RegisterType((*TaskDriverStatus)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskDriverStatus")
	proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskDriverStatus.AttributesEntry")
	proto.RegisterType((*TaskStats)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskStats")
	proto.RegisterMapType((map[string]*TaskResourceUsage)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskStats.ResourceUsageByPidEntry")
	proto.RegisterType((*TaskResourceUsage)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskResourceUsage")
	proto.RegisterType((*CPUUsage)(nil), "hashicorp.nomad.plugins.drivers.proto.CPUUsage")
	proto.RegisterType((*MemoryUsage)(nil), "hashicorp.nomad.plugins.drivers.proto.MemoryUsage")
	proto.RegisterType((*DriverTaskEvent)(nil), "hashicorp.nomad.plugins.drivers.proto.DriverTaskEvent")
	proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.drivers.proto.DriverTaskEvent.AnnotationsEntry")
}

func init() {
	proto.RegisterFile("plugins/drivers/proto/driver.proto", fileDescriptor_4a8f45747846a74d)
}

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

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// DriverClient is the client API for Driver service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type DriverClient interface {
	// TaskConfigSchema returns the schema for parsing the driver
	// configuration of a task.
	TaskConfigSchema(ctx context.Context, in *TaskConfigSchemaRequest, opts ...grpc.CallOption) (*TaskConfigSchemaResponse, error)
	// Capabilities returns a set of features which the driver implements. Some
	// RPCs are not possible to implement on some runtimes, this allows the
	// driver to indicate if it doesn't support these RPCs and features.
	Capabilities(ctx context.Context, in *CapabilitiesRequest, opts ...grpc.CallOption) (*CapabilitiesResponse, error)
	// Fingerprint starts a stream which emits information about the driver
	// including whether the driver healthy and able to function in the
	// existing environment.
	//
	// The driver should immediately stream a FingerprintResponse when the RPC
	// is initially called, then send any additional responses if there is a
	// change in the driver's state.
	Fingerprint(ctx context.Context, in *FingerprintRequest, opts ...grpc.CallOption) (Driver_FingerprintClient, error)
	// RecoverTask is used when a task has been started but the driver may not
	// know about it. Such is the case if the driver restarts or is upgraded.
	RecoverTask(ctx context.Context, in *RecoverTaskRequest, opts ...grpc.CallOption) (*RecoverTaskResponse, error)
	// StartTask starts and tracks the task on the implemented runtime
	StartTask(ctx context.Context, in *StartTaskRequest, opts ...grpc.CallOption) (*StartTaskResponse, error)
	// WaitTask blocks until the given task exits, returning the result of the
	// task. It may be called after the task has exited, but before the task is
	// destroyed.
	WaitTask(ctx context.Context, in *WaitTaskRequest, opts ...grpc.CallOption) (*WaitTaskResponse, error)
	// StopTask stops a given task by sending the desired signal to the process.
	// If the task does not exit on its own within the given timeout, it will be
	// forcefully killed.
	StopTask(ctx context.Context, in *StopTaskRequest, opts ...grpc.CallOption) (*StopTaskResponse, error)
	// DestroyTask removes the task from the driver's internal state and cleans
	// up any additional resources created by the driver. It cannot be called
	// on a running task, unless force is set to true.
	DestroyTask(ctx context.Context, in *DestroyTaskRequest, opts ...grpc.CallOption) (*DestroyTaskResponse, error)
	// InspectTask returns detailed information for the given task
	InspectTask(ctx context.Context, in *InspectTaskRequest, opts ...grpc.CallOption) (*InspectTaskResponse, error)
	// TaskStats collects and returns runtime metrics for the given task
	TaskStats(ctx context.Context, in *TaskStatsRequest, opts ...grpc.CallOption) (Driver_TaskStatsClient, error)
	// TaskEvents starts a streaming RPC where all task events emitted by the
	// driver are streamed to the caller.
	TaskEvents(ctx context.Context, in *TaskEventsRequest, opts ...grpc.CallOption) (Driver_TaskEventsClient, error)
	// SignalTask sends a signal to the task
	SignalTask(ctx context.Context, in *SignalTaskRequest, opts ...grpc.CallOption) (*SignalTaskResponse, error)
	// ExecTask executes a command inside the tasks execution context
	ExecTask(ctx context.Context, in *ExecTaskRequest, opts ...grpc.CallOption) (*ExecTaskResponse, error)
	// ExecTaskStreaming executes a command inside the tasks execution context
	// and streams back results
	// buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
	ExecTaskStreaming(ctx context.Context, opts ...grpc.CallOption) (Driver_ExecTaskStreamingClient, error)
	// CreateNetwork is implemented when the driver needs to create the network
	// namespace instead of allowing the Nomad client to do.
	CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*CreateNetworkResponse, error)
	// DestroyNetwork destroys a previously created network. This rpc is only
	// implemented if the driver needs to manage network namespace creation.
	DestroyNetwork(ctx context.Context, in *DestroyNetworkRequest, opts ...grpc.CallOption) (*DestroyNetworkResponse, error)
}

type driverClient struct {
	cc grpc.ClientConnInterface
}

func NewDriverClient(cc grpc.ClientConnInterface) DriverClient {
	return &driverClient{cc}
}

func (c *driverClient) TaskConfigSchema(ctx context.Context, in *TaskConfigSchemaRequest, opts ...grpc.CallOption) (*TaskConfigSchemaResponse, error) {
	out := new(TaskConfigSchemaResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/TaskConfigSchema", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) Capabilities(ctx context.Context, in *CapabilitiesRequest, opts ...grpc.CallOption) (*CapabilitiesResponse, error) {
	out := new(CapabilitiesResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/Capabilities", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) Fingerprint(ctx context.Context, in *FingerprintRequest, opts ...grpc.CallOption) (Driver_FingerprintClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Driver_serviceDesc.Streams[0], "/hashicorp.nomad.plugins.drivers.proto.Driver/Fingerprint", opts...)
	if err != nil {
		return nil, err
	}
	x := &driverFingerprintClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Driver_FingerprintClient interface {
	Recv() (*FingerprintResponse, error)
	grpc.ClientStream
}

type driverFingerprintClient struct {
	grpc.ClientStream
}

func (x *driverFingerprintClient) Recv() (*FingerprintResponse, error) {
	m := new(FingerprintResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *driverClient) RecoverTask(ctx context.Context, in *RecoverTaskRequest, opts ...grpc.CallOption) (*RecoverTaskResponse, error) {
	out := new(RecoverTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/RecoverTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) StartTask(ctx context.Context, in *StartTaskRequest, opts ...grpc.CallOption) (*StartTaskResponse, error) {
	out := new(StartTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/StartTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) WaitTask(ctx context.Context, in *WaitTaskRequest, opts ...grpc.CallOption) (*WaitTaskResponse, error) {
	out := new(WaitTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/WaitTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) StopTask(ctx context.Context, in *StopTaskRequest, opts ...grpc.CallOption) (*StopTaskResponse, error) {
	out := new(StopTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/StopTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) DestroyTask(ctx context.Context, in *DestroyTaskRequest, opts ...grpc.CallOption) (*DestroyTaskResponse, error) {
	out := new(DestroyTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/DestroyTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) InspectTask(ctx context.Context, in *InspectTaskRequest, opts ...grpc.CallOption) (*InspectTaskResponse, error) {
	out := new(InspectTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/InspectTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) TaskStats(ctx context.Context, in *TaskStatsRequest, opts ...grpc.CallOption) (Driver_TaskStatsClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Driver_serviceDesc.Streams[1], "/hashicorp.nomad.plugins.drivers.proto.Driver/TaskStats", opts...)
	if err != nil {
		return nil, err
	}
	x := &driverTaskStatsClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Driver_TaskStatsClient interface {
	Recv() (*TaskStatsResponse, error)
	grpc.ClientStream
}

type driverTaskStatsClient struct {
	grpc.ClientStream
}

func (x *driverTaskStatsClient) Recv() (*TaskStatsResponse, error) {
	m := new(TaskStatsResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *driverClient) TaskEvents(ctx context.Context, in *TaskEventsRequest, opts ...grpc.CallOption) (Driver_TaskEventsClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Driver_serviceDesc.Streams[2], "/hashicorp.nomad.plugins.drivers.proto.Driver/TaskEvents", opts...)
	if err != nil {
		return nil, err
	}
	x := &driverTaskEventsClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Driver_TaskEventsClient interface {
	Recv() (*DriverTaskEvent, error)
	grpc.ClientStream
}

type driverTaskEventsClient struct {
	grpc.ClientStream
}

func (x *driverTaskEventsClient) Recv() (*DriverTaskEvent, error) {
	m := new(DriverTaskEvent)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *driverClient) SignalTask(ctx context.Context, in *SignalTaskRequest, opts ...grpc.CallOption) (*SignalTaskResponse, error) {
	out := new(SignalTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/SignalTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) ExecTask(ctx context.Context, in *ExecTaskRequest, opts ...grpc.CallOption) (*ExecTaskResponse, error) {
	out := new(ExecTaskResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/ExecTask", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) ExecTaskStreaming(ctx context.Context, opts ...grpc.CallOption) (Driver_ExecTaskStreamingClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Driver_serviceDesc.Streams[3], "/hashicorp.nomad.plugins.drivers.proto.Driver/ExecTaskStreaming", opts...)
	if err != nil {
		return nil, err
	}
	x := &driverExecTaskStreamingClient{stream}
	return x, nil
}

type Driver_ExecTaskStreamingClient interface {
	Send(*ExecTaskStreamingRequest) error
	Recv() (*ExecTaskStreamingResponse, error)
	grpc.ClientStream
}

type driverExecTaskStreamingClient struct {
	grpc.ClientStream
}

func (x *driverExecTaskStreamingClient) Send(m *ExecTaskStreamingRequest) error {
	return x.ClientStream.SendMsg(m)
}

func (x *driverExecTaskStreamingClient) Recv() (*ExecTaskStreamingResponse, error) {
	m := new(ExecTaskStreamingResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *driverClient) CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*CreateNetworkResponse, error) {
	out := new(CreateNetworkResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/CreateNetwork", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *driverClient) DestroyNetwork(ctx context.Context, in *DestroyNetworkRequest, opts ...grpc.CallOption) (*DestroyNetworkResponse, error) {
	out := new(DestroyNetworkResponse)
	err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.drivers.proto.Driver/DestroyNetwork", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// DriverServer is the server API for Driver service.
type DriverServer interface {
	// TaskConfigSchema returns the schema for parsing the driver
	// configuration of a task.
	TaskConfigSchema(context.Context, *TaskConfigSchemaRequest) (*TaskConfigSchemaResponse, error)
	// Capabilities returns a set of features which the driver implements. Some
	// RPCs are not possible to implement on some runtimes, this allows the
	// driver to indicate if it doesn't support these RPCs and features.
	Capabilities(context.Context, *CapabilitiesRequest) (*CapabilitiesResponse, error)
	// Fingerprint starts a stream which emits information about the driver
	// including whether the driver healthy and able to function in the
	// existing environment.
	//
	// The driver should immediately stream a FingerprintResponse when the RPC
	// is initially called, then send any additional responses if there is a
	// change in the driver's state.
	Fingerprint(*FingerprintRequest, Driver_FingerprintServer) error
	// RecoverTask is used when a task has been started but the driver may not
	// know about it. Such is the case if the driver restarts or is upgraded.
	RecoverTask(context.Context, *RecoverTaskRequest) (*RecoverTaskResponse, error)
	// StartTask starts and tracks the task on the implemented runtime
	StartTask(context.Context, *StartTaskRequest) (*StartTaskResponse, error)
	// WaitTask blocks until the given task exits, returning the result of the
	// task. It may be called after the task has exited, but before the task is
	// destroyed.
	WaitTask(context.Context, *WaitTaskRequest) (*WaitTaskResponse, error)
	// StopTask stops a given task by sending the desired signal to the process.
	// If the task does not exit on its own within the given timeout, it will be
	// forcefully killed.
	StopTask(context.Context, *StopTaskRequest) (*StopTaskResponse, error)
	// DestroyTask removes the task from the driver's internal state and cleans
	// up any additional resources created by the driver. It cannot be called
	// on a running task, unless force is set to true.
	DestroyTask(context.Context, *DestroyTaskRequest) (*DestroyTaskResponse, error)
	// InspectTask returns detailed information for the given task
	InspectTask(context.Context, *InspectTaskRequest) (*InspectTaskResponse, error)
	// TaskStats collects and returns runtime metrics for the given task
	TaskStats(*TaskStatsRequest, Driver_TaskStatsServer) error
	// TaskEvents starts a streaming RPC where all task events emitted by the
	// driver are streamed to the caller.
	TaskEvents(*TaskEventsRequest, Driver_TaskEventsServer) error
	// SignalTask sends a signal to the task
	SignalTask(context.Context, *SignalTaskRequest) (*SignalTaskResponse, error)
	// ExecTask executes a command inside the tasks execution context
	ExecTask(context.Context, *ExecTaskRequest) (*ExecTaskResponse, error)
	// ExecTaskStreaming executes a command inside the tasks execution context
	// and streams back results
	// buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
	ExecTaskStreaming(Driver_ExecTaskStreamingServer) error
	// CreateNetwork is implemented when the driver needs to create the network
	// namespace instead of allowing the Nomad client to do.
	CreateNetwork(context.Context, *CreateNetworkRequest) (*CreateNetworkResponse, error)
	// DestroyNetwork destroys a previously created network. This rpc is only
	// implemented if the driver needs to manage network namespace creation.
	DestroyNetwork(context.Context, *DestroyNetworkRequest) (*DestroyNetworkResponse, error)
}

// UnimplementedDriverServer can be embedded to have forward compatible implementations.
type UnimplementedDriverServer struct {
}

func (*UnimplementedDriverServer) TaskConfigSchema(ctx context.Context, req *TaskConfigSchemaRequest) (*TaskConfigSchemaResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method TaskConfigSchema not implemented")
}
func (*UnimplementedDriverServer) Capabilities(ctx context.Context, req *CapabilitiesRequest) (*CapabilitiesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Capabilities not implemented")
}
func (*UnimplementedDriverServer) Fingerprint(req *FingerprintRequest, srv Driver_FingerprintServer) error {
	return status.Errorf(codes.Unimplemented, "method Fingerprint not implemented")
}
func (*UnimplementedDriverServer) RecoverTask(ctx context.Context, req *RecoverTaskRequest) (*RecoverTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RecoverTask not implemented")
}
func (*UnimplementedDriverServer) StartTask(ctx context.Context, req *StartTaskRequest) (*StartTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StartTask not implemented")
}
func (*UnimplementedDriverServer) WaitTask(ctx context.Context, req *WaitTaskRequest) (*WaitTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WaitTask not implemented")
}
func (*UnimplementedDriverServer) StopTask(ctx context.Context, req *StopTaskRequest) (*StopTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StopTask not implemented")
}
func (*UnimplementedDriverServer) DestroyTask(ctx context.Context, req *DestroyTaskRequest) (*DestroyTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DestroyTask not implemented")
}
func (*UnimplementedDriverServer) InspectTask(ctx context.Context, req *InspectTaskRequest) (*InspectTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method InspectTask not implemented")
}
func (*UnimplementedDriverServer) TaskStats(req *TaskStatsRequest, srv Driver_TaskStatsServer) error {
	return status.Errorf(codes.Unimplemented, "method TaskStats not implemented")
}
func (*UnimplementedDriverServer) TaskEvents(req *TaskEventsRequest, srv Driver_TaskEventsServer) error {
	return status.Errorf(codes.Unimplemented, "method TaskEvents not implemented")
}
func (*UnimplementedDriverServer) SignalTask(ctx context.Context, req *SignalTaskRequest) (*SignalTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignalTask not implemented")
}
func (*UnimplementedDriverServer) ExecTask(ctx context.Context, req *ExecTaskRequest) (*ExecTaskResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ExecTask not implemented")
}
func (*UnimplementedDriverServer) ExecTaskStreaming(srv Driver_ExecTaskStreamingServer) error {
	return status.Errorf(codes.Unimplemented, "method ExecTaskStreaming not implemented")
}
func (*UnimplementedDriverServer) CreateNetwork(ctx context.Context, req *CreateNetworkRequest) (*CreateNetworkResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateNetwork not implemented")
}
func (*UnimplementedDriverServer) DestroyNetwork(ctx context.Context, req *DestroyNetworkRequest) (*DestroyNetworkResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DestroyNetwork not implemented")
}

func RegisterDriverServer(s *grpc.Server, srv DriverServer) {
	s.RegisterService(&_Driver_serviceDesc, srv)
}

func _Driver_TaskConfigSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TaskConfigSchemaRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).TaskConfigSchema(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/TaskConfigSchema",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).TaskConfigSchema(ctx, req.(*TaskConfigSchemaRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_Capabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CapabilitiesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).Capabilities(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/Capabilities",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).Capabilities(ctx, req.(*CapabilitiesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_Fingerprint_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(FingerprintRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(DriverServer).Fingerprint(m, &driverFingerprintServer{stream})
}

type Driver_FingerprintServer interface {
	Send(*FingerprintResponse) error
	grpc.ServerStream
}

type driverFingerprintServer struct {
	grpc.ServerStream
}

func (x *driverFingerprintServer) Send(m *FingerprintResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Driver_RecoverTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RecoverTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).RecoverTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/RecoverTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).RecoverTask(ctx, req.(*RecoverTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_StartTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StartTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).StartTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/StartTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).StartTask(ctx, req.(*StartTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_WaitTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WaitTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).WaitTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/WaitTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).WaitTask(ctx, req.(*WaitTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_StopTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StopTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).StopTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/StopTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).StopTask(ctx, req.(*StopTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_DestroyTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DestroyTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).DestroyTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/DestroyTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).DestroyTask(ctx, req.(*DestroyTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_InspectTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(InspectTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).InspectTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/InspectTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).InspectTask(ctx, req.(*InspectTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_TaskStats_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(TaskStatsRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(DriverServer).TaskStats(m, &driverTaskStatsServer{stream})
}

type Driver_TaskStatsServer interface {
	Send(*TaskStatsResponse) error
	grpc.ServerStream
}

type driverTaskStatsServer struct {
	grpc.ServerStream
}

func (x *driverTaskStatsServer) Send(m *TaskStatsResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Driver_TaskEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(TaskEventsRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(DriverServer).TaskEvents(m, &driverTaskEventsServer{stream})
}

type Driver_TaskEventsServer interface {
	Send(*DriverTaskEvent) error
	grpc.ServerStream
}

type driverTaskEventsServer struct {
	grpc.ServerStream
}

func (x *driverTaskEventsServer) Send(m *DriverTaskEvent) error {
	return x.ServerStream.SendMsg(m)
}

func _Driver_SignalTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SignalTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).SignalTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/SignalTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).SignalTask(ctx, req.(*SignalTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_ExecTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ExecTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).ExecTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/ExecTask",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).ExecTask(ctx, req.(*ExecTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_ExecTaskStreaming_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(DriverServer).ExecTaskStreaming(&driverExecTaskStreamingServer{stream})
}

type Driver_ExecTaskStreamingServer interface {
	Send(*ExecTaskStreamingResponse) error
	Recv() (*ExecTaskStreamingRequest, error)
	grpc.ServerStream
}

type driverExecTaskStreamingServer struct {
	grpc.ServerStream
}

func (x *driverExecTaskStreamingServer) Send(m *ExecTaskStreamingResponse) error {
	return x.ServerStream.SendMsg(m)
}

func (x *driverExecTaskStreamingServer) Recv() (*ExecTaskStreamingRequest, error) {
	m := new(ExecTaskStreamingRequest)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func _Driver_CreateNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateNetworkRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).CreateNetwork(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/CreateNetwork",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).CreateNetwork(ctx, req.(*CreateNetworkRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Driver_DestroyNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DestroyNetworkRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DriverServer).DestroyNetwork(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/hashicorp.nomad.plugins.drivers.proto.Driver/DestroyNetwork",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DriverServer).DestroyNetwork(ctx, req.(*DestroyNetworkRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _Driver_serviceDesc = grpc.ServiceDesc{
	ServiceName: "hashicorp.nomad.plugins.drivers.proto.Driver",
	HandlerType: (*DriverServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "TaskConfigSchema",
			Handler:    _Driver_TaskConfigSchema_Handler,
		},
		{
			MethodName: "Capabilities",
			Handler:    _Driver_Capabilities_Handler,
		},
		{
			MethodName: "RecoverTask",
			Handler:    _Driver_RecoverTask_Handler,
		},
		{
			MethodName: "StartTask",
			Handler:    _Driver_StartTask_Handler,
		},
		{
			MethodName: "WaitTask",
			Handler:    _Driver_WaitTask_Handler,
		},
		{
			MethodName: "StopTask",
			Handler:    _Driver_StopTask_Handler,
		},
		{
			MethodName: "DestroyTask",
			Handler:    _Driver_DestroyTask_Handler,
		},
		{
			MethodName: "InspectTask",
			Handler:    _Driver_InspectTask_Handler,
		},
		{
			MethodName: "SignalTask",
			Handler:    _Driver_SignalTask_Handler,
		},
		{
			MethodName: "ExecTask",
			Handler:    _Driver_ExecTask_Handler,
		},
		{
			MethodName: "CreateNetwork",
			Handler:    _Driver_CreateNetwork_Handler,
		},
		{
			MethodName: "DestroyNetwork",
			Handler:    _Driver_DestroyNetwork_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Fingerprint",
			Handler:       _Driver_Fingerprint_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "TaskStats",
			Handler:       _Driver_TaskStats_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "TaskEvents",
			Handler:       _Driver_TaskEvents_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ExecTaskStreaming",
			Handler:       _Driver_ExecTaskStreaming_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "plugins/drivers/proto/driver.proto",
}
