// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/access_management/v1/keyapis_access_management_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 KEYAPISACCESSMANAGEMENTV1Claim;
@class KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Error;
@class KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Error;
@class KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error;
@class KEYAPISACCESSMANAGEMENTV1GroupTemplate;
@class KEYAPISACCESSMANAGEMENTV1GroupTemplateFilter;
@class KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup;
@class KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter;
@class KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging;
@class KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging;
@class KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error;
@class KEYAPISACCESSMANAGEMENTV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_OrderByType

/** Справочник типов сортировки */
typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_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.
   **/
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_OrderByType_OrderByTypeUnknown = 0,

  /** По Идентификатору группы пользователя */
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_OrderByType_GroupId = 1,

  /** По шаблону групп */
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_OrderByType_GroupTemplateId = 2,
};

GPBEnumDescriptor *KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_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 KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_DirectionType

/** Справочник типов направлений сортировки */
typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_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.
   **/
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_DirectionType_DirectionTypeUnknown = 0,

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

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

GPBEnumDescriptor *KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_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 KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_OrderByType

/**
 * Справочник типов значений сортировки.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_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.
   **/
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_OrderByType_OrderByTypeUnknown = 0,

  /** По идентификатору */
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_OrderByType_Id = 1,

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

GPBEnumDescriptor *KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_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 KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_DirectionType

/**
 * Справочник типов направлений сортировки.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_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.
   **/
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_DirectionType_DirectionTypeUnknown = 0,

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

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

GPBEnumDescriptor *KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_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 KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISACCESSMANAGEMENTV1KeyapisAccessManagementTemplateV1Root

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GroupTemplate

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber_Id_p = 1,
  KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber_Title = 2,
  KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber_GroupTitleSuffix = 3,
  KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber_Description_p = 4,
  KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber_ClaimsArray = 5,
  KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber_RequirementsArray = 6,
  KEYAPISACCESSMANAGEMENTV1GroupTemplate_FieldNumber_TagsArray = 7,
};

/**
 * Шаблон группы пользователей
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GroupTemplate : GPBMessage

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

/**
 * Наименование шаблона группы.
 * # Диапазон: 3..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/**
 * Суффикс наименования группы.
 * # Диапазон: 3..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *groupTitleSuffix;

/**
 * Описание шаблона группы.
 * # Диапазон: 3..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *description_p;

/**
 * Массив атрибутов группы.
 * Эти атрибуты назначены пользователям, которые принадлежат группе.
 * # Диапазон: 0..100
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISACCESSMANAGEMENTV1Claim*> *claimsArray;
/** The number of items in @c claimsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger claimsArray_Count;

/**
 * Требования, означающие принадлежность пользователя к данной группе.
 * Пользователь принадлежит группе, если все атрибуты требований группы присутствуют у пользователя и имеют те же значения.
 * # Диапазон: 0..10
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISACCESSMANAGEMENTV1Claim*> *requirementsArray;
/** The number of items in @c requirementsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger requirementsArray_Count;

/**
 * Теги шаблона группы.
 * # Диапазон: 0..10
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *tagsArray;
/** The number of items in @c tagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger tagsArray_Count;

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListRequest_FieldNumber_Filter = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListRequest_Pagination_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListRequest_Pagination_OneOfCase_Paging = 2,
};

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

/** Фильтр связей шаблонов групп и группы пользователя */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

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

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountRequest_FieldNumber_Filter = 1,
};

/**
 * Запрос получения количества связей шаблонов групп и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountRequest : GPBMessage

/** Фильтр связей шаблонов групп и группы пользователя */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountResponse

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountResponse_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountResponse_Type_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения количества связей шаблонов групп и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupCountResponse : GPBMessage

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

/** Всего связей шаблонов групп и группы пользователя */
@property(nonatomic, readwrite) int32_t data_p;

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_FieldNumber_OrderByType = 1,
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_FieldNumber_DirectionType = 2,
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_FieldNumber_Limit = 3,
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация шаблонов групп и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupPaging : GPBMessage

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

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

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

/**
 * Сдвиг.
 * По умолчанию: 0
 **/
@property(nonatomic, readwrite) int32_t offset;

@end

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

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListResponse

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListResponse_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListResponse_Type_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения списка связей шаблонов групп и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GetGroupTemplateGroupListResponse : GPBMessage

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

/** Связь шаблона группы и группы пользователя */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup *data_p;

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupAttachRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupAttachRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupAttachRequest_FieldNumber_GroupTemplateGroup = 1,
};

/**
 * Запрос сохранения связей шаблона группы и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupAttachRequest : GPBMessage

/** Связь шаблона группы и группы пользователя */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup *groupTemplateGroup;
/** Test to see if @c groupTemplateGroup has been set. */
@property(nonatomic, readwrite) BOOL hasGroupTemplateGroup;

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupAttachResponse

/**
 * Ответ на запрос сохранения связи шаблона группы и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupAttachResponse : GPBMessage

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupDetachRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupDetachRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupDetachRequest_FieldNumber_GroupTemplateGroup = 1,
};

/**
 * Запрос удаления связей шаблона группы и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupDetachRequest : GPBMessage

/** Связь шаблона группы и группы пользователя */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup *groupTemplateGroup;
/** Test to see if @c groupTemplateGroup has been set. */
@property(nonatomic, readwrite) BOOL hasGroupTemplateGroup;

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup_FieldNumber_GroupId = 1,
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup_FieldNumber_GroupTemplateId = 2,
};

/**
 * Связка шаблона группы и группы пользователя.
 * Задает область ресурсов (resource scope), доступную пользователю.
 * Используется для контроля доступа к шаблону группы
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GroupTemplateGroup : GPBMessage

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

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

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter_FieldNumber_GroupIdsArray = 1,
  KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter_FieldNumber_GroupTemplateIdsArray = 2,
};

/**
 * Фильтр для запроса связей шаблона группы и группы пользователя.
 * При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.
 * При передаче нескольких разных параметров фильтра они работают в выборке через И
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GroupTemplateGroupFilter : GPBMessage

/** По Идентификатору группы пользователя */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *groupIdsArray;
/** The number of items in @c groupIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger groupIdsArray_Count;

/** По шаблону группы */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *groupTemplateIdsArray;
/** The number of items in @c groupTemplateIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger groupTemplateIdsArray_Count;

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupDetachResponse

/**
 * Ответ на запрос удаления связи шаблона группы и группы пользователя
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1PutGroupTemplateGroupDetachResponse : GPBMessage

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос получения шаблона группы
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GetGroupTemplateRequest : GPBMessage

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

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Type_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Шаблон группы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplate *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса получения шаблона группы
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GetGroupTemplateResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListRequest_FieldNumber_Filter = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListRequest_Pagination_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Type_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Шаблон группы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplate *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Error

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Error_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Type_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Type_OneOfCase_Error = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Error

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Error_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1GetGroupTemplateCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1GroupTemplateFilter

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplateFilter_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GroupTemplateFilter_FieldNumber_Text = 1,
  KEYAPISACCESSMANAGEMENTV1GroupTemplateFilter_FieldNumber_TagsArray = 2,
};

/**
 * Фильтр шаблонов групп.
 * При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.
 * При передаче нескольких разных параметров фильтра они работают в выборке через И
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GroupTemplateFilter : GPBMessage

/**
 * По тексту.
 * Если значение не передано то поиск по нему не производится.
 * # Диапазон: 3..64.
 * # Поиск производится по полям:
 * # - Наименование
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *text;

/**
 * По тегам.
 * # Диапазон: 0..10
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *tagsArray;
/** The number of items in @c tagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger tagsArray_Count;

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_FieldNumber_OrderByType = 1,
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_FieldNumber_DirectionType = 2,
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_FieldNumber_Limit = 3,
  KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация шаблонов групп
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging : GPBMessage

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

/**
 * Тип направления сортировки.
 * # По умолчанию: DESC
 **/
@property(nonatomic, readwrite) KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_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 KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging's @c orderByType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_OrderByType_RawValue(KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging *message);
/**
 * Sets the raw value of an @c KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging'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 SetKEYAPISACCESSMANAGEMENTV1GroupTemplatePaging_OrderByType_RawValue(KEYAPISACCESSMANAGEMENTV1GroupTemplatePaging *message, int32_t value);

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1PostGroupTemplateRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1PostGroupTemplateRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос сохранения шаблона группы
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1PostGroupTemplateRequest : GPBMessage

/** Шаблон группы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplate *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Type_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос сохранения шаблона группы
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse : GPBMessage

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

/** Шаблон группы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSMANAGEMENTV1GroupTemplate *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса сохранения шаблона группы
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1PostGroupTemplateResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISACCESSMANAGEMENTV1DeleteGroupTemplateRequest

typedef GPB_ENUM(KEYAPISACCESSMANAGEMENTV1DeleteGroupTemplateRequest_FieldNumber) {
  KEYAPISACCESSMANAGEMENTV1DeleteGroupTemplateRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос удаления шаблона группы
 **/
GPB_FINAL @interface KEYAPISACCESSMANAGEMENTV1DeleteGroupTemplateRequest : GPBMessage

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

@end

#pragma mark - KEYAPISACCESSMANAGEMENTV1DeleteGroupTemplateResponse

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

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
