docs: def get_auth_scope(cls, instance_config):
          """
          Parse authorization scope out of init_config
  
          To guarantee a uniquely identifiable scope, expects either:
          {'project': {'name': 'my_project', 'domain': {'id': 'my_domain_id'}}}
          OR
          {'project': {'id': 'my_project_id'}}
          """
          auth_scope = instance_config.get('auth_scope')
          if not auth_scope:
              return None
  
          if not auth_scope.get('project'):
              raise IncompleteAuthScope()
  
          if auth_scope['project'].get('name'):
              # We need to add a domain scope to avoid name clashes. Search for one. If not raise IncompleteAuthScope
              if not auth_scope['project'].get('domain', {}).get('id'):
                  raise IncompleteAuthScope()
          else:
              # Assume a unique project id has been given
              if not auth_scope['project'].get('id'):
                  raise IncompleteAuthScope()
  
          return auth_scope