// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Framework.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 GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
#import <Protobuf/GPBProtocolBuffers.h>
#else
#import <ProtocolBuffers/ProtocolBuffers.h>
#endif

#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30001
#error This file was generated by a different 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 BlockDesc;
@class OpDesc;
@class OpDesc_Attr;
@class OpDesc_Var;
@class OpProto_Attr;
@class OpProto_Var;
@class VarDesc;
@class VarType;
@class VarType_ChannelDesc;
@class VarType_LoDTensorArrayDesc;
@class VarType_LoDTensorDesc;
@class VarType_ReaderDesc;
@class VarType_TensorDesc;
@class VarType_Tuple;
@class Version;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum AttrType

typedef GPB_ENUM(AttrType) {
  AttrType_Int = 0,
  AttrType_Float = 1,
  AttrType_String = 2,
  AttrType_Ints = 3,
  AttrType_Floats = 4,
  AttrType_Strings = 5,
  AttrType_Boolean = 6,
  AttrType_Booleans = 7,
  AttrType_Block = 8,
  AttrType_Long = 9,
  AttrType_Blocks = 10,
};

GPBEnumDescriptor *AttrType_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 AttrType_IsValidValue(int32_t value);

#pragma mark - Enum VarType_Type

typedef GPB_ENUM(VarType_Type) {
  /// Pod Types
  VarType_Type_Bool = 0,
  VarType_Type_Int16 = 1,
  VarType_Type_Int32 = 2,
  VarType_Type_Int64 = 3,
  VarType_Type_Fp16 = 4,
  VarType_Type_Fp32 = 5,
  VarType_Type_Fp64 = 6,

  /// Tensor<size_t> is used in C++.
  VarType_Type_SizeT = 19,
  VarType_Type_Uint8 = 20,
  VarType_Type_Int8 = 21,

  /// Other types that may need additional descriptions
  VarType_Type_LodTensor = 7,
  VarType_Type_SelectedRows = 8,
  VarType_Type_FeedMinibatch = 9,
  VarType_Type_FetchList = 10,
  VarType_Type_StepScopes = 11,
  VarType_Type_LodRankTable = 12,
  VarType_Type_LodTensorArray = 13,
  VarType_Type_PlaceList = 14,
  VarType_Type_Reader = 15,
  VarType_Type_Channel = 16,

  /// Any runtime decided variable type is raw
  /// raw variables should manage their own allocations
  /// in operators like nccl_op
  VarType_Type_Raw = 17,
  VarType_Type_Tuple = 18,
};

GPBEnumDescriptor *VarType_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 VarType_Type_IsValidValue(int32_t value);

#pragma mark - FrameworkRoot

/// 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.
@interface FrameworkRoot : GPBRootObject
@end

#pragma mark - Version

typedef GPB_ENUM(Version_FieldNumber) {
  Version_FieldNumber_Version = 1,
};

/// Any incompatible changes to ProgramDesc and its dependencies should
/// raise the version defined version.h.
///
/// Serailization and Deserialization codes should be modified in a way
/// that supports old versions following the version and compatibility policy.
@interface Version : GPBMessage

@property(nonatomic, readwrite) int64_t version;

@property(nonatomic, readwrite) BOOL hasVersion;
@end

#pragma mark - OpDesc

typedef GPB_ENUM(OpDesc_FieldNumber) {
  OpDesc_FieldNumber_InputsArray = 1,
  OpDesc_FieldNumber_OutputsArray = 2,
  OpDesc_FieldNumber_Type = 3,
  OpDesc_FieldNumber_AttrsArray = 4,
  OpDesc_FieldNumber_IsTarget = 5,
};

/// OpDesc describes an instance of a C++ framework::OperatorBase
/// derived class type.
@interface OpDesc : GPBMessage

@property(nonatomic, readwrite, copy, null_resettable) NSString *type;
/// Test to see if @c type has been set.
@property(nonatomic, readwrite) BOOL hasType;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc_Var*> *inputsArray;
/// The number of items in @c inputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger inputsArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc_Var*> *outputsArray;
/// The number of items in @c outputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger outputsArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc_Attr*> *attrsArray;
/// The number of items in @c attrsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger attrsArray_Count;

@property(nonatomic, readwrite) BOOL isTarget;

@property(nonatomic, readwrite) BOOL hasIsTarget;
@end

#pragma mark - OpDesc_Attr

typedef GPB_ENUM(OpDesc_Attr_FieldNumber) {
  OpDesc_Attr_FieldNumber_Name = 1,
  OpDesc_Attr_FieldNumber_Type = 2,
  OpDesc_Attr_FieldNumber_I = 3,
  OpDesc_Attr_FieldNumber_F = 4,
  OpDesc_Attr_FieldNumber_S = 5,
  OpDesc_Attr_FieldNumber_IntsArray = 6,
  OpDesc_Attr_FieldNumber_FloatsArray = 7,
  OpDesc_Attr_FieldNumber_StringsArray = 8,
  OpDesc_Attr_FieldNumber_B = 10,
  OpDesc_Attr_FieldNumber_BoolsArray = 11,
  OpDesc_Attr_FieldNumber_BlockIdx = 12,
  OpDesc_Attr_FieldNumber_L = 13,
  OpDesc_Attr_FieldNumber_BlocksIdxArray = 14,
};

@interface OpDesc_Attr : GPBMessage

@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;

@property(nonatomic, readwrite) AttrType type;

@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite) int32_t i;

@property(nonatomic, readwrite) BOOL hasI;
@property(nonatomic, readwrite) float f;

@property(nonatomic, readwrite) BOOL hasF;
@property(nonatomic, readwrite, copy, null_resettable) NSString *s;
/// Test to see if @c s has been set.
@property(nonatomic, readwrite) BOOL hasS;

@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *intsArray;
/// The number of items in @c intsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger intsArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) GPBFloatArray *floatsArray;
/// The number of items in @c floatsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger floatsArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *stringsArray;
/// The number of items in @c stringsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger stringsArray_Count;

@property(nonatomic, readwrite) BOOL b;

@property(nonatomic, readwrite) BOOL hasB;
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolArray *boolsArray;
/// The number of items in @c boolsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger boolsArray_Count;

@property(nonatomic, readwrite) int32_t blockIdx;

@property(nonatomic, readwrite) BOOL hasBlockIdx;
@property(nonatomic, readwrite) int64_t l;

@property(nonatomic, readwrite) BOOL hasL;
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *blocksIdxArray;
/// The number of items in @c blocksIdxArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger blocksIdxArray_Count;

@end

#pragma mark - OpDesc_Var

typedef GPB_ENUM(OpDesc_Var_FieldNumber) {
  OpDesc_Var_FieldNumber_Parameter = 1,
  OpDesc_Var_FieldNumber_ArgumentsArray = 2,
};

@interface OpDesc_Var : GPBMessage

@property(nonatomic, readwrite, copy, null_resettable) NSString *parameter;
/// Test to see if @c parameter has been set.
@property(nonatomic, readwrite) BOOL hasParameter;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *argumentsArray;
/// The number of items in @c argumentsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger argumentsArray_Count;

@end

#pragma mark - OpProto

typedef GPB_ENUM(OpProto_FieldNumber) {
  OpProto_FieldNumber_Type = 1,
  OpProto_FieldNumber_InputsArray = 2,
  OpProto_FieldNumber_OutputsArray = 3,
  OpProto_FieldNumber_AttrsArray = 4,
  OpProto_FieldNumber_Comment = 5,
};

/// OpProto describes a C++ framework::OperatorBase derived class.
@interface OpProto : GPBMessage

@property(nonatomic, readwrite, copy, null_resettable) NSString *type;
/// Test to see if @c type has been set.
@property(nonatomic, readwrite) BOOL hasType;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpProto_Var*> *inputsArray;
/// The number of items in @c inputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger inputsArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpProto_Var*> *outputsArray;
/// The number of items in @c outputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger outputsArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpProto_Attr*> *attrsArray;
/// The number of items in @c attrsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger attrsArray_Count;

@property(nonatomic, readwrite, copy, null_resettable) NSString *comment;
/// Test to see if @c comment has been set.
@property(nonatomic, readwrite) BOOL hasComment;

@end

#pragma mark - OpProto_Var

typedef GPB_ENUM(OpProto_Var_FieldNumber) {
  OpProto_Var_FieldNumber_Name = 1,
  OpProto_Var_FieldNumber_Comment = 2,
  OpProto_Var_FieldNumber_Duplicable = 3,
  OpProto_Var_FieldNumber_Intermediate = 4,
  OpProto_Var_FieldNumber_Dispensable = 5,
  OpProto_Var_FieldNumber_Reuse = 6,
};

/// VarProto describes the C++ type framework::Variable.
@interface OpProto_Var : GPBMessage

@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;

@property(nonatomic, readwrite, copy, null_resettable) NSString *comment;
/// Test to see if @c comment has been set.
@property(nonatomic, readwrite) BOOL hasComment;

@property(nonatomic, readwrite) BOOL duplicable;

@property(nonatomic, readwrite) BOOL hasDuplicable;
@property(nonatomic, readwrite) BOOL intermediate;

@property(nonatomic, readwrite) BOOL hasIntermediate;
@property(nonatomic, readwrite) BOOL dispensable;

@property(nonatomic, readwrite) BOOL hasDispensable;
@property(nonatomic, readwrite, copy, null_resettable) NSString *reuse;
/// Test to see if @c reuse has been set.
@property(nonatomic, readwrite) BOOL hasReuse;

@end

#pragma mark - OpProto_Attr

typedef GPB_ENUM(OpProto_Attr_FieldNumber) {
  OpProto_Attr_FieldNumber_Name = 1,
  OpProto_Attr_FieldNumber_Type = 2,
  OpProto_Attr_FieldNumber_Comment = 3,
  OpProto_Attr_FieldNumber_Generated = 4,
};

/// AttrProto describes the C++ type Attribute.
@interface OpProto_Attr : GPBMessage

@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;

@property(nonatomic, readwrite) AttrType type;

@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite, copy, null_resettable) NSString *comment;
/// Test to see if @c comment has been set.
@property(nonatomic, readwrite) BOOL hasComment;

/// If that attribute is generated, it means the Paddle third
/// language binding has responsibility to fill that
/// attribute. End-User should not set that attribute.
@property(nonatomic, readwrite) BOOL generated;

@property(nonatomic, readwrite) BOOL hasGenerated;
@end

#pragma mark - VarType

typedef GPB_ENUM(VarType_FieldNumber) {
  VarType_FieldNumber_Type = 1,
  VarType_FieldNumber_SelectedRows = 2,
  VarType_FieldNumber_LodTensor = 3,
  VarType_FieldNumber_TensorArray_p = 4,
  VarType_FieldNumber_Reader = 5,
  VarType_FieldNumber_Channel = 6,
  VarType_FieldNumber_Tuple = 7,
};

@interface VarType : GPBMessage

@property(nonatomic, readwrite) VarType_Type type;

@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite, strong, null_resettable) VarType_TensorDesc *selectedRows;
/// Test to see if @c selectedRows has been set.
@property(nonatomic, readwrite) BOOL hasSelectedRows;

@property(nonatomic, readwrite, strong, null_resettable) VarType_LoDTensorDesc *lodTensor;
/// Test to see if @c lodTensor has been set.
@property(nonatomic, readwrite) BOOL hasLodTensor;

@property(nonatomic, readwrite, strong, null_resettable) VarType_LoDTensorArrayDesc *tensorArray_p;
/// Test to see if @c tensorArray_p has been set.
@property(nonatomic, readwrite) BOOL hasTensorArray_p;

@property(nonatomic, readwrite, strong, null_resettable) VarType_ReaderDesc *reader;
/// Test to see if @c reader has been set.
@property(nonatomic, readwrite) BOOL hasReader;

@property(nonatomic, readwrite, strong, null_resettable) VarType_ChannelDesc *channel;
/// Test to see if @c channel has been set.
@property(nonatomic, readwrite) BOOL hasChannel;

@property(nonatomic, readwrite, strong, null_resettable) VarType_Tuple *tuple;
/// Test to see if @c tuple has been set.
@property(nonatomic, readwrite) BOOL hasTuple;

@end

#pragma mark - VarType_TensorDesc

typedef GPB_ENUM(VarType_TensorDesc_FieldNumber) {
  VarType_TensorDesc_FieldNumber_DataType = 1,
  VarType_TensorDesc_FieldNumber_DimsArray = 2,
};

@interface VarType_TensorDesc : GPBMessage

/// Should only be PODType. Is enforced in C++
@property(nonatomic, readwrite) VarType_Type dataType;

@property(nonatomic, readwrite) BOOL hasDataType;
/// [UNK, 640, 480] is saved as [-1, 640, 480]
@property(nonatomic, readwrite, strong, null_resettable) GPBInt64Array *dimsArray;
/// The number of items in @c dimsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger dimsArray_Count;

@end

#pragma mark - VarType_LoDTensorDesc

typedef GPB_ENUM(VarType_LoDTensorDesc_FieldNumber) {
  VarType_LoDTensorDesc_FieldNumber_Tensor = 1,
  VarType_LoDTensorDesc_FieldNumber_LodLevel = 2,
};

@interface VarType_LoDTensorDesc : GPBMessage

@property(nonatomic, readwrite, strong, null_resettable) VarType_TensorDesc *tensor;
/// Test to see if @c tensor has been set.
@property(nonatomic, readwrite) BOOL hasTensor;

@property(nonatomic, readwrite) int32_t lodLevel;

@property(nonatomic, readwrite) BOOL hasLodLevel;
@end

#pragma mark - VarType_LoDTensorArrayDesc

typedef GPB_ENUM(VarType_LoDTensorArrayDesc_FieldNumber) {
  VarType_LoDTensorArrayDesc_FieldNumber_Tensor = 1,
  VarType_LoDTensorArrayDesc_FieldNumber_LodLevel = 2,
};

@interface VarType_LoDTensorArrayDesc : GPBMessage

@property(nonatomic, readwrite, strong, null_resettable) VarType_TensorDesc *tensor;
/// Test to see if @c tensor has been set.
@property(nonatomic, readwrite) BOOL hasTensor;

@property(nonatomic, readwrite) int32_t lodLevel;

@property(nonatomic, readwrite) BOOL hasLodLevel;
@end

#pragma mark - VarType_ReaderDesc

typedef GPB_ENUM(VarType_ReaderDesc_FieldNumber) {
  VarType_ReaderDesc_FieldNumber_LodTensorArray = 1,
};

@interface VarType_ReaderDesc : GPBMessage

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<VarType_LoDTensorDesc*> *lodTensorArray;
/// The number of items in @c lodTensorArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger lodTensorArray_Count;

@end

#pragma mark - VarType_ChannelDesc

typedef GPB_ENUM(VarType_ChannelDesc_FieldNumber) {
  VarType_ChannelDesc_FieldNumber_DataType = 1,
  VarType_ChannelDesc_FieldNumber_Capacity = 2,
};

@interface VarType_ChannelDesc : GPBMessage

@property(nonatomic, readwrite) VarType_Type dataType;

@property(nonatomic, readwrite) BOOL hasDataType;
@property(nonatomic, readwrite) int64_t capacity;

@property(nonatomic, readwrite) BOOL hasCapacity;
@end

#pragma mark - VarType_Tuple

typedef GPB_ENUM(VarType_Tuple_FieldNumber) {
  VarType_Tuple_FieldNumber_ElementTypeArray = 1,
};

@interface VarType_Tuple : GPBMessage

// |elementTypeArray| contains |VarType_Type|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *elementTypeArray;
/// The number of items in @c elementTypeArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger elementTypeArray_Count;

@end

#pragma mark - VarDesc

typedef GPB_ENUM(VarDesc_FieldNumber) {
  VarDesc_FieldNumber_Name = 1,
  VarDesc_FieldNumber_Type = 2,
  VarDesc_FieldNumber_Persistable = 3,
};

@interface VarDesc : GPBMessage

@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;

@property(nonatomic, readwrite, strong, null_resettable) VarType *type;
/// Test to see if @c type has been set.
@property(nonatomic, readwrite) BOOL hasType;

@property(nonatomic, readwrite) BOOL persistable;

@property(nonatomic, readwrite) BOOL hasPersistable;
@end

#pragma mark - BlockDesc

typedef GPB_ENUM(BlockDesc_FieldNumber) {
  BlockDesc_FieldNumber_Idx = 1,
  BlockDesc_FieldNumber_ParentIdx = 2,
  BlockDesc_FieldNumber_VarsArray = 3,
  BlockDesc_FieldNumber_OpsArray = 4,
  BlockDesc_FieldNumber_ForwardBlockIdx = 5,
};

@interface BlockDesc : GPBMessage

@property(nonatomic, readwrite) int32_t idx;

@property(nonatomic, readwrite) BOOL hasIdx;
@property(nonatomic, readwrite) int32_t parentIdx;

@property(nonatomic, readwrite) BOOL hasParentIdx;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<VarDesc*> *varsArray;
/// The number of items in @c varsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger varsArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc*> *opsArray;
/// The number of items in @c opsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger opsArray_Count;

@property(nonatomic, readwrite) int32_t forwardBlockIdx;

@property(nonatomic, readwrite) BOOL hasForwardBlockIdx;
@end

#pragma mark - ProgramDesc

typedef GPB_ENUM(ProgramDesc_FieldNumber) {
  ProgramDesc_FieldNumber_BlocksArray = 1,
  ProgramDesc_FieldNumber_Version = 2,
};

/// Please refer to
/// https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/program.md
/// for more details.
/// TODO(panyx0718): A model can have multiple programs. Need a
/// way to distinguish them. Maybe ID or name?
@interface ProgramDesc : GPBMessage

@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<BlockDesc*> *blocksArray;
/// The number of items in @c blocksArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger blocksArray_Count;

@property(nonatomic, readwrite, strong, null_resettable) Version *version;
/// Test to see if @c version has been set.
@property(nonatomic, readwrite) BOOL hasVersion;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)
