**Build scan:**
https://gradle-enterprise.elastic.co/s/mktkeldqraxy4/tests/:modules:data-streams:yamlRestTest/org.elasticsearch.datastreams.DataStreamsClientYamlTestSuiteIT/test%20%7Bp0=data_stream%2F190_managed_by_data_lifecycle%2FCreate%20data%20stream%20with%20lifecycle%7D

**Reproduction line:**
```
./gradlew ':modules:data-streams:yamlRestTest' --tests "org.elasticsearch.datastreams.DataStreamsClientYamlTestSuiteIT.test {p0=data_stream/190_managed_by_data_lifecycle/Create data stream with lifecycle}" -Dtests.seed=A79B43794A438CC -Dbuild.snapshot=false -Dtests.jvm.argline="-Dbuild.snapshot=false" -Dtests.locale=ar-KW -Dtests.timezone=Japan -Druntime.java=17
```

**Applicable branches:**
main

**Reproduces locally?:**
No

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.datastreams.DataStreamsClientYamlTestSuiteIT&tests.test=test%20%7Bp0%3Ddata_stream/190_managed_by_data_lifecycle/Create%20data%20stream%20with%20lifecycle%7D

**Failure excerpt:**
```
java.lang.AssertionError: Failure at [data_stream/190_managed_by_data_lifecycle:6]: expected [2xx] status code but api [indices.put_index_template] returned [400 Bad Request] [---
error:
  root_cause:
  - type: "x_content_parse_exception"
    reason: "[3:3] [template] unknown field [lifecycle]"
    stack_trace: "org.elasticsearch.ElasticsearchException$1: [3:3] [template] unknown\
      \ field [lifecycle]\n\tat org.elasticsearch.server@8.8.0/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:640)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:636)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:568)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestResponse.build(RestResponse.java:175)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:123)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter$1.<init>(SecurityRestFilter.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleException(SecurityRestFilter.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:119)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$2(SecondaryAuthenticator.java:84)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:94)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:78)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$2(SecurityRestFilter.java:111)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$MappedActionListener.onResponse(ActionListener.java:132)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$RunBeforeActionListener.onResponse(ActionListener.java:450)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$7.onResponse(ActionListener.java:556)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.writeAuthToContext(AuthenticatorChain.java:346)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.finishAuthentication(AuthenticatorChain.java:325)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.maybeLookupRunAsUser(AuthenticatorChain.java:202)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$doAuthenticate$1(AuthenticatorChain.java:121)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$4(AuthenticatorChain.java:188)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$5(RealmsAuthenticator.java:218)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:31)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$1(RealmsAuthenticator.java:163)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$1(CachingUsernamePasswordRealm.java:155)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.handleCachedAuthentication(CachingUsernamePasswordRealm.java:242)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$2(CachingUsernamePasswordRealm.java:139)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener.completeWith(ActionListener.java:520)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.common.util.concurrent.ListenableFuture.notifyListenerDirectly(ListenableFuture.java:125)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.common.util.concurrent.ListenableFuture.addListener(ListenableFuture.java:69)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticateWithCache(CachingUsernamePasswordRealm.java:134)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticate(CachingUsernamePasswordRealm.java:105)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$4(RealmsAuthenticator.java:147)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.consumeToken(RealmsAuthenticator.java:234)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.authenticate(RealmsAuthenticator.java:83)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:180)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.doAuthenticate(AuthenticatorChain.java:136)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.authenticateAsync(AuthenticatorChain.java:95)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:260)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:149)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:127)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:105)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:415)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:545)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:316)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:379)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:460)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:353)\n\
      \tat org.elasticsearch.transport.netty4@8.8.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
      \tat org.elasticsearch.transport.netty4@8.8.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n\
      \tat io.netty.common@4.1.86.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
      \tat io.netty.common@4.1.86.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
      \tat java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: org.elasticsearch.xcontent.XContentParseException:\
      \ [3:3] [template] unknown field [lifecycle]\n\tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareField$10(ObjectParser.java:431)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:609)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:103)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:43)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:127)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:117)\n\
      \t... 97 more\n"
  type: "x_content_parse_exception"
  reason: "[4:5] [index_template] failed to parse field [template]"
  caused_by:
    type: "x_content_parse_exception"
    reason: "[3:3] [template] unknown field [lifecycle]"
    stack_trace: "org.elasticsearch.xcontent.XContentParseException: [3:3] [template]\
      \ unknown field [lifecycle]\n\tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareField$10(ObjectParser.java:431)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:609)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
      \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:103)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:43)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:127)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:117)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$2(SecondaryAuthenticator.java:84)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:94)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:78)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$2(SecurityRestFilter.java:111)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$MappedActionListener.onResponse(ActionListener.java:132)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$RunBeforeActionListener.onResponse(ActionListener.java:450)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$7.onResponse(ActionListener.java:556)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.writeAuthToContext(AuthenticatorChain.java:346)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.finishAuthentication(AuthenticatorChain.java:325)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.maybeLookupRunAsUser(AuthenticatorChain.java:202)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$doAuthenticate$1(AuthenticatorChain.java:121)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$4(AuthenticatorChain.java:188)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$5(RealmsAuthenticator.java:218)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:31)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$1(RealmsAuthenticator.java:163)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$1(CachingUsernamePasswordRealm.java:155)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.handleCachedAuthentication(CachingUsernamePasswordRealm.java:242)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$2(CachingUsernamePasswordRealm.java:139)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener.completeWith(ActionListener.java:520)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.common.util.concurrent.ListenableFuture.notifyListenerDirectly(ListenableFuture.java:125)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.common.util.concurrent.ListenableFuture.addListener(ListenableFuture.java:69)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticateWithCache(CachingUsernamePasswordRealm.java:134)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticate(CachingUsernamePasswordRealm.java:105)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$4(RealmsAuthenticator.java:147)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.consumeToken(RealmsAuthenticator.java:234)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.authenticate(RealmsAuthenticator.java:83)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:180)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
      \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.doAuthenticate(AuthenticatorChain.java:136)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.authenticateAsync(AuthenticatorChain.java:95)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:260)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:149)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:127)\n\
      \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:105)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:415)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:545)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:316)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:379)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:460)\n\
      \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:353)\n\
      \tat org.elasticsearch.transport.netty4@8.8.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
      \tat org.elasticsearch.transport.netty4@8.8.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652)\n\
      \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n\
      \tat io.netty.common@4.1.86.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
      \tat io.netty.common@4.1.86.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
      \tat java.base/java.lang.Thread.run(Thread.java:833)\n"
  stack_trace: "org.elasticsearch.xcontent.XContentParseException: [4:5] [index_template]\
    \ failed to parse field [template]\n\tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.throwFailedToParse(ObjectParser.java:616)\n\
    \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:611)\n\
    \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
    \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
    \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:103)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:43)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:127)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:117)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$2(SecondaryAuthenticator.java:84)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:94)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:78)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$2(SecurityRestFilter.java:111)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$MappedActionListener.onResponse(ActionListener.java:132)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$RunBeforeActionListener.onResponse(ActionListener.java:450)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$7.onResponse(ActionListener.java:556)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.writeAuthToContext(AuthenticatorChain.java:346)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.finishAuthentication(AuthenticatorChain.java:325)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.maybeLookupRunAsUser(AuthenticatorChain.java:202)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$doAuthenticate$1(AuthenticatorChain.java:121)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$4(AuthenticatorChain.java:188)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$5(RealmsAuthenticator.java:218)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:31)\n\
    \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$1(RealmsAuthenticator.java:163)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$1(CachingUsernamePasswordRealm.java:155)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.handleCachedAuthentication(CachingUsernamePasswordRealm.java:242)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$2(CachingUsernamePasswordRealm.java:139)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener$3.onResponse(ActionListener.java:296)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.action.ActionListener.completeWith(ActionListener.java:520)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.common.util.concurrent.ListenableFuture.notifyListenerDirectly(ListenableFuture.java:125)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.common.util.concurrent.ListenableFuture.addListener(ListenableFuture.java:69)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticateWithCache(CachingUsernamePasswordRealm.java:134)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticate(CachingUsernamePasswordRealm.java:105)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$4(RealmsAuthenticator.java:147)\n\
    \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.consumeToken(RealmsAuthenticator.java:234)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.authenticate(RealmsAuthenticator.java:83)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:180)\n\
    \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
    \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
    \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\
    \tat org.elasticsearch.xcore@8.8.0/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.doAuthenticate(AuthenticatorChain.java:136)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.authenticateAsync(AuthenticatorChain.java:95)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:260)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:149)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:127)\n\
    \tat org.elasticsearch.security@8.8.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:105)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:415)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:545)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:316)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:379)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:460)\n\
    \tat org.elasticsearch.server@8.8.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:353)\n\
    \tat org.elasticsearch.transport.netty4@8.8.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
    \tat org.elasticsearch.transport.netty4@8.8.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
    \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)\n\
    \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.86.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652)\n\
    \tat io.netty.transport@4.1.86.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n\
    \tat io.netty.common@4.1.86.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
    \tat io.netty.common@4.1.86.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
    \tat java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: org.elasticsearch.xcontent.XContentParseException:\
    \ [3:3] [template] unknown field [lifecycle]\n\tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
    \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
    \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
    \tat org.elasticsearch.xcontent@8.8.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareF...
```
rest-api-spec/src/yamlRestTest/java/org/elasticsearch/test/rest/ClientYamlTestSuiteIT.java
/*
 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 * or more contributor license agreements. Licensed under the Elastic License
 * 2.0 and the Server Side Public License, v 1; you may not use this file except
 * in compliance with, at your election, the Elastic License 2.0 or the Server
 * Side Public License, v 1.
 */
package org.elasticsearch.test.rest;
import com.carrotsearch.randomizedtesting.annotations.Name;
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
import org.apache.lucene.tests.util.TimeUnits;
import org.elasticsearch.test.cluster.ElasticsearchCluster;
import org.elasticsearch.test.cluster.FeatureFlag;
import org.elasticsearch.test.rest.yaml.ClientYamlTestCandidate;
import org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase;
import org.junit.ClassRule;
@TimeoutSuite(millis = 40 * TimeUnits.MINUTE)