# Parameter rendering

The `renderParameters` and `doNotRenderParameters` can be used to specify which configuration parameters should be rendered when doing experiments within a step.

Parameter rendering can be defined at the step level for baseline, preset, and optimize steps. This is not possible for bootstrap steps as bootstrapped experiments are not executed.

| Field                   | Type             | Value restrictions                                                                                                           | Is required | Description                                                                                                                                                                                             |
| ----------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `renderParameters`      | Array of strings | should contain strings in the form `component.parameter` or `component.*`. The latter means every parameter of the component | No          | Which configuration parameters should be rendered or applied when doing experiments/trials in addition to ones in the parameters selection or in the *values* if the step is of type baseline or preset |
| `doNotRenderParameters` | Array of strings | should contain strings in the form `component.parameter` or `component.*`. The latter means every parameter of the component | No          | Which configuration parameters should not be rendered or applied when doing experiments/trials                                                                                                          |

### Examples

The following *baseline* step specifies that every parameter of the component 'os' should not be rendered while the parameter 'cpu\_limit' of the component 'docker' should be rendered:

```yaml
name: "mybaseline"
type: "baseline"
values: # every parameter in 'values' is rendered by default
  jvm.jvm_compilation_threads: 10
  jvm.jvm_gcType: -XX:+UseG1GC
doNotRenderParameters: ["os.*"] # every parameter of the component 'os' will not be rendered
renderParameters: ["docker.cpu_limit"] # the parameter 'cpu_limit' of the component 'docker' will be rendered
```

The following *preset* step specifies that the parameter 'cpu\_limit' of the component 'docker' should be rendered:

```yaml
name: "mypreset"
type: "preset"
values:
  jvm.jvm_compilation_threads: 10
  jvm.jvm_gcType: -XX:+UseG1GC
renderParameters: ["docker.cpu_limit"] # the parameter 'cpu_limit' of the component 'docker' will be rendered
```

The following *optimize* step specifies that every parameter of the component 'os' should not be rendered:

```yaml
name: "myoptimize"
type: "optimize"
numberOfExperiment: 200
doNotRenderParameters: ["os.*"] # every parameter of the component 'os' will not be rendered
```
