I\'ve heard some people saying that enums are evil and shouldn\'t be used in web services because of the mismatches that could occur between the server and the client if som
The reason people recommend to avoid enums in webservices is because they create subtle backwards compatible problems.
The same applies to regular enums but in web services the problem is even more clear specially in .NET-generated proxies (see below).
By defining the parameter as a string you signal the user of your API that the value may change in the future. Even if you think that the value will never change is a good practice to be ready.
There is a good post by Dare Obasanjo on this topic.