// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/access_control/v1/keyapis_access_control_access_point_group_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 KEYAPISACCESSCONTROLV1AccessPointGroup;
@class KEYAPISACCESSCONTROLV1AccessPointGroupFilter;
@class KEYAPISACCESSCONTROLV1AccessPointGroupPaging;
@class KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Error;
@class KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Error;
@class KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Error;
@class KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Error;
@class KEYAPISACCESSCONTROLV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISACCESSCONTROLV1AccessPointGroupPaging_OrderByType

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

  /** По идентификатору группы */
  KEYAPISACCESSCONTROLV1AccessPointGroupPaging_OrderByType_GroupId = 1,

  /** По идентификатору точки доступа */
  KEYAPISACCESSCONTROLV1AccessPointGroupPaging_OrderByType_AccessPointId = 2,

  /** По дате создания */
  KEYAPISACCESSCONTROLV1AccessPointGroupPaging_OrderByType_CreatedAt = 3,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1AccessPointGroupPaging_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 KEYAPISACCESSCONTROLV1AccessPointGroupPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1AccessPointGroupPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1AccessPointGroupPaging_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 KEYAPISACCESSCONTROLV1AccessPointGroupPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISACCESSCONTROLV1KeyapisAccessControlAccessPointGroupV1Root

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

#pragma mark - KEYAPISACCESSCONTROLV1AccessPointGroup

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPointGroup_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPointGroup_FieldNumber_AccessPointId = 1,
  KEYAPISACCESSCONTROLV1AccessPointGroup_FieldNumber_GroupId = 2,
};

/**
 * Связка точки доступа и группы.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1AccessPointGroup : GPBMessage

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1AccessPointGroupFilter

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPointGroupFilter_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPointGroupFilter_FieldNumber_AccessPointIdsArray = 1,
  KEYAPISACCESSCONTROLV1AccessPointGroupFilter_FieldNumber_GroupIdsArray = 2,
};

/**
 * Фильтр по связям точек доступа и групп
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1AccessPointGroupFilter : GPBMessage

/**
 * По идентификаторам точки доступа.
 * # Тип: Guid
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *accessPointIdsArray;
/** The number of items in @c accessPointIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger accessPointIdsArray_Count;

/**
 * По идентификаторам группы.
 * # Тип: Guid
 **/
@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;

@end

#pragma mark - KEYAPISACCESSCONTROLV1AccessPointGroupPaging

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPointGroupPaging_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPointGroupPaging_FieldNumber_OrderByType = 1,
  KEYAPISACCESSCONTROLV1AccessPointGroupPaging_FieldNumber_DirectionType = 2,
  KEYAPISACCESSCONTROLV1AccessPointGroupPaging_FieldNumber_Limit = 3,
  KEYAPISACCESSCONTROLV1AccessPointGroupPaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointGroupListRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupListRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListRequest_FieldNumber_Filter = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupListRequest_Pagination_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Связь точки доступа и группы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1AccessPointGroup *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointGroupCountRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupCountRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Всего точек доступа */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointGroupCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachRequest_FieldNumber_AccessPointGroup = 1,
};

/**
 * Запрос создания связи точки доступа и группы
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachRequest : GPBMessage

/** Связь точки доступа и группы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1AccessPointGroup *accessPointGroup;
/** Test to see if @c accessPointGroup has been set. */
@property(nonatomic, readwrite) BOOL hasAccessPointGroup;

@end

#pragma mark - KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PutAccessPointGroupAttachResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachRequest_FieldNumber_AccessPointGroup = 1,
};

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

/** Связь точки доступа и группы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1AccessPointGroup *accessPointGroup;
/** Test to see if @c accessPointGroup has been set. */
@property(nonatomic, readwrite) BOOL hasAccessPointGroup;

@end

#pragma mark - KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PutAccessPointGroupDetachResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
