// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/telemetry_alerting/v1/keyapis_telemetry_alerting_trigger_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/telemetry_alerting/v1/KeyapisTelemetryAlertingTriggerV1.pbobjc.h"
#import "google/api/Annotations.pbobjc.h"
#import "google/api/FieldBehavior.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(GPBInt32Value);
GPBObjCClassDeclaration(GPBStringValue);
GPBObjCClassDeclaration(GPBTimestamp);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1AlertDevice);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1Trigger);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1TriggerFilter);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1TriggerPaging);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert);
GPBObjCClassDeclaration(KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root

@implementation KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root

+ (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 KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription = {
  .package = "keyapis.telemetry_alerting.v1",
  .prefix = "KEYAPISTELEMETRYALERTINGYV1",
  .syntax = GPBFileSyntaxProto3
};

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "OrderByTypeUnknown\000RaisedAt\000TriggerId\000Ti"
        "tle\000Disabled\000Severity\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_OrderByTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_RaisedAt,
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_TriggerId,
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Title,
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Disabled,
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Severity,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_OrderByTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_RaisedAt:
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_TriggerId:
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Title:
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Disabled:
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Severity:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_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[] = {
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_DirectionTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_Desc,
        KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_Asc,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_DirectionTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_Desc:
    case KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_Asc:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "OrderByTypeUnknown\000Id\000Title\000Disabled\000Sev"
        "erity\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_OrderByTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Id,
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Title,
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Disabled,
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Severity,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_OrderByTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Id:
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Title:
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Disabled:
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Severity:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerPaging_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[] = {
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_DirectionTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_Desc,
        KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_Asc,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_DirectionTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_Desc:
    case KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_Asc:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "CriteriaTypeUnknown\000MetricsCount\000DeviceP"
        "ercent\000MetricsValueDeviation\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_CriteriaTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_MetricsCount,
        KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_DevicePercent,
        KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_MetricsValueDeviation,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_CriteriaTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_MetricsCount:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_DevicePercent:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_MetricsValueDeviation:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "PeriodTypeUnknown\000Day\000Month\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_PeriodTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_Day,
        KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_Month,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_PeriodTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_Day:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_Month:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "SeverityTypeUnknown\000Critical\000Warning\000Inf"
        "o\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_SeverityTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Critical,
        KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Warning,
        KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Info,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_SeverityTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Critical:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Warning:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Info:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "MetricTypeUnknown\000HotWater\000ColdWater\000Hea"
        "t\000Gas\000Electricity\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_MetricTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_HotWater,
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_ColdWater,
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Heat,
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Gas,
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Electricity,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_MetricTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_HotWater:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_ColdWater:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Heat:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Gas:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Electricity:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "DeviceTypeUnknown\000Hub\000PulseCounterRecord"
        "er\000PulseCounterRecorderLr\000MeteringDevice"
        "\000InterfaceConverter\000MBusHub\000Communicatio"
        "nModuleLr\000BaseLr\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_DeviceTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_Hub,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_PulseCounterRecorder,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_PulseCounterRecorderLr,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_MeteringDevice,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_InterfaceConverter,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_MBusHub,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_CommunicationModuleLr,
        KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_BaseLr,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_DeviceTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_Hub:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_PulseCounterRecorder:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_PulseCounterRecorderLr:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_MeteringDevice:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_InterfaceConverter:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_MBusHub:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_CommunicationModuleLr:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_BaseLr:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_EnumDescriptor(void) {
  static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  if (!descriptor) {
    GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
    static const char *valueNames =
        "MetricGroupingTypeUnknown\000ParentId\000Devic"
        "eId\000";
    static const int32_t values[] = {
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_MetricGroupingTypeUnknown,
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_ParentId,
        KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_DeviceId,
    };
    GPBEnumDescriptor *worker =
        [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType)
                                       valueNames:valueNames
                                           values:values
                                            count:(uint32_t)(sizeof(values) / sizeof(int32_t))
                                     enumVerifier:KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_IsValidValue
                                            flags:GPBEnumDescriptorInitializationFlag_None];
    GPBEnumDescriptor *expected = nil;
    if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
      [worker release];
    }
  }
  return descriptor;
}

BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_IsValidValue(int32_t value__) {
  switch (value__) {
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_MetricGroupingTypeUnknown:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_ParentId:
    case KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_DeviceId:
      return YES;
    default:
      return NO;
  }
}

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest

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

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest__storage_ {
  uint32_t _has_storage_[2];
  int32_t id_p;
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter *filter;
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *paging;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest__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 = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "filter",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_FieldNumber_Filter,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "paging",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_FieldNumber_Paging,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest__storage_, paging),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest)
                                   messageName:@"GetTriggerAlertDeviceListRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging

@implementation KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging

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

typedef struct KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType orderByType;
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType directionType;
  int32_t limit;
  int32_t offset;
} KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging__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 = KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_OrderByType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging__storage_, orderByType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "directionType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_DirectionType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging__storage_, directionType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "limit",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_Limit,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging__storage_, limit),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "offset",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_Offset,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging__storage_, offset),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging)
                                   messageName:@"TriggerAlertPaging"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging__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 KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_OrderByType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_OrderByType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_DirectionType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_DirectionType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISTELEMETRYALERTINGYV1AlertDevice

@implementation KEYAPISTELEMETRYALERTINGYV1AlertDevice

@dynamic alertId;
@dynamic deviceId;

typedef struct KEYAPISTELEMETRYALERTINGYV1AlertDevice__storage_ {
  uint32_t _has_storage_[1];
  int32_t alertId;
  int32_t deviceId;
} KEYAPISTELEMETRYALERTINGYV1AlertDevice__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 = "alertId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1AlertDevice_FieldNumber_AlertId,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1AlertDevice__storage_, alertId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "deviceId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1AlertDevice_FieldNumber_DeviceId,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1AlertDevice__storage_, deviceId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1AlertDevice)
                                   messageName:@"AlertDevice"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1AlertDevice__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 - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYALERTINGYV1AlertDevice *data_p;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse__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(KEYAPISTELEMETRYALERTINGYV1AlertDevice),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse)
                                   messageName:@"GetTriggerAlertDeviceListResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest

@dynamic id_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest__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 = KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest)
                                   messageName:@"GetTriggerRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest__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 - KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse__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(KEYAPISTELEMETRYALERTINGYV1Trigger),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse)
                                   messageName:@"GetTriggerResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest

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

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter *filter;
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *paging;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest__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(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "paging",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_FieldNumber_Paging,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest__storage_, paging),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest)
                                   messageName:@"GetTriggerAlertListRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest

@implementation KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest

@dynamic id_p;
@dynamic hasClosingReason, closingReason;

typedef struct KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  GPBStringValue *closingReason;
} KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest__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 = KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "closingReason",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest_FieldNumber_ClosingReason,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest__storage_, closingReason),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest)
                                   messageName:@"PostTriggerAlertDisableRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest__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 - KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse

@implementation KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse


typedef struct KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse__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(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse)
                                   messageName:@"PostTriggerAlertDisableResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse__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 - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest

@dynamic hasFilter, filter;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter *filter;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest__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(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest)
                                   messageName:@"GetTriggerAlertCountRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest__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 - KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest

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

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter *filter;
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging *paging;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest__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(KEYAPISTELEMETRYALERTINGYV1TriggerFilter),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "paging",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerPaging),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_FieldNumber_Paging,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest__storage_, paging),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest)
                                   messageName:@"GetTriggerListRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1TriggerPaging

@implementation KEYAPISTELEMETRYALERTINGYV1TriggerPaging

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

typedef struct KEYAPISTELEMETRYALERTINGYV1TriggerPaging__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType orderByType;
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType directionType;
  int32_t limit;
  int32_t offset;
} KEYAPISTELEMETRYALERTINGYV1TriggerPaging__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 = KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_OrderByType,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerPaging__storage_, orderByType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "directionType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_DirectionType,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerPaging__storage_, directionType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "limit",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_Limit,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerPaging__storage_, limit),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "offset",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_Offset,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerPaging__storage_, offset),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerPaging)
                                   messageName:@"TriggerPaging"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1TriggerPaging__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 KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_OrderByType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_OrderByType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_DirectionType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1TriggerPaging descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_DirectionType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISTELEMETRYALERTINGYV1TriggerFilter

@implementation KEYAPISTELEMETRYALERTINGYV1TriggerFilter

@dynamic severityTypesArray, severityTypesArray_Count;
@dynamic tagsArray, tagsArray_Count;
@dynamic metricTypesArray, metricTypesArray_Count;
@dynamic deviceModelsArray, deviceModelsArray_Count;
@dynamic deviceTypesArray, deviceTypesArray_Count;
@dynamic metricGroupingTypesArray, metricGroupingTypesArray_Count;
@dynamic hasIsDisabled, isDisabled;

typedef struct KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_ {
  uint32_t _has_storage_[1];
  GPBEnumArray *severityTypesArray;
  NSMutableArray *tagsArray;
  GPBEnumArray *metricTypesArray;
  NSMutableArray *deviceModelsArray;
  GPBEnumArray *deviceTypesArray;
  GPBEnumArray *metricGroupingTypesArray;
  GPBBoolValue *isDisabled;
} KEYAPISTELEMETRYALERTINGYV1TriggerFilter__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 = "severityTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_SeverityTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_, severityTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "tagsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_TagsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_, tagsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "metricTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_MetricTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_, metricTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "deviceModelsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_DeviceModelsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_, deviceModelsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_DeviceTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_, deviceTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "metricGroupingTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_MetricGroupingTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_, metricGroupingTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "isDisabled",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBBoolValue),
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_IsDisabled,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__storage_, isDisabled),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerFilter)
                                   messageName:@"TriggerFilter"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1TriggerFilter__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 - KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter

@implementation KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter

@dynamic triggerSeverityTypesArray, triggerSeverityTypesArray_Count;
@dynamic fiasIdsArray, fiasIdsArray_Count;
@dynamic tagsArray, tagsArray_Count;
@dynamic metricTypesArray, metricTypesArray_Count;
@dynamic deviceModelsArray, deviceModelsArray_Count;
@dynamic deviceTypesArray, deviceTypesArray_Count;
@dynamic deviceParentIdsArray, deviceParentIdsArray_Count;
@dynamic deviceIdsArray, deviceIdsArray_Count;
@dynamic hasIsDisabled, isDisabled;
@dynamic hasAfterRaisedAt, afterRaisedAt;
@dynamic hasBeforeRaisedAt, beforeRaisedAt;
@dynamic metricGroupingTypesArray, metricGroupingTypesArray_Count;
@dynamic triggerIdsArray, triggerIdsArray_Count;

typedef struct KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_ {
  uint32_t _has_storage_[1];
  GPBEnumArray *triggerSeverityTypesArray;
  NSMutableArray *fiasIdsArray;
  NSMutableArray *tagsArray;
  GPBEnumArray *metricTypesArray;
  NSMutableArray *deviceModelsArray;
  GPBEnumArray *deviceTypesArray;
  GPBInt32Array *deviceParentIdsArray;
  GPBInt32Array *deviceIdsArray;
  GPBBoolValue *isDisabled;
  GPBTimestamp *afterRaisedAt;
  GPBTimestamp *beforeRaisedAt;
  GPBEnumArray *metricGroupingTypesArray;
  GPBInt32Array *triggerIdsArray;
} KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__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 = "triggerSeverityTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_TriggerSeverityTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, triggerSeverityTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "fiasIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_FiasIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, fiasIdsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "tagsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_TagsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, tagsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "metricTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_MetricTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, metricTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "deviceModelsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceModelsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, deviceModelsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, deviceTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "deviceParentIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceParentIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, deviceParentIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "deviceIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, deviceIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "isDisabled",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBBoolValue),
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_IsDisabled,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, isDisabled),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "afterRaisedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_AfterRaisedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, afterRaisedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "beforeRaisedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_BeforeRaisedAt,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, beforeRaisedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "metricGroupingTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_MetricGroupingTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, metricGroupingTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "triggerIdsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_TriggerIdsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__storage_, triggerIdsArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter)
                                   messageName:@"TriggerAlertFilter"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter__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 - KEYAPISTELEMETRYALERTINGYV1Trigger

@implementation KEYAPISTELEMETRYALERTINGYV1Trigger

@dynamic rangeOneOfCase;
@dynamic id_p;
@dynamic hasChangedAt, changedAt;
@dynamic title;
@dynamic criteriaType;
@dynamic threshold;
@dynamic slidingDays;
@dynamic fixedDaysRange;
@dynamic periodType;
@dynamic severityType;
@dynamic isDisabled;
@dynamic hasInstruction, instruction;
@dynamic metricTypesArray, metricTypesArray_Count;
@dynamic deviceModelsArray, deviceModelsArray_Count;
@dynamic deviceTypesArray, deviceTypesArray_Count;
@dynamic metricGroupingType;
@dynamic successThreshold;
@dynamic tagsArray, tagsArray_Count;
@dynamic isManuallyUnclosable;
@dynamic isRangeMetricExpectedFreq;

typedef struct KEYAPISTELEMETRYALERTINGYV1Trigger__storage_ {
  uint32_t _has_storage_[2];
  int32_t id_p;
  KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType criteriaType;
  float threshold;
  int32_t slidingDays;
  KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType periodType;
  KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType severityType;
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType metricGroupingType;
  int32_t successThreshold;
  GPBTimestamp *changedAt;
  NSString *title;
  KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth *fixedDaysRange;
  GPBStringValue *instruction;
  GPBEnumArray *metricTypesArray;
  NSMutableArray *deviceModelsArray;
  GPBEnumArray *deviceTypesArray;
  NSMutableArray *tagsArray;
} KEYAPISTELEMETRYALERTINGYV1Trigger__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 = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_ChangedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "title",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Title,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, title),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "criteriaType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_CriteriaType,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, criteriaType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "threshold",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Threshold,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, threshold),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeFloat,
      },
      {
        .name = "slidingDays",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SlidingDays,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, slidingDays),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "fixedDaysRange",
        .dataTypeSpecific.clazz = GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_FixedDaysRange,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, fixedDaysRange),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "periodType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_PeriodType,
        .hasIndex = 5,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, periodType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "severityType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SeverityType,
        .hasIndex = 6,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, severityType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "isDisabled",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_IsDisabled,
        .hasIndex = 7,
        .offset = 8,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "instruction",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Instruction,
        .hasIndex = 9,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, instruction),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "metricTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_MetricTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, metricTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "deviceModelsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_DeviceModelsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, deviceModelsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "deviceTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_DeviceTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, deviceTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "metricGroupingType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_MetricGroupingType,
        .hasIndex = 10,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, metricGroupingType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "successThreshold",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SuccessThreshold,
        .hasIndex = 11,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, successThreshold),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "tagsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_TagsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_, tagsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "isManuallyUnclosable",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_IsManuallyUnclosable,
        .hasIndex = 12,
        .offset = 13,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "isRangeMetricExpectedFreq",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_IsRangeMetricExpectedFreq,
        .hasIndex = 14,
        .offset = 15,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1Trigger)
                                   messageName:@"Trigger"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1Trigger__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    static const char *oneofs[] = {
      "range",
    };
    [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

int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_CriteriaType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_CriteriaType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_PeriodType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_PeriodType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SeverityType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SeverityType];
  GPBSetMessageRawEnumField(message, field, value);
}

int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_MetricGroupingType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_MetricGroupingType];
  GPBSetMessageRawEnumField(message, field, value);
}

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

@implementation KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth

@dynamic startDay;
@dynamic endDay;

typedef struct KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth__storage_ {
  uint32_t _has_storage_[1];
  int32_t startDay;
  int32_t endDay;
} KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth__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 = "startDay",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth_FieldNumber_StartDay,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth__storage_, startDay),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "endDay",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth_FieldNumber_EndDay,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth__storage_, endDay),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth)
                                   messageName:@"FixedDaysOfMonth"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1Trigger)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1Trigger_Alert

@implementation KEYAPISTELEMETRYALERTINGYV1Trigger_Alert

@dynamic id_p;
@dynamic hasChangedAt, changedAt;
@dynamic triggerId;
@dynamic fiasId;
@dynamic hasRaisedAt, raisedAt;
@dynamic isDisabled;
@dynamic noAlarmChecksCount;
@dynamic triggerMetricTypesArray, triggerMetricTypesArray_Count;
@dynamic deviceModelsArray, deviceModelsArray_Count;
@dynamic triggerDeviceTypesArray, triggerDeviceTypesArray_Count;
@dynamic hasDeviceParentId, deviceParentId;
@dynamic hasClosedAt, closedAt;
@dynamic isManuallyClosed;
@dynamic hasClosingReason, closingReason;
@dynamic triggerMetricGroupingType;

typedef struct KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
  int32_t triggerId;
  int32_t noAlarmChecksCount;
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType triggerMetricGroupingType;
  GPBTimestamp *changedAt;
  NSString *fiasId;
  GPBTimestamp *raisedAt;
  GPBEnumArray *triggerMetricTypesArray;
  NSMutableArray *deviceModelsArray;
  GPBEnumArray *triggerDeviceTypesArray;
  GPBInt32Value *deviceParentId;
  GPBTimestamp *closedAt;
  GPBStringValue *closingReason;
} KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__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 = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "changedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_ChangedAt,
        .hasIndex = 1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, changedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "triggerId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerId,
        .hasIndex = 2,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, triggerId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "fiasId",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_FiasId,
        .hasIndex = 3,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, fiasId),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeString,
      },
      {
        .name = "raisedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_RaisedAt,
        .hasIndex = 4,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, raisedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "isDisabled",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_IsDisabled,
        .hasIndex = 5,
        .offset = 6,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "noAlarmChecksCount",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_NoAlarmChecksCount,
        .hasIndex = 7,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, noAlarmChecksCount),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
      {
        .name = "triggerMetricTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerMetricTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, triggerMetricTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "deviceModelsArray",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_DeviceModelsArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, deviceModelsArray),
        .flags = GPBFieldRepeated,
        .dataType = GPBDataTypeString,
      },
      {
        .name = "triggerDeviceTypesArray",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerDeviceTypesArray,
        .hasIndex = GPBNoHasBit,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, triggerDeviceTypesArray),
        .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldPacked | GPBFieldHasEnumDescriptor),
        .dataType = GPBDataTypeEnum,
      },
      {
        .name = "deviceParentId",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBInt32Value),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_DeviceParentId,
        .hasIndex = 8,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, deviceParentId),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "closedAt",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBTimestamp),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_ClosedAt,
        .hasIndex = 9,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, closedAt),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "isManuallyClosed",
        .dataTypeSpecific.clazz = Nil,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_IsManuallyClosed,
        .hasIndex = 10,
        .offset = 11,  // Stored in _has_storage_ to save space.
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeBool,
      },
      {
        .name = "closingReason",
        .dataTypeSpecific.clazz = GPBObjCClass(GPBStringValue),
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_ClosingReason,
        .hasIndex = 12,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, closingReason),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
      {
        .name = "triggerMetricGroupingType",
        .dataTypeSpecific.enumDescFunc = KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_EnumDescriptor,
        .number = KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerMetricGroupingType,
        .hasIndex = 13,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_, triggerMetricGroupingType),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeEnum,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert)
                                   messageName:@"Alert"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert__storage_)
                                         flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_ClosedEnumSupportKnown)];
    [localDescriptor setupContainingMessageClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1Trigger)];
    #if defined(DEBUG) && DEBUG
      NSAssert(descriptor == nil, @"Startup recursed!");
    #endif  // DEBUG
    descriptor = localDescriptor;
  }
  return descriptor;
}

@end

int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_TriggerMetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger_Alert descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerMetricGroupingType];
  return GPBGetMessageRawEnumField(message, field);
}

void SetKEYAPISTELEMETRYALERTINGYV1Trigger_Alert_TriggerMetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert *message, int32_t value) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1Trigger_Alert descriptor];
  GPBFieldDescriptor *field = [descriptor fieldWithNumber:KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerMetricGroupingType];
  GPBSetMessageRawEnumField(message, field, value);
}

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse__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(KEYAPISTELEMETRYALERTINGYV1Trigger),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse)
                                   messageName:@"GetTriggerListResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert *data_p;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse__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(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse)
                                   messageName:@"GetTriggerAlertListResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest

@dynamic hasFilter, filter;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter *filter;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest__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(KEYAPISTELEMETRYALERTINGYV1TriggerFilter),
        .number = KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest_FieldNumber_Filter,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest__storage_, filter),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest)
                                   messageName:@"GetTriggerCountRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest__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 - KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse__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 = KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse)
                                   messageName:@"GetTriggerCountResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse

@implementation KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse__storage_ {
  uint32_t _has_storage_[2];
  int32_t data_p;
} KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse__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 = KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse)
                                   messageName:@"GetTriggerAlertCountResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse__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 KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest

@implementation KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest

@dynamic hasData_p, data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest__storage_ {
  uint32_t _has_storage_[1];
  KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;
} KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest__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(KEYAPISTELEMETRYALERTINGYV1Trigger),
        .number = KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest_FieldNumber_Data_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest)
                                   messageName:@"PostTriggerRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest__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 - KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse

@implementation KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse

@dynamic typeOneOfCase;
@dynamic data_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse__storage_ {
  uint32_t _has_storage_[2];
  KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;
} KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse__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(KEYAPISTELEMETRYALERTINGYV1Trigger),
        .number = KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_FieldNumber_Data_p,
        .hasIndex = -1,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse__storage_, data_p),
        .flags = GPBFieldOptional,
        .dataType = GPBDataTypeMessage,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse)
                                   messageName:@"PostTriggerResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse__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 KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse *message) {
  GPBDescriptor *descriptor = [KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse descriptor];
  GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
  GPBClearOneof(message, oneof);
}
#pragma mark - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest

@implementation KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest

@dynamic id_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest__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 = KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest)
                                   messageName:@"DeleteTriggerRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest__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 - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse

@implementation KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse


typedef struct KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse__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(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse)
                                   messageName:@"DeleteTriggerResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse__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 - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest

@implementation KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest

@dynamic id_p;

typedef struct KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest__storage_ {
  uint32_t _has_storage_[1];
  int32_t id_p;
} KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest__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 = KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest_FieldNumber_Id_p,
        .hasIndex = 0,
        .offset = (uint32_t)offsetof(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest__storage_, id_p),
        .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
        .dataType = GPBDataTypeInt32,
      },
    };
    GPBDescriptor *localDescriptor =
        [GPBDescriptor allocDescriptorForClass:GPBObjCClass(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest)
                                   messageName:@"DeleteTriggerAlertRequest"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:fields
                                    fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest__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 - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse

@implementation KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse


typedef struct KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse__storage_ {
  uint32_t _has_storage_[1];
} KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse__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(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse)
                                   messageName:@"DeleteTriggerAlertResponse"
                               fileDescription:&KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root_FileDescription
                                        fields:NULL
                                    fieldCount:0
                                   storageSize:sizeof(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse__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
