import { Transport , TransportRequestOptions , TransportRequestOptionsWithMeta , TransportRequestOptionsWithOutMeta , TransportResult } from '@elastic/transport' ; import * as T from '../types' ; import * as TB from '../typesWithBodyKey' ; interface That { transport : Transport ; } export default class Watcher { transport : Transport ; constructor ( transport ) { this . transport = transport ; } async ackWatch ( this , params , options ? ) ; async ackWatch ( this , params , options ? ) ; async ackWatch ( this , params , options ? ) ; async ackWatch ( this , params , options ? ) { const acceptedPath = [ 'watch_id' , 'action_id' ] ; const querystring = { } ; const body = undefined ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } let method = '' ; let path = '' ; if ( params . watch_id != null && params . action_id != null ) { method = 'PUT' ; path = `/_watcher/watch/${ encodeURIComponent ( params . watch_id . toString ( ) ) }/_ack/${ encodeURIComponent ( params . action_id . toString ( ) ) }` ; } else { method = 'PUT' ; path = `/_watcher/watch/${ encodeURIComponent ( params . watch_id . toString ( ) ) }/_ack` ; } return await this . transport . request ( { path , method , querystring , body } , options ) ; } async activateWatch ( this , params , options ? ) ; async activateWatch ( this , params , options ? ) ; async activateWatch ( this , params , options ? ) ; async activateWatch ( this , params , options ? ) { const acceptedPath = [ 'watch_id' ] ; const querystring = { } ; const body = undefined ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = 'PUT' ; const path = `/_watcher/watch/${ encodeURIComponent ( params . watch_id . toString ( ) ) }/_activate` ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } async deactivateWatch ( this , params , options ? ) ; async deactivateWatch ( this , params , options ? ) ; async deactivateWatch ( this , params , options ? ) ; async deactivateWatch ( this , params , options ? ) { const acceptedPath = [ 'watch_id' ] ; const querystring = { } ; const body = undefined ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = 'PUT' ; const path = `/_watcher/watch/${ encodeURIComponent ( params . watch_id . toString ( ) ) }/_deactivate` ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } async deleteWatch ( this , params , options ? ) ; async deleteWatch ( this , params , options ? ) ; async deleteWatch ( this , params , options ? ) ; async deleteWatch ( this , params , options ? ) { const acceptedPath = [ 'id' ] ; const querystring = { } ; const body = undefined ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = 'DELETE' ; const path = `/_watcher/watch/${ encodeURIComponent ( params . id . toString ( ) ) }` ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } async executeWatch ( this , params ? , options ? ) ; async executeWatch ( this , params ? , options ? ) ; async executeWatch ( this , params ? , options ? ) ; async executeWatch ( this , params ? , options ? ) { const acceptedPath = [ 'id' ] ; const acceptedBody = [ 'action_modes' , 'alternative_input' , 'ignore_condition' , 'record_execution' , 'simulated_actions' , 'trigger_data' , 'watch' ] ; const querystring = { } ; const userBody = params ?. body ; let body ; if ( typeof userBody === 'string' ) { body = userBody ; } else { body = userBody != null ? { ... userBody } : undefined ; } params = params ?? { } ; for ( const key in params ) { if ( acceptedBody . includes ( key ) ) { body = body ?? { } ; body [ key ] = params [ key ] ; } else if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } let method = '' ; let path = '' ; if ( params . id != null ) { method = 'PUT' ; path = `/_watcher/watch/${ encodeURIComponent ( params . id . toString ( ) ) }/_execute` ; } else { method = 'PUT' ; path = '/_watcher/watch/_execute' ; } return await this . transport . request ( { path , method , querystring , body } , options ) ; } async getWatch ( this , params , options ? ) ; async getWatch ( this , params , options ? ) ; async getWatch ( this , params , options ? ) ; async getWatch ( this , params , options ? ) { const acceptedPath = [ 'id' ] ; const querystring = { } ; const body = undefined ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = 'GET' ; const path = `/_watcher/watch/${ encodeURIComponent ( params . id . toString ( ) ) }` ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } async putWatch ( this , params , options ? ) ; async putWatch ( this , params , options ? ) ; async putWatch ( this , params , options ? ) ; async putWatch ( this , params , options ? ) { const acceptedPath = [ 'id' ] ; const acceptedBody = [ 'actions' , 'condition' , 'input' , 'metadata' , 'throttle_period' , 'transform' , 'trigger' ] ; const querystring = { } ; const userBody = params ?. body ; let body ; if ( typeof userBody === 'string' ) { body = userBody ; } else { body = userBody != null ? { ... userBody } : undefined ; } for ( const key in params ) { if ( acceptedBody . includes ( key ) ) { body = body ?? { } ; body [ key ] = params [ key ] ; } else if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = 'PUT' ; const path = `/_watcher/watch/${ encodeURIComponent ( params . id . toString ( ) ) }` ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } async queryWatches ( this , params ? , options ? ) ; async queryWatches ( this , params ? , options ? ) ; async queryWatches ( this , params ? , options ? ) ; async queryWatches ( this , params ? , options ? ) { const acceptedPath = [ ] ; const acceptedBody = [ 'from' , 'size' , 'query' , 'sort' , 'search_after' ] ; const querystring = { } ; const userBody = params ?. body ; let body ; if ( typeof userBody === 'string' ) { body = userBody ; } else { body = userBody != null ? { ... userBody } : undefined ; } params = params ?? { } ; for ( const key in params ) { if ( acceptedBody . includes ( key ) ) { body = body ?? { } ; body [ key ] = params [ key ] ; } else if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = body != null ? 'POST' : 'GET' ; const path = '/_watcher/_query/watches' ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } async start ( this , params ? , options ? ) ; async start ( this , params ? , options ? ) ; async start ( this , params ? , options ? ) ; async start ( this , params ? , options ? ) { const acceptedPath = [ ] ; const querystring = { } ; const body = undefined ; params = params ?? { } ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = 'POST' ; const path = '/_watcher/_start' ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } async stats ( this , params ? , options ? ) ; async stats ( this , params ? , options ? ) ; async stats ( this , params ? , options ? ) ; async stats ( this , params ? , options ? ) { const acceptedPath = [ 'metric' ] ; const querystring = { } ; const body = undefined ; params = params ?? { } ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } let method = '' ; let path = '' ; if ( params . metric != null ) { method = 'GET' ; path = `/_watcher/stats/${ encodeURIComponent ( params . metric . toString ( ) ) }` ; } else { method = 'GET' ; path = '/_watcher/stats' ; } return await this . transport . request ( { path , method , querystring , body } , options ) ; } async stop ( this , params ? , options ? ) ; async stop ( this , params ? , options ? ) ; async stop ( this , params ? , options ? ) ; async stop ( this , params ? , options ? ) { const acceptedPath = [ ] ; const querystring = { } ; const body = undefined ; params = params ?? { } ; for ( const key in params ) { if ( acceptedPath . includes ( key ) ) { continue ; } else if ( key !== 'body' ) { querystring [ key ] = params [ key ] ; } } const method = 'POST' ; const path = '/_watcher/_stop' ; return await this . transport . request ( { path , method , querystring , body } , options ) ; } }