// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/device/v1/keyapis_device_events_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/device/v1/KeyapisDeviceEventsV1.pbobjc.h"
#import "google/api/FieldBehavior.pbobjc.h"
#import "keyapis/device/v1/KeyapisDeviceDeviceV1.pbobjc.h"
#import "keyapis/device/v1/KeyapisDeviceAccessV1.pbobjc.h"
#import "google/api/Annotations.pbobjc.h"
#import "google/api/Visibility.pbobjc.h"
// @@protoc_insertion_point(imports)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#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(GPBBoolValue);
GPBObjCClassDeclaration(GPBInt32Value);
GPBObjCClassDeclaration(GPBStringValue);
GPBObjCClassDeclaration(GPBTimestamp);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ActivateCmsPhoneFailTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ActivateCmsPhonesTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddCodesFailTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddCodesSuccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddCodesTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddRfidsFailTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddRfidsSuccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddRfidsTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddSl3RfidsTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid);
GPBObjCClassDeclaration(KEYAPISDEVICEV1BlockCmsPhoneFailTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1BlockCmsPhoneSuccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1BlockCmsPhonesTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone);
GPBObjCClassDeclaration(KEYAPISDEVICEV1CmsAvailableTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1CmsServiceAvailableTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1Code);
GPBObjCClassDeclaration(KEYAPISDEVICEV1CodeError);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceResultTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceTask_Gate);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ConfigureDeviceTask_Sl3);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ControlDeviceResultTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ControlDeviceResultTask_Settings);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ControlDeviceTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ControlDeviceTask_Autocollect);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ControlDeviceTask_Concierge);
GPBObjCClassDeclaration(KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition);
GPBObjCClassDeclaration(KEYAPISDEVICEV1CreateDeviceAccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteCodesFailTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteCodesSuccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteCodesTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteDeviceAccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteRfidsFailTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteRfidsSuccessTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteRfidsTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteSipAccountTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteSl3RfidsTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid);
GPBObjCClassDeclaration(KEYAPISDEVICEV1EmergencyCallSettings);
GPBObjCClassDeclaration(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter);
GPBObjCClassDeclaration(KEYAPISDEVICEV1OpenAccessPointTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1OpenTask);
GPBObjCClassDeclaration(KEYAPISDEVICEV1Preset);
GPBObjCClassDeclaration(KEYAPISDEVICEV1Rfid);
GPBObjCClassDeclaration(KEYAPISDEVICEV1RfidError);
GPBObjCClassDeclaration(KEYAPISDEVICEV1SipRoom);
GPBObjCClassDeclaration(KEYAPISDEVICEV1SipRoomError);

#pragma mark - KEYAPISDEVICEV1KeyapisDeviceEventsV1Root

@implementation KEYAPISDEVICEV1KeyapisDeviceEventsV1Root

+ (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]];
    [registry addExtensions:[GAPIVisibilityRoot extensionRegistry]];
  }
  return registry;
}

@end

static GPBFileDescription KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription = {
  .package = "keyapis.device.v1",
  .prefix = "KEYAPISDEVICEV1",
  .syntax = GPBFileSyntaxProto3
};

#pragma mark - Enum KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType

GPBEnumDescriptor *KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "StatusTypeUnknown\000Success\000Error\000";
    static const int32_t values[] = {
        KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_StatusTypeUnknown,
        KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_Success,
        KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_Error,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_StatusTypeUnknown:
    case KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_Success:
    case KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_Error:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceTask

@implementation KEYAPISDEVICEV1ConfigureDeviceTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic hasPreset, preset;
@dynamic hasSipAccount, sipAccount;
@dynamic sipRoomsArray, sipRoomsArray_Count;
@dynamic hasGate, gate;
@dynamic rfidsArray, rfidsArray_Count;
@dynamic codesArray, codesArray_Count;
@dynamic ntpTimezone;
@dynamic hasSl3, sl3;
@dynamic hasEmergencyCallSettings, emergencyCallSettings;

typedef struct KEYAPISDEVICEV1ConfigureDeviceTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  KEYAPISDEVICEV1Preset *preset;
  KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount *sipAccount;
  NSMutableArray *sipRoomsArray;
  KEYAPISDEVICEV1ConfigureDeviceTask_Gate *gate;
  NSMutableArray *rfidsArray;
  NSMutableArray *codesArray;
  NSString *ntpTimezone;
  KEYAPISDEVICEV1ConfigureDeviceTask_Sl3 *sl3;
  KEYAPISDEVICEV1EmergencyCallSettings *emergencyCallSettings;
} KEYAPISDEVICEV1ConfigureDeviceTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "preset",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Preset),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_Preset,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, preset),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sipAccount",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_SipAccount,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, sipAccount),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sipRoomsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1SipRoom),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_SipRoomsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, sipRoomsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "gate",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_Gate,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, gate),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "rfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Rfid),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_RfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, rfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "codesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Code),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_CodesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, codesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "ntpTimezone",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_NtpTimezone,
        .hasIndex = 9,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, ntpTimezone),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "sl3",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Sl3),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_Sl3,
        .hasIndex = 10,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, sl3),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "emergencyCallSettings",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1EmergencyCallSettings),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_FieldNumber_EmergencyCallSettings,
        .hasIndex = 11,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask__storage_, emergencyCallSettings),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask)
                                   messageName:@"ConfigureDeviceTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceTask__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 - KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount

@implementation KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount

@dynamic name;
@dynamic number;
@dynamic user;
@dynamic password;

typedef struct KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount__storage_ {
  uint32_t _has_storage_[1];
  NSString *name;
  NSString *number;
  NSString *user;
  NSString *password;
} KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount__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 = "name",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount_FieldNumber_Name,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount__storage_, name),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "number",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount_FieldNumber_Number,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount__storage_, number),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "user",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount_FieldNumber_User,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount__storage_, user),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount_FieldNumber_Password,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount)
                                   messageName:@"SipAccount"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceTask_Gate

@implementation KEYAPISDEVICEV1ConfigureDeviceTask_Gate

@dynamic isActive;
@dynamic relaySettingsArray, relaySettingsArray_Count;
@dynamic roomRangesArray, roomRangesArray_Count;

typedef struct KEYAPISDEVICEV1ConfigureDeviceTask_Gate__storage_ {
  uint32_t _has_storage_[1];
  NSMutableArray *relaySettingsArray;
  NSMutableArray *roomRangesArray;
} KEYAPISDEVICEV1ConfigureDeviceTask_Gate__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 = "isActive",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_FieldNumber_IsActive,
        .hasIndex = 0,
        .offset = 1,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "relaySettingsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_FieldNumber_RelaySettingsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate__storage_, relaySettingsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "roomRangesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_FieldNumber_RoomRangesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate__storage_, roomRangesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate)
                                   messageName:@"Gate"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings

@implementation KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings

@dynamic isActive;
@dynamic relayIndex;

typedef struct KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings__storage_ {
  uint32_t _has_storage_[1];
  int32_t relayIndex;
} KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings__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 = "isActive",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings_FieldNumber_IsActive,
        .hasIndex = 0,
        .offset = 1,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "relayIndex",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings_FieldNumber_RelayIndex,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings__storage_, relayIndex),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings)
                                   messageName:@"RelaySettings"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RelaySettings__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange

@implementation KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange

@dynamic address;
@dynamic prefix;
@dynamic firstRoomNumber;
@dynamic lastRoomNumber;

typedef struct KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange__storage_ {
  uint32_t _has_storage_[1];
  NSString *address;
  NSString *prefix;
  NSString *firstRoomNumber;
  NSString *lastRoomNumber;
} KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange__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 = "address",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange_FieldNumber_Address,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange__storage_, address),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "prefix",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange_FieldNumber_Prefix,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange__storage_, prefix),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "firstRoomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange_FieldNumber_FirstRoomNumber,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange__storage_, firstRoomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "lastRoomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange_FieldNumber_LastRoomNumber,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange__storage_, lastRoomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange)
                                   messageName:@"RoomRange"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceTask_Gate_RoomRange__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile

@implementation KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile

@dynamic sectorNumber;
@dynamic blockNumber;
@dynamic aesKey;
@dynamic startIndex;
@dynamic endIndex;

typedef struct KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__storage_ {
  uint32_t _has_storage_[1];
  int32_t sectorNumber;
  int32_t blockNumber;
  int32_t startIndex;
  int32_t endIndex;
  NSString *aesKey;
} KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__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 = "sectorNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile_FieldNumber_SectorNumber,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__storage_, sectorNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "blockNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile_FieldNumber_BlockNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__storage_, blockNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "aesKey",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile_FieldNumber_AesKey,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__storage_, aesKey),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "startIndex",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile_FieldNumber_StartIndex,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__storage_, startIndex),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "endIndex",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile_FieldNumber_EndIndex,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__storage_, endIndex),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile)
                                   messageName:@"EncryptionProfile"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceTask_Sl3

@implementation KEYAPISDEVICEV1ConfigureDeviceTask_Sl3

@dynamic isEnabled;
@dynamic hasEncryptionProfile, encryptionProfile;

typedef struct KEYAPISDEVICEV1ConfigureDeviceTask_Sl3__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile *encryptionProfile;
} KEYAPISDEVICEV1ConfigureDeviceTask_Sl3__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 = "isEnabled",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Sl3_FieldNumber_IsEnabled,
        .hasIndex = 0,
        .offset = 1,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "encryptionProfile",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_EncryptionProfile),
        .number = KEYAPISDEVICEV1ConfigureDeviceTask_Sl3_FieldNumber_EncryptionProfile,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceTask_Sl3__storage_, encryptionProfile),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Sl3)
                                   messageName:@"Sl3"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceTask_Sl3__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1EmergencyCallSettings

@implementation KEYAPISDEVICEV1EmergencyCallSettings

@dynamic isCallAvailable;
@dynamic hasEmergencyCallParameter, emergencyCallParameter;

typedef struct KEYAPISDEVICEV1EmergencyCallSettings__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter *emergencyCallParameter;
} KEYAPISDEVICEV1EmergencyCallSettings__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 = "isCallAvailable",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1EmergencyCallSettings_FieldNumber_IsCallAvailable,
        .hasIndex = 0,
        .offset = 1,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "emergencyCallParameter",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter),
        .number = KEYAPISDEVICEV1EmergencyCallSettings_FieldNumber_EmergencyCallParameter,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1EmergencyCallSettings__storage_, emergencyCallParameter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1EmergencyCallSettings)
                                   messageName:@"EmergencyCallSettings"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1EmergencyCallSettings__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 - KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter

@implementation KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter

@dynamic emergencyNumber;
@dynamic abcNumber;
@dynamic sipTrunkHost;
@dynamic destinationName;

typedef struct KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter__storage_ {
  uint32_t _has_storage_[1];
  NSString *emergencyNumber;
  NSString *abcNumber;
  NSString *sipTrunkHost;
  NSString *destinationName;
} KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter__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 = "emergencyNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter_FieldNumber_EmergencyNumber,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter__storage_, emergencyNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "abcNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter_FieldNumber_AbcNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter__storage_, abcNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "sipTrunkHost",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter_FieldNumber_SipTrunkHost,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter__storage_, sipTrunkHost),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "destinationName",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter_FieldNumber_DestinationName,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter__storage_, destinationName),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter)
                                   messageName:@"EmergencyCallParameter"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1EmergencyCallSettings_EmergencyCallParameter__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1EmergencyCallSettings)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceResultTask

@implementation KEYAPISDEVICEV1ConfigureDeviceResultTask

@dynamic requestId;
@dynamic deviceId;
@dynamic hasConfiguredAt, configuredAt;
@dynamic hardwareVersion;
@dynamic firmwareVersion;
@dynamic model;
@dynamic hasSettings, settings;

typedef struct KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  GPBTimestamp *configuredAt;
  NSString *hardwareVersion;
  NSString *firmwareVersion;
  NSString *model;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings *settings;
} KEYAPISDEVICEV1ConfigureDeviceResultTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "configuredAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_FieldNumber_ConfiguredAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_, configuredAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "hardwareVersion",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_FieldNumber_HardwareVersion,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_, hardwareVersion),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "firmwareVersion",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_FieldNumber_FirmwareVersion,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_, firmwareVersion),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_FieldNumber_Model,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "settings",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_FieldNumber_Settings,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask__storage_, settings),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask)
                                   messageName:@"ConfigureDeviceResultTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceResultTask__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 - KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings

@implementation KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings

@dynamic hasPreset, preset;
@dynamic hasSipAccount, sipAccount;
@dynamic hasSipRooms, sipRooms;
@dynamic hasGate, gate;
@dynamic hasRfids, rfids;
@dynamic hasCodes, codes;
@dynamic hasSl3, sl3;
@dynamic hasEmergencyCallSettings, emergencyCallSettings;

typedef struct KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *preset;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *sipAccount;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms *sipRooms;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *gate;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids *rfids;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes *codes;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *sl3;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *emergencyCallSettings;
} KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__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 = "preset",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_Preset,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, preset),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sipAccount",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_SipAccount,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, sipAccount),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sipRooms",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_SipRooms,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, sipRooms),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "gate",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_Gate,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, gate),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "rfids",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_Rfids,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, rfids),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "codes",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_Codes,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, codes),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sl3",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_Sl3,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, sl3),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "emergencyCallSettings",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_FieldNumber_EmergencyCallSettings,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_, emergencyCallSettings),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings)
                                   messageName:@"Settings"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State

@implementation KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State

@dynamic statusType;
@dynamic errorMessage;

typedef struct KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType statusType;
  NSString *errorMessage;
} KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State__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 = "statusType",
        .dataTypeSpecific.enumDescFunc = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_EnumDescriptor,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State_FieldNumber_StatusType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State__storage_, statusType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "errorMessage",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State_FieldNumber_ErrorMessage,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State__storage_, errorMessage),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State)
                                   messageName:@"State"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *message) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State_FieldNumber_StatusType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State_FieldNumber_StatusType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids

@implementation KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids

@dynamic statusType;
@dynamic errorMessage;
@dynamic loadedRfidsArray, loadedRfidsArray_Count;
@dynamic unloadedRfidsArray, unloadedRfidsArray_Count;

typedef struct KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType statusType;
  NSString *errorMessage;
  NSMutableArray *loadedRfidsArray;
  NSMutableArray *unloadedRfidsArray;
} KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids__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 = "statusType",
        .dataTypeSpecific.enumDescFunc = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_EnumDescriptor,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_FieldNumber_StatusType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids__storage_, statusType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "errorMessage",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_FieldNumber_ErrorMessage,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids__storage_, errorMessage),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "loadedRfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Rfid),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_FieldNumber_LoadedRfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids__storage_, loadedRfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "unloadedRfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1RfidError),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_FieldNumber_UnloadedRfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids__storage_, unloadedRfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids)
                                   messageName:@"Rfids"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids *message) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_FieldNumber_StatusType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Rfids_FieldNumber_StatusType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes

@implementation KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes

@dynamic statusType;
@dynamic errorMessage;
@dynamic loadedCodesArray, loadedCodesArray_Count;
@dynamic unloadedCodesArray, unloadedCodesArray_Count;

typedef struct KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType statusType;
  NSString *errorMessage;
  NSMutableArray *loadedCodesArray;
  NSMutableArray *unloadedCodesArray;
} KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes__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 = "statusType",
        .dataTypeSpecific.enumDescFunc = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_EnumDescriptor,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_FieldNumber_StatusType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes__storage_, statusType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "errorMessage",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_FieldNumber_ErrorMessage,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes__storage_, errorMessage),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "loadedCodesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Code),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_FieldNumber_LoadedCodesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes__storage_, loadedCodesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "unloadedCodesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1CodeError),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_FieldNumber_UnloadedCodesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes__storage_, unloadedCodesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes)
                                   messageName:@"Codes"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes *message) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_FieldNumber_StatusType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_Codes_FieldNumber_StatusType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms

@implementation KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms

@dynamic statusType;
@dynamic errorMessage;
@dynamic loadedSipRoomsArray, loadedSipRoomsArray_Count;
@dynamic unloadedSipRoomsArray, unloadedSipRoomsArray_Count;

typedef struct KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType statusType;
  NSString *errorMessage;
  NSMutableArray *loadedSipRoomsArray;
  NSMutableArray *unloadedSipRoomsArray;
} KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms__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 = "statusType",
        .dataTypeSpecific.enumDescFunc = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_StatusType_EnumDescriptor,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_FieldNumber_StatusType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms__storage_, statusType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "errorMessage",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_FieldNumber_ErrorMessage,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms__storage_, errorMessage),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "loadedSipRoomsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1SipRoom),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_FieldNumber_LoadedSipRoomsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms__storage_, loadedSipRoomsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "unloadedSipRoomsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1SipRoomError),
        .number = KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_FieldNumber_UnloadedSipRoomsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms__storage_, unloadedSipRoomsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms)
                                   messageName:@"SipRooms"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms *message) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_FieldNumber_StatusType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_StatusType_RawValue(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_SipRooms_FieldNumber_StatusType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISDEVICEV1CmsServiceAvailableTask

@implementation KEYAPISDEVICEV1CmsServiceAvailableTask

@dynamic requestId;
@dynamic orponId;

typedef struct KEYAPISDEVICEV1CmsServiceAvailableTask__storage_ {
  uint32_t _has_storage_[1];
  NSString *requestId;
  int64_t orponId;
} KEYAPISDEVICEV1CmsServiceAvailableTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CmsServiceAvailableTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CmsServiceAvailableTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "orponId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CmsServiceAvailableTask_FieldNumber_OrponId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CmsServiceAvailableTask__storage_, orponId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt64,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1CmsServiceAvailableTask)
                                   messageName:@"CmsServiceAvailableTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1CmsServiceAvailableTask__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 - KEYAPISDEVICEV1ControlDeviceTask

@implementation KEYAPISDEVICEV1ControlDeviceTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic hasFaceRecognition, faceRecognition;
@dynamic hasPreset, preset;
@dynamic hasNtpTimezone, ntpTimezone;
@dynamic hasSipAccount, sipAccount;
@dynamic hasGate, gate;
@dynamic hasConcierge, concierge;
@dynamic hasAutocollect, autocollect;
@dynamic hasSl3, sl3;
@dynamic hasEmergencyCallSettings, emergencyCallSettings;

typedef struct KEYAPISDEVICEV1ControlDeviceTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition *faceRecognition;
  KEYAPISDEVICEV1Preset *preset;
  GPBStringValue *ntpTimezone;
  KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount *sipAccount;
  KEYAPISDEVICEV1ConfigureDeviceTask_Gate *gate;
  KEYAPISDEVICEV1ControlDeviceTask_Concierge *concierge;
  KEYAPISDEVICEV1ControlDeviceTask_Autocollect *autocollect;
  KEYAPISDEVICEV1ConfigureDeviceTask_Sl3 *sl3;
  KEYAPISDEVICEV1EmergencyCallSettings *emergencyCallSettings;
} KEYAPISDEVICEV1ControlDeviceTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "faceRecognition",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_FaceRecognition,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, faceRecognition),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "preset",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Preset),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Preset,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, preset),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "ntpTimezone",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_NtpTimezone,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, ntpTimezone),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sipAccount",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_SipAccount),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_SipAccount,
        .hasIndex = 9,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, sipAccount),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "gate",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Gate),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Gate,
        .hasIndex = 10,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, gate),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "concierge",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask_Concierge),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Concierge,
        .hasIndex = 11,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, concierge),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "autocollect",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask_Autocollect),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Autocollect,
        .hasIndex = 12,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, autocollect),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sl3",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceTask_Sl3),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_Sl3,
        .hasIndex = 13,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, sl3),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "emergencyCallSettings",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1EmergencyCallSettings),
        .number = KEYAPISDEVICEV1ControlDeviceTask_FieldNumber_EmergencyCallSettings,
        .hasIndex = 14,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask__storage_, emergencyCallSettings),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask)
                                   messageName:@"ControlDeviceTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ControlDeviceTask__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 - KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition

@implementation KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition

@dynamic isEnabled;

typedef struct KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition__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 = "isEnabled",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition_FieldNumber_IsEnabled,
        .hasIndex = 0,
        .offset = 1,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition)
                                   messageName:@"FaceRecognition"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ControlDeviceTask_FaceRecognition__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ControlDeviceTask_Concierge

@implementation KEYAPISDEVICEV1ControlDeviceTask_Concierge

@dynamic sipNumber;
@dynamic roomNumber;

typedef struct KEYAPISDEVICEV1ControlDeviceTask_Concierge__storage_ {
  uint32_t _has_storage_[1];
  int32_t roomNumber;
  NSString *sipNumber;
} KEYAPISDEVICEV1ControlDeviceTask_Concierge__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 = "sipNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_Concierge_FieldNumber_SipNumber,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask_Concierge__storage_, sipNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_Concierge_FieldNumber_RoomNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceTask_Concierge__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask_Concierge)
                                   messageName:@"Concierge"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ControlDeviceTask_Concierge__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ControlDeviceTask_Autocollect

@implementation KEYAPISDEVICEV1ControlDeviceTask_Autocollect

@dynamic isEnabled;

typedef struct KEYAPISDEVICEV1ControlDeviceTask_Autocollect__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISDEVICEV1ControlDeviceTask_Autocollect__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 = "isEnabled",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceTask_Autocollect_FieldNumber_IsEnabled,
        .hasIndex = 0,
        .offset = 1,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask_Autocollect)
                                   messageName:@"Autocollect"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ControlDeviceTask_Autocollect__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ControlDeviceResultTask

@implementation KEYAPISDEVICEV1ControlDeviceResultTask

@dynamic requestId;
@dynamic deviceId;
@dynamic hasConfiguredAt, configuredAt;
@dynamic hardwareVersion;
@dynamic firmwareVersion;
@dynamic model;
@dynamic hasSettings, settings;

typedef struct KEYAPISDEVICEV1ControlDeviceResultTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  GPBTimestamp *configuredAt;
  NSString *hardwareVersion;
  NSString *firmwareVersion;
  NSString *model;
  KEYAPISDEVICEV1ControlDeviceResultTask_Settings *settings;
} KEYAPISDEVICEV1ControlDeviceResultTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "configuredAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_FieldNumber_ConfiguredAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask__storage_, configuredAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "hardwareVersion",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_FieldNumber_HardwareVersion,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask__storage_, hardwareVersion),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "firmwareVersion",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_FieldNumber_FirmwareVersion,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask__storage_, firmwareVersion),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_FieldNumber_Model,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "settings",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ControlDeviceResultTask_Settings),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_FieldNumber_Settings,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask__storage_, settings),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceResultTask)
                                   messageName:@"ControlDeviceResultTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ControlDeviceResultTask__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 - KEYAPISDEVICEV1ControlDeviceResultTask_Settings

@implementation KEYAPISDEVICEV1ControlDeviceResultTask_Settings

@dynamic hasFaceRecognition, faceRecognition;
@dynamic hasPreset, preset;
@dynamic hasSipAccount, sipAccount;
@dynamic hasGate, gate;
@dynamic hasAutocollect, autocollect;
@dynamic hasConcierge, concierge;
@dynamic hasSl3, sl3;
@dynamic hasEmergencyCallSettings, emergencyCallSettings;

typedef struct KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *faceRecognition;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *preset;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *sipAccount;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *gate;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *autocollect;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *concierge;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *sl3;
  KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State *emergencyCallSettings;
} KEYAPISDEVICEV1ControlDeviceResultTask_Settings__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 = "faceRecognition",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_FaceRecognition,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, faceRecognition),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "preset",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_Preset,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, preset),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sipAccount",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_SipAccount,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, sipAccount),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "gate",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_Gate,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, gate),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "autocollect",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_Autocollect,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, autocollect),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "concierge",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_Concierge,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, concierge),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sl3",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_Sl3,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, sl3),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "emergencyCallSettings",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ConfigureDeviceResultTask_Settings_State),
        .number = KEYAPISDEVICEV1ControlDeviceResultTask_Settings_FieldNumber_EmergencyCallSettings,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_, emergencyCallSettings),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceResultTask_Settings)
                                   messageName:@"Settings"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ControlDeviceResultTask_Settings__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ControlDeviceResultTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1BlockCmsPhonesTask

@implementation KEYAPISDEVICEV1BlockCmsPhonesTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic cmsPhonesArray, cmsPhonesArray_Count;

typedef struct KEYAPISDEVICEV1BlockCmsPhonesTask__storage_ {
  uint32_t _has_storage_[1];
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *cmsPhonesArray;
} KEYAPISDEVICEV1BlockCmsPhonesTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhonesTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhonesTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhonesTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhonesTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhonesTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "cmsPhonesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone),
        .number = KEYAPISDEVICEV1BlockCmsPhonesTask_FieldNumber_CmsPhonesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask__storage_, cmsPhonesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1BlockCmsPhonesTask)
                                   messageName:@"BlockCmsPhonesTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1BlockCmsPhonesTask__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 - KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone

@implementation KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone

@dynamic id_p;
@dynamic roomNumber;

typedef struct KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *roomNumber;
} KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone__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 = KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone_FieldNumber_RoomNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone)
                                   messageName:@"CmsPhone"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1BlockCmsPhonesTask_CmsPhone__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1BlockCmsPhonesTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1BlockCmsPhoneSuccessTask

@implementation KEYAPISDEVICEV1BlockCmsPhoneSuccessTask

@dynamic requestId;
@dynamic cmsPhoneId;
@dynamic hasBlockedAt, blockedAt;

typedef struct KEYAPISDEVICEV1BlockCmsPhoneSuccessTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t cmsPhoneId;
  NSString *requestId;
  GPBTimestamp *blockedAt;
} KEYAPISDEVICEV1BlockCmsPhoneSuccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhoneSuccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhoneSuccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "cmsPhoneId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhoneSuccessTask_FieldNumber_CmsPhoneId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhoneSuccessTask__storage_, cmsPhoneId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "blockedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISDEVICEV1BlockCmsPhoneSuccessTask_FieldNumber_BlockedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhoneSuccessTask__storage_, blockedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1BlockCmsPhoneSuccessTask)
                                   messageName:@"BlockCmsPhoneSuccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1BlockCmsPhoneSuccessTask__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 - KEYAPISDEVICEV1BlockCmsPhoneFailTask

@implementation KEYAPISDEVICEV1BlockCmsPhoneFailTask

@dynamic requestId;
@dynamic cmsPhoneId;
@dynamic errorMessage;
@dynamic hasOccuredAt, occuredAt;

typedef struct KEYAPISDEVICEV1BlockCmsPhoneFailTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t cmsPhoneId;
  NSString *requestId;
  NSString *errorMessage;
  GPBTimestamp *occuredAt;
} KEYAPISDEVICEV1BlockCmsPhoneFailTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhoneFailTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhoneFailTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "cmsPhoneId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhoneFailTask_FieldNumber_CmsPhoneId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhoneFailTask__storage_, cmsPhoneId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "errorMessage",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1BlockCmsPhoneFailTask_FieldNumber_ErrorMessage,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhoneFailTask__storage_, errorMessage),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "occuredAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISDEVICEV1BlockCmsPhoneFailTask_FieldNumber_OccuredAt,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1BlockCmsPhoneFailTask__storage_, occuredAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1BlockCmsPhoneFailTask)
                                   messageName:@"BlockCmsPhoneFailTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1BlockCmsPhoneFailTask__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 - KEYAPISDEVICEV1ActivateCmsPhonesTask

@implementation KEYAPISDEVICEV1ActivateCmsPhonesTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic cmsPhonesArray, cmsPhonesArray_Count;

typedef struct KEYAPISDEVICEV1ActivateCmsPhonesTask__storage_ {
  uint32_t _has_storage_[1];
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *cmsPhonesArray;
} KEYAPISDEVICEV1ActivateCmsPhonesTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhonesTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhonesTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhonesTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhonesTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhonesTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "cmsPhonesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone),
        .number = KEYAPISDEVICEV1ActivateCmsPhonesTask_FieldNumber_CmsPhonesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask__storage_, cmsPhonesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ActivateCmsPhonesTask)
                                   messageName:@"ActivateCmsPhonesTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ActivateCmsPhonesTask__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 - KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone

@implementation KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone

@dynamic id_p;
@dynamic roomNumber;

typedef struct KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *roomNumber;
} KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone__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 = KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone_FieldNumber_RoomNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone)
                                   messageName:@"CmsPhone"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ActivateCmsPhonesTask_CmsPhone__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1ActivateCmsPhonesTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask

@implementation KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask

@dynamic requestId;
@dynamic cmsPhoneId;
@dynamic hasActivatedAt, activatedAt;

typedef struct KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t cmsPhoneId;
  NSString *requestId;
  GPBTimestamp *activatedAt;
} KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "cmsPhoneId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask_FieldNumber_CmsPhoneId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask__storage_, cmsPhoneId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "activatedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask_FieldNumber_ActivatedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask__storage_, activatedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask)
                                   messageName:@"ActivateCmsPhoneSuccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ActivateCmsPhoneSuccessTask__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 - KEYAPISDEVICEV1ActivateCmsPhoneFailTask

@implementation KEYAPISDEVICEV1ActivateCmsPhoneFailTask

@dynamic requestId;
@dynamic cmsPhoneId;
@dynamic errorMessage;
@dynamic hasOccuredAt, occuredAt;

typedef struct KEYAPISDEVICEV1ActivateCmsPhoneFailTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t cmsPhoneId;
  NSString *requestId;
  NSString *errorMessage;
  GPBTimestamp *occuredAt;
} KEYAPISDEVICEV1ActivateCmsPhoneFailTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhoneFailTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhoneFailTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "cmsPhoneId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhoneFailTask_FieldNumber_CmsPhoneId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhoneFailTask__storage_, cmsPhoneId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "errorMessage",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1ActivateCmsPhoneFailTask_FieldNumber_ErrorMessage,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhoneFailTask__storage_, errorMessage),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "occuredAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISDEVICEV1ActivateCmsPhoneFailTask_FieldNumber_OccuredAt,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1ActivateCmsPhoneFailTask__storage_, occuredAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1ActivateCmsPhoneFailTask)
                                   messageName:@"ActivateCmsPhoneFailTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1ActivateCmsPhoneFailTask__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 - KEYAPISDEVICEV1CmsAvailableTask

@implementation KEYAPISDEVICEV1CmsAvailableTask

@dynamic requestId;
@dynamic deviceId;

typedef struct KEYAPISDEVICEV1CmsAvailableTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
} KEYAPISDEVICEV1CmsAvailableTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CmsAvailableTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CmsAvailableTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CmsAvailableTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CmsAvailableTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1CmsAvailableTask)
                                   messageName:@"CmsAvailableTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1CmsAvailableTask__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 - KEYAPISDEVICEV1SipRoom

@implementation KEYAPISDEVICEV1SipRoom

@dynamic sipNumber;
@dynamic roomNumber;
@dynamic roomId;

typedef struct KEYAPISDEVICEV1SipRoom__storage_ {
  uint32_t _has_storage_[1];
  int32_t roomId;
  NSString *sipNumber;
  NSString *roomNumber;
} KEYAPISDEVICEV1SipRoom__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 = "sipNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1SipRoom_FieldNumber_SipNumber,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1SipRoom__storage_, sipNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1SipRoom_FieldNumber_RoomNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1SipRoom__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1SipRoom_FieldNumber_RoomId,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1SipRoom__storage_, roomId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1SipRoom)
                                   messageName:@"SipRoom"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1SipRoom__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 - KEYAPISDEVICEV1SipRoomError

@implementation KEYAPISDEVICEV1SipRoomError

@dynamic sipNumber;
@dynamic roomNumber;
@dynamic roomId;
@dynamic message;

typedef struct KEYAPISDEVICEV1SipRoomError__storage_ {
  uint32_t _has_storage_[1];
  int32_t roomId;
  NSString *sipNumber;
  NSString *roomNumber;
  NSString *message;
} KEYAPISDEVICEV1SipRoomError__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 = "sipNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1SipRoomError_FieldNumber_SipNumber,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1SipRoomError__storage_, sipNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1SipRoomError_FieldNumber_RoomNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1SipRoomError__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1SipRoomError_FieldNumber_RoomId,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1SipRoomError__storage_, roomId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "message",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1SipRoomError_FieldNumber_Message,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1SipRoomError__storage_, message),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1SipRoomError)
                                   messageName:@"SipRoomError"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1SipRoomError__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 - KEYAPISDEVICEV1Rfid

@implementation KEYAPISDEVICEV1Rfid

@dynamic id_p;
@dynamic key;
@dynamic roomNumber;

typedef struct KEYAPISDEVICEV1Rfid__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *key;
  NSString *roomNumber;
} KEYAPISDEVICEV1Rfid__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 = KEYAPISDEVICEV1Rfid_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1Rfid__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "key",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1Rfid_FieldNumber_Key,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1Rfid__storage_, key),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1Rfid_FieldNumber_RoomNumber,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1Rfid__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1Rfid)
                                   messageName:@"Rfid"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1Rfid__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 - KEYAPISDEVICEV1Code

@implementation KEYAPISDEVICEV1Code

@dynamic id_p;
@dynamic code;
@dynamic roomNumber;

typedef struct KEYAPISDEVICEV1Code__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *code;
  NSString *roomNumber;
} KEYAPISDEVICEV1Code__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 = KEYAPISDEVICEV1Code_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1Code__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "code",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1Code_FieldNumber_Code,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1Code__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1Code_FieldNumber_RoomNumber,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1Code__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1Code)
                                   messageName:@"Code"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1Code__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 - KEYAPISDEVICEV1RfidError

@implementation KEYAPISDEVICEV1RfidError

@dynamic id_p;
@dynamic key;
@dynamic roomNumber;
@dynamic message;

typedef struct KEYAPISDEVICEV1RfidError__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *key;
  NSString *roomNumber;
  NSString *message;
} KEYAPISDEVICEV1RfidError__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 = KEYAPISDEVICEV1RfidError_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1RfidError__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "key",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1RfidError_FieldNumber_Key,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1RfidError__storage_, key),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1RfidError_FieldNumber_RoomNumber,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1RfidError__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "message",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1RfidError_FieldNumber_Message,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1RfidError__storage_, message),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1RfidError)
                                   messageName:@"RfidError"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1RfidError__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 - KEYAPISDEVICEV1CodeError

@implementation KEYAPISDEVICEV1CodeError

@dynamic id_p;
@dynamic code;
@dynamic roomNumber;
@dynamic message;

typedef struct KEYAPISDEVICEV1CodeError__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *code;
  NSString *roomNumber;
  NSString *message;
} KEYAPISDEVICEV1CodeError__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 = KEYAPISDEVICEV1CodeError_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CodeError__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "code",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CodeError_FieldNumber_Code,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CodeError__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CodeError_FieldNumber_RoomNumber,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CodeError__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "message",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CodeError_FieldNumber_Message,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CodeError__storage_, message),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1CodeError)
                                   messageName:@"CodeError"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1CodeError__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 - KEYAPISDEVICEV1AddSl3RfidsTask

@implementation KEYAPISDEVICEV1AddSl3RfidsTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic sl3RfidsArray, sl3RfidsArray_Count;

typedef struct KEYAPISDEVICEV1AddSl3RfidsTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *sl3RfidsArray;
} KEYAPISDEVICEV1AddSl3RfidsTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "sl3RfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid),
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_FieldNumber_Sl3RfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask__storage_, sl3RfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddSl3RfidsTask)
                                   messageName:@"AddSl3RfidsTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddSl3RfidsTask__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 - KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid

@implementation KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid

@dynamic id_p;
@dynamic roomNumber;
@dynamic key;
@dynamic keySecret;

typedef struct KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *roomNumber;
  NSString *key;
  NSString *keySecret;
} KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid__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 = KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid_FieldNumber_RoomNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "key",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid_FieldNumber_Key,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid__storage_, key),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "keySecret",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid_FieldNumber_KeySecret,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid__storage_, keySecret),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid)
                                   messageName:@"Sl3Rfid"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddSl3RfidsTask_Sl3Rfid__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1AddSl3RfidsTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1AddRfidsTask

@implementation KEYAPISDEVICEV1AddRfidsTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic rfidsArray, rfidsArray_Count;

typedef struct KEYAPISDEVICEV1AddRfidsTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *rfidsArray;
} KEYAPISDEVICEV1AddRfidsTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Rfid),
        .number = KEYAPISDEVICEV1AddRfidsTask_FieldNumber_RfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsTask__storage_, rfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddRfidsTask)
                                   messageName:@"AddRfidsTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddRfidsTask__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 - KEYAPISDEVICEV1AddCodesTask

@implementation KEYAPISDEVICEV1AddCodesTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic codesArray, codesArray_Count;

typedef struct KEYAPISDEVICEV1AddCodesTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *codesArray;
} KEYAPISDEVICEV1AddCodesTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "codesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Code),
        .number = KEYAPISDEVICEV1AddCodesTask_FieldNumber_CodesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesTask__storage_, codesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddCodesTask)
                                   messageName:@"AddCodesTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddCodesTask__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 - KEYAPISDEVICEV1AddRfidsSuccessTask

@implementation KEYAPISDEVICEV1AddRfidsSuccessTask

@dynamic requestId;
@dynamic deviceId;
@dynamic rfidsArray, rfidsArray_Count;

typedef struct KEYAPISDEVICEV1AddRfidsSuccessTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *rfidsArray;
} KEYAPISDEVICEV1AddRfidsSuccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsSuccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsSuccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsSuccessTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsSuccessTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Rfid),
        .number = KEYAPISDEVICEV1AddRfidsSuccessTask_FieldNumber_RfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsSuccessTask__storage_, rfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddRfidsSuccessTask)
                                   messageName:@"AddRfidsSuccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddRfidsSuccessTask__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 - KEYAPISDEVICEV1AddRfidsFailTask

@implementation KEYAPISDEVICEV1AddRfidsFailTask

@dynamic requestId;
@dynamic deviceId;
@dynamic rfidErrorsArray, rfidErrorsArray_Count;

typedef struct KEYAPISDEVICEV1AddRfidsFailTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *rfidErrorsArray;
} KEYAPISDEVICEV1AddRfidsFailTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsFailTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsFailTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddRfidsFailTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsFailTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfidErrorsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1RfidError),
        .number = KEYAPISDEVICEV1AddRfidsFailTask_FieldNumber_RfidErrorsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddRfidsFailTask__storage_, rfidErrorsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddRfidsFailTask)
                                   messageName:@"AddRfidsFailTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddRfidsFailTask__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 - KEYAPISDEVICEV1AddCodesSuccessTask

@implementation KEYAPISDEVICEV1AddCodesSuccessTask

@dynamic requestId;
@dynamic deviceId;
@dynamic codesArray, codesArray_Count;

typedef struct KEYAPISDEVICEV1AddCodesSuccessTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *codesArray;
} KEYAPISDEVICEV1AddCodesSuccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesSuccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesSuccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesSuccessTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesSuccessTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "codesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Code),
        .number = KEYAPISDEVICEV1AddCodesSuccessTask_FieldNumber_CodesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesSuccessTask__storage_, codesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddCodesSuccessTask)
                                   messageName:@"AddCodesSuccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddCodesSuccessTask__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 - KEYAPISDEVICEV1AddCodesFailTask

@implementation KEYAPISDEVICEV1AddCodesFailTask

@dynamic requestId;
@dynamic deviceId;
@dynamic codeErrorsArray, codeErrorsArray_Count;

typedef struct KEYAPISDEVICEV1AddCodesFailTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *codeErrorsArray;
} KEYAPISDEVICEV1AddCodesFailTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesFailTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesFailTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1AddCodesFailTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesFailTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "codeErrorsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1CodeError),
        .number = KEYAPISDEVICEV1AddCodesFailTask_FieldNumber_CodeErrorsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1AddCodesFailTask__storage_, codeErrorsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1AddCodesFailTask)
                                   messageName:@"AddCodesFailTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1AddCodesFailTask__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 - KEYAPISDEVICEV1DeleteSl3RfidsTask

@implementation KEYAPISDEVICEV1DeleteSl3RfidsTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic sl3RfidsArray, sl3RfidsArray_Count;
@dynamic hasIsAnswerUnnecessary, isAnswerUnnecessary;

typedef struct KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *sl3RfidsArray;
  GPBBoolValue *isAnswerUnnecessary;
} KEYAPISDEVICEV1DeleteSl3RfidsTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "sl3RfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid),
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_Sl3RfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, sl3RfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "isAnswerUnnecessary",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBBoolValue),
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_FieldNumber_IsAnswerUnnecessary,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask__storage_, isAnswerUnnecessary),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteSl3RfidsTask)
                                   messageName:@"DeleteSl3RfidsTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteSl3RfidsTask__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 - KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid

@implementation KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid

@dynamic id_p;
@dynamic roomNumber;
@dynamic key;
@dynamic keySecret;

typedef struct KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  NSString *roomNumber;
  NSString *key;
  NSString *keySecret;
} KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid__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 = KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "roomNumber",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid_FieldNumber_RoomNumber,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid__storage_, roomNumber),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "key",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid_FieldNumber_Key,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid__storage_, key),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "keySecret",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid_FieldNumber_KeySecret,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid__storage_, keySecret),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid)
                                   messageName:@"Sl3Rfid"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteSl3RfidsTask_Sl3Rfid__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISDEVICEV1DeleteSl3RfidsTask)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISDEVICEV1DeleteRfidsTask

@implementation KEYAPISDEVICEV1DeleteRfidsTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic rfidsArray, rfidsArray_Count;
@dynamic hasIsAnswerUnnecessary, isAnswerUnnecessary;

typedef struct KEYAPISDEVICEV1DeleteRfidsTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *rfidsArray;
  GPBBoolValue *isAnswerUnnecessary;
} KEYAPISDEVICEV1DeleteRfidsTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Rfid),
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_RfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, rfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "isAnswerUnnecessary",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBBoolValue),
        .number = KEYAPISDEVICEV1DeleteRfidsTask_FieldNumber_IsAnswerUnnecessary,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsTask__storage_, isAnswerUnnecessary),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteRfidsTask)
                                   messageName:@"DeleteRfidsTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteRfidsTask__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 - KEYAPISDEVICEV1DeleteCodesTask

@implementation KEYAPISDEVICEV1DeleteCodesTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic codesArray, codesArray_Count;
@dynamic hasIsAnswerUnnecessary, isAnswerUnnecessary;

typedef struct KEYAPISDEVICEV1DeleteCodesTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  NSMutableArray *codesArray;
  GPBBoolValue *isAnswerUnnecessary;
} KEYAPISDEVICEV1DeleteCodesTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "codesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Code),
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_CodesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, codesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "isAnswerUnnecessary",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBBoolValue),
        .number = KEYAPISDEVICEV1DeleteCodesTask_FieldNumber_IsAnswerUnnecessary,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesTask__storage_, isAnswerUnnecessary),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteCodesTask)
                                   messageName:@"DeleteCodesTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteCodesTask__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 - KEYAPISDEVICEV1DeleteRfidsSuccessTask

@implementation KEYAPISDEVICEV1DeleteRfidsSuccessTask

@dynamic requestId;
@dynamic deviceId;
@dynamic rfidsArray, rfidsArray_Count;

typedef struct KEYAPISDEVICEV1DeleteRfidsSuccessTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *rfidsArray;
} KEYAPISDEVICEV1DeleteRfidsSuccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsSuccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsSuccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsSuccessTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsSuccessTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfidsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Rfid),
        .number = KEYAPISDEVICEV1DeleteRfidsSuccessTask_FieldNumber_RfidsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsSuccessTask__storage_, rfidsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteRfidsSuccessTask)
                                   messageName:@"DeleteRfidsSuccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteRfidsSuccessTask__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 - KEYAPISDEVICEV1DeleteRfidsFailTask

@implementation KEYAPISDEVICEV1DeleteRfidsFailTask

@dynamic requestId;
@dynamic deviceId;
@dynamic rfidErrorsArray, rfidErrorsArray_Count;

typedef struct KEYAPISDEVICEV1DeleteRfidsFailTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *rfidErrorsArray;
} KEYAPISDEVICEV1DeleteRfidsFailTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsFailTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsFailTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteRfidsFailTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsFailTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfidErrorsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1RfidError),
        .number = KEYAPISDEVICEV1DeleteRfidsFailTask_FieldNumber_RfidErrorsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteRfidsFailTask__storage_, rfidErrorsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteRfidsFailTask)
                                   messageName:@"DeleteRfidsFailTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteRfidsFailTask__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 - KEYAPISDEVICEV1DeleteCodesSuccessTask

@implementation KEYAPISDEVICEV1DeleteCodesSuccessTask

@dynamic requestId;
@dynamic deviceId;
@dynamic codesArray, codesArray_Count;

typedef struct KEYAPISDEVICEV1DeleteCodesSuccessTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *codesArray;
} KEYAPISDEVICEV1DeleteCodesSuccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesSuccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesSuccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesSuccessTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesSuccessTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "codesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1Code),
        .number = KEYAPISDEVICEV1DeleteCodesSuccessTask_FieldNumber_CodesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesSuccessTask__storage_, codesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteCodesSuccessTask)
                                   messageName:@"DeleteCodesSuccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteCodesSuccessTask__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 - KEYAPISDEVICEV1DeleteCodesFailTask

@implementation KEYAPISDEVICEV1DeleteCodesFailTask

@dynamic requestId;
@dynamic deviceId;
@dynamic codeErrorsArray, codeErrorsArray_Count;

typedef struct KEYAPISDEVICEV1DeleteCodesFailTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSMutableArray *codeErrorsArray;
} KEYAPISDEVICEV1DeleteCodesFailTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesFailTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesFailTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteCodesFailTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesFailTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "codeErrorsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISDEVICEV1CodeError),
        .number = KEYAPISDEVICEV1DeleteCodesFailTask_FieldNumber_CodeErrorsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteCodesFailTask__storage_, codeErrorsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteCodesFailTask)
                                   messageName:@"DeleteCodesFailTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteCodesFailTask__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 - KEYAPISDEVICEV1OpenAccessPointTask

@implementation KEYAPISDEVICEV1OpenAccessPointTask

@dynamic requestId;
@dynamic deviceId;
@dynamic hasRelayIndex, relayIndex;
@dynamic hasDelay, delay;
@dynamic hasCarNumber, carNumber;
@dynamic hasVehicle, vehicle;
@dynamic hasCourierCompanyName, courierCompanyName;
@dynamic hasOrderNumber, orderNumber;
@dynamic hasCourierId, courierId;

typedef struct KEYAPISDEVICEV1OpenAccessPointTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  GPBInt32Value *relayIndex;
  GPBInt32Value *delay;
  GPBStringValue *carNumber;
  GPBStringValue *vehicle;
  GPBStringValue *courierCompanyName;
  GPBStringValue *orderNumber;
  GPBStringValue *courierId;
} KEYAPISDEVICEV1OpenAccessPointTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "relayIndex",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBInt32Value),
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_RelayIndex,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, relayIndex),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "delay",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBInt32Value),
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_Delay,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, delay),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "carNumber",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_CarNumber,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, carNumber),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "vehicle",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_Vehicle,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, vehicle),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "courierCompanyName",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_CourierCompanyName,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, courierCompanyName),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "orderNumber",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_OrderNumber,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, orderNumber),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "courierId",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISDEVICEV1OpenAccessPointTask_FieldNumber_CourierId,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenAccessPointTask__storage_, courierId),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1OpenAccessPointTask)
                                   messageName:@"OpenAccessPointTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1OpenAccessPointTask__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 - KEYAPISDEVICEV1OpenTask

@implementation KEYAPISDEVICEV1OpenTask

@dynamic requestId;
@dynamic model;
@dynamic host;
@dynamic username;
@dynamic password;
@dynamic deviceId;
@dynamic hasRelayIndex, relayIndex;
@dynamic hasDelay, delay;

typedef struct KEYAPISDEVICEV1OpenTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  NSString *model;
  NSString *host;
  NSString *username;
  NSString *password;
  GPBInt32Value *relayIndex;
  GPBInt32Value *delay;
} KEYAPISDEVICEV1OpenTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "model",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_Model,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, model),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_Host,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_Username,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_Password,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_DeviceId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "relayIndex",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBInt32Value),
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_RelayIndex,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, relayIndex),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "delay",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBInt32Value),
        .number = KEYAPISDEVICEV1OpenTask_FieldNumber_Delay,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1OpenTask__storage_, delay),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1OpenTask)
                                   messageName:@"OpenTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1OpenTask__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 - KEYAPISDEVICEV1DeleteSipAccountTask

@implementation KEYAPISDEVICEV1DeleteSipAccountTask

@dynamic requestId;
@dynamic deviceId;
@dynamic hasDeletedAt, deletedAt;
@dynamic sipLogin;

typedef struct KEYAPISDEVICEV1DeleteSipAccountTask__storage_ {
  uint32_t _has_storage_[1];
  int32_t deviceId;
  NSString *requestId;
  GPBTimestamp *deletedAt;
  NSString *sipLogin;
} KEYAPISDEVICEV1DeleteSipAccountTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSipAccountTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSipAccountTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSipAccountTask_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSipAccountTask__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "deletedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISDEVICEV1DeleteSipAccountTask_FieldNumber_DeletedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSipAccountTask__storage_, deletedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "sipLogin",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteSipAccountTask_FieldNumber_SipLogin,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteSipAccountTask__storage_, sipLogin),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteSipAccountTask)
                                   messageName:@"DeleteSipAccountTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteSipAccountTask__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 - KEYAPISDEVICEV1CreateDeviceAccessTask

@implementation KEYAPISDEVICEV1CreateDeviceAccessTask

@dynamic requestId;
@dynamic deviceIdsArray, deviceIdsArray_Count;
@dynamic deviceAccessAccessorType;
@dynamic accessorId;

typedef struct KEYAPISDEVICEV1CreateDeviceAccessTask__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1DeviceAccess_AccessorType deviceAccessAccessorType;
  NSString *requestId;
  GPBInt32Array *deviceIdsArray;
  NSString *accessorId;
} KEYAPISDEVICEV1CreateDeviceAccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CreateDeviceAccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CreateDeviceAccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CreateDeviceAccessTask_FieldNumber_DeviceIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CreateDeviceAccessTask__storage_, deviceIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "deviceAccessAccessorType",
        .dataTypeSpecific.enumDescFunc = KEYAPISDEVICEV1DeviceAccess_AccessorType_EnumDescriptor,
        .number = KEYAPISDEVICEV1CreateDeviceAccessTask_FieldNumber_DeviceAccessAccessorType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CreateDeviceAccessTask__storage_, deviceAccessAccessorType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "accessorId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1CreateDeviceAccessTask_FieldNumber_AccessorId,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1CreateDeviceAccessTask__storage_, accessorId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1CreateDeviceAccessTask)
                                   messageName:@"CreateDeviceAccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1CreateDeviceAccessTask__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 KEYAPISDEVICEV1CreateDeviceAccessTask_DeviceAccessAccessorType_RawValue(KEYAPISDEVICEV1CreateDeviceAccessTask *message) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1CreateDeviceAccessTask descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1CreateDeviceAccessTask_FieldNumber_DeviceAccessAccessorType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISDEVICEV1CreateDeviceAccessTask_DeviceAccessAccessorType_RawValue(KEYAPISDEVICEV1CreateDeviceAccessTask *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1CreateDeviceAccessTask descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1CreateDeviceAccessTask_FieldNumber_DeviceAccessAccessorType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISDEVICEV1DeleteDeviceAccessTask

@implementation KEYAPISDEVICEV1DeleteDeviceAccessTask

@dynamic requestId;
@dynamic deviceIdsArray, deviceIdsArray_Count;
@dynamic deviceAccessAccessorType;
@dynamic accessorId;

typedef struct KEYAPISDEVICEV1DeleteDeviceAccessTask__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISDEVICEV1DeviceAccess_AccessorType deviceAccessAccessorType;
  NSString *requestId;
  GPBInt32Array *deviceIdsArray;
  NSString *accessorId;
} KEYAPISDEVICEV1DeleteDeviceAccessTask__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 = "requestId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteDeviceAccessTask_FieldNumber_RequestId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteDeviceAccessTask__storage_, requestId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteDeviceAccessTask_FieldNumber_DeviceIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteDeviceAccessTask__storage_, deviceIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "deviceAccessAccessorType",
        .dataTypeSpecific.enumDescFunc = KEYAPISDEVICEV1DeviceAccess_AccessorType_EnumDescriptor,
        .number = KEYAPISDEVICEV1DeleteDeviceAccessTask_FieldNumber_DeviceAccessAccessorType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteDeviceAccessTask__storage_, deviceAccessAccessorType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "accessorId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISDEVICEV1DeleteDeviceAccessTask_FieldNumber_AccessorId,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISDEVICEV1DeleteDeviceAccessTask__storage_, accessorId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISDEVICEV1DeleteDeviceAccessTask)
                                   messageName:@"DeleteDeviceAccessTask"
                               fileDescription:&KEYAPISDEVICEV1KeyapisDeviceEventsV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISDEVICEV1DeleteDeviceAccessTask__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 KEYAPISDEVICEV1DeleteDeviceAccessTask_DeviceAccessAccessorType_RawValue(KEYAPISDEVICEV1DeleteDeviceAccessTask *message) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1DeleteDeviceAccessTask descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1DeleteDeviceAccessTask_FieldNumber_DeviceAccessAccessorType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISDEVICEV1DeleteDeviceAccessTask_DeviceAccessAccessorType_RawValue(KEYAPISDEVICEV1DeleteDeviceAccessTask *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISDEVICEV1DeleteDeviceAccessTask descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISDEVICEV1DeleteDeviceAccessTask_FieldNumber_DeviceAccessAccessorType];
  GPBSetMessageRawEnumField(message, field, value);
}


#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
