// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/framework/function.proto

module tensorflow.function_;

import google.protobuf;
import tensorflow.attr_value;
import tensorflow.node_def;
import tensorflow.op_def;

enum protocVersion = 3012004;

class FunctionDefLibrary
{
    @Proto(1) FunctionDef[] function_ = protoDefaultValue!(FunctionDef[]);
    @Proto(2) GradientDef[] gradient = protoDefaultValue!(GradientDef[]);
}

class FunctionDef
{
    @Proto(1) OpDef signature = protoDefaultValue!(OpDef);
    @Proto(3) NodeDef[] nodeDef = protoDefaultValue!(NodeDef[]);
    @Proto(4) string[string] ret = protoDefaultValue!(string[string]);
    @Proto(5) AttrValue[string] attr = protoDefaultValue!(AttrValue[string]);
    @Proto(6) string[string] controlRet = protoDefaultValue!(string[string]);
    @Proto(7) FunctionDef.ArgAttrs[uint] argAttr = protoDefaultValue!(FunctionDef.ArgAttrs[uint]);

    static class ArgAttrs
    {
        @Proto(1) AttrValue[string] attr = protoDefaultValue!(AttrValue[string]);
    }
}

class GradientDef
{
    @Proto(1) string functionName = protoDefaultValue!(string);
    @Proto(2) string gradientFunc = protoDefaultValue!(string);
}