Currently it is possible to migrate an existing data stream to a time series data stream.
This is done by updating the index template that created the data stream. 
Then after a rollover the data stream is a time series data stream. 

Via a similar way it should be possible to change time series data stream back 
to a regular data stream. Currently when changing the `index.mode` setting
on an index template from `time_series` to `standard` (or removing the setting)
results in a validation error.
server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamTests.java
@Override
    protected DataStream doParseInstance(XContentParser parser) throws IOException {
        return DataStream.fromXContent(parser);
    }
    @Override
    protected Writeable.Reader<DataStream> instanceReader() {
        return DataStream::new;
    }
    @Override
    protected DataStream createTestInstance() {
        return DataStreamTestHelper.randomInstance();
    }
    public void testRollover() {
        DataStream ds = DataStreamTestHelper.randomInstance().promoteDataStream();
        Tuple<String, Long> newCoordinates = ds.nextWriteIndexAndGeneration(Metadata.EMPTY_METADATA);
        final DataStream rolledDs = ds.rollover(new Index(newCoordinates.v1(), UUIDs.randomBase64UUID()), newCoordinates.v2(), false);
        assertThat(rolledDs.getName(), equalTo(ds.getName()));
        assertThat(rolledDs.getTimeStampField(), equalTo(ds.getTimeStampField()));
        assertThat(rolledDs.getGeneration(), equalTo(ds.getGeneration() + 1));
        assertThat(rolledDs.getIndices().size(), equalTo(ds.getIndices().size() + 1));
        assertTrue(rolledDs.getIndices().containsAll(ds.getIndices()));
        assertTrue(rolledDs.getIndices().contains(rolledDs.getWriteIndex()));
    }
    public void testRolloverWithConflictingBackingIndexName() {
        
        DataStream ds = DataStreamTestHelper.randomInstance(() -> 0L).promoteDataStream();