code: def absent(name=None, canonical=None, **api_opts):
      '''
      Ensure the CNAME with the given name or canonical name is removed
      '''
      ret = {'name': name, 'result': False, 'comment': '', 'changes': {}}
      obj = __salt__['infoblox.get_cname'](name=name, canonical=canonical, **api_opts)
  
      if not obj:
          ret['result'] = True
          ret['comment'] = 'infoblox already removed'
          return ret
  
      if __opts__['test']:
          ret['result'] = None
          ret['changes'] = {'old': obj, 'new': 'absent'}
          return ret
  
      if __salt__['infoblox.delete_cname'](name=name, canonical=canonical, **api_opts):
          ret['result'] = True
          ret['changes'] = {'old': obj, 'new': 'absent'}
      return ref absent(name=None, canonical=None, **api_opts):
      '''
      Ensure the CNAME with the given name or canonical name is removed
      '''
      ret = {'name': name, 'result': False, 'comment': '', 'changes': {}}
      obj = __salt__['infoblox.get_cname'](name=name, canonical=canonical, **api_opts)
  
      if not obj:
          ret['result'] = True
          ret['comment'] = 'infoblox already removed'
          return ret
  
      if __opts__['test']:
          ret['result'] = None
          ret['changes'] = {'old': obj, 'new': 'absent'}
          return ret
  
      if __salt__['infoblox.delete_cname'](name=name, canonical=canonical, **api_opts):
          ret['result'] = True
          ret['changes'] = {'old': obj, 'new': 'absent'}
      return ret
docs: Ensure the CNAME with the given name or canonical name is removed