// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: deviceapis/device/v1/deviceapis_device_code_v1.proto

// This CPP symbol can be defined to use imports that match up to the framework
// imports needed when using CocoaPods.
#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
 #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
#endif

#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
 #import <Protobuf/GPBProtocolBuffers.h>
#else
 #import "GPBProtocolBuffers.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

// @@protoc_insertion_point(imports)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"

CF_EXTERN_C_BEGIN

@class DEVICEAPISDEVICEV1Code;
@class DEVICEAPISDEVICEV1CodePaging;
@class DEVICEAPISDEVICEV1Code_SavingError;
@class DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound;
@class DEVICEAPISDEVICEV1DeleteCodeResponse_Error;
@class DEVICEAPISDEVICEV1SaveCodeListResponse_Error;
@class DEVICEAPISDEVICEV1SaveCodeResponse_Error;
@class DEVICEAPISDEVICEV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root

/**
 * Exposes the extension registry for this file.
 *
 * The base class provides:
 * @code
 *   + (GPBExtensionRegistry *)extensionRegistry;
 * @endcode
 * which is a @c GPBExtensionRegistry that includes all the extensions defined by
 * this file and all files that it depends on.
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1DeviceapisDeviceCodeV1Root : GPBRootObject
@end

#pragma mark - DEVICEAPISDEVICEV1Code

typedef GPB_ENUM(DEVICEAPISDEVICEV1Code_FieldNumber) {
  DEVICEAPISDEVICEV1Code_FieldNumber_Code = 1,
  DEVICEAPISDEVICEV1Code_FieldNumber_Description_p = 2,
  DEVICEAPISDEVICEV1Code_FieldNumber_RelayIndexesArray = 3,
};

/**
 * Код доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1Code : GPBMessage

/** Код доступа */
@property(nonatomic, readwrite, copy, null_resettable) NSString *code;

/** Описание */
@property(nonatomic, readwrite, copy, null_resettable) NSString *description_p;

/**
 * Идентификаторы реле.
 * Диапазон: 1..64
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *relayIndexesArray;
/** The number of items in @c relayIndexesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger relayIndexesArray_Count;

@end

#pragma mark - DEVICEAPISDEVICEV1Code_SavingError

typedef GPB_ENUM(DEVICEAPISDEVICEV1Code_SavingError_FieldNumber) {
  DEVICEAPISDEVICEV1Code_SavingError_FieldNumber_RelayNotFound = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1Code_SavingError_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1Code_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1Code_SavingError_Reason_OneOfCase_RelayNotFound = 1,
};

/**
 * Ошибки сохранения
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1Code_SavingError : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1Code_SavingError_Reason_OneOfCase reasonOneOfCase;

/** Реле не найдено */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound *relayNotFound;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1Code_SavingError_ClearReasonOneOfCase(DEVICEAPISDEVICEV1Code_SavingError *message);

#pragma mark - DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound

/**
 * Реле не найдено
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1Code_SavingError_RelayNotFound : GPBMessage

@end

#pragma mark - DEVICEAPISDEVICEV1CodePaging

typedef GPB_ENUM(DEVICEAPISDEVICEV1CodePaging_FieldNumber) {
  DEVICEAPISDEVICEV1CodePaging_FieldNumber_Limit = 1,
  DEVICEAPISDEVICEV1CodePaging_FieldNumber_Offset = 2,
};

/**
 * Постраничный вывод
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1CodePaging : GPBMessage

/**
 * Количество записей на страницу.
 * Если значение 0 (не передано), то будет взято значение по умолчанию.
 * # Диапазон: 0..100.
 * # По умолчанию: 20
 **/
@property(nonatomic, readwrite) int32_t limit;

/**
 * Сдвиг.
 * # Диапазон: 0..2147483647
 **/
@property(nonatomic, readwrite) int32_t offset;

@end

#pragma mark - DEVICEAPISDEVICEV1DeleteCodeListRequest

/**
 * Запрос удаления списка кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1DeleteCodeListRequest : GPBMessage

@end

#pragma mark - DEVICEAPISDEVICEV1DeleteCodeListResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1DeleteCodeListResponse_FieldNumber) {
  DEVICEAPISDEVICEV1DeleteCodeListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1DeleteCodeListResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1DeleteCodeListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1DeleteCodeListResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос удаления списка кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1DeleteCodeListResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1DeleteCodeListResponse_Type_OneOfCase typeOneOfCase;

/** Всего количество удаленных */
@property(nonatomic, readwrite) int32_t data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1DeleteCodeListResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1DeleteCodeListResponse *message);

#pragma mark - DEVICEAPISDEVICEV1DeleteCodeRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1DeleteCodeRequest_FieldNumber) {
  DEVICEAPISDEVICEV1DeleteCodeRequest_FieldNumber_Code = 1,
};

/**
 * Запрос удаления одного кода доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1DeleteCodeRequest : GPBMessage

/** Код доступа */
@property(nonatomic, readwrite, copy, null_resettable) NSString *code;

@end

#pragma mark - DEVICEAPISDEVICEV1DeleteCodeResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1DeleteCodeResponse_FieldNumber) {
  DEVICEAPISDEVICEV1DeleteCodeResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1DeleteCodeResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1DeleteCodeResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1DeleteCodeResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос удаления одного кода доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1DeleteCodeResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1DeleteCodeResponse_Type_OneOfCase typeOneOfCase;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1DeleteCodeResponse_Error *error;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1DeleteCodeResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1DeleteCodeResponse *message);

#pragma mark - DEVICEAPISDEVICEV1DeleteCodeResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1DeleteCodeResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1DeleteCodeResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1DeleteCodeResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1DeleteCodeResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1DeleteCodeResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1DeleteCodeResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1DeleteCodeResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1DeleteCodeResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1DeleteCodeResponse_Error *message);

#pragma mark - DEVICEAPISDEVICEV1GetCodeCountRequest

/**
 * Запрос получения количества кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetCodeCountRequest : GPBMessage

@end

#pragma mark - DEVICEAPISDEVICEV1GetCodeCountResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeCountResponse_FieldNumber) {
  DEVICEAPISDEVICEV1GetCodeCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeCountResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1GetCodeCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1GetCodeCountResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения количества кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetCodeCountResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1GetCodeCountResponse_Type_OneOfCase typeOneOfCase;

/** Всего количество */
@property(nonatomic, readwrite) int32_t data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1GetCodeCountResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1GetCodeCountResponse *message);

#pragma mark - DEVICEAPISDEVICEV1GetCodeListRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeListRequest_FieldNumber) {
  DEVICEAPISDEVICEV1GetCodeListRequest_FieldNumber_Paging = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeListRequest_Pagination_OneOfCase) {
  DEVICEAPISDEVICEV1GetCodeListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1GetCodeListRequest_Pagination_OneOfCase_Paging = 1,
};

/**
 * Запрос получения списка кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetCodeListRequest : GPBMessage

/** Вариант разбиения на страницы */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1GetCodeListRequest_Pagination_OneOfCase paginationOneOfCase;

/** Постраничный вывод */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1CodePaging *paging;

@end

/**
 * Clears whatever value was set for the oneof 'pagination'.
 **/
void DEVICEAPISDEVICEV1GetCodeListRequest_ClearPaginationOneOfCase(DEVICEAPISDEVICEV1GetCodeListRequest *message);

#pragma mark - DEVICEAPISDEVICEV1GetCodeListResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeListResponse_FieldNumber) {
  DEVICEAPISDEVICEV1GetCodeListResponse_FieldNumber_DataArray = 1,
};

/**
 * Ответ на запрос получения списка кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetCodeListResponse : GPBMessage

/** Список Code */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<DEVICEAPISDEVICEV1Code*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - DEVICEAPISDEVICEV1GetCodeRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeRequest_FieldNumber) {
  DEVICEAPISDEVICEV1GetCodeRequest_FieldNumber_Code = 1,
};

/**
 * Запрос получения получения кода доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetCodeRequest : GPBMessage

/** Код доступа */
@property(nonatomic, readwrite, copy, null_resettable) NSString *code;

@end

#pragma mark - DEVICEAPISDEVICEV1GetCodeResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeResponse_FieldNumber) {
  DEVICEAPISDEVICEV1GetCodeResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetCodeResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1GetCodeResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1GetCodeResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения получения кода доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetCodeResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1GetCodeResponse_Type_OneOfCase typeOneOfCase;

/** Код доступа */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1Code *data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1GetCodeResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1GetCodeResponse *message);

#pragma mark - DEVICEAPISDEVICEV1SaveCodeListRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeListRequest_FieldNumber) {
  DEVICEAPISDEVICEV1SaveCodeListRequest_FieldNumber_DataArray = 1,
};

/**
 * Запрос на создание списка кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1SaveCodeListRequest : GPBMessage

/** Список Code */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<DEVICEAPISDEVICEV1Code*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - DEVICEAPISDEVICEV1SaveCodeListResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeListResponse_FieldNumber) {
  DEVICEAPISDEVICEV1SaveCodeListResponse_FieldNumber_DataArray = 1,
  DEVICEAPISDEVICEV1SaveCodeListResponse_FieldNumber_ErrorsArray = 2,
};

/**
 * Ответ на создание списка кодов доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1SaveCodeListResponse : GPBMessage

/** Список Code */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<DEVICEAPISDEVICEV1Code*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

/** Список ошибок */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<DEVICEAPISDEVICEV1SaveCodeListResponse_Error*> *errorsArray;
/** The number of items in @c errorsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger errorsArray_Count;

@end

#pragma mark - DEVICEAPISDEVICEV1SaveCodeListResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeListResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1SaveCodeListResponse_Error_FieldNumber_Code = 1,
  DEVICEAPISDEVICEV1SaveCodeListResponse_Error_FieldNumber_Validation = 2,
  DEVICEAPISDEVICEV1SaveCodeListResponse_Error_FieldNumber_Saving = 3,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeListResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1SaveCodeListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1SaveCodeListResponse_Error_Reason_OneOfCase_Validation = 2,
  DEVICEAPISDEVICEV1SaveCodeListResponse_Error_Reason_OneOfCase_Saving = 3,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1SaveCodeListResponse_Error : GPBMessage

/** Код доступа */
@property(nonatomic, readwrite, copy, null_resettable) NSString *code;

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1SaveCodeListResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

/** Ошибка сохранения */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1Code_SavingError *saving;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1SaveCodeListResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1SaveCodeListResponse_Error *message);

#pragma mark - DEVICEAPISDEVICEV1SaveCodeRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeRequest_FieldNumber) {
  DEVICEAPISDEVICEV1SaveCodeRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос создания кода доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1SaveCodeRequest : GPBMessage

/** Код доступа */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1Code *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - DEVICEAPISDEVICEV1SaveCodeResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeResponse_FieldNumber) {
  DEVICEAPISDEVICEV1SaveCodeResponse_FieldNumber_Data_p = 1,
  DEVICEAPISDEVICEV1SaveCodeResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1SaveCodeResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1SaveCodeResponse_Type_OneOfCase_Data_p = 1,
  DEVICEAPISDEVICEV1SaveCodeResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос создания кода доступа
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1SaveCodeResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1SaveCodeResponse_Type_OneOfCase typeOneOfCase;

/** Код доступа */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1Code *data_p;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1SaveCodeResponse_Error *error;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1SaveCodeResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1SaveCodeResponse *message);

#pragma mark - DEVICEAPISDEVICEV1SaveCodeResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1SaveCodeResponse_Error_FieldNumber_Validation = 1,
  DEVICEAPISDEVICEV1SaveCodeResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1SaveCodeResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1SaveCodeResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1SaveCodeResponse_Error_Reason_OneOfCase_Validation = 1,
  DEVICEAPISDEVICEV1SaveCodeResponse_Error_Reason_OneOfCase_Saving = 2,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1SaveCodeResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1SaveCodeResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

/** Ошибка сохранения */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1Code_SavingError *saving;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1SaveCodeResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1SaveCodeResponse_Error *message);

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
