Class SmithyBuildConfig

java.lang.Object
software.amazon.smithy.build.model.SmithyBuildConfig
All Implemented Interfaces:
software.amazon.smithy.utils.ToSmithyBuilder<SmithyBuildConfig>

public final class SmithyBuildConfig extends Object implements software.amazon.smithy.utils.ToSmithyBuilder<SmithyBuildConfig>
Filter configuration that contains a list of named projections that are used to apply filters to a model.
  • Method Details

    • fromNode

      public static SmithyBuildConfig fromNode(software.amazon.smithy.model.node.Node node)
    • builder

      public static SmithyBuildConfig.Builder builder()
      Returns:
      Creates a builder used to build a SmithyBuildConfig.
    • load

      public static SmithyBuildConfig load(Path file)
      Loads a SmithyBuildConfig from a JSON file on disk.

      The file is expected to contain the following structure: { "version": "1.0", "imports": ["foo.json", "baz.json"], "outputDirectory": "build/output", "projections": { "projection-name": { "transforms": [ {"name": "transform-name", "args": ["argument1", "argument2", "..."]}, {"name": "other-transform"} }, "plugins": { "plugin-name": { "plugin-config": "value" }, "...": {} } } }, "plugins": { "plugin-name": { "plugin-config": "value" }, "...": {} } }

      Parameters:
      file - File to load and parse.
      Returns:
      Returns the loaded FileConfig.
      Throws:
      RuntimeException - if the file cannot be loaded.
    • toBuilder

      public SmithyBuildConfig.Builder toBuilder()
      Specified by:
      toBuilder in interface software.amazon.smithy.utils.ToSmithyBuilder<SmithyBuildConfig>
    • getVersion

      public String getVersion()
      Gets the version of Smithy-Build.
      Returns:
      Returns the version.
    • getImports

      public List<String> getImports()
      Gets the paths to all of the models to import.

      Paths can point to individual model files or directories. All models stored in all recursive directories will be imported.

      Returns:
      Gets the list of models to import.
    • getOutputDirectory

      public Optional<String> getOutputDirectory()
      Returns:
      Gets the optional output directory to store artifacts.
    • getProjections

      public Map<String,ProjectionConfig> getProjections()
      Gets all of the configured projections.
      Returns:
      Gets the available projections as a map of name to config.
    • getPlugins

      public Map<String,software.amazon.smithy.model.node.ObjectNode> getPlugins()
      Gets the globally configured plugins that are applied to every projection.
      Returns:
      Gets plugin settings.
    • isIgnoreMissingPlugins

      public boolean isIgnoreMissingPlugins()
      If a plugin can't be found, Smithy will by default fail the build. This setting can be set to true to allow the build to progress even if there is a missing plugin.
      Returns:
      Returns true if missing build plugins are allowed.