// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: deviceapis/device/v1/deviceapis_device_code_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 "deviceapis/device/v1/DeviceapisDeviceCodeV1.pbobjc.h"
#import "deviceapis/device/v1/DeviceapisDeviceCommonV1.pbobjc.h"
#import "google/api/Annotations.pbobjc.h"
#import "google/api/FieldBehavior.pbobjc.h"
#import "protoc-gen-openapiv2/options/Annotations.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(DEVICEAPISDEVICEV1Code);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1CodePaging);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1Code_SavingError);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1DeleteCodeListRequest);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1DeleteCodeListResponse);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1DeleteCodeRequest);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1DeleteCodeResponse);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1DeleteCodeResponse_Error);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1GetCodeCountRequest);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1GetCodeCountResponse);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1GetCodeListRequest);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1GetCodeListResponse);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1GetCodeRequest);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1GetCodeResponse);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1SaveCodeListRequest);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1SaveCodeListResponse);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1SaveCodeListResponse_Error);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1SaveCodeRequest);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1SaveCodeResponse);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1SaveCodeResponse_Error);
GPBObjCClassDeclaration(DEVICEAPISDEVICEV1ValidationError);

#pragma mark - DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root

@implementation DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root

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

@end

static GPBFileDescription DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription = {
  .package = "deviceapis.device.v1",
  .prefix = "DEVICEAPISDEVICEV1",
  .syntax = GPBFileSyntaxProto3
};

#pragma mark - DEVICEAPISDEVICEV1Code

@implementation DEVICEAPISDEVICEV1Code

@dynamic code;
@dynamic description_p;
@dynamic relayIndexesArray, relayIndexesArray_Count;

typedef struct DEVICEAPISDEVICEV1Code__storage_ {
  uint32_t _has_storage_[1];
  NSString *code;
  NSString *description_p;
  GPBInt32Array *relayIndexesArray;
} DEVICEAPISDEVICEV1Code__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 = DEVICEAPISDEVICEV1Code_FieldNumber_Code,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1Code__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "description_p",
        .dataTypeSpecific.clazz = Nil,
        .number = DEVICEAPISDEVICEV1Code_FieldNumber_Description_p,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1Code__storage_, description_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "relayIndexesArray",
        .dataTypeSpecific.clazz = Nil,
        .number = DEVICEAPISDEVICEV1Code_FieldNumber_RelayIndexesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1Code__storage_, relayIndexesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1Code)
                                   messageName:@"Code"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1Code__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 - DEVICEAPISDEVICEV1Code_SavingError

@implementation DEVICEAPISDEVICEV1Code_SavingError

@dynamic reasonOneOfCase;
@dynamic relayNotFound;

typedef struct DEVICEAPISDEVICEV1Code_SavingError__storage_ {
  uint32_t _has_storage_[2];
  DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound *relayNotFound;
} DEVICEAPISDEVICEV1Code_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 = "relayNotFound",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound),
        .number = DEVICEAPISDEVICEV1Code_SavingError_FieldNumber_RelayNotFound,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1Code_SavingError__storage_, relayNotFound),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1Code_SavingError)
                                   messageName:@"SavingError"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1Code_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(DEVICEAPISDEVICEV1Code)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound


typedef struct DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound__storage_ {
  uint32_t _has_storage_[1];
} DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound__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(DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound)
                                   messageName:@"RelayNotFound"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(DEVICEAPISDEVICEV1Code_SavingError)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - DEVICEAPISDEVICEV1CodePaging

@implementation DEVICEAPISDEVICEV1CodePaging

@dynamic limit;
@dynamic offset;

typedef struct DEVICEAPISDEVICEV1CodePaging__storage_ {
  uint32_t _has_storage_[1];
  int32_t limit;
  int32_t offset;
} DEVICEAPISDEVICEV1CodePaging__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 = "limit",
        .dataTypeSpecific.clazz = Nil,
        .number = DEVICEAPISDEVICEV1CodePaging_FieldNumber_Limit,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1CodePaging__storage_, limit),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "offset",
        .dataTypeSpecific.clazz = Nil,
        .number = DEVICEAPISDEVICEV1CodePaging_FieldNumber_Offset,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1CodePaging__storage_, offset),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1CodePaging)
                                   messageName:@"CodePaging"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1CodePaging__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 - DEVICEAPISDEVICEV1DeleteCodeListRequest

@implementation DEVICEAPISDEVICEV1DeleteCodeListRequest


typedef struct DEVICEAPISDEVICEV1DeleteCodeListRequest__storage_ {
  uint32_t _has_storage_[1];
} DEVICEAPISDEVICEV1DeleteCodeListRequest__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(DEVICEAPISDEVICEV1DeleteCodeListRequest)
                                   messageName:@"DeleteCodeListRequest"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(DEVICEAPISDEVICEV1DeleteCodeListRequest__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 - DEVICEAPISDEVICEV1DeleteCodeListResponse

@implementation DEVICEAPISDEVICEV1DeleteCodeListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct DEVICEAPISDEVICEV1DeleteCodeListResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} DEVICEAPISDEVICEV1DeleteCodeListResponse__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 = DEVICEAPISDEVICEV1DeleteCodeListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1DeleteCodeListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1DeleteCodeListResponse)
                                   messageName:@"DeleteCodeListResponse"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1DeleteCodeListResponse__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 DEVICEAPISDEVICEV1DeleteCodeListResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1DeleteCodeListResponse *message) {
  GPBDescriptor *descriptor = [DEVICEAPISDEVICEV1DeleteCodeListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - DEVICEAPISDEVICEV1DeleteCodeRequest

@implementation DEVICEAPISDEVICEV1DeleteCodeRequest

@dynamic code;

typedef struct DEVICEAPISDEVICEV1DeleteCodeRequest__storage_ {
  uint32_t _has_storage_[1];
  NSString *code;
} DEVICEAPISDEVICEV1DeleteCodeRequest__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 = DEVICEAPISDEVICEV1DeleteCodeRequest_FieldNumber_Code,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1DeleteCodeRequest__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1DeleteCodeRequest)
                                   messageName:@"DeleteCodeRequest"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1DeleteCodeRequest__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 - DEVICEAPISDEVICEV1DeleteCodeResponse

@implementation DEVICEAPISDEVICEV1DeleteCodeResponse

@dynamic typeOneOfCase;
@dynamic error;

typedef struct DEVICEAPISDEVICEV1DeleteCodeResponse__storage_ {
  uint32_t _has_storage_[2];
  DEVICEAPISDEVICEV1DeleteCodeResponse_Error *error;
} DEVICEAPISDEVICEV1DeleteCodeResponse__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(DEVICEAPISDEVICEV1DeleteCodeResponse_Error),
        .number = DEVICEAPISDEVICEV1DeleteCodeResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1DeleteCodeResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1DeleteCodeResponse)
                                   messageName:@"DeleteCodeResponse"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1DeleteCodeResponse__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 DEVICEAPISDEVICEV1DeleteCodeResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1DeleteCodeResponse *message) {
  GPBDescriptor *descriptor = [DEVICEAPISDEVICEV1DeleteCodeResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - DEVICEAPISDEVICEV1DeleteCodeResponse_Error

@implementation DEVICEAPISDEVICEV1DeleteCodeResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;

typedef struct DEVICEAPISDEVICEV1DeleteCodeResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  DEVICEAPISDEVICEV1ValidationError *validation;
} DEVICEAPISDEVICEV1DeleteCodeResponse_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(DEVICEAPISDEVICEV1ValidationError),
        .number = DEVICEAPISDEVICEV1DeleteCodeResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1DeleteCodeResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1DeleteCodeResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1DeleteCodeResponse_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(DEVICEAPISDEVICEV1DeleteCodeResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation DEVICEAPISDEVICEV1GetCodeCountRequest


typedef struct DEVICEAPISDEVICEV1GetCodeCountRequest__storage_ {
  uint32_t _has_storage_[1];
} DEVICEAPISDEVICEV1GetCodeCountRequest__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(DEVICEAPISDEVICEV1GetCodeCountRequest)
                                   messageName:@"GetCodeCountRequest"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(DEVICEAPISDEVICEV1GetCodeCountRequest__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 - DEVICEAPISDEVICEV1GetCodeCountResponse

@implementation DEVICEAPISDEVICEV1GetCodeCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct DEVICEAPISDEVICEV1GetCodeCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} DEVICEAPISDEVICEV1GetCodeCountResponse__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 = DEVICEAPISDEVICEV1GetCodeCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1GetCodeCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1GetCodeCountResponse)
                                   messageName:@"GetCodeCountResponse"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1GetCodeCountResponse__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 DEVICEAPISDEVICEV1GetCodeCountResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1GetCodeCountResponse *message) {
  GPBDescriptor *descriptor = [DEVICEAPISDEVICEV1GetCodeCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - DEVICEAPISDEVICEV1GetCodeListRequest

@implementation DEVICEAPISDEVICEV1GetCodeListRequest

@dynamic paginationOneOfCase;
@dynamic paging;

typedef struct DEVICEAPISDEVICEV1GetCodeListRequest__storage_ {
  uint32_t _has_storage_[2];
  DEVICEAPISDEVICEV1CodePaging *paging;
} DEVICEAPISDEVICEV1GetCodeListRequest__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 = "paging",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1CodePaging),
        .number = DEVICEAPISDEVICEV1GetCodeListRequest_FieldNumber_Paging,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1GetCodeListRequest__storage_, paging),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1GetCodeListRequest)
                                   messageName:@"GetCodeListRequest"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1GetCodeListRequest__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 DEVICEAPISDEVICEV1GetCodeListRequest_ClearPaginationOneOfCase(DEVICEAPISDEVICEV1GetCodeListRequest *message) {
  GPBDescriptor *descriptor = [DEVICEAPISDEVICEV1GetCodeListRequest descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - DEVICEAPISDEVICEV1GetCodeListResponse

@implementation DEVICEAPISDEVICEV1GetCodeListResponse

@dynamic dataArray, dataArray_Count;

typedef struct DEVICEAPISDEVICEV1GetCodeListResponse__storage_ {
  uint32_t _has_storage_[1];
  NSMutableArray *dataArray;
} DEVICEAPISDEVICEV1GetCodeListResponse__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 = "dataArray",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1Code),
        .number = DEVICEAPISDEVICEV1GetCodeListResponse_FieldNumber_DataArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1GetCodeListResponse__storage_, dataArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1GetCodeListResponse)
                                   messageName:@"GetCodeListResponse"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1GetCodeListResponse__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 - DEVICEAPISDEVICEV1GetCodeRequest

@implementation DEVICEAPISDEVICEV1GetCodeRequest

@dynamic code;

typedef struct DEVICEAPISDEVICEV1GetCodeRequest__storage_ {
  uint32_t _has_storage_[1];
  NSString *code;
} DEVICEAPISDEVICEV1GetCodeRequest__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 = DEVICEAPISDEVICEV1GetCodeRequest_FieldNumber_Code,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1GetCodeRequest__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1GetCodeRequest)
                                   messageName:@"GetCodeRequest"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1GetCodeRequest__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 - DEVICEAPISDEVICEV1GetCodeResponse

@implementation DEVICEAPISDEVICEV1GetCodeResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct DEVICEAPISDEVICEV1GetCodeResponse__storage_ {
  uint32_t _has_storage_[2];
  DEVICEAPISDEVICEV1Code *data_p;
} DEVICEAPISDEVICEV1GetCodeResponse__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(DEVICEAPISDEVICEV1Code),
        .number = DEVICEAPISDEVICEV1GetCodeResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1GetCodeResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1GetCodeResponse)
                                   messageName:@"GetCodeResponse"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1GetCodeResponse__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 DEVICEAPISDEVICEV1GetCodeResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1GetCodeResponse *message) {
  GPBDescriptor *descriptor = [DEVICEAPISDEVICEV1GetCodeResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - DEVICEAPISDEVICEV1SaveCodeListRequest

@implementation DEVICEAPISDEVICEV1SaveCodeListRequest

@dynamic dataArray, dataArray_Count;

typedef struct DEVICEAPISDEVICEV1SaveCodeListRequest__storage_ {
  uint32_t _has_storage_[1];
  NSMutableArray *dataArray;
} DEVICEAPISDEVICEV1SaveCodeListRequest__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 = "dataArray",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1Code),
        .number = DEVICEAPISDEVICEV1SaveCodeListRequest_FieldNumber_DataArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeListRequest__storage_, dataArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeListRequest)
                                   messageName:@"SaveCodeListRequest"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1SaveCodeListRequest__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 - DEVICEAPISDEVICEV1SaveCodeListResponse

@implementation DEVICEAPISDEVICEV1SaveCodeListResponse

@dynamic dataArray, dataArray_Count;
@dynamic errorsArray, errorsArray_Count;

typedef struct DEVICEAPISDEVICEV1SaveCodeListResponse__storage_ {
  uint32_t _has_storage_[1];
  NSMutableArray *dataArray;
  NSMutableArray *errorsArray;
} DEVICEAPISDEVICEV1SaveCodeListResponse__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 = "dataArray",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1Code),
        .number = DEVICEAPISDEVICEV1SaveCodeListResponse_FieldNumber_DataArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeListResponse__storage_, dataArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "errorsArray",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeListResponse_Error),
        .number = DEVICEAPISDEVICEV1SaveCodeListResponse_FieldNumber_ErrorsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeListResponse__storage_, errorsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeListResponse)
                                   messageName:@"SaveCodeListResponse"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1SaveCodeListResponse__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 - DEVICEAPISDEVICEV1SaveCodeListResponse_Error

@implementation DEVICEAPISDEVICEV1SaveCodeListResponse_Error

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

typedef struct DEVICEAPISDEVICEV1SaveCodeListResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  NSString *code;
  DEVICEAPISDEVICEV1ValidationError *validation;
  DEVICEAPISDEVICEV1Code_SavingError *saving;
} DEVICEAPISDEVICEV1SaveCodeListResponse_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 = "code",
        .dataTypeSpecific.clazz = Nil,
        .number = DEVICEAPISDEVICEV1SaveCodeListResponse_Error_FieldNumber_Code,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeListResponse_Error__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "validation",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1ValidationError),
        .number = DEVICEAPISDEVICEV1SaveCodeListResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeListResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "saving",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1Code_SavingError),
        .number = DEVICEAPISDEVICEV1SaveCodeListResponse_Error_FieldNumber_Saving,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeListResponse_Error__storage_, saving),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeListResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1SaveCodeListResponse_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(DEVICEAPISDEVICEV1SaveCodeListResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation DEVICEAPISDEVICEV1SaveCodeRequest

@dynamic hasData_p, data_p;

typedef struct DEVICEAPISDEVICEV1SaveCodeRequest__storage_ {
  uint32_t _has_storage_[1];
  DEVICEAPISDEVICEV1Code *data_p;
} DEVICEAPISDEVICEV1SaveCodeRequest__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(DEVICEAPISDEVICEV1Code),
        .number = DEVICEAPISDEVICEV1SaveCodeRequest_FieldNumber_Data_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeRequest__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeRequest)
                                   messageName:@"SaveCodeRequest"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1SaveCodeRequest__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 - DEVICEAPISDEVICEV1SaveCodeResponse

@implementation DEVICEAPISDEVICEV1SaveCodeResponse

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

typedef struct DEVICEAPISDEVICEV1SaveCodeResponse__storage_ {
  uint32_t _has_storage_[2];
  DEVICEAPISDEVICEV1Code *data_p;
  DEVICEAPISDEVICEV1SaveCodeResponse_Error *error;
} DEVICEAPISDEVICEV1SaveCodeResponse__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(DEVICEAPISDEVICEV1Code),
        .number = DEVICEAPISDEVICEV1SaveCodeResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeResponse_Error),
        .number = DEVICEAPISDEVICEV1SaveCodeResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeResponse)
                                   messageName:@"SaveCodeResponse"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1SaveCodeResponse__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 DEVICEAPISDEVICEV1SaveCodeResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1SaveCodeResponse *message) {
  GPBDescriptor *descriptor = [DEVICEAPISDEVICEV1SaveCodeResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - DEVICEAPISDEVICEV1SaveCodeResponse_Error

@implementation DEVICEAPISDEVICEV1SaveCodeResponse_Error

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

typedef struct DEVICEAPISDEVICEV1SaveCodeResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  DEVICEAPISDEVICEV1ValidationError *validation;
  DEVICEAPISDEVICEV1Code_SavingError *saving;
} DEVICEAPISDEVICEV1SaveCodeResponse_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(DEVICEAPISDEVICEV1ValidationError),
        .number = DEVICEAPISDEVICEV1SaveCodeResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "saving",
        .dataTypeSpecific.clazz = GPBObjCClass(DEVICEAPISDEVICEV1Code_SavingError),
        .number = DEVICEAPISDEVICEV1SaveCodeResponse_Error_FieldNumber_Saving,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(DEVICEAPISDEVICEV1SaveCodeResponse_Error__storage_, saving),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(DEVICEAPISDEVICEV1SaveCodeResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(DEVICEAPISDEVICEV1SaveCodeResponse_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(DEVICEAPISDEVICEV1SaveCodeResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

void DEVICEAPISDEVICEV1SaveCodeResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1SaveCodeResponse_Error *message) {
  GPBDescriptor *descriptor = [DEVICEAPISDEVICEV1SaveCodeResponse_Error descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
