code: def env(self, value):
      
      env_valid(value)
      self._env_full = value
      if value.find(".") == -1:
        # plain environment, e.g. prod, staging, proto<n>
        self._env = value
        self._account_alias = get_account_alias(value)
      else:
        # "<env>.<account_alias>" form, e.g. global.ellationeng or mgmt.ellationeng
        self._env, self._account_alias = value.split(".")
        # since we extracted an env, must reconfirm that it's legit
        global_env_valid(self._env)
      self._env_short = get_env_short(value)
docs: Sets context.env, context.env_short, and context.account_alias if env is valid
      For envs of the form "global.<account>" and "mgmt.<account_alias>",
      env is captured as "global" or "mgmt" and account_alias is parsed
      out of the full env rather than looked up
      Args:
        value: the fully-qualified env value
      Raises:
        ValueError if env is not valid