# kheops.plugin package

## Subpackages

- kheops.plugin.backend package
  - Submodules
  - kheops.plugin.backend.file module
- kheops.plugin.scope package
  - Submodules
  - kheops.plugin.scope.hier module
  - kheops.plugin.scope.loop module
- kheops.plugin.strategy package
  - Submodules
  - kheops.plugin.strategy.last module
  - kheops.plugin.strategy.merge_deep module
  - kheops.plugin.strategy.merge_schema module

## Submodules

## kheops.plugin.common module

Common libraries for plugins

class kheops.plugin.common.BackendCandidate(path=None, data=None, run=None, status=None)

  Bases: `object`

  Represent a backend candidate

class kheops.plugin.common.BackendPlugin(namespace)

  Bases: `kheops.plugin.common.KheopsItemPlugin`

  fetch_data(config) → list
  plugin_kind = 'backend'
  schema_prop = {'backend': {}, 'consul': {}, 'file': {}, 'glob': {}, 'http': {}, 'vault': {}}

class kheops.plugin.common.ConfPlugin

  Bases: `kheops.plugin.common.KheopsListPlugin`

  plugin_kind = 'conf'
  process_list(item_list) → list
  schema_prop = {'include': {}}

class kheops.plugin.common.KheopsItemPlugin

  Bases: `kheops.plugin.common.KheopsPlugin`

  plugin_type = 'item'
  process_item(item) → list

class kheops.plugin.common.KheopsListPlugin

  Bases: `kheops.plugin.common.KheopsPlugin`

  plugin_type = 'list'
  process_list(item_list) → list

class kheops.plugin.common.KheopsPlugin

  Bases: `object`

  plugin_kind = None
  plugin_name = None
  plugin_type = None

class kheops.plugin.common.OutPlugin

  Bases: `kheops.plugin.common.KheopsItemPlugin`

  plugin_kind = 'out'
  process_item(item) → list
  schema_prop = {'_out': {}, 'toml': {}, 'validate': {}}

class kheops.plugin.common.ScopeExtLoop

  Bases: `object`

  This Scope Extension allow to loop over a lookup

  loop_over(lookups, conf, module_name, var_name='item', callback_context=None, callback=None)
  schema_props = {'properties': {'data': {'anyOf': [{'type': 'null'}, {'type': 'string'}, {'type': 'array'}], 'default': None}, 'var': {'default': 'item', 'optional': True, 'type': 'string'}}}

class kheops.plugin.common.ScopePlugin(namespace)

  Bases: `kheops.plugin.common.KheopsListPlugin`

  plugin_kind = 'scope'
  process_item(item_list) → list
  schema_prop = {'_scope': [], 'hier_N': {}, 'init': {}, 'loop_N': {}}

class kheops.plugin.common.StrategyPlugin(namespace)

  Bases: `kheops.plugin.common.KheopsItemPlugin`

  merge_results(candidates, rule) → list
  plugin_kind = 'strategy'
  schema_prop = {'_strategy': {}, 'first': {}, 'last': {}, 'merge': {}, 'schema': {}, 'smart': {}}