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

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-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(GPBBoolValue);
GPBObjCClassDeclaration(GPBStringValue);
GPBObjCClassDeclaration(GPBTimestamp);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1DeletePartnerRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1DeletePartnerResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1DeletePartnerResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerCountRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerCountResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerCountResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerListRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerListResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerListResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1IdTokenPayload);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1Partner);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PartnerFilter);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PartnerPaging);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1Partner_SavingError);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1Partner_SavingError_Conflict);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PostPartnerRequest);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PostPartnerResponse);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PostPartnerResponse_Error);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1Token);
GPBObjCClassDeclaration(KEYAPISMULTIAPPV1ValidationError);

#pragma mark - KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root

@implementation KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root

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

@end

static GPBFileDescription KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription = {
  .package = "keyapis.multiapp.v1",
  .prefix = "KEYAPISMULTIAPPV1",
  .syntax = GPBFileSyntaxProto3
};

#pragma mark - Enum KEYAPISMULTIAPPV1PartnerPaging_OrderByType

GPBEnumDescriptor *KEYAPISMULTIAPPV1PartnerPaging_OrderByType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "OrderByTypeUnknown\000ChangedAt\000CreatedAt\000R"
        "ank\000";
    static const int32_t values[] = {
        KEYAPISMULTIAPPV1PartnerPaging_OrderByType_OrderByTypeUnknown,
        KEYAPISMULTIAPPV1PartnerPaging_OrderByType_ChangedAt,
        KEYAPISMULTIAPPV1PartnerPaging_OrderByType_CreatedAt,
        KEYAPISMULTIAPPV1PartnerPaging_OrderByType_Rank,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISMULTIAPPV1PartnerPaging_OrderByType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISMULTIAPPV1PartnerPaging_OrderByType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISMULTIAPPV1PartnerPaging_OrderByType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISMULTIAPPV1PartnerPaging_OrderByType_OrderByTypeUnknown:
    case KEYAPISMULTIAPPV1PartnerPaging_OrderByType_ChangedAt:
    case KEYAPISMULTIAPPV1PartnerPaging_OrderByType_CreatedAt:
    case KEYAPISMULTIAPPV1PartnerPaging_OrderByType_Rank:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISMULTIAPPV1PartnerPaging_DirectionType

GPBEnumDescriptor *KEYAPISMULTIAPPV1PartnerPaging_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[] = {
        KEYAPISMULTIAPPV1PartnerPaging_DirectionType_DirectionTypeUnknown,
        KEYAPISMULTIAPPV1PartnerPaging_DirectionType_Desc,
        KEYAPISMULTIAPPV1PartnerPaging_DirectionType_Asc,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISMULTIAPPV1PartnerPaging_DirectionType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISMULTIAPPV1PartnerPaging_DirectionType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISMULTIAPPV1PartnerPaging_DirectionType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISMULTIAPPV1PartnerPaging_DirectionType_DirectionTypeUnknown:
    case KEYAPISMULTIAPPV1PartnerPaging_DirectionType_Desc:
    case KEYAPISMULTIAPPV1PartnerPaging_DirectionType_Asc:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - KEYAPISMULTIAPPV1Partner

@implementation KEYAPISMULTIAPPV1Partner

@dynamic id_p;
@dynamic name;
@dynamic hasApiKey, apiKey;
@dynamic hasPublicKey, publicKey;
@dynamic hasCreatedAt, createdAt;
@dynamic hasChangedAt, changedAt;
@dynamic hasDeletedAt, deletedAt;
@dynamic hasApiKeyHash, apiKeyHash;
@dynamic hasApiKeyMasked, apiKeyMasked;

typedef struct KEYAPISMULTIAPPV1Partner__storage_ {
  uint32_t _has_storage_[1];
  NSString *id_p;
  NSString *name;
  GPBStringValue *apiKey;
  GPBStringValue *publicKey;
  GPBTimestamp *createdAt;
  GPBTimestamp *changedAt;
  GPBTimestamp *deletedAt;
  GPBStringValue *apiKeyHash;
  GPBStringValue *apiKeyMasked;
} KEYAPISMULTIAPPV1Partner__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 = KEYAPISMULTIAPPV1Partner_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "name",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_Name,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, name),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "apiKey",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_ApiKey,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, apiKey),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "publicKey",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_PublicKey,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, publicKey),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "createdAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_CreatedAt,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, createdAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_ChangedAt,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "deletedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_DeletedAt,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, deletedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "apiKeyHash",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_ApiKeyHash,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, apiKeyHash),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "apiKeyMasked",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1Partner_FieldNumber_ApiKeyMasked,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner__storage_, apiKeyMasked),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1Partner)
                                   messageName:@"Partner"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1Partner__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 - KEYAPISMULTIAPPV1Partner_SavingError

@implementation KEYAPISMULTIAPPV1Partner_SavingError

@dynamic reasonOneOfCase;
@dynamic conflict;
@dynamic apiKeyExists;
@dynamic partnerIsDeleted;

typedef struct KEYAPISMULTIAPPV1Partner_SavingError__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1Partner_SavingError_Conflict *conflict;
  KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists *apiKeyExists;
  KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted *partnerIsDeleted;
} KEYAPISMULTIAPPV1Partner_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(KEYAPISMULTIAPPV1Partner_SavingError_Conflict),
        .number = KEYAPISMULTIAPPV1Partner_SavingError_FieldNumber_Conflict,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner_SavingError__storage_, conflict),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "apiKeyExists",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists),
        .number = KEYAPISMULTIAPPV1Partner_SavingError_FieldNumber_ApiKeyExists,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner_SavingError__storage_, apiKeyExists),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "partnerIsDeleted",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted),
        .number = KEYAPISMULTIAPPV1Partner_SavingError_FieldNumber_PartnerIsDeleted,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Partner_SavingError__storage_, partnerIsDeleted),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1Partner_SavingError)
                                   messageName:@"SavingError"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1Partner_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(KEYAPISMULTIAPPV1Partner)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISMULTIAPPV1Partner_SavingError_Conflict


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

@end

#pragma mark - KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists

@implementation KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists


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

@end

#pragma mark - KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted

@implementation KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted


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

@end

#pragma mark - KEYAPISMULTIAPPV1Token

@implementation KEYAPISMULTIAPPV1Token

@dynamic idToken;
@dynamic accessToken;
@dynamic typeOfAccessToken;
@dynamic refreshToken;
@dynamic expiresIn;

typedef struct KEYAPISMULTIAPPV1Token__storage_ {
  uint32_t _has_storage_[1];
  int32_t expiresIn;
  NSString *idToken;
  NSString *accessToken;
  NSString *typeOfAccessToken;
  NSString *refreshToken;
} KEYAPISMULTIAPPV1Token__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 = "idToken",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1Token_FieldNumber_IdToken,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Token__storage_, idToken),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "accessToken",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1Token_FieldNumber_AccessToken,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Token__storage_, accessToken),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "typeOfAccessToken",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1Token_FieldNumber_TypeOfAccessToken,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Token__storage_, typeOfAccessToken),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "refreshToken",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1Token_FieldNumber_RefreshToken,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Token__storage_, refreshToken),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "expiresIn",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1Token_FieldNumber_ExpiresIn,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1Token__storage_, expiresIn),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1Token)
                                   messageName:@"Token"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1Token__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 - KEYAPISMULTIAPPV1PartnerFilter

@implementation KEYAPISMULTIAPPV1PartnerFilter

@dynamic hasText, text;
@dynamic hasBeginChangedAt, beginChangedAt;
@dynamic hasEndChangedAt, endChangedAt;
@dynamic templateIdsArray, templateIdsArray_Count;
@dynamic hasIsShowDeleted, isShowDeleted;

typedef struct KEYAPISMULTIAPPV1PartnerFilter__storage_ {
  uint32_t _has_storage_[1];
  GPBStringValue *text;
  GPBTimestamp *beginChangedAt;
  GPBTimestamp *endChangedAt;
  NSMutableArray *templateIdsArray;
  GPBBoolValue *isShowDeleted;
} KEYAPISMULTIAPPV1PartnerFilter__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 = "text",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_Text,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerFilter__storage_, text),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "beginChangedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_BeginChangedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerFilter__storage_, beginChangedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "endChangedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_EndChangedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerFilter__storage_, endChangedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "templateIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_TemplateIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerFilter__storage_, templateIdsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "isShowDeleted",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBBoolValue),
        .number = KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_IsShowDeleted,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerFilter__storage_, isShowDeleted),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PartnerFilter)
                                   messageName:@"PartnerFilter"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PartnerFilter__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 - KEYAPISMULTIAPPV1PartnerPaging

@implementation KEYAPISMULTIAPPV1PartnerPaging

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

typedef struct KEYAPISMULTIAPPV1PartnerPaging__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISMULTIAPPV1PartnerPaging_OrderByType orderByType;
  KEYAPISMULTIAPPV1PartnerPaging_DirectionType directionType;
  int32_t limit;
  int32_t offset;
} KEYAPISMULTIAPPV1PartnerPaging__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 = KEYAPISMULTIAPPV1PartnerPaging_OrderByType_EnumDescriptor,
        .number = KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_OrderByType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerPaging__storage_, orderByType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "directionType",
        .dataTypeSpecific.enumDescFunc = KEYAPISMULTIAPPV1PartnerPaging_DirectionType_EnumDescriptor,
        .number = KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_DirectionType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerPaging__storage_, directionType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "limit",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_Limit,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerPaging__storage_, limit),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "offset",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_Offset,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PartnerPaging__storage_, offset),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PartnerPaging)
                                   messageName:@"PartnerPaging"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PartnerPaging__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 KEYAPISMULTIAPPV1PartnerPaging_OrderByType_RawValue(KEYAPISMULTIAPPV1PartnerPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1PartnerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_OrderByType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISMULTIAPPV1PartnerPaging_OrderByType_RawValue(KEYAPISMULTIAPPV1PartnerPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1PartnerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_OrderByType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISMULTIAPPV1PartnerPaging_DirectionType_RawValue(KEYAPISMULTIAPPV1PartnerPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1PartnerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_DirectionType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISMULTIAPPV1PartnerPaging_DirectionType_RawValue(KEYAPISMULTIAPPV1PartnerPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1PartnerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_DirectionType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISMULTIAPPV1PostPartnerRequest

@implementation KEYAPISMULTIAPPV1PostPartnerRequest

@dynamic hasData_p, data_p;

typedef struct KEYAPISMULTIAPPV1PostPartnerRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISMULTIAPPV1Partner *data_p;
} KEYAPISMULTIAPPV1PostPartnerRequest__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(KEYAPISMULTIAPPV1Partner),
        .number = KEYAPISMULTIAPPV1PostPartnerRequest_FieldNumber_Data_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerRequest__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerRequest)
                                   messageName:@"PostPartnerRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PostPartnerRequest__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 - KEYAPISMULTIAPPV1PostPartnerResponse

@implementation KEYAPISMULTIAPPV1PostPartnerResponse

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

typedef struct KEYAPISMULTIAPPV1PostPartnerResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1Partner *data_p;
  KEYAPISMULTIAPPV1PostPartnerResponse_Error *error;
} KEYAPISMULTIAPPV1PostPartnerResponse__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(KEYAPISMULTIAPPV1Partner),
        .number = KEYAPISMULTIAPPV1PostPartnerResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerResponse_Error),
        .number = KEYAPISMULTIAPPV1PostPartnerResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerResponse)
                                   messageName:@"PostPartnerResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PostPartnerResponse__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 KEYAPISMULTIAPPV1PostPartnerResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1PostPartnerResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1PostPartnerResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1PostPartnerResponse_Error

@implementation KEYAPISMULTIAPPV1PostPartnerResponse_Error

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

typedef struct KEYAPISMULTIAPPV1PostPartnerResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1ValidationError *validation;
  KEYAPISMULTIAPPV1Partner_SavingError *saving;
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation *missingApiKeyOnCreation;
} KEYAPISMULTIAPPV1PostPartnerResponse_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(KEYAPISMULTIAPPV1ValidationError),
        .number = KEYAPISMULTIAPPV1PostPartnerResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "saving",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1Partner_SavingError),
        .number = KEYAPISMULTIAPPV1PostPartnerResponse_Error_FieldNumber_Saving,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerResponse_Error__storage_, saving),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "missingApiKeyOnCreation",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation),
        .number = KEYAPISMULTIAPPV1PostPartnerResponse_Error_FieldNumber_MissingApiKeyOnCreation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerResponse_Error__storage_, missingApiKeyOnCreation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PostPartnerResponse_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(KEYAPISMULTIAPPV1PostPartnerResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation


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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerRequest

@implementation KEYAPISMULTIAPPV1GetPartnerRequest

@dynamic id_p;

typedef struct KEYAPISMULTIAPPV1GetPartnerRequest__storage_ {
  uint32_t _has_storage_[1];
  NSString *id_p;
} KEYAPISMULTIAPPV1GetPartnerRequest__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 = KEYAPISMULTIAPPV1GetPartnerRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerRequest)
                                   messageName:@"GetPartnerRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerRequest__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 - KEYAPISMULTIAPPV1GetPartnerResponse

@implementation KEYAPISMULTIAPPV1GetPartnerResponse

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

typedef struct KEYAPISMULTIAPPV1GetPartnerResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1Partner *data_p;
  KEYAPISMULTIAPPV1GetPartnerResponse_Error *error;
} KEYAPISMULTIAPPV1GetPartnerResponse__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(KEYAPISMULTIAPPV1Partner),
        .number = KEYAPISMULTIAPPV1GetPartnerResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerResponse_Error),
        .number = KEYAPISMULTIAPPV1GetPartnerResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerResponse)
                                   messageName:@"GetPartnerResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerResponse__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 KEYAPISMULTIAPPV1GetPartnerResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1GetPartnerResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1GetPartnerResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1GetPartnerResponse_Error

@implementation KEYAPISMULTIAPPV1GetPartnerResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;

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

@end

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

@implementation KEYAPISMULTIAPPV1GetPartnerListRequest

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

typedef struct KEYAPISMULTIAPPV1GetPartnerListRequest__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1PartnerFilter *filter;
  KEYAPISMULTIAPPV1PartnerPaging *paging;
} KEYAPISMULTIAPPV1GetPartnerListRequest__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(KEYAPISMULTIAPPV1PartnerFilter),
        .number = KEYAPISMULTIAPPV1GetPartnerListRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerListRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "paging",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1PartnerPaging),
        .number = KEYAPISMULTIAPPV1GetPartnerListRequest_FieldNumber_Paging,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerListRequest__storage_, paging),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerListRequest)
                                   messageName:@"GetPartnerListRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerListRequest__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 KEYAPISMULTIAPPV1GetPartnerListRequest_ClearPaginationOneOfCase(KEYAPISMULTIAPPV1GetPartnerListRequest *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1GetPartnerListRequest descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1GetPartnerListResponse

@implementation KEYAPISMULTIAPPV1GetPartnerListResponse

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

typedef struct KEYAPISMULTIAPPV1GetPartnerListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1Partner *data_p;
  KEYAPISMULTIAPPV1GetPartnerListResponse_Error *error;
} KEYAPISMULTIAPPV1GetPartnerListResponse__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(KEYAPISMULTIAPPV1Partner),
        .number = KEYAPISMULTIAPPV1GetPartnerListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerListResponse_Error),
        .number = KEYAPISMULTIAPPV1GetPartnerListResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerListResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerListResponse)
                                   messageName:@"GetPartnerListResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerListResponse__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 KEYAPISMULTIAPPV1GetPartnerListResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1GetPartnerListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1GetPartnerListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1GetPartnerListResponse_Error

@implementation KEYAPISMULTIAPPV1GetPartnerListResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;

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

@end

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

@implementation KEYAPISMULTIAPPV1GetPartnerCountRequest

@dynamic hasFilter, filter;

typedef struct KEYAPISMULTIAPPV1GetPartnerCountRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISMULTIAPPV1PartnerFilter *filter;
} KEYAPISMULTIAPPV1GetPartnerCountRequest__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(KEYAPISMULTIAPPV1PartnerFilter),
        .number = KEYAPISMULTIAPPV1GetPartnerCountRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerCountRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerCountRequest)
                                   messageName:@"GetPartnerCountRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerCountRequest__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 - KEYAPISMULTIAPPV1GetPartnerCountResponse

@implementation KEYAPISMULTIAPPV1GetPartnerCountResponse

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

typedef struct KEYAPISMULTIAPPV1GetPartnerCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
  KEYAPISMULTIAPPV1GetPartnerCountResponse_Error *error;
} KEYAPISMULTIAPPV1GetPartnerCountResponse__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 = KEYAPISMULTIAPPV1GetPartnerCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerCountResponse_Error),
        .number = KEYAPISMULTIAPPV1GetPartnerCountResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerCountResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerCountResponse)
                                   messageName:@"GetPartnerCountResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerCountResponse__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 KEYAPISMULTIAPPV1GetPartnerCountResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1GetPartnerCountResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1GetPartnerCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1GetPartnerCountResponse_Error

@implementation KEYAPISMULTIAPPV1GetPartnerCountResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;

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

@end

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

@implementation KEYAPISMULTIAPPV1GetPartnerTokenRequest

@dynamic code;
@dynamic response;
@dynamic nonce;

typedef struct KEYAPISMULTIAPPV1GetPartnerTokenRequest__storage_ {
  uint32_t _has_storage_[1];
  NSString *code;
  NSString *response;
  NSString *nonce;
} KEYAPISMULTIAPPV1GetPartnerTokenRequest__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 = KEYAPISMULTIAPPV1GetPartnerTokenRequest_FieldNumber_Code,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenRequest__storage_, code),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "response",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1GetPartnerTokenRequest_FieldNumber_Response,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenRequest__storage_, response),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "nonce",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1GetPartnerTokenRequest_FieldNumber_Nonce,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenRequest__storage_, nonce),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenRequest)
                                   messageName:@"GetPartnerTokenRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerTokenRequest__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 - KEYAPISMULTIAPPV1GetPartnerTokenResponse

@implementation KEYAPISMULTIAPPV1GetPartnerTokenResponse

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

typedef struct KEYAPISMULTIAPPV1GetPartnerTokenResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1Token *data_p;
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error *error;
} KEYAPISMULTIAPPV1GetPartnerTokenResponse__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(KEYAPISMULTIAPPV1Token),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse)
                                   messageName:@"GetPartnerTokenResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerTokenResponse__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 KEYAPISMULTIAPPV1GetPartnerTokenResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1GetPartnerTokenResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1GetPartnerTokenResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error

@implementation KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;
@dynamic userNotFound;
@dynamic tokenGenerationError;
@dynamic codeNotFoundOrExpiredError;
@dynamic responseTypeIsNotSupported;
@dynamic permissionDenied;

typedef struct KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1ValidationError *validation;
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError *userNotFound;
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError *tokenGenerationError;
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError *codeNotFoundOrExpiredError;
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported *responseTypeIsNotSupported;
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied *permissionDenied;
} KEYAPISMULTIAPPV1GetPartnerTokenResponse_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(KEYAPISMULTIAPPV1ValidationError),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "userNotFound",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_UserNotFound,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error__storage_, userNotFound),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "tokenGenerationError",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_TokenGenerationError,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error__storage_, tokenGenerationError),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "codeNotFoundOrExpiredError",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_CodeNotFoundOrExpiredError,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error__storage_, codeNotFoundOrExpiredError),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "responseTypeIsNotSupported",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_ResponseTypeIsNotSupported,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error__storage_, responseTypeIsNotSupported),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "permissionDenied",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied),
        .number = KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_PermissionDenied,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error__storage_, permissionDenied),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerTokenResponse_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(KEYAPISMULTIAPPV1GetPartnerTokenResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError


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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError

@implementation KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError


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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError

@implementation KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError


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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported

@implementation KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported


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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied

@implementation KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied


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

@end

#pragma mark - KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest

@implementation KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest

@dynamic publicKey;

typedef struct KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest__storage_ {
  uint32_t _has_storage_[1];
  NSString *publicKey;
} KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest__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 = "publicKey",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest_FieldNumber_PublicKey,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest__storage_, publicKey),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest)
                                   messageName:@"PostPartnerPublicKeyRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest__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 - KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse

@implementation KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse

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

typedef struct KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1Partner *data_p;
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error *error;
} KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse__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(KEYAPISMULTIAPPV1Partner),
        .number = KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error),
        .number = KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse)
                                   messageName:@"PostPartnerPublicKeyResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse__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 KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error

@implementation KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error

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

typedef struct KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1ValidationError *validation;
  KEYAPISMULTIAPPV1Partner_SavingError *saving;
} KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_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(KEYAPISMULTIAPPV1ValidationError),
        .number = KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "saving",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1Partner_SavingError),
        .number = KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_FieldNumber_Saving,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error__storage_, saving),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_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(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISMULTIAPPV1DeletePartnerRequest

@dynamic id_p;

typedef struct KEYAPISMULTIAPPV1DeletePartnerRequest__storage_ {
  uint32_t _has_storage_[1];
  NSString *id_p;
} KEYAPISMULTIAPPV1DeletePartnerRequest__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 = KEYAPISMULTIAPPV1DeletePartnerRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1DeletePartnerRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1DeletePartnerRequest)
                                   messageName:@"DeletePartnerRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1DeletePartnerRequest__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 - KEYAPISMULTIAPPV1DeletePartnerResponse

@implementation KEYAPISMULTIAPPV1DeletePartnerResponse

@dynamic typeOneOfCase;
@dynamic error;

typedef struct KEYAPISMULTIAPPV1DeletePartnerResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1DeletePartnerResponse_Error *error;
} KEYAPISMULTIAPPV1DeletePartnerResponse__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(KEYAPISMULTIAPPV1DeletePartnerResponse_Error),
        .number = KEYAPISMULTIAPPV1DeletePartnerResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1DeletePartnerResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1DeletePartnerResponse)
                                   messageName:@"DeletePartnerResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1DeletePartnerResponse__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 KEYAPISMULTIAPPV1DeletePartnerResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1DeletePartnerResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1DeletePartnerResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1DeletePartnerResponse_Error

@implementation KEYAPISMULTIAPPV1DeletePartnerResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;
@dynamic linkedAppExists;

typedef struct KEYAPISMULTIAPPV1DeletePartnerResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1ValidationError *validation;
  KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists *linkedAppExists;
} KEYAPISMULTIAPPV1DeletePartnerResponse_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(KEYAPISMULTIAPPV1ValidationError),
        .number = KEYAPISMULTIAPPV1DeletePartnerResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1DeletePartnerResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "linkedAppExists",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists),
        .number = KEYAPISMULTIAPPV1DeletePartnerResponse_Error_FieldNumber_LinkedAppExists,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1DeletePartnerResponse_Error__storage_, linkedAppExists),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1DeletePartnerResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1DeletePartnerResponse_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(KEYAPISMULTIAPPV1DeletePartnerResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists


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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest

@implementation KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest

@dynamic orpon;

typedef struct KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest__storage_ {
  uint32_t _has_storage_[1];
  int64_t orpon;
} KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest__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 = "orpon",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest_FieldNumber_Orpon,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest__storage_, orpon),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt64,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest)
                                   messageName:@"GetPartnerAddressOrponRequest"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest__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 - KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse

@implementation KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse

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

typedef struct KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse__storage_ {
  uint32_t _has_storage_[2];
  NSString *data_p;
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error *error;
} KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse__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 = KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "error",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error),
        .number = KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_FieldNumber_Error,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse__storage_, error),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse)
                                   messageName:@"GetPartnerAddressOrponResponse"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse__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 KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_ClearTypeOneOfCase(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error

@implementation KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error

@dynamic reasonOneOfCase;
@dynamic validation;
@dynamic permissionDenied;

typedef struct KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISMULTIAPPV1ValidationError *validation;
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied *permissionDenied;
} KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_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(KEYAPISMULTIAPPV1ValidationError),
        .number = KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_FieldNumber_Validation,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error__storage_, validation),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "permissionDenied",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied),
        .number = KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_FieldNumber_PermissionDenied,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error__storage_, permissionDenied),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error)
                                   messageName:@"Error"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_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(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

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

@implementation KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied


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

@end

#pragma mark - KEYAPISMULTIAPPV1IdTokenPayload

@implementation KEYAPISMULTIAPPV1IdTokenPayload

@dynamic jti;
@dynamic nonce;
@dynamic sub;
@dynamic hasRole, role;
@dynamic hasPhoneNumber, phoneNumber;
@dynamic hasEmail, email;
@dynamic hasOrpon, orpon;
@dynamic hasRoom, room;
@dynamic hasCompanyId, companyId;
@dynamic hasCompanyName, companyName;
@dynamic authTime;
@dynamic exp;
@dynamic iss;
@dynamic aud;
@dynamic appId;
@dynamic hasKladrId, kladrId;

typedef struct KEYAPISMULTIAPPV1IdTokenPayload__storage_ {
  uint32_t _has_storage_[1];
  NSString *jti;
  NSString *nonce;
  NSString *sub;
  GPBStringValue *role;
  GPBStringValue *phoneNumber;
  GPBStringValue *email;
  GPBStringValue *orpon;
  GPBStringValue *room;
  GPBStringValue *companyId;
  GPBStringValue *companyName;
  NSString *authTime;
  NSString *exp;
  NSString *iss;
  NSString *aud;
  NSString *appId;
  GPBStringValue *kladrId;
} KEYAPISMULTIAPPV1IdTokenPayload__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 = "jti",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Jti,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, jti),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "nonce",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Nonce,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, nonce),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "sub",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Sub,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, sub),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "role",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Role,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, role),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "phoneNumber",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_PhoneNumber,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, phoneNumber),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "email",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Email,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, email),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "orpon",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Orpon,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, orpon),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "room",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Room,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, room),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "companyId",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_CompanyId,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, companyId),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "companyName",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_CompanyName,
        .hasIndex = 9,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, companyName),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "authTime",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_AuthTime,
        .hasIndex = 10,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, authTime),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "exp",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Exp,
        .hasIndex = 11,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, exp),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "iss",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Iss,
        .hasIndex = 12,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, iss),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "aud",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Aud,
        .hasIndex = 13,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, aud),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "appId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_AppId,
        .hasIndex = 14,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, appId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "kladrId",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_KladrId,
        .hasIndex = 15,
        .offset = (uint32_t)offsetof(KEYAPISMULTIAPPV1IdTokenPayload__storage_, kladrId),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISMULTIAPPV1IdTokenPayload)
                                   messageName:@"IdTokenPayload"
                               fileDescription:&KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISMULTIAPPV1IdTokenPayload__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
