// 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. package google.registry.model.domain.secdns; import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy; import com.google.common.collect.ImmutableSet; import google.registry.model.ImmutableObject; import google.registry.model.eppinput.EppInput.CommandExtension; import java.util.Set; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; /** The EPP secDNS extension that may be present on domain update commands. */ @XmlRootElement(name = "update") @XmlType(propOrder = {"remove", "add", "change"}) public class SecDnsUpdateExtension extends ImmutableObject implements CommandExtension { /** * Specifies whether this update is urgent. * *
We don't support urgent updates but we need this to be present to provide appropriate error
* messages if a client requests it.
*/
@XmlAttribute
Boolean urgent;
/** Allows removing some or all delegations. */
@XmlElement(name = "rem")
Remove remove;
/** Allows adding new delegations. */
Add add;
/** Would allow changing maxSigLife except that we don't support it. */
@XmlElement(name = "chg")
Change change;
public Boolean getUrgent() {
return urgent;
}
public Remove getRemove() {
return remove;
}
public Add getAdd() {
return add;
}
public Change getChange() {
return change;
}
@XmlTransient
abstract static class AddRemoveBase extends ImmutableObject {
/** Delegations to add or remove. */
Set We do not support expirations, but we need this field to be able to return appropriate
* errors.
*/
Long maxSigLife;
}
}