// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/exchange/v1/keyapis_exchange_message_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 KEYAPISEXCHANGEYV1MessageMobilePushCall;
@class KEYAPISEXCHANGEYV1MessageMobilePushCall_Message;
@class KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall;
@class KEYAPISEXCHANGEYV1MessagePushCall;
@class KEYAPISEXCHANGEYV1MessagePushCall_Message;
@class KEYAPISEXCHANGEYV1MessagePushCall_PushCall;
@class KEYAPISEXCHANGEYV1PostMessagePushCallRequest;
@class KEYAPISEXCHANGEYV1PostMessagePushCallResponse;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type

/** Тип пуш-токена */
typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type) {
  /**
   * 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.
   **/
  KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Не указан */
  KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_TypeUnknown = 0,

  /** Для PWA Firebase Cloud Messaging */
  KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_PwaFcm = 1,

  /** Для PWA Apple Notification System */
  KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_PwaApns = 2,
};

GPBEnumDescriptor *KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_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 KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type

/** Тип пуш-токена */
typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type) {
  /**
   * 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.
   **/
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Не указан */
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_TypeUnknown = 0,

  /** Для Mobile Firebase Cloud Messaging */
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_MobileFcm = 1,

  /** Для Mobile Huawei Messaging System */
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_MobileHms = 2,

  /** Для Mobile Apple PushToken System для текста */
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_MobileApnsText = 3,

  /** Для Mobile Apple PushToken System для звонков */
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_MobileApnsCall = 4,

  /** Для Mobile RuStore */
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_MobileRustore = 5,
};

GPBEnumDescriptor *KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_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 KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_IsValidValue(int32_t value);

#pragma mark - KEYAPISEXCHANGEYV1KeyapisExchangeMessageV1Root

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

#pragma mark - KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest

typedef GPB_ENUM(KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_FieldNumber) {
  KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_FieldNumber_RequestId = 1,
  KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_FieldNumber_PostMessagePushCall = 2,
};

typedef GPB_ENUM(KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_Task_OneOfCase) {
  KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_Task_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_Task_OneOfCase_PostMessagePushCall = 2,
};

/**
 * Поток отправляемых событий
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest : GPBMessage

/** Идентификатор запроса */
@property(nonatomic, readwrite, copy, null_resettable) NSString *requestId;

/** Задача запроса */
@property(nonatomic, readonly) KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_Task_OneOfCase taskOneOfCase;

/** Отправка звонкового сообщения */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1PostMessagePushCallRequest *postMessagePushCall;

@end

/**
 * Clears whatever value was set for the oneof 'task'.
 **/
void KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest_ClearTaskOneOfCase(KEYAPISEXCHANGEYV1PostMessageFullDuplexRequest *message);

#pragma mark - KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse

typedef GPB_ENUM(KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_FieldNumber) {
  KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_FieldNumber_RequestId = 1,
  KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_FieldNumber_PostMessagePushCall = 2,
};

typedef GPB_ENUM(KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_Event_OneOfCase) {
  KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_Event_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_Event_OneOfCase_PostMessagePushCall = 2,
};

/**
 * Поток ответов на задачи
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse : GPBMessage

/** Идентификатор ответа */
@property(nonatomic, readwrite, copy, null_resettable) NSString *requestId;

/** Событие */
@property(nonatomic, readonly) KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_Event_OneOfCase eventOneOfCase;

/** Ответ на отправку звонкового сообщения */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1PostMessagePushCallResponse *postMessagePushCall;

@end

/**
 * Clears whatever value was set for the oneof 'event'.
 **/
void KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse_ClearEventOneOfCase(KEYAPISEXCHANGEYV1PostMessageFullDuplexResponse *message);

#pragma mark - KEYAPISEXCHANGEYV1MessagePushCall

typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessagePushCall_FieldNumber) {
  KEYAPISEXCHANGEYV1MessagePushCall_FieldNumber_Message = 1,
  KEYAPISEXCHANGEYV1MessagePushCall_FieldNumber_PushCall = 2,
};

/**
 * Звонковое сообщение
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1MessagePushCall : GPBMessage

/** Сообщение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1MessagePushCall_Message *message;
/** Test to see if @c message has been set. */
@property(nonatomic, readwrite) BOOL hasMessage;

/** Звонковый пуш */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1MessagePushCall_PushCall *pushCall;
/** Test to see if @c pushCall has been set. */
@property(nonatomic, readwrite) BOOL hasPushCall;

@end

#pragma mark - KEYAPISEXCHANGEYV1MessagePushCall_Message

typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber) {
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_Title = 1,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_DeviceId = 2,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_DeviceTitle = 3,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_DeviceCameraId = 4,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_SipServerHost = 5,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_SipServerPort = 6,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_SipAccountLogin = 7,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_SipAccountPassword = 8,
  KEYAPISEXCHANGEYV1MessagePushCall_Message_FieldNumber_CallCreatedAt = 9,
};

/**
 * Сообщение
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1MessagePushCall_Message : GPBMessage

/** Заголовок уведомления */
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/** Идентификатор устройства источника */
@property(nonatomic, readwrite) int32_t deviceId;

/** Название устройства источника */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *deviceTitle;
/** Test to see if @c deviceTitle has been set. */
@property(nonatomic, readwrite) BOOL hasDeviceTitle;

/**
 * Идентификатор камеры устройства источника.
 * Тип: Guid
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *deviceCameraId;
/** Test to see if @c deviceCameraId has been set. */
@property(nonatomic, readwrite) BOOL hasDeviceCameraId;

/** Адрес SIP сервера */
@property(nonatomic, readwrite, copy, null_resettable) NSString *sipServerHost;

/** Порт SIP сервера */
@property(nonatomic, readwrite) int32_t sipServerPort;

/** Логин SIP аккаунта */
@property(nonatomic, readwrite, copy, null_resettable) NSString *sipAccountLogin;

/** Пароль SIP аккаунта */
@property(nonatomic, readwrite, copy, null_resettable) NSString *sipAccountPassword;

/** Момент инициации звонка */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *callCreatedAt;
/** Test to see if @c callCreatedAt has been set. */
@property(nonatomic, readwrite) BOOL hasCallCreatedAt;

@end

#pragma mark - KEYAPISEXCHANGEYV1MessagePushCall_PushCall

typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessagePushCall_PushCall_FieldNumber) {
  KEYAPISEXCHANGEYV1MessagePushCall_PushCall_FieldNumber_Token = 1,
  KEYAPISEXCHANGEYV1MessagePushCall_PushCall_FieldNumber_Type = 2,
};

/**
 * Звонковый пуш
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1MessagePushCall_PushCall : GPBMessage

/** Пуш-токен адресата звонка */
@property(nonatomic, readwrite, copy, null_resettable) NSString *token;

/** Тип пуш-токена */
@property(nonatomic, readwrite) KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type type;

@end

/**
 * Fetches the raw value of a @c KEYAPISEXCHANGEYV1MessagePushCall_PushCall's @c type property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_RawValue(KEYAPISEXCHANGEYV1MessagePushCall_PushCall *message);
/**
 * Sets the raw value of an @c KEYAPISEXCHANGEYV1MessagePushCall_PushCall'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 SetKEYAPISEXCHANGEYV1MessagePushCall_PushCall_Type_RawValue(KEYAPISEXCHANGEYV1MessagePushCall_PushCall *message, int32_t value);

#pragma mark - KEYAPISEXCHANGEYV1MessageMobilePushCall

typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessageMobilePushCall_FieldNumber) {
  KEYAPISEXCHANGEYV1MessageMobilePushCall_FieldNumber_Message = 1,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_FieldNumber_PushCall = 2,
};

/**
 * Звонковое сообщение для мобильных приложений
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1MessageMobilePushCall : GPBMessage

/** Сообщение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1MessageMobilePushCall_Message *message;
/** Test to see if @c message has been set. */
@property(nonatomic, readwrite) BOOL hasMessage;

/** Звонковый пуш */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall *pushCall;
/** Test to see if @c pushCall has been set. */
@property(nonatomic, readwrite) BOOL hasPushCall;

@end

#pragma mark - KEYAPISEXCHANGEYV1MessageMobilePushCall_Message

typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber) {
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_Title = 1,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_DeviceId = 2,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_DeviceTitle = 3,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_DeviceCameraId = 4,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_SipToken = 5,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_SipServerHost = 6,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_SipServerPort = 7,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_SipAccountLogin = 8,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_SipAccountPassword = 9,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_StunServerHost = 10,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_StunServerPort = 11,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_Message_FieldNumber_CallCreatedAt = 12,
};

/**
 * Сообщение
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1MessageMobilePushCall_Message : GPBMessage

/** Заголовок уведомления */
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/** Идентификатор устройства источника */
@property(nonatomic, readwrite) int32_t deviceId;

/** Название устройства источника */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *deviceTitle;
/** Test to see if @c deviceTitle has been set. */
@property(nonatomic, readwrite) BOOL hasDeviceTitle;

/**
 * Идентификатор камеры устройства источника.
 * Тип: Guid
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *deviceCameraId;
/** Test to see if @c deviceCameraId has been set. */
@property(nonatomic, readwrite) BOOL hasDeviceCameraId;

/** SIP-токен */
@property(nonatomic, readwrite, copy, null_resettable) NSString *sipToken;

/** Адрес SIP сервера */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *sipServerHost;
/** Test to see if @c sipServerHost has been set. */
@property(nonatomic, readwrite) BOOL hasSipServerHost;

/** Порт SIP сервера */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *sipServerPort;
/** Test to see if @c sipServerPort has been set. */
@property(nonatomic, readwrite) BOOL hasSipServerPort;

/** Логин SIP аккаунта */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *sipAccountLogin;
/** Test to see if @c sipAccountLogin has been set. */
@property(nonatomic, readwrite) BOOL hasSipAccountLogin;

/** Пароль SIP аккаунта */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *sipAccountPassword;
/** Test to see if @c sipAccountPassword has been set. */
@property(nonatomic, readwrite) BOOL hasSipAccountPassword;

/** Адрес STUN сервера */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *stunServerHost;
/** Test to see if @c stunServerHost has been set. */
@property(nonatomic, readwrite) BOOL hasStunServerHost;

/** Порт STUN сервера */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *stunServerPort;
/** Test to see if @c stunServerPort has been set. */
@property(nonatomic, readwrite) BOOL hasStunServerPort;

/** Момент инициации звонка */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *callCreatedAt;
/** Test to see if @c callCreatedAt has been set. */
@property(nonatomic, readwrite) BOOL hasCallCreatedAt;

@end

#pragma mark - KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall

typedef GPB_ENUM(KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_FieldNumber) {
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_FieldNumber_Token = 1,
  KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_FieldNumber_Type = 2,
};

/**
 * Звонковый пуш
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall : GPBMessage

/** Пуш-токен адресата звонка */
@property(nonatomic, readwrite, copy, null_resettable) NSString *token;

/** Тип пуш-токена */
@property(nonatomic, readwrite) KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type type;

@end

/**
 * Fetches the raw value of a @c KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall's @c type property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_RawValue(KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall *message);
/**
 * Sets the raw value of an @c KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall'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 SetKEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall_Type_RawValue(KEYAPISEXCHANGEYV1MessageMobilePushCall_PushCall *message, int32_t value);

#pragma mark - KEYAPISEXCHANGEYV1PostMessagePushCallRequest

typedef GPB_ENUM(KEYAPISEXCHANGEYV1PostMessagePushCallRequest_FieldNumber) {
  KEYAPISEXCHANGEYV1PostMessagePushCallRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос на отправку звонкового пуш сообщения
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1PostMessagePushCallRequest : GPBMessage

/** Звонковый пуш */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1MessagePushCall *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISEXCHANGEYV1PostMessagePushCallResponse

/**
 * Ответ на запрос на отправку звонкового пуш сообщения
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1PostMessagePushCallResponse : GPBMessage

@end

#pragma mark - KEYAPISEXCHANGEYV1PostMessageMobilePushCallRequest

typedef GPB_ENUM(KEYAPISEXCHANGEYV1PostMessageMobilePushCallRequest_FieldNumber) {
  KEYAPISEXCHANGEYV1PostMessageMobilePushCallRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос на отправку звонкового пуш сообщения для мобильного приложения
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1PostMessageMobilePushCallRequest : GPBMessage

/** Звонковый пуш */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISEXCHANGEYV1MessageMobilePushCall *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISEXCHANGEYV1PostMessageMobilePushCallResponse

/**
 * Ответ на запрос на отправку звонкового пуш сообщения для мобильного приложения
 **/
GPB_FINAL @interface KEYAPISEXCHANGEYV1PostMessageMobilePushCallResponse : GPBMessage

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
