diff --git a/CHANGELOG.md b/CHANGELOG.md index 80d47f15..f1141cba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## [Unreleased](https://github.com/micromdm/micromdm/compare/v1.10.1...main) -This release is eagerly awaiting *your* awesome contribution! +- Add SoftwareUpdateSettings to Settings command (#771, #856) ## [v1.10.1](https://github.com/micromdm/micromdm/compare/v1.10.0...v1.10.1) January 24, 2023 diff --git a/mdm/mdm/command.go b/mdm/mdm/command.go index 2d03a49d..203616cf 100644 --- a/mdm/mdm/command.go +++ b/mdm/mdm/command.go @@ -234,6 +234,7 @@ type Setting struct { MDMOptions map[string]interface{} `plist:",omitempty" json:"mdm_options,omitempty"` PasscodeLockGracePeriod *int `plist:",omitempty" json:"passcode_lock_grace_period,omitempty"` MaximumResidentUsers *int `plist:",omitempty" json:"maximum_resident_users,omitempty"` + RecommendationCadence *int `plist:",omitempty" json:"recommendation_cadence,omitempty"` Configuration map[string]interface{} `plist:",omitempty" json:"-"` ConfigurationData []byte `plist:"-" json:"configuration"` // used to build the dictionary } diff --git a/mdm/mdm/internal/mdmproto/mdm.pb.go b/mdm/mdm/internal/mdmproto/mdm.pb.go index fbf769c4..453ba072 100644 --- a/mdm/mdm/internal/mdmproto/mdm.pb.go +++ b/mdm/mdm/internal/mdmproto/mdm.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.28.1 // protoc v3.21.2 // source: mdm.proto @@ -72,7 +72,7 @@ func (x ResultPayload_Status) Number() protoreflect.EnumNumber { // Deprecated: Use ResultPayload_Status.Descriptor instead. func (ResultPayload_Status) EnumDescriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{71, 0} + return file_mdm_proto_rawDescGZIP(), []int{72, 0} } type CommandPayload struct { @@ -136,31 +136,31 @@ type Command struct { unknownFields protoimpl.UnknownFields RequestType string `protobuf:"bytes,1,opt,name=request_type,json=requestType,proto3" json:"request_type,omitempty"` - // - //Request Types that do not have additional fields: - //- ProfileList - //- ProvisioningProfileList - //- CertificateList", - //- SecurityInfo - //- RestartDevice - //- LOMSetupRequest - //- ShutDownDevice - //- StopMirroring - //- ClearRestrictionsPassword - //- UserList - //- LogOutUser - //- PlayLostModeSound - //- DisableLostMode - //- DeviceLocation - //- ManagedMediaList - //- DeviceConfigured - //- AvailableOSUpdates - //- NSExtensionMappings - //- EnableRemoteDesktop - //- DisableRemoteDesktop - //- ActivationLockBypassCode + // Request Types that do not have additional fields: + // - ProfileList + // - ProvisioningProfileList + // - CertificateList", + // - SecurityInfo + // - RestartDevice + // - LOMSetupRequest + // - ShutDownDevice + // - StopMirroring + // - ClearRestrictionsPassword + // - UserList + // - LogOutUser + // - PlayLostModeSound + // - DisableLostMode + // - DeviceLocation + // - ManagedMediaList + // - DeviceConfigured + // - AvailableOSUpdates + // - NSExtensionMappings + // - EnableRemoteDesktop + // - DisableRemoteDesktop + // - ActivationLockBypassCode // // Types that are assignable to Request: + // // *Command_InstallProfile // *Command_RemoveProfile // *Command_InstallProvisioningProfile @@ -2901,6 +2901,7 @@ type Setting struct { AppAnalytics *AppAnalyticsSetting `protobuf:"bytes,14,opt,name=app_analytics,json=appAnalytics,proto3" json:"app_analytics,omitempty"` ApplicationConfiguration *ApplicationConfigurationSetting `protobuf:"bytes,15,opt,name=application_configuration,json=applicationConfiguration,proto3" json:"application_configuration,omitempty"` TimeZone *TimeZoneSetting `protobuf:"bytes,16,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` + SoftwareUpdateSettings *SoftwareUpdateSettingsSetting `protobuf:"bytes,17,opt,name=software_update_settings,json=softwareUpdateSettings,proto3" json:"software_update_settings,omitempty"` } func (x *Setting) Reset() { @@ -3047,6 +3048,13 @@ func (x *Setting) GetTimeZone() *TimeZoneSetting { return nil } +func (x *Setting) GetSoftwareUpdateSettings() *SoftwareUpdateSettingsSetting { + if x != nil { + return x.SoftwareUpdateSettings + } + return nil +} + type VoiceRoamingSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3541,6 +3549,53 @@ func (x *TimeZoneSetting) GetTimeZone() string { return "" } +type SoftwareUpdateSettingsSetting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RecommendationCadence int64 `protobuf:"varint,1,opt,name=recommendation_cadence,json=recommendationCadence,proto3" json:"recommendation_cadence,omitempty"` +} + +func (x *SoftwareUpdateSettingsSetting) Reset() { + *x = SoftwareUpdateSettingsSetting{} + if protoimpl.UnsafeEnabled { + mi := &file_mdm_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SoftwareUpdateSettingsSetting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SoftwareUpdateSettingsSetting) ProtoMessage() {} + +func (x *SoftwareUpdateSettingsSetting) ProtoReflect() protoreflect.Message { + mi := &file_mdm_proto_msgTypes[49] + 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 SoftwareUpdateSettingsSetting.ProtoReflect.Descriptor instead. +func (*SoftwareUpdateSettingsSetting) Descriptor() ([]byte, []int) { + return file_mdm_proto_rawDescGZIP(), []int{49} +} + +func (x *SoftwareUpdateSettingsSetting) GetRecommendationCadence() int64 { + if x != nil { + return x.RecommendationCadence + } + return 0 +} + type HostnameSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3552,7 +3607,7 @@ type HostnameSetting struct { func (x *HostnameSetting) Reset() { *x = HostnameSetting{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[49] + mi := &file_mdm_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3565,7 +3620,7 @@ func (x *HostnameSetting) String() string { func (*HostnameSetting) ProtoMessage() {} func (x *HostnameSetting) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[49] + mi := &file_mdm_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3578,7 +3633,7 @@ func (x *HostnameSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use HostnameSetting.ProtoReflect.Descriptor instead. func (*HostnameSetting) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{49} + return file_mdm_proto_rawDescGZIP(), []int{50} } func (x *HostnameSetting) GetHostname() string { @@ -3599,7 +3654,7 @@ type MDMOptionsSetting struct { func (x *MDMOptionsSetting) Reset() { *x = MDMOptionsSetting{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[50] + mi := &file_mdm_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3612,7 +3667,7 @@ func (x *MDMOptionsSetting) String() string { func (*MDMOptionsSetting) ProtoMessage() {} func (x *MDMOptionsSetting) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[50] + mi := &file_mdm_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3625,7 +3680,7 @@ func (x *MDMOptionsSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use MDMOptionsSetting.ProtoReflect.Descriptor instead. func (*MDMOptionsSetting) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{50} + return file_mdm_proto_rawDescGZIP(), []int{51} } func (x *MDMOptionsSetting) GetMdmOptions() *MDMOptions { @@ -3648,7 +3703,7 @@ type MDMOptions struct { func (x *MDMOptions) Reset() { *x = MDMOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[51] + mi := &file_mdm_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3661,7 +3716,7 @@ func (x *MDMOptions) String() string { func (*MDMOptions) ProtoMessage() {} func (x *MDMOptions) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[51] + mi := &file_mdm_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3674,7 +3729,7 @@ func (x *MDMOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use MDMOptions.ProtoReflect.Descriptor instead. func (*MDMOptions) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{51} + return file_mdm_proto_rawDescGZIP(), []int{52} } func (x *MDMOptions) GetActivationLockAllowedWhileSupervised() bool { @@ -3709,7 +3764,7 @@ type PasscodeLockGracePeriodSetting struct { func (x *PasscodeLockGracePeriodSetting) Reset() { *x = PasscodeLockGracePeriodSetting{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[52] + mi := &file_mdm_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3722,7 +3777,7 @@ func (x *PasscodeLockGracePeriodSetting) String() string { func (*PasscodeLockGracePeriodSetting) ProtoMessage() {} func (x *PasscodeLockGracePeriodSetting) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[52] + mi := &file_mdm_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3735,7 +3790,7 @@ func (x *PasscodeLockGracePeriodSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use PasscodeLockGracePeriodSetting.ProtoReflect.Descriptor instead. func (*PasscodeLockGracePeriodSetting) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{52} + return file_mdm_proto_rawDescGZIP(), []int{53} } func (x *PasscodeLockGracePeriodSetting) GetPasscodeLockGracePeriod() int64 { @@ -3756,7 +3811,7 @@ type MaximumResidentUsersSetting struct { func (x *MaximumResidentUsersSetting) Reset() { *x = MaximumResidentUsersSetting{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[53] + mi := &file_mdm_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3769,7 +3824,7 @@ func (x *MaximumResidentUsersSetting) String() string { func (*MaximumResidentUsersSetting) ProtoMessage() {} func (x *MaximumResidentUsersSetting) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[53] + mi := &file_mdm_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3782,7 +3837,7 @@ func (x *MaximumResidentUsersSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use MaximumResidentUsersSetting.ProtoReflect.Descriptor instead. func (*MaximumResidentUsersSetting) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{53} + return file_mdm_proto_rawDescGZIP(), []int{54} } func (x *MaximumResidentUsersSetting) GetMaximumResidentUsers() int64 { @@ -3803,7 +3858,7 @@ type DiagnosticSubmissionSetting struct { func (x *DiagnosticSubmissionSetting) Reset() { *x = DiagnosticSubmissionSetting{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[54] + mi := &file_mdm_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3816,7 +3871,7 @@ func (x *DiagnosticSubmissionSetting) String() string { func (*DiagnosticSubmissionSetting) ProtoMessage() {} func (x *DiagnosticSubmissionSetting) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[54] + mi := &file_mdm_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3829,7 +3884,7 @@ func (x *DiagnosticSubmissionSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use DiagnosticSubmissionSetting.ProtoReflect.Descriptor instead. func (*DiagnosticSubmissionSetting) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{54} + return file_mdm_proto_rawDescGZIP(), []int{55} } func (x *DiagnosticSubmissionSetting) GetEnabled() bool { @@ -3850,7 +3905,7 @@ type AppAnalyticsSetting struct { func (x *AppAnalyticsSetting) Reset() { *x = AppAnalyticsSetting{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[55] + mi := &file_mdm_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3863,7 +3918,7 @@ func (x *AppAnalyticsSetting) String() string { func (*AppAnalyticsSetting) ProtoMessage() {} func (x *AppAnalyticsSetting) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[55] + mi := &file_mdm_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3876,7 +3931,7 @@ func (x *AppAnalyticsSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use AppAnalyticsSetting.ProtoReflect.Descriptor instead. func (*AppAnalyticsSetting) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{55} + return file_mdm_proto_rawDescGZIP(), []int{56} } func (x *AppAnalyticsSetting) GetEnabled() bool { @@ -3897,7 +3952,7 @@ type ManagedApplicationConfiguration struct { func (x *ManagedApplicationConfiguration) Reset() { *x = ManagedApplicationConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[56] + mi := &file_mdm_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3910,7 +3965,7 @@ func (x *ManagedApplicationConfiguration) String() string { func (*ManagedApplicationConfiguration) ProtoMessage() {} func (x *ManagedApplicationConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[56] + mi := &file_mdm_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3923,7 +3978,7 @@ func (x *ManagedApplicationConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use ManagedApplicationConfiguration.ProtoReflect.Descriptor instead. func (*ManagedApplicationConfiguration) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{56} + return file_mdm_proto_rawDescGZIP(), []int{57} } func (x *ManagedApplicationConfiguration) GetIdentifiers() []string { @@ -3944,7 +3999,7 @@ type ManagedApplicationAttributes struct { func (x *ManagedApplicationAttributes) Reset() { *x = ManagedApplicationAttributes{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[57] + mi := &file_mdm_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3957,7 +4012,7 @@ func (x *ManagedApplicationAttributes) String() string { func (*ManagedApplicationAttributes) ProtoMessage() {} func (x *ManagedApplicationAttributes) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[57] + mi := &file_mdm_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3970,7 +4025,7 @@ func (x *ManagedApplicationAttributes) ProtoReflect() protoreflect.Message { // Deprecated: Use ManagedApplicationAttributes.ProtoReflect.Descriptor instead. func (*ManagedApplicationAttributes) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{57} + return file_mdm_proto_rawDescGZIP(), []int{58} } func (x *ManagedApplicationAttributes) GetIdentifiers() []string { @@ -3992,7 +4047,7 @@ type ManagedApplicationFeedback struct { func (x *ManagedApplicationFeedback) Reset() { *x = ManagedApplicationFeedback{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[58] + mi := &file_mdm_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4005,7 +4060,7 @@ func (x *ManagedApplicationFeedback) String() string { func (*ManagedApplicationFeedback) ProtoMessage() {} func (x *ManagedApplicationFeedback) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[58] + mi := &file_mdm_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4018,7 +4073,7 @@ func (x *ManagedApplicationFeedback) ProtoReflect() protoreflect.Message { // Deprecated: Use ManagedApplicationFeedback.ProtoReflect.Descriptor instead. func (*ManagedApplicationFeedback) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{58} + return file_mdm_proto_rawDescGZIP(), []int{59} } func (x *ManagedApplicationFeedback) GetIdentifiers() []string { @@ -4049,7 +4104,7 @@ type SetFirmwarePassword struct { func (x *SetFirmwarePassword) Reset() { *x = SetFirmwarePassword{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[59] + mi := &file_mdm_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4062,7 +4117,7 @@ func (x *SetFirmwarePassword) String() string { func (*SetFirmwarePassword) ProtoMessage() {} func (x *SetFirmwarePassword) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[59] + mi := &file_mdm_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4075,7 +4130,7 @@ func (x *SetFirmwarePassword) ProtoReflect() protoreflect.Message { // Deprecated: Use SetFirmwarePassword.ProtoReflect.Descriptor instead. func (*SetFirmwarePassword) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{59} + return file_mdm_proto_rawDescGZIP(), []int{60} } func (x *SetFirmwarePassword) GetCurrentPassword() string { @@ -4117,7 +4172,7 @@ type VerifyFirmwarePassword struct { func (x *VerifyFirmwarePassword) Reset() { *x = VerifyFirmwarePassword{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[60] + mi := &file_mdm_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4130,7 +4185,7 @@ func (x *VerifyFirmwarePassword) String() string { func (*VerifyFirmwarePassword) ProtoMessage() {} func (x *VerifyFirmwarePassword) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[60] + mi := &file_mdm_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4143,7 +4198,7 @@ func (x *VerifyFirmwarePassword) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyFirmwarePassword.ProtoReflect.Descriptor instead. func (*VerifyFirmwarePassword) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{60} + return file_mdm_proto_rawDescGZIP(), []int{61} } func (x *VerifyFirmwarePassword) GetPassword() string { @@ -4167,7 +4222,7 @@ type SetRecoveryLock struct { func (x *SetRecoveryLock) Reset() { *x = SetRecoveryLock{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[61] + mi := &file_mdm_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4180,7 +4235,7 @@ func (x *SetRecoveryLock) String() string { func (*SetRecoveryLock) ProtoMessage() {} func (x *SetRecoveryLock) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[61] + mi := &file_mdm_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4193,7 +4248,7 @@ func (x *SetRecoveryLock) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRecoveryLock.ProtoReflect.Descriptor instead. func (*SetRecoveryLock) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{61} + return file_mdm_proto_rawDescGZIP(), []int{62} } func (x *SetRecoveryLock) GetCurrentPassword() string { @@ -4235,7 +4290,7 @@ type VerifyRecoveryLock struct { func (x *VerifyRecoveryLock) Reset() { *x = VerifyRecoveryLock{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[62] + mi := &file_mdm_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4248,7 +4303,7 @@ func (x *VerifyRecoveryLock) String() string { func (*VerifyRecoveryLock) ProtoMessage() {} func (x *VerifyRecoveryLock) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[62] + mi := &file_mdm_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4261,7 +4316,7 @@ func (x *VerifyRecoveryLock) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyRecoveryLock.ProtoReflect.Descriptor instead. func (*VerifyRecoveryLock) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{62} + return file_mdm_proto_rawDescGZIP(), []int{63} } func (x *VerifyRecoveryLock) GetPassword() string { @@ -4283,7 +4338,7 @@ type SetAutoAdminPassword struct { func (x *SetAutoAdminPassword) Reset() { *x = SetAutoAdminPassword{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[63] + mi := &file_mdm_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4296,7 +4351,7 @@ func (x *SetAutoAdminPassword) String() string { func (*SetAutoAdminPassword) ProtoMessage() {} func (x *SetAutoAdminPassword) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[63] + mi := &file_mdm_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4309,7 +4364,7 @@ func (x *SetAutoAdminPassword) ProtoReflect() protoreflect.Message { // Deprecated: Use SetAutoAdminPassword.ProtoReflect.Descriptor instead. func (*SetAutoAdminPassword) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{63} + return file_mdm_proto_rawDescGZIP(), []int{64} } func (x *SetAutoAdminPassword) GetGuid() string { @@ -4337,7 +4392,7 @@ type ScheduleOSUpdate struct { func (x *ScheduleOSUpdate) Reset() { *x = ScheduleOSUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[64] + mi := &file_mdm_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4350,7 +4405,7 @@ func (x *ScheduleOSUpdate) String() string { func (*ScheduleOSUpdate) ProtoMessage() {} func (x *ScheduleOSUpdate) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[64] + mi := &file_mdm_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4363,7 +4418,7 @@ func (x *ScheduleOSUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use ScheduleOSUpdate.ProtoReflect.Descriptor instead. func (*ScheduleOSUpdate) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{64} + return file_mdm_proto_rawDescGZIP(), []int{65} } func (x *ScheduleOSUpdate) GetUpdates() []*Update { @@ -4388,7 +4443,7 @@ type Update struct { func (x *Update) Reset() { *x = Update{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[65] + mi := &file_mdm_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4401,7 +4456,7 @@ func (x *Update) String() string { func (*Update) ProtoMessage() {} func (x *Update) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[65] + mi := &file_mdm_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4414,7 +4469,7 @@ func (x *Update) ProtoReflect() protoreflect.Message { // Deprecated: Use Update.ProtoReflect.Descriptor instead. func (*Update) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{65} + return file_mdm_proto_rawDescGZIP(), []int{66} } func (x *Update) GetProductKey() string { @@ -4463,7 +4518,7 @@ type ScheduleOSUpdateScan struct { func (x *ScheduleOSUpdateScan) Reset() { *x = ScheduleOSUpdateScan{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[66] + mi := &file_mdm_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4476,7 +4531,7 @@ func (x *ScheduleOSUpdateScan) String() string { func (*ScheduleOSUpdateScan) ProtoMessage() {} func (x *ScheduleOSUpdateScan) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[66] + mi := &file_mdm_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4489,7 +4544,7 @@ func (x *ScheduleOSUpdateScan) ProtoReflect() protoreflect.Message { // Deprecated: Use ScheduleOSUpdateScan.ProtoReflect.Descriptor instead. func (*ScheduleOSUpdateScan) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{66} + return file_mdm_proto_rawDescGZIP(), []int{67} } func (x *ScheduleOSUpdateScan) GetForce() bool { @@ -4510,7 +4565,7 @@ type ActiveNSExtensions struct { func (x *ActiveNSExtensions) Reset() { *x = ActiveNSExtensions{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[67] + mi := &file_mdm_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4523,7 +4578,7 @@ func (x *ActiveNSExtensions) String() string { func (*ActiveNSExtensions) ProtoMessage() {} func (x *ActiveNSExtensions) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[67] + mi := &file_mdm_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4536,7 +4591,7 @@ func (x *ActiveNSExtensions) ProtoReflect() protoreflect.Message { // Deprecated: Use ActiveNSExtensions.ProtoReflect.Descriptor instead. func (*ActiveNSExtensions) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{67} + return file_mdm_proto_rawDescGZIP(), []int{68} } func (x *ActiveNSExtensions) GetFilterExtensionPoints() []string { @@ -4560,7 +4615,7 @@ type RotateFileVaultKey struct { func (x *RotateFileVaultKey) Reset() { *x = RotateFileVaultKey{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[68] + mi := &file_mdm_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4573,7 +4628,7 @@ func (x *RotateFileVaultKey) String() string { func (*RotateFileVaultKey) ProtoMessage() {} func (x *RotateFileVaultKey) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[68] + mi := &file_mdm_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4586,7 +4641,7 @@ func (x *RotateFileVaultKey) ProtoReflect() protoreflect.Message { // Deprecated: Use RotateFileVaultKey.ProtoReflect.Descriptor instead. func (*RotateFileVaultKey) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{68} + return file_mdm_proto_rawDescGZIP(), []int{69} } func (x *RotateFileVaultKey) GetKeyType() string { @@ -4630,7 +4685,7 @@ type FileVaultUnlock struct { func (x *FileVaultUnlock) Reset() { *x = FileVaultUnlock{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[69] + mi := &file_mdm_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4643,7 +4698,7 @@ func (x *FileVaultUnlock) String() string { func (*FileVaultUnlock) ProtoMessage() {} func (x *FileVaultUnlock) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[69] + mi := &file_mdm_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4656,7 +4711,7 @@ func (x *FileVaultUnlock) ProtoReflect() protoreflect.Message { // Deprecated: Use FileVaultUnlock.ProtoReflect.Descriptor instead. func (*FileVaultUnlock) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{69} + return file_mdm_proto_rawDescGZIP(), []int{70} } func (x *FileVaultUnlock) GetPassword() string { @@ -4691,7 +4746,7 @@ type SetBootstrapToken struct { func (x *SetBootstrapToken) Reset() { *x = SetBootstrapToken{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[70] + mi := &file_mdm_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4704,7 +4759,7 @@ func (x *SetBootstrapToken) String() string { func (*SetBootstrapToken) ProtoMessage() {} func (x *SetBootstrapToken) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[70] + mi := &file_mdm_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4717,7 +4772,7 @@ func (x *SetBootstrapToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SetBootstrapToken.ProtoReflect.Descriptor instead. func (*SetBootstrapToken) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{70} + return file_mdm_proto_rawDescGZIP(), []int{71} } func (x *SetBootstrapToken) GetBootstrapToken() string { @@ -4740,7 +4795,7 @@ type ResultPayload struct { func (x *ResultPayload) Reset() { *x = ResultPayload{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[71] + mi := &file_mdm_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4753,7 +4808,7 @@ func (x *ResultPayload) String() string { func (*ResultPayload) ProtoMessage() {} func (x *ResultPayload) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[71] + mi := &file_mdm_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4766,7 +4821,7 @@ func (x *ResultPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use ResultPayload.ProtoReflect.Descriptor instead. func (*ResultPayload) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{71} + return file_mdm_proto_rawDescGZIP(), []int{72} } func (x *ResultPayload) GetUdid() string { @@ -4807,7 +4862,7 @@ type ErrorChain struct { func (x *ErrorChain) Reset() { *x = ErrorChain{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[72] + mi := &file_mdm_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4820,7 +4875,7 @@ func (x *ErrorChain) String() string { func (*ErrorChain) ProtoMessage() {} func (x *ErrorChain) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[72] + mi := &file_mdm_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4833,7 +4888,7 @@ func (x *ErrorChain) ProtoReflect() protoreflect.Message { // Deprecated: Use ErrorChain.ProtoReflect.Descriptor instead. func (*ErrorChain) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{72} + return file_mdm_proto_rawDescGZIP(), []int{73} } func (x *ErrorChain) GetLocalizedDescription() string { @@ -4875,7 +4930,7 @@ type RefreshCellularPlans struct { func (x *RefreshCellularPlans) Reset() { *x = RefreshCellularPlans{} if protoimpl.UnsafeEnabled { - mi := &file_mdm_proto_msgTypes[73] + mi := &file_mdm_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4888,7 +4943,7 @@ func (x *RefreshCellularPlans) String() string { func (*RefreshCellularPlans) ProtoMessage() {} func (x *RefreshCellularPlans) ProtoReflect() protoreflect.Message { - mi := &file_mdm_proto_msgTypes[73] + mi := &file_mdm_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4901,7 +4956,7 @@ func (x *RefreshCellularPlans) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshCellularPlans.ProtoReflect.Descriptor instead. func (*RefreshCellularPlans) Descriptor() ([]byte, []int) { - return file_mdm_proto_rawDescGZIP(), []int{73} + return file_mdm_proto_rawDescGZIP(), []int{74} } func (x *RefreshCellularPlans) GetEsimServerUrl() string { @@ -5404,7 +5459,7 @@ var file_mdm_proto_rawDesc = []byte{ 0x0a, 0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2d, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, - 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xf9, 0x08, 0x0a, 0x07, 0x53, 0x65, + 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xdc, 0x09, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, @@ -5476,231 +5531,242 @@ var file_mdm_proto_rawDesc = []byte{ 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x74, 0x69, 0x6d, - 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x22, 0x2f, 0x0a, 0x13, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x6f, - 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x32, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, - 0x61, 0x6c, 0x48, 0x6f, 0x74, 0x73, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x3e, 0x0a, 0x10, 0x57, 0x61, - 0x6c, 0x6c, 0x70, 0x61, 0x70, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x68, 0x65, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x68, 0x65, 0x72, 0x65, 0x22, 0x2e, 0x0a, 0x12, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x10, 0x42, 0x6c, - 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x16, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x64, 0x6d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x15, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, - 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1b, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x15, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x70, 0x6e, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x70, 0x6e, 0x55, 0x75, 0x69, 0x64, 0x22, 0x34, 0x0a, - 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x2e, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, - 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, - 0x6f, 0x6e, 0x65, 0x22, 0x2d, 0x0a, 0x0f, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x11, 0x4d, 0x44, 0x4d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x0b, 0x6d, 0x64, 0x6d, 0x5f, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, - 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x44, 0x4d, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x0a, 0x6d, 0x64, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8f, - 0x02, 0x0a, 0x0a, 0x4d, 0x44, 0x4d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, - 0x28, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x5f, 0x73, - 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x24, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x57, 0x68, 0x69, 0x6c, 0x65, 0x53, 0x75, 0x70, 0x65, 0x72, - 0x76, 0x69, 0x73, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, - 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, - 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x71, 0x0a, - 0x37, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x5f, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x30, - 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, - 0x6f, 0x72, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x5d, 0x0a, 0x1e, 0x50, 0x61, 0x73, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x6b, - 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x1a, 0x70, 0x61, 0x73, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x70, 0x61, 0x73, 0x73, 0x63, 0x6f, 0x64, 0x65, - 0x4c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, - 0x53, 0x0a, 0x1b, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x34, - 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x22, 0x37, 0x0a, 0x1b, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, + 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x61, 0x0a, 0x18, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x16, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x2f, 0x0a, 0x13, 0x56, 0x6f, 0x69, 0x63, + 0x65, 0x52, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x32, 0x0a, 0x16, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x6f, 0x74, 0x73, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2f, 0x0a, - 0x13, 0x41, 0x70, 0x70, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x43, - 0x0a, 0x1f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x3e, 0x0a, + 0x10, 0x57, 0x61, 0x6c, 0x6c, 0x70, 0x61, 0x70, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x68, 0x65, 0x72, 0x65, 0x22, 0x2e, 0x0a, + 0x12, 0x44, 0x61, 0x74, 0x61, 0x52, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2c, 0x0a, + 0x10, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x96, 0x01, 0x0a, 0x1c, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x16, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, + 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x15, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x73, 0x22, 0x40, 0x0a, 0x1c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, 0x67, 0x0a, 0x1a, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x64, 0x62, - 0x61, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, - 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xcb, - 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, - 0x6f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x4f, 0x72, 0x6f, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x5f, 0x74, 0x65, 0x74, 0x68, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x65, 0x74, 0x68, 0x65, 0x72, 0x22, 0x34, 0x0a, 0x16, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, - 0x6f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x4f, 0x72, 0x6f, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x5f, 0x74, 0x65, 0x74, 0x68, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x65, 0x74, 0x68, 0x65, 0x72, 0x22, 0x30, 0x0a, 0x12, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x6f, - 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x4f, - 0x0a, 0x14, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x48, 0x61, 0x73, 0x68, 0x22, - 0x3e, 0x0a, 0x10, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4f, 0x53, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, - 0xc3, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x6d, - 0x61, 0x78, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x6c, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x55, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x2c, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x4f, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x53, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x12, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x56, 0x61, 0x75, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x76, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x75, - 0x6c, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x76, 0x61, - 0x75, 0x6c, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x77, - 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x12, 0x40, 0x0a, 0x1c, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x45, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x75, - 0x6c, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x10, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x22, 0x3c, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, - 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, - 0x72, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, - 0xd2, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x64, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x75, 0x64, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x22, - 0x53, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x63, 0x6b, - 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x49, 0x64, 0x6c, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x4e, - 0x6f, 0x77, 0x10, 0x04, 0x22, 0xb9, 0x01, 0x0a, 0x0a, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x12, 0x33, 0x0a, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x73, 0x5f, 0x65, - 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x6c, - 0x69, 0x73, 0x68, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, - 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, - 0x22, 0x3e, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x65, 0x6c, 0x6c, 0x75, - 0x6c, 0x61, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x73, 0x69, 0x6d, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x73, 0x69, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, - 0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, - 0x69, 0x63, 0x72, 0x6f, 0x6d, 0x64, 0x6d, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6d, 0x64, 0x6d, - 0x2f, 0x6d, 0x64, 0x6d, 0x2f, 0x6d, 0x64, 0x6d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x2f, 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x1b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x15, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x70, 0x6e, 0x5f, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x70, 0x6e, 0x55, 0x75, 0x69, 0x64, + 0x22, 0x34, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2e, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, + 0x6e, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x22, 0x56, 0x0a, 0x1d, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x2d, + 0x0a, 0x0f, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4a, 0x0a, + 0x11, 0x4d, 0x44, 0x4d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x0b, 0x6d, 0x64, 0x6d, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4d, 0x44, 0x4d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x6d, + 0x64, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8f, 0x02, 0x0a, 0x0a, 0x4d, 0x44, + 0x4d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, 0x28, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x76, + 0x69, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x24, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x57, 0x68, 0x69, 0x6c, 0x65, 0x53, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x65, 0x64, + 0x12, 0x36, 0x0a, 0x17, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x15, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x37, 0x70, 0x72, 0x6f, 0x6d, + 0x70, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x30, 0x70, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x42, 0x6f, 0x6f, 0x74, + 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x1e, 0x50, + 0x61, 0x73, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x61, 0x63, 0x65, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, + 0x1a, 0x70, 0x61, 0x73, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x17, 0x70, 0x61, 0x73, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x47, + 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x53, 0x0a, 0x1b, 0x4d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, + 0x37, 0x0a, 0x1b, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2f, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x43, 0x0a, 0x1f, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, 0x40, + 0x0a, 0x1c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, + 0x22, 0x67, 0x0a, 0x1a, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, + 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xcb, 0x01, 0x0a, 0x13, 0x53, 0x65, + 0x74, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x6f, 0x6d, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x6f, 0x6d, 0x73, + 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x54, 0x65, 0x74, 0x68, 0x65, 0x72, 0x22, 0x34, 0x0a, 0x16, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xc7, 0x01, + 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x63, + 0x6b, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x6f, 0x6d, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x6f, 0x6d, 0x73, + 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x54, 0x65, 0x74, 0x68, 0x65, 0x72, 0x22, 0x30, 0x0a, 0x12, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x65, 0x74, + 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x48, 0x61, 0x73, 0x68, 0x22, 0x3e, 0x0a, 0x10, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4f, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xc3, 0x01, 0x0a, 0x06, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x22, 0x2c, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4f, 0x53, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x53, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xe0, 0x01, 0x0a, + 0x12, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x75, 0x6c, 0x74, + 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, + 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x6e, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6e, + 0x65, 0x77, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, + 0x1c, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x1a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, + 0x9a, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x6e, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3d, 0x0a, + 0x1b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x18, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x3c, 0x0a, 0x11, + 0x53, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, + 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x64, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x64, 0x69, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x55, + 0x75, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x64, 0x6d, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x0a, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x22, 0x53, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, + 0x64, 0x67, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0x01, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x64, 0x6c, + 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x4e, 0x6f, 0x77, 0x10, 0x04, 0x22, + 0xb9, 0x01, 0x0a, 0x0a, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x33, + 0x0a, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, + 0x68, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x14, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x14, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x50, 0x6c, + 0x61, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x73, 0x69, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x73, + 0x69, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x42, 0x38, 0x5a, 0x36, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6d, + 0x64, 0x6d, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6d, 0x64, 0x6d, 0x2f, 0x6d, 0x64, 0x6d, 0x2f, + 0x6d, 0x64, 0x6d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x6d, 0x64, 0x6d, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5716,7 +5782,7 @@ func file_mdm_proto_rawDescGZIP() []byte { } var file_mdm_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_mdm_proto_msgTypes = make([]protoimpl.MessageInfo, 74) +var file_mdm_proto_msgTypes = make([]protoimpl.MessageInfo, 75) var file_mdm_proto_goTypes = []interface{}{ (ResultPayload_Status)(0), // 0: mdmproto.ResultPayload.Status (*CommandPayload)(nil), // 1: mdmproto.CommandPayload @@ -5768,31 +5834,32 @@ var file_mdm_proto_goTypes = []interface{}{ (*ApplicationAttributes)(nil), // 47: mdmproto.ApplicationAttributes (*DeviceNameSetting)(nil), // 48: mdmproto.DeviceNameSetting (*TimeZoneSetting)(nil), // 49: mdmproto.TimeZoneSetting - (*HostnameSetting)(nil), // 50: mdmproto.HostnameSetting - (*MDMOptionsSetting)(nil), // 51: mdmproto.MDMOptionsSetting - (*MDMOptions)(nil), // 52: mdmproto.MDMOptions - (*PasscodeLockGracePeriodSetting)(nil), // 53: mdmproto.PasscodeLockGracePeriodSetting - (*MaximumResidentUsersSetting)(nil), // 54: mdmproto.MaximumResidentUsersSetting - (*DiagnosticSubmissionSetting)(nil), // 55: mdmproto.DiagnosticSubmissionSetting - (*AppAnalyticsSetting)(nil), // 56: mdmproto.AppAnalyticsSetting - (*ManagedApplicationConfiguration)(nil), // 57: mdmproto.ManagedApplicationConfiguration - (*ManagedApplicationAttributes)(nil), // 58: mdmproto.ManagedApplicationAttributes - (*ManagedApplicationFeedback)(nil), // 59: mdmproto.ManagedApplicationFeedback - (*SetFirmwarePassword)(nil), // 60: mdmproto.SetFirmwarePassword - (*VerifyFirmwarePassword)(nil), // 61: mdmproto.VerifyFirmwarePassword - (*SetRecoveryLock)(nil), // 62: mdmproto.SetRecoveryLock - (*VerifyRecoveryLock)(nil), // 63: mdmproto.VerifyRecoveryLock - (*SetAutoAdminPassword)(nil), // 64: mdmproto.SetAutoAdminPassword - (*ScheduleOSUpdate)(nil), // 65: mdmproto.ScheduleOSUpdate - (*Update)(nil), // 66: mdmproto.Update - (*ScheduleOSUpdateScan)(nil), // 67: mdmproto.ScheduleOSUpdateScan - (*ActiveNSExtensions)(nil), // 68: mdmproto.ActiveNSExtensions - (*RotateFileVaultKey)(nil), // 69: mdmproto.RotateFileVaultKey - (*FileVaultUnlock)(nil), // 70: mdmproto.FileVaultUnlock - (*SetBootstrapToken)(nil), // 71: mdmproto.SetBootstrapToken - (*ResultPayload)(nil), // 72: mdmproto.ResultPayload - (*ErrorChain)(nil), // 73: mdmproto.ErrorChain - (*RefreshCellularPlans)(nil), // 74: mdmproto.RefreshCellularPlans + (*SoftwareUpdateSettingsSetting)(nil), // 50: mdmproto.SoftwareUpdateSettingsSetting + (*HostnameSetting)(nil), // 51: mdmproto.HostnameSetting + (*MDMOptionsSetting)(nil), // 52: mdmproto.MDMOptionsSetting + (*MDMOptions)(nil), // 53: mdmproto.MDMOptions + (*PasscodeLockGracePeriodSetting)(nil), // 54: mdmproto.PasscodeLockGracePeriodSetting + (*MaximumResidentUsersSetting)(nil), // 55: mdmproto.MaximumResidentUsersSetting + (*DiagnosticSubmissionSetting)(nil), // 56: mdmproto.DiagnosticSubmissionSetting + (*AppAnalyticsSetting)(nil), // 57: mdmproto.AppAnalyticsSetting + (*ManagedApplicationConfiguration)(nil), // 58: mdmproto.ManagedApplicationConfiguration + (*ManagedApplicationAttributes)(nil), // 59: mdmproto.ManagedApplicationAttributes + (*ManagedApplicationFeedback)(nil), // 60: mdmproto.ManagedApplicationFeedback + (*SetFirmwarePassword)(nil), // 61: mdmproto.SetFirmwarePassword + (*VerifyFirmwarePassword)(nil), // 62: mdmproto.VerifyFirmwarePassword + (*SetRecoveryLock)(nil), // 63: mdmproto.SetRecoveryLock + (*VerifyRecoveryLock)(nil), // 64: mdmproto.VerifyRecoveryLock + (*SetAutoAdminPassword)(nil), // 65: mdmproto.SetAutoAdminPassword + (*ScheduleOSUpdate)(nil), // 66: mdmproto.ScheduleOSUpdate + (*Update)(nil), // 67: mdmproto.Update + (*ScheduleOSUpdateScan)(nil), // 68: mdmproto.ScheduleOSUpdateScan + (*ActiveNSExtensions)(nil), // 69: mdmproto.ActiveNSExtensions + (*RotateFileVaultKey)(nil), // 70: mdmproto.RotateFileVaultKey + (*FileVaultUnlock)(nil), // 71: mdmproto.FileVaultUnlock + (*SetBootstrapToken)(nil), // 72: mdmproto.SetBootstrapToken + (*ResultPayload)(nil), // 73: mdmproto.ResultPayload + (*ErrorChain)(nil), // 74: mdmproto.ErrorChain + (*RefreshCellularPlans)(nil), // 75: mdmproto.RefreshCellularPlans } var file_mdm_proto_depIdxs = []int32{ 2, // 0: mdmproto.CommandPayload.command:type_name -> mdmproto.Command @@ -5820,21 +5887,21 @@ var file_mdm_proto_depIdxs = []int32{ 34, // 22: mdmproto.Command.install_media:type_name -> mdmproto.InstallMedia 35, // 23: mdmproto.Command.remove_media:type_name -> mdmproto.RemoveMedia 38, // 24: mdmproto.Command.settings:type_name -> mdmproto.Settings - 57, // 25: mdmproto.Command.managed_application_configuration:type_name -> mdmproto.ManagedApplicationConfiguration - 58, // 26: mdmproto.Command.managed_application_attributes:type_name -> mdmproto.ManagedApplicationAttributes - 59, // 27: mdmproto.Command.managed_application_feedback:type_name -> mdmproto.ManagedApplicationFeedback - 60, // 28: mdmproto.Command.set_firmware_password:type_name -> mdmproto.SetFirmwarePassword - 61, // 29: mdmproto.Command.verify_firmware_password:type_name -> mdmproto.VerifyFirmwarePassword - 64, // 30: mdmproto.Command.set_auto_admin_password:type_name -> mdmproto.SetAutoAdminPassword - 65, // 31: mdmproto.Command.schedule_os_update:type_name -> mdmproto.ScheduleOSUpdate - 67, // 32: mdmproto.Command.schedule_os_update_scan:type_name -> mdmproto.ScheduleOSUpdateScan - 68, // 33: mdmproto.Command.active_ns_extensions:type_name -> mdmproto.ActiveNSExtensions - 69, // 34: mdmproto.Command.rotate_filevault_key:type_name -> mdmproto.RotateFileVaultKey + 58, // 25: mdmproto.Command.managed_application_configuration:type_name -> mdmproto.ManagedApplicationConfiguration + 59, // 26: mdmproto.Command.managed_application_attributes:type_name -> mdmproto.ManagedApplicationAttributes + 60, // 27: mdmproto.Command.managed_application_feedback:type_name -> mdmproto.ManagedApplicationFeedback + 61, // 28: mdmproto.Command.set_firmware_password:type_name -> mdmproto.SetFirmwarePassword + 62, // 29: mdmproto.Command.verify_firmware_password:type_name -> mdmproto.VerifyFirmwarePassword + 65, // 30: mdmproto.Command.set_auto_admin_password:type_name -> mdmproto.SetAutoAdminPassword + 66, // 31: mdmproto.Command.schedule_os_update:type_name -> mdmproto.ScheduleOSUpdate + 68, // 32: mdmproto.Command.schedule_os_update_scan:type_name -> mdmproto.ScheduleOSUpdateScan + 69, // 33: mdmproto.Command.active_ns_extensions:type_name -> mdmproto.ActiveNSExtensions + 70, // 34: mdmproto.Command.rotate_filevault_key:type_name -> mdmproto.RotateFileVaultKey 21, // 35: mdmproto.Command.install_enterprise_application:type_name -> mdmproto.InstallEnterpriseApplication - 71, // 36: mdmproto.Command.set_bootstrap_token:type_name -> mdmproto.SetBootstrapToken - 62, // 37: mdmproto.Command.set_recovery_lock:type_name -> mdmproto.SetRecoveryLock - 63, // 38: mdmproto.Command.verify_recovery_lock:type_name -> mdmproto.VerifyRecoveryLock - 74, // 39: mdmproto.Command.refresh_cellular_plans:type_name -> mdmproto.RefreshCellularPlans + 72, // 36: mdmproto.Command.set_bootstrap_token:type_name -> mdmproto.SetBootstrapToken + 63, // 37: mdmproto.Command.set_recovery_lock:type_name -> mdmproto.SetRecoveryLock + 64, // 38: mdmproto.Command.verify_recovery_lock:type_name -> mdmproto.VerifyRecoveryLock + 75, // 39: mdmproto.Command.refresh_cellular_plans:type_name -> mdmproto.RefreshCellularPlans 36, // 40: mdmproto.Command.lomDeviceRequestCommand:type_name -> mdmproto.LOMDeviceRequest 18, // 41: mdmproto.InstallApplication.options:type_name -> mdmproto.InstallApplicationOptions 19, // 42: mdmproto.InstallApplication.configuration:type_name -> mdmproto.InstallApplicationConfiguration @@ -5848,30 +5915,31 @@ var file_mdm_proto_depIdxs = []int32{ 37, // 50: mdmproto.LOMDeviceRequest.requestList:type_name -> mdmproto.LOMDeviceRequestCommand 39, // 51: mdmproto.Settings.settings:type_name -> mdmproto.Setting 48, // 52: mdmproto.Setting.device_name:type_name -> mdmproto.DeviceNameSetting - 50, // 53: mdmproto.Setting.hostname:type_name -> mdmproto.HostnameSetting + 51, // 53: mdmproto.Setting.hostname:type_name -> mdmproto.HostnameSetting 40, // 54: mdmproto.Setting.voice_roaming:type_name -> mdmproto.VoiceRoamingSetting 41, // 55: mdmproto.Setting.personal_hotspot:type_name -> mdmproto.PersonalHotspotSetting 42, // 56: mdmproto.Setting.wallpaper:type_name -> mdmproto.WallpaperSetting 43, // 57: mdmproto.Setting.data_roaming:type_name -> mdmproto.DataRoamingSetting 44, // 58: mdmproto.Setting.bluetooth:type_name -> mdmproto.BluetoothSetting 45, // 59: mdmproto.Setting.application_attributes:type_name -> mdmproto.ApplicationAttributesSetting - 51, // 60: mdmproto.Setting.mdm_options:type_name -> mdmproto.MDMOptionsSetting - 53, // 61: mdmproto.Setting.passcode_lock_grace_period:type_name -> mdmproto.PasscodeLockGracePeriodSetting - 54, // 62: mdmproto.Setting.maximum_resident_users:type_name -> mdmproto.MaximumResidentUsersSetting - 55, // 63: mdmproto.Setting.diagnostic_submission:type_name -> mdmproto.DiagnosticSubmissionSetting - 56, // 64: mdmproto.Setting.app_analytics:type_name -> mdmproto.AppAnalyticsSetting + 52, // 60: mdmproto.Setting.mdm_options:type_name -> mdmproto.MDMOptionsSetting + 54, // 61: mdmproto.Setting.passcode_lock_grace_period:type_name -> mdmproto.PasscodeLockGracePeriodSetting + 55, // 62: mdmproto.Setting.maximum_resident_users:type_name -> mdmproto.MaximumResidentUsersSetting + 56, // 63: mdmproto.Setting.diagnostic_submission:type_name -> mdmproto.DiagnosticSubmissionSetting + 57, // 64: mdmproto.Setting.app_analytics:type_name -> mdmproto.AppAnalyticsSetting 46, // 65: mdmproto.Setting.application_configuration:type_name -> mdmproto.ApplicationConfigurationSetting 49, // 66: mdmproto.Setting.time_zone:type_name -> mdmproto.TimeZoneSetting - 47, // 67: mdmproto.ApplicationAttributesSetting.application_attributes:type_name -> mdmproto.ApplicationAttributes - 52, // 68: mdmproto.MDMOptionsSetting.mdm_options:type_name -> mdmproto.MDMOptions - 66, // 69: mdmproto.ScheduleOSUpdate.updates:type_name -> mdmproto.Update - 70, // 70: mdmproto.RotateFileVaultKey.filevault_unlock:type_name -> mdmproto.FileVaultUnlock - 73, // 71: mdmproto.ResultPayload.error_chain:type_name -> mdmproto.ErrorChain - 72, // [72:72] is the sub-list for method output_type - 72, // [72:72] is the sub-list for method input_type - 72, // [72:72] is the sub-list for extension type_name - 72, // [72:72] is the sub-list for extension extendee - 0, // [0:72] is the sub-list for field type_name + 50, // 67: mdmproto.Setting.software_update_settings:type_name -> mdmproto.SoftwareUpdateSettingsSetting + 47, // 68: mdmproto.ApplicationAttributesSetting.application_attributes:type_name -> mdmproto.ApplicationAttributes + 53, // 69: mdmproto.MDMOptionsSetting.mdm_options:type_name -> mdmproto.MDMOptions + 67, // 70: mdmproto.ScheduleOSUpdate.updates:type_name -> mdmproto.Update + 71, // 71: mdmproto.RotateFileVaultKey.filevault_unlock:type_name -> mdmproto.FileVaultUnlock + 74, // 72: mdmproto.ResultPayload.error_chain:type_name -> mdmproto.ErrorChain + 73, // [73:73] is the sub-list for method output_type + 73, // [73:73] is the sub-list for method input_type + 73, // [73:73] is the sub-list for extension type_name + 73, // [73:73] is the sub-list for extension extendee + 0, // [0:73] is the sub-list for field type_name } func init() { file_mdm_proto_init() } @@ -6469,7 +6537,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostnameSetting); i { + switch v := v.(*SoftwareUpdateSettingsSetting); i { case 0: return &v.state case 1: @@ -6481,7 +6549,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MDMOptionsSetting); i { + switch v := v.(*HostnameSetting); i { case 0: return &v.state case 1: @@ -6493,7 +6561,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MDMOptions); i { + switch v := v.(*MDMOptionsSetting); i { case 0: return &v.state case 1: @@ -6505,7 +6573,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasscodeLockGracePeriodSetting); i { + switch v := v.(*MDMOptions); i { case 0: return &v.state case 1: @@ -6517,7 +6585,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MaximumResidentUsersSetting); i { + switch v := v.(*PasscodeLockGracePeriodSetting); i { case 0: return &v.state case 1: @@ -6529,7 +6597,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiagnosticSubmissionSetting); i { + switch v := v.(*MaximumResidentUsersSetting); i { case 0: return &v.state case 1: @@ -6541,7 +6609,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AppAnalyticsSetting); i { + switch v := v.(*DiagnosticSubmissionSetting); i { case 0: return &v.state case 1: @@ -6553,7 +6621,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ManagedApplicationConfiguration); i { + switch v := v.(*AppAnalyticsSetting); i { case 0: return &v.state case 1: @@ -6565,7 +6633,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ManagedApplicationAttributes); i { + switch v := v.(*ManagedApplicationConfiguration); i { case 0: return &v.state case 1: @@ -6577,7 +6645,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ManagedApplicationFeedback); i { + switch v := v.(*ManagedApplicationAttributes); i { case 0: return &v.state case 1: @@ -6589,7 +6657,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetFirmwarePassword); i { + switch v := v.(*ManagedApplicationFeedback); i { case 0: return &v.state case 1: @@ -6601,7 +6669,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyFirmwarePassword); i { + switch v := v.(*SetFirmwarePassword); i { case 0: return &v.state case 1: @@ -6613,7 +6681,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRecoveryLock); i { + switch v := v.(*VerifyFirmwarePassword); i { case 0: return &v.state case 1: @@ -6625,7 +6693,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyRecoveryLock); i { + switch v := v.(*SetRecoveryLock); i { case 0: return &v.state case 1: @@ -6637,7 +6705,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetAutoAdminPassword); i { + switch v := v.(*VerifyRecoveryLock); i { case 0: return &v.state case 1: @@ -6649,7 +6717,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleOSUpdate); i { + switch v := v.(*SetAutoAdminPassword); i { case 0: return &v.state case 1: @@ -6661,7 +6729,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Update); i { + switch v := v.(*ScheduleOSUpdate); i { case 0: return &v.state case 1: @@ -6673,7 +6741,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleOSUpdateScan); i { + switch v := v.(*Update); i { case 0: return &v.state case 1: @@ -6685,7 +6753,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActiveNSExtensions); i { + switch v := v.(*ScheduleOSUpdateScan); i { case 0: return &v.state case 1: @@ -6697,7 +6765,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RotateFileVaultKey); i { + switch v := v.(*ActiveNSExtensions); i { case 0: return &v.state case 1: @@ -6709,7 +6777,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileVaultUnlock); i { + switch v := v.(*RotateFileVaultKey); i { case 0: return &v.state case 1: @@ -6721,7 +6789,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetBootstrapToken); i { + switch v := v.(*FileVaultUnlock); i { case 0: return &v.state case 1: @@ -6733,7 +6801,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResultPayload); i { + switch v := v.(*SetBootstrapToken); i { case 0: return &v.state case 1: @@ -6745,7 +6813,7 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ErrorChain); i { + switch v := v.(*ResultPayload); i { case 0: return &v.state case 1: @@ -6757,6 +6825,18 @@ func file_mdm_proto_init() { } } file_mdm_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ErrorChain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mdm_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefreshCellularPlans); i { case 0: return &v.state @@ -6817,7 +6897,7 @@ func file_mdm_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_mdm_proto_rawDesc, NumEnums: 1, - NumMessages: 74, + NumMessages: 75, NumExtensions: 0, NumServices: 0, }, diff --git a/mdm/mdm/internal/mdmproto/mdm.proto b/mdm/mdm/internal/mdmproto/mdm.proto index c5f44622..efc31f43 100644 --- a/mdm/mdm/internal/mdmproto/mdm.proto +++ b/mdm/mdm/internal/mdmproto/mdm.proto @@ -292,6 +292,7 @@ message Setting { AppAnalyticsSetting app_analytics = 14; ApplicationConfigurationSetting application_configuration = 15; TimeZoneSetting time_zone = 16; + SoftwareUpdateSettingsSetting software_update_settings = 17; } message VoiceRoamingSetting { @@ -337,6 +338,10 @@ message TimeZoneSetting { string time_zone = 1; } +message SoftwareUpdateSettingsSetting { + int64 recommendation_cadence = 1; +} + message HostnameSetting { string hostname = 1; } diff --git a/mdm/mdm/marshal_proto.go b/mdm/mdm/marshal_proto.go index 24224991..6b1e66d5 100644 --- a/mdm/mdm/marshal_proto.go +++ b/mdm/mdm/marshal_proto.go @@ -514,6 +514,10 @@ func settingToProto(s Setting) *mdmproto.Setting { pbs.AppAnalytics = &mdmproto.AppAnalyticsSetting{ Enabled: falseIfNil(s.Enabled), } + case "SoftwareUpdateSettings": + pbs.SoftwareUpdateSettings = &mdmproto.SoftwareUpdateSettingsSetting{ + RecommendationCadence: int64(zeroIntIfNil(s.RecommendationCadence)), + } } return &pbs } diff --git a/mdm/mdm/mdm_command_test.go b/mdm/mdm/mdm_command_test.go index 3f31e8ec..1fffce63 100644 --- a/mdm/mdm/mdm_command_test.go +++ b/mdm/mdm/mdm_command_test.go @@ -29,6 +29,7 @@ Not tested end to end but checked against pdf: func TestMarshalCommand(t *testing.T) { var deferrals int64 = 3 + var cadence int var tests = []struct { Command Command }{ @@ -167,6 +168,14 @@ func TestMarshalCommand(t *testing.T) { }, }, }, + { + Command: Command{ + RequestType: "Settings", + Settings: &Settings{ + Settings: []Setting{{Item: "SoftwareUpdateSettings", RecommendationCadence: &cadence}}, + }, + }, + }, } for _, tt := range tests { t.Run(tt.Command.RequestType+"_json", func(t *testing.T) { @@ -573,6 +582,25 @@ func TestEndToEnd(t *testing.T) { } }, }, + { + name: "SoftwareUpdateSettings", + requestBytes: []byte( + `{"request_type":"Settings","settings":[{"item":"SoftwareUpdateSettings","recommendation_cadence":0}]}`, + ), + testFn: func(t *testing.T, parts endToEndParts) { + needToSee := [][]byte{ + []byte(`Settings`), + []byte(`SoftwareUpdateSettings`), + []byte(`RecommendationCadence`), + []byte(`0`), + } + for _, b := range needToSee { + if !bytes.Contains(parts.plistData, b) { + t.Error(fmt.Sprintf("marshaled plist does not contain required bytes: '%s'", string(b))) + } + } + }, + }, } for _, tt := range tests { diff --git a/mdm/mdm/unmarshal_proto.go b/mdm/mdm/unmarshal_proto.go index f64c579f..20cc6b56 100644 --- a/mdm/mdm/unmarshal_proto.go +++ b/mdm/mdm/unmarshal_proto.go @@ -455,6 +455,10 @@ func protoToSetting(s *mdmproto.Setting) Setting { case "AppAnalytics": pbs := s.GetAppAnalytics() setting.Enabled = nilIfFalse(pbs.GetEnabled()) + case "SoftwareUpdateSettings": + pbs := s.GetSoftwareUpdateSettings() + cadence := int(pbs.GetRecommendationCadence()) + setting.RecommendationCadence = &cadence } return setting }