// DO NOT EDIT.
// swift-format-ignore-file
//
// Generated by the Swift generator plugin for the protocol buffer compiler.
// Source: internal/ppdd/ppa_data.proto
//
// For information on using the generated types, please see the documentation:
//   https://github.com/apple/swift-protobuf/

/// This file is auto-generated, DO NOT make any changes here

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
}

enum SAP_Internal_Ppdd_PPARiskLevel: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case riskLevelUnknown // = 0
  case riskLevelNone // = 1
  case riskLevelLow // = 2
  case riskLevelHigh // = 3
  case UNRECOGNIZED(Int)

  init() {
    self = .riskLevelUnknown
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .riskLevelUnknown
    case 1: self = .riskLevelNone
    case 2: self = .riskLevelLow
    case 3: self = .riskLevelHigh
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .riskLevelUnknown: return 0
    case .riskLevelNone: return 1
    case .riskLevelLow: return 2
    case .riskLevelHigh: return 3
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension SAP_Internal_Ppdd_PPARiskLevel: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [SAP_Internal_Ppdd_PPARiskLevel] = [
    .riskLevelUnknown,
    .riskLevelNone,
    .riskLevelLow,
    .riskLevelHigh,
  ]
}

#endif  // swift(>=4.2)

enum SAP_Internal_Ppdd_PPAExposureWindowReportType: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case reportTypeUnknown // = 0
  case reportTypeConfirmedTest // = 1
  case reportTypeConfirmedClinicalDiagnosis // = 2
  case reportTypeSelfReport // = 3
  case reportTypeRecursive // = 4
  case reportTypeRevoked // = 5
  case UNRECOGNIZED(Int)

  init() {
    self = .reportTypeUnknown
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .reportTypeUnknown
    case 1: self = .reportTypeConfirmedTest
    case 2: self = .reportTypeConfirmedClinicalDiagnosis
    case 3: self = .reportTypeSelfReport
    case 4: self = .reportTypeRecursive
    case 5: self = .reportTypeRevoked
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .reportTypeUnknown: return 0
    case .reportTypeConfirmedTest: return 1
    case .reportTypeConfirmedClinicalDiagnosis: return 2
    case .reportTypeSelfReport: return 3
    case .reportTypeRecursive: return 4
    case .reportTypeRevoked: return 5
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension SAP_Internal_Ppdd_PPAExposureWindowReportType: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [SAP_Internal_Ppdd_PPAExposureWindowReportType] = [
    .reportTypeUnknown,
    .reportTypeConfirmedTest,
    .reportTypeConfirmedClinicalDiagnosis,
    .reportTypeSelfReport,
    .reportTypeRecursive,
    .reportTypeRevoked,
  ]
}

#endif  // swift(>=4.2)

enum SAP_Internal_Ppdd_PPAExposureWindowInfectiousness: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case infectiousnessNone // = 0
  case infectiousnessStandard // = 1
  case infectiousnessHigh // = 2
  case UNRECOGNIZED(Int)

  init() {
    self = .infectiousnessNone
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .infectiousnessNone
    case 1: self = .infectiousnessStandard
    case 2: self = .infectiousnessHigh
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .infectiousnessNone: return 0
    case .infectiousnessStandard: return 1
    case .infectiousnessHigh: return 2
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension SAP_Internal_Ppdd_PPAExposureWindowInfectiousness: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [SAP_Internal_Ppdd_PPAExposureWindowInfectiousness] = [
    .infectiousnessNone,
    .infectiousnessStandard,
    .infectiousnessHigh,
  ]
}

#endif  // swift(>=4.2)

enum SAP_Internal_Ppdd_PPATestResult: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case testResultUnknown // = 0

  /// PCR Test
  case testResultPending // = 1
  case testResultNegative // = 2
  case testResultPositive // = 3
  case testResultInvalid // = 4

  /// Rapid Antigen Test
  case testResultRatPending // = 5
  case testResultRatNegative // = 6
  case testResultRatPositive // = 7
  case testResultRatInvalid // = 8
  case UNRECOGNIZED(Int)

  init() {
    self = .testResultUnknown
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .testResultUnknown
    case 1: self = .testResultPending
    case 2: self = .testResultNegative
    case 3: self = .testResultPositive
    case 4: self = .testResultInvalid
    case 5: self = .testResultRatPending
    case 6: self = .testResultRatNegative
    case 7: self = .testResultRatPositive
    case 8: self = .testResultRatInvalid
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .testResultUnknown: return 0
    case .testResultPending: return 1
    case .testResultNegative: return 2
    case .testResultPositive: return 3
    case .testResultInvalid: return 4
    case .testResultRatPending: return 5
    case .testResultRatNegative: return 6
    case .testResultRatPositive: return 7
    case .testResultRatInvalid: return 8
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension SAP_Internal_Ppdd_PPATestResult: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [SAP_Internal_Ppdd_PPATestResult] = [
    .testResultUnknown,
    .testResultPending,
    .testResultNegative,
    .testResultPositive,
    .testResultInvalid,
    .testResultRatPending,
    .testResultRatNegative,
    .testResultRatPositive,
    .testResultRatInvalid,
  ]
}

#endif  // swift(>=4.2)

enum SAP_Internal_Ppdd_PPALastSubmissionFlowScreen: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case submissionFlowScreenUnknown // = 0
  case submissionFlowScreenOther // = 1
  case submissionFlowScreenTestResult // = 2
  case submissionFlowScreenWarnOthers // = 3
  case submissionFlowScreenSymptoms // = 4
  case submissionFlowScreenSymptomOnset // = 5
  case UNRECOGNIZED(Int)

  init() {
    self = .submissionFlowScreenUnknown
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .submissionFlowScreenUnknown
    case 1: self = .submissionFlowScreenOther
    case 2: self = .submissionFlowScreenTestResult
    case 3: self = .submissionFlowScreenWarnOthers
    case 4: self = .submissionFlowScreenSymptoms
    case 5: self = .submissionFlowScreenSymptomOnset
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .submissionFlowScreenUnknown: return 0
    case .submissionFlowScreenOther: return 1
    case .submissionFlowScreenTestResult: return 2
    case .submissionFlowScreenWarnOthers: return 3
    case .submissionFlowScreenSymptoms: return 4
    case .submissionFlowScreenSymptomOnset: return 5
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension SAP_Internal_Ppdd_PPALastSubmissionFlowScreen: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [SAP_Internal_Ppdd_PPALastSubmissionFlowScreen] = [
    .submissionFlowScreenUnknown,
    .submissionFlowScreenOther,
    .submissionFlowScreenTestResult,
    .submissionFlowScreenWarnOthers,
    .submissionFlowScreenSymptoms,
    .submissionFlowScreenSymptomOnset,
  ]
}

#endif  // swift(>=4.2)

enum SAP_Internal_Ppdd_PPAFederalState: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case federalStateUnspecified // = 0
  case federalStateBw // = 1
  case federalStateBy // = 2
  case federalStateBe // = 3
  case federalStateBb // = 4
  case federalStateHb // = 5
  case federalStateHh // = 6
  case federalStateHe // = 7
  case federalStateMv // = 8
  case federalStateNi // = 9
  case federalStateNrw // = 10
  case federalStateRp // = 11
  case federalStateSl // = 12
  case federalStateSn // = 13
  case federalStateSt // = 14
  case federalStateSh // = 15
  case federalStateTh // = 16
  case UNRECOGNIZED(Int)

  init() {
    self = .federalStateUnspecified
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .federalStateUnspecified
    case 1: self = .federalStateBw
    case 2: self = .federalStateBy
    case 3: self = .federalStateBe
    case 4: self = .federalStateBb
    case 5: self = .federalStateHb
    case 6: self = .federalStateHh
    case 7: self = .federalStateHe
    case 8: self = .federalStateMv
    case 9: self = .federalStateNi
    case 10: self = .federalStateNrw
    case 11: self = .federalStateRp
    case 12: self = .federalStateSl
    case 13: self = .federalStateSn
    case 14: self = .federalStateSt
    case 15: self = .federalStateSh
    case 16: self = .federalStateTh
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .federalStateUnspecified: return 0
    case .federalStateBw: return 1
    case .federalStateBy: return 2
    case .federalStateBe: return 3
    case .federalStateBb: return 4
    case .federalStateHb: return 5
    case .federalStateHh: return 6
    case .federalStateHe: return 7
    case .federalStateMv: return 8
    case .federalStateNi: return 9
    case .federalStateNrw: return 10
    case .federalStateRp: return 11
    case .federalStateSl: return 12
    case .federalStateSn: return 13
    case .federalStateSt: return 14
    case .federalStateSh: return 15
    case .federalStateTh: return 16
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension SAP_Internal_Ppdd_PPAFederalState: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [SAP_Internal_Ppdd_PPAFederalState] = [
    .federalStateUnspecified,
    .federalStateBw,
    .federalStateBy,
    .federalStateBe,
    .federalStateBb,
    .federalStateHb,
    .federalStateHh,
    .federalStateHe,
    .federalStateMv,
    .federalStateNi,
    .federalStateNrw,
    .federalStateRp,
    .federalStateSl,
    .federalStateSn,
    .federalStateSt,
    .federalStateSh,
    .federalStateTh,
  ]
}

#endif  // swift(>=4.2)

enum SAP_Internal_Ppdd_PPAAgeGroup: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case ageGroupUnspecified // = 0
  case ageGroup0To29 // = 1
  case ageGroup30To59 // = 2
  case ageGroupFrom60 // = 3
  case UNRECOGNIZED(Int)

  init() {
    self = .ageGroupUnspecified
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .ageGroupUnspecified
    case 1: self = .ageGroup0To29
    case 2: self = .ageGroup30To59
    case 3: self = .ageGroupFrom60
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .ageGroupUnspecified: return 0
    case .ageGroup0To29: return 1
    case .ageGroup30To59: return 2
    case .ageGroupFrom60: return 3
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension SAP_Internal_Ppdd_PPAAgeGroup: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [SAP_Internal_Ppdd_PPAAgeGroup] = [
    .ageGroupUnspecified,
    .ageGroup0To29,
    .ageGroup30To59,
    .ageGroupFrom60,
  ]
}

#endif  // swift(>=4.2)

struct SAP_Internal_Ppdd_PPADataIOS {
  // 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.

  /// for Plausible Deniability; can be ignored by the server
  var requestPadding: Data = Data()

  /// 0..1 entries expected
  var exposureRiskMetadataSet: [SAP_Internal_Ppdd_ExposureRiskMetadata] = []

  /// 0..n entries expected
  var newExposureWindows: [SAP_Internal_Ppdd_PPANewExposureWindow] = []

  /// 0..2 entries expected
  var testResultMetadataSet: [SAP_Internal_Ppdd_PPATestResultMetadata] = []

  /// 0..2 entries expected
  var keySubmissionMetadataSet: [SAP_Internal_Ppdd_PPAKeySubmissionMetadata] = []

  var clientMetadata: SAP_Internal_Ppdd_PPAClientMetadataIOS {
    get {return _clientMetadata ?? SAP_Internal_Ppdd_PPAClientMetadataIOS()}
    set {_clientMetadata = newValue}
  }
  /// Returns true if `clientMetadata` has been explicitly set.
  var hasClientMetadata: Bool {return self._clientMetadata != nil}
  /// Clears the value of `clientMetadata`. Subsequent reads from it will return its default value.
  mutating func clearClientMetadata() {self._clientMetadata = nil}

  var userMetadata: SAP_Internal_Ppdd_PPAUserMetadata {
    get {return _userMetadata ?? SAP_Internal_Ppdd_PPAUserMetadata()}
    set {_userMetadata = newValue}
  }
  /// Returns true if `userMetadata` has been explicitly set.
  var hasUserMetadata: Bool {return self._userMetadata != nil}
  /// Clears the value of `userMetadata`. Subsequent reads from it will return its default value.
  mutating func clearUserMetadata() {self._userMetadata = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _clientMetadata: SAP_Internal_Ppdd_PPAClientMetadataIOS? = nil
  fileprivate var _userMetadata: SAP_Internal_Ppdd_PPAUserMetadata? = nil
}

struct SAP_Internal_Ppdd_PPADataAndroid {
  // 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.

  /// for Plausible Deniability; can be ignored by the server
  var requestPadding: Data = Data()

  /// 0..1 entries expected
  var exposureRiskMetadataSet: [SAP_Internal_Ppdd_ExposureRiskMetadata] = []

  /// 0..n entries expected
  var newExposureWindows: [SAP_Internal_Ppdd_PPANewExposureWindow] = []

  /// 0..2 entries expected
  var testResultMetadataSet: [SAP_Internal_Ppdd_PPATestResultMetadata] = []

  /// 0..2 entries expected
  var keySubmissionMetadataSet: [SAP_Internal_Ppdd_PPAKeySubmissionMetadata] = []

  var clientMetadata: SAP_Internal_Ppdd_PPAClientMetadataAndroid {
    get {return _clientMetadata ?? SAP_Internal_Ppdd_PPAClientMetadataAndroid()}
    set {_clientMetadata = newValue}
  }
  /// Returns true if `clientMetadata` has been explicitly set.
  var hasClientMetadata: Bool {return self._clientMetadata != nil}
  /// Clears the value of `clientMetadata`. Subsequent reads from it will return its default value.
  mutating func clearClientMetadata() {self._clientMetadata = nil}

  var userMetadata: SAP_Internal_Ppdd_PPAUserMetadata {
    get {return _userMetadata ?? SAP_Internal_Ppdd_PPAUserMetadata()}
    set {_userMetadata = newValue}
  }
  /// Returns true if `userMetadata` has been explicitly set.
  var hasUserMetadata: Bool {return self._userMetadata != nil}
  /// Clears the value of `userMetadata`. Subsequent reads from it will return its default value.
  mutating func clearUserMetadata() {self._userMetadata = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _clientMetadata: SAP_Internal_Ppdd_PPAClientMetadataAndroid? = nil
  fileprivate var _userMetadata: SAP_Internal_Ppdd_PPAUserMetadata? = nil
}

struct SAP_Internal_Ppdd_ExposureRiskMetadata {
  // 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.

  /// BLE-based proximity tracing
  var riskLevel: SAP_Internal_Ppdd_PPARiskLevel = .riskLevelUnknown

  var riskLevelChangedComparedToPreviousSubmission: Bool = false

  var mostRecentDateAtRiskLevel: Int64 = 0

  var dateChangedComparedToPreviousSubmission: Bool = false

  /// check-in-based presence tracing
  var ptRiskLevel: SAP_Internal_Ppdd_PPARiskLevel = .riskLevelUnknown

  var ptRiskLevelChangedComparedToPreviousSubmission: Bool = false

  var ptMostRecentDateAtRiskLevel: Int64 = 0

  var ptDateChangedComparedToPreviousSubmission: Bool = false

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct SAP_Internal_Ppdd_PPANewExposureWindow {
  // 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 exposureWindow: SAP_Internal_Ppdd_PPAExposureWindow {
    get {return _exposureWindow ?? SAP_Internal_Ppdd_PPAExposureWindow()}
    set {_exposureWindow = newValue}
  }
  /// Returns true if `exposureWindow` has been explicitly set.
  var hasExposureWindow: Bool {return self._exposureWindow != nil}
  /// Clears the value of `exposureWindow`. Subsequent reads from it will return its default value.
  mutating func clearExposureWindow() {self._exposureWindow = nil}

  var transmissionRiskLevel: Int32 = 0

  var normalizedTime: Double = 0

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _exposureWindow: SAP_Internal_Ppdd_PPAExposureWindow? = nil
}

struct SAP_Internal_Ppdd_PPATestResultMetadata {
  // 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 testResult: SAP_Internal_Ppdd_PPATestResult = .testResultUnknown

  var hoursSinceTestRegistration: Int32 = 0

  /// BLE-based proximity tracing
  var riskLevelAtTestRegistration: SAP_Internal_Ppdd_PPARiskLevel = .riskLevelUnknown

  var daysSinceMostRecentDateAtRiskLevelAtTestRegistration: Int32 = 0

  var hoursSinceHighRiskWarningAtTestRegistration: Int32 = 0

  /// check-in-based presence tracing
  var ptRiskLevelAtTestRegistration: SAP_Internal_Ppdd_PPARiskLevel = .riskLevelUnknown

  var ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration: Int32 = 0

  var ptHoursSinceHighRiskWarningAtTestRegistration: Int32 = 0

  var exposureWindowsAtTestRegistration: [SAP_Internal_Ppdd_PPANewExposureWindow] = []

  var exposureWindowsUntilTestResult: [SAP_Internal_Ppdd_PPANewExposureWindow] = []

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct SAP_Internal_Ppdd_PPAKeySubmissionMetadata {
  // 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 submitted: Bool = false

  var submittedInBackground: Bool = false

  var submittedAfterCancel: Bool = false

  var submittedAfterSymptomFlow: Bool = false

  var advancedConsentGiven: Bool = false

  var lastSubmissionFlowScreen: SAP_Internal_Ppdd_PPALastSubmissionFlowScreen = .submissionFlowScreenUnknown

  var hoursSinceTestResult: Int32 = 0

  var hoursSinceTestRegistration: Int32 = 0

  /// BLE-based proximity tracing
  var daysSinceMostRecentDateAtRiskLevelAtTestRegistration: Int32 = 0

  var hoursSinceHighRiskWarningAtTestRegistration: Int32 = 0

  var submittedWithTeleTan: Bool = false

  var submittedAfterRapidAntigenTest: Bool = false

  /// check-in-based presence tracing
  var ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration: Int32 = 0

  var ptHoursSinceHighRiskWarningAtTestRegistration: Int32 = 0

  var submittedWithCheckIns: SAP_Internal_Ppdd_TriStateBoolean = .tsbUnspecified

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct SAP_Internal_Ppdd_PPAExposureWindow {
  // 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 date: Int64 = 0

  var reportType: SAP_Internal_Ppdd_PPAExposureWindowReportType = .reportTypeUnknown

  var infectiousness: SAP_Internal_Ppdd_PPAExposureWindowInfectiousness = .infectiousnessNone

  var calibrationConfidence: Int32 = 0

  var scanInstances: [SAP_Internal_Ppdd_PPAExposureWindowScanInstance] = []

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct SAP_Internal_Ppdd_PPAExposureWindowScanInstance {
  // 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 typicalAttenuation: Int32 = 0

  var minAttenuation: Int32 = 0

  var secondsSinceLastScan: Int32 = 0

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct SAP_Internal_Ppdd_PPAClientMetadataIOS {
  // 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 cwaVersion: SAP_Internal_Ppdd_PPASemanticVersion {
    get {return _cwaVersion ?? SAP_Internal_Ppdd_PPASemanticVersion()}
    set {_cwaVersion = newValue}
  }
  /// Returns true if `cwaVersion` has been explicitly set.
  var hasCwaVersion: Bool {return self._cwaVersion != nil}
  /// Clears the value of `cwaVersion`. Subsequent reads from it will return its default value.
  mutating func clearCwaVersion() {self._cwaVersion = nil}

  var iosVersion: SAP_Internal_Ppdd_PPASemanticVersion {
    get {return _iosVersion ?? SAP_Internal_Ppdd_PPASemanticVersion()}
    set {_iosVersion = newValue}
  }
  /// Returns true if `iosVersion` has been explicitly set.
  var hasIosVersion: Bool {return self._iosVersion != nil}
  /// Clears the value of `iosVersion`. Subsequent reads from it will return its default value.
  mutating func clearIosVersion() {self._iosVersion = nil}

  var appConfigEtag: String = String()

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _cwaVersion: SAP_Internal_Ppdd_PPASemanticVersion? = nil
  fileprivate var _iosVersion: SAP_Internal_Ppdd_PPASemanticVersion? = nil
}

struct SAP_Internal_Ppdd_PPAClientMetadataAndroid {
  // 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 cwaVersion: SAP_Internal_Ppdd_PPASemanticVersion {
    get {return _cwaVersion ?? SAP_Internal_Ppdd_PPASemanticVersion()}
    set {_cwaVersion = newValue}
  }
  /// Returns true if `cwaVersion` has been explicitly set.
  var hasCwaVersion: Bool {return self._cwaVersion != nil}
  /// Clears the value of `cwaVersion`. Subsequent reads from it will return its default value.
  mutating func clearCwaVersion() {self._cwaVersion = nil}

  var androidApiLevel: Int64 = 0

  var enfVersion: Int64 = 0

  var appConfigEtag: String = String()

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _cwaVersion: SAP_Internal_Ppdd_PPASemanticVersion? = nil
}

struct SAP_Internal_Ppdd_PPAUserMetadata {
  // 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 federalState: SAP_Internal_Ppdd_PPAFederalState = .federalStateUnspecified

  /// KreisIdSurvNet
  var administrativeUnit: Int32 = 0

  var ageGroup: SAP_Internal_Ppdd_PPAAgeGroup = .ageGroupUnspecified

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct SAP_Internal_Ppdd_PPASemanticVersion {
  // 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 major: UInt32 = 0

  var minor: UInt32 = 0

  var patch: UInt32 = 0

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

// MARK: - Code below here is support for the SwiftProtobuf runtime.

fileprivate let _protobuf_package = "SAP.internal.ppdd"

extension SAP_Internal_Ppdd_PPARiskLevel: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "RISK_LEVEL_UNKNOWN"),
    1: .same(proto: "RISK_LEVEL_NONE"),
    2: .same(proto: "RISK_LEVEL_LOW"),
    3: .same(proto: "RISK_LEVEL_HIGH"),
  ]
}

extension SAP_Internal_Ppdd_PPAExposureWindowReportType: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "REPORT_TYPE_UNKNOWN"),
    1: .same(proto: "REPORT_TYPE_CONFIRMED_TEST"),
    2: .same(proto: "REPORT_TYPE_CONFIRMED_CLINICAL_DIAGNOSIS"),
    3: .same(proto: "REPORT_TYPE_SELF_REPORT"),
    4: .same(proto: "REPORT_TYPE_RECURSIVE"),
    5: .same(proto: "REPORT_TYPE_REVOKED"),
  ]
}

extension SAP_Internal_Ppdd_PPAExposureWindowInfectiousness: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "INFECTIOUSNESS_NONE"),
    1: .same(proto: "INFECTIOUSNESS_STANDARD"),
    2: .same(proto: "INFECTIOUSNESS_HIGH"),
  ]
}

extension SAP_Internal_Ppdd_PPATestResult: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "TEST_RESULT_UNKNOWN"),
    1: .same(proto: "TEST_RESULT_PENDING"),
    2: .same(proto: "TEST_RESULT_NEGATIVE"),
    3: .same(proto: "TEST_RESULT_POSITIVE"),
    4: .same(proto: "TEST_RESULT_INVALID"),
    5: .same(proto: "TEST_RESULT_RAT_PENDING"),
    6: .same(proto: "TEST_RESULT_RAT_NEGATIVE"),
    7: .same(proto: "TEST_RESULT_RAT_POSITIVE"),
    8: .same(proto: "TEST_RESULT_RAT_INVALID"),
  ]
}

extension SAP_Internal_Ppdd_PPALastSubmissionFlowScreen: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "SUBMISSION_FLOW_SCREEN_UNKNOWN"),
    1: .same(proto: "SUBMISSION_FLOW_SCREEN_OTHER"),
    2: .same(proto: "SUBMISSION_FLOW_SCREEN_TEST_RESULT"),
    3: .same(proto: "SUBMISSION_FLOW_SCREEN_WARN_OTHERS"),
    4: .same(proto: "SUBMISSION_FLOW_SCREEN_SYMPTOMS"),
    5: .same(proto: "SUBMISSION_FLOW_SCREEN_SYMPTOM_ONSET"),
  ]
}

extension SAP_Internal_Ppdd_PPAFederalState: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "FEDERAL_STATE_UNSPECIFIED"),
    1: .same(proto: "FEDERAL_STATE_BW"),
    2: .same(proto: "FEDERAL_STATE_BY"),
    3: .same(proto: "FEDERAL_STATE_BE"),
    4: .same(proto: "FEDERAL_STATE_BB"),
    5: .same(proto: "FEDERAL_STATE_HB"),
    6: .same(proto: "FEDERAL_STATE_HH"),
    7: .same(proto: "FEDERAL_STATE_HE"),
    8: .same(proto: "FEDERAL_STATE_MV"),
    9: .same(proto: "FEDERAL_STATE_NI"),
    10: .same(proto: "FEDERAL_STATE_NRW"),
    11: .same(proto: "FEDERAL_STATE_RP"),
    12: .same(proto: "FEDERAL_STATE_SL"),
    13: .same(proto: "FEDERAL_STATE_SN"),
    14: .same(proto: "FEDERAL_STATE_ST"),
    15: .same(proto: "FEDERAL_STATE_SH"),
    16: .same(proto: "FEDERAL_STATE_TH"),
  ]
}

extension SAP_Internal_Ppdd_PPAAgeGroup: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "AGE_GROUP_UNSPECIFIED"),
    1: .same(proto: "AGE_GROUP_0_TO_29"),
    2: .same(proto: "AGE_GROUP_30_TO_59"),
    3: .same(proto: "AGE_GROUP_FROM_60"),
  ]
}

extension SAP_Internal_Ppdd_PPADataIOS: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPADataIOS"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "requestPadding"),
    2: .same(proto: "exposureRiskMetadataSet"),
    3: .same(proto: "newExposureWindows"),
    4: .same(proto: "testResultMetadataSet"),
    5: .same(proto: "keySubmissionMetadataSet"),
    6: .same(proto: "clientMetadata"),
    7: .same(proto: "userMetadata"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularBytesField(value: &self.requestPadding) }()
      case 2: try { try decoder.decodeRepeatedMessageField(value: &self.exposureRiskMetadataSet) }()
      case 3: try { try decoder.decodeRepeatedMessageField(value: &self.newExposureWindows) }()
      case 4: try { try decoder.decodeRepeatedMessageField(value: &self.testResultMetadataSet) }()
      case 5: try { try decoder.decodeRepeatedMessageField(value: &self.keySubmissionMetadataSet) }()
      case 6: try { try decoder.decodeSingularMessageField(value: &self._clientMetadata) }()
      case 7: try { try decoder.decodeSingularMessageField(value: &self._userMetadata) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(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
    if !self.requestPadding.isEmpty {
      try visitor.visitSingularBytesField(value: self.requestPadding, fieldNumber: 1)
    }
    if !self.exposureRiskMetadataSet.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.exposureRiskMetadataSet, fieldNumber: 2)
    }
    if !self.newExposureWindows.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.newExposureWindows, fieldNumber: 3)
    }
    if !self.testResultMetadataSet.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.testResultMetadataSet, fieldNumber: 4)
    }
    if !self.keySubmissionMetadataSet.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.keySubmissionMetadataSet, fieldNumber: 5)
    }
    try { if let v = self._clientMetadata {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 6)
    } }()
    try { if let v = self._userMetadata {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 7)
    } }()
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPADataIOS, rhs: SAP_Internal_Ppdd_PPADataIOS) -> Bool {
    if lhs.requestPadding != rhs.requestPadding {return false}
    if lhs.exposureRiskMetadataSet != rhs.exposureRiskMetadataSet {return false}
    if lhs.newExposureWindows != rhs.newExposureWindows {return false}
    if lhs.testResultMetadataSet != rhs.testResultMetadataSet {return false}
    if lhs.keySubmissionMetadataSet != rhs.keySubmissionMetadataSet {return false}
    if lhs._clientMetadata != rhs._clientMetadata {return false}
    if lhs._userMetadata != rhs._userMetadata {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPADataAndroid: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPADataAndroid"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "requestPadding"),
    2: .same(proto: "exposureRiskMetadataSet"),
    3: .same(proto: "newExposureWindows"),
    4: .same(proto: "testResultMetadataSet"),
    5: .same(proto: "keySubmissionMetadataSet"),
    6: .same(proto: "clientMetadata"),
    7: .same(proto: "userMetadata"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularBytesField(value: &self.requestPadding) }()
      case 2: try { try decoder.decodeRepeatedMessageField(value: &self.exposureRiskMetadataSet) }()
      case 3: try { try decoder.decodeRepeatedMessageField(value: &self.newExposureWindows) }()
      case 4: try { try decoder.decodeRepeatedMessageField(value: &self.testResultMetadataSet) }()
      case 5: try { try decoder.decodeRepeatedMessageField(value: &self.keySubmissionMetadataSet) }()
      case 6: try { try decoder.decodeSingularMessageField(value: &self._clientMetadata) }()
      case 7: try { try decoder.decodeSingularMessageField(value: &self._userMetadata) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(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
    if !self.requestPadding.isEmpty {
      try visitor.visitSingularBytesField(value: self.requestPadding, fieldNumber: 1)
    }
    if !self.exposureRiskMetadataSet.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.exposureRiskMetadataSet, fieldNumber: 2)
    }
    if !self.newExposureWindows.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.newExposureWindows, fieldNumber: 3)
    }
    if !self.testResultMetadataSet.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.testResultMetadataSet, fieldNumber: 4)
    }
    if !self.keySubmissionMetadataSet.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.keySubmissionMetadataSet, fieldNumber: 5)
    }
    try { if let v = self._clientMetadata {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 6)
    } }()
    try { if let v = self._userMetadata {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 7)
    } }()
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPADataAndroid, rhs: SAP_Internal_Ppdd_PPADataAndroid) -> Bool {
    if lhs.requestPadding != rhs.requestPadding {return false}
    if lhs.exposureRiskMetadataSet != rhs.exposureRiskMetadataSet {return false}
    if lhs.newExposureWindows != rhs.newExposureWindows {return false}
    if lhs.testResultMetadataSet != rhs.testResultMetadataSet {return false}
    if lhs.keySubmissionMetadataSet != rhs.keySubmissionMetadataSet {return false}
    if lhs._clientMetadata != rhs._clientMetadata {return false}
    if lhs._userMetadata != rhs._userMetadata {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_ExposureRiskMetadata: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".ExposureRiskMetadata"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "riskLevel"),
    2: .same(proto: "riskLevelChangedComparedToPreviousSubmission"),
    3: .same(proto: "mostRecentDateAtRiskLevel"),
    4: .same(proto: "dateChangedComparedToPreviousSubmission"),
    5: .same(proto: "ptRiskLevel"),
    6: .same(proto: "ptRiskLevelChangedComparedToPreviousSubmission"),
    7: .same(proto: "ptMostRecentDateAtRiskLevel"),
    8: .same(proto: "ptDateChangedComparedToPreviousSubmission"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.riskLevel) }()
      case 2: try { try decoder.decodeSingularBoolField(value: &self.riskLevelChangedComparedToPreviousSubmission) }()
      case 3: try { try decoder.decodeSingularInt64Field(value: &self.mostRecentDateAtRiskLevel) }()
      case 4: try { try decoder.decodeSingularBoolField(value: &self.dateChangedComparedToPreviousSubmission) }()
      case 5: try { try decoder.decodeSingularEnumField(value: &self.ptRiskLevel) }()
      case 6: try { try decoder.decodeSingularBoolField(value: &self.ptRiskLevelChangedComparedToPreviousSubmission) }()
      case 7: try { try decoder.decodeSingularInt64Field(value: &self.ptMostRecentDateAtRiskLevel) }()
      case 8: try { try decoder.decodeSingularBoolField(value: &self.ptDateChangedComparedToPreviousSubmission) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.riskLevel != .riskLevelUnknown {
      try visitor.visitSingularEnumField(value: self.riskLevel, fieldNumber: 1)
    }
    if self.riskLevelChangedComparedToPreviousSubmission != false {
      try visitor.visitSingularBoolField(value: self.riskLevelChangedComparedToPreviousSubmission, fieldNumber: 2)
    }
    if self.mostRecentDateAtRiskLevel != 0 {
      try visitor.visitSingularInt64Field(value: self.mostRecentDateAtRiskLevel, fieldNumber: 3)
    }
    if self.dateChangedComparedToPreviousSubmission != false {
      try visitor.visitSingularBoolField(value: self.dateChangedComparedToPreviousSubmission, fieldNumber: 4)
    }
    if self.ptRiskLevel != .riskLevelUnknown {
      try visitor.visitSingularEnumField(value: self.ptRiskLevel, fieldNumber: 5)
    }
    if self.ptRiskLevelChangedComparedToPreviousSubmission != false {
      try visitor.visitSingularBoolField(value: self.ptRiskLevelChangedComparedToPreviousSubmission, fieldNumber: 6)
    }
    if self.ptMostRecentDateAtRiskLevel != 0 {
      try visitor.visitSingularInt64Field(value: self.ptMostRecentDateAtRiskLevel, fieldNumber: 7)
    }
    if self.ptDateChangedComparedToPreviousSubmission != false {
      try visitor.visitSingularBoolField(value: self.ptDateChangedComparedToPreviousSubmission, fieldNumber: 8)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_ExposureRiskMetadata, rhs: SAP_Internal_Ppdd_ExposureRiskMetadata) -> Bool {
    if lhs.riskLevel != rhs.riskLevel {return false}
    if lhs.riskLevelChangedComparedToPreviousSubmission != rhs.riskLevelChangedComparedToPreviousSubmission {return false}
    if lhs.mostRecentDateAtRiskLevel != rhs.mostRecentDateAtRiskLevel {return false}
    if lhs.dateChangedComparedToPreviousSubmission != rhs.dateChangedComparedToPreviousSubmission {return false}
    if lhs.ptRiskLevel != rhs.ptRiskLevel {return false}
    if lhs.ptRiskLevelChangedComparedToPreviousSubmission != rhs.ptRiskLevelChangedComparedToPreviousSubmission {return false}
    if lhs.ptMostRecentDateAtRiskLevel != rhs.ptMostRecentDateAtRiskLevel {return false}
    if lhs.ptDateChangedComparedToPreviousSubmission != rhs.ptDateChangedComparedToPreviousSubmission {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPANewExposureWindow: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPANewExposureWindow"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "exposureWindow"),
    2: .same(proto: "transmissionRiskLevel"),
    3: .same(proto: "normalizedTime"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularMessageField(value: &self._exposureWindow) }()
      case 2: try { try decoder.decodeSingularInt32Field(value: &self.transmissionRiskLevel) }()
      case 3: try { try decoder.decodeSingularDoubleField(value: &self.normalizedTime) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(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._exposureWindow {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    } }()
    if self.transmissionRiskLevel != 0 {
      try visitor.visitSingularInt32Field(value: self.transmissionRiskLevel, fieldNumber: 2)
    }
    if self.normalizedTime != 0 {
      try visitor.visitSingularDoubleField(value: self.normalizedTime, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPANewExposureWindow, rhs: SAP_Internal_Ppdd_PPANewExposureWindow) -> Bool {
    if lhs._exposureWindow != rhs._exposureWindow {return false}
    if lhs.transmissionRiskLevel != rhs.transmissionRiskLevel {return false}
    if lhs.normalizedTime != rhs.normalizedTime {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPATestResultMetadata: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPATestResultMetadata"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "testResult"),
    2: .same(proto: "hoursSinceTestRegistration"),
    3: .same(proto: "riskLevelAtTestRegistration"),
    4: .same(proto: "daysSinceMostRecentDateAtRiskLevelAtTestRegistration"),
    5: .same(proto: "hoursSinceHighRiskWarningAtTestRegistration"),
    6: .same(proto: "ptRiskLevelAtTestRegistration"),
    7: .same(proto: "ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration"),
    8: .same(proto: "ptHoursSinceHighRiskWarningAtTestRegistration"),
    9: .same(proto: "exposureWindowsAtTestRegistration"),
    10: .same(proto: "exposureWindowsUntilTestResult"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.testResult) }()
      case 2: try { try decoder.decodeSingularInt32Field(value: &self.hoursSinceTestRegistration) }()
      case 3: try { try decoder.decodeSingularEnumField(value: &self.riskLevelAtTestRegistration) }()
      case 4: try { try decoder.decodeSingularInt32Field(value: &self.daysSinceMostRecentDateAtRiskLevelAtTestRegistration) }()
      case 5: try { try decoder.decodeSingularInt32Field(value: &self.hoursSinceHighRiskWarningAtTestRegistration) }()
      case 6: try { try decoder.decodeSingularEnumField(value: &self.ptRiskLevelAtTestRegistration) }()
      case 7: try { try decoder.decodeSingularInt32Field(value: &self.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration) }()
      case 8: try { try decoder.decodeSingularInt32Field(value: &self.ptHoursSinceHighRiskWarningAtTestRegistration) }()
      case 9: try { try decoder.decodeRepeatedMessageField(value: &self.exposureWindowsAtTestRegistration) }()
      case 10: try { try decoder.decodeRepeatedMessageField(value: &self.exposureWindowsUntilTestResult) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.testResult != .testResultUnknown {
      try visitor.visitSingularEnumField(value: self.testResult, fieldNumber: 1)
    }
    if self.hoursSinceTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.hoursSinceTestRegistration, fieldNumber: 2)
    }
    if self.riskLevelAtTestRegistration != .riskLevelUnknown {
      try visitor.visitSingularEnumField(value: self.riskLevelAtTestRegistration, fieldNumber: 3)
    }
    if self.daysSinceMostRecentDateAtRiskLevelAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.daysSinceMostRecentDateAtRiskLevelAtTestRegistration, fieldNumber: 4)
    }
    if self.hoursSinceHighRiskWarningAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.hoursSinceHighRiskWarningAtTestRegistration, fieldNumber: 5)
    }
    if self.ptRiskLevelAtTestRegistration != .riskLevelUnknown {
      try visitor.visitSingularEnumField(value: self.ptRiskLevelAtTestRegistration, fieldNumber: 6)
    }
    if self.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration, fieldNumber: 7)
    }
    if self.ptHoursSinceHighRiskWarningAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.ptHoursSinceHighRiskWarningAtTestRegistration, fieldNumber: 8)
    }
    if !self.exposureWindowsAtTestRegistration.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.exposureWindowsAtTestRegistration, fieldNumber: 9)
    }
    if !self.exposureWindowsUntilTestResult.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.exposureWindowsUntilTestResult, fieldNumber: 10)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPATestResultMetadata, rhs: SAP_Internal_Ppdd_PPATestResultMetadata) -> Bool {
    if lhs.testResult != rhs.testResult {return false}
    if lhs.hoursSinceTestRegistration != rhs.hoursSinceTestRegistration {return false}
    if lhs.riskLevelAtTestRegistration != rhs.riskLevelAtTestRegistration {return false}
    if lhs.daysSinceMostRecentDateAtRiskLevelAtTestRegistration != rhs.daysSinceMostRecentDateAtRiskLevelAtTestRegistration {return false}
    if lhs.hoursSinceHighRiskWarningAtTestRegistration != rhs.hoursSinceHighRiskWarningAtTestRegistration {return false}
    if lhs.ptRiskLevelAtTestRegistration != rhs.ptRiskLevelAtTestRegistration {return false}
    if lhs.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration != rhs.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration {return false}
    if lhs.ptHoursSinceHighRiskWarningAtTestRegistration != rhs.ptHoursSinceHighRiskWarningAtTestRegistration {return false}
    if lhs.exposureWindowsAtTestRegistration != rhs.exposureWindowsAtTestRegistration {return false}
    if lhs.exposureWindowsUntilTestResult != rhs.exposureWindowsUntilTestResult {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPAKeySubmissionMetadata: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPAKeySubmissionMetadata"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "submitted"),
    2: .same(proto: "submittedInBackground"),
    3: .same(proto: "submittedAfterCancel"),
    4: .same(proto: "submittedAfterSymptomFlow"),
    5: .same(proto: "advancedConsentGiven"),
    6: .same(proto: "lastSubmissionFlowScreen"),
    7: .same(proto: "hoursSinceTestResult"),
    8: .same(proto: "hoursSinceTestRegistration"),
    9: .same(proto: "daysSinceMostRecentDateAtRiskLevelAtTestRegistration"),
    10: .same(proto: "hoursSinceHighRiskWarningAtTestRegistration"),
    11: .same(proto: "submittedWithTeleTAN"),
    12: .same(proto: "submittedAfterRapidAntigenTest"),
    13: .same(proto: "ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration"),
    14: .same(proto: "ptHoursSinceHighRiskWarningAtTestRegistration"),
    15: .same(proto: "submittedWithCheckIns"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularBoolField(value: &self.submitted) }()
      case 2: try { try decoder.decodeSingularBoolField(value: &self.submittedInBackground) }()
      case 3: try { try decoder.decodeSingularBoolField(value: &self.submittedAfterCancel) }()
      case 4: try { try decoder.decodeSingularBoolField(value: &self.submittedAfterSymptomFlow) }()
      case 5: try { try decoder.decodeSingularBoolField(value: &self.advancedConsentGiven) }()
      case 6: try { try decoder.decodeSingularEnumField(value: &self.lastSubmissionFlowScreen) }()
      case 7: try { try decoder.decodeSingularInt32Field(value: &self.hoursSinceTestResult) }()
      case 8: try { try decoder.decodeSingularInt32Field(value: &self.hoursSinceTestRegistration) }()
      case 9: try { try decoder.decodeSingularInt32Field(value: &self.daysSinceMostRecentDateAtRiskLevelAtTestRegistration) }()
      case 10: try { try decoder.decodeSingularInt32Field(value: &self.hoursSinceHighRiskWarningAtTestRegistration) }()
      case 11: try { try decoder.decodeSingularBoolField(value: &self.submittedWithTeleTan) }()
      case 12: try { try decoder.decodeSingularBoolField(value: &self.submittedAfterRapidAntigenTest) }()
      case 13: try { try decoder.decodeSingularInt32Field(value: &self.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration) }()
      case 14: try { try decoder.decodeSingularInt32Field(value: &self.ptHoursSinceHighRiskWarningAtTestRegistration) }()
      case 15: try { try decoder.decodeSingularEnumField(value: &self.submittedWithCheckIns) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.submitted != false {
      try visitor.visitSingularBoolField(value: self.submitted, fieldNumber: 1)
    }
    if self.submittedInBackground != false {
      try visitor.visitSingularBoolField(value: self.submittedInBackground, fieldNumber: 2)
    }
    if self.submittedAfterCancel != false {
      try visitor.visitSingularBoolField(value: self.submittedAfterCancel, fieldNumber: 3)
    }
    if self.submittedAfterSymptomFlow != false {
      try visitor.visitSingularBoolField(value: self.submittedAfterSymptomFlow, fieldNumber: 4)
    }
    if self.advancedConsentGiven != false {
      try visitor.visitSingularBoolField(value: self.advancedConsentGiven, fieldNumber: 5)
    }
    if self.lastSubmissionFlowScreen != .submissionFlowScreenUnknown {
      try visitor.visitSingularEnumField(value: self.lastSubmissionFlowScreen, fieldNumber: 6)
    }
    if self.hoursSinceTestResult != 0 {
      try visitor.visitSingularInt32Field(value: self.hoursSinceTestResult, fieldNumber: 7)
    }
    if self.hoursSinceTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.hoursSinceTestRegistration, fieldNumber: 8)
    }
    if self.daysSinceMostRecentDateAtRiskLevelAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.daysSinceMostRecentDateAtRiskLevelAtTestRegistration, fieldNumber: 9)
    }
    if self.hoursSinceHighRiskWarningAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.hoursSinceHighRiskWarningAtTestRegistration, fieldNumber: 10)
    }
    if self.submittedWithTeleTan != false {
      try visitor.visitSingularBoolField(value: self.submittedWithTeleTan, fieldNumber: 11)
    }
    if self.submittedAfterRapidAntigenTest != false {
      try visitor.visitSingularBoolField(value: self.submittedAfterRapidAntigenTest, fieldNumber: 12)
    }
    if self.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration, fieldNumber: 13)
    }
    if self.ptHoursSinceHighRiskWarningAtTestRegistration != 0 {
      try visitor.visitSingularInt32Field(value: self.ptHoursSinceHighRiskWarningAtTestRegistration, fieldNumber: 14)
    }
    if self.submittedWithCheckIns != .tsbUnspecified {
      try visitor.visitSingularEnumField(value: self.submittedWithCheckIns, fieldNumber: 15)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPAKeySubmissionMetadata, rhs: SAP_Internal_Ppdd_PPAKeySubmissionMetadata) -> Bool {
    if lhs.submitted != rhs.submitted {return false}
    if lhs.submittedInBackground != rhs.submittedInBackground {return false}
    if lhs.submittedAfterCancel != rhs.submittedAfterCancel {return false}
    if lhs.submittedAfterSymptomFlow != rhs.submittedAfterSymptomFlow {return false}
    if lhs.advancedConsentGiven != rhs.advancedConsentGiven {return false}
    if lhs.lastSubmissionFlowScreen != rhs.lastSubmissionFlowScreen {return false}
    if lhs.hoursSinceTestResult != rhs.hoursSinceTestResult {return false}
    if lhs.hoursSinceTestRegistration != rhs.hoursSinceTestRegistration {return false}
    if lhs.daysSinceMostRecentDateAtRiskLevelAtTestRegistration != rhs.daysSinceMostRecentDateAtRiskLevelAtTestRegistration {return false}
    if lhs.hoursSinceHighRiskWarningAtTestRegistration != rhs.hoursSinceHighRiskWarningAtTestRegistration {return false}
    if lhs.submittedWithTeleTan != rhs.submittedWithTeleTan {return false}
    if lhs.submittedAfterRapidAntigenTest != rhs.submittedAfterRapidAntigenTest {return false}
    if lhs.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration != rhs.ptDaysSinceMostRecentDateAtRiskLevelAtTestRegistration {return false}
    if lhs.ptHoursSinceHighRiskWarningAtTestRegistration != rhs.ptHoursSinceHighRiskWarningAtTestRegistration {return false}
    if lhs.submittedWithCheckIns != rhs.submittedWithCheckIns {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPAExposureWindow: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPAExposureWindow"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "date"),
    2: .same(proto: "reportType"),
    3: .same(proto: "infectiousness"),
    4: .same(proto: "calibrationConfidence"),
    5: .same(proto: "scanInstances"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularInt64Field(value: &self.date) }()
      case 2: try { try decoder.decodeSingularEnumField(value: &self.reportType) }()
      case 3: try { try decoder.decodeSingularEnumField(value: &self.infectiousness) }()
      case 4: try { try decoder.decodeSingularInt32Field(value: &self.calibrationConfidence) }()
      case 5: try { try decoder.decodeRepeatedMessageField(value: &self.scanInstances) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.date != 0 {
      try visitor.visitSingularInt64Field(value: self.date, fieldNumber: 1)
    }
    if self.reportType != .reportTypeUnknown {
      try visitor.visitSingularEnumField(value: self.reportType, fieldNumber: 2)
    }
    if self.infectiousness != .infectiousnessNone {
      try visitor.visitSingularEnumField(value: self.infectiousness, fieldNumber: 3)
    }
    if self.calibrationConfidence != 0 {
      try visitor.visitSingularInt32Field(value: self.calibrationConfidence, fieldNumber: 4)
    }
    if !self.scanInstances.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.scanInstances, fieldNumber: 5)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPAExposureWindow, rhs: SAP_Internal_Ppdd_PPAExposureWindow) -> Bool {
    if lhs.date != rhs.date {return false}
    if lhs.reportType != rhs.reportType {return false}
    if lhs.infectiousness != rhs.infectiousness {return false}
    if lhs.calibrationConfidence != rhs.calibrationConfidence {return false}
    if lhs.scanInstances != rhs.scanInstances {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPAExposureWindowScanInstance: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPAExposureWindowScanInstance"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "typicalAttenuation"),
    2: .same(proto: "minAttenuation"),
    3: .same(proto: "secondsSinceLastScan"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularInt32Field(value: &self.typicalAttenuation) }()
      case 2: try { try decoder.decodeSingularInt32Field(value: &self.minAttenuation) }()
      case 3: try { try decoder.decodeSingularInt32Field(value: &self.secondsSinceLastScan) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.typicalAttenuation != 0 {
      try visitor.visitSingularInt32Field(value: self.typicalAttenuation, fieldNumber: 1)
    }
    if self.minAttenuation != 0 {
      try visitor.visitSingularInt32Field(value: self.minAttenuation, fieldNumber: 2)
    }
    if self.secondsSinceLastScan != 0 {
      try visitor.visitSingularInt32Field(value: self.secondsSinceLastScan, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPAExposureWindowScanInstance, rhs: SAP_Internal_Ppdd_PPAExposureWindowScanInstance) -> Bool {
    if lhs.typicalAttenuation != rhs.typicalAttenuation {return false}
    if lhs.minAttenuation != rhs.minAttenuation {return false}
    if lhs.secondsSinceLastScan != rhs.secondsSinceLastScan {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPAClientMetadataIOS: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPAClientMetadataIOS"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "cwaVersion"),
    2: .same(proto: "iosVersion"),
    3: .same(proto: "appConfigETag"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularMessageField(value: &self._cwaVersion) }()
      case 2: try { try decoder.decodeSingularMessageField(value: &self._iosVersion) }()
      case 3: try { try decoder.decodeSingularStringField(value: &self.appConfigEtag) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(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._cwaVersion {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    } }()
    try { if let v = self._iosVersion {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
    } }()
    if !self.appConfigEtag.isEmpty {
      try visitor.visitSingularStringField(value: self.appConfigEtag, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPAClientMetadataIOS, rhs: SAP_Internal_Ppdd_PPAClientMetadataIOS) -> Bool {
    if lhs._cwaVersion != rhs._cwaVersion {return false}
    if lhs._iosVersion != rhs._iosVersion {return false}
    if lhs.appConfigEtag != rhs.appConfigEtag {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPAClientMetadataAndroid: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPAClientMetadataAndroid"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "cwaVersion"),
    2: .same(proto: "androidApiLevel"),
    3: .same(proto: "enfVersion"),
    4: .same(proto: "appConfigETag"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularMessageField(value: &self._cwaVersion) }()
      case 2: try { try decoder.decodeSingularInt64Field(value: &self.androidApiLevel) }()
      case 3: try { try decoder.decodeSingularInt64Field(value: &self.enfVersion) }()
      case 4: try { try decoder.decodeSingularStringField(value: &self.appConfigEtag) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(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._cwaVersion {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    } }()
    if self.androidApiLevel != 0 {
      try visitor.visitSingularInt64Field(value: self.androidApiLevel, fieldNumber: 2)
    }
    if self.enfVersion != 0 {
      try visitor.visitSingularInt64Field(value: self.enfVersion, fieldNumber: 3)
    }
    if !self.appConfigEtag.isEmpty {
      try visitor.visitSingularStringField(value: self.appConfigEtag, fieldNumber: 4)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPAClientMetadataAndroid, rhs: SAP_Internal_Ppdd_PPAClientMetadataAndroid) -> Bool {
    if lhs._cwaVersion != rhs._cwaVersion {return false}
    if lhs.androidApiLevel != rhs.androidApiLevel {return false}
    if lhs.enfVersion != rhs.enfVersion {return false}
    if lhs.appConfigEtag != rhs.appConfigEtag {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPAUserMetadata: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPAUserMetadata"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "federalState"),
    2: .same(proto: "administrativeUnit"),
    3: .same(proto: "ageGroup"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.federalState) }()
      case 2: try { try decoder.decodeSingularInt32Field(value: &self.administrativeUnit) }()
      case 3: try { try decoder.decodeSingularEnumField(value: &self.ageGroup) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.federalState != .federalStateUnspecified {
      try visitor.visitSingularEnumField(value: self.federalState, fieldNumber: 1)
    }
    if self.administrativeUnit != 0 {
      try visitor.visitSingularInt32Field(value: self.administrativeUnit, fieldNumber: 2)
    }
    if self.ageGroup != .ageGroupUnspecified {
      try visitor.visitSingularEnumField(value: self.ageGroup, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPAUserMetadata, rhs: SAP_Internal_Ppdd_PPAUserMetadata) -> Bool {
    if lhs.federalState != rhs.federalState {return false}
    if lhs.administrativeUnit != rhs.administrativeUnit {return false}
    if lhs.ageGroup != rhs.ageGroup {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SAP_Internal_Ppdd_PPASemanticVersion: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PPASemanticVersion"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "major"),
    2: .same(proto: "minor"),
    3: .same(proto: "patch"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(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.decodeSingularUInt32Field(value: &self.major) }()
      case 2: try { try decoder.decodeSingularUInt32Field(value: &self.minor) }()
      case 3: try { try decoder.decodeSingularUInt32Field(value: &self.patch) }()
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.major != 0 {
      try visitor.visitSingularUInt32Field(value: self.major, fieldNumber: 1)
    }
    if self.minor != 0 {
      try visitor.visitSingularUInt32Field(value: self.minor, fieldNumber: 2)
    }
    if self.patch != 0 {
      try visitor.visitSingularUInt32Field(value: self.patch, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SAP_Internal_Ppdd_PPASemanticVersion, rhs: SAP_Internal_Ppdd_PPASemanticVersion) -> Bool {
    if lhs.major != rhs.major {return false}
    if lhs.minor != rhs.minor {return false}
    if lhs.patch != rhs.patch {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}
