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  }