// DO NOT EDIT. // swift-format-ignore-file // swiftlint:disable all // // Generated by the Swift generator plugin for the protocol buffer compiler. // Source: securegcm.proto // // For information on using the generated types, please see the documentation: // https://github.com/apple/swift-protobuf/ // Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import Foundation import SwiftProtobuf // If the compiler emits an error on this type, it is because this file // was generated by a version of the `protoc` Swift plug-in that is // incompatible with the version of SwiftProtobuf to which you are linking. // Please ensure that you are building against the same version of the API // that was used to generate this file. fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck { struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {} typealias Version = _2 } /// This enum is used by iOS devices as values for device_display_diagonal_mils /// in GcmDeviceInfo. There is no good way to calculate it on those devices. enum Securegcm_AppleDeviceDiagonalMils: Int, SwiftProtobuf.Enum, Swift.CaseIterable { /// This is the mils diagonal on an iPhone 5. case applePhone = 4000 /// This is the mils diagonal on an iPad mini. case applePad = 7900 init() { self = .applePhone } } /// This should be kept in sync with DeviceType in: /// java/com/google/security/cryptauth/backend/services/common/common_enums.proto enum Securegcm_DeviceType: Int, SwiftProtobuf.Enum, Swift.CaseIterable { case unknown = 0 case android = 1 case chrome = 2 case ios = 3 case browser = 4 case osx = 5 init() { self = .unknown } } /// MultiDevice features which may be supported and enabled on a device. See enum Securegcm_SoftwareFeature: Int, SwiftProtobuf.Enum, Swift.CaseIterable { case unknownFeature = 0 case betterTogetherHost = 1 case betterTogetherClient = 2 case easyUnlockHost = 3 case easyUnlockClient = 4 case magicTetherHost = 5 case magicTetherClient = 6 case smsConnectHost = 7 case smsConnectClient = 8 init() { self = .unknownFeature } } /// A list of "reasons" that can be provided for calling server-side APIs. /// This is particularly important for calls that can be triggered by different /// kinds of events. Please try to keep reasons as generic as possible, so that /// codes can be re-used by various callers in a sensible fashion. enum Securegcm_InvocationReason: Int, SwiftProtobuf.Enum, Swift.CaseIterable { case reasonUnknown = 0 /// First run of the software package invoking this call case reasonInitialization = 1 /// Ordinary periodic actions (e.g. monthly master key rotation) case reasonPeriodic = 2 /// Slow-cycle periodic action (e.g. yearly keypair rotation???) case reasonSlowPeriodic = 3 /// Fast-cycle periodic action (e.g. daily sync for Smart Lock users) case reasonFastPeriodic = 4 /// Expired state (e.g. expired credentials, or cached entries) was detected case reasonExpiration = 5 /// An unexpected protocol failure occurred (so attempting to repair state) case reasonFailureRecovery = 6 /// A new account has been added to the device case reasonNewAccount = 7 /// An existing account on the device has been changed case reasonChangedAccount = 8 /// The user toggled the state of a feature (e.g. Smart Lock enabled via BT) case reasonFeatureToggled = 9 /// A "push" from the server caused this action (e.g. a sync tickle) case reasonServerInitiated = 10 /// A local address change triggered this (e.g. GCM registration id changed) case reasonAddressChange = 11 /// A software update has triggered this case reasonSoftwareUpdate = 12 /// A manual action by the user triggered this (e.g. commands sent via adb) case reasonManual = 13 /// A custom key has been invalidated on the device (e.g. screen lock is /// disabled). case reasonCustomKeyInvalidation = 14 /// Periodic action triggered by auth_proximity case reasonProximityPeriodic = 15 init() { self = .reasonUnknown } } enum Securegcm_Type: Int, SwiftProtobuf.Enum, Swift.CaseIterable { case enrollment = 0 case tickle = 1 case txRequest = 2 case txReply = 3 case txSyncRequest = 4 case txSyncResponse = 5 case txPing = 6 case deviceInfoUpdate = 7 case txCancelRequest = 8 /// DEPRECATED (can be re-used after Aug 2015) case proximityauthPairing = 10 /// The kind of identity assertion generated by a "GCM V1" device (i.e., /// an Android phone that has registered with us a public and a symmetric /// key) case gcmv1IdentityAssertion = 11 /// Device-to-device communications are protected by an unauthenticated /// Diffie-Hellman exchange. The InitiatorHello message is simply the /// initiator's public DH key, and is not encoded as a SecureMessage, so /// it doesn't have a tag. /// The ResponderHello message (which is sent by the responder /// to the initiator), on the other hand, carries a payload that is protected /// by the derived shared key. It also contains the responder's /// public DH key. ResponderHelloAndPayload messages have the /// DEVICE_TO_DEVICE_RESPONDER_HELLO tag. case deviceToDeviceResponderHelloPayload = 12 /// Device-to-device communications are protected by an unauthenticated /// Diffie-Hellman exchange. Once the initiator and responder /// agree on a shared key (through Diffie-Hellman), they will use messages /// tagged with DEVICE_TO_DEVICE_MESSAGE to exchange data. case deviceToDeviceMessage = 13 /// Notification to let a device know it should contact a nearby device. case deviceProximityCallback = 14 /// Device-to-device communications are protected by an unauthenticated /// Diffie-Hellman exchange. During device-to-device authentication, the first /// message from initiator (the challenge) is signed and put into the payload /// of the message sent back to the initiator. case unlockKeySignedChallenge = 15 /// Specialty (corp only) features case loginNotification = 101 init() { self = .enrollment } } /// Message used only during enrollment /// Field numbers should be kept in sync with DeviceInfo in: /// java/com/google/security/cryptauth/backend/services/common/common.proto struct Securegcm_GcmDeviceInfo: @unchecked Sendable { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. /// This field's name does not match the one in DeviceInfo for legacy reasons. /// Consider using long_device_id and device_type instead when enrolling /// non-android devices. var androidDeviceID: UInt64 { get {return _storage._androidDeviceID ?? 0} set {_uniqueStorage()._androidDeviceID = newValue} } /// Returns true if `androidDeviceID` has been explicitly set. var hasAndroidDeviceID: Bool {return _storage._androidDeviceID != nil} /// Clears the value of `androidDeviceID`. Subsequent reads from it will return its default value. mutating func clearAndroidDeviceID() {_uniqueStorage()._androidDeviceID = nil} /// Used for device_address of DeviceInfo field 2, but for GCM capable devices. var gcmRegistrationID: Data { get {return _storage._gcmRegistrationID ?? Data()} set {_uniqueStorage()._gcmRegistrationID = newValue} } /// Returns true if `gcmRegistrationID` has been explicitly set. var hasGcmRegistrationID: Bool {return _storage._gcmRegistrationID != nil} /// Clears the value of `gcmRegistrationID`. Subsequent reads from it will return its default value. mutating func clearGcmRegistrationID() {_uniqueStorage()._gcmRegistrationID = nil} /// Used for device_address of DeviceInfo field 2, but for iOS devices. var apnRegistrationID: Data { get {return _storage._apnRegistrationID ?? Data()} set {_uniqueStorage()._apnRegistrationID = newValue} } /// Returns true if `apnRegistrationID` has been explicitly set. var hasApnRegistrationID: Bool {return _storage._apnRegistrationID != nil} /// Clears the value of `apnRegistrationID`. Subsequent reads from it will return its default value. mutating func clearApnRegistrationID() {_uniqueStorage()._apnRegistrationID = nil} /// Does the user have notifications enabled for the given device address. var notificationEnabled: Bool { get {return _storage._notificationEnabled ?? true} set {_uniqueStorage()._notificationEnabled = newValue} } /// Returns true if `notificationEnabled` has been explicitly set. var hasNotificationEnabled: Bool {return _storage._notificationEnabled != nil} /// Clears the value of `notificationEnabled`. Subsequent reads from it will return its default value. mutating func clearNotificationEnabled() {_uniqueStorage()._notificationEnabled = nil} /// Used for device_address of DeviceInfo field 2, a Bluetooth Mac address for /// the device (e.g., to be used with EasyUnlock) var bluetoothMacAddress: String { get {return _storage._bluetoothMacAddress ?? String()} set {_uniqueStorage()._bluetoothMacAddress = newValue} } /// Returns true if `bluetoothMacAddress` has been explicitly set. var hasBluetoothMacAddress: Bool {return _storage._bluetoothMacAddress != nil} /// Clears the value of `bluetoothMacAddress`. Subsequent reads from it will return its default value. mutating func clearBluetoothMacAddress() {_uniqueStorage()._bluetoothMacAddress = nil} /// SHA-256 hash of the device master key (from the key exchange). /// Differs from DeviceInfo field 3, which contains the actual master key. var deviceMasterKeyHash: Data { get {return _storage._deviceMasterKeyHash ?? Data()} set {_uniqueStorage()._deviceMasterKeyHash = newValue} } /// Returns true if `deviceMasterKeyHash` has been explicitly set. var hasDeviceMasterKeyHash: Bool {return _storage._deviceMasterKeyHash != nil} /// Clears the value of `deviceMasterKeyHash`. Subsequent reads from it will return its default value. mutating func clearDeviceMasterKeyHash() {_uniqueStorage()._deviceMasterKeyHash = nil} /// A SecureMessage.EcP256PublicKey var userPublicKey: Data { get {return _storage._userPublicKey ?? Data()} set {_uniqueStorage()._userPublicKey = newValue} } /// Returns true if `userPublicKey` has been explicitly set. var hasUserPublicKey: Bool {return _storage._userPublicKey != nil} /// Clears the value of `userPublicKey`. Subsequent reads from it will return its default value. mutating func clearUserPublicKey() {_uniqueStorage()._userPublicKey = nil} /// device's model name /// (e.g., an android.os.Build.MODEL or UIDevice.model) var deviceModel: String { get {return _storage._deviceModel ?? String()} set {_uniqueStorage()._deviceModel = newValue} } /// Returns true if `deviceModel` has been explicitly set. var hasDeviceModel: Bool {return _storage._deviceModel != nil} /// Clears the value of `deviceModel`. Subsequent reads from it will return its default value. mutating func clearDeviceModel() {_uniqueStorage()._deviceModel = nil} /// device's locale var locale: String { get {return _storage._locale ?? String()} set {_uniqueStorage()._locale = newValue} } /// Returns true if `locale` has been explicitly set. var hasLocale: Bool {return _storage._locale != nil} /// Clears the value of `locale`. Subsequent reads from it will return its default value. mutating func clearLocale() {_uniqueStorage()._locale = nil} /// The handle for user_public_key (and implicitly, a master key) var keyHandle: Data { get {return _storage._keyHandle ?? Data()} set {_uniqueStorage()._keyHandle = newValue} } /// Returns true if `keyHandle` has been explicitly set. var hasKeyHandle: Bool {return _storage._keyHandle != nil} /// Clears the value of `keyHandle`. Subsequent reads from it will return its default value. mutating func clearKeyHandle() {_uniqueStorage()._keyHandle = nil} /// The initial counter value for the device, sent by the device var counter: Int64 { get {return _storage._counter ?? 0} set {_uniqueStorage()._counter = newValue} } /// Returns true if `counter` has been explicitly set. var hasCounter: Bool {return _storage._counter != nil} /// Clears the value of `counter`. Subsequent reads from it will return its default value. mutating func clearCounter() {_uniqueStorage()._counter = nil} /// The Operating System version on the device /// (e.g., an android.os.Build.DISPLAY or UIDevice.systemVersion) var deviceOsVersion: String { get {return _storage._deviceOsVersion ?? String()} set {_uniqueStorage()._deviceOsVersion = newValue} } /// Returns true if `deviceOsVersion` has been explicitly set. var hasDeviceOsVersion: Bool {return _storage._deviceOsVersion != nil} /// Clears the value of `deviceOsVersion`. Subsequent reads from it will return its default value. mutating func clearDeviceOsVersion() {_uniqueStorage()._deviceOsVersion = nil} /// The Operating System version number on the device /// (e.g., an android.os.Build.VERSION.SDK_INT) var deviceOsVersionCode: Int64 { get {return _storage._deviceOsVersionCode ?? 0} set {_uniqueStorage()._deviceOsVersionCode = newValue} } /// Returns true if `deviceOsVersionCode` has been explicitly set. var hasDeviceOsVersionCode: Bool {return _storage._deviceOsVersionCode != nil} /// Clears the value of `deviceOsVersionCode`. Subsequent reads from it will return its default value. mutating func clearDeviceOsVersionCode() {_uniqueStorage()._deviceOsVersionCode = nil} /// The Operating System release on the device /// (e.g., an android.os.Build.VERSION.RELEASE) var deviceOsRelease: String { get {return _storage._deviceOsRelease ?? String()} set {_uniqueStorage()._deviceOsRelease = newValue} } /// Returns true if `deviceOsRelease` has been explicitly set. var hasDeviceOsRelease: Bool {return _storage._deviceOsRelease != nil} /// Clears the value of `deviceOsRelease`. Subsequent reads from it will return its default value. mutating func clearDeviceOsRelease() {_uniqueStorage()._deviceOsRelease = nil} /// The Operating System codename on the device /// (e.g., an android.os.Build.VERSION.CODENAME or UIDevice.systemName) var deviceOsCodename: String { get {return _storage._deviceOsCodename ?? String()} set {_uniqueStorage()._deviceOsCodename = newValue} } /// Returns true if `deviceOsCodename` has been explicitly set. var hasDeviceOsCodename: Bool {return _storage._deviceOsCodename != nil} /// Clears the value of `deviceOsCodename`. Subsequent reads from it will return its default value. mutating func clearDeviceOsCodename() {_uniqueStorage()._deviceOsCodename = nil} /// The software version running on the device /// (e.g., Authenticator app version string) var deviceSoftwareVersion: String { get {return _storage._deviceSoftwareVersion ?? String()} set {_uniqueStorage()._deviceSoftwareVersion = newValue} } /// Returns true if `deviceSoftwareVersion` has been explicitly set. var hasDeviceSoftwareVersion: Bool {return _storage._deviceSoftwareVersion != nil} /// Clears the value of `deviceSoftwareVersion`. Subsequent reads from it will return its default value. mutating func clearDeviceSoftwareVersion() {_uniqueStorage()._deviceSoftwareVersion = nil} /// The software version number running on the device /// (e.g., Authenticator app version code) var deviceSoftwareVersionCode: Int64 { get {return _storage._deviceSoftwareVersionCode ?? 0} set {_uniqueStorage()._deviceSoftwareVersionCode = newValue} } /// Returns true if `deviceSoftwareVersionCode` has been explicitly set. var hasDeviceSoftwareVersionCode: Bool {return _storage._deviceSoftwareVersionCode != nil} /// Clears the value of `deviceSoftwareVersionCode`. Subsequent reads from it will return its default value. mutating func clearDeviceSoftwareVersionCode() {_uniqueStorage()._deviceSoftwareVersionCode = nil} /// Software package information if applicable /// (e.g., com.google.android.apps.authenticator2) var deviceSoftwarePackage: String { get {return _storage._deviceSoftwarePackage ?? String()} set {_uniqueStorage()._deviceSoftwarePackage = newValue} } /// Returns true if `deviceSoftwarePackage` has been explicitly set. var hasDeviceSoftwarePackage: Bool {return _storage._deviceSoftwarePackage != nil} /// Clears the value of `deviceSoftwarePackage`. Subsequent reads from it will return its default value. mutating func clearDeviceSoftwarePackage() {_uniqueStorage()._deviceSoftwarePackage = nil} /// Size of the display in thousandths of an inch (e.g., 7000 mils = 7 in) var deviceDisplayDiagonalMils: Int32 { get {return _storage._deviceDisplayDiagonalMils ?? 0} set {_uniqueStorage()._deviceDisplayDiagonalMils = newValue} } /// Returns true if `deviceDisplayDiagonalMils` has been explicitly set. var hasDeviceDisplayDiagonalMils: Bool {return _storage._deviceDisplayDiagonalMils != nil} /// Clears the value of `deviceDisplayDiagonalMils`. Subsequent reads from it will return its default value. mutating func clearDeviceDisplayDiagonalMils() {_uniqueStorage()._deviceDisplayDiagonalMils = nil} /// For Authzen capable devices, their Authzen protocol version var deviceAuthzenVersion: Int32 { get {return _storage._deviceAuthzenVersion ?? 0} set {_uniqueStorage()._deviceAuthzenVersion = newValue} } /// Returns true if `deviceAuthzenVersion` has been explicitly set. var hasDeviceAuthzenVersion: Bool {return _storage._deviceAuthzenVersion != nil} /// Clears the value of `deviceAuthzenVersion`. Subsequent reads from it will return its default value. mutating func clearDeviceAuthzenVersion() {_uniqueStorage()._deviceAuthzenVersion = nil} /// Not all devices have device identifiers that fit in 64 bits. var longDeviceID: Data { get {return _storage._longDeviceID ?? Data()} set {_uniqueStorage()._longDeviceID = newValue} } /// Returns true if `longDeviceID` has been explicitly set. var hasLongDeviceID: Bool {return _storage._longDeviceID != nil} /// Clears the value of `longDeviceID`. Subsequent reads from it will return its default value. mutating func clearLongDeviceID() {_uniqueStorage()._longDeviceID = nil} /// The device manufacturer name /// (e.g., android.os.Build.MANUFACTURER) var deviceManufacturer: String { get {return _storage._deviceManufacturer ?? String()} set {_uniqueStorage()._deviceManufacturer = newValue} } /// Returns true if `deviceManufacturer` has been explicitly set. var hasDeviceManufacturer: Bool {return _storage._deviceManufacturer != nil} /// Clears the value of `deviceManufacturer`. Subsequent reads from it will return its default value. mutating func clearDeviceManufacturer() {_uniqueStorage()._deviceManufacturer = nil} /// Used to indicate which type of device this is. var deviceType: Securegcm_DeviceType { get {return _storage._deviceType ?? .android} set {_uniqueStorage()._deviceType = newValue} } /// Returns true if `deviceType` has been explicitly set. var hasDeviceType: Bool {return _storage._deviceType != nil} /// Clears the value of `deviceType`. Subsequent reads from it will return its default value. mutating func clearDeviceType() {_uniqueStorage()._deviceType = nil} /// Is this device using a secure screenlock (e.g., pattern or pin unlock) var usingSecureScreenlock: Bool { get {return _storage._usingSecureScreenlock ?? false} set {_uniqueStorage()._usingSecureScreenlock = newValue} } /// Returns true if `usingSecureScreenlock` has been explicitly set. var hasUsingSecureScreenlock: Bool {return _storage._usingSecureScreenlock != nil} /// Clears the value of `usingSecureScreenlock`. Subsequent reads from it will return its default value. mutating func clearUsingSecureScreenlock() {_uniqueStorage()._usingSecureScreenlock = nil} /// Is auto-unlocking the screenlock (e.g., when at "home") supported? var autoUnlockScreenlockSupported: Bool { get {return _storage._autoUnlockScreenlockSupported ?? false} set {_uniqueStorage()._autoUnlockScreenlockSupported = newValue} } /// Returns true if `autoUnlockScreenlockSupported` has been explicitly set. var hasAutoUnlockScreenlockSupported: Bool {return _storage._autoUnlockScreenlockSupported != nil} /// Clears the value of `autoUnlockScreenlockSupported`. Subsequent reads from it will return its default value. mutating func clearAutoUnlockScreenlockSupported() {_uniqueStorage()._autoUnlockScreenlockSupported = nil} /// Is auto-unlocking the screenlock (e.g., when at "home") enabled? var autoUnlockScreenlockEnabled: Bool { get {return _storage._autoUnlockScreenlockEnabled ?? false} set {_uniqueStorage()._autoUnlockScreenlockEnabled = newValue} } /// Returns true if `autoUnlockScreenlockEnabled` has been explicitly set. var hasAutoUnlockScreenlockEnabled: Bool {return _storage._autoUnlockScreenlockEnabled != nil} /// Clears the value of `autoUnlockScreenlockEnabled`. Subsequent reads from it will return its default value. mutating func clearAutoUnlockScreenlockEnabled() {_uniqueStorage()._autoUnlockScreenlockEnabled = nil} /// Does the device have a Bluetooth (classic) radio? var bluetoothRadioSupported: Bool { get {return _storage._bluetoothRadioSupported ?? false} set {_uniqueStorage()._bluetoothRadioSupported = newValue} } /// Returns true if `bluetoothRadioSupported` has been explicitly set. var hasBluetoothRadioSupported: Bool {return _storage._bluetoothRadioSupported != nil} /// Clears the value of `bluetoothRadioSupported`. Subsequent reads from it will return its default value. mutating func clearBluetoothRadioSupported() {_uniqueStorage()._bluetoothRadioSupported = nil} /// Is the Bluetooth (classic) radio on? var bluetoothRadioEnabled: Bool { get {return _storage._bluetoothRadioEnabled ?? false} set {_uniqueStorage()._bluetoothRadioEnabled = newValue} } /// Returns true if `bluetoothRadioEnabled` has been explicitly set. var hasBluetoothRadioEnabled: Bool {return _storage._bluetoothRadioEnabled != nil} /// Clears the value of `bluetoothRadioEnabled`. Subsequent reads from it will return its default value. mutating func clearBluetoothRadioEnabled() {_uniqueStorage()._bluetoothRadioEnabled = nil} /// Does the device hardware support a mobile data connection? var mobileDataSupported: Bool { get {return _storage._mobileDataSupported ?? false} set {_uniqueStorage()._mobileDataSupported = newValue} } /// Returns true if `mobileDataSupported` has been explicitly set. var hasMobileDataSupported: Bool {return _storage._mobileDataSupported != nil} /// Clears the value of `mobileDataSupported`. Subsequent reads from it will return its default value. mutating func clearMobileDataSupported() {_uniqueStorage()._mobileDataSupported = nil} /// Does the device support tethering? var tetheringSupported: Bool { get {return _storage._tetheringSupported ?? false} set {_uniqueStorage()._tetheringSupported = newValue} } /// Returns true if `tetheringSupported` has been explicitly set. var hasTetheringSupported: Bool {return _storage._tetheringSupported != nil} /// Clears the value of `tetheringSupported`. Subsequent reads from it will return its default value. mutating func clearTetheringSupported() {_uniqueStorage()._tetheringSupported = nil} /// Does the device have a BLE radio? var bleRadioSupported: Bool { get {return _storage._bleRadioSupported ?? false} set {_uniqueStorage()._bleRadioSupported = newValue} } /// Returns true if `bleRadioSupported` has been explicitly set. var hasBleRadioSupported: Bool {return _storage._bleRadioSupported != nil} /// Clears the value of `bleRadioSupported`. Subsequent reads from it will return its default value. mutating func clearBleRadioSupported() {_uniqueStorage()._bleRadioSupported = nil} /// Is the device a "Pixel Experience" Android device? var pixelExperience: Bool { get {return _storage._pixelExperience ?? false} set {_uniqueStorage()._pixelExperience = newValue} } /// Returns true if `pixelExperience` has been explicitly set. var hasPixelExperience: Bool {return _storage._pixelExperience != nil} /// Clears the value of `pixelExperience`. Subsequent reads from it will return its default value. mutating func clearPixelExperience() {_uniqueStorage()._pixelExperience = nil} /// Is the device running in the ARC++ container on a chromebook? var arcPlusPlus: Bool { get {return _storage._arcPlusPlus ?? false} set {_uniqueStorage()._arcPlusPlus = newValue} } /// Returns true if `arcPlusPlus` has been explicitly set. var hasArcPlusPlus: Bool {return _storage._arcPlusPlus != nil} /// Clears the value of `arcPlusPlus`. Subsequent reads from it will return its default value. mutating func clearArcPlusPlus() {_uniqueStorage()._arcPlusPlus = nil} /// Is the value set in |using_secure_screenlock| reliable? On some Android /// devices, the platform API to get the screenlock state is not trustworthy. /// See b/32212161. var isScreenlockStateFlaky: Bool { get {return _storage._isScreenlockStateFlaky ?? false} set {_uniqueStorage()._isScreenlockStateFlaky = newValue} } /// Returns true if `isScreenlockStateFlaky` has been explicitly set. var hasIsScreenlockStateFlaky: Bool {return _storage._isScreenlockStateFlaky != nil} /// Clears the value of `isScreenlockStateFlaky`. Subsequent reads from it will return its default value. mutating func clearIsScreenlockStateFlaky() {_uniqueStorage()._isScreenlockStateFlaky = nil} /// A list of multi-device software features supported by the device. var supportedSoftwareFeatures: [Securegcm_SoftwareFeature] { get {return _storage._supportedSoftwareFeatures} set {_uniqueStorage()._supportedSoftwareFeatures = newValue} } /// A list of multi-device software features currently enabled (active) on the /// device. var enabledSoftwareFeatures: [Securegcm_SoftwareFeature] { get {return _storage._enabledSoftwareFeatures} set {_uniqueStorage()._enabledSoftwareFeatures = newValue} } /// The enrollment session id this is sent with var enrollmentSessionID: Data { get {return _storage._enrollmentSessionID ?? Data()} set {_uniqueStorage()._enrollmentSessionID = newValue} } /// Returns true if `enrollmentSessionID` has been explicitly set. var hasEnrollmentSessionID: Bool {return _storage._enrollmentSessionID != nil} /// Clears the value of `enrollmentSessionID`. Subsequent reads from it will return its default value. mutating func clearEnrollmentSessionID() {_uniqueStorage()._enrollmentSessionID = nil} /// A copy of the user's OAuth token var oauthToken: String { get {return _storage._oauthToken ?? String()} set {_uniqueStorage()._oauthToken = newValue} } /// Returns true if `oauthToken` has been explicitly set. var hasOauthToken: Bool {return _storage._oauthToken != nil} /// Clears the value of `oauthToken`. Subsequent reads from it will return its default value. mutating func clearOauthToken() {_uniqueStorage()._oauthToken = nil} var unknownFields = SwiftProtobuf.UnknownStorage() init() {} fileprivate var _storage = _StorageClass.defaultInstance } struct Securegcm_GcmMetadata: Sendable { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. var type: Securegcm_Type { get {return _type ?? .enrollment} set {_type = newValue} } /// Returns true if `type` has been explicitly set. var hasType: Bool {return self._type != nil} /// Clears the value of `type`. Subsequent reads from it will return its default value. mutating func clearType() {self._type = nil} var version: Int32 { get {return _version ?? 0} set {_version = newValue} } /// Returns true if `version` has been explicitly set. var hasVersion: Bool {return self._version != nil} /// Clears the value of `version`. Subsequent reads from it will return its default value. mutating func clearVersion() {self._version = nil} var unknownFields = SwiftProtobuf.UnknownStorage() init() {} fileprivate var _type: Securegcm_Type? = nil fileprivate var _version: Int32? = nil } struct Securegcm_Tickle: Sendable { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. /// Time after which this tickle should expire var expiryTime: UInt64 { get {return _expiryTime ?? 0} set {_expiryTime = newValue} } /// Returns true if `expiryTime` has been explicitly set. var hasExpiryTime: Bool {return self._expiryTime != nil} /// Clears the value of `expiryTime`. Subsequent reads from it will return its default value. mutating func clearExpiryTime() {self._expiryTime = nil} var unknownFields = SwiftProtobuf.UnknownStorage() init() {} fileprivate var _expiryTime: UInt64? = nil } struct Securegcm_LoginNotificationInfo: Sendable { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. /// Time at which the server received the login notification request. var creationTime: UInt64 { get {return _creationTime ?? 0} set {_creationTime = newValue} } /// Returns true if `creationTime` has been explicitly set. var hasCreationTime: Bool {return self._creationTime != nil} /// Clears the value of `creationTime`. Subsequent reads from it will return its default value. mutating func clearCreationTime() {self._creationTime = nil} /// Must correspond to user_id in LoginNotificationRequest, if set. var email: String { get {return _email ?? String()} set {_email = newValue} } /// Returns true if `email` has been explicitly set. var hasEmail: Bool {return self._email != nil} /// Clears the value of `email`. Subsequent reads from it will return its default value. mutating func clearEmail() {self._email = nil} /// Host where the user's credentials were used to login, if meaningful. var host: String { get {return _host ?? String()} set {_host = newValue} } /// Returns true if `host` has been explicitly set. var hasHost: Bool {return self._host != nil} /// Clears the value of `host`. Subsequent reads from it will return its default value. mutating func clearHost() {self._host = nil} /// Location from where the user's credentials were used, if meaningful. var source: String { get {return _source ?? String()} set {_source = newValue} } /// Returns true if `source` has been explicitly set. var hasSource: Bool {return self._source != nil} /// Clears the value of `source`. Subsequent reads from it will return its default value. mutating func clearSource() {self._source = nil} /// Type of login, e.g. ssh, gnome-screensaver, or web. var eventType: String { get {return _eventType ?? String()} set {_eventType = newValue} } /// Returns true if `eventType` has been explicitly set. var hasEventType: Bool {return self._eventType != nil} /// Clears the value of `eventType`. Subsequent reads from it will return its default value. mutating func clearEventType() {self._eventType = nil} var unknownFields = SwiftProtobuf.UnknownStorage() init() {} fileprivate var _creationTime: UInt64? = nil fileprivate var _email: String? = nil fileprivate var _host: String? = nil fileprivate var _source: String? = nil fileprivate var _eventType: String? = nil } // MARK: - Code below here is support for the SwiftProtobuf runtime. fileprivate let _protobuf_package = "securegcm" extension Securegcm_AppleDeviceDiagonalMils: SwiftProtobuf._ProtoNameProviding { static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}`>APPLE_PHONE\0\u{2}| _StorageClass { if !isKnownUniquelyReferenced(&_storage) { _storage = _StorageClass(copying: _storage) } return _storage } public var isInitialized: Bool { return withExtendedLifetime(_storage) { (_storage: _StorageClass) in if _storage._userPublicKey == nil {return false} return true } } mutating func decodeMessage(decoder: inout D) throws { _ = _uniqueStorage() try withExtendedLifetime(_storage) { (_storage: _StorageClass) in while let fieldNumber = try decoder.nextFieldNumber() { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { case 1: try { try decoder.decodeSingularFixed64Field(value: &_storage._androidDeviceID) }() case 4: try { try decoder.decodeSingularBytesField(value: &_storage._userPublicKey) }() case 7: try { try decoder.decodeSingularStringField(value: &_storage._deviceModel) }() case 8: try { try decoder.decodeSingularStringField(value: &_storage._locale) }() case 9: try { try decoder.decodeSingularBytesField(value: &_storage._keyHandle) }() case 12: try { try decoder.decodeSingularInt64Field(value: &_storage._counter) }() case 13: try { try decoder.decodeSingularStringField(value: &_storage._deviceOsVersion) }() case 14: try { try decoder.decodeSingularInt64Field(value: &_storage._deviceOsVersionCode) }() case 15: try { try decoder.decodeSingularStringField(value: &_storage._deviceOsRelease) }() case 16: try { try decoder.decodeSingularStringField(value: &_storage._deviceOsCodename) }() case 17: try { try decoder.decodeSingularStringField(value: &_storage._deviceSoftwareVersion) }() case 18: try { try decoder.decodeSingularInt64Field(value: &_storage._deviceSoftwareVersionCode) }() case 19: try { try decoder.decodeSingularStringField(value: &_storage._deviceSoftwarePackage) }() case 22: try { try decoder.decodeSingularInt32Field(value: &_storage._deviceDisplayDiagonalMils) }() case 24: try { try decoder.decodeSingularInt32Field(value: &_storage._deviceAuthzenVersion) }() case 29: try { try decoder.decodeSingularBytesField(value: &_storage._longDeviceID) }() case 31: try { try decoder.decodeSingularStringField(value: &_storage._deviceManufacturer) }() case 32: try { try decoder.decodeSingularEnumField(value: &_storage._deviceType) }() case 102: try { try decoder.decodeSingularBytesField(value: &_storage._gcmRegistrationID) }() case 103: try { try decoder.decodeSingularBytesField(value: &_storage._deviceMasterKeyHash) }() case 202: try { try decoder.decodeSingularBytesField(value: &_storage._apnRegistrationID) }() case 203: try { try decoder.decodeSingularBoolField(value: &_storage._notificationEnabled) }() case 302: try { try decoder.decodeSingularStringField(value: &_storage._bluetoothMacAddress) }() case 400: try { try decoder.decodeSingularBoolField(value: &_storage._usingSecureScreenlock) }() case 401: try { try decoder.decodeSingularBoolField(value: &_storage._autoUnlockScreenlockSupported) }() case 402: try { try decoder.decodeSingularBoolField(value: &_storage._autoUnlockScreenlockEnabled) }() case 403: try { try decoder.decodeSingularBoolField(value: &_storage._bluetoothRadioSupported) }() case 404: try { try decoder.decodeSingularBoolField(value: &_storage._bluetoothRadioEnabled) }() case 405: try { try decoder.decodeSingularBoolField(value: &_storage._mobileDataSupported) }() case 406: try { try decoder.decodeSingularBoolField(value: &_storage._tetheringSupported) }() case 407: try { try decoder.decodeSingularBoolField(value: &_storage._bleRadioSupported) }() case 408: try { try decoder.decodeSingularBoolField(value: &_storage._pixelExperience) }() case 409: try { try decoder.decodeSingularBoolField(value: &_storage._arcPlusPlus) }() case 410: try { try decoder.decodeSingularBoolField(value: &_storage._isScreenlockStateFlaky) }() case 411: try { try decoder.decodeRepeatedEnumField(value: &_storage._supportedSoftwareFeatures) }() case 412: try { try decoder.decodeRepeatedEnumField(value: &_storage._enabledSoftwareFeatures) }() case 1000: try { try decoder.decodeSingularBytesField(value: &_storage._enrollmentSessionID) }() case 1001: try { try decoder.decodeSingularStringField(value: &_storage._oauthToken) }() default: break } } } } func traverse(visitor: inout V) throws { try withExtendedLifetime(_storage) { (_storage: _StorageClass) in // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every if/case branch local when no optimizations // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and // https://github.com/apple/swift-protobuf/issues/1182 try { if let v = _storage._androidDeviceID { try visitor.visitSingularFixed64Field(value: v, fieldNumber: 1) } }() try { if let v = _storage._userPublicKey { try visitor.visitSingularBytesField(value: v, fieldNumber: 4) } }() try { if let v = _storage._deviceModel { try visitor.visitSingularStringField(value: v, fieldNumber: 7) } }() try { if let v = _storage._locale { try visitor.visitSingularStringField(value: v, fieldNumber: 8) } }() try { if let v = _storage._keyHandle { try visitor.visitSingularBytesField(value: v, fieldNumber: 9) } }() try { if let v = _storage._counter { try visitor.visitSingularInt64Field(value: v, fieldNumber: 12) } }() try { if let v = _storage._deviceOsVersion { try visitor.visitSingularStringField(value: v, fieldNumber: 13) } }() try { if let v = _storage._deviceOsVersionCode { try visitor.visitSingularInt64Field(value: v, fieldNumber: 14) } }() try { if let v = _storage._deviceOsRelease { try visitor.visitSingularStringField(value: v, fieldNumber: 15) } }() try { if let v = _storage._deviceOsCodename { try visitor.visitSingularStringField(value: v, fieldNumber: 16) } }() try { if let v = _storage._deviceSoftwareVersion { try visitor.visitSingularStringField(value: v, fieldNumber: 17) } }() try { if let v = _storage._deviceSoftwareVersionCode { try visitor.visitSingularInt64Field(value: v, fieldNumber: 18) } }() try { if let v = _storage._deviceSoftwarePackage { try visitor.visitSingularStringField(value: v, fieldNumber: 19) } }() try { if let v = _storage._deviceDisplayDiagonalMils { try visitor.visitSingularInt32Field(value: v, fieldNumber: 22) } }() try { if let v = _storage._deviceAuthzenVersion { try visitor.visitSingularInt32Field(value: v, fieldNumber: 24) } }() try { if let v = _storage._longDeviceID { try visitor.visitSingularBytesField(value: v, fieldNumber: 29) } }() try { if let v = _storage._deviceManufacturer { try visitor.visitSingularStringField(value: v, fieldNumber: 31) } }() try { if let v = _storage._deviceType { try visitor.visitSingularEnumField(value: v, fieldNumber: 32) } }() try { if let v = _storage._gcmRegistrationID { try visitor.visitSingularBytesField(value: v, fieldNumber: 102) } }() try { if let v = _storage._deviceMasterKeyHash { try visitor.visitSingularBytesField(value: v, fieldNumber: 103) } }() try { if let v = _storage._apnRegistrationID { try visitor.visitSingularBytesField(value: v, fieldNumber: 202) } }() try { if let v = _storage._notificationEnabled { try visitor.visitSingularBoolField(value: v, fieldNumber: 203) } }() try { if let v = _storage._bluetoothMacAddress { try visitor.visitSingularStringField(value: v, fieldNumber: 302) } }() try { if let v = _storage._usingSecureScreenlock { try visitor.visitSingularBoolField(value: v, fieldNumber: 400) } }() try { if let v = _storage._autoUnlockScreenlockSupported { try visitor.visitSingularBoolField(value: v, fieldNumber: 401) } }() try { if let v = _storage._autoUnlockScreenlockEnabled { try visitor.visitSingularBoolField(value: v, fieldNumber: 402) } }() try { if let v = _storage._bluetoothRadioSupported { try visitor.visitSingularBoolField(value: v, fieldNumber: 403) } }() try { if let v = _storage._bluetoothRadioEnabled { try visitor.visitSingularBoolField(value: v, fieldNumber: 404) } }() try { if let v = _storage._mobileDataSupported { try visitor.visitSingularBoolField(value: v, fieldNumber: 405) } }() try { if let v = _storage._tetheringSupported { try visitor.visitSingularBoolField(value: v, fieldNumber: 406) } }() try { if let v = _storage._bleRadioSupported { try visitor.visitSingularBoolField(value: v, fieldNumber: 407) } }() try { if let v = _storage._pixelExperience { try visitor.visitSingularBoolField(value: v, fieldNumber: 408) } }() try { if let v = _storage._arcPlusPlus { try visitor.visitSingularBoolField(value: v, fieldNumber: 409) } }() try { if let v = _storage._isScreenlockStateFlaky { try visitor.visitSingularBoolField(value: v, fieldNumber: 410) } }() if !_storage._supportedSoftwareFeatures.isEmpty { try visitor.visitRepeatedEnumField(value: _storage._supportedSoftwareFeatures, fieldNumber: 411) } if !_storage._enabledSoftwareFeatures.isEmpty { try visitor.visitRepeatedEnumField(value: _storage._enabledSoftwareFeatures, fieldNumber: 412) } try { if let v = _storage._enrollmentSessionID { try visitor.visitSingularBytesField(value: v, fieldNumber: 1000) } }() try { if let v = _storage._oauthToken { try visitor.visitSingularStringField(value: v, fieldNumber: 1001) } }() } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: Securegcm_GcmDeviceInfo, rhs: Securegcm_GcmDeviceInfo) -> Bool { if lhs._storage !== rhs._storage { let storagesAreEqual: Bool = withExtendedLifetime((lhs._storage, rhs._storage)) { (_args: (_StorageClass, _StorageClass)) in let _storage = _args.0 let rhs_storage = _args.1 if _storage._androidDeviceID != rhs_storage._androidDeviceID {return false} if _storage._gcmRegistrationID != rhs_storage._gcmRegistrationID {return false} if _storage._apnRegistrationID != rhs_storage._apnRegistrationID {return false} if _storage._notificationEnabled != rhs_storage._notificationEnabled {return false} if _storage._bluetoothMacAddress != rhs_storage._bluetoothMacAddress {return false} if _storage._deviceMasterKeyHash != rhs_storage._deviceMasterKeyHash {return false} if _storage._userPublicKey != rhs_storage._userPublicKey {return false} if _storage._deviceModel != rhs_storage._deviceModel {return false} if _storage._locale != rhs_storage._locale {return false} if _storage._keyHandle != rhs_storage._keyHandle {return false} if _storage._counter != rhs_storage._counter {return false} if _storage._deviceOsVersion != rhs_storage._deviceOsVersion {return false} if _storage._deviceOsVersionCode != rhs_storage._deviceOsVersionCode {return false} if _storage._deviceOsRelease != rhs_storage._deviceOsRelease {return false} if _storage._deviceOsCodename != rhs_storage._deviceOsCodename {return false} if _storage._deviceSoftwareVersion != rhs_storage._deviceSoftwareVersion {return false} if _storage._deviceSoftwareVersionCode != rhs_storage._deviceSoftwareVersionCode {return false} if _storage._deviceSoftwarePackage != rhs_storage._deviceSoftwarePackage {return false} if _storage._deviceDisplayDiagonalMils != rhs_storage._deviceDisplayDiagonalMils {return false} if _storage._deviceAuthzenVersion != rhs_storage._deviceAuthzenVersion {return false} if _storage._longDeviceID != rhs_storage._longDeviceID {return false} if _storage._deviceManufacturer != rhs_storage._deviceManufacturer {return false} if _storage._deviceType != rhs_storage._deviceType {return false} if _storage._usingSecureScreenlock != rhs_storage._usingSecureScreenlock {return false} if _storage._autoUnlockScreenlockSupported != rhs_storage._autoUnlockScreenlockSupported {return false} if _storage._autoUnlockScreenlockEnabled != rhs_storage._autoUnlockScreenlockEnabled {return false} if _storage._bluetoothRadioSupported != rhs_storage._bluetoothRadioSupported {return false} if _storage._bluetoothRadioEnabled != rhs_storage._bluetoothRadioEnabled {return false} if _storage._mobileDataSupported != rhs_storage._mobileDataSupported {return false} if _storage._tetheringSupported != rhs_storage._tetheringSupported {return false} if _storage._bleRadioSupported != rhs_storage._bleRadioSupported {return false} if _storage._pixelExperience != rhs_storage._pixelExperience {return false} if _storage._arcPlusPlus != rhs_storage._arcPlusPlus {return false} if _storage._isScreenlockStateFlaky != rhs_storage._isScreenlockStateFlaky {return false} if _storage._supportedSoftwareFeatures != rhs_storage._supportedSoftwareFeatures {return false} if _storage._enabledSoftwareFeatures != rhs_storage._enabledSoftwareFeatures {return false} if _storage._enrollmentSessionID != rhs_storage._enrollmentSessionID {return false} if _storage._oauthToken != rhs_storage._oauthToken {return false} return true } if !storagesAreEqual {return false} } if lhs.unknownFields != rhs.unknownFields {return false} return true } } extension Securegcm_GcmMetadata: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = _protobuf_package + ".GcmMetadata" static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}type\0\u{1}version\0") public var isInitialized: Bool { if self._type == nil {return false} return true } mutating func decodeMessage(decoder: inout D) throws { while let fieldNumber = try decoder.nextFieldNumber() { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { case 1: try { try decoder.decodeSingularEnumField(value: &self._type) }() case 2: try { try decoder.decodeSingularInt32Field(value: &self._version) }() default: break } } } func traverse(visitor: inout V) throws { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every if/case branch local when no optimizations // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and // https://github.com/apple/swift-protobuf/issues/1182 try { if let v = self._type { try visitor.visitSingularEnumField(value: v, fieldNumber: 1) } }() try { if let v = self._version { try visitor.visitSingularInt32Field(value: v, fieldNumber: 2) } }() try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: Securegcm_GcmMetadata, rhs: Securegcm_GcmMetadata) -> Bool { if lhs._type != rhs._type {return false} if lhs._version != rhs._version {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } } extension Securegcm_Tickle: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = _protobuf_package + ".Tickle" static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}expiry_time\0") mutating func decodeMessage(decoder: inout D) throws { while let fieldNumber = try decoder.nextFieldNumber() { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { case 1: try { try decoder.decodeSingularFixed64Field(value: &self._expiryTime) }() default: break } } } func traverse(visitor: inout V) throws { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every if/case branch local when no optimizations // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and // https://github.com/apple/swift-protobuf/issues/1182 try { if let v = self._expiryTime { try visitor.visitSingularFixed64Field(value: v, fieldNumber: 1) } }() try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: Securegcm_Tickle, rhs: Securegcm_Tickle) -> Bool { if lhs._expiryTime != rhs._expiryTime {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } } extension Securegcm_LoginNotificationInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = _protobuf_package + ".LoginNotificationInfo" static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{4}\u{2}creation_time\0\u{1}email\0\u{1}host\0\u{1}source\0\u{3}event_type\0") mutating func decodeMessage(decoder: inout D) throws { while let fieldNumber = try decoder.nextFieldNumber() { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { case 2: try { try decoder.decodeSingularFixed64Field(value: &self._creationTime) }() case 3: try { try decoder.decodeSingularStringField(value: &self._email) }() case 4: try { try decoder.decodeSingularStringField(value: &self._host) }() case 5: try { try decoder.decodeSingularStringField(value: &self._source) }() case 6: try { try decoder.decodeSingularStringField(value: &self._eventType) }() default: break } } } func traverse(visitor: inout V) throws { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every if/case branch local when no optimizations // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and // https://github.com/apple/swift-protobuf/issues/1182 try { if let v = self._creationTime { try visitor.visitSingularFixed64Field(value: v, fieldNumber: 2) } }() try { if let v = self._email { try visitor.visitSingularStringField(value: v, fieldNumber: 3) } }() try { if let v = self._host { try visitor.visitSingularStringField(value: v, fieldNumber: 4) } }() try { if let v = self._source { try visitor.visitSingularStringField(value: v, fieldNumber: 5) } }() try { if let v = self._eventType { try visitor.visitSingularStringField(value: v, fieldNumber: 6) } }() try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: Securegcm_LoginNotificationInfo, rhs: Securegcm_LoginNotificationInfo) -> Bool { if lhs._creationTime != rhs._creationTime {return false} if lhs._email != rhs._email {return false} if lhs._host != rhs._host {return false} if lhs._source != rhs._source {return false} if lhs._eventType != rhs._eventType {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } }