Change the get data stream api to include the following properties of a data stream:

- ~~Add `index_mode` from `DataStream` to the response.~~
- For each backing index of a data stream with time series index mode, include the temporal range the backing index represents (based on the `index.time_series.start_time` and `index.time_series.end_time` index settings.
modules/data-streams/src/main/java/org/elasticsearch/datastreams/action/GetDataStreamsTransportAction.java
+ "from a snapshot?",
                        dataStream.getName()
                    );
                }
            }
            ClusterStateHealth streamHealth = new ClusterStateHealth(
                state,
                dataStream.getIndices().stream().map(Index::getName).toArray(String[]::new)
            );
            dataStreamInfos.add(
                new GetDataStreamAction.Response.DataStreamInfo(dataStream, streamHealth.getStatus(), indexTemplate, ilmPolicyName)
            );
        }
        listener.onResponse(new GetDataStreamAction.Response(dataStreamInfos));
    }
    static List<DataStream> getDataStreams(
        ClusterState clusterState,
        IndexNameExpressionResolver iner,
        GetDataStreamAction.Request request
    ) {
        List<String> results = DataStreamsActionUtil.getDataStreamNames(iner, clusterState, request.getNames(), request.indicesOptions());
        Map<String, DataStream> dataStreams = clusterState.metadata().dataStreams();
        return results.stream().map(dataStreams::get).sorted(Comparator.comparing(DataStream::getName)).toList();
    }
    @Override
    protected ClusterBlockException checkBlock(GetDataStreamAction.Request request, ClusterState state) {
        return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE);
    }
}