# How to use DTOs in new java client with ILM

**URL:** <https://discuss.elastic.co/t/how-to-use-dtos-in-new-java-client-with-ilm/323511>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [January 19, 2023, 12:36pm UTC](https://discuss.elastic.co/t/how-to-use-dtos-in-new-java-client-with-ilm/323511 "2023-01-19T12:36:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bilak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bilak/32/116075_2.png) [@bilak](https://discuss.elastic.co/u/bilak)\
**Post date:** [January 19, 2023, 12:36pm UTC](https://discuss.elastic.co/t/how-to-use-dtos-in-new-java-client-with-ilm/323511/1 "2023-01-19T12:36:46Z")

</div>

I'm using 7.17 client and I'd like to build ILM from java.

This is what I've tried:

```auto
final RolloverConditions rollover = new RolloverConditions.Builder()
        .maxSize("4GB")
        .maxAge(t -> t.time("1D"))
        .build();
PutLifecycleRequest.of(it ->
        it.name("ILM")
                .policy(policy -> policy.phases(
                        phases -> phases.hot(hot ->
                                hot.actions(JsonData.of(rollover)))
                )));

```

However it fails because the rollover isn't properly serialised. What is the proper way to add one or more actions to ILM phases?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 16, 2023, 12:37pm UTC](https://discuss.elastic.co/t/how-to-use-dtos-in-new-java-client-with-ilm/323511/2 "2023-02-16T12:37:29Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
