public IChallengeHandler GetHandler(Challenge c, IReadOnlyDictionary<string, object> initParams)
{
var h = new AwsRoute53ChallengeHandler();
if (initParams == null)
initParams = new Dictionary<string, object>();
// Required params
if (!initParams.ContainsKey(HOSTED_ZONE_ID.Name))
throw new KeyNotFoundException($"missing required parameter [{HOSTED_ZONE_ID.Name}]");
h.HostedZoneId = (string) initParams[HOSTED_ZONE_ID.Name];
// Optional params
if (initParams.ContainsKey(RR_TYPE.Name))
h.ResourceRecordType = (string)initParams[RR_TYPE.Name];
if (initParams.ContainsKey(RR_TTL.Name))
h.ResourceRecordTtl = (int)initParams[RR_TTL.Name];
// Process the common params
h.CommonParams.InitParams(initParams);
return h;
}