diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher._constructor_.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher._constructor_.md
index d36ebd0745e8d..214c795fda9d1 100644
--- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher._constructor_.md
+++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher._constructor_.md
@@ -9,12 +9,13 @@ Constructs a new instance of the `IndexPatternsFetcher` class
 <b>Signature:</b>
 
 ```typescript
-constructor(callDataCluster: LegacyAPICaller);
+constructor(elasticsearchClient: ElasticsearchClient, allowNoIndices?: boolean);
 ```
 
 ## Parameters
 
 |  Parameter | Type | Description |
 |  --- | --- | --- |
-|  callDataCluster | <code>LegacyAPICaller</code> |  |
+|  elasticsearchClient | <code>ElasticsearchClient</code> |  |
+|  allowNoIndices | <code>boolean</code> |  |
 
diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.getfieldsforwildcard.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.getfieldsforwildcard.md
index 52382372d6d96..addd29916d81d 100644
--- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.getfieldsforwildcard.md
+++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.getfieldsforwildcard.md
@@ -13,7 +13,7 @@ getFieldsForWildcard(options: {
         pattern: string | string[];
         metaFields?: string[];
         fieldCapsOptions?: {
-            allowNoIndices: boolean;
+            allow_no_indices: boolean;
         };
     }): Promise<FieldDescriptor[]>;
 ```
@@ -22,7 +22,7 @@ getFieldsForWildcard(options: {
 
 |  Parameter | Type | Description |
 |  --- | --- | --- |
-|  options | <code>{</code><br/><code>        pattern: string &#124; string[];</code><br/><code>        metaFields?: string[];</code><br/><code>        fieldCapsOptions?: {</code><br/><code>            allowNoIndices: boolean;</code><br/><code>        };</code><br/><code>    }</code> |  |
+|  options | <code>{</code><br/><code>        pattern: string &#124; string[];</code><br/><code>        metaFields?: string[];</code><br/><code>        fieldCapsOptions?: {</code><br/><code>            allow_no_indices: boolean;</code><br/><code>        };</code><br/><code>    }</code> |  |
 
 <b>Returns:</b>
 
diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.md
index f71a702f3381d..3ba3c862bf16a 100644
--- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.md
+++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsfetcher.md
@@ -14,7 +14,7 @@ export declare class IndexPatternsFetcher
 
 |  Constructor | Modifiers | Description |
 |  --- | --- | --- |
-|  [(constructor)(callDataCluster)](./kibana-plugin-plugins-data-server.indexpatternsfetcher._constructor_.md) |  | Constructs a new instance of the <code>IndexPatternsFetcher</code> class |
+|  [(constructor)(elasticsearchClient, allowNoIndices)](./kibana-plugin-plugins-data-server.indexpatternsfetcher._constructor_.md) |  | Constructs a new instance of the <code>IndexPatternsFetcher</code> class |
 
 ## Methods
 
diff --git a/src/plugins/data/server/index_patterns/fetcher/index_patterns_fetcher.ts b/src/plugins/data/server/index_patterns/fetcher/index_patterns_fetcher.ts
index 4376b39b2123d..e75b8761984ec 100644
--- a/src/plugins/data/server/index_patterns/fetcher/index_patterns_fetcher.ts
+++ b/src/plugins/data/server/index_patterns/fetcher/index_patterns_fetcher.ts
@@ -40,8 +40,8 @@ export class IndexPatternsFetcher {
   private elasticsearchClient: ElasticsearchClient;
   private allowNoIndices: boolean;
 
-  constructor(callDataCluster: ElasticsearchClient, allowNoIndices: boolean = false) {
-    this.elasticsearchClient = callDataCluster;
+  constructor(elasticsearchClient: ElasticsearchClient, allowNoIndices: boolean = false) {
+    this.elasticsearchClient = elasticsearchClient;
     this.allowNoIndices = allowNoIndices;
   }
 
@@ -57,11 +57,11 @@ export class IndexPatternsFetcher {
   async getFieldsForWildcard(options: {
     pattern: string | string[];
     metaFields?: string[];
-    fieldCapsOptions?: { allowNoIndices: boolean };
+    fieldCapsOptions?: { allow_no_indices: boolean };
   }): Promise<FieldDescriptor[]> {
     const { pattern, metaFields, fieldCapsOptions } = options;
     return await getFieldCapabilities(this.elasticsearchClient, pattern, metaFields, {
-      allowNoIndices: fieldCapsOptions ? fieldCapsOptions.allowNoIndices : this.allowNoIndices,
+      allow_no_indices: fieldCapsOptions ? fieldCapsOptions.allow_no_indices : this.allowNoIndices,
     });
   }
 
diff --git a/src/plugins/data/server/index_patterns/fetcher/lib/es_api.test.js b/src/plugins/data/server/index_patterns/fetcher/lib/es_api.test.js
index 8078ea32187b3..fad20a8f0be06 100644
--- a/src/plugins/data/server/index_patterns/fetcher/lib/es_api.test.js
+++ b/src/plugins/data/server/index_patterns/fetcher/lib/es_api.test.js
@@ -32,36 +32,60 @@ describe('server/index_patterns/service/lib/es_api', () => {
     afterEach(() => sandbox.restore());
 
     it('calls indices.getAlias() via callCluster', async () => {
-      const callCluster = sinon.stub();
+      const getAlias = sinon.stub();
+      const callCluster = {
+        indices: {
+          getAlias,
+        },
+        fieldCaps: sinon.stub(),
+      };
+
       await callIndexAliasApi(callCluster);
-      sinon.assert.calledOnce(callCluster);
-      sinon.assert.calledWith(callCluster, 'indices.getAlias');
+      sinon.assert.calledOnce(getAlias);
     });
 
     it('passes indices directly to es api', async () => {
       const football = {};
-      const callCluster = sinon.stub();
+      const getAlias = sinon.stub();
+      const callCluster = {
+        indices: {
+          getAlias,
+        },
+        fieldCaps: sinon.stub(),
+      };
       await callIndexAliasApi(callCluster, football);
-      sinon.assert.calledOnce(callCluster);
-      expect(callCluster.args[0][1].index).toBe(football);
+      sinon.assert.calledOnce(getAlias);
+      expect(getAlias.args[0][0].index).toBe(football);
     });
 
     it('returns the es response directly', async () => {
       const football = {};
-      const callCluster = sinon.stub().returns(football);
+      const getAlias = sinon.stub().returns(football);
+      const callCluster = {
+        indices: {
+          getAlias,
+        },
+        fieldCaps: sinon.stub(),
+      };
       const resp = await callIndexAliasApi(callCluster);
-      sinon.assert.calledOnce(callCluster);
+      sinon.assert.calledOnce(getAlias);
       expect(resp).toBe(football);
     });
 
     it('sets ignoreUnavailable and allowNoIndices params', async () => {
-      const callCluster = sinon.stub();
+      const getAlias = sinon.stub();
+      const callCluster = {
+        indices: {
+          getAlias,
+        },
+        fieldCaps: sinon.stub(),
+      };
       await callIndexAliasApi(callCluster);
-      sinon.assert.calledOnce(callCluster);
+      sinon.assert.calledOnce(getAlias);
 
-      const passedOpts = callCluster.args[0][1];
-      expect(passedOpts).toHaveProperty('ignoreUnavailable', true);
-      expect(passedOpts).toHaveProperty('allowNoIndices', false);
+      const passedOpts = getAlias.args[0][0];
+      expect(passedOpts).toHaveProperty('ignore_unavailable', true);
+      expect(passedOpts).toHaveProperty('allow_no_indices', false);
     });
 
     it('handles errors with convertEsError()', async () => {
@@ -70,9 +94,15 @@ describe('server/index_patterns/service/lib/es_api', () => {
       const convertedError = new Error('convertedError');
 
       sandbox.stub(convertEsErrorNS, 'convertEsError').throws(convertedError);
-      const callCluster = sinon.spy(async () => {
+      const getAlias = sinon.stub(async () => {
         throw esError;
       });
+      const callCluster = {
+        indices: {
+          getAlias,
+        },
+        fieldCaps: sinon.stub(),
+      };
       try {
         await callIndexAliasApi(callCluster, indices);
         throw new Error('expected callIndexAliasApi() to throw');
@@ -91,37 +121,60 @@ describe('server/index_patterns/service/lib/es_api', () => {
     afterEach(() => sandbox.restore());
 
     it('calls fieldCaps() via callCluster', async () => {
-      const callCluster = sinon.stub();
+      const fieldCaps = sinon.stub();
+      const callCluster = {
+        indices: {
+          getAlias: sinon.stub(),
+        },
+        fieldCaps,
+      };
       await callFieldCapsApi(callCluster);
-      sinon.assert.calledOnce(callCluster);
-      sinon.assert.calledWith(callCluster, 'fieldCaps');
+      sinon.assert.calledOnce(fieldCaps);
     });
 
     it('passes indices directly to es api', async () => {
       const football = {};
-      const callCluster = sinon.stub();
+      const fieldCaps = sinon.stub();
+      const callCluster = {
+        indices: {
+          getAlias: sinon.stub(),
+        },
+        fieldCaps,
+      };
       await callFieldCapsApi(callCluster, football);
-      sinon.assert.calledOnce(callCluster);
-      expect(callCluster.args[0][1].index).toBe(football);
+      sinon.assert.calledOnce(fieldCaps);
+      expect(fieldCaps.args[0][0].index).toBe(football);
     });
 
     it('returns the es response directly', async () => {
       const football = {};
-      const callCluster = sinon.stub().returns(football);
+      const fieldCaps = sinon.stub().returns(football);
+      const callCluster = {
+        indices: {
+          getAlias: sinon.stub(),
+        },
+        fieldCaps,
+      };
       const resp = await callFieldCapsApi(callCluster);
-      sinon.assert.calledOnce(callCluster);
+      sinon.assert.calledOnce(fieldCaps);
       expect(resp).toBe(football);
     });
 
     it('sets ignoreUnavailable, allowNoIndices, and fields params', async () => {
-      const callCluster = sinon.stub();
+      const fieldCaps = sinon.stub();
+      const callCluster = {
+        indices: {
+          getAlias: sinon.stub(),
+        },
+        fieldCaps,
+      };
       await callFieldCapsApi(callCluster);
-      sinon.assert.calledOnce(callCluster);
+      sinon.assert.calledOnce(fieldCaps);
 
-      const passedOpts = callCluster.args[0][1];
+      const passedOpts = fieldCaps.args[0][0];
       expect(passedOpts).toHaveProperty('fields', '*');
-      expect(passedOpts).toHaveProperty('ignoreUnavailable', true);
-      expect(passedOpts).toHaveProperty('allowNoIndices', false);
+      expect(passedOpts).toHaveProperty('ignore_unavailable', true);
+      expect(passedOpts).toHaveProperty('allow_no_indices', false);
     });
 
     it('handles errors with convertEsError()', async () => {
@@ -130,9 +183,15 @@ describe('server/index_patterns/service/lib/es_api', () => {
       const convertedError = new Error('convertedError');
 
       sandbox.stub(convertEsErrorNS, 'convertEsError').throws(convertedError);
-      const callCluster = sinon.spy(async () => {
+      const fieldCaps = sinon.spy(async () => {
         throw esError;
       });
+      const callCluster = {
+        indices: {
+          getAlias: sinon.stub(),
+        },
+        fieldCaps,
+      };
       try {
         await callFieldCapsApi(callCluster, indices);
         throw new Error('expected callFieldCapsApi() to throw');
diff --git a/src/plugins/data/server/index_patterns/fetcher/lib/es_api.ts b/src/plugins/data/server/index_patterns/fetcher/lib/es_api.ts
index b23195eefe985..7969324943a9f 100644
--- a/src/plugins/data/server/index_patterns/fetcher/lib/es_api.ts
+++ b/src/plugins/data/server/index_patterns/fetcher/lib/es_api.ts
@@ -19,6 +19,7 @@
 
 import { ElasticsearchClient } from 'kibana/server';
 import { convertEsError } from './errors';
+import { FieldCapsResponse } from './field_capabilities';
 
 export interface IndicesAliasResponse {
   [index: string]: IndexAliasResponse;
@@ -74,10 +75,10 @@ export async function callIndexAliasApi(
 export async function callFieldCapsApi(
   callCluster: ElasticsearchClient,
   indices: string[] | string,
-  fieldCapsOptions: { allowNoIndices: boolean } = { allowNoIndices: false }
+  fieldCapsOptions: { allow_no_indices: boolean } = { allow_no_indices: false }
 ) {
   try {
-    return await callCluster.fieldCaps({
+    return await callCluster.fieldCaps<FieldCapsResponse>({
       index: indices,
       fields: '*',
       ignore_unavailable: true,
diff --git a/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.test.js b/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.test.js
index 0e5757b7b782b..2d860dc8b1843 100644
--- a/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.test.js
+++ b/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.test.js
@@ -48,9 +48,11 @@ describe('index_patterns/field_capabilities/field_capabilities', () => {
   };
 
   const stubDeps = (options = {}) => {
-    const { esResponse = {}, fieldsFromFieldCaps = [], mergeOverrides = identity } = options;
+    const { esResponse = [], fieldsFromFieldCaps = [], mergeOverrides = identity } = options;
 
-    sandbox.stub(callFieldCapsApiNS, 'callFieldCapsApi').callsFake(async () => esResponse);
+    sandbox
+      .stub(callFieldCapsApiNS, 'callFieldCapsApi')
+      .callsFake(async () => ({ body: esResponse }));
     sandbox.stub(readFieldCapsResponseNS, 'readFieldCapsResponse').returns(fieldsFromFieldCaps);
     sandbox.stub(mergeOverridesNS, 'mergeOverrides').callsFake(mergeOverrides);
   };
diff --git a/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.ts b/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.ts
index 5198bd8ac2538..b9e3e8aae0899 100644
--- a/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.ts
+++ b/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.ts
@@ -39,10 +39,10 @@ export async function getFieldCapabilities(
   callCluster: ElasticsearchClient,
   indices: string | string[] = [],
   metaFields: string[] = [],
-  fieldCapsOptions?: { allowNoIndices: boolean }
+  fieldCapsOptions?: { allow_no_indices: boolean }
 ) {
   const esFieldCaps = await callFieldCapsApi(callCluster, indices, fieldCapsOptions);
-  const fieldsFromFieldCapsByName = keyBy(readFieldCapsResponse(esFieldCaps.body.fields), 'name');
+  const fieldsFromFieldCapsByName = keyBy(readFieldCapsResponse(esFieldCaps.body), 'name');
 
   const allFieldsUnsorted = Object.keys(fieldsFromFieldCapsByName)
     .filter((name) => !name.startsWith('_'))
diff --git a/src/plugins/data/server/index_patterns/fetcher/lib/resolve_time_pattern.test.js b/src/plugins/data/server/index_patterns/fetcher/lib/resolve_time_pattern.test.js
index 660e9ec30db6a..87f222aaad89d 100644
--- a/src/plugins/data/server/index_patterns/fetcher/lib/resolve_time_pattern.test.js
+++ b/src/plugins/data/server/index_patterns/fetcher/lib/resolve_time_pattern.test.js
@@ -32,6 +32,11 @@ const TIME_PATTERN = '[logs-]dddd-YYYY.w';
 
 describe('server/index_patterns/service/lib/resolve_time_pattern', () => {
   let sandbox;
+  const esClientMock = {
+    indices: {
+      getAlias: () => ({}),
+    },
+  };
   beforeEach(() => (sandbox = sinon.createSandbox()));
   afterEach(() => sandbox.restore());
 
@@ -39,7 +44,7 @@ describe('server/index_patterns/service/lib/resolve_time_pattern', () => {
     describe('pre request', () => {
       it('uses callIndexAliasApi() fn', async () => {
         sandbox.stub(callIndexAliasApiNS, 'callIndexAliasApi').returns({});
-        await resolveTimePattern(noop, TIME_PATTERN);
+        await resolveTimePattern(esClientMock, TIME_PATTERN);
         sinon.assert.calledOnce(callIndexAliasApi);
       });
 
@@ -49,7 +54,7 @@ describe('server/index_patterns/service/lib/resolve_time_pattern', () => {
 
         sandbox.stub(timePatternToWildcardNS, 'timePatternToWildcard').returns(wildcard);
 
-        await resolveTimePattern(noop, timePattern);
+        await resolveTimePattern(esClientMock, timePattern);
         sinon.assert.calledOnce(timePatternToWildcard);
         expect(timePatternToWildcard.firstCall.args).toEqual([timePattern]);
       });
@@ -61,7 +66,7 @@ describe('server/index_patterns/service/lib/resolve_time_pattern', () => {
         sandbox.stub(callIndexAliasApiNS, 'callIndexAliasApi').returns({});
         sandbox.stub(timePatternToWildcardNS, 'timePatternToWildcard').returns(wildcard);
 
-        await resolveTimePattern(noop, timePattern);
+        await resolveTimePattern(esClientMock, timePattern);
         sinon.assert.calledOnce(callIndexAliasApi);
         expect(callIndexAliasApi.firstCall.args[1]).toBe(wildcard);
       });
@@ -70,13 +75,15 @@ describe('server/index_patterns/service/lib/resolve_time_pattern', () => {
     describe('read response', () => {
       it('returns all aliases names in result.all, ordered by time desc', async () => {
         sandbox.stub(callIndexAliasApiNS, 'callIndexAliasApi').returns({
-          'logs-2016.2': {},
-          'logs-Saturday-2017.1': {},
-          'logs-2016.1': {},
-          'logs-Sunday-2017.1': {},
-          'logs-2015': {},
-          'logs-2016.3': {},
-          'logs-Friday-2017.1': {},
+          body: {
+            'logs-2016.2': {},
+            'logs-Saturday-2017.1': {},
+            'logs-2016.1': {},
+            'logs-Sunday-2017.1': {},
+            'logs-2015': {},
+            'logs-2016.3': {},
+            'logs-Friday-2017.1': {},
+          },
         });
 
         const resp = await resolveTimePattern(noop, TIME_PATTERN);
@@ -94,13 +101,15 @@ describe('server/index_patterns/service/lib/resolve_time_pattern', () => {
 
       it('returns all indices matching the time pattern in matches, ordered by time desc', async () => {
         sandbox.stub(callIndexAliasApiNS, 'callIndexAliasApi').returns({
-          'logs-2016.2': {},
-          'logs-Saturday-2017.1': {},
-          'logs-2016.1': {},
-          'logs-Sunday-2017.1': {},
-          'logs-2015': {},
-          'logs-2016.3': {},
-          'logs-Friday-2017.1': {},
+          body: {
+            'logs-2016.2': {},
+            'logs-Saturday-2017.1': {},
+            'logs-2016.1': {},
+            'logs-Sunday-2017.1': {},
+            'logs-2015': {},
+            'logs-2016.3': {},
+            'logs-Friday-2017.1': {},
+          },
         });
 
         const resp = await resolveTimePattern(noop, TIME_PATTERN);
diff --git a/src/plugins/data/server/server.api.md b/src/plugins/data/server/server.api.md
index f2c8ff5344b9a..221a6a7fb158a 100644
--- a/src/plugins/data/server/server.api.md
+++ b/src/plugins/data/server/server.api.md
@@ -648,7 +648,7 @@ export const indexPatterns: {
 //
 // @public (undocumented)
 export class IndexPatternsFetcher {
-    constructor(callDataCluster: LegacyAPICaller);
+    constructor(elasticsearchClient: ElasticsearchClient, allowNoIndices?: boolean);
     getFieldsForTimePattern(options: {
         pattern: string;
         metaFields: string[];
@@ -659,7 +659,7 @@ export class IndexPatternsFetcher {
         pattern: string | string[];
         metaFields?: string[];
         fieldCapsOptions?: {
-            allowNoIndices: boolean;
+            allow_no_indices: boolean;
         };
     }): Promise<FieldDescriptor[]>;
 }
diff --git a/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.test.js b/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.test.js
index ceae784cf74a6..613f33a47f1f4 100644
--- a/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.test.js
+++ b/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.test.js
@@ -50,7 +50,7 @@ describe('AbstractSearchStrategy', () => {
     expect(fields).toBe(mockedFields);
     expect(req.pre.indexPatternsService.getFieldsForWildcard).toHaveBeenCalledWith({
       pattern: indexPattern,
-      fieldCapsOptions: { allowNoIndices: true },
+      fieldCapsOptions: { allow_no_indices: true },
     });
   });
 
diff --git a/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts b/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts
index 7b62ad310a354..8b16048f0dce0 100644
--- a/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts
+++ b/src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts
@@ -86,7 +86,7 @@ export class AbstractSearchStrategy {
 
     return await indexPatternsService!.getFieldsForWildcard({
       pattern: indexPattern,
-      fieldCapsOptions: { allowNoIndices: true },
+      fieldCapsOptions: { allow_no_indices: true },
     });
   }
 
diff --git a/x-pack/plugins/rollup/server/routes/api/index_patterns/register_fields_for_wildcard_route.ts b/x-pack/plugins/rollup/server/routes/api/index_patterns/register_fields_for_wildcard_route.ts
index 250947d72c5fa..df9907fbf731a 100644
--- a/x-pack/plugins/rollup/server/routes/api/index_patterns/register_fields_for_wildcard_route.ts
+++ b/x-pack/plugins/rollup/server/routes/api/index_patterns/register_fields_for_wildcard_route.ts
@@ -8,6 +8,7 @@ import { keyBy } from 'lodash';
 import { schema } from '@kbn/config-schema';
 import { Field } from '../../../lib/merge_capabilities_with_fields';
 import { RouteDependencies } from '../../../types';
+import type { IndexPatternsFetcher as IndexPatternsFetcherType } from '../../../../../../../src/plugins/data/server';
 
 const parseMetaFields = (metaFields: string | string[]) => {
   let parsedFields: string[] = [];
@@ -23,10 +24,10 @@ const getFieldsForWildcardRequest = async (
   context: any,
   request: any,
   response: any,
-  IndexPatternsFetcher: any
+  IndexPatternsFetcher: typeof IndexPatternsFetcherType
 ) => {
-  const { callAsCurrentUser } = context.core.elasticsearch.legacy.client;
-  const indexPatterns = new IndexPatternsFetcher(callAsCurrentUser);
+  const { asCurrentUser } = context.core.elasticsearch.client;
+  const indexPatterns = new IndexPatternsFetcher(asCurrentUser);
   const { pattern, meta_fields: metaFields } = request.query;
 
   let parsedFields: string[] = [];