public function xSaveAction($zoneId, $policy, $healthId, $dnsName, $action, $aliasZoneId, $evaluateTargetHealth, $name, $type, $ttl, $weight, $setIdentifier, $region, $failover, JsonData $resourceRecord)
{
$this->request->restrictAccess(Acl::RESOURCE_AWS_ROUTE53, Acl::PERM_AWS_ROUTE53_MANAGE);
$rrsRequest = new ChangeRecordSetsRequestData();
$rrsCnahgeList = new ChangeRecordSetList();
$rrsCnahgeListData = new ChangeRecordSetData($action);
$rrsData = new RecordSetData($name, $type, null, !empty($healthId) ? $healthId : null);
if (!empty($dnsName)) {
$alias = new AliasTargetData();
$alias->zoneId = $aliasZoneId;
$alias->dnsName = $dnsName;
$alias->evaluateTargetHealth = strtolower($evaluateTargetHealth);
$rrsData->setAliasTarget($alias);
} else {
$rrsData->ttl = $ttl;
$recordList = new RecordList();
foreach ($resourceRecord as $value) {
$recordData = new RecordData($value);
$recordList->append($recordData);
}
$rrsData->setResourceRecord($recordList);
}
if ('weight' == $policy) {
$rrsData->weight = $weight;
}
if ('simple' != $policy) {
$rrsData->setIdentifier = $setIdentifier;
}
if ('region' == $policy) {
$rrsData->region = $region;
}
if ('failover' == $policy) {
$rrsData->failover = strtoupper($failover);
}
$rrsCnahgeListData->setRecordSet($rrsData);
$rrsCnahgeList->append($rrsCnahgeListData);
$rrsRequest->setChange($rrsCnahgeList);
$response = $this->getAws()->route53->record->update($zoneId, $rrsRequest);
$this->response->data(['data' => $response]);
}