// Copyright 2017 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

{namespace domain.registry.tools}

/**
 * Uniform Rapid Suspension
 */
{template .uniformrapidsuspension stricthtml="false"}
{@param domainName: string}
{@param hostsToAdd: list<string>}
{@param hostsToRemove: list<string>}
{@param locksToApply: list<string>}
{@param locksToRemove: list<string>}
{@param newDsData: list<[keyTag:int, alg:int, digestType:int, digest:string]>}
{@param reason: string}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>{$domainName}</domain:name>
        <domain:add>
        {if length($hostsToAdd) > 0}
          <domain:ns>
          {for $ha in $hostsToAdd}
            <domain:hostObj>{$ha}</domain:hostObj>
          {/for}
          </domain:ns>
        {/if}
        {for $la in $locksToApply}
          <domain:status s="{$la}" />
        {/for}
        </domain:add>
        <domain:rem>
        {if length($hostsToRemove) > 0}
          <domain:ns>
          {for $hr in $hostsToRemove}
            <domain:hostObj>{$hr}</domain:hostObj>
          {/for}
          </domain:ns>
        {/if}
        {for $lr in $locksToRemove}
          <domain:status s="{$lr}" />
        {/for}
        </domain:rem>
      </domain:update>
    </update>
    <extension>
      <secDNS:update xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
        <secDNS:rem>
          <secDNS:all>true</secDNS:all>
        </secDNS:rem>
        {if length($newDsData) > 0}
        <secDNS:add>
          {for $ds in $newDsData}
          <secDNS:dsData>
            <secDNS:keyTag>{$ds.keyTag}</secDNS:keyTag>
            <secDNS:alg>{$ds.alg}</secDNS:alg>
            <secDNS:digestType>{$ds.digestType}</secDNS:digestType>
            <secDNS:digest>{$ds.digest}</secDNS:digest>
          </secDNS:dsData>
          {/for}
        </secDNS:add>
        {/if}
      </secDNS:update>
      <metadata:metadata xmlns:metadata="urn:google:params:xml:ns:metadata-1.0">
        <metadata:reason>{$reason}</metadata:reason>
        <metadata:requestedByRegistrar>false</metadata:requestedByRegistrar>
      </metadata:metadata>
    </extension>
    <clTRID>RegistryTool</clTRID>
  </command>
</epp>
{/template}
