docs: def schema_completer(prefix):
      """ For tab-completion via argcomplete, return completion options.
  
      For the given prefix so far, return the possible options.  Note that
      filtering via startswith happens after this list is returned.
      """
      from c7n import schema
      load_resources()
      components = prefix.split('.')
  
      if components[0] in provider.clouds.keys():
          cloud_provider = components.pop(0)
          provider_resources = provider.resources(cloud_provider)
      else:
          cloud_provider = 'aws'
          provider_resources = provider.resources('aws')
          components[0] = "aws.%s" % components[0]
  
      # Completions for resource
      if len(components) == 1:
          choices = [r for r in provider.resources().keys()
                     if r.startswith(components[0])]
          if len(choices) == 1:
              choices += ['{}{}'.format(choices[0], '.')]
          return choices
  
      if components[0] not in provider_resources.keys():
          return []
  
      # Completions for category
      if len(components) == 2:
          choices = ['{}.{}'.format(components[0], x)
                     for x in ('actions', 'filters') if x.startswith(components[1])]
          if len(choices) == 1:
              choices += ['{}{}'.format(choices[0], '.')]
          return choices
  
      # Completions for item
      elif len(components) == 3:
          resource_mapping = schema.resource_vocabulary(cloud_provider)
          return ['{}.{}.{}'.format(components[0], components[1], x)
                  for x in resource_mapping[components[0]][components[1]]]
  
      return []