// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/telemetry_control/v1/keyapis_telemetry_control_dictionary_v1.proto

// This CPP symbol can be defined to use imports that match up to the framework
// imports needed when using CocoaPods.
#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
 #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
#endif

#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
 #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
#else
 #import "GPBProtocolBuffers_RuntimeSupport.h"
#endif

#if GOOGLE_PROTOBUF_OBJC_VERSION < 30007
#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
#endif
#if 30007 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
#endif

#import <stdatomic.h>

#import "keyapis/telemetry_control/v1/KeyapisTelemetryControlDictionaryV1.pbobjc.h"
#import "google/api/Annotations.pbobjc.h"
#import "google/api/FieldBehavior.pbobjc.h"
// @@protoc_insertion_point(imports)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdirect-ivar-access"
#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"

#pragma mark - Objective-C Class declarations
// Forward declarations of Objective-C classes that we can use as
// static values in struct initializers.
// We don't use [Foo class] because it is not a static value.
GPBObjCClassDeclaration(GPBStringValue);
GPBObjCClassDeclaration(GPBTimestamp);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DictionaryMrf);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DictionaryPermission);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1DictionaryRf);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse);

#pragma mark - KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root

@implementation KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root

+ (GPBExtensionRegistry*)extensionRegistry {
  // This is called by +initialize so there is no need to worry
  // about thread safety and initialization of registry.
  static GPBExtensionRegistry* registry = nil;
  if (!registry) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    registry = [[GPBExtensionRegistry alloc] init];
    // Merge in the imports (direct or indirect) that defined extensions.
    [registry addExtensions:[GAPIAnnotationsRoot extensionRegistry]];
    [registry addExtensions:[GAPIFieldBehaviorRoot extensionRegistry]];
  }
  return registry;
}

@end

static GPBFileDescription KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription = {
  .package = "keyapis.telemetry_control.v1",
  .prefix = "KEYAPISTELEMETRYCONTROLV1",
  .syntax = GPBFileSyntaxProto3
};

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "OrderByTypeUnknown\000Id\000Title\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_OrderByTypeUnknown,
        KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_Id,
        KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_Title,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_OrderByTypeUnknown:
    case KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_Id:
    case KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_Title:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "DirectionTypeUnknown\000Desc\000Asc\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_DirectionTypeUnknown,
        KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_Desc,
        KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_Asc,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_DirectionTypeUnknown:
    case KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_Desc:
    case KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_Asc:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "MrfTypeUnknown\000Tsentr\000Yug\000Ural\000Sibir\000Sev"
        "eroZapad\000DalniyVostok\000Volga\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_MrfTypeUnknown,
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Tsentr,
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Yug,
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Ural,
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Sibir,
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_SeveroZapad,
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_DalniyVostok,
        KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Volga,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_MrfTypeUnknown:
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Tsentr:
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Yug:
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Ural:
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Sibir:
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_SeveroZapad:
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_DalniyVostok:
    case KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Volga:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "PermissionTypeUnknown\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_PermissionTypeUnknown,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_PermissionTypeUnknown:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "RfTypeUnknown\000Ufa\000Kirov\000Ivanovo\000Kaluga\000K"
        "ostroma\000Kursk\000Lipetsk\000Mosoblast\000Orel\000Rya"
        "zan\000Tambov\000Tver\000Yaroslavl\000Smolensk\000Tula\000"
        "Moscow\000Eao\000Kurgan\000Tumen\000Hanty\000Amur\000Kamch"
        "atka\000Magadan\000Primorye\000Sakhalin\000Khabarovs"
        "k\000Chita\000Chukotka\000Archangelsk\000Vologda\000Kal"
        "iningrad\000Karelia\000Komi\000Lenoblast\000Murmansk"
        "\000Novgorod\000Pskov\000Spb\000Altai\000Buryatiya\000Irku"
        "tsk\000Kemerovo\000Krasnoyarsk\000Omsk\000Hakasiya\000R"
        "altay\000Tuva\000Tomsk\000Orenburg\000Belgorod\000Sakha"
        "\000Ekt\000Volgograd\000Yamal\000Chelyabinsk\000Perm\000Ma"
        "ryel\000Penza\000Ingushetia\000Nalchik\000Elista\000Ros"
        "tov\000Mahachkala\000Mordoviya\000Kazan\000Samara\000Sa"
        "ratov\000Udmurtiya\000Ulyanovsk\000Chuvashiya\000Nno"
        "vgorod\000Bryansk\000Vladimir\000Voronezh\000Vladika"
        "vkaz\000Stavropol\000Cherkessk\000Maykop\000Astrakha"
        "n\000Krasnodar\000Test\000Novosibirsk\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_RfTypeUnknown,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ufa,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kirov,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ivanovo,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kaluga,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kostroma,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kursk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Lipetsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mosoblast,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Orel,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ryazan,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tambov,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tver,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Yaroslavl,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Smolensk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tula,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Moscow,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Eao,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kurgan,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tumen,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Hanty,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Amur,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kamchatka,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Magadan,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Primorye,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Sakhalin,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Khabarovsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chita,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chukotka,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Archangelsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vologda,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kaliningrad,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Karelia,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Komi,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Lenoblast,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Murmansk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Novgorod,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Pskov,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Spb,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Altai,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Buryatiya,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Irkutsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kemerovo,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Krasnoyarsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Omsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Hakasiya,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Raltay,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tuva,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tomsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Orenburg,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Belgorod,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Sakha,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ekt,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Volgograd,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Yamal,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chelyabinsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Perm,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Maryel,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Penza,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ingushetia,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Nalchik,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Elista,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Rostov,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mahachkala,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mordoviya,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kazan,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Samara,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Saratov,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Udmurtiya,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ulyanovsk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chuvashiya,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Nnovgorod,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Bryansk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vladimir,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Voronezh,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vladikavkaz,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Stavropol,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Cherkessk,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Maykop,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Astrakhan,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Krasnodar,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Test,
        KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Novosibirsk,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_RfTypeUnknown:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ufa:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kirov:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ivanovo:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kaluga:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kostroma:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kursk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Lipetsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mosoblast:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Orel:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ryazan:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tambov:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tver:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Yaroslavl:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Smolensk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tula:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Moscow:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Eao:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kurgan:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tumen:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Hanty:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Amur:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kamchatka:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Magadan:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Primorye:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Sakhalin:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Khabarovsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chita:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chukotka:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Archangelsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vologda:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kaliningrad:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Karelia:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Komi:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Lenoblast:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Murmansk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Novgorod:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Pskov:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Spb:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Altai:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Buryatiya:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Irkutsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kemerovo:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Krasnoyarsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Omsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Hakasiya:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Raltay:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tuva:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tomsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Orenburg:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Belgorod:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Sakha:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ekt:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Volgograd:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Yamal:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chelyabinsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Perm:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Maryel:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Penza:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ingushetia:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Nalchik:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Elista:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Rostov:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mahachkala:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mordoviya:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kazan:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Samara:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Saratov:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Udmurtiya:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ulyanovsk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chuvashiya:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Nnovgorod:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Bryansk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vladimir:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Voronezh:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vladikavkaz:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Stavropol:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Cherkessk:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Maykop:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Astrakhan:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Krasnodar:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Test:
    case KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Novosibirsk:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest

@implementation KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest

@dynamic hasData_p, data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;
} KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel),
        .number = KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest_FieldNumber_Data_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest)
                                   messageName:@"PostDictionaryDeviceModelRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse

@implementation KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;
} KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel),
        .number = KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse)
                                   messageName:@"PostDictionaryDeviceModelResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest

@implementation KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest

@dynamic id_p;

typedef struct KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "id_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest)
                                   messageName:@"DeleteDictionaryDeviceModelRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse

@implementation KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse


typedef struct KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse)
                                   messageName:@"DeleteDictionaryDeviceModelResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest

@dynamic id_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "id_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest)
                                   messageName:@"GetDictionaryDeviceModelRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel),
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse)
                                   messageName:@"GetDictionaryDeviceModelResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest

@dynamic paginationOneOfCase;
@dynamic hasFilter, filter;
@dynamic paging;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter *filter;
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *paging;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "filter",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter),
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "paging",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging),
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_FieldNumber_Paging,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest__storage_, paging),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest)
                                   messageName:@"GetDictionaryDeviceModelListRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "pagination",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest


typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest)
                                   messageName:@"GetDictionaryMrfListRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest


typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest)
                                   messageName:@"GetDictionaryRfListRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging

@implementation KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging

@dynamic orderByType;
@dynamic directionType;
@dynamic limit;
@dynamic offset;

typedef struct KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType orderByType;
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType directionType;
  int32_t limit;
  int32_t offset;
} KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "orderByType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_EnumDescriptor,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_OrderByType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging__storage_, orderByType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "directionType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_EnumDescriptor,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_DirectionType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging__storage_, directionType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "limit",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_Limit,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging__storage_, limit),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "offset",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_Offset,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging__storage_, offset),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging)
                                   messageName:@"DictionaryDeviceModelPaging"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_OrderByType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_OrderByType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_DirectionType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_DirectionType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter

@implementation KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter

@dynamic titlesArray, titlesArray_Count;
@dynamic modelKindsArray, modelKindsArray_Count;

typedef struct KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter__storage_ {
  uint32_t _has_storage_[1];
  NSMutableArray *titlesArray;
  NSMutableArray *modelKindsArray;
} KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "titlesArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter_FieldNumber_TitlesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter__storage_, titlesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "modelKindsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter_FieldNumber_ModelKindsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter__storage_, modelKindsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter)
                                   messageName:@"DictionaryDeviceModelFilter"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel),
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse)
                                   messageName:@"GetDictionaryDeviceModelListResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf *data_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryMrf),
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse)
                                   messageName:@"GetDictionaryMrfListResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryMrf

@implementation KEYAPISTELEMETRYCONTROLV1DictionaryMrf

@dynamic id_p;
@dynamic hasCreatedAt, createdAt;
@dynamic hasChangedAt, changedAt;
@dynamic hasTitle, title;
@dynamic hasCode, code;

typedef struct KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  GPBTimestamp *createdAt;
  GPBTimestamp *changedAt;
  GPBStringValue *title;
  GPBStringValue *code;
} KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "id_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "createdAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_CreatedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_, createdAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_ChangedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "title",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_Title,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_, title),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "code",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_Code,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_, code),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryMrf)
                                   messageName:@"DictionaryMrf"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DictionaryMrf__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYCONTROLV1DictionaryRf *data_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryRf),
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse)
                                   messageName:@"GetDictionaryRfListResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryPermission

@implementation KEYAPISTELEMETRYCONTROLV1DictionaryPermission

@dynamic permissionType;

typedef struct KEYAPISTELEMETRYCONTROLV1DictionaryPermission__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType permissionType;
} KEYAPISTELEMETRYCONTROLV1DictionaryPermission__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "permissionType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_EnumDescriptor,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryPermission_FieldNumber_PermissionType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryPermission__storage_, permissionType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryPermission)
                                   messageName:@"DictionaryPermission"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DictionaryPermission__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryPermission *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1DictionaryPermission descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYCONTROLV1DictionaryPermission_FieldNumber_PermissionType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryPermission *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1DictionaryPermission descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYCONTROLV1DictionaryPermission_FieldNumber_PermissionType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryRf

@implementation KEYAPISTELEMETRYCONTROLV1DictionaryRf

@dynamic id_p;
@dynamic hasCreatedAt, createdAt;
@dynamic hasChangedAt, changedAt;
@dynamic hasTitle, title;
@dynamic hasCode, code;
@dynamic mrfId;

typedef struct KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  int32_t mrfId;
  GPBTimestamp *createdAt;
  GPBTimestamp *changedAt;
  GPBStringValue *title;
  GPBStringValue *code;
} KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "id_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "createdAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_CreatedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_, createdAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_ChangedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "title",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_Title,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_, title),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "code",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_Code,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_, code),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "mrfId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_MrfId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_, mrfId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryRf)
                                   messageName:@"DictionaryRf"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DictionaryRf__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest

@dynamic hasFilter, filter;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter *filter;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "filter",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter),
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest)
                                   messageName:@"GetDictionaryDeviceModelCountRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse)
                                   messageName:@"GetDictionaryDeviceModelCountResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest


typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest)
                                   messageName:@"GetDictionaryMrfCountRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse)
                                   messageName:@"GetDictionaryMrfCountResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest


typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest)
                                   messageName:@"GetDictionaryRfCountRequest"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse

@implementation KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse)
                                   messageName:@"GetDictionaryRfCountResponse"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel

@implementation KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel

@dynamic id_p;
@dynamic hasCreatedAt, createdAt;
@dynamic hasChangedAt, changedAt;
@dynamic hasTitle, title;
@dynamic hasProtocol, protocol;
@dynamic hasModelKind, modelKind;

typedef struct KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  GPBTimestamp *createdAt;
  GPBTimestamp *changedAt;
  GPBStringValue *title;
  GPBStringValue *protocol;
  GPBStringValue *modelKind;
} KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "id_p",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "createdAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_CreatedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_, createdAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_ChangedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "title",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_Title,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_, title),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "protocol",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_Protocol,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_, protocol),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "modelKind",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_ModelKind,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_, modelKind),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel)
                                   messageName:@"DictionaryDeviceModel"
                               fileDescription:&KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end


#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
