diff --git a/api/gen/proto/go/teleport/devicetrust/v1/device_profile.pb.go b/api/gen/proto/go/teleport/devicetrust/v1/device_profile.pb.go index 36a2553e4a583..9f19843c48127 100644 --- a/api/gen/proto/go/teleport/devicetrust/v1/device_profile.pb.go +++ b/api/gen/proto/go/teleport/devicetrust/v1/device_profile.pb.go @@ -60,6 +60,8 @@ type DeviceProfile struct { // Jamf binary version, without the leading 'v'. // Example: "9.27" or "10.44.1-t1677509507". JamfBinaryVersion string `protobuf:"bytes,6,opt,name=jamf_binary_version,json=jamfBinaryVersion,proto3" json:"jamf_binary_version,omitempty"` + // External device identifier, for example the Jamf or Intune ID. + ExternalId string `protobuf:"bytes,7,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` } func (x *DeviceProfile) Reset() { @@ -136,6 +138,13 @@ func (x *DeviceProfile) GetJamfBinaryVersion() string { return "" } +func (x *DeviceProfile) GetExternalId() string { + if x != nil { + return x.ExternalId + } + return "" +} + var File_teleport_devicetrust_v1_device_profile_proto protoreflect.FileDescriptor var file_teleport_devicetrust_v1_device_profile_proto_rawDesc = []byte{ @@ -145,7 +154,7 @@ var file_teleport_devicetrust_v1_device_profile_proto_rawDesc = []byte{ 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x76, + 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa5, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, @@ -161,14 +170,16 @@ var file_teleport_devicetrust_v1_device_profile_proto_rawDesc = []byte{ 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x73, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x61, 0x6d, 0x66, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6a, 0x61, - 0x6d, 0x66, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x5a, 0x5a, 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, - 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6d, 0x66, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, + 0x42, 0x5a, 0x5a, 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/gen/proto/go/teleport/devicetrust/v1/devicetrust_service.pb.go b/api/gen/proto/go/teleport/devicetrust/v1/devicetrust_service.pb.go index fc4a209912a07..f8f723683b6c7 100644 --- a/api/gen/proto/go/teleport/devicetrust/v1/devicetrust_service.pb.go +++ b/api/gen/proto/go/teleport/devicetrust/v1/devicetrust_service.pb.go @@ -2302,8 +2302,10 @@ func (x *AuthenticateDeviceChallengeResponse) GetSignature() []byte { // (end loop) // -> SyncInventoryEnd // (loop until server closes the stream, zero or more times) -// <- SyncInventoryResult (deleted/missing devices) -// (end) +// <- SyncInventoryMissingDevices +// -> SyncInventoryDevices (removals only) +// <- SyncInventoryResult +// (end loop) type SyncInventoryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2423,6 +2425,7 @@ type SyncInventoryResponse struct { // // *SyncInventoryResponse_Ack // *SyncInventoryResponse_Result + // *SyncInventoryResponse_MissingDevices Payload isSyncInventoryResponse_Payload `protobuf_oneof:"payload"` } @@ -2479,6 +2482,13 @@ func (x *SyncInventoryResponse) GetResult() *SyncInventoryResult { return nil } +func (x *SyncInventoryResponse) GetMissingDevices() *SyncInventoryMissingDevices { + if x, ok := x.GetPayload().(*SyncInventoryResponse_MissingDevices); ok { + return x.MissingDevices + } + return nil +} + type isSyncInventoryResponse_Payload interface { isSyncInventoryResponse_Payload() } @@ -2491,10 +2501,16 @@ type SyncInventoryResponse_Result struct { Result *SyncInventoryResult `protobuf:"bytes,2,opt,name=result,proto3,oneof"` } +type SyncInventoryResponse_MissingDevices struct { + MissingDevices *SyncInventoryMissingDevices `protobuf:"bytes,3,opt,name=missing_devices,json=missingDevices,proto3,oneof"` +} + func (*SyncInventoryResponse_Ack) isSyncInventoryResponse_Payload() {} func (*SyncInventoryResponse_Result) isSyncInventoryResponse_Payload() {} +func (*SyncInventoryResponse_MissingDevices) isSyncInventoryResponse_Payload() {} + // SyncInventoryStart starts the inventory sync. type SyncInventoryStart struct { state protoimpl.MessageState @@ -2506,13 +2522,24 @@ type SyncInventoryStart struct { // by this RPC. Source *DeviceSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` // Mode of syncing. - // Required. + // Deprecated: Use `track_missing_devices` instead. + // + // Deprecated: Marked as deprecated in teleport/devicetrust/v1/devicetrust_service.proto. Mode SyncInventoryMode `protobuf:"varint,2,opt,name=mode,proto3,enum=teleport.devicetrust.v1.SyncInventoryMode" json:"mode,omitempty"` // Action for devices missing from the external inventory, but present in // Teleport. // Only executed if mode is FULL and external_sync_successful is set to true // in the SyncInventoryEnd message. + // Deprecated: Use `track_missing_devices` instead. + // + // Deprecated: Marked as deprecated in teleport/devicetrust/v1/devicetrust_service.proto. OnMissingAction SyncInventoryDeviceAction `protobuf:"varint,3,opt,name=on_missing_action,json=onMissingAction,proto3,enum=teleport.devicetrust.v1.SyncInventoryDeviceAction" json:"on_missing_action,omitempty"` + // If true, the server keeps track of the devices upserted during the sync. + // After receiving the [SyncInventoryEnd] message, the server informs the + // client of all devices that are present in storage but not observed in the + // upserts. + // See [SyncInventoryRequest] and [SyncInventoryMissingDevices] for details. + TrackMissingDevices bool `protobuf:"varint,4,opt,name=track_missing_devices,json=trackMissingDevices,proto3" json:"track_missing_devices,omitempty"` } func (x *SyncInventoryStart) Reset() { @@ -2554,6 +2581,7 @@ func (x *SyncInventoryStart) GetSource() *DeviceSource { return nil } +// Deprecated: Marked as deprecated in teleport/devicetrust/v1/devicetrust_service.proto. func (x *SyncInventoryStart) GetMode() SyncInventoryMode { if x != nil { return x.Mode @@ -2561,6 +2589,7 @@ func (x *SyncInventoryStart) GetMode() SyncInventoryMode { return SyncInventoryMode_SYNC_INVENTORY_MODE_UNSPECIFIED } +// Deprecated: Marked as deprecated in teleport/devicetrust/v1/devicetrust_service.proto. func (x *SyncInventoryStart) GetOnMissingAction() SyncInventoryDeviceAction { if x != nil { return x.OnMissingAction @@ -2568,6 +2597,13 @@ func (x *SyncInventoryStart) GetOnMissingAction() SyncInventoryDeviceAction { return SyncInventoryDeviceAction_SYNC_INVENTORY_DEVICE_ACTION_UNSPECIFIED } +func (x *SyncInventoryStart) GetTrackMissingDevices() bool { + if x != nil { + return x.TrackMissingDevices + } + return false +} + // SyncInventoryEnd ends the inventory sync, signaling that no more // SyncInventoryDevices messages will be sent by the client. type SyncInventoryEnd struct { @@ -2578,6 +2614,9 @@ type SyncInventoryEnd struct { // True if the external sync was fully successful (for example, all reads from // an MDM API were successful). // If false the sync's on_missing_action is skipped. + // Deprecated: Use [SyncInventoryStart.track_missing_devices] instead. + // + // Deprecated: Marked as deprecated in teleport/devicetrust/v1/devicetrust_service.proto. ExternalSyncSuccessful bool `protobuf:"varint,1,opt,name=external_sync_successful,json=externalSyncSuccessful,proto3" json:"external_sync_successful,omitempty"` } @@ -2613,6 +2652,7 @@ func (*SyncInventoryEnd) Descriptor() ([]byte, []int) { return file_teleport_devicetrust_v1_devicetrust_service_proto_rawDescGZIP(), []int{35} } +// Deprecated: Marked as deprecated in teleport/devicetrust/v1/devicetrust_service.proto. func (x *SyncInventoryEnd) GetExternalSyncSuccessful() bool { if x != nil { return x.ExternalSyncSuccessful @@ -2761,6 +2801,64 @@ func (x *SyncInventoryResult) GetDevices() []*DeviceOrStatus { return nil } +// SyncInventoryMissingDevices informs the sync client of all stored devices +// that were not observed in upserts during the sync. +// +// Requires `track_missing_devices` to be set in the [SyncInventoryStart] +// message. +// +// The client must follow up with a [SyncInventoryDevices] message, including +// any devices to be deleted. +type SyncInventoryMissingDevices struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Devices missing from the client-side sync. + // Guaranteed to have the following fields: id, os_type, asset_tag and + // profile.external_id. + Devices []*Device `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"` +} + +func (x *SyncInventoryMissingDevices) Reset() { + *x = SyncInventoryMissingDevices{} + if protoimpl.UnsafeEnabled { + mi := &file_teleport_devicetrust_v1_devicetrust_service_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncInventoryMissingDevices) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncInventoryMissingDevices) ProtoMessage() {} + +func (x *SyncInventoryMissingDevices) ProtoReflect() protoreflect.Message { + mi := &file_teleport_devicetrust_v1_devicetrust_service_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SyncInventoryMissingDevices.ProtoReflect.Descriptor instead. +func (*SyncInventoryMissingDevices) Descriptor() ([]byte, []int) { + return file_teleport_devicetrust_v1_devicetrust_service_proto_rawDescGZIP(), []int{39} +} + +func (x *SyncInventoryMissingDevices) GetDevices() []*Device { + if x != nil { + return x.Devices + } + return nil +} + var File_teleport_devicetrust_v1_devicetrust_service_proto protoreflect.FileDescriptor var file_teleport_devicetrust_v1_devicetrust_service_proto_rawDesc = []byte{ @@ -3099,7 +3197,7 @@ var file_teleport_devicetrust_v1_devicetrust_service_proto_rawDesc = []byte{ 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x53, 0x79, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x8a, 0x02, 0x0a, 0x15, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x03, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, @@ -3109,151 +3207,167 @@ var file_teleport_devicetrust_v1_devicetrust_service_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xf3, 0x01, 0x0a, 0x12, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3d, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, - 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5f, 0x0a, 0x0f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xaf, 0x02, 0x0a, 0x12, 0x53, 0x79, 0x6e, 0x63, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3d, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x04, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x12, 0x62, 0x0a, 0x11, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x0f, 0x6f, 0x6e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x13, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x18, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x16, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x22, 0x51, 0x0a, 0x14, 0x53, 0x79, + 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x12, 0x0a, + 0x10, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x63, + 0x6b, 0x22, 0x58, 0x0a, 0x13, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x6f, - 0x6e, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6f, 0x6e, 0x4d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, 0x10, 0x53, - 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x12, - 0x38, 0x0a, 0x18, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x53, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x22, 0x51, 0x0a, 0x14, 0x53, 0x79, 0x6e, - 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x12, 0x39, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x12, 0x0a, 0x10, - 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x63, 0x6b, - 0x22, 0x58, 0x0a, 0x13, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2a, 0x59, 0x0a, 0x0a, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x56, 0x49, - 0x43, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, - 0x56, 0x49, 0x45, 0x57, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, - 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x10, 0x02, 0x2a, 0x77, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x59, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x58, 0x0a, 0x1b, 0x53, + 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2a, 0x59, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x49, + 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, + 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x02, + 0x2a, 0x77, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, + 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1f, 0x0a, 0x1b, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, - 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, - 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, - 0x52, 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x2a, 0x99, - 0x01, 0x0a, 0x19, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x28, + 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x53, + 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x2a, 0x99, 0x01, 0x0a, 0x19, 0x53, 0x79, + 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x59, 0x4e, 0x43, 0x5f, + 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, + 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x44, - 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x59, - 0x4e, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x56, - 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x10, - 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, - 0x4f, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x32, 0x99, 0x0a, 0x0a, 0x12, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x5d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, - 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x5d, 0x0a, 0x0c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, - 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x54, - 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, - 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x68, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, - 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x74, 0x65, + 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x45, 0x10, 0x02, 0x32, 0x99, 0x0a, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x72, 0x75, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, + 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7a, 0x0a, 0x11, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7e, 0x0a, - 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, - 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x55, 0x70, + 0x73, 0x65, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, - 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x68, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2b, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x6f, 0x0a, - 0x0c, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, + 0x63, 0x65, 0x12, 0x68, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x12, 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x11, + 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x12, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7e, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, + 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, + 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x6f, 0x0a, 0x0c, 0x45, 0x6e, 0x72, 0x6f, + 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x41, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x72, 0x0a, + 0x0d, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2d, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, - 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x65, - 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x81, - 0x01, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, - 0x30, 0x01, 0x12, 0x72, 0x0a, 0x0d, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, - 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, - 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x5a, 0x5a, 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, - 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, - 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, + 0x01, 0x42, 0x5a, 0x5a, 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x76, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3269,7 +3383,7 @@ func file_teleport_devicetrust_v1_devicetrust_service_proto_rawDescGZIP() []byte } var file_teleport_devicetrust_v1_devicetrust_service_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_teleport_devicetrust_v1_devicetrust_service_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_teleport_devicetrust_v1_devicetrust_service_proto_msgTypes = make([]protoimpl.MessageInfo, 40) var file_teleport_devicetrust_v1_devicetrust_service_proto_goTypes = []interface{}{ (DeviceView)(0), // 0: teleport.devicetrust.v1.DeviceView (SyncInventoryMode)(0), // 1: teleport.devicetrust.v1.SyncInventoryMode @@ -3313,90 +3427,93 @@ var file_teleport_devicetrust_v1_devicetrust_service_proto_goTypes = []interface (*SyncInventoryDevices)(nil), // 39: teleport.devicetrust.v1.SyncInventoryDevices (*SyncInventoryAck)(nil), // 40: teleport.devicetrust.v1.SyncInventoryAck (*SyncInventoryResult)(nil), // 41: teleport.devicetrust.v1.SyncInventoryResult - (*Device)(nil), // 42: teleport.devicetrust.v1.Device - (*fieldmaskpb.FieldMask)(nil), // 43: google.protobuf.FieldMask - (*status.Status)(nil), // 44: google.rpc.Status - (*DeviceCollectedData)(nil), // 45: teleport.devicetrust.v1.DeviceCollectedData - (*TPMPlatformParameters)(nil), // 46: teleport.devicetrust.v1.TPMPlatformParameters - (*UserCertificates)(nil), // 47: teleport.devicetrust.v1.UserCertificates - (*DeviceSource)(nil), // 48: teleport.devicetrust.v1.DeviceSource - (*emptypb.Empty)(nil), // 49: google.protobuf.Empty - (*DeviceEnrollToken)(nil), // 50: teleport.devicetrust.v1.DeviceEnrollToken + (*SyncInventoryMissingDevices)(nil), // 42: teleport.devicetrust.v1.SyncInventoryMissingDevices + (*Device)(nil), // 43: teleport.devicetrust.v1.Device + (*fieldmaskpb.FieldMask)(nil), // 44: google.protobuf.FieldMask + (*status.Status)(nil), // 45: google.rpc.Status + (*DeviceCollectedData)(nil), // 46: teleport.devicetrust.v1.DeviceCollectedData + (*TPMPlatformParameters)(nil), // 47: teleport.devicetrust.v1.TPMPlatformParameters + (*UserCertificates)(nil), // 48: teleport.devicetrust.v1.UserCertificates + (*DeviceSource)(nil), // 49: teleport.devicetrust.v1.DeviceSource + (*emptypb.Empty)(nil), // 50: google.protobuf.Empty + (*DeviceEnrollToken)(nil), // 51: teleport.devicetrust.v1.DeviceEnrollToken } var file_teleport_devicetrust_v1_devicetrust_service_proto_depIdxs = []int32{ - 42, // 0: teleport.devicetrust.v1.CreateDeviceRequest.device:type_name -> teleport.devicetrust.v1.Device - 42, // 1: teleport.devicetrust.v1.UpdateDeviceRequest.device:type_name -> teleport.devicetrust.v1.Device - 43, // 2: teleport.devicetrust.v1.UpdateDeviceRequest.update_mask:type_name -> google.protobuf.FieldMask - 42, // 3: teleport.devicetrust.v1.UpsertDeviceRequest.device:type_name -> teleport.devicetrust.v1.Device - 42, // 4: teleport.devicetrust.v1.FindDevicesResponse.devices:type_name -> teleport.devicetrust.v1.Device + 43, // 0: teleport.devicetrust.v1.CreateDeviceRequest.device:type_name -> teleport.devicetrust.v1.Device + 43, // 1: teleport.devicetrust.v1.UpdateDeviceRequest.device:type_name -> teleport.devicetrust.v1.Device + 44, // 2: teleport.devicetrust.v1.UpdateDeviceRequest.update_mask:type_name -> google.protobuf.FieldMask + 43, // 3: teleport.devicetrust.v1.UpsertDeviceRequest.device:type_name -> teleport.devicetrust.v1.Device + 43, // 4: teleport.devicetrust.v1.FindDevicesResponse.devices:type_name -> teleport.devicetrust.v1.Device 0, // 5: teleport.devicetrust.v1.ListDevicesRequest.view:type_name -> teleport.devicetrust.v1.DeviceView - 42, // 6: teleport.devicetrust.v1.ListDevicesResponse.devices:type_name -> teleport.devicetrust.v1.Device - 42, // 7: teleport.devicetrust.v1.BulkCreateDevicesRequest.devices:type_name -> teleport.devicetrust.v1.Device + 43, // 6: teleport.devicetrust.v1.ListDevicesResponse.devices:type_name -> teleport.devicetrust.v1.Device + 43, // 7: teleport.devicetrust.v1.BulkCreateDevicesRequest.devices:type_name -> teleport.devicetrust.v1.Device 14, // 8: teleport.devicetrust.v1.BulkCreateDevicesResponse.devices:type_name -> teleport.devicetrust.v1.DeviceOrStatus - 44, // 9: teleport.devicetrust.v1.DeviceOrStatus.status:type_name -> google.rpc.Status - 45, // 10: teleport.devicetrust.v1.CreateDeviceEnrollTokenRequest.device_data:type_name -> teleport.devicetrust.v1.DeviceCollectedData + 45, // 9: teleport.devicetrust.v1.DeviceOrStatus.status:type_name -> google.rpc.Status + 46, // 10: teleport.devicetrust.v1.CreateDeviceEnrollTokenRequest.device_data:type_name -> teleport.devicetrust.v1.DeviceCollectedData 18, // 11: teleport.devicetrust.v1.EnrollDeviceRequest.init:type_name -> teleport.devicetrust.v1.EnrollDeviceInit 22, // 12: teleport.devicetrust.v1.EnrollDeviceRequest.macos_challenge_response:type_name -> teleport.devicetrust.v1.MacOSEnrollChallengeResponse 27, // 13: teleport.devicetrust.v1.EnrollDeviceRequest.tpm_challenge_response:type_name -> teleport.devicetrust.v1.TPMEnrollChallengeResponse 19, // 14: teleport.devicetrust.v1.EnrollDeviceResponse.success:type_name -> teleport.devicetrust.v1.EnrollDeviceSuccess 21, // 15: teleport.devicetrust.v1.EnrollDeviceResponse.macos_challenge:type_name -> teleport.devicetrust.v1.MacOSEnrollChallenge 25, // 16: teleport.devicetrust.v1.EnrollDeviceResponse.tpm_challenge:type_name -> teleport.devicetrust.v1.TPMEnrollChallenge - 45, // 17: teleport.devicetrust.v1.EnrollDeviceInit.device_data:type_name -> teleport.devicetrust.v1.DeviceCollectedData + 46, // 17: teleport.devicetrust.v1.EnrollDeviceInit.device_data:type_name -> teleport.devicetrust.v1.DeviceCollectedData 20, // 18: teleport.devicetrust.v1.EnrollDeviceInit.macos:type_name -> teleport.devicetrust.v1.MacOSEnrollPayload 23, // 19: teleport.devicetrust.v1.EnrollDeviceInit.tpm:type_name -> teleport.devicetrust.v1.TPMEnrollPayload - 42, // 20: teleport.devicetrust.v1.EnrollDeviceSuccess.device:type_name -> teleport.devicetrust.v1.Device + 43, // 20: teleport.devicetrust.v1.EnrollDeviceSuccess.device:type_name -> teleport.devicetrust.v1.Device 24, // 21: teleport.devicetrust.v1.TPMEnrollPayload.attestation_parameters:type_name -> teleport.devicetrust.v1.TPMAttestationParameters 26, // 22: teleport.devicetrust.v1.TPMEnrollChallenge.encrypted_credential:type_name -> teleport.devicetrust.v1.TPMEncryptedCredential - 46, // 23: teleport.devicetrust.v1.TPMEnrollChallengeResponse.platform_parameters:type_name -> teleport.devicetrust.v1.TPMPlatformParameters + 47, // 23: teleport.devicetrust.v1.TPMEnrollChallengeResponse.platform_parameters:type_name -> teleport.devicetrust.v1.TPMPlatformParameters 30, // 24: teleport.devicetrust.v1.AuthenticateDeviceRequest.init:type_name -> teleport.devicetrust.v1.AuthenticateDeviceInit 34, // 25: teleport.devicetrust.v1.AuthenticateDeviceRequest.challenge_response:type_name -> teleport.devicetrust.v1.AuthenticateDeviceChallengeResponse 32, // 26: teleport.devicetrust.v1.AuthenticateDeviceRequest.tpm_challenge_response:type_name -> teleport.devicetrust.v1.TPMAuthenticateDeviceChallengeResponse 33, // 27: teleport.devicetrust.v1.AuthenticateDeviceResponse.challenge:type_name -> teleport.devicetrust.v1.AuthenticateDeviceChallenge - 47, // 28: teleport.devicetrust.v1.AuthenticateDeviceResponse.user_certificates:type_name -> teleport.devicetrust.v1.UserCertificates + 48, // 28: teleport.devicetrust.v1.AuthenticateDeviceResponse.user_certificates:type_name -> teleport.devicetrust.v1.UserCertificates 31, // 29: teleport.devicetrust.v1.AuthenticateDeviceResponse.tpm_challenge:type_name -> teleport.devicetrust.v1.TPMAuthenticateDeviceChallenge - 47, // 30: teleport.devicetrust.v1.AuthenticateDeviceInit.user_certificates:type_name -> teleport.devicetrust.v1.UserCertificates - 45, // 31: teleport.devicetrust.v1.AuthenticateDeviceInit.device_data:type_name -> teleport.devicetrust.v1.DeviceCollectedData - 46, // 32: teleport.devicetrust.v1.TPMAuthenticateDeviceChallengeResponse.platform_parameters:type_name -> teleport.devicetrust.v1.TPMPlatformParameters + 48, // 30: teleport.devicetrust.v1.AuthenticateDeviceInit.user_certificates:type_name -> teleport.devicetrust.v1.UserCertificates + 46, // 31: teleport.devicetrust.v1.AuthenticateDeviceInit.device_data:type_name -> teleport.devicetrust.v1.DeviceCollectedData + 47, // 32: teleport.devicetrust.v1.TPMAuthenticateDeviceChallengeResponse.platform_parameters:type_name -> teleport.devicetrust.v1.TPMPlatformParameters 37, // 33: teleport.devicetrust.v1.SyncInventoryRequest.start:type_name -> teleport.devicetrust.v1.SyncInventoryStart 38, // 34: teleport.devicetrust.v1.SyncInventoryRequest.end:type_name -> teleport.devicetrust.v1.SyncInventoryEnd 39, // 35: teleport.devicetrust.v1.SyncInventoryRequest.devices_to_upsert:type_name -> teleport.devicetrust.v1.SyncInventoryDevices 39, // 36: teleport.devicetrust.v1.SyncInventoryRequest.devices_to_remove:type_name -> teleport.devicetrust.v1.SyncInventoryDevices 40, // 37: teleport.devicetrust.v1.SyncInventoryResponse.ack:type_name -> teleport.devicetrust.v1.SyncInventoryAck 41, // 38: teleport.devicetrust.v1.SyncInventoryResponse.result:type_name -> teleport.devicetrust.v1.SyncInventoryResult - 48, // 39: teleport.devicetrust.v1.SyncInventoryStart.source:type_name -> teleport.devicetrust.v1.DeviceSource - 1, // 40: teleport.devicetrust.v1.SyncInventoryStart.mode:type_name -> teleport.devicetrust.v1.SyncInventoryMode - 2, // 41: teleport.devicetrust.v1.SyncInventoryStart.on_missing_action:type_name -> teleport.devicetrust.v1.SyncInventoryDeviceAction - 42, // 42: teleport.devicetrust.v1.SyncInventoryDevices.devices:type_name -> teleport.devicetrust.v1.Device - 14, // 43: teleport.devicetrust.v1.SyncInventoryResult.devices:type_name -> teleport.devicetrust.v1.DeviceOrStatus - 3, // 44: teleport.devicetrust.v1.DeviceTrustService.CreateDevice:input_type -> teleport.devicetrust.v1.CreateDeviceRequest - 4, // 45: teleport.devicetrust.v1.DeviceTrustService.UpdateDevice:input_type -> teleport.devicetrust.v1.UpdateDeviceRequest - 5, // 46: teleport.devicetrust.v1.DeviceTrustService.UpsertDevice:input_type -> teleport.devicetrust.v1.UpsertDeviceRequest - 6, // 47: teleport.devicetrust.v1.DeviceTrustService.DeleteDevice:input_type -> teleport.devicetrust.v1.DeleteDeviceRequest - 7, // 48: teleport.devicetrust.v1.DeviceTrustService.FindDevices:input_type -> teleport.devicetrust.v1.FindDevicesRequest - 9, // 49: teleport.devicetrust.v1.DeviceTrustService.GetDevice:input_type -> teleport.devicetrust.v1.GetDeviceRequest - 10, // 50: teleport.devicetrust.v1.DeviceTrustService.ListDevices:input_type -> teleport.devicetrust.v1.ListDevicesRequest - 12, // 51: teleport.devicetrust.v1.DeviceTrustService.BulkCreateDevices:input_type -> teleport.devicetrust.v1.BulkCreateDevicesRequest - 15, // 52: teleport.devicetrust.v1.DeviceTrustService.CreateDeviceEnrollToken:input_type -> teleport.devicetrust.v1.CreateDeviceEnrollTokenRequest - 16, // 53: teleport.devicetrust.v1.DeviceTrustService.EnrollDevice:input_type -> teleport.devicetrust.v1.EnrollDeviceRequest - 28, // 54: teleport.devicetrust.v1.DeviceTrustService.AuthenticateDevice:input_type -> teleport.devicetrust.v1.AuthenticateDeviceRequest - 35, // 55: teleport.devicetrust.v1.DeviceTrustService.SyncInventory:input_type -> teleport.devicetrust.v1.SyncInventoryRequest - 42, // 56: teleport.devicetrust.v1.DeviceTrustService.CreateDevice:output_type -> teleport.devicetrust.v1.Device - 42, // 57: teleport.devicetrust.v1.DeviceTrustService.UpdateDevice:output_type -> teleport.devicetrust.v1.Device - 42, // 58: teleport.devicetrust.v1.DeviceTrustService.UpsertDevice:output_type -> teleport.devicetrust.v1.Device - 49, // 59: teleport.devicetrust.v1.DeviceTrustService.DeleteDevice:output_type -> google.protobuf.Empty - 8, // 60: teleport.devicetrust.v1.DeviceTrustService.FindDevices:output_type -> teleport.devicetrust.v1.FindDevicesResponse - 42, // 61: teleport.devicetrust.v1.DeviceTrustService.GetDevice:output_type -> teleport.devicetrust.v1.Device - 11, // 62: teleport.devicetrust.v1.DeviceTrustService.ListDevices:output_type -> teleport.devicetrust.v1.ListDevicesResponse - 13, // 63: teleport.devicetrust.v1.DeviceTrustService.BulkCreateDevices:output_type -> teleport.devicetrust.v1.BulkCreateDevicesResponse - 50, // 64: teleport.devicetrust.v1.DeviceTrustService.CreateDeviceEnrollToken:output_type -> teleport.devicetrust.v1.DeviceEnrollToken - 17, // 65: teleport.devicetrust.v1.DeviceTrustService.EnrollDevice:output_type -> teleport.devicetrust.v1.EnrollDeviceResponse - 29, // 66: teleport.devicetrust.v1.DeviceTrustService.AuthenticateDevice:output_type -> teleport.devicetrust.v1.AuthenticateDeviceResponse - 36, // 67: teleport.devicetrust.v1.DeviceTrustService.SyncInventory:output_type -> teleport.devicetrust.v1.SyncInventoryResponse - 56, // [56:68] is the sub-list for method output_type - 44, // [44:56] is the sub-list for method input_type - 44, // [44:44] is the sub-list for extension type_name - 44, // [44:44] is the sub-list for extension extendee - 0, // [0:44] is the sub-list for field type_name + 42, // 39: teleport.devicetrust.v1.SyncInventoryResponse.missing_devices:type_name -> teleport.devicetrust.v1.SyncInventoryMissingDevices + 49, // 40: teleport.devicetrust.v1.SyncInventoryStart.source:type_name -> teleport.devicetrust.v1.DeviceSource + 1, // 41: teleport.devicetrust.v1.SyncInventoryStart.mode:type_name -> teleport.devicetrust.v1.SyncInventoryMode + 2, // 42: teleport.devicetrust.v1.SyncInventoryStart.on_missing_action:type_name -> teleport.devicetrust.v1.SyncInventoryDeviceAction + 43, // 43: teleport.devicetrust.v1.SyncInventoryDevices.devices:type_name -> teleport.devicetrust.v1.Device + 14, // 44: teleport.devicetrust.v1.SyncInventoryResult.devices:type_name -> teleport.devicetrust.v1.DeviceOrStatus + 43, // 45: teleport.devicetrust.v1.SyncInventoryMissingDevices.devices:type_name -> teleport.devicetrust.v1.Device + 3, // 46: teleport.devicetrust.v1.DeviceTrustService.CreateDevice:input_type -> teleport.devicetrust.v1.CreateDeviceRequest + 4, // 47: teleport.devicetrust.v1.DeviceTrustService.UpdateDevice:input_type -> teleport.devicetrust.v1.UpdateDeviceRequest + 5, // 48: teleport.devicetrust.v1.DeviceTrustService.UpsertDevice:input_type -> teleport.devicetrust.v1.UpsertDeviceRequest + 6, // 49: teleport.devicetrust.v1.DeviceTrustService.DeleteDevice:input_type -> teleport.devicetrust.v1.DeleteDeviceRequest + 7, // 50: teleport.devicetrust.v1.DeviceTrustService.FindDevices:input_type -> teleport.devicetrust.v1.FindDevicesRequest + 9, // 51: teleport.devicetrust.v1.DeviceTrustService.GetDevice:input_type -> teleport.devicetrust.v1.GetDeviceRequest + 10, // 52: teleport.devicetrust.v1.DeviceTrustService.ListDevices:input_type -> teleport.devicetrust.v1.ListDevicesRequest + 12, // 53: teleport.devicetrust.v1.DeviceTrustService.BulkCreateDevices:input_type -> teleport.devicetrust.v1.BulkCreateDevicesRequest + 15, // 54: teleport.devicetrust.v1.DeviceTrustService.CreateDeviceEnrollToken:input_type -> teleport.devicetrust.v1.CreateDeviceEnrollTokenRequest + 16, // 55: teleport.devicetrust.v1.DeviceTrustService.EnrollDevice:input_type -> teleport.devicetrust.v1.EnrollDeviceRequest + 28, // 56: teleport.devicetrust.v1.DeviceTrustService.AuthenticateDevice:input_type -> teleport.devicetrust.v1.AuthenticateDeviceRequest + 35, // 57: teleport.devicetrust.v1.DeviceTrustService.SyncInventory:input_type -> teleport.devicetrust.v1.SyncInventoryRequest + 43, // 58: teleport.devicetrust.v1.DeviceTrustService.CreateDevice:output_type -> teleport.devicetrust.v1.Device + 43, // 59: teleport.devicetrust.v1.DeviceTrustService.UpdateDevice:output_type -> teleport.devicetrust.v1.Device + 43, // 60: teleport.devicetrust.v1.DeviceTrustService.UpsertDevice:output_type -> teleport.devicetrust.v1.Device + 50, // 61: teleport.devicetrust.v1.DeviceTrustService.DeleteDevice:output_type -> google.protobuf.Empty + 8, // 62: teleport.devicetrust.v1.DeviceTrustService.FindDevices:output_type -> teleport.devicetrust.v1.FindDevicesResponse + 43, // 63: teleport.devicetrust.v1.DeviceTrustService.GetDevice:output_type -> teleport.devicetrust.v1.Device + 11, // 64: teleport.devicetrust.v1.DeviceTrustService.ListDevices:output_type -> teleport.devicetrust.v1.ListDevicesResponse + 13, // 65: teleport.devicetrust.v1.DeviceTrustService.BulkCreateDevices:output_type -> teleport.devicetrust.v1.BulkCreateDevicesResponse + 51, // 66: teleport.devicetrust.v1.DeviceTrustService.CreateDeviceEnrollToken:output_type -> teleport.devicetrust.v1.DeviceEnrollToken + 17, // 67: teleport.devicetrust.v1.DeviceTrustService.EnrollDevice:output_type -> teleport.devicetrust.v1.EnrollDeviceResponse + 29, // 68: teleport.devicetrust.v1.DeviceTrustService.AuthenticateDevice:output_type -> teleport.devicetrust.v1.AuthenticateDeviceResponse + 36, // 69: teleport.devicetrust.v1.DeviceTrustService.SyncInventory:output_type -> teleport.devicetrust.v1.SyncInventoryResponse + 58, // [58:70] is the sub-list for method output_type + 46, // [46:58] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name } func init() { file_teleport_devicetrust_v1_devicetrust_service_proto_init() } @@ -3879,6 +3996,18 @@ func file_teleport_devicetrust_v1_devicetrust_service_proto_init() { return nil } } + file_teleport_devicetrust_v1_devicetrust_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncInventoryMissingDevices); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_teleport_devicetrust_v1_devicetrust_service_proto_msgTypes[13].OneofWrappers = []interface{}{ (*EnrollDeviceRequest_Init)(nil), @@ -3913,6 +4042,7 @@ func file_teleport_devicetrust_v1_devicetrust_service_proto_init() { file_teleport_devicetrust_v1_devicetrust_service_proto_msgTypes[33].OneofWrappers = []interface{}{ (*SyncInventoryResponse_Ack)(nil), (*SyncInventoryResponse_Result)(nil), + (*SyncInventoryResponse_MissingDevices)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -3920,7 +4050,7 @@ func file_teleport_devicetrust_v1_devicetrust_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_teleport_devicetrust_v1_devicetrust_service_proto_rawDesc, NumEnums: 3, - NumMessages: 39, + NumMessages: 40, NumExtensions: 0, NumServices: 1, }, diff --git a/api/proto/teleport/devicetrust/v1/device_profile.proto b/api/proto/teleport/devicetrust/v1/device_profile.proto index 0c474dc525418..f1fde92053ae4 100644 --- a/api/proto/teleport/devicetrust/v1/device_profile.proto +++ b/api/proto/teleport/devicetrust/v1/device_profile.proto @@ -46,4 +46,7 @@ message DeviceProfile { // Jamf binary version, without the leading 'v'. // Example: "9.27" or "10.44.1-t1677509507". string jamf_binary_version = 6; + + // External device identifier, for example the Jamf or Intune ID. + string external_id = 7; } diff --git a/api/proto/teleport/devicetrust/v1/devicetrust_service.proto b/api/proto/teleport/devicetrust/v1/devicetrust_service.proto index cf0ba0934c82a..8711acf163e52 100644 --- a/api/proto/teleport/devicetrust/v1/devicetrust_service.proto +++ b/api/proto/teleport/devicetrust/v1/devicetrust_service.proto @@ -525,8 +525,10 @@ message AuthenticateDeviceChallengeResponse { // (end loop) // -> SyncInventoryEnd // (loop until server closes the stream, zero or more times) -// <- SyncInventoryResult (deleted/missing devices) -// (end) +// <- SyncInventoryMissingDevices +// -> SyncInventoryDevices (removals only) +// <- SyncInventoryResult +// (end loop) message SyncInventoryRequest { oneof payload { SyncInventoryStart start = 1; @@ -541,6 +543,7 @@ message SyncInventoryResponse { oneof payload { SyncInventoryAck ack = 1; SyncInventoryResult result = 2; + SyncInventoryMissingDevices missing_devices = 3; } } @@ -551,15 +554,25 @@ message SyncInventoryStart { // by this RPC. DeviceSource source = 1; + // TODO(codingllama): Delete deprecated fields once they are unused. + // Mode of syncing. - // Required. - SyncInventoryMode mode = 2; + // Deprecated: Use `track_missing_devices` instead. + SyncInventoryMode mode = 2 [deprecated = true]; // Action for devices missing from the external inventory, but present in // Teleport. // Only executed if mode is FULL and external_sync_successful is set to true // in the SyncInventoryEnd message. - SyncInventoryDeviceAction on_missing_action = 3; + // Deprecated: Use `track_missing_devices` instead. + SyncInventoryDeviceAction on_missing_action = 3 [deprecated = true]; + + // If true, the server keeps track of the devices upserted during the sync. + // After receiving the [SyncInventoryEnd] message, the server informs the + // client of all devices that are present in storage but not observed in the + // upserts. + // See [SyncInventoryRequest] and [SyncInventoryMissingDevices] for details. + bool track_missing_devices = 4; } // Mode of sync for SyncInventory. @@ -595,7 +608,8 @@ message SyncInventoryEnd { // True if the external sync was fully successful (for example, all reads from // an MDM API were successful). // If false the sync's on_missing_action is skipped. - bool external_sync_successful = 1; + // Deprecated: Use [SyncInventoryStart.track_missing_devices] instead. + bool external_sync_successful = 1 [deprecated = true]; } // SyncInventoryDevices transports devices to add/update/remove. @@ -616,3 +630,18 @@ message SyncInventoryResult { // Devices modified, in the same order as the input when applicable. repeated DeviceOrStatus devices = 1; } + +// SyncInventoryMissingDevices informs the sync client of all stored devices +// that were not observed in upserts during the sync. +// +// Requires `track_missing_devices` to be set in the [SyncInventoryStart] +// message. +// +// The client must follow up with a [SyncInventoryDevices] message, including +// any devices to be deleted. +message SyncInventoryMissingDevices { + // Devices missing from the client-side sync. + // Guaranteed to have the following fields: id, os_type, asset_tag and + // profile.external_id. + repeated Device devices = 1; +} diff --git a/api/proto/teleport/legacy/types/device.proto b/api/proto/teleport/legacy/types/device.proto index 396079024b5a9..7f863c4af9bda 100644 --- a/api/proto/teleport/legacy/types/device.proto +++ b/api/proto/teleport/legacy/types/device.proto @@ -145,4 +145,5 @@ message DeviceProfile { string os_build = 4 [(gogoproto.jsontag) = "os_build,omitempty"]; repeated string os_usernames = 5 [(gogoproto.jsontag) = "os_usernames,omitempty"]; string jamf_binary_version = 6 [(gogoproto.jsontag) = "jamf_binary_version,omitempty"]; + string external_id = 7 [(gogoproto.jsontag) = "external_id,omitempty"]; } diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index 5853b4c7ddc29..bb7c803e0c323 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -5766,8 +5766,8 @@ message JamfSpecV1 { (gogoproto.jsontag) = "sync_delay,omitempty", (gogoproto.casttype) = "Duration" ]; - // Jamf API endpoint. - // Example: "https://yourtenant.jamfcloud.com". + // Jamf Pro API endpoint. + // Example: "https://yourtenant.jamfcloud.com/api". // Required. string api_endpoint = 4 [(gogoproto.jsontag) = "api_endpoint,omitempty"]; // Jamf API username. diff --git a/api/types/device.go b/api/types/device.go index 0cb1f3d3f5a71..96d6377a252d3 100644 --- a/api/types/device.go +++ b/api/types/device.go @@ -173,6 +173,7 @@ func DeviceFromResource(res *DeviceV1) (*devicepb.Device, error) { OsBuild: p.OsBuild, OsUsernames: p.OsUsernames, JamfBinaryVersion: p.JamfBinaryVersion, + ExternalId: p.ExternalId, } } @@ -258,6 +259,7 @@ func DeviceToResource(dev *devicepb.Device) *DeviceV1 { OsBuild: p.OsBuild, OsUsernames: p.OsUsernames, JamfBinaryVersion: p.JamfBinaryVersion, + ExternalId: p.ExternalId, } } diff --git a/api/types/device.pb.go b/api/types/device.pb.go index f5ef8c67ac587..57d68d722b622 100644 --- a/api/types/device.pb.go +++ b/api/types/device.pb.go @@ -452,6 +452,7 @@ type DeviceProfile struct { OsBuild string `protobuf:"bytes,4,opt,name=os_build,json=osBuild,proto3" json:"os_build,omitempty"` OsUsernames []string `protobuf:"bytes,5,rep,name=os_usernames,json=osUsernames,proto3" json:"os_usernames,omitempty"` JamfBinaryVersion string `protobuf:"bytes,6,opt,name=jamf_binary_version,json=jamfBinaryVersion,proto3" json:"jamf_binary_version,omitempty"` + ExternalId string `protobuf:"bytes,7,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -508,95 +509,96 @@ func init() { } var fileDescriptor_aceaef1b58496e7d = []byte{ - // 1402 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xdd, 0x6e, 0xdb, 0xb6, - 0x17, 0xaf, 0x1d, 0xc7, 0xb1, 0x19, 0x3b, 0x4d, 0x98, 0x2f, 0x35, 0x4d, 0xc3, 0xd6, 0xff, 0x8f, - 0x75, 0xeb, 0x16, 0xa3, 0x2b, 0xb0, 0x01, 0x1b, 0x8a, 0x2d, 0x6a, 0x0b, 0xac, 0xe8, 0x5a, 0xb8, - 0x4a, 0x56, 0x0c, 0x05, 0x06, 0x81, 0x96, 0x18, 0x4d, 0x8b, 0x64, 0x6a, 0x22, 0x1d, 0xd4, 0xc0, - 0x80, 0xbd, 0xc2, 0x5e, 0x62, 0x6f, 0xb0, 0xbd, 0x43, 0x2f, 0x7b, 0xb7, 0x8b, 0x01, 0xdc, 0xd6, - 0x4b, 0x3d, 0xc1, 0x2e, 0x07, 0x1e, 0xca, 0x36, 0xdd, 0x38, 0x68, 0x51, 0xec, 0x46, 0xa2, 0xce, - 0xef, 0x9c, 0x1f, 0xc9, 0xc3, 0xf3, 0x41, 0xa1, 0x8e, 0x64, 0x09, 0xcb, 0x78, 0x2e, 0xbb, 0x09, - 0x8b, 0x68, 0x30, 0xea, 0xca, 0x51, 0xc6, 0x44, 0x37, 0x64, 0xa7, 0x71, 0xc0, 0xf6, 0xb3, 0x9c, - 0x4b, 0x8e, 0x17, 0x41, 0xb6, 0xb3, 0x11, 0xf1, 0x88, 0x83, 0xa4, 0xab, 0x47, 0x06, 0xdc, 0x21, - 0x11, 0xe7, 0x51, 0xc2, 0xba, 0xf0, 0xd5, 0x1f, 0x1e, 0x77, 0x65, 0x9c, 0x32, 0x21, 0x69, 0x9a, - 0x95, 0x0a, 0xd7, 0xe6, 0xcf, 0x00, 0x4f, 0xa3, 0xd2, 0x79, 0x86, 0x1a, 0x77, 0x61, 0xc2, 0x27, - 0x37, 0xf1, 0xa7, 0xa8, 0xfe, 0x05, 0xa3, 0x21, 0xcb, 0x9d, 0xca, 0xd5, 0xca, 0xf5, 0xe5, 0x0f, - 0x37, 0xf7, 0x8d, 0xa6, 0xc7, 0x04, 0x1f, 0xe6, 0x01, 0x33, 0xa0, 0xdb, 0x7a, 0xae, 0xc8, 0x85, - 0x17, 0x8a, 0x54, 0x0a, 0x45, 0x2e, 0x78, 0xa5, 0x09, 0xee, 0xa2, 0x9a, 0xc8, 0x58, 0xe0, 0x2c, - 0x82, 0xe9, 0x5a, 0x69, 0x6a, 0xb8, 0x0f, 0x33, 0x16, 0xb8, 0x8d, 0x42, 0x11, 0x50, 0xf1, 0xe0, - 0xd9, 0xf9, 0xbb, 0x86, 0xd0, 0x14, 0xc6, 0xff, 0x45, 0x4b, 0x5c, 0xf8, 0xda, 0x0a, 0x66, 0x6f, - 0xba, 0xcb, 0x85, 0x22, 0x63, 0x91, 0x57, 0xe7, 0xe2, 0x68, 0x94, 0x31, 0xfc, 0x1e, 0x6a, 0x52, - 0x21, 0x98, 0xf4, 0x25, 0x8d, 0x9c, 0x2a, 0xe8, 0xb5, 0x0b, 0x45, 0xa6, 0x42, 0xaf, 0x01, 0xc3, - 0x23, 0x1a, 0xe1, 0x1e, 0x5a, 0x0e, 0x72, 0x46, 0x25, 0xf3, 0xb5, 0x5f, 0x9c, 0x05, 0x58, 0xd8, - 0xce, 0xbe, 0x71, 0xda, 0xfe, 0xd8, 0x69, 0xfb, 0x47, 0x63, 0xa7, 0xb9, 0xeb, 0x85, 0x22, 0xb6, - 0xc9, 0x4f, 0x7f, 0x90, 0x8a, 0x87, 0x8c, 0x40, 0x6b, 0x69, 0xc6, 0x61, 0x16, 0x4e, 0x18, 0x6b, - 0x6f, 0xc6, 0x68, 0x99, 0x18, 0x46, 0x23, 0x00, 0xc6, 0x8f, 0x50, 0x9b, 0x0d, 0x72, 0x9e, 0x24, - 0xbe, 0x90, 0x54, 0x0e, 0x05, 0xb8, 0xaf, 0xe9, 0xae, 0x15, 0x8a, 0xcc, 0x02, 0x5e, 0xcb, 0x7c, - 0x1e, 0xc2, 0x17, 0x7e, 0x8c, 0xf4, 0xba, 0x42, 0x36, 0x90, 0x31, 0x4d, 0x9c, 0x3a, 0x2c, 0x64, - 0x7b, 0xc6, 0xe7, 0x77, 0x26, 0xb0, 0xeb, 0x14, 0x8a, 0x6c, 0x4c, 0xd5, 0xdf, 0xe7, 0x69, 0x2c, - 0x59, 0x9a, 0xc9, 0x91, 0x67, 0x91, 0x60, 0x1f, 0xad, 0x04, 0x3c, 0x49, 0x58, 0x20, 0x59, 0xe8, - 0x87, 0x54, 0x52, 0x67, 0xe9, 0xea, 0x02, 0xec, 0x6f, 0x86, 0x76, 0xac, 0x72, 0x97, 0x4a, 0xea, - 0xee, 0x16, 0x8a, 0x38, 0xb3, 0x56, 0x16, 0x7b, 0x3b, 0xb0, 0x95, 0xf1, 0x01, 0xaa, 0x9b, 0x38, - 0x72, 0x1a, 0xb0, 0xde, 0xf5, 0xd9, 0x18, 0x01, 0xc8, 0xdd, 0x28, 0x14, 0x59, 0x35, 0x6a, 0x16, - 0x53, 0x69, 0x88, 0xef, 0xa1, 0xa5, 0x2c, 0xe7, 0xc7, 0x71, 0xc2, 0x9c, 0x26, 0x70, 0x6c, 0xcc, - 0x70, 0xf4, 0x0c, 0xe6, 0x6e, 0x16, 0x8a, 0xac, 0x95, 0x8a, 0x16, 0xcb, 0xd8, 0xb6, 0xf3, 0x7b, - 0x15, 0xad, 0xbe, 0xea, 0x25, 0xbc, 0x85, 0xaa, 0x71, 0x58, 0xc6, 0x5e, 0xbd, 0x50, 0xa4, 0x1a, - 0x87, 0x5e, 0x35, 0x0e, 0xb1, 0x8b, 0x56, 0xb2, 0x61, 0x3f, 0x89, 0x03, 0xff, 0x84, 0x8d, 0x7c, - 0x9d, 0x1d, 0x3a, 0xee, 0x5a, 0x66, 0xef, 0xb3, 0x88, 0x35, 0x57, 0xcb, 0x20, 0x0f, 0xd8, 0xe8, - 0x2e, 0xcb, 0xf1, 0x37, 0x68, 0xdb, 0xa4, 0xb5, 0x4f, 0xa5, 0xd4, 0xb1, 0x21, 0x63, 0x3e, 0x30, - 0xc1, 0xbe, 0x00, 0x13, 0xfe, 0xaf, 0x50, 0xe4, 0xda, 0x39, 0x2a, 0x16, 0xeb, 0xa6, 0x51, 0x39, - 0x98, 0x6a, 0x40, 0x56, 0x3c, 0x40, 0x6b, 0x32, 0x4b, 0x7d, 0x76, 0x12, 0xb0, 0x5c, 0xfa, 0x82, - 0xe5, 0x3a, 0x28, 0x6a, 0x40, 0x4c, 0x0a, 0x45, 0x2e, 0x9f, 0x01, 0x2d, 0xca, 0x8b, 0x32, 0x4b, - 0xef, 0x01, 0x76, 0x08, 0x10, 0xfe, 0x0c, 0xb5, 0xb5, 0x3e, 0x3d, 0xf1, 0xcd, 0x16, 0x20, 0x24, - 0x5b, 0xee, 0xe5, 0x42, 0x91, 0xed, 0x19, 0xc0, 0x22, 0x59, 0x96, 0x59, 0x7a, 0x70, 0xd2, 0x03, - 0x71, 0xe7, 0xb7, 0x06, 0x5a, 0x9f, 0x13, 0x2c, 0xf8, 0x10, 0xb5, 0xca, 0x80, 0x30, 0xe9, 0x53, - 0x79, 0x6d, 0xfa, 0xe8, 0x60, 0x98, 0xb1, 0x81, 0xfc, 0x59, 0x2e, 0x25, 0xe3, 0x94, 0xcc, 0x59, - 0xc0, 0xf3, 0xd0, 0x70, 0x56, 0xdf, 0x2c, 0x25, 0x2d, 0x13, 0x93, 0x92, 0x46, 0x00, 0x8c, 0x56, - 0x21, 0x5a, 0x38, 0xbf, 0x10, 0x7d, 0x8e, 0xda, 0xc6, 0x95, 0xfe, 0x60, 0x98, 0xf6, 0x59, 0x5e, - 0xba, 0x1b, 0xbc, 0x34, 0x03, 0xd8, 0x31, 0x61, 0x80, 0x47, 0x20, 0xc7, 0xf7, 0xd1, 0x6a, 0xca, - 0x43, 0x96, 0xf8, 0x31, 0x44, 0xe0, 0x71, 0xcc, 0xf2, 0x32, 0xfb, 0xf7, 0x0a, 0x45, 0x76, 0x5e, - 0xc5, 0xec, 0x23, 0x03, 0xec, 0xfe, 0x04, 0xc2, 0x1f, 0x23, 0xc4, 0x85, 0x7f, 0xca, 0x72, 0x11, - 0xf3, 0x01, 0x54, 0x83, 0xa6, 0x49, 0xfa, 0xa9, 0xd4, 0x32, 0x6f, 0x72, 0xf1, 0xc4, 0x08, 0xf1, - 0x4d, 0xd4, 0xe0, 0xc2, 0xef, 0x0f, 0xe3, 0x24, 0x74, 0x96, 0xc0, 0x6c, 0xab, 0x50, 0x04, 0x8f, - 0x65, 0x76, 0xee, 0x70, 0xe1, 0x6a, 0x11, 0xfe, 0x04, 0x2d, 0x73, 0xe1, 0x0f, 0x05, 0xcb, 0x07, - 0x34, 0x35, 0xa9, 0xdc, 0x74, 0x2f, 0x15, 0x8a, 0x6c, 0x5a, 0x62, 0xbb, 0xc4, 0x70, 0xf1, 0x55, - 0x29, 0xc5, 0x8f, 0xd1, 0xfa, 0x77, 0x34, 0x3d, 0xf6, 0xfb, 0xf1, 0x80, 0xe6, 0xa3, 0xc9, 0x82, - 0x9b, 0xc0, 0x71, 0xad, 0x50, 0xe4, 0xca, 0x1c, 0xd8, 0xe2, 0x5a, 0xd3, 0xb0, 0x0b, 0xe8, 0x78, - 0x07, 0x01, 0xba, 0x94, 0xd2, 0x80, 0x0b, 0xdf, 0x94, 0xc7, 0x94, 0x0d, 0xa4, 0x5f, 0xa6, 0xb9, - 0x70, 0x10, 0x10, 0xbf, 0x53, 0x28, 0xf2, 0x9f, 0x73, 0x95, 0x2c, 0xfa, 0x6d, 0x50, 0xba, 0x37, - 0xd1, 0x29, 0xcb, 0x89, 0xc0, 0x8f, 0x10, 0xce, 0xa1, 0x8f, 0xb2, 0xd0, 0x9f, 0xb6, 0x9f, 0x65, - 0x60, 0xbf, 0x5a, 0x28, 0xb2, 0x7b, 0x16, 0xb5, 0x68, 0x57, 0xc7, 0xe8, 0xc1, 0xb8, 0x33, 0x1d, - 0xa1, 0x0d, 0x31, 0x12, 0x92, 0xa5, 0xfe, 0x6c, 0x0c, 0xb5, 0x80, 0xb1, 0x53, 0x28, 0xb2, 0x37, - 0x0f, 0xb7, 0x38, 0xb1, 0xc1, 0x0f, 0xed, 0x80, 0xf2, 0x91, 0xd3, 0xa7, 0x82, 0xf9, 0x7d, 0x4e, - 0xf3, 0xf0, 0x15, 0xe6, 0x36, 0x30, 0xff, 0xbf, 0x50, 0xa4, 0x73, 0x9e, 0x8e, 0x5d, 0x66, 0xb4, - 0x8e, 0xab, 0x55, 0x66, 0x26, 0xf8, 0x11, 0x39, 0xba, 0x00, 0x64, 0x09, 0x95, 0xc7, 0x3c, 0x4f, - 0xed, 0x42, 0xe5, 0xac, 0x40, 0xe2, 0x5d, 0x29, 0xcb, 0xf1, 0x51, 0xef, 0x61, 0xaf, 0xd4, 0xb2, - 0x6a, 0x95, 0x99, 0xff, 0x3c, 0x0a, 0x6b, 0xfe, 0x2d, 0x99, 0xa5, 0x73, 0xec, 0x3b, 0x3f, 0xa0, - 0xba, 0x66, 0xbe, 0xe3, 0x61, 0x82, 0x16, 0xe3, 0x41, 0xc8, 0x9e, 0x41, 0x11, 0x59, 0x74, 0x9b, - 0x85, 0x22, 0x46, 0xe0, 0x99, 0x17, 0xee, 0xa0, 0x7a, 0x18, 0x47, 0x4c, 0xc8, 0xb2, 0x5a, 0xa3, - 0x42, 0x91, 0x52, 0xe2, 0x95, 0x6f, 0xfc, 0x01, 0x42, 0x66, 0xe4, 0xd3, 0x24, 0x82, 0x64, 0xaf, - 0xb9, 0x2b, 0x85, 0x22, 0x96, 0xd4, 0x6b, 0x9a, 0xf1, 0x41, 0x12, 0x75, 0xbe, 0x46, 0x8d, 0xa3, - 0xde, 0xc3, 0xc7, 0x43, 0x2e, 0x99, 0x9e, 0xff, 0x7b, 0x3d, 0x80, 0xf9, 0x5b, 0x66, 0x7e, 0x10, - 0x78, 0xe6, 0x85, 0x6f, 0xa0, 0xa6, 0x88, 0xa3, 0x01, 0x95, 0xc3, 0x9c, 0x95, 0x4b, 0x80, 0x8b, - 0xca, 0x44, 0xe8, 0x4d, 0x87, 0x9d, 0x9f, 0x2b, 0x68, 0xd3, 0x72, 0x59, 0x8f, 0xe6, 0x34, 0x65, - 0x92, 0xe5, 0x02, 0xdf, 0x42, 0x75, 0xe0, 0x13, 0x4e, 0x05, 0x9a, 0xf1, 0xc5, 0xa9, 0x83, 0x61, - 0x21, 0x66, 0x5f, 0x46, 0xc5, 0x2b, 0xdf, 0xf8, 0x06, 0xaa, 0x65, 0x41, 0x2e, 0x9c, 0x2a, 0x98, - 0xb4, 0xad, 0x33, 0xb9, 0xe3, 0x99, 0x6b, 0x98, 0x86, 0x3d, 0x78, 0xea, 0x1b, 0x15, 0x3b, 0xd5, - 0x09, 0x91, 0x70, 0xe3, 0x83, 0x72, 0xa1, 0x13, 0xa1, 0xd7, 0x80, 0xe1, 0x97, 0x3c, 0xea, 0xfc, - 0x5a, 0x41, 0x5b, 0xf3, 0x8f, 0x16, 0xbf, 0x8b, 0x16, 0x07, 0x7c, 0x10, 0x8c, 0x1d, 0xa2, 0xab, - 0xec, 0x45, 0x10, 0x58, 0xc7, 0x6a, 0x34, 0x70, 0x86, 0xd6, 0x27, 0xe7, 0x9f, 0x4d, 0xb6, 0x5a, - 0x96, 0xee, 0xdd, 0xb3, 0x11, 0x34, 0x75, 0x87, 0xa9, 0x11, 0x73, 0x8c, 0xed, 0xcc, 0xc8, 0xce, - 0x98, 0x75, 0x7a, 0xa8, 0x65, 0x5f, 0x32, 0xf0, 0x2e, 0xaa, 0x41, 0xf1, 0x32, 0xcd, 0x1e, 0x3c, - 0xa2, 0xbf, 0x3d, 0x78, 0xea, 0xd0, 0xe1, 0x79, 0x1c, 0xc5, 0x83, 0xf2, 0x82, 0x09, 0x2e, 0x36, - 0x12, 0xaf, 0x7c, 0x77, 0x7e, 0x59, 0x40, 0xed, 0x99, 0x3b, 0x07, 0x7e, 0x3a, 0x7b, 0x37, 0x7c, - 0x7d, 0x73, 0xbb, 0xa2, 0x6b, 0xa6, 0x65, 0x32, 0xdd, 0xc3, 0x99, 0x5b, 0xe2, 0xbc, 0x56, 0x51, - 0xfd, 0x37, 0x5a, 0xc5, 0xc2, 0xdb, 0xb5, 0x8a, 0xda, 0x9b, 0xb5, 0x8a, 0xdb, 0xa8, 0x65, 0xf5, - 0x04, 0x7d, 0xb7, 0x5d, 0xb8, 0xde, 0x74, 0x77, 0x0a, 0x45, 0xb6, 0x6c, 0xb9, 0x7d, 0x8f, 0x98, - 0x36, 0x0b, 0x71, 0x5e, 0xb7, 0xa8, 0xbf, 0x7d, 0xb7, 0x70, 0x6f, 0x3f, 0xff, 0x6b, 0xef, 0xc2, - 0xf3, 0x97, 0x7b, 0x95, 0x17, 0x2f, 0xf7, 0x2a, 0x7f, 0xbe, 0xdc, 0xab, 0x3c, 0xbd, 0x11, 0xc5, - 0xf2, 0xdb, 0x61, 0x7f, 0x3f, 0xe0, 0x69, 0x37, 0xca, 0xe9, 0x69, 0x6c, 0xe2, 0x99, 0x26, 0xdd, - 0xc9, 0xbf, 0x13, 0xcd, 0x62, 0xf3, 0xcb, 0xd4, 0xaf, 0xc3, 0x31, 0xde, 0xfa, 0x27, 0x00, 0x00, - 0xff, 0xff, 0xa5, 0xf8, 0xe6, 0x34, 0xba, 0x0d, 0x00, 0x00, + // 1424 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcb, 0x6e, 0xdb, 0x46, + 0x17, 0x8e, 0x2e, 0x96, 0xa5, 0x91, 0xe4, 0xd8, 0xe3, 0x1b, 0xe3, 0x38, 0x9e, 0x44, 0xff, 0x2d, + 0x7f, 0xd3, 0x5a, 0x48, 0x03, 0xb4, 0x40, 0x8a, 0xa0, 0x35, 0x93, 0x00, 0x0d, 0xd2, 0x04, 0x0a, + 0xed, 0x06, 0x45, 0x80, 0x82, 0x18, 0x91, 0x63, 0x96, 0x35, 0xa9, 0x61, 0x39, 0x23, 0x23, 0x02, + 0x0a, 0xf4, 0x15, 0xfa, 0x12, 0x7d, 0x84, 0xbe, 0x43, 0x96, 0xd9, 0x75, 0x51, 0x80, 0x6d, 0xb3, + 0xe4, 0xaa, 0xcb, 0x2e, 0x8b, 0x39, 0x43, 0x49, 0xc3, 0x58, 0x46, 0x82, 0xb6, 0x1b, 0x91, 0xfc, + 0xbe, 0x73, 0xbe, 0x19, 0x1e, 0x9e, 0xcb, 0x08, 0xf5, 0x24, 0x8b, 0x58, 0xc2, 0x53, 0xd9, 0x8f, + 0x58, 0x40, 0xbd, 0x49, 0x5f, 0x4e, 0x12, 0x26, 0xfa, 0x3e, 0x3b, 0x0d, 0x3d, 0xb6, 0x9f, 0xa4, + 0x5c, 0x72, 0xbc, 0x04, 0xd8, 0xce, 0x46, 0xc0, 0x03, 0x0e, 0x48, 0x5f, 0xdd, 0x69, 0x72, 0x87, + 0x04, 0x9c, 0x07, 0x11, 0xeb, 0xc3, 0xd3, 0x70, 0x7c, 0xdc, 0x97, 0x61, 0xcc, 0x84, 0xa4, 0x71, + 0x52, 0x18, 0x5c, 0x5b, 0xbc, 0x02, 0xfc, 0x6a, 0x93, 0xde, 0x73, 0xd4, 0xbc, 0x07, 0x0b, 0x3e, + 0xbd, 0x89, 0x3f, 0x42, 0x8d, 0x4f, 0x19, 0xf5, 0x59, 0x6a, 0x55, 0xae, 0x56, 0xae, 0xb7, 0xdf, + 0xdf, 0xdc, 0xd7, 0x96, 0x0e, 0x13, 0x7c, 0x9c, 0x7a, 0x4c, 0x93, 0x76, 0xe7, 0x45, 0x46, 0x2e, + 0xbc, 0xcc, 0x48, 0x25, 0xcf, 0xc8, 0x05, 0xa7, 0x70, 0xc1, 0x7d, 0x54, 0x17, 0x09, 0xf3, 0xac, + 0x25, 0x70, 0x5d, 0x2b, 0x5c, 0xb5, 0xf6, 0x61, 0xc2, 0x3c, 0xbb, 0x99, 0x67, 0x04, 0x4c, 0x1c, + 0xf8, 0xed, 0xfd, 0x51, 0x47, 0x68, 0x4e, 0xe3, 0x7f, 0xa3, 0x65, 0x2e, 0x5c, 0xe5, 0x05, 0xab, + 0xb7, 0xec, 0x76, 0x9e, 0x91, 0x29, 0xe4, 0x34, 0xb8, 0x38, 0x9a, 0x24, 0x0c, 0xbf, 0x83, 0x5a, + 0x54, 0x08, 0x26, 0x5d, 0x49, 0x03, 0xab, 0x0a, 0x76, 0xdd, 0x3c, 0x23, 0x73, 0xd0, 0x69, 0xc2, + 0xed, 0x11, 0x0d, 0xf0, 0x00, 0xb5, 0xbd, 0x94, 0x51, 0xc9, 0x5c, 0x15, 0x17, 0xab, 0x06, 0x1b, + 0xdb, 0xd9, 0xd7, 0x41, 0xdb, 0x9f, 0x06, 0x6d, 0xff, 0x68, 0x1a, 0x34, 0x7b, 0x3d, 0xcf, 0x88, + 0xe9, 0xf2, 0xfd, 0x2f, 0xa4, 0xe2, 0x20, 0x0d, 0x28, 0x2b, 0xa5, 0x38, 0x4e, 0xfc, 0x99, 0x62, + 0xfd, 0xed, 0x14, 0x0d, 0x17, 0xad, 0xa8, 0x01, 0x50, 0xfc, 0x00, 0x75, 0xd9, 0x28, 0xe5, 0x51, + 0xe4, 0x0a, 0x49, 0xe5, 0x58, 0x40, 0xf8, 0x5a, 0xf6, 0x5a, 0x9e, 0x91, 0x32, 0xe1, 0x74, 0xf4, + 0xe3, 0x21, 0x3c, 0xe1, 0x27, 0x48, 0xed, 0xcb, 0x67, 0x23, 0x19, 0xd2, 0xc8, 0x6a, 0xc0, 0x46, + 0xb6, 0x4b, 0x31, 0xbf, 0x3b, 0xa3, 0x6d, 0x2b, 0xcf, 0xc8, 0xc6, 0xdc, 0xfc, 0x5d, 0x1e, 0x87, + 0x92, 0xc5, 0x89, 0x9c, 0x38, 0x86, 0x08, 0x76, 0xd1, 0x8a, 0xc7, 0xa3, 0x88, 0x79, 0x92, 0xf9, + 0xae, 0x4f, 0x25, 0xb5, 0x96, 0xaf, 0xd6, 0xe0, 0xfd, 0x4a, 0xb2, 0x53, 0x93, 0x7b, 0x54, 0x52, + 0x7b, 0x37, 0xcf, 0x88, 0x55, 0xf6, 0x32, 0xd4, 0xbb, 0x9e, 0x69, 0x8c, 0x0f, 0x50, 0x43, 0xe7, + 0x91, 0xd5, 0x84, 0xfd, 0xae, 0x97, 0x73, 0x04, 0x28, 0x7b, 0x23, 0xcf, 0xc8, 0xaa, 0x36, 0x33, + 0x94, 0x0a, 0x47, 0x7c, 0x1f, 0x2d, 0x27, 0x29, 0x3f, 0x0e, 0x23, 0x66, 0xb5, 0x40, 0x63, 0xa3, + 0xa4, 0x31, 0xd0, 0x9c, 0xbd, 0x99, 0x67, 0x64, 0xad, 0x30, 0x34, 0x54, 0xa6, 0xbe, 0xbd, 0x9f, + 0xab, 0x68, 0xf5, 0xf5, 0x28, 0xe1, 0x2d, 0x54, 0x0d, 0xfd, 0x22, 0xf7, 0x1a, 0x79, 0x46, 0xaa, + 0xa1, 0xef, 0x54, 0x43, 0x1f, 0xdb, 0x68, 0x25, 0x19, 0x0f, 0xa3, 0xd0, 0x73, 0x4f, 0xd8, 0xc4, + 0x55, 0xd5, 0xa1, 0xf2, 0xae, 0xa3, 0xdf, 0xbd, 0xcc, 0x18, 0x6b, 0x75, 0x34, 0xf3, 0x90, 0x4d, + 0xee, 0xb1, 0x14, 0x7f, 0x89, 0xb6, 0x75, 0x59, 0xbb, 0x54, 0x4a, 0x95, 0x1b, 0x32, 0xe4, 0x23, + 0x9d, 0xec, 0x35, 0x58, 0xf0, 0x3f, 0x79, 0x46, 0xae, 0x9d, 0x63, 0x62, 0xa8, 0x6e, 0x6a, 0x93, + 0x83, 0xb9, 0x05, 0x54, 0xc5, 0x43, 0xb4, 0x26, 0x93, 0xd8, 0x65, 0x27, 0x1e, 0x4b, 0xa5, 0x2b, + 0x58, 0xaa, 0x92, 0xa2, 0x0e, 0xc2, 0x24, 0xcf, 0xc8, 0xe5, 0x33, 0xa4, 0x21, 0x79, 0x51, 0x26, + 0xf1, 0x7d, 0xe0, 0x0e, 0x81, 0xc2, 0x1f, 0xa3, 0xae, 0xb2, 0xa7, 0x27, 0xae, 0x7e, 0x05, 0x48, + 0xc9, 0x8e, 0x7d, 0x39, 0xcf, 0xc8, 0x76, 0x89, 0x30, 0x44, 0xda, 0x32, 0x89, 0x0f, 0x4e, 0x06, + 0x00, 0xf7, 0x7e, 0x6a, 0xa2, 0xf5, 0x05, 0xc9, 0x82, 0x0f, 0x51, 0xa7, 0x48, 0x08, 0x5d, 0x3e, + 0x95, 0x37, 0x96, 0x8f, 0x4a, 0x86, 0x92, 0x0f, 0xd4, 0x4f, 0xbb, 0x40, 0xa6, 0x25, 0x99, 0x32, + 0x8f, 0xa7, 0xbe, 0xd6, 0xac, 0xbe, 0x5d, 0x49, 0x1a, 0x2e, 0xba, 0x24, 0x35, 0x00, 0x8a, 0x46, + 0x23, 0xaa, 0x9d, 0xdf, 0x88, 0x3e, 0x41, 0x5d, 0x1d, 0x4a, 0x77, 0x34, 0x8e, 0x87, 0x2c, 0x2d, + 0xc2, 0x0d, 0x51, 0x2a, 0x11, 0x66, 0x4e, 0x68, 0xe2, 0x31, 0xe0, 0xf8, 0x01, 0x5a, 0x8d, 0xb9, + 0xcf, 0x22, 0x37, 0x84, 0x0c, 0x3c, 0x0e, 0x59, 0x5a, 0x54, 0xff, 0x5e, 0x9e, 0x91, 0x9d, 0xd7, + 0x39, 0xf3, 0x93, 0x01, 0xf7, 0x60, 0x46, 0xe1, 0x0f, 0x11, 0xe2, 0xc2, 0x3d, 0x65, 0xa9, 0x08, + 0xf9, 0x08, 0xba, 0x41, 0x4b, 0x17, 0xfd, 0x1c, 0x35, 0xdc, 0x5b, 0x5c, 0x3c, 0xd5, 0x20, 0xbe, + 0x89, 0x9a, 0x5c, 0xb8, 0xc3, 0x71, 0x18, 0xf9, 0xd6, 0x32, 0xb8, 0x6d, 0xe5, 0x19, 0xc1, 0x53, + 0xcc, 0xac, 0x1d, 0x2e, 0x6c, 0x05, 0xe1, 0xdb, 0xa8, 0xcd, 0x85, 0x3b, 0x16, 0x2c, 0x1d, 0xd1, + 0x58, 0x97, 0x72, 0xcb, 0xbe, 0x94, 0x67, 0x64, 0xd3, 0x80, 0xcd, 0x16, 0xc3, 0xc5, 0xe7, 0x05, + 0x8a, 0x9f, 0xa0, 0xf5, 0xaf, 0x69, 0x7c, 0xec, 0x0e, 0xc3, 0x11, 0x4d, 0x27, 0xb3, 0x0d, 0xb7, + 0x40, 0xe3, 0x5a, 0x9e, 0x91, 0x2b, 0x0b, 0x68, 0x43, 0x6b, 0x4d, 0xd1, 0x36, 0xb0, 0xd3, 0x37, + 0xf0, 0xd0, 0xa5, 0x98, 0x7a, 0x5c, 0xb8, 0xba, 0x3d, 0xc6, 0x6c, 0x24, 0xdd, 0xa2, 0xcc, 0x85, + 0x85, 0x40, 0xf8, 0x7f, 0x79, 0x46, 0xfe, 0x75, 0xae, 0x91, 0x21, 0xbf, 0x0d, 0x46, 0xf7, 0x67, + 0x36, 0x45, 0x3b, 0x11, 0xf8, 0x31, 0xc2, 0x29, 0xcc, 0x51, 0xe6, 0xbb, 0xf3, 0xf1, 0xd3, 0x06, + 0xf5, 0xab, 0x79, 0x46, 0x76, 0xcf, 0xb2, 0x86, 0xec, 0xea, 0x94, 0x3d, 0x98, 0x4e, 0xa6, 0x23, + 0xb4, 0x21, 0x26, 0x42, 0xb2, 0xd8, 0x2d, 0xe7, 0x50, 0x07, 0x14, 0x7b, 0x79, 0x46, 0xf6, 0x16, + 0xf1, 0x86, 0x26, 0xd6, 0xfc, 0xa1, 0x99, 0x50, 0x2e, 0xb2, 0x86, 0x54, 0x30, 0x77, 0xc8, 0x69, + 0xea, 0xbf, 0xa6, 0xdc, 0x05, 0xe5, 0xff, 0xe6, 0x19, 0xe9, 0x9d, 0x67, 0x63, 0xb6, 0x19, 0x65, + 0x63, 0x2b, 0x93, 0xd2, 0x02, 0xdf, 0x21, 0x4b, 0x35, 0x80, 0x24, 0xa2, 0xf2, 0x98, 0xa7, 0xb1, + 0xd9, 0xa8, 0xac, 0x15, 0x28, 0xbc, 0x2b, 0x45, 0x3b, 0x3e, 0x1a, 0x3c, 0x1a, 0x14, 0x56, 0x46, + 0xaf, 0xd2, 0xeb, 0x9f, 0x27, 0x61, 0xac, 0xbf, 0x25, 0x93, 0x78, 0x81, 0x7f, 0xef, 0x5b, 0xd4, + 0x50, 0xca, 0x77, 0x1d, 0x4c, 0xd0, 0x52, 0x38, 0xf2, 0xd9, 0x73, 0x68, 0x22, 0x4b, 0x76, 0x2b, + 0xcf, 0x88, 0x06, 0x1c, 0x7d, 0xc1, 0x3d, 0xd4, 0xf0, 0xc3, 0x80, 0x09, 0x59, 0x74, 0x6b, 0x94, + 0x67, 0xa4, 0x40, 0x9c, 0xe2, 0x8a, 0xdf, 0x43, 0x48, 0xdf, 0xb9, 0x34, 0x0a, 0xa0, 0xd8, 0xeb, + 0xf6, 0x4a, 0x9e, 0x11, 0x03, 0x75, 0x5a, 0xfa, 0xfe, 0x20, 0x0a, 0x7a, 0x5f, 0xa0, 0xe6, 0xd1, + 0xe0, 0xd1, 0x93, 0x31, 0x97, 0x4c, 0xad, 0xff, 0x8d, 0xba, 0x81, 0xf5, 0x3b, 0x7a, 0x7d, 0x00, + 0x1c, 0x7d, 0xc1, 0x37, 0x50, 0x4b, 0x84, 0xc1, 0x88, 0xca, 0x71, 0xca, 0x8a, 0x2d, 0xc0, 0x41, + 0x65, 0x06, 0x3a, 0xf3, 0xdb, 0xde, 0x0f, 0x15, 0xb4, 0x69, 0x84, 0x6c, 0x40, 0x53, 0x1a, 0x33, + 0xc9, 0x52, 0x81, 0x6f, 0xa1, 0x06, 0xe8, 0x09, 0xab, 0x02, 0xc3, 0xf8, 0xe2, 0x3c, 0xc0, 0xb0, + 0x11, 0xfd, 0x5e, 0xda, 0xc4, 0x29, 0xae, 0xf8, 0x06, 0xaa, 0x27, 0x5e, 0x2a, 0xac, 0x2a, 0xb8, + 0x74, 0x8d, 0x6f, 0x72, 0xd7, 0xd1, 0xc7, 0x30, 0x45, 0x3b, 0xf0, 0xab, 0x4e, 0x54, 0xec, 0x54, + 0x15, 0x44, 0xc4, 0x75, 0x0c, 0x8a, 0x8d, 0xce, 0x40, 0xa7, 0x09, 0xb7, 0x9f, 0xf1, 0xa0, 0xf7, + 0x63, 0x05, 0x6d, 0x2d, 0xfe, 0xb4, 0xf8, 0xff, 0x68, 0x69, 0xc4, 0x47, 0xde, 0x34, 0x20, 0xaa, + 0xcb, 0x5e, 0x04, 0xc0, 0xf8, 0xac, 0xda, 0x02, 0x27, 0x68, 0x7d, 0xf6, 0xfd, 0x93, 0xd9, 0xab, + 0x16, 0xad, 0x7b, 0xf7, 0x6c, 0x06, 0xcd, 0xc3, 0xa1, 0x7b, 0xc4, 0x02, 0x67, 0xb3, 0x32, 0x92, + 0x33, 0x6e, 0xbd, 0x01, 0xea, 0x98, 0x87, 0x0c, 0xbc, 0x8b, 0xea, 0xd0, 0xbc, 0xf4, 0xb0, 0x87, + 0x88, 0xa8, 0x67, 0x07, 0x7e, 0x55, 0xea, 0xf0, 0x34, 0x0c, 0xc2, 0x51, 0x71, 0xc0, 0x84, 0x10, + 0x6b, 0xc4, 0x29, 0xae, 0xbd, 0xdf, 0x6b, 0xa8, 0x5b, 0x3a, 0x73, 0xe0, 0x67, 0xe5, 0xb3, 0xe1, + 0x9b, 0x87, 0xdb, 0x15, 0xd5, 0x33, 0x0d, 0x97, 0xf9, 0x3b, 0x9c, 0x39, 0x25, 0x2e, 0x1a, 0x15, + 0xd5, 0x7f, 0x62, 0x54, 0xd4, 0xfe, 0xda, 0xa8, 0xa8, 0xbf, 0xdd, 0xa8, 0xb8, 0x83, 0x3a, 0xc6, + 0x4c, 0x50, 0x67, 0xdb, 0xda, 0xf5, 0x96, 0xbd, 0x93, 0x67, 0x64, 0xcb, 0xc4, 0xcd, 0x73, 0xc4, + 0x7c, 0x58, 0x88, 0xf3, 0xa6, 0x45, 0xe3, 0x6f, 0x4c, 0x8b, 0xdb, 0xa8, 0xcd, 0x9e, 0x4b, 0xb5, + 0x80, 0x8a, 0x57, 0x31, 0xf2, 0x60, 0x78, 0x19, 0xb0, 0x39, 0xbc, 0xa6, 0xf0, 0x03, 0xdf, 0xbe, + 0xf3, 0xe2, 0xb7, 0xbd, 0x0b, 0x2f, 0x5e, 0xed, 0x55, 0x5e, 0xbe, 0xda, 0xab, 0xfc, 0xfa, 0x6a, + 0xaf, 0xf2, 0xec, 0x46, 0x10, 0xca, 0xaf, 0xc6, 0xc3, 0x7d, 0x8f, 0xc7, 0xfd, 0x20, 0xa5, 0xa7, + 0xa1, 0xae, 0x05, 0x1a, 0xf5, 0x67, 0xff, 0xbb, 0x68, 0x12, 0xea, 0xbf, 0x5b, 0xc3, 0x06, 0xa4, + 0xc0, 0xad, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc1, 0xeb, 0xe3, 0xf6, 0x0d, 0x00, 0x00, } func (m *DeviceV1) Marshal() (dAtA []byte, err error) { @@ -1222,6 +1224,13 @@ func (m *DeviceProfile) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.ExternalId) > 0 { + i -= len(m.ExternalId) + copy(dAtA[i:], m.ExternalId) + i = encodeVarintDevice(dAtA, i, uint64(len(m.ExternalId))) + i-- + dAtA[i] = 0x3a + } if len(m.JamfBinaryVersion) > 0 { i -= len(m.JamfBinaryVersion) copy(dAtA[i:], m.JamfBinaryVersion) @@ -1593,6 +1602,10 @@ func (m *DeviceProfile) Size() (n int) { if l > 0 { n += 1 + l + sovDevice(uint64(l)) } + l = len(m.ExternalId) + if l > 0 { + n += 1 + l + sovDevice(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -3668,6 +3681,38 @@ func (m *DeviceProfile) Unmarshal(dAtA []byte) error { } m.JamfBinaryVersion = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDevice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDevice + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDevice + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExternalId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDevice(dAtA[iNdEx:]) diff --git a/api/types/device_test.go b/api/types/device_test.go index 0cc21fadec433..48479664fd1d0 100644 --- a/api/types/device_test.go +++ b/api/types/device_test.go @@ -113,6 +113,7 @@ func TestDeviceConversions_toAndFrom(t *testing.T) { OsBuild: "22D68", OsUsernames: []string{"admin", "llama"}, JamfBinaryVersion: "9.27", + ExternalId: "99", }, } diff --git a/api/types/types.pb.go b/api/types/types.pb.go index c3dd1bb42883f..78287d734959c 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -15507,8 +15507,8 @@ type JamfSpecV1 struct { // Set to negative to perform syncs immediately on startup. // Defaults to a random delay (a few minutes max). SyncDelay Duration `protobuf:"varint,3,opt,name=sync_delay,json=syncDelay,proto3,casttype=Duration" json:"sync_delay,omitempty"` - // Jamf API endpoint. - // Example: "https://yourtenant.jamfcloud.com". + // Jamf Pro API endpoint. + // Example: "https://yourtenant.jamfcloud.com/api". // Required. ApiEndpoint string `protobuf:"bytes,4,opt,name=api_endpoint,json=apiEndpoint,proto3" json:"api_endpoint,omitempty"` // Jamf API username. diff --git a/lib/config/fileconf.go b/lib/config/fileconf.go index a291e5e90c579..b6351cb75453d 100644 --- a/lib/config/fileconf.go +++ b/lib/config/fileconf.go @@ -2425,7 +2425,7 @@ type JamfService struct { // ExitOnSync tells the service to exit immediately after the first sync. ExitOnSync bool `yaml:"exit_on_sync,omitempty"` // APIEndpoint is the Jamf Pro API endpoint. - // Example: "https://yourtenant.jamfcloud.com". + // Example: "https://yourtenant.jamfcloud.com/api". APIEndpoint string `yaml:"api_endpoint,omitempty"` // Username is the Jamf Pro API username. Username string `yaml:"username,omitempty"`