// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/subscription/v1/keyapis_subscription_offer_template_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 KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Error;
@class KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Error;
@class KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error;
@class KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error;
@class KEYAPISSUBSCRIPTIONV1OfferTemplate;
@class KEYAPISSUBSCRIPTIONV1OfferTemplateFilter;
@class KEYAPISSUBSCRIPTIONV1OfferTemplatePaging;
@class KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules;
@class KEYAPISSUBSCRIPTIONV1OfferTemplate_Item;
@class KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError;
@class KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Conflict;
@class KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_DuplicateTemplate;
@class KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error;
@class KEYAPISSUBSCRIPTIONV1ValidationError;
GPB_ENUM_FWD_DECLARE(KEYAPISSUBSCRIPTIONV1Offer_Type);

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType

/** Справочник типов сервисов */
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_ServiceTypeUnknown = 0,

  /** Умный домофон */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_Intercom = 1,

  /** Комплексное видеонаблюдение */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_Cameras = 2,

  /** Умные счётчики */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_Telemetry = 3,

  /** Система контроля и управления доступом */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_AccessControlPanel = 4,

  /** Умный шлагбаум */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_Barrier = 5,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType

/** Справочник статусов шаблона КВ */
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_StatusTypeUnknown = 0,

  /** Активен */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_Active = 1,

  /** Архивирован */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_Archived = 2,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType

/** Справочник типов договорных схем */
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_ContractTypeUnknown = 0,

  /** Договор заключён с юридическим лицом */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_B2B = 1,

  /** Договор заключён с физическим лицом */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_B2C = 2,

  /** Смешанная схема. Ростелеком работает с клиентом через партнёра */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_B2B2C = 3,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType

/** Справочник типов клиентов */
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_ClientTypeUnknown = 0,

  /** Управляющая компания */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_ManagementCompany = 1,

  /** Домофонная компания */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_IntercomCompany = 2,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType

/** Справочник типов биллинговых систем */
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_BillingSystemTypeUnknown = 0,

  /** Автоматизированная система расчётов макрорегионального филиала/АСР МРФ */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_AsrMrf = 1,

  /** Платформа Ключ */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_KeyPlatform = 2,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType

/** Справочник типов договорной схемы устройства в квартире */
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_RoomDeviceContractTypeUnknown = 0,

  /** Житель заключает договор на квартирное устройство с внешней компанией */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_RoomDeviceB2B = 1,

  /** Житель заключает договор на квартирное устройство с Ростелекомом */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_RoomDeviceB2C = 2,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType

/** Справочник типов минимального бесплатного пакета мобильного приложения */
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_MobileAppPackageTypeUnknown = 0,

  /** Кнопка открытия + Ключи */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_OpenDoorAndKeys = 1,

  /** Кнопка открытия + Ключи + Аудиовызовы */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_OpenDoorAndKeysAudioCalls = 2,

  /** Кнопка открытия + Ключи + Видеовызовы */
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_OpenDoorAndKeysVideoCalls = 3,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType

/**
 * Справочник типов значений сортировки.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_OrderByTypeUnknown = 0,

  /** По дате создания */
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_CreatedAt = 1,

  /** По наименованию */
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_Title = 2,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType

/**
 * Справочник типов направлений сортировки.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_DirectionTypeUnknown = 0,

  /** От большего к меньшему */
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_Desc = 1,

  /** От меньшего к большему */
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_Asc = 2,
};

GPBEnumDescriptor *KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISSUBSCRIPTIONV1KeyapisSubscriptionOfferTemplateV1Root

/**
 * 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 KEYAPISSUBSCRIPTIONV1KeyapisSubscriptionOfferTemplateV1Root : GPBRootObject
@end

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplate

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_Id_p = 1,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_ServiceType = 2,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_Title = 3,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_Description_p = 4,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_StatusType = 5,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_ApplicabilityRules = 6,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_ItemsArray = 7,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_CreatedAt = 8,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_FieldNumber_UpdatedAt = 9,
};

/**
 * Шаблон КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplate : GPBMessage

/**
 * Идентификатор.
 * # Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

/** Тип сервиса */
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType serviceType;

/**
 * Наименование КВ.
 * # Диапазон: 3..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/**
 * Описание КВ.
 * # Диапазон: 3..1024
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *description_p;
/** Test to see if @c description_p has been set. */
@property(nonatomic, readwrite) BOOL hasDescription_p;

/**
 * Статус шаблона КВ.
 * Заполняется сервером
 **/
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType statusType;

/** Правила применимости Шаблона КВ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *applicabilityRules;
/** Test to see if @c applicabilityRules has been set. */
@property(nonatomic, readwrite) BOOL hasApplicabilityRules;

/**
 * Список элементов Шаблона КВ.
 * Каждый элемент описывает технологический план и параметры создания КВ для него
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISSUBSCRIPTIONV1OfferTemplate_Item*> *itemsArray;
/** The number of items in @c itemsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger itemsArray_Count;

/**
 * Дата и время создания.
 * Заполняется сервером.
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *createdAt;
/** Test to see if @c createdAt has been set. */
@property(nonatomic, readwrite) BOOL hasCreatedAt;

/**
 * Дата и время последнего изменения.
 * Заполняется и обновляется сервером.
 * Является версией объекта.
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *updatedAt;
/** Test to see if @c updatedAt has been set. */
@property(nonatomic, readwrite) BOOL hasUpdatedAt;

@end

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate's @c serviceType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate's @c serviceType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate's @c statusType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate's @c statusType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate *message, int32_t value);

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_RfIdsArray = 1,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_ContractType = 2,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_ClientType = 3,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_BillingSystemType = 4,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_IsExternalPaymentForSmartIntercom = 5,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_IsCmsPhone = 6,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_IsSipPhone = 7,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_IsVideoMonitor = 8,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_RoomDeviceContractType = 9,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_MobileAppPackageType = 10,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_IsCallForwardingEnabled = 11,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_FieldNumber_IsDigitalWay = 12,
};

/**
 * Правила применимости Шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules : GPBMessage

/**
 * Ограничение по регионам.
 * # Диапазон: 0..100
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *rfIdsArray;
/** The number of items in @c rfIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger rfIdsArray_Count;

/** Договорная схема */
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType contractType;

/**
 * Тип клиента.
 * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
 **/
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType clientType;

/**
 * Биллинговая система.
 * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
 **/
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType billingSystemType;

/** Принимаются ли платежи за умный домофон на счёт внешней компании */
@property(nonatomic, readwrite) BOOL isExternalPaymentForSmartIntercom;

/** Аналоговые трубки устанавливаются в квартирах объекта */
@property(nonatomic, readwrite) BOOL isCmsPhone;

/** SIP-трубки устанавливаются в квартирах объекта */
@property(nonatomic, readwrite) BOOL isSipPhone;

/** Видеомониторы устанавливаются в квартирах объекта */
@property(nonatomic, readwrite) BOOL isVideoMonitor;

/** Тип договорной схемы устройства в квартире */
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType roomDeviceContractType;

/** Минимальный бесплатный пакет мобильного приложения */
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType mobileAppPackageType;

/** Переадресация на городские/мобильные номера */
@property(nonatomic, readwrite) BOOL isCallForwardingEnabled;

/** Цифровой клиентский путь */
@property(nonatomic, readwrite) BOOL isDigitalWay;

@end

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c contractType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c contractType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c clientType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c clientType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c billingSystemType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c billingSystemType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c roomDeviceContractType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c roomDeviceContractType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c mobileAppPackageType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules's @c mobileAppPackageType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules *message, int32_t value);

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplate_Item

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_Item_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1OfferTemplate_Item_FieldNumber_PlanId = 1,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_Item_FieldNumber_Type = 2,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_Item_FieldNumber_IsEnableAutoSubscribe = 3,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_Item_FieldNumber_IsDigitalWay = 4,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_Item_FieldNumber_OfferURL = 5,
};

/**
 * Элемент Шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplate_Item : GPBMessage

/**
 * Идентификатор технологического плана.
 * # Диапазон: 1..2147483647
 **/
@property(nonatomic, readwrite) int32_t planId;

/** Тип коммерческой возможности */
@property(nonatomic, readwrite) enum KEYAPISSUBSCRIPTIONV1Offer_Type type;

/** Подключать ли автоматическую подписку */
@property(nonatomic, readwrite) BOOL isEnableAutoSubscribe;

/** Признак принадлежности к цифровому клиентскому пути */
@property(nonatomic, readwrite) BOOL isDigitalWay;

/**
 * Адрес размещения офферты.
 * Полный url до файла.
 * # Диапазон: 0..2048
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *offerURL;
/** Test to see if @c offerURL has been set. */
@property(nonatomic, readwrite) BOOL hasOfferURL;

@end

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplate_Item's @c type property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplate_Item_Type_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_Item *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplate_Item's @c type property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplate_Item_Type_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplate_Item *message, int32_t value);

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_FieldNumber_Conflict = 1,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_FieldNumber_DuplicateTemplate = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Reason_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Reason_OneOfCase_Conflict = 1,
  KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Reason_OneOfCase_DuplicateTemplate = 2,
};

/**
 * Ошибка сохранения.
 * Эти проверки выполняются при работе с базой данных и сторонними сервисами
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError : GPBMessage

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

/** Конфликт версий */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Conflict *conflict;

/** Дублирование шаблона */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_DuplicateTemplate *duplicateTemplate;

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Conflict

/**
 * Конфликт версий.
 * Причины:
 * - В базе хранится другая версия строки, значения updated_at отличаются
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_Conflict : GPBMessage

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_DuplicateTemplate

/**
 * Шаблон с таким типом сервиса и правилами применимости уже существует.
 * Нельзя создать два или более шаблона с одинаковым типом сервиса и одинаковыми правилами применимости
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplate_SavingError_DuplicateTemplate : GPBMessage

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplateFilter

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_StatusTypesArray = 1,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ServiceTypesArray = 2,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_RfIdsArray = 3,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_Text = 4,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesContractTypesArray = 5,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesClientTypesArray = 6,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesBillingSystemTypesArray = 7,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_IsExternalPaymentForSmartIntercom = 8,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesIsCmsPhone = 9,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesIsSipPhone = 10,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesIsVideoMonitor = 11,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesRoomDeviceContractTypesArray = 12,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_ApplicabilityRulesMobileAppPackageTypesArray = 13,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_IsCallForwardingEnabled = 14,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_IsDigitalWay = 15,
  KEYAPISSUBSCRIPTIONV1OfferTemplateFilter_FieldNumber_PlanIdsArray = 16,
};

/**
 * Фильтр по шаблонам КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplateFilter : GPBMessage

/** По статусам */
// |statusTypesArray| contains |KEYAPISSUBSCRIPTIONV1OfferTemplate_StatusType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *statusTypesArray;
/** The number of items in @c statusTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger statusTypesArray_Count;

/** По типам сервисов */
// |serviceTypesArray| contains |KEYAPISSUBSCRIPTIONV1OfferTemplate_ServiceType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *serviceTypesArray;
/** The number of items in @c serviceTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger serviceTypesArray_Count;

/** По идентификаторам регионов (из правил применимости) */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *rfIdsArray;
/** The number of items in @c rfIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger rfIdsArray_Count;

/**
 * По тексту.
 * Если значение не передано, поиск по нему не производится.
 * # Диапазон: 3..64.
 * # Поиск производится по полям:
 * # - Наименование;
 * # - Описание
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *text;
/** Test to see if @c text has been set. */
@property(nonatomic, readwrite) BOOL hasText;

/** По типам договорных схем (из правил применимости) */
// |applicabilityRulesContractTypesArray| contains |KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ContractType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *applicabilityRulesContractTypesArray;
/** The number of items in @c applicabilityRulesContractTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger applicabilityRulesContractTypesArray_Count;

/** По типам клиентов (из правил применимости) */
// |applicabilityRulesClientTypesArray| contains |KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_ClientType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *applicabilityRulesClientTypesArray;
/** The number of items in @c applicabilityRulesClientTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger applicabilityRulesClientTypesArray_Count;

/** По типам биллинговых систем (из правил применимости) */
// |applicabilityRulesBillingSystemTypesArray| contains |KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_BillingSystemType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *applicabilityRulesBillingSystemTypesArray;
/** The number of items in @c applicabilityRulesBillingSystemTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger applicabilityRulesBillingSystemTypesArray_Count;

/** По признаку внешней оплаты умного домофона (из правил применимости) */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isExternalPaymentForSmartIntercom;
/** Test to see if @c isExternalPaymentForSmartIntercom has been set. */
@property(nonatomic, readwrite) BOOL hasIsExternalPaymentForSmartIntercom;

/** По наличию CMS телефона в квартире (из правил применимости) */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *applicabilityRulesIsCmsPhone;
/** Test to see if @c applicabilityRulesIsCmsPhone has been set. */
@property(nonatomic, readwrite) BOOL hasApplicabilityRulesIsCmsPhone;

/** По наличию SIP телефона в квартире (из правил применимости) */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *applicabilityRulesIsSipPhone;
/** Test to see if @c applicabilityRulesIsSipPhone has been set. */
@property(nonatomic, readwrite) BOOL hasApplicabilityRulesIsSipPhone;

/** По наличию видеомонитора в квартире (из правил применимости) */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *applicabilityRulesIsVideoMonitor;
/** Test to see if @c applicabilityRulesIsVideoMonitor has been set. */
@property(nonatomic, readwrite) BOOL hasApplicabilityRulesIsVideoMonitor;

/** По типам договорной схемы устройства в квартире (из правил применимости) */
// |applicabilityRulesRoomDeviceContractTypesArray| contains |KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_RoomDeviceContractType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *applicabilityRulesRoomDeviceContractTypesArray;
/** The number of items in @c applicabilityRulesRoomDeviceContractTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger applicabilityRulesRoomDeviceContractTypesArray_Count;

/** По типам минимального бесплатного пакета мобильного приложения (из правил применимости) */
// |applicabilityRulesMobileAppPackageTypesArray| contains |KEYAPISSUBSCRIPTIONV1OfferTemplate_ApplicabilityRules_MobileAppPackageType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *applicabilityRulesMobileAppPackageTypesArray;
/** The number of items in @c applicabilityRulesMobileAppPackageTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger applicabilityRulesMobileAppPackageTypesArray_Count;

/** По признаку переадресации на городские/мобильные номера (из правил применимости) */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isCallForwardingEnabled;
/** Test to see if @c isCallForwardingEnabled has been set. */
@property(nonatomic, readwrite) BOOL hasIsCallForwardingEnabled;

/** По признаку цифрового клиентского пути (из правил применимости) */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isDigitalWay;
/** Test to see if @c isDigitalWay has been set. */
@property(nonatomic, readwrite) BOOL hasIsDigitalWay;

/** По идентификаторам технологических планов (из элементов шаблона) */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *planIdsArray;
/** The number of items in @c planIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger planIdsArray_Count;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1OfferTemplatePaging

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_FieldNumber_OrderByType = 1,
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_FieldNumber_DirectionType = 2,
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_FieldNumber_Limit = 3,
  KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация по шаблонам КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1OfferTemplatePaging : GPBMessage

/**
 * Тип значения сортировки.
 * Если значение не передано, то будет взято значение по умолчанию.
 * # По умолчанию: CREATED_AT
 **/
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType orderByType;

/**
 * Тип направления сортировки.
 * # По умолчанию: DESC
 **/
@property(nonatomic, readwrite) KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType directionType;

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

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

@end

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplatePaging's @c orderByType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplatePaging *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplatePaging's @c orderByType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplatePaging_OrderByType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplatePaging *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISSUBSCRIPTIONV1OfferTemplatePaging's @c directionType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplatePaging *message);
/**
 * Sets the raw value of an @c KEYAPISSUBSCRIPTIONV1OfferTemplatePaging's @c directionType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISSUBSCRIPTIONV1OfferTemplatePaging_DirectionType_RawValue(KEYAPISSUBSCRIPTIONV1OfferTemplatePaging *message, int32_t value);

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос получения шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateRequest : GPBMessage

/**
 * Идентификатор шаблона КВ.
 * Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse_Type_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISSUBSCRIPTIONV1GetOfferTemplateResponse_Type_OneOfCase typeOneOfCase;

/** Шаблон КВ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate *data_p;

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest_FieldNumber_Filter = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest_Pagination_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос получения списка шаблонов КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateListRequest : GPBMessage

/** Фильтр */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplateFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

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

/** Пагинация */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplatePaging *paging;

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_FieldNumber_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Type_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения списка шаблонов КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Type_OneOfCase typeOneOfCase;

/** Шаблон КВ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate *data_p;

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error_Reason_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса получения списка шаблонов КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateListResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListRequest_FieldNumber_Orpon = 1,
};

/**
 * Запрос получения списка Шаблонов КВ по ОРПОН дома
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListRequest : GPBMessage

/** ОРПОН. Идентификатор дома */
@property(nonatomic, readwrite) int64_t orpon;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_FieldNumber_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Type_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения списка Шаблонов КВ по ОРПОН дома
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Type_OneOfCase typeOneOfCase;

/** Шаблон КВ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate *data_p;

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Error

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Error_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Error_Reason_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountRequest_FieldNumber_Filter = 1,
};

/**
 * Запрос получения количества шаблонов КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountRequest : GPBMessage

/** Фильтр */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplateFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_FieldNumber_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Type_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения количества шаблонов КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Type_OneOfCase typeOneOfCase;

/** Всего шаблонов КВ */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error_Reason_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса получения количества шаблонов КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateCountResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountRequest_FieldNumber_Orpon = 1,
};

/**
 * Запрос получения количества Шаблонов КВ по ОРПОН дома
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountRequest : GPBMessage

/** ОРПОН. Идентификатор дома */
@property(nonatomic, readwrite) int64_t orpon;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_FieldNumber_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Type_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения количества Шаблонов КВ по ОРПОН дома
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Type_OneOfCase typeOneOfCase;

/** Всего шаблонов КВ */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Error

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Error_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Error_Reason_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1GetOfferTemplateByOrponCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1PostOfferTemplateRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос создания/редактирования шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1PostOfferTemplateRequest : GPBMessage

/**
 * Шаблон КВ.
 * Если id не передан — создаётся новый шаблон.
 * Если id передан — редактируется существующий шаблон
 **/
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_FieldNumber_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Type_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос создания/редактирования шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Type_OneOfCase typeOneOfCase;

/** Шаблон КВ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate *data_p;

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error_FieldNumber_Validation = 1,
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error_Reason_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error_Reason_OneOfCase_Saving = 2,
};

/**
 * Ошибка запроса сохранения шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1PostOfferTemplateResponse_Error : GPBMessage

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

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

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

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1DeleteOfferTemplateRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1DeleteOfferTemplateRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1DeleteOfferTemplateRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос архивации шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1DeleteOfferTemplateRequest : GPBMessage

/**
 * Идентификатор шаблона КВ.
 * Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1DeleteOfferTemplateResponse

/**
 * Ответ на запрос архивации шаблона КВ
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1DeleteOfferTemplateResponse : GPBMessage

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreRequest

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreRequest_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос восстановления шаблона КВ из архива
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreRequest : GPBMessage

/**
 * Идентификатор шаблона КВ.
 * Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

@end

#pragma mark - KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse_Type_OneOfCase) {
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос восстановления шаблона КВ из архива
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISSUBSCRIPTIONV1PostOfferTemplateRestoreResponse_Type_OneOfCase typeOneOfCase;

/** Восстановленный шаблон КВ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSUBSCRIPTIONV1OfferTemplate *data_p;

@end

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

#pragma mark - KEYAPISSUBSCRIPTIONV1ValidationError

typedef GPB_ENUM(KEYAPISSUBSCRIPTIONV1ValidationError_FieldNumber) {
  KEYAPISSUBSCRIPTIONV1ValidationError_FieldNumber_Path = 1,
  KEYAPISSUBSCRIPTIONV1ValidationError_FieldNumber_Message = 2,
};

/**
 * Ошибки валидации.
 * Эти проверки выполняются до обращения в базу данных
 **/
GPB_FINAL @interface KEYAPISSUBSCRIPTIONV1ValidationError : GPBMessage

/** Путь к полю в формате наименования прото */
@property(nonatomic, readwrite, copy, null_resettable) NSString *path;

/** Валидационное сообщение */
@property(nonatomic, readwrite, copy, null_resettable) NSString *message;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
