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

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

#pragma mark - Objective-C Class declarations
// Forward declarations of Objective-C classes that we can use as
// static values in struct initializers.
// We don't use [Foo class] because it is not a static value.
GPBObjCClassDeclaration(GPBBoolValue);
GPBObjCClassDeclaration(GPBFloatValue);
GPBObjCClassDeclaration(GPBStringValue);
GPBObjCClassDeclaration(GPBTimestamp);
GPBObjCClassDeclaration(KEYAPISADV1GetSalepointCountRequest);
GPBObjCClassDeclaration(KEYAPISADV1GetSalepointCountResponse);
GPBObjCClassDeclaration(KEYAPISADV1GetSalepointListRequest);
GPBObjCClassDeclaration(KEYAPISADV1GetSalepointListResponse);
GPBObjCClassDeclaration(KEYAPISADV1GetSalepointRequest);
GPBObjCClassDeclaration(KEYAPISADV1GetSalepointResponse);
GPBObjCClassDeclaration(KEYAPISADV1PostSalepointRequest);
GPBObjCClassDeclaration(KEYAPISADV1PostSalepointResponse);
GPBObjCClassDeclaration(KEYAPISADV1Salepoint);
GPBObjCClassDeclaration(KEYAPISADV1SalepointFilter);
GPBObjCClassDeclaration(KEYAPISADV1SalepointFilter_Location);
GPBObjCClassDeclaration(KEYAPISADV1SalepointPaging);
GPBObjCClassDeclaration(KEYAPISADV1Salepoint_Location);
GPBObjCClassDeclaration(KEYAPISADV1Salepoint_Worktime);

#pragma mark - KEYAPISADV1KeyapisAdSalepointV1Root

@implementation KEYAPISADV1KeyapisAdSalepointV1Root

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

@end

static GPBFileDescription KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription = {
  .package = "keyapis.ad.v1",
  .prefix = "KEYAPISADV1",
  .syntax = GPBFileSyntaxProto3
};

#pragma mark - Enum KEYAPISADV1Salepoint_Type

GPBEnumDescriptor *KEYAPISADV1Salepoint_Type_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "TypeUnknown\000Tele2\000PochtaRossii\000Perekrest"
        "ok\000Pyaterochka\000Another\000Megafon\000";
    static const int32_t values[] = {
        KEYAPISADV1Salepoint_Type_TypeUnknown,
        KEYAPISADV1Salepoint_Type_Tele2,
        KEYAPISADV1Salepoint_Type_PochtaRossii,
        KEYAPISADV1Salepoint_Type_Perekrestok,
        KEYAPISADV1Salepoint_Type_Pyaterochka,
        KEYAPISADV1Salepoint_Type_Another,
        KEYAPISADV1Salepoint_Type_Megafon,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISADV1Salepoint_Type)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISADV1Salepoint_Type_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISADV1Salepoint_Type_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISADV1Salepoint_Type_TypeUnknown:
    case KEYAPISADV1Salepoint_Type_Tele2:
    case KEYAPISADV1Salepoint_Type_PochtaRossii:
    case KEYAPISADV1Salepoint_Type_Perekrestok:
    case KEYAPISADV1Salepoint_Type_Pyaterochka:
    case KEYAPISADV1Salepoint_Type_Another:
    case KEYAPISADV1Salepoint_Type_Megafon:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISADV1Salepoint_Worktime_DayType

GPBEnumDescriptor *KEYAPISADV1Salepoint_Worktime_DayType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "DayTypeUnknown\000Monday\000Tuesday\000Wednesday\000"
        "Thursday\000Friday\000Saturday\000Sunday\000";
    static const int32_t values[] = {
        KEYAPISADV1Salepoint_Worktime_DayType_DayTypeUnknown,
        KEYAPISADV1Salepoint_Worktime_DayType_Monday,
        KEYAPISADV1Salepoint_Worktime_DayType_Tuesday,
        KEYAPISADV1Salepoint_Worktime_DayType_Wednesday,
        KEYAPISADV1Salepoint_Worktime_DayType_Thursday,
        KEYAPISADV1Salepoint_Worktime_DayType_Friday,
        KEYAPISADV1Salepoint_Worktime_DayType_Saturday,
        KEYAPISADV1Salepoint_Worktime_DayType_Sunday,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISADV1Salepoint_Worktime_DayType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISADV1Salepoint_Worktime_DayType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISADV1Salepoint_Worktime_DayType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISADV1Salepoint_Worktime_DayType_DayTypeUnknown:
    case KEYAPISADV1Salepoint_Worktime_DayType_Monday:
    case KEYAPISADV1Salepoint_Worktime_DayType_Tuesday:
    case KEYAPISADV1Salepoint_Worktime_DayType_Wednesday:
    case KEYAPISADV1Salepoint_Worktime_DayType_Thursday:
    case KEYAPISADV1Salepoint_Worktime_DayType_Friday:
    case KEYAPISADV1Salepoint_Worktime_DayType_Saturday:
    case KEYAPISADV1Salepoint_Worktime_DayType_Sunday:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISADV1SalepointPaging_OrderByType

GPBEnumDescriptor *KEYAPISADV1SalepointPaging_OrderByType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "OrderByTypeUnknown\000Id\000Distance\000RankCd\000";
    static const int32_t values[] = {
        KEYAPISADV1SalepointPaging_OrderByType_OrderByTypeUnknown,
        KEYAPISADV1SalepointPaging_OrderByType_Id,
        KEYAPISADV1SalepointPaging_OrderByType_Distance,
        KEYAPISADV1SalepointPaging_OrderByType_RankCd,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISADV1SalepointPaging_OrderByType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISADV1SalepointPaging_OrderByType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISADV1SalepointPaging_OrderByType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISADV1SalepointPaging_OrderByType_OrderByTypeUnknown:
    case KEYAPISADV1SalepointPaging_OrderByType_Id:
    case KEYAPISADV1SalepointPaging_OrderByType_Distance:
    case KEYAPISADV1SalepointPaging_OrderByType_RankCd:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISADV1SalepointPaging_DirectionType

GPBEnumDescriptor *KEYAPISADV1SalepointPaging_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[] = {
        KEYAPISADV1SalepointPaging_DirectionType_DirectionTypeUnknown,
        KEYAPISADV1SalepointPaging_DirectionType_Desc,
        KEYAPISADV1SalepointPaging_DirectionType_Asc,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISADV1SalepointPaging_DirectionType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISADV1SalepointPaging_DirectionType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISADV1SalepointPaging_DirectionType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISADV1SalepointPaging_DirectionType_DirectionTypeUnknown:
    case KEYAPISADV1SalepointPaging_DirectionType_Desc:
    case KEYAPISADV1SalepointPaging_DirectionType_Asc:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - KEYAPISADV1Salepoint

@implementation KEYAPISADV1Salepoint

@dynamic id_p;
@dynamic title;
@dynamic type;
@dynamic hasDescription_p, description_p;
@dynamic address;
@dynamic hasLocation, location;
@dynamic worktimesArray, worktimesArray_Count;
@dynamic hasPhoneNumber, phoneNumber;
@dynamic siteURL;
@dynamic hasCreatedAt, createdAt;
@dynamic hasChangedAt, changedAt;
@dynamic hasArchievedAt, archievedAt;

typedef struct KEYAPISADV1Salepoint__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  KEYAPISADV1Salepoint_Type type;
  NSString *title;
  GPBStringValue *description_p;
  NSString *address;
  KEYAPISADV1Salepoint_Location *location;
  NSMutableArray *worktimesArray;
  GPBStringValue *phoneNumber;
  NSString *siteURL;
  GPBTimestamp *createdAt;
  GPBTimestamp *changedAt;
  GPBTimestamp *archievedAt;
} KEYAPISADV1Salepoint__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 = KEYAPISADV1Salepoint_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "title",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1Salepoint_FieldNumber_Title,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, title),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "type",
        .dataTypeSpecific.enumDescFunc = KEYAPISADV1Salepoint_Type_EnumDescriptor,
        .number = KEYAPISADV1Salepoint_FieldNumber_Type,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, type),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "description_p",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISADV1Salepoint_FieldNumber_Description_p,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, description_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "address",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1Salepoint_FieldNumber_Address,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, address),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "location",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISADV1Salepoint_Location),
        .number = KEYAPISADV1Salepoint_FieldNumber_Location,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, location),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "worktimesArray",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISADV1Salepoint_Worktime),
        .number = KEYAPISADV1Salepoint_FieldNumber_WorktimesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, worktimesArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "phoneNumber",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISADV1Salepoint_FieldNumber_PhoneNumber,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, phoneNumber),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "siteURL",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1Salepoint_FieldNumber_SiteURL,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, siteURL),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "createdAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISADV1Salepoint_FieldNumber_CreatedAt,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, createdAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISADV1Salepoint_FieldNumber_ChangedAt,
        .hasIndex = 9,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "archievedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISADV1Salepoint_FieldNumber_ArchievedAt,
        .hasIndex = 10,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint__storage_, archievedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1Salepoint)
                                   messageName:@"Salepoint"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1Salepoint__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
#if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
    static const char *extraTextFormatInfo =
        "\001\t\004\241!!\000";
    [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
#endif  // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISADV1Salepoint_Type_RawValue(KEYAPISADV1Salepoint *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1Salepoint descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1Salepoint_FieldNumber_Type];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISADV1Salepoint_Type_RawValue(KEYAPISADV1Salepoint *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISADV1Salepoint descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1Salepoint_FieldNumber_Type];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISADV1Salepoint_Location

@implementation KEYAPISADV1Salepoint_Location

@dynamic latitude;
@dynamic longitude;

typedef struct KEYAPISADV1Salepoint_Location__storage_ {
  uint32_t _has_storage_[1];
  float latitude;
  float longitude;
} KEYAPISADV1Salepoint_Location__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 = "latitude",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1Salepoint_Location_FieldNumber_Latitude,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint_Location__storage_, latitude),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeFloat,
      },
      {
        .name = "longitude",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1Salepoint_Location_FieldNumber_Longitude,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint_Location__storage_, longitude),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeFloat,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1Salepoint_Location)
                                   messageName:@"Location"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1Salepoint_Location__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISADV1Salepoint)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISADV1Salepoint_Worktime

@implementation KEYAPISADV1Salepoint_Worktime

@dynamic dayType;
@dynamic openedAt;
@dynamic closedAt;

typedef struct KEYAPISADV1Salepoint_Worktime__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISADV1Salepoint_Worktime_DayType dayType;
  NSString *openedAt;
  NSString *closedAt;
} KEYAPISADV1Salepoint_Worktime__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 = "dayType",
        .dataTypeSpecific.enumDescFunc = KEYAPISADV1Salepoint_Worktime_DayType_EnumDescriptor,
        .number = KEYAPISADV1Salepoint_Worktime_FieldNumber_DayType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint_Worktime__storage_, dayType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "openedAt",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1Salepoint_Worktime_FieldNumber_OpenedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint_Worktime__storage_, openedAt),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "closedAt",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1Salepoint_Worktime_FieldNumber_ClosedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISADV1Salepoint_Worktime__storage_, closedAt),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1Salepoint_Worktime)
                                   messageName:@"Worktime"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1Salepoint_Worktime__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISADV1Salepoint)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISADV1Salepoint_Worktime_DayType_RawValue(KEYAPISADV1Salepoint_Worktime *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1Salepoint_Worktime descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1Salepoint_Worktime_FieldNumber_DayType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISADV1Salepoint_Worktime_DayType_RawValue(KEYAPISADV1Salepoint_Worktime *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISADV1Salepoint_Worktime descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1Salepoint_Worktime_FieldNumber_DayType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISADV1SalepointFilter

@implementation KEYAPISADV1SalepointFilter

@dynamic hasText, text;
@dynamic hasLocation, location;
@dynamic hasDistance, distance;
@dynamic hasIsArchieved, isArchieved;

typedef struct KEYAPISADV1SalepointFilter__storage_ {
  uint32_t _has_storage_[1];
  GPBStringValue *text;
  KEYAPISADV1SalepointFilter_Location *location;
  GPBFloatValue *distance;
  GPBBoolValue *isArchieved;
} KEYAPISADV1SalepointFilter__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 = KEYAPISADV1SalepointFilter_FieldNumber_Text,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointFilter__storage_, text),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "location",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISADV1SalepointFilter_Location),
        .number = KEYAPISADV1SalepointFilter_FieldNumber_Location,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointFilter__storage_, location),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "distance",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBFloatValue),
        .number = KEYAPISADV1SalepointFilter_FieldNumber_Distance,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointFilter__storage_, distance),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "isArchieved",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBBoolValue),
        .number = KEYAPISADV1SalepointFilter_FieldNumber_IsArchieved,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointFilter__storage_, isArchieved),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1SalepointFilter)
                                   messageName:@"SalepointFilter"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1SalepointFilter__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 - KEYAPISADV1SalepointFilter_Location

@implementation KEYAPISADV1SalepointFilter_Location

@dynamic latitude;
@dynamic longitude;

typedef struct KEYAPISADV1SalepointFilter_Location__storage_ {
  uint32_t _has_storage_[1];
  float latitude;
  float longitude;
} KEYAPISADV1SalepointFilter_Location__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 = "latitude",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1SalepointFilter_Location_FieldNumber_Latitude,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointFilter_Location__storage_, latitude),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeFloat,
      },
      {
        .name = "longitude",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1SalepointFilter_Location_FieldNumber_Longitude,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointFilter_Location__storage_, longitude),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeFloat,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1SalepointFilter_Location)
                                   messageName:@"Location"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1SalepointFilter_Location__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISADV1SalepointFilter)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISADV1SalepointPaging

@implementation KEYAPISADV1SalepointPaging

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

typedef struct KEYAPISADV1SalepointPaging__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISADV1SalepointPaging_OrderByType orderByType;
  KEYAPISADV1SalepointPaging_DirectionType directionType;
  int32_t limit;
  int32_t offset;
} KEYAPISADV1SalepointPaging__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 = KEYAPISADV1SalepointPaging_OrderByType_EnumDescriptor,
        .number = KEYAPISADV1SalepointPaging_FieldNumber_OrderByType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointPaging__storage_, orderByType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "directionType",
        .dataTypeSpecific.enumDescFunc = KEYAPISADV1SalepointPaging_DirectionType_EnumDescriptor,
        .number = KEYAPISADV1SalepointPaging_FieldNumber_DirectionType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointPaging__storage_, directionType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "limit",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1SalepointPaging_FieldNumber_Limit,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointPaging__storage_, limit),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "offset",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISADV1SalepointPaging_FieldNumber_Offset,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISADV1SalepointPaging__storage_, offset),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1SalepointPaging)
                                   messageName:@"SalepointPaging"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1SalepointPaging__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 KEYAPISADV1SalepointPaging_OrderByType_RawValue(KEYAPISADV1SalepointPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1SalepointPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1SalepointPaging_FieldNumber_OrderByType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISADV1SalepointPaging_OrderByType_RawValue(KEYAPISADV1SalepointPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISADV1SalepointPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1SalepointPaging_FieldNumber_OrderByType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISADV1SalepointPaging_DirectionType_RawValue(KEYAPISADV1SalepointPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1SalepointPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1SalepointPaging_FieldNumber_DirectionType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISADV1SalepointPaging_DirectionType_RawValue(KEYAPISADV1SalepointPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISADV1SalepointPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISADV1SalepointPaging_FieldNumber_DirectionType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISADV1PostSalepointRequest

@implementation KEYAPISADV1PostSalepointRequest

@dynamic hasData_p, data_p;

typedef struct KEYAPISADV1PostSalepointRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISADV1Salepoint *data_p;
} KEYAPISADV1PostSalepointRequest__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(KEYAPISADV1Salepoint),
        .number = KEYAPISADV1PostSalepointRequest_FieldNumber_Data_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1PostSalepointRequest__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1PostSalepointRequest)
                                   messageName:@"PostSalepointRequest"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1PostSalepointRequest__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 - KEYAPISADV1PostSalepointResponse

@implementation KEYAPISADV1PostSalepointResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISADV1PostSalepointResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISADV1Salepoint *data_p;
} KEYAPISADV1PostSalepointResponse__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(KEYAPISADV1Salepoint),
        .number = KEYAPISADV1PostSalepointResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISADV1PostSalepointResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1PostSalepointResponse)
                                   messageName:@"PostSalepointResponse"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1PostSalepointResponse__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 KEYAPISADV1PostSalepointResponse_ClearTypeOneOfCase(KEYAPISADV1PostSalepointResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1PostSalepointResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISADV1GetSalepointRequest

@implementation KEYAPISADV1GetSalepointRequest

@dynamic id_p;

typedef struct KEYAPISADV1GetSalepointRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISADV1GetSalepointRequest__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 = KEYAPISADV1GetSalepointRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1GetSalepointRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1GetSalepointRequest)
                                   messageName:@"GetSalepointRequest"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1GetSalepointRequest__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 - KEYAPISADV1GetSalepointResponse

@implementation KEYAPISADV1GetSalepointResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISADV1GetSalepointResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISADV1Salepoint *data_p;
} KEYAPISADV1GetSalepointResponse__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(KEYAPISADV1Salepoint),
        .number = KEYAPISADV1GetSalepointResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISADV1GetSalepointResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1GetSalepointResponse)
                                   messageName:@"GetSalepointResponse"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1GetSalepointResponse__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 KEYAPISADV1GetSalepointResponse_ClearTypeOneOfCase(KEYAPISADV1GetSalepointResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1GetSalepointResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISADV1GetSalepointListRequest

@implementation KEYAPISADV1GetSalepointListRequest

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

typedef struct KEYAPISADV1GetSalepointListRequest__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISADV1SalepointFilter *filter;
  KEYAPISADV1SalepointPaging *paging;
} KEYAPISADV1GetSalepointListRequest__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(KEYAPISADV1SalepointFilter),
        .number = KEYAPISADV1GetSalepointListRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1GetSalepointListRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "paging",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISADV1SalepointPaging),
        .number = KEYAPISADV1GetSalepointListRequest_FieldNumber_Paging,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISADV1GetSalepointListRequest__storage_, paging),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1GetSalepointListRequest)
                                   messageName:@"GetSalepointListRequest"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1GetSalepointListRequest__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 KEYAPISADV1GetSalepointListRequest_ClearPaginationOneOfCase(KEYAPISADV1GetSalepointListRequest *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1GetSalepointListRequest descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISADV1GetSalepointListResponse

@implementation KEYAPISADV1GetSalepointListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISADV1GetSalepointListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISADV1Salepoint *data_p;
} KEYAPISADV1GetSalepointListResponse__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(KEYAPISADV1Salepoint),
        .number = KEYAPISADV1GetSalepointListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISADV1GetSalepointListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1GetSalepointListResponse)
                                   messageName:@"GetSalepointListResponse"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1GetSalepointListResponse__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 KEYAPISADV1GetSalepointListResponse_ClearTypeOneOfCase(KEYAPISADV1GetSalepointListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1GetSalepointListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISADV1GetSalepointCountRequest

@implementation KEYAPISADV1GetSalepointCountRequest

@dynamic hasFilter, filter;

typedef struct KEYAPISADV1GetSalepointCountRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISADV1SalepointFilter *filter;
} KEYAPISADV1GetSalepointCountRequest__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(KEYAPISADV1SalepointFilter),
        .number = KEYAPISADV1GetSalepointCountRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISADV1GetSalepointCountRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1GetSalepointCountRequest)
                                   messageName:@"GetSalepointCountRequest"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1GetSalepointCountRequest__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 - KEYAPISADV1GetSalepointCountResponse

@implementation KEYAPISADV1GetSalepointCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISADV1GetSalepointCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} KEYAPISADV1GetSalepointCountResponse__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 = KEYAPISADV1GetSalepointCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISADV1GetSalepointCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISADV1GetSalepointCountResponse)
                                   messageName:@"GetSalepointCountResponse"
                               fileDescription:&KEYAPISADV1KeyapisAdSalepointV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISADV1GetSalepointCountResponse__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 KEYAPISADV1GetSalepointCountResponse_ClearTypeOneOfCase(KEYAPISADV1GetSalepointCountResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISADV1GetSalepointCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
