Collection of all external inputs that influenced the build on top of
recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe
type were "make", then this might be the flags passed to make aside from
the target, which is captured in recipe.entryPoint. Since the arguments
field can greatly vary in structure, depending on the builder and recipe
type, this is of form "Any".
Index in materials containing the recipe steps that are not implied by
recipe.type. For example, if the recipe type were "make", then this would
point to the source containing the Makefile, not the make program itself.
Set to -1 if the recipe doesn't come from a material, as zero is default
unset value for int64.
String identifying the entry point into the build.
This is often a path to a configuration file and/or a target label within
that file. The syntax and meaning are defined by recipe.type. For example,
if the recipe type were "make", then this would reference the directory in
which to run make as well as which target to use.
Any other builder-controlled inputs necessary for correctly evaluating the
recipe. Usually only needed for reproducing the build but not evaluated as
part of policy. Since the environment field can greatly vary in structure,
depending on the builder and recipe type, this is of form "Any".
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe latest version of the Grafeas V1 API Recipe is 3.7.0, with previous versions ranging from 3.6.0 down to 2.2.0 also available.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRecipe\u003c/code\u003e class represents the steps taken to build an artifact and is often associated with a TaskRun, where each container corresponds to a step.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRecipe\u003c/code\u003e class implements interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, inheriting from the base \u003ccode\u003eobject\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eKey properties of the \u003ccode\u003eRecipe\u003c/code\u003e class include \u003ccode\u003eArguments\u003c/code\u003e, \u003ccode\u003eDefinedInMaterial\u003c/code\u003e, \u003ccode\u003eEntryPoint\u003c/code\u003e, \u003ccode\u003eEnvironment\u003c/code\u003e, and \u003ccode\u003eType\u003c/code\u003e, which define the build inputs, location of recipe steps, entry point, builder-controlled inputs and recipe type, respectively.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRecipe\u003c/code\u003e class contains multiple constructors such as a parameterless constructor and one that accepts another Recipe as a parameter, enabling the creation of new instances and copies of existing ones.\u003c/p\u003e\n"]]],[],null,["# Grafeas v1 API - Class Recipe (3.10.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.10.0 (latest)](/dotnet/docs/reference/Grafeas.V1/latest/Grafeas.V1.Recipe)\n- [3.8.0](/dotnet/docs/reference/Grafeas.V1/3.8.0/Grafeas.V1.Recipe)\n- [3.7.0](/dotnet/docs/reference/Grafeas.V1/3.7.0/Grafeas.V1.Recipe)\n- [3.6.0](/dotnet/docs/reference/Grafeas.V1/3.6.0/Grafeas.V1.Recipe)\n- [3.5.0](/dotnet/docs/reference/Grafeas.V1/3.5.0/Grafeas.V1.Recipe)\n- [3.4.0](/dotnet/docs/reference/Grafeas.V1/3.4.0/Grafeas.V1.Recipe)\n- [3.3.0](/dotnet/docs/reference/Grafeas.V1/3.3.0/Grafeas.V1.Recipe)\n- [3.2.0](/dotnet/docs/reference/Grafeas.V1/3.2.0/Grafeas.V1.Recipe)\n- [3.1.0](/dotnet/docs/reference/Grafeas.V1/3.1.0/Grafeas.V1.Recipe)\n- [3.0.0](/dotnet/docs/reference/Grafeas.V1/3.0.0/Grafeas.V1.Recipe)\n- [2.4.0](/dotnet/docs/reference/Grafeas.V1/2.4.0/Grafeas.V1.Recipe)\n- [2.3.0](/dotnet/docs/reference/Grafeas.V1/2.3.0/Grafeas.V1.Recipe)\n- [2.2.0](/dotnet/docs/reference/Grafeas.V1/2.2.0/Grafeas.V1.Recipe) \n\n public sealed class Recipe : IMessage\u003cRecipe\u003e, IEquatable\u003cRecipe\u003e, IDeepCloneable\u003cRecipe\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Grafeas v1 API class Recipe.\n\nSteps taken to build the artifact.\nFor a TaskRun, typically each container corresponds to one step in the\nrecipe. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Recipe \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Recipe](/dotnet/docs/reference/Grafeas.V1/latest/Grafeas.V1.Recipe), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Recipe](/dotnet/docs/reference/Grafeas.V1/latest/Grafeas.V1.Recipe), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Recipe](/dotnet/docs/reference/Grafeas.V1/latest/Grafeas.V1.Recipe), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Grafeas.V1](/dotnet/docs/reference/Grafeas.V1/latest/Grafeas.V1)\n\nAssembly\n--------\n\nGrafeas.V1.dll\n\nConstructors\n------------\n\n### Recipe()\n\n public Recipe()\n\n### Recipe(Recipe)\n\n public Recipe(Recipe other)\n\nProperties\n----------\n\n### Arguments\n\n public RepeatedField\u003cAny\u003e Arguments { get; }\n\nCollection of all external inputs that influenced the build on top of\nrecipe.definedInMaterial and recipe.entryPoint. For example, if the recipe\ntype were \"make\", then this might be the flags passed to make aside from\nthe target, which is captured in recipe.entryPoint. Since the arguments\nfield can greatly vary in structure, depending on the builder and recipe\ntype, this is of form \"Any\".\n\n### DefinedInMaterial\n\n public long DefinedInMaterial { get; set; }\n\nIndex in materials containing the recipe steps that are not implied by\nrecipe.type. For example, if the recipe type were \"make\", then this would\npoint to the source containing the Makefile, not the make program itself.\nSet to -1 if the recipe doesn't come from a material, as zero is default\nunset value for int64.\n\n### EntryPoint\n\n public string EntryPoint { get; set; }\n\nString identifying the entry point into the build.\nThis is often a path to a configuration file and/or a target label within\nthat file. The syntax and meaning are defined by recipe.type. For example,\nif the recipe type were \"make\", then this would reference the directory in\nwhich to run make as well as which target to use.\n\n### Environment\n\n public RepeatedField\u003cAny\u003e Environment { get; }\n\nAny other builder-controlled inputs necessary for correctly evaluating the\nrecipe. Usually only needed for reproducing the build but not evaluated as\npart of policy. Since the environment field can greatly vary in structure,\ndepending on the builder and recipe type, this is of form \"Any\".\n\n### Type\n\n public string Type { get; set; }\n\nURI indicating what type of recipe was performed. It determines the meaning\nof recipe.entryPoint, recipe.arguments, recipe.environment, and materials."]]