com.verisign.epp.namestore.interfaces

## Class NSDomain

- java.lang.Object
- - com.verisign.epp.interfaces.EPPDomain
  - - com.verisign.epp.interfaces.EPPRelatedDomain
    - - com.verisign.epp.namestore.interfaces.NSDomain

-     public class NSDomain
      extends EPPRelatedDomain

  NameStore Domain interface that extends that standard `EPPDomain` by adding new operations like restore request, restore report, and sync.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.util.List` | `REM_ALL_DS` Constant used to remove all DS using `aRemDsData` parameter of the method `setSecDNSUpdate(List, List)`.

    - ### Fields inherited from class com.verisign.epp.interfaces.EPPRelatedDomain

      `DOMAIN_INFO_FORM, RELATED_INFO_FORM`

    - ### Fields inherited from class com.verisign.epp.interfaces.EPPDomain

      `ADD, CHANGE, CONTACT, CONTACT_ADMINISTRATIVE, CONTACT_BILLING, CONTACT_TECHNICAL, HOST, HOSTS_ALL, HOSTS_DELEGATED, HOSTS_SUBORDINATE, PERIOD_MONTH, PERIOD_YEAR, REMOVE, STATUS, STATUS_CLIENT_DELETE_PROHIBITED, STATUS_CLIENT_HOLD, STATUS_CLIENT_RENEW_PROHIBITED, STATUS_CLIENT_TRANSFER_PROHIBITED, STATUS_CLIENT_UPDATE_PROHIBITED, STATUS_INACTIVE, STATUS_OK, STATUS_PENDING_CREATE, STATUS_PENDING_DELETE, STATUS_PENDING_RENEW, STATUS_PENDING_TRANSFER, STATUS_PENDING_UPDATE, STATUS_SERVER_DELETE_PROHIBITED, STATUS_SERVER_HOLD, STATUS_SERVER_RENEW_PROHIBITED, STATUS_SERVER_TRANSFER_PROHIBITED, STATUS_SERVER_UPDATE_PROHIBITED, TRANSFER_APPROVE, TRANSFER_CANCEL, TRANSFER_QUERY, TRANSFER_REJECT, TRANSFER_REQUEST`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NSDomain(EPPSession aSession)` Creates an `NSDomain` with an established `EPPSession`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addOrgId(EPPOrgExtId aOrgId)` Adds an org identifier for use with `sendCreate()`.
    `void` | `addUpdateOrgId(int aAction, EPPOrgExtId aOrgId)` Updates the org identifier used with `sendUpdate()`.
    `int` | `getDay()` Gets the day of sync.
    `int` | `getMonth()` Gets the month of sync.
    `EPPRgpExtReport` | `getReport()` Gets the report information for the restore report.
    `protected void` | `resetDomain()` Resets the domain attributes for the next command.
    `EPPDomainCreateResp` | `sendCreate()` Sends a Domain Name Create Command to the server. The required attributes have been set with the following methods: `addDomainName` - Sets the domain name to create.
    `EPPResponse` | `sendRestoreReport()` Send a restore report. The required attributes have been set with the following methods: `addDomainName` - Sets the domain name for report.
    `EPPResponse` | `sendRestoreRequest()` Send a restore request. The required attributes have been set with the following methods: `addDomainName` - Sets the domain name to restore.
    `EPPResponse` | `sendSync()` Send a sync command for a domain with a specified expiration month and day The required attributes have been set with the following methods: `addDomainName` - Sets the domain name for report.
    `EPPResponse` | `sendUpdate()` Sends a Domain Name Update Command to the server. The required attributes have been set with the following methods: `addDomainName` - Sets the domain name to update.
    `void` | `setAllocationToken(java.lang.String aAllocationToken)` Sets the allocation token extension with the token value to be passed along with either `sendCheck`, `sendCreate()`, `sendUpdate`, or `sendTransfer`.
    `void` | `setCoaCreate(java.util.List aAttrs)` Sets the list of `EPPCoaExtAttr` instances to associate Client Object Attributes with the object being created.
    `void` | `setCoaUpdateForPut(java.util.List aAttrs)` Sets the list of `EPPCoaExtAttr` instances to associate Client Object Attributes with the object being updated.
    `void` | `setCoaUpdateForRem(java.util.List aKeys)` Sets the list of `EPPCoaExtKey` instances to specify Client Object Attributes to be removed from the object being updated.
    `void` | `setDay(int aDay)` Sets the day of sync.
    `void` | `setIDNLangTag(java.lang.String aLangTag)` Set the IDN language tag used with `sendCreate`.
    `void` | `setIDNMap(java.lang.String aTable, java.lang.String aUname)` Set the IDN Map used with `sendCreate`, which includes the IDN table identifer and optionally the uname.
    `void` | `setMonth(int aMonth)` Sets the month of sync.
    `void` | `setReport(EPPRgpExtReport aReport)` Sets the report information for the restore report.
    `void` | `setSecDNSCreate(java.util.List aDsData)` Sets the list of `EPPSecDNSExtDsData` instances in order to create delegation signer (DS) information.
    `void` | `setSecDNSUpdate(java.util.List aAddDsData, java.util.List aRemDsData)` Sets the list of `EPPSecDNSExtDsData` instances to add along with the list of `EPPSecDNSExtDsData` instances to remove.
    `void` | `setSecDNSUpdateForAdd(java.util.List aAddDsData, boolean aUrgent)` Deprecated. Supports secDNS-1.0 and secDNS-1.1, but use the secDNS-1.1 method `setSecDNSUpdate(List, List)`.
    `void` | `setSecDNSUpdateForChg(java.util.List aChgDsData, boolean aUrgent)` Deprecated. Only supported with secDNS-1.0. Look to use the secDNS-1.1 method `setSecDNSUpdate(List, List)`.
    `void` | `setSecDNSUpdateForRem(java.util.List aRemDsData, boolean aUrgent)` Deprecated. Supports secDNS-1.0 and secDNS-1.1, but use the secDNS-1.1 method `setSecDNSUpdate(List, List)`.
    `void` | `setSubProductID(java.lang.String aSubProductID)` Sets the domain sub-product id which specifies which is the target registry for the domain operation.
    `void` | `setWhoisInfo(boolean aWhoisInfo)` Sets if whois information is desired in the response to a call to `sendInfo()`.

    - ### Methods inherited from class com.verisign.epp.interfaces.EPPRelatedDomain

      `addRelatedDomain, addRelatedName, sendRelatedCreate, sendRelatedDelete, sendRelatedInfo, sendRelatedRenew, sendRelatedTransfer, sendRelatedUpdate, setInfoForm`

    - ### Methods inherited from class com.verisign.epp.interfaces.EPPDomain

      `addContact, addDomainName, addExtension, addHostAttr, addHostName, getAuthInfo, getAuthRoid, getAuthString, getExpirationDate, getExtensions, getHosts, getPeriodLength, getPeriodUnit, getRegistrant, getResponse, sendCheck, sendDelete, sendInfo, sendRenew, sendTransfer, setAuthInfo, setAuthRoid, setAuthString, setExpirationDate, setExtension, setExtensions, setHosts, setPeriodLength, setPeriodUnit, setRegistrant, setTransferOpCode, setTransId, setUpdateAttrib, setUpdateAttrib, setUpdateAttrib`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### REM_ALL_DS

          public static final java.util.List REM_ALL_DS

      Constant used to remove all DS using `aRemDsData` parameter of the method `setSecDNSUpdate(List, List)`.

  - ### Constructor Detail

    - #### NSDomain

          public NSDomain(EPPSession aSession)

      Creates an `NSDomain` with an established `EPPSession`.
      Parameters:
        `aSession` - Established session

  - ### Method Detail

    - #### sendRestoreRequest

          public EPPResponse sendRestoreRequest()
                                         throws EPPCommandException

      Send a restore request.
      The required attributes have been set with the following methods:
      - `addDomainName` - Sets the domain name to restore. Only one domain name is valid.
      - `setSubProductID` - Sets the sub-product id
      The optional attributes have been set with the following:
      - `setTransId` - Sets the client transaction identifier
      Returns:
        `EPPResponse` containing the Domain restore request result.
      Throws:
        `EPPCommandException` - Error executing the restore request command. Use `getResponse` to get the associated server error response.

    - #### sendRestoreReport

          public EPPResponse sendRestoreReport()
                                        throws EPPCommandException

      Send a restore report.
      The required attributes have been set with the following methods:
      - `addDomainName` - Sets the domain name for report. Only one domain name is valid.
      - `setSubProductID` - Sets the sub-product id
      - `setReport` - Sets the report information
      The optional attributes have been set with the following:
      - `setTransId` - Sets the client transaction identifier
      Returns:
        `EPPResponse` containing the Domain restore report result.
      Throws:
        `EPPCommandException` - Error executing the restore report command. Use `getResponse` to get the associated server error response.

    - #### sendSync

          public EPPResponse sendSync()
                               throws EPPCommandException

      Send a sync command for a domain with a specified expiration month and day
      The required attributes have been set with the following methods:
      - `addDomainName` - Sets the domain name for report. Only one domain name is valid.
      - `setSubProductID` - Sets the sub-product id
      - `setMonth` - Month to set expiration date
      - `setDay` - Day to set expiration date
      The optional attributes have been set with the following:
      - `setTransId` - Sets the client transaction identifier
      Returns:
        `EPPResponse` containing the Domain sync result.
      Throws:
        `EPPCommandException` - Error executing the sync command. Use `getResponse` to get the associated server error response.

    - #### sendCreate

          public EPPDomainCreateResp sendCreate()
                                         throws EPPCommandException

      Sends a Domain Name Create Command to the server.
      The required attributes have been set with the following methods:
      - `addDomainName` - Sets the domain name to create. Only one domain name is valid.
      - `setAuthString` - Sets the domain name authorization string.
      The optional attributes have been set with the following:
      - `setTransId` - Sets the client transaction identifier
      - `setPeriodLength` - Sets the registration period (default = 1)
      - `setPeriodUnit` - Sets the registration period unit (default = `PERIOD_YEAR`)
      - `setRegistrant` - Sets the Registrant for the domain. This is required for thick registries.
      - `addContact` - Add domain contact
      - `addHostName` - Add domain delegation host
      - `addOrgId` - Add an organization identifier with a role
      Overrides:
        `sendCreate` in class `EPPDomain`
      Returns:
        `EPPDomainCreateResp` containing the Domain create result.
      Throws:
        `EPPCommandException` - Error executing the create command. Use `getResponse` to get the associated server error response.

    - #### sendUpdate

          public EPPResponse sendUpdate()
                                 throws EPPCommandException

      Sends a Domain Name Update Command to the server.
      The required attributes have been set with the following methods:
      - `addDomainName` - Sets the domain name to update. Only one domain name is valid.
      The optional attributes have been set with the following:
      - `setTransId` - Sets the client transaction identifier
      - `setUpdateAttrib(int,String,int)` - Adds/removes hosts
      - `setUpdateAttrib(int,DomainStatus,int)` - Adds/removes statuses
      - `setUpdateAttrib(int,String,String,int)` - Adds/removes contacts
      - `setRegistrant` - Sets the Registrant for the domain.
      - `setAuthString` - Sets the domain name authorization string.
      - `addUpdateOrgId` - Add an update to organization identifier
      At least one update attribute needs to be set.
      Overrides:
        `sendUpdate` in class `EPPDomain`
      Returns:
        `EPPResponse` containing the Domain update result.
      Throws:
        `EPPCommandException` - Error executing the update command. Use `getResponse` to get the associated server error response.

    - #### getDay

          public int getDay()

      Gets the day of sync.
      Returns:
        Returns the day of sync if set; `-1` otherwise

    - #### setDay

          public void setDay(int aDay)

      Sets the day of sync.
      Parameters:
        `aDay` - The day to set.

    - #### getMonth

          public int getMonth()

      Gets the month of sync.
      Returns:
        the month using a `java.util.Calendar` month constant if defined; `-1` otherwise

    - #### setMonth

          public void setMonth(int aMonth)

      Sets the month of sync.
      Parameters:
        `aMonth` - the month using a `java.util.Calendar` month constant

    - #### getReport

          public EPPRgpExtReport getReport()

      Gets the report information for the restore report.
      Returns:
        Returns the report if defined; `null` otherwise.

    - #### setReport

          public void setReport(EPPRgpExtReport aReport)

      Sets the report information for the restore report.
      Parameters:
        `aReport` - Report information

    - #### setIDNLangTag

          public void setIDNLangTag(java.lang.String aLangTag)

      Set the IDN language tag used with `sendCreate`.
      Parameters:
        `aLangTag` - Valid XML schema language value as defined by <a href="http://www.w3.org/TR/xmlschema-2/#language"/>. For example, use a two letter language tag like `en` or `fr`.

    - #### setIDNMap

          public void setIDNMap(java.lang.String aTable,
                                java.lang.String aUname)

      Set the IDN Map used with `sendCreate`, which includes the IDN table identifer and optionally the uname.
      Parameters:
        `aTable` - IDN table identifier
        `aUname` - OPTIONAL domain name in Unicode NFC. Set to `null` if undefined.

    - #### setSubProductID

          public void setSubProductID(java.lang.String aSubProductID)

      Sets the domain sub-product id which specifies which is the target registry for the domain operation. Some possible values include CC, TV, COM, NET. This results in a `EPPNamestoreExtNamestoreExt` extension being added to the command.
      Parameters:
        `aSubProductID` - Sub-product id of domain operation. Some constants for the sub-product id are defined in `NSSubProduct`. Passing `null` will not add any extension.

    - #### setWhoisInfo

          public void setWhoisInfo(boolean aWhoisInfo)

      Sets if whois information is desired in the response to a call to `sendInfo()`. If `true` is specified, the `com.verisign.epp.codec.whois.EPPWhoisInfData` extension will be added to the `com.verisign.epp.codec.domain.EPPDomainInfoResp` when the server supports it.
      Parameters:
        `aWhoisInfo` - `true` to include the whois response information; `false` otherwise.

    - #### setSecDNSUpdate

          public void setSecDNSUpdate(java.util.List aAddDsData,
                                      java.util.List aRemDsData)
                               throws EPPCommandException

      Sets the list of `EPPSecDNSExtDsData` instances to add along with the list of `EPPSecDNSExtDsData` instances to remove. This method only supports secDNS-1.1. This method can be used to remove all DS data by passing the `REM_ALL_DS` constant with the `aRemDsData` parameter, and can be used to replace all DS data by passing the `REM_ALL_DS` constant with the `aRemDsData` parameter and setting the `aAddDsData` to a non-null, non-empty list.
      Parameters:
        `aAddDsData` - - List of `EPPSecDNSExtDsData` instances to add; `null` if there is nothing to add.
        `aRemDsData` - - List of `EPPSecDNSExtDsData` instances to remove; `null` if there is nothing to remove. Set to `REM_ALL_DS` constant to remove all DS data.
      Throws:
        `EPPCommandException` - Error with parameters passed in.

    - #### setSecDNSCreate

          public void setSecDNSCreate(java.util.List aDsData)

      Sets the list of `EPPSecDNSExtDsData` instances in order to create delegation signer (DS) information.
      Parameters:
        `aDsData` - - List of `EPPSecDNSExtDsData` instances

    - #### setCoaCreate

          public void setCoaCreate(java.util.List aAttrs)

      Sets the list of `EPPCoaExtAttr` instances to associate Client Object Attributes with the object being created.
      Parameters:
        `aAttrs` - - List of `EPPCoaExtAttr` instances

    - #### setCoaUpdateForPut

          public void setCoaUpdateForPut(java.util.List aAttrs)

      Sets the list of `EPPCoaExtAttr` instances to associate Client Object Attributes with the object being updated.
      Parameters:
        `aAttrs` - - List of `EPPCoaExtAttr` instances

    - #### setCoaUpdateForRem

          public void setCoaUpdateForRem(java.util.List aKeys)

      Sets the list of `EPPCoaExtKey` instances to specify Client Object Attributes to be removed from the object being updated.
      Parameters:
        `aKeys` - - List of `EPPCoaExtKey` instances

    - #### setSecDNSUpdateForAdd

          public void setSecDNSUpdateForAdd(java.util.List aAddDsData,
                                            boolean aUrgent)

      Deprecated. Supports secDNS-1.0 and secDNS-1.1, but use the secDNS-1.1 method `setSecDNSUpdate(List, List)`.
      Sets the list of `EPPSecDNSExtDsData` instances in order to add delegation signer (DS) information.
      Parameters:
        `aAddDsData` - - List of `EPPSecDNSExtDsData` instances
        `aUrgent` - - boolean value indicates whether it is a high priority request

    - #### setSecDNSUpdateForChg

          public void setSecDNSUpdateForChg(java.util.List aChgDsData,
                                            boolean aUrgent)

      Deprecated. Only supported with secDNS-1.0. Look to use the secDNS-1.1 method `setSecDNSUpdate(List, List)`.
      Sets the list of `EPPSecDNSExtDsData` instances in order to change delegation signer (DS) information. This method is only used for secDNS-1.0.
      Parameters:
        `aChgDsData` - - List of `EPPSecDNSExtDsData` instances
        `aUrgent` - - boolean value indicates whether it is a high priority request

    - #### setSecDNSUpdateForRem

          public void setSecDNSUpdateForRem(java.util.List aRemDsData,
                                            boolean aUrgent)

      Deprecated. Supports secDNS-1.0 and secDNS-1.1, but use the secDNS-1.1 method `setSecDNSUpdate(List, List)`.
      Sets the list of `Integer` instances in order to remove delegation signer (DS) information.
      Parameters:
        `aRemDsData` - - List of `Integer` instances for secDNS-1.0 or `EPPSecDNSExtDsData` instances for secDNS-1.1.
        `aUrgent` - - boolean value indicates whether it is a high priority request

    - #### setAllocationToken

          public void setAllocationToken(java.lang.String aAllocationToken)

      Sets the allocation token extension with the token value to be passed along with either `sendCheck`, `sendCreate()`, `sendUpdate`, or `sendTransfer`. The allocation token is used to allocation a domain name that be held or reserved for use.
      Parameters:
        `aAllocationToken` - Allocation token value

    - #### addOrgId

          public void addOrgId(EPPOrgExtId aOrgId)

      Adds an org identifier for use with `sendCreate()`.
      Parameters:
        `aOrgId` - Org identifier with role to add

    - #### addUpdateOrgId

          public void addUpdateOrgId(int aAction,
                                     EPPOrgExtId aOrgId)

      Updates the org identifier used with `sendUpdate()`. There are three possible actions that can be used including `EPPDomain.ADD`, `EPPDomain.REMOVE`, and `EPPDomain.CHANGE` for the org identifier.
      Parameters:
        `aAction` - One of the `EPPDomain.ADD`, `EPPDomain.REMOVE`, and `EPPDomain.CHANGE` for the org identifier.
        `aOrgId` - Org identifier to add, remove, or change

    - #### resetDomain

          protected void resetDomain()

      Resets the domain attributes for the next command.
      Overrides:
        `resetDomain` in class `EPPRelatedDomain`