public Policy WithPolicyKey(String policyKey)
{
if (_policyKey != null) throw new ArgumentException("For thread-safety reasons, PolicyKey cannot be set more than once on a Policy instance; or if the default value is being used, cannot be set after the PolicyKey property has been accessed.", nameof(policyKey));
_policyKey = policyKey;
return this;
}