github.com/paketo-buildpacks/packit@v1.3.2-0.20211206231111-86b75c657449/build_plan.go (about) 1 package packit 2 3 // BuildPlan is a representation of the Build Plan as specified in the 4 // specification: 5 // https://github.com/buildpacks/spec/blob/main/buildpack.md#build-plan-toml. 6 // The BuildPlan allows buildpacks to indicate what dependencies they provide 7 // or require. 8 type BuildPlan struct { 9 // Provides is a list of BuildPlanProvisions that are provided by this 10 // buildpack. 11 Provides []BuildPlanProvision `toml:"provides"` 12 13 // Requires is a list of BuildPlanRequirements that are required by this 14 // buildpack. 15 Requires []BuildPlanRequirement `toml:"requires"` 16 17 // Or is a list of additional BuildPlans that may be selected by the 18 // lifecycle 19 Or []BuildPlan `toml:"or,omitempty"` 20 } 21 22 // BuildPlanProvision is a representation of a dependency that can be provided 23 // by a buildpack. 24 type BuildPlanProvision struct { 25 // Name is the identifier whereby buildpacks can coordinate that a dependency 26 // is provided or required. 27 Name string `toml:"name"` 28 } 29 30 type BuildPlanRequirement struct { 31 // Name is the identifier whereby buildpacks can coordinate that a dependency 32 // is provided or required. 33 Name string `toml:"name"` 34 35 // Metadata is an unspecified field allowing buildpacks to communicate extra 36 // details about their requirement. Examples of this type of metadata might 37 // include details about what source was used to decide the version 38 // constraint for a requirement. 39 Metadata interface{} `toml:"metadata"` 40 }