// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/preset/v1/keyapis_preset_preset_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/preset/v1/KeyapisPresetPresetV1.pbobjc.h"
#import "google/api/Annotations.pbobjc.h"
#import "google/api/FieldBehavior.pbobjc.h"
#import "google/protobuf/Descriptor.pbobjc.h"
// @@protoc_insertion_point(imports)

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

#pragma mark - Objective-C Class declarations
// Forward declarations of Objective-C classes that we can use as
// static values in struct initializers.
// We don't use [Foo class] because it is not a static value.
GPBObjCClassDeclaration(GPBStringValue);
GPBObjCClassDeclaration(GPBTimestamp);
GPBObjCClassDeclaration(KEYAPISPRESETV1DeletePresetRequest);
GPBObjCClassDeclaration(KEYAPISPRESETV1DeletePresetResponse);
GPBObjCClassDeclaration(KEYAPISPRESETV1DeletePresetResponse_Error);
GPBObjCClassDeclaration(KEYAPISPRESETV1DeletePresetResponse_Error_NotAllowedForDefault);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetCountRequest);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetCountResponse);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetCountResponse_Error);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetDefaultRequest);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetDefaultResponse);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetListRequest);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetListResponse);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetListResponse_Error);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetRequest);
GPBObjCClassDeclaration(KEYAPISPRESETV1GetPresetResponse);
GPBObjCClassDeclaration(KEYAPISPRESETV1PostPresetRequest);
GPBObjCClassDeclaration(KEYAPISPRESETV1PostPresetResponse);
GPBObjCClassDeclaration(KEYAPISPRESETV1PostPresetResponse_Error);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset);
GPBObjCClassDeclaration(KEYAPISPRESETV1PresetFilter);
GPBObjCClassDeclaration(KEYAPISPRESETV1PresetPaging);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_Dtmf);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_FaceRecognition);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_Ntp);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_Room);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_SavingError);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_SavingError_Conflict);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_SavingError_NotAllowedForDefault);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_Sip);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_Syslog);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_VideoConfig);
GPBObjCClassDeclaration(KEYAPISPRESETV1Preset_VideoConfig_RtspUser);
GPBObjCClassDeclaration(KEYAPISPRESETV1ValidationError);

#pragma mark - KEYAPISPRESETV1KeyapisPresetPresetV1Root

@implementation KEYAPISPRESETV1KeyapisPresetPresetV1Root

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

@end

static GPBFileDescription KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription = {
  .package = "keyapis.preset.v1",
  .prefix = "KEYAPISPRESETV1",
  .syntax = GPBFileSyntaxProto3
};

#pragma mark - Enum KEYAPISPRESETV1Preset_StatusType

GPBEnumDescriptor *KEYAPISPRESETV1Preset_StatusType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "StatusTypeUnknown\000Active\000Archive\000";
    static const int32_t values[] = {
        KEYAPISPRESETV1Preset_StatusType_StatusTypeUnknown,
        KEYAPISPRESETV1Preset_StatusType_Active,
        KEYAPISPRESETV1Preset_StatusType_Archive,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISPRESETV1Preset_StatusType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISPRESETV1Preset_StatusType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISPRESETV1Preset_StatusType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISPRESETV1Preset_StatusType_StatusTypeUnknown:
    case KEYAPISPRESETV1Preset_StatusType_Active:
    case KEYAPISPRESETV1Preset_StatusType_Archive:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISPRESETV1Preset_Syslog_ProtocolType

GPBEnumDescriptor *KEYAPISPRESETV1Preset_Syslog_ProtocolType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "ProtocolTypeUnknown\000Udp\000Tcp\000";
    static const int32_t values[] = {
        KEYAPISPRESETV1Preset_Syslog_ProtocolType_ProtocolTypeUnknown,
        KEYAPISPRESETV1Preset_Syslog_ProtocolType_Udp,
        KEYAPISPRESETV1Preset_Syslog_ProtocolType_Tcp,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISPRESETV1Preset_Syslog_ProtocolType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISPRESETV1Preset_Syslog_ProtocolType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISPRESETV1Preset_Syslog_ProtocolType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISPRESETV1Preset_Syslog_ProtocolType_ProtocolTypeUnknown:
    case KEYAPISPRESETV1Preset_Syslog_ProtocolType_Udp:
    case KEYAPISPRESETV1Preset_Syslog_ProtocolType_Tcp:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISPRESETV1Preset_VideoConfig_QualityType

GPBEnumDescriptor *KEYAPISPRESETV1Preset_VideoConfig_QualityType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "QualityTypeUnknown\000High\000Medium\000";
    static const int32_t values[] = {
        KEYAPISPRESETV1Preset_VideoConfig_QualityType_QualityTypeUnknown,
        KEYAPISPRESETV1Preset_VideoConfig_QualityType_High,
        KEYAPISPRESETV1Preset_VideoConfig_QualityType_Medium,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISPRESETV1Preset_VideoConfig_QualityType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISPRESETV1Preset_VideoConfig_QualityType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISPRESETV1Preset_VideoConfig_QualityType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISPRESETV1Preset_VideoConfig_QualityType_QualityTypeUnknown:
    case KEYAPISPRESETV1Preset_VideoConfig_QualityType_High:
    case KEYAPISPRESETV1Preset_VideoConfig_QualityType_Medium:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType

GPBEnumDescriptor *KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "ConfigurationTypeUnknown\000Default\000";
    static const int32_t values[] = {
        KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_ConfigurationTypeUnknown,
        KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_Default,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_ConfigurationTypeUnknown:
    case KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_Default:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISPRESETV1PresetPaging_OrderByType

GPBEnumDescriptor *KEYAPISPRESETV1PresetPaging_OrderByType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "OrderByTypeUnknown\000Id\000CreatedAt\000ChangedA"
        "t\000Rank\000";
    static const int32_t values[] = {
        KEYAPISPRESETV1PresetPaging_OrderByType_OrderByTypeUnknown,
        KEYAPISPRESETV1PresetPaging_OrderByType_Id,
        KEYAPISPRESETV1PresetPaging_OrderByType_CreatedAt,
        KEYAPISPRESETV1PresetPaging_OrderByType_ChangedAt,
        KEYAPISPRESETV1PresetPaging_OrderByType_Rank,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISPRESETV1PresetPaging_OrderByType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISPRESETV1PresetPaging_OrderByType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISPRESETV1PresetPaging_OrderByType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISPRESETV1PresetPaging_OrderByType_OrderByTypeUnknown:
    case KEYAPISPRESETV1PresetPaging_OrderByType_Id:
    case KEYAPISPRESETV1PresetPaging_OrderByType_CreatedAt:
    case KEYAPISPRESETV1PresetPaging_OrderByType_ChangedAt:
    case KEYAPISPRESETV1PresetPaging_OrderByType_Rank:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISPRESETV1PresetPaging_DirectionType

GPBEnumDescriptor *KEYAPISPRESETV1PresetPaging_DirectionType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "DirectionTypeUnknown\000Desc\000Asc\000";
    static const int32_t values[] = {
        KEYAPISPRESETV1PresetPaging_DirectionType_DirectionTypeUnknown,
        KEYAPISPRESETV1PresetPaging_DirectionType_Desc,
        KEYAPISPRESETV1PresetPaging_DirectionType_Asc,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISPRESETV1PresetPaging_DirectionType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISPRESETV1PresetPaging_DirectionType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISPRESETV1PresetPaging_DirectionType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISPRESETV1PresetPaging_DirectionType_DirectionTypeUnknown:
    case KEYAPISPRESETV1PresetPaging_DirectionType_Desc:
    case KEYAPISPRESETV1PresetPaging_DirectionType_Asc:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - KEYAPISPRESETV1Preset

@implementation KEYAPISPRESETV1Preset

@dynamic id_p;
@dynamic title;
@dynamic mrfIdsArray, mrfIdsArray_Count;
@dynamic rfIdsArray, rfIdsArray_Count;
@dynamic hasDescription_p, description_p;
@dynamic hasCreatedAt, createdAt;
@dynamic hasChangedAt, changedAt;
@dynamic statusType;
@dynamic hasSip, sip;
@dynamic hasNtp, ntp;
@dynamic hasSyslog, syslog;
@dynamic roomsArray, roomsArray_Count;
@dynamic hasVideoConfig, videoConfig;
@dynamic dtmfArray, dtmfArray_Count;
@dynamic hasFaceRecognition, faceRecognition;

typedef struct KEYAPISPRESETV1Preset__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  KEYAPISPRESETV1Preset_StatusType statusType;
  NSString *title;
  GPBInt32Array *mrfIdsArray;
  GPBInt32Array *rfIdsArray;
  GPBStringValue *description_p;
  GPBTimestamp *createdAt;
  GPBTimestamp *changedAt;
  KEYAPISPRESETV1Preset_Sip *sip;
  KEYAPISPRESETV1Preset_Ntp *ntp;
  KEYAPISPRESETV1Preset_Syslog *syslog;
  NSMutableArray *roomsArray;
  KEYAPISPRESETV1Preset_VideoConfig *videoConfig;
  NSMutableArray *dtmfArray;
  KEYAPISPRESETV1Preset_FaceRecognition *faceRecognition;
} KEYAPISPRESETV1Preset__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 = KEYAPISPRESETV1Preset_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "title",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FieldNumber_Title,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, title),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "mrfIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FieldNumber_MrfIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, mrfIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FieldNumber_RfIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, rfIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "description_p",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISPRESETV1Preset_FieldNumber_Description_p,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, description_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "createdAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISPRESETV1Preset_FieldNumber_CreatedAt,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, createdAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISPRESETV1Preset_FieldNumber_ChangedAt,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "statusType",
        .dataTypeSpecific.enumDescFunc = KEYAPISPRESETV1Preset_StatusType_EnumDescriptor,
        .number = KEYAPISPRESETV1Preset_FieldNumber_StatusType,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, statusType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "sip",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_Sip),
        .number = KEYAPISPRESETV1Preset_FieldNumber_Sip,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, sip),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "ntp",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_Ntp),
        .number = KEYAPISPRESETV1Preset_FieldNumber_Ntp,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, ntp),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "syslog",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_Syslog),
        .number = KEYAPISPRESETV1Preset_FieldNumber_Syslog,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, syslog),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "roomsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_Room),
        .number = KEYAPISPRESETV1Preset_FieldNumber_RoomsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, roomsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "videoConfig",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_VideoConfig),
        .number = KEYAPISPRESETV1Preset_FieldNumber_VideoConfig,
        .hasIndex = 9,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, videoConfig),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "dtmfArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_Dtmf),
        .number = KEYAPISPRESETV1Preset_FieldNumber_DtmfArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, dtmfArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "faceRecognition",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_FaceRecognition),
        .number = KEYAPISPRESETV1Preset_FieldNumber_FaceRecognition,
        .hasIndex = 10,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset__storage_, faceRecognition),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset)
                                   messageName:@"Preset"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset__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 KEYAPISPRESETV1Preset_StatusType_RawValue(KEYAPISPRESETV1Preset *message) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_FieldNumber_StatusType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISPRESETV1Preset_StatusType_RawValue(KEYAPISPRESETV1Preset *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_FieldNumber_StatusType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISPRESETV1Preset_Sip

@implementation KEYAPISPRESETV1Preset_Sip

@dynamic host;
@dynamic port;
@dynamic regHost;
@dynamic regPort;
@dynamic proxyHost;
@dynamic proxyPort;

typedef struct KEYAPISPRESETV1Preset_Sip__storage_ {
  uint32_t _has_storage_[1];
  int32_t port;
  int32_t regPort;
  int32_t proxyPort;
  NSString *host;
  NSString *regHost;
  NSString *proxyHost;
} KEYAPISPRESETV1Preset_Sip__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 = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Sip_FieldNumber_Host,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Sip__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "port",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Sip_FieldNumber_Port,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Sip__storage_, port),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "regHost",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Sip_FieldNumber_RegHost,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Sip__storage_, regHost),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "regPort",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Sip_FieldNumber_RegPort,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Sip__storage_, regPort),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "proxyHost",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Sip_FieldNumber_ProxyHost,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Sip__storage_, proxyHost),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "proxyPort",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Sip_FieldNumber_ProxyPort,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Sip__storage_, proxyPort),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_Sip)
                                   messageName:@"Sip"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_Sip__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISPRESETV1Preset_Ntp

@implementation KEYAPISPRESETV1Preset_Ntp

@dynamic host;
@dynamic port;

typedef struct KEYAPISPRESETV1Preset_Ntp__storage_ {
  uint32_t _has_storage_[1];
  int32_t port;
  NSString *host;
} KEYAPISPRESETV1Preset_Ntp__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 = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Ntp_FieldNumber_Host,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Ntp__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "port",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Ntp_FieldNumber_Port,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Ntp__storage_, port),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_Ntp)
                                   messageName:@"Ntp"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_Ntp__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISPRESETV1Preset_Syslog

@implementation KEYAPISPRESETV1Preset_Syslog

@dynamic host;
@dynamic port;
@dynamic protocolType;

typedef struct KEYAPISPRESETV1Preset_Syslog__storage_ {
  uint32_t _has_storage_[1];
  int32_t port;
  KEYAPISPRESETV1Preset_Syslog_ProtocolType protocolType;
  NSString *host;
} KEYAPISPRESETV1Preset_Syslog__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 = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Syslog_FieldNumber_Host,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Syslog__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "port",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Syslog_FieldNumber_Port,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Syslog__storage_, port),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "protocolType",
        .dataTypeSpecific.enumDescFunc = KEYAPISPRESETV1Preset_Syslog_ProtocolType_EnumDescriptor,
        .number = KEYAPISPRESETV1Preset_Syslog_FieldNumber_ProtocolType,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Syslog__storage_, protocolType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_Syslog)
                                   messageName:@"Syslog"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_Syslog__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISPRESETV1Preset_Syslog_ProtocolType_RawValue(KEYAPISPRESETV1Preset_Syslog *message) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset_Syslog descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_Syslog_FieldNumber_ProtocolType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISPRESETV1Preset_Syslog_ProtocolType_RawValue(KEYAPISPRESETV1Preset_Syslog *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset_Syslog descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_Syslog_FieldNumber_ProtocolType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISPRESETV1Preset_Room

@implementation KEYAPISPRESETV1Preset_Room

@dynamic phone;
@dynamic num;

typedef struct KEYAPISPRESETV1Preset_Room__storage_ {
  uint32_t _has_storage_[1];
  int32_t num;
  NSString *phone;
} KEYAPISPRESETV1Preset_Room__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 = "phone",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Room_FieldNumber_Phone,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Room__storage_, phone),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "num",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Room_FieldNumber_Num,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Room__storage_, num),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_Room)
                                   messageName:@"Room"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_Room__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISPRESETV1Preset_VideoConfig

@implementation KEYAPISPRESETV1Preset_VideoConfig

@dynamic qualityType;
@dynamic hasRtspUser, rtspUser;

typedef struct KEYAPISPRESETV1Preset_VideoConfig__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISPRESETV1Preset_VideoConfig_QualityType qualityType;
  KEYAPISPRESETV1Preset_VideoConfig_RtspUser *rtspUser;
} KEYAPISPRESETV1Preset_VideoConfig__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 = "qualityType",
        .dataTypeSpecific.enumDescFunc = KEYAPISPRESETV1Preset_VideoConfig_QualityType_EnumDescriptor,
        .number = KEYAPISPRESETV1Preset_VideoConfig_FieldNumber_QualityType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_VideoConfig__storage_, qualityType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "rtspUser",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_VideoConfig_RtspUser),
        .number = KEYAPISPRESETV1Preset_VideoConfig_FieldNumber_RtspUser,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_VideoConfig__storage_, rtspUser),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_VideoConfig)
                                   messageName:@"VideoConfig"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_VideoConfig__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISPRESETV1Preset_VideoConfig_QualityType_RawValue(KEYAPISPRESETV1Preset_VideoConfig *message) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset_VideoConfig descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_VideoConfig_FieldNumber_QualityType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISPRESETV1Preset_VideoConfig_QualityType_RawValue(KEYAPISPRESETV1Preset_VideoConfig *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset_VideoConfig descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_VideoConfig_FieldNumber_QualityType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISPRESETV1Preset_VideoConfig_RtspUser

@implementation KEYAPISPRESETV1Preset_VideoConfig_RtspUser

@dynamic username;
@dynamic password;

typedef struct KEYAPISPRESETV1Preset_VideoConfig_RtspUser__storage_ {
  uint32_t _has_storage_[1];
  NSString *username;
  NSString *password;
} KEYAPISPRESETV1Preset_VideoConfig_RtspUser__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 = "username",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_VideoConfig_RtspUser_FieldNumber_Username,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_VideoConfig_RtspUser__storage_, username),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "password",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_VideoConfig_RtspUser_FieldNumber_Password,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_VideoConfig_RtspUser__storage_, password),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_VideoConfig_RtspUser)
                                   messageName:@"RtspUser"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_VideoConfig_RtspUser__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset_VideoConfig)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISPRESETV1Preset_Dtmf

@implementation KEYAPISPRESETV1Preset_Dtmf

@dynamic code;
@dynamic relayIndex;

typedef struct KEYAPISPRESETV1Preset_Dtmf__storage_ {
  uint32_t _has_storage_[1];
  int32_t relayIndex;
  NSString *code;
} KEYAPISPRESETV1Preset_Dtmf__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 = "code",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Dtmf_FieldNumber_Code,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Dtmf__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "relayIndex",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_Dtmf_FieldNumber_RelayIndex,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_Dtmf__storage_, relayIndex),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_Dtmf)
                                   messageName:@"Dtmf"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_Dtmf__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISPRESETV1Preset_FaceRecognition

@implementation KEYAPISPRESETV1Preset_FaceRecognition

@dynamic host;
@dynamic altHost;
@dynamic endpoint;
@dynamic authToken;
@dynamic configurationType;
@dynamic originId;
@dynamic groupIdsArray, groupIdsArray_Count;

typedef struct KEYAPISPRESETV1Preset_FaceRecognition__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType configurationType;
  NSString *host;
  NSString *altHost;
  NSString *endpoint;
  NSString *authToken;
  NSString *originId;
  GPBInt32Array *groupIdsArray;
} KEYAPISPRESETV1Preset_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 = "host",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_Host,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_FaceRecognition__storage_, host),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "altHost",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_AltHost,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_FaceRecognition__storage_, altHost),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "endpoint",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_Endpoint,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_FaceRecognition__storage_, endpoint),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "authToken",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_AuthToken,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_FaceRecognition__storage_, authToken),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "configurationType",
        .dataTypeSpecific.enumDescFunc = KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_EnumDescriptor,
        .number = KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_ConfigurationType,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_FaceRecognition__storage_, configurationType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "originId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_OriginId,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_FaceRecognition__storage_, originId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "groupIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_GroupIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_FaceRecognition__storage_, groupIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_FaceRecognition)
                                   messageName:@"FaceRecognition"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_FaceRecognition__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_RawValue(KEYAPISPRESETV1Preset_FaceRecognition *message) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset_FaceRecognition descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_ConfigurationType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISPRESETV1Preset_FaceRecognition_ConfigurationType_RawValue(KEYAPISPRESETV1Preset_FaceRecognition *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1Preset_FaceRecognition descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1Preset_FaceRecognition_FieldNumber_ConfigurationType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISPRESETV1Preset_SavingError

@implementation KEYAPISPRESETV1Preset_SavingError

@dynamic reasonOneOfCase;
@dynamic conflict;
@dynamic notAllowedForDefault;

typedef struct KEYAPISPRESETV1Preset_SavingError__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1Preset_SavingError_Conflict *conflict;
  KEYAPISPRESETV1Preset_SavingError_NotAllowedForDefault *notAllowedForDefault;
} KEYAPISPRESETV1Preset_SavingError__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 = "conflict",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_SavingError_Conflict),
        .number = KEYAPISPRESETV1Preset_SavingError_FieldNumber_Conflict,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_SavingError__storage_, conflict),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "notAllowedForDefault",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_SavingError_NotAllowedForDefault),
        .number = KEYAPISPRESETV1Preset_SavingError_FieldNumber_NotAllowedForDefault,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1Preset_SavingError__storage_, notAllowedForDefault),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1Preset_SavingError)
                                   messageName:@"SavingError"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1Preset_SavingError__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "reason",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1Preset)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISPRESETV1Preset_SavingError_Conflict


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

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

@end

#pragma mark - KEYAPISPRESETV1Preset_SavingError_NotAllowedForDefault

@implementation KEYAPISPRESETV1Preset_SavingError_NotAllowedForDefault


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

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

@end

#pragma mark - KEYAPISPRESETV1PostPresetRequest

@implementation KEYAPISPRESETV1PostPresetRequest

@dynamic hasData_p, data_p;

typedef struct KEYAPISPRESETV1PostPresetRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISPRESETV1Preset *data_p;
} KEYAPISPRESETV1PostPresetRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "data_p",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset),
        .number = KEYAPISPRESETV1PostPresetRequest_FieldNumber_Data_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PostPresetRequest__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1PostPresetRequest)
                                   messageName:@"PostPresetRequest"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1PostPresetRequest__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 - KEYAPISPRESETV1PostPresetResponse

@implementation KEYAPISPRESETV1PostPresetResponse

@dynamic typeOneOfCase;
@dynamic data_p;
@dynamic error;

typedef struct KEYAPISPRESETV1PostPresetResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1Preset *data_p;
  KEYAPISPRESETV1PostPresetResponse_Error *error;
} KEYAPISPRESETV1PostPresetResponse__storage_;

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

@end

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

@implementation KEYAPISPRESETV1PostPresetResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;
@dynamic saving;

typedef struct KEYAPISPRESETV1PostPresetResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1ValidationError *validation;
  KEYAPISPRESETV1Preset_SavingError *saving;
} KEYAPISPRESETV1PostPresetResponse_Error__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 = "validation",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1ValidationError),
        .number = KEYAPISPRESETV1PostPresetResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PostPresetResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "saving",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1Preset_SavingError),
        .number = KEYAPISPRESETV1PostPresetResponse_Error_FieldNumber_Saving,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PostPresetResponse_Error__storage_, saving),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1PostPresetResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1PostPresetResponse_Error__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "reason",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1PostPresetResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISPRESETV1GetPresetListRequest

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

typedef struct KEYAPISPRESETV1GetPresetListRequest__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1PresetFilter *filter;
  KEYAPISPRESETV1PresetPaging *paging;
} KEYAPISPRESETV1GetPresetListRequest__storage_;

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

@end

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

@implementation KEYAPISPRESETV1GetPresetRequest

@dynamic id_p;

typedef struct KEYAPISPRESETV1GetPresetRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISPRESETV1GetPresetRequest__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 = KEYAPISPRESETV1GetPresetRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1GetPresetRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1GetPresetRequest)
                                   messageName:@"GetPresetRequest"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1GetPresetRequest__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 - KEYAPISPRESETV1GetPresetResponse

@implementation KEYAPISPRESETV1GetPresetResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISPRESETV1GetPresetResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1Preset *data_p;
} KEYAPISPRESETV1GetPresetResponse__storage_;

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

@end

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

@implementation KEYAPISPRESETV1GetPresetDefaultRequest


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

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1GetPresetDefaultRequest)
                                   messageName:@"GetPresetDefaultRequest"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISPRESETV1GetPresetDefaultRequest__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 - KEYAPISPRESETV1GetPresetDefaultResponse

@implementation KEYAPISPRESETV1GetPresetDefaultResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISPRESETV1GetPresetDefaultResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1Preset *data_p;
} KEYAPISPRESETV1GetPresetDefaultResponse__storage_;

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

@end

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

@implementation KEYAPISPRESETV1GetPresetListResponse

@dynamic typeOneOfCase;
@dynamic data_p;
@dynamic error;

typedef struct KEYAPISPRESETV1GetPresetListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1Preset *data_p;
  KEYAPISPRESETV1GetPresetListResponse_Error *error;
} KEYAPISPRESETV1GetPresetListResponse__storage_;

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

@end

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

@implementation KEYAPISPRESETV1GetPresetListResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;

typedef struct KEYAPISPRESETV1GetPresetListResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1ValidationError *validation;
} KEYAPISPRESETV1GetPresetListResponse_Error__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 = "validation",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1ValidationError),
        .number = KEYAPISPRESETV1GetPresetListResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1GetPresetListResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1GetPresetListResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1GetPresetListResponse_Error__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "reason",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1GetPresetListResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISPRESETV1GetPresetCountRequest

@dynamic hasFilter, filter;

typedef struct KEYAPISPRESETV1GetPresetCountRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISPRESETV1PresetFilter *filter;
} KEYAPISPRESETV1GetPresetCountRequest__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "filter",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1PresetFilter),
        .number = KEYAPISPRESETV1GetPresetCountRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1GetPresetCountRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1GetPresetCountRequest)
                                   messageName:@"GetPresetCountRequest"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1GetPresetCountRequest__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 - KEYAPISPRESETV1GetPresetCountResponse

@implementation KEYAPISPRESETV1GetPresetCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;
@dynamic error;

typedef struct KEYAPISPRESETV1GetPresetCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
  KEYAPISPRESETV1GetPresetCountResponse_Error *error;
} KEYAPISPRESETV1GetPresetCountResponse__storage_;

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

@end

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

@implementation KEYAPISPRESETV1GetPresetCountResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;

typedef struct KEYAPISPRESETV1GetPresetCountResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1ValidationError *validation;
} KEYAPISPRESETV1GetPresetCountResponse_Error__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 = "validation",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1ValidationError),
        .number = KEYAPISPRESETV1GetPresetCountResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1GetPresetCountResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1GetPresetCountResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1GetPresetCountResponse_Error__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "reason",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1GetPresetCountResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISPRESETV1DeletePresetRequest

@dynamic id_p;

typedef struct KEYAPISPRESETV1DeletePresetRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISPRESETV1DeletePresetRequest__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 = KEYAPISPRESETV1DeletePresetRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1DeletePresetRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1DeletePresetRequest)
                                   messageName:@"DeletePresetRequest"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1DeletePresetRequest__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 - KEYAPISPRESETV1DeletePresetResponse

@implementation KEYAPISPRESETV1DeletePresetResponse

@dynamic typeOneOfCase;
@dynamic error;

typedef struct KEYAPISPRESETV1DeletePresetResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1DeletePresetResponse_Error *error;
} KEYAPISPRESETV1DeletePresetResponse__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 = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1DeletePresetResponse_Error),
        .number = KEYAPISPRESETV1DeletePresetResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1DeletePresetResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1DeletePresetResponse)
                                   messageName:@"DeletePresetResponse"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1DeletePresetResponse__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "type",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISPRESETV1DeletePresetResponse_Error

@dynamic reasonOneOfCase;
@dynamic notAllowedForDefault;

typedef struct KEYAPISPRESETV1DeletePresetResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISPRESETV1DeletePresetResponse_Error_NotAllowedForDefault *notAllowedForDefault;
} KEYAPISPRESETV1DeletePresetResponse_Error__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 = "notAllowedForDefault",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISPRESETV1DeletePresetResponse_Error_NotAllowedForDefault),
        .number = KEYAPISPRESETV1DeletePresetResponse_Error_FieldNumber_NotAllowedForDefault,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1DeletePresetResponse_Error__storage_, notAllowedForDefault),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1DeletePresetResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1DeletePresetResponse_Error__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "reason",
    };
    [localDescriptor setupOneofs:oneofs
                           count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
                   firstHasIndex:-1];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISPRESETV1DeletePresetResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISPRESETV1DeletePresetResponse_Error_NotAllowedForDefault


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

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

@end

#pragma mark - KEYAPISPRESETV1PresetFilter

@implementation KEYAPISPRESETV1PresetFilter

@dynamic mrfIdsArray, mrfIdsArray_Count;
@dynamic rfIdsArray, rfIdsArray_Count;
@dynamic hasText, text;
@dynamic hasTitle, title;
@dynamic statusTypesArray, statusTypesArray_Count;

typedef struct KEYAPISPRESETV1PresetFilter__storage_ {
  uint32_t _has_storage_[1];
  GPBInt32Array *mrfIdsArray;
  GPBInt32Array *rfIdsArray;
  GPBStringValue *text;
  GPBStringValue *title;
  GPBEnumArray *statusTypesArray;
} KEYAPISPRESETV1PresetFilter__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 = "mrfIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1PresetFilter_FieldNumber_MrfIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetFilter__storage_, mrfIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "rfIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1PresetFilter_FieldNumber_RfIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetFilter__storage_, rfIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "text",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISPRESETV1PresetFilter_FieldNumber_Text,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetFilter__storage_, text),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "title",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISPRESETV1PresetFilter_FieldNumber_Title,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetFilter__storage_, title),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "statusTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISPRESETV1Preset_StatusType_EnumDescriptor,
        .number = KEYAPISPRESETV1PresetFilter_FieldNumber_StatusTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetFilter__storage_, statusTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1PresetFilter)
                                   messageName:@"PresetFilter"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1PresetFilter__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 - KEYAPISPRESETV1PresetPaging

@implementation KEYAPISPRESETV1PresetPaging

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

typedef struct KEYAPISPRESETV1PresetPaging__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISPRESETV1PresetPaging_OrderByType orderByType;
  KEYAPISPRESETV1PresetPaging_DirectionType directionType;
  int32_t limit;
  int32_t offset;
} KEYAPISPRESETV1PresetPaging__storage_;

// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
  static GPBDescriptor *descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static GPBMessageFieldDescription fields[] = {
      {
        .name = "orderByType",
        .dataTypeSpecific.enumDescFunc = KEYAPISPRESETV1PresetPaging_OrderByType_EnumDescriptor,
        .number = KEYAPISPRESETV1PresetPaging_FieldNumber_OrderByType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetPaging__storage_, orderByType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "directionType",
        .dataTypeSpecific.enumDescFunc = KEYAPISPRESETV1PresetPaging_DirectionType_EnumDescriptor,
        .number = KEYAPISPRESETV1PresetPaging_FieldNumber_DirectionType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetPaging__storage_, directionType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "limit",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1PresetPaging_FieldNumber_Limit,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetPaging__storage_, limit),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "offset",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1PresetPaging_FieldNumber_Offset,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1PresetPaging__storage_, offset),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1PresetPaging)
                                   messageName:@"PresetPaging"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1PresetPaging__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 KEYAPISPRESETV1PresetPaging_OrderByType_RawValue(KEYAPISPRESETV1PresetPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1PresetPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1PresetPaging_FieldNumber_OrderByType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISPRESETV1PresetPaging_OrderByType_RawValue(KEYAPISPRESETV1PresetPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1PresetPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1PresetPaging_FieldNumber_OrderByType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISPRESETV1PresetPaging_DirectionType_RawValue(KEYAPISPRESETV1PresetPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1PresetPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1PresetPaging_FieldNumber_DirectionType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISPRESETV1PresetPaging_DirectionType_RawValue(KEYAPISPRESETV1PresetPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISPRESETV1PresetPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISPRESETV1PresetPaging_FieldNumber_DirectionType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISPRESETV1ValidationError

@implementation KEYAPISPRESETV1ValidationError

@dynamic path;
@dynamic message;

typedef struct KEYAPISPRESETV1ValidationError__storage_ {
  uint32_t _has_storage_[1];
  NSString *path;
  NSString *message;
} KEYAPISPRESETV1ValidationError__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 = "path",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1ValidationError_FieldNumber_Path,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1ValidationError__storage_, path),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "message",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISPRESETV1ValidationError_FieldNumber_Message,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISPRESETV1ValidationError__storage_, message),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISPRESETV1ValidationError)
                                   messageName:@"ValidationError"
                               fileDescription:&KEYAPISPRESETV1KeyapisPresetPresetV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISPRESETV1ValidationError__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end


#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
