com.softlayer.api.service.network.tunnel.module.Context Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of softlayer-api-client Show documentation
Show all versions of softlayer-api-client Show documentation
API client for accessing the SoftLayer API
package com.softlayer.api.service.network.tunnel.module;
import com.softlayer.api.ApiClient;
import com.softlayer.api.ResponseHandler;
import com.softlayer.api.annotation.ApiMethod;
import com.softlayer.api.annotation.ApiProperty;
import com.softlayer.api.annotation.ApiType;
import com.softlayer.api.service.Account;
import com.softlayer.api.service.Location;
import com.softlayer.api.service.billing.Item;
import com.softlayer.api.service.container.utility.file.Entity;
import com.softlayer.api.service.network.Subnet;
import com.softlayer.api.service.network.tunnel.module.context.address.Translation;
import com.softlayer.api.service.provisioning.version1.Transaction;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.concurrent.Future;
/**
* The SoftLayer_Network_Tunnel_Module_Context data type contains general information relating to a single SoftLayer network tunnel. The SoftLayer_Network_Tunnel_Module_Context is useful to gather information such as related customer subnets (remote) and internal subnets (local) associated with the network tunnel as well as other information needed to manage the network tunnel. Account and billing information related to the network tunnel can also be retrieved.
*
* @see SoftLayer_Network_Tunnel_Module_Context
*/
@ApiType("SoftLayer_Network_Tunnel_Module_Context")
public class Context extends com.softlayer.api.service.Entity {
/**
* The account that a network tunnel belongs to.
*/
@ApiProperty
protected Account account;
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
/**
* The transaction that is currently applying configurations for the network tunnel.
*/
@ApiProperty
protected Transaction activeTransaction;
public Transaction getActiveTransaction() {
return activeTransaction;
}
public void setActiveTransaction(Transaction activeTransaction) {
this.activeTransaction = activeTransaction;
}
/**
* A network tunnel's address translations.
*/
@ApiProperty
protected List addressTranslations;
public List getAddressTranslations() {
if (addressTranslations == null) {
addressTranslations = new ArrayList();
}
return addressTranslations;
}
/**
* Subnets that provide access to SoftLayer services such as the management portal and the SoftLayer API.
*/
@ApiProperty
protected List allAvailableServiceSubnets;
public List getAllAvailableServiceSubnets() {
if (allAvailableServiceSubnets == null) {
allAvailableServiceSubnets = new ArrayList();
}
return allAvailableServiceSubnets;
}
/**
* The current billing item for network tunnel.
*/
@ApiProperty
protected Item billingItem;
public Item getBillingItem() {
return billingItem;
}
public void setBillingItem(Item billingItem) {
this.billingItem = billingItem;
}
/**
* Remote subnets that are allowed access through a network tunnel.
*/
@ApiProperty
protected List customerSubnets;
public List getCustomerSubnets() {
if (customerSubnets == null) {
customerSubnets = new ArrayList();
}
return customerSubnets;
}
/**
* The datacenter location for one end of the network tunnel that allows access to account's private subnets.
*/
@ApiProperty
protected Location datacenter;
public Location getDatacenter() {
return datacenter;
}
public void setDatacenter(Location datacenter) {
this.datacenter = datacenter;
}
/**
* Private subnets that can be accessed through the network tunnel.
*/
@ApiProperty
protected List internalSubnets;
public List getInternalSubnets() {
if (internalSubnets == null) {
internalSubnets = new ArrayList();
}
return internalSubnets;
}
/**
* Service subnets that can be access through the network tunnel.
*/
@ApiProperty
protected List serviceSubnets;
public List getServiceSubnets() {
if (serviceSubnets == null) {
serviceSubnets = new ArrayList();
}
return serviceSubnets;
}
/**
* Subnets used for a network tunnel's address translations.
*/
@ApiProperty
protected List staticRouteSubnets;
public List getStaticRouteSubnets() {
if (staticRouteSubnets == null) {
staticRouteSubnets = new ArrayList();
}
return staticRouteSubnets;
}
/**
* The transaction history for this network tunnel.
*/
@ApiProperty
protected List transactionHistory;
public List getTransactionHistory() {
if (transactionHistory == null) {
transactionHistory = new ArrayList();
}
return transactionHistory;
}
/**
* A network tunnel's account identifier.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long accountId;
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long accountId) {
accountIdSpecified = true;
this.accountId = accountId;
}
protected boolean accountIdSpecified;
public boolean isAccountIdSpecified() {
return accountIdSpecified;
}
public void unsetAccountId() {
accountId = null;
accountIdSpecified = false;
}
/**
* A flag used to specify when advanced configurations, complex configurations that require manual setup, are being applied to network devices for a network tunnel. When the flag is set to true (1), a network tunnel cannot be configured through the management portal nor the API.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long advancedConfigurationFlag;
public Long getAdvancedConfigurationFlag() {
return advancedConfigurationFlag;
}
public void setAdvancedConfigurationFlag(Long advancedConfigurationFlag) {
advancedConfigurationFlagSpecified = true;
this.advancedConfigurationFlag = advancedConfigurationFlag;
}
protected boolean advancedConfigurationFlagSpecified;
public boolean isAdvancedConfigurationFlagSpecified() {
return advancedConfigurationFlagSpecified;
}
public void unsetAdvancedConfigurationFlag() {
advancedConfigurationFlag = null;
advancedConfigurationFlagSpecified = false;
}
/**
* The date a network tunnel was created.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected GregorianCalendar createDate;
public GregorianCalendar getCreateDate() {
return createDate;
}
public void setCreateDate(GregorianCalendar createDate) {
createDateSpecified = true;
this.createDate = createDate;
}
protected boolean createDateSpecified;
public boolean isCreateDateSpecified() {
return createDateSpecified;
}
public void unsetCreateDate() {
createDate = null;
createDateSpecified = false;
}
/**
* The remote end of a network tunnel. This end of the network tunnel resides on an outside network and will be sending and receiving the IPSec packets.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String customerPeerIpAddress;
public String getCustomerPeerIpAddress() {
return customerPeerIpAddress;
}
public void setCustomerPeerIpAddress(String customerPeerIpAddress) {
customerPeerIpAddressSpecified = true;
this.customerPeerIpAddress = customerPeerIpAddress;
}
protected boolean customerPeerIpAddressSpecified;
public boolean isCustomerPeerIpAddressSpecified() {
return customerPeerIpAddressSpecified;
}
public void unsetCustomerPeerIpAddress() {
customerPeerIpAddress = null;
customerPeerIpAddressSpecified = false;
}
/**
* The name giving to a network tunnel by a user.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String friendlyName;
public String getFriendlyName() {
return friendlyName;
}
public void setFriendlyName(String friendlyName) {
friendlyNameSpecified = true;
this.friendlyName = friendlyName;
}
protected boolean friendlyNameSpecified;
public boolean isFriendlyNameSpecified() {
return friendlyNameSpecified;
}
public void unsetFriendlyName() {
friendlyName = null;
friendlyNameSpecified = false;
}
/**
* A network tunnel's unique identifier.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
idSpecified = true;
this.id = id;
}
protected boolean idSpecified;
public boolean isIdSpecified() {
return idSpecified;
}
public void unsetId() {
id = null;
idSpecified = false;
}
/**
* The local end of a network tunnel. This end of the network tunnel resides on the SoftLayer networks and allows access to remote end of the tunnel to subnets on SoftLayer networks.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String internalPeerIpAddress;
public String getInternalPeerIpAddress() {
return internalPeerIpAddress;
}
public void setInternalPeerIpAddress(String internalPeerIpAddress) {
internalPeerIpAddressSpecified = true;
this.internalPeerIpAddress = internalPeerIpAddress;
}
protected boolean internalPeerIpAddressSpecified;
public boolean isInternalPeerIpAddressSpecified() {
return internalPeerIpAddressSpecified;
}
public void unsetInternalPeerIpAddress() {
internalPeerIpAddress = null;
internalPeerIpAddressSpecified = false;
}
/**
* The date a network tunnel was last modified.
*
* NOTE: This date should NOT be used to determine when the network tunnel configurations were last applied to the network device.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected GregorianCalendar modifyDate;
public GregorianCalendar getModifyDate() {
return modifyDate;
}
public void setModifyDate(GregorianCalendar modifyDate) {
modifyDateSpecified = true;
this.modifyDate = modifyDate;
}
protected boolean modifyDateSpecified;
public boolean isModifyDateSpecified() {
return modifyDateSpecified;
}
public void unsetModifyDate() {
modifyDate = null;
modifyDateSpecified = false;
}
/**
* A network tunnel's unique name used on the network device.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String name;
public String getName() {
return name;
}
public void setName(String name) {
nameSpecified = true;
this.name = name;
}
protected boolean nameSpecified;
public boolean isNameSpecified() {
return nameSpecified;
}
public void unsetName() {
name = null;
nameSpecified = false;
}
/**
* Authentication used to generate keys for protecting the negotiations for a network tunnel.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String phaseOneAuthentication;
public String getPhaseOneAuthentication() {
return phaseOneAuthentication;
}
public void setPhaseOneAuthentication(String phaseOneAuthentication) {
phaseOneAuthenticationSpecified = true;
this.phaseOneAuthentication = phaseOneAuthentication;
}
protected boolean phaseOneAuthenticationSpecified;
public boolean isPhaseOneAuthenticationSpecified() {
return phaseOneAuthenticationSpecified;
}
public void unsetPhaseOneAuthentication() {
phaseOneAuthentication = null;
phaseOneAuthenticationSpecified = false;
}
/**
* Determines the strength of the key used in the key exchange process. The higher the group number the stronger the key is and the more secure it is. However, processing time will increase as the strength of the key increases. Both peers in the must use the Diffie-Hellman Group.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long phaseOneDiffieHellmanGroup;
public Long getPhaseOneDiffieHellmanGroup() {
return phaseOneDiffieHellmanGroup;
}
public void setPhaseOneDiffieHellmanGroup(Long phaseOneDiffieHellmanGroup) {
phaseOneDiffieHellmanGroupSpecified = true;
this.phaseOneDiffieHellmanGroup = phaseOneDiffieHellmanGroup;
}
protected boolean phaseOneDiffieHellmanGroupSpecified;
public boolean isPhaseOneDiffieHellmanGroupSpecified() {
return phaseOneDiffieHellmanGroupSpecified;
}
public void unsetPhaseOneDiffieHellmanGroup() {
phaseOneDiffieHellmanGroup = null;
phaseOneDiffieHellmanGroupSpecified = false;
}
/**
* Encryption used to generate keys for protecting the negotiations for a network tunnel.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String phaseOneEncryption;
public String getPhaseOneEncryption() {
return phaseOneEncryption;
}
public void setPhaseOneEncryption(String phaseOneEncryption) {
phaseOneEncryptionSpecified = true;
this.phaseOneEncryption = phaseOneEncryption;
}
protected boolean phaseOneEncryptionSpecified;
public boolean isPhaseOneEncryptionSpecified() {
return phaseOneEncryptionSpecified;
}
public void unsetPhaseOneEncryption() {
phaseOneEncryption = null;
phaseOneEncryptionSpecified = false;
}
/**
* Amount of time (in seconds) allowed to pass before the encryption key expires. A new key is generated without interrupting service. Valid times are from 120 to 172800 seconds.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long phaseOneKeylife;
public Long getPhaseOneKeylife() {
return phaseOneKeylife;
}
public void setPhaseOneKeylife(Long phaseOneKeylife) {
phaseOneKeylifeSpecified = true;
this.phaseOneKeylife = phaseOneKeylife;
}
protected boolean phaseOneKeylifeSpecified;
public boolean isPhaseOneKeylifeSpecified() {
return phaseOneKeylifeSpecified;
}
public void unsetPhaseOneKeylife() {
phaseOneKeylife = null;
phaseOneKeylifeSpecified = false;
}
/**
* The authentication used in phase 2 proposal negotiation process.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String phaseTwoAuthentication;
public String getPhaseTwoAuthentication() {
return phaseTwoAuthentication;
}
public void setPhaseTwoAuthentication(String phaseTwoAuthentication) {
phaseTwoAuthenticationSpecified = true;
this.phaseTwoAuthentication = phaseTwoAuthentication;
}
protected boolean phaseTwoAuthenticationSpecified;
public boolean isPhaseTwoAuthenticationSpecified() {
return phaseTwoAuthenticationSpecified;
}
public void unsetPhaseTwoAuthentication() {
phaseTwoAuthentication = null;
phaseTwoAuthenticationSpecified = false;
}
/**
* Determines the strength of the key used in the key exchange process. The higher the group number the stronger the key is and the more secure it is. However, processing time will increase as the strength of the key increases. Both peers must use the Diffie-Hellman Group.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long phaseTwoDiffieHellmanGroup;
public Long getPhaseTwoDiffieHellmanGroup() {
return phaseTwoDiffieHellmanGroup;
}
public void setPhaseTwoDiffieHellmanGroup(Long phaseTwoDiffieHellmanGroup) {
phaseTwoDiffieHellmanGroupSpecified = true;
this.phaseTwoDiffieHellmanGroup = phaseTwoDiffieHellmanGroup;
}
protected boolean phaseTwoDiffieHellmanGroupSpecified;
public boolean isPhaseTwoDiffieHellmanGroupSpecified() {
return phaseTwoDiffieHellmanGroupSpecified;
}
public void unsetPhaseTwoDiffieHellmanGroup() {
phaseTwoDiffieHellmanGroup = null;
phaseTwoDiffieHellmanGroupSpecified = false;
}
/**
* The encryption used in phase 2 proposal negotiation process.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String phaseTwoEncryption;
public String getPhaseTwoEncryption() {
return phaseTwoEncryption;
}
public void setPhaseTwoEncryption(String phaseTwoEncryption) {
phaseTwoEncryptionSpecified = true;
this.phaseTwoEncryption = phaseTwoEncryption;
}
protected boolean phaseTwoEncryptionSpecified;
public boolean isPhaseTwoEncryptionSpecified() {
return phaseTwoEncryptionSpecified;
}
public void unsetPhaseTwoEncryption() {
phaseTwoEncryption = null;
phaseTwoEncryptionSpecified = false;
}
/**
* Amount of time (in seconds) allowed to pass before the encryption key expires. A new key is generated without interrupting service. Valid times are from 120 to 172800 seconds.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long phaseTwoKeylife;
public Long getPhaseTwoKeylife() {
return phaseTwoKeylife;
}
public void setPhaseTwoKeylife(Long phaseTwoKeylife) {
phaseTwoKeylifeSpecified = true;
this.phaseTwoKeylife = phaseTwoKeylife;
}
protected boolean phaseTwoKeylifeSpecified;
public boolean isPhaseTwoKeylifeSpecified() {
return phaseTwoKeylifeSpecified;
}
public void unsetPhaseTwoKeylife() {
phaseTwoKeylife = null;
phaseTwoKeylifeSpecified = false;
}
/**
* Determines if the generated keys are made from previous keys. When PFS is specified, a Diffie-Hellman exchange occurs each time a new security association is negotiated.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected Long phaseTwoPerfectForwardSecrecy;
public Long getPhaseTwoPerfectForwardSecrecy() {
return phaseTwoPerfectForwardSecrecy;
}
public void setPhaseTwoPerfectForwardSecrecy(Long phaseTwoPerfectForwardSecrecy) {
phaseTwoPerfectForwardSecrecySpecified = true;
this.phaseTwoPerfectForwardSecrecy = phaseTwoPerfectForwardSecrecy;
}
protected boolean phaseTwoPerfectForwardSecrecySpecified;
public boolean isPhaseTwoPerfectForwardSecrecySpecified() {
return phaseTwoPerfectForwardSecrecySpecified;
}
public void unsetPhaseTwoPerfectForwardSecrecy() {
phaseTwoPerfectForwardSecrecy = null;
phaseTwoPerfectForwardSecrecySpecified = false;
}
/**
* A key used so that peers authenticate each other. This key is hashed by using the phase one encryption and phase one authentication.
*/
@ApiProperty(canBeNullOrNotSet = true)
protected String presharedKey;
public String getPresharedKey() {
return presharedKey;
}
public void setPresharedKey(String presharedKey) {
presharedKeySpecified = true;
this.presharedKey = presharedKey;
}
protected boolean presharedKeySpecified;
public boolean isPresharedKeySpecified() {
return presharedKeySpecified;
}
public void unsetPresharedKey() {
presharedKey = null;
presharedKeySpecified = false;
}
/**
* A count of a network tunnel's address translations.
*/
@ApiProperty
protected Long addressTranslationCount;
public Long getAddressTranslationCount() {
return addressTranslationCount;
}
public void setAddressTranslationCount(Long addressTranslationCount) {
this.addressTranslationCount = addressTranslationCount;
}
/**
* A count of subnets that provide access to SoftLayer services such as the management portal and the SoftLayer API.
*/
@ApiProperty
protected Long allAvailableServiceSubnetCount;
public Long getAllAvailableServiceSubnetCount() {
return allAvailableServiceSubnetCount;
}
public void setAllAvailableServiceSubnetCount(Long allAvailableServiceSubnetCount) {
this.allAvailableServiceSubnetCount = allAvailableServiceSubnetCount;
}
/**
* A count of remote subnets that are allowed access through a network tunnel.
*/
@ApiProperty
protected Long customerSubnetCount;
public Long getCustomerSubnetCount() {
return customerSubnetCount;
}
public void setCustomerSubnetCount(Long customerSubnetCount) {
this.customerSubnetCount = customerSubnetCount;
}
/**
* A count of private subnets that can be accessed through the network tunnel.
*/
@ApiProperty
protected Long internalSubnetCount;
public Long getInternalSubnetCount() {
return internalSubnetCount;
}
public void setInternalSubnetCount(Long internalSubnetCount) {
this.internalSubnetCount = internalSubnetCount;
}
/**
* A count of service subnets that can be access through the network tunnel.
*/
@ApiProperty
protected Long serviceSubnetCount;
public Long getServiceSubnetCount() {
return serviceSubnetCount;
}
public void setServiceSubnetCount(Long serviceSubnetCount) {
this.serviceSubnetCount = serviceSubnetCount;
}
/**
* A count of subnets used for a network tunnel's address translations.
*/
@ApiProperty
protected Long staticRouteSubnetCount;
public Long getStaticRouteSubnetCount() {
return staticRouteSubnetCount;
}
public void setStaticRouteSubnetCount(Long staticRouteSubnetCount) {
this.staticRouteSubnetCount = staticRouteSubnetCount;
}
/**
* A count of the transaction history for this network tunnel.
*/
@ApiProperty
protected Long transactionHistoryCount;
public Long getTransactionHistoryCount() {
return transactionHistoryCount;
}
public void setTransactionHistoryCount(Long transactionHistoryCount) {
this.transactionHistoryCount = transactionHistoryCount;
}
public Service asService(ApiClient client) {
return service(client, id);
}
public static Service service(ApiClient client) {
return client.createService(Service.class, null);
}
public static Service service(ApiClient client, Long id) {
return client.createService(Service.class, id == null ? null : id.toString());
}
/**
* A SoftLayer network tunnel allows customer to authenticate and encrypt all IP traffic between two locations.
*
* Manage the entire network tunnel using this service. The SoftLayer_Network_Tunnel_Module_Context allows customers to manage subnets on both ends of the network tunnel. Address translations can also be managed. SoftLayer also provides the ability to apply the network tunnel configurations on the SoftLayer network devices.
*
* @see SoftLayer_Network_Tunnel_Module_Context
*/
@com.softlayer.api.annotation.ApiService("SoftLayer_Network_Tunnel_Module_Context")
public static interface Service extends com.softlayer.api.Service {
public ServiceAsync asAsync();
public Mask withNewMask();
public Mask withMask();
public void setMask(Mask mask);
/**
* Associates a remote subnet to the network tunnel. When a remote subnet is associated, a network tunnel will allow the customer (remote) network to communicate with the private and service subnets on the SoftLayer network which are on the other end of this network tunnel.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the association described above to take effect.
*
* @see SoftLayer_Network_Tunnel_Module_Context::addCustomerSubnetToNetworkTunnel
*/
@ApiMethod(instanceRequired = true)
public Boolean addCustomerSubnetToNetworkTunnel(Long subnetId);
/**
* Associates a private subnet to the network tunnel. When a private subnet is associated, the network tunnel will allow the customer (remote) network to access the private subnet.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the association described above to take effect.
*
* @see SoftLayer_Network_Tunnel_Module_Context::addPrivateSubnetToNetworkTunnel
*/
@ApiMethod(instanceRequired = true)
public Boolean addPrivateSubnetToNetworkTunnel(Long subnetId);
/**
* Associates a service subnet to the network tunnel. When a service subnet is associated, a network tunnel will allow the customer (remote) network to communicate with the private and service subnets on the SoftLayer network which are on the other end of this network tunnel. Service subnets provide access to SoftLayer services such as the customer management portal and the SoftLayer API.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the association described above to take effect.
*
* @see SoftLayer_Network_Tunnel_Module_Context::addServiceSubnetToNetworkTunnel
*/
@ApiMethod(instanceRequired = true)
public Boolean addServiceSubnetToNetworkTunnel(Long subnetId);
/**
* An asynchronous task will be created to apply the IPSec network tunnel's configuration to network devices. During this time, an IPSec network tunnel cannot be modified in anyway. Only one network tunnel configuration task can be created at a time. If a task has already been created and has not completed, a new task cannot be created.
*
* @see SoftLayer_Network_Tunnel_Module_Context::applyConfigurationsToDevice
*/
@ApiMethod(instanceRequired = true)
public Boolean applyConfigurationsToDevice();
/**
* Create an address translation for a network tunnel.
*
* To create an address translation, ip addresses from an assigned /30 static route subnet are used. Address translations deliver packets to a destination ip address that is on a customer (remote) subnet.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be created.
*
* @see SoftLayer_Network_Tunnel_Module_Context::createAddressTranslation
*/
@ApiMethod(instanceRequired = true)
public Translation createAddressTranslation(Translation translation);
/**
* This has the same functionality as the SoftLayer_Network_Tunnel_Module_Context::createAddressTranslation. However, it allows multiple translations to be passed in for creation.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the address translations to be created.
*
* @see SoftLayer_Network_Tunnel_Module_Context::createAddressTranslations
*/
@ApiMethod(instanceRequired = true)
public List createAddressTranslations(List translations);
/**
* Remove an existing address translation from a network tunnel.
*
* Address translations deliver packets to a destination ip address that is on a customer subnet (remote).
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be deleted.
*
* @see SoftLayer_Network_Tunnel_Module_Context::deleteAddressTranslation
*/
@ApiMethod(instanceRequired = true)
public Boolean deleteAddressTranslation(Long translationId);
/**
* Provides all of the address translation configurations for an IPSec VPN tunnel in a text file
*
* @see SoftLayer_Network_Tunnel_Module_Context::downloadAddressTranslationConfigurations
*/
@ApiMethod(instanceRequired = true)
public Entity downloadAddressTranslationConfigurations();
/**
* Provides all of the configurations for an IPSec VPN network tunnel in a text file
*
* @see SoftLayer_Network_Tunnel_Module_Context::downloadParameterConfigurations
*/
@ApiMethod(instanceRequired = true)
public Entity downloadParameterConfigurations();
/**
* Edit name, source (SoftLayer IP) ip address and/or destination (Customer IP) ip address for an existing address translation for a network tunnel.
*
* Address translations deliver packets to a destination ip address that is on a customer (remote) subnet.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be created.
*
* @see SoftLayer_Network_Tunnel_Module_Context::editAddressTranslation
*/
@ApiMethod(instanceRequired = true)
public Translation editAddressTranslation(Translation translation);
/**
* Edit name, source (SoftLayer IP) ip address and/or destination (Customer IP) ip address for existing address translations for a network tunnel.
*
* Address translations deliver packets to a destination ip address that is on a customer (remote) subnet.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be modified.
*
* @see SoftLayer_Network_Tunnel_Module_Context::editAddressTranslations
*/
@ApiMethod(instanceRequired = true)
public List editAddressTranslations(List translations);
/**
* Negotiation parameters for both phases one and two are editable. Here are the phase one and two parameters that can modified:
*
*
* *Phase One
* **Authentication
* ***Default value is set to MD5.
* ***Valid Options are: MD5, SHA1, SHA256.
* **Encryption
* ***Default value is set to 3DES.
* ***Valid Options are: DES, 3DES, AES128, AES192, AES256.
* **Diffie-Hellman Group
* ***Default value is set to 2.
* ***Valid Options are: 0 (None), 1, 2, 5.
* **Keylife
* ***Default value is set to 3600.
* ***Limits are: MIN = 120, MAX = 172800
* **Preshared Key
* *Phase Two
* **Authentication
* ***Default value is set to MD5.
* ***Valid Options are: MD5, SHA1, SHA256.
* **Encryption
* ***Default value is set to 3DES.
* ***Valid Options are: DES, 3DES, AES128, AES192, AES256.
* **Diffie-Hellman Group
* ***Default value is set to 2.
* ***Valid Options are: 0 (None), 1, 2, 5.
* **Keylife
* ***Default value is set to 28800.
* ***Limits are: MIN = 120, MAX = 172800
* **Perfect Forward Secrecy
* ***Valid Options are: Off = 0, On = 1.
* ***NOTE: If perfect forward secrecy is turned On (set to 1), then a phase 2 diffie-hellman group is required.
*
*
* The remote peer address for the network tunnel may also be modified if needed. Invalid options will not be accepted and will cause an exception to be thrown. There are properties that provide valid options and limits for each negotiation parameter. Those properties are as follows:
* * encryptionDefault
* * encryptionOptions
* * authenticationDefault
* * authenticationOptions
* * diffieHellmanGroupDefault
* * diffieHellmanGroupOptions
* * phaseOneKeylifeDefault
* * phaseTwoKeylifeDefault
* * keylifeLimits
*
*
* Configurations cannot be modified if a network tunnel's requires complex manual setups/configuration modifications by the SoftLayer Network department. If the former is required, the configurations for the network tunnel will be locked until the manual configurations are complete. A network tunnel's configurations are applied via a transaction. If a network tunnel configuration change transaction is currently running, the network tunnel's setting cannot be modified until the running transaction completes.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the modifications made to take effect.
*
* @see SoftLayer_Network_Tunnel_Module_Context::editObject
*/
@ApiMethod(instanceRequired = true)
public Boolean editObject(Context templateObject);
/**
* The address translations will be returned. All the translations will be formatted so that the configurations can be copied into a host file.
*
* Format:
*
* {address translation SoftLayer IP Address} {address translation name}
*
* @see SoftLayer_Network_Tunnel_Module_Context::getAddressTranslationConfigurations
*/
@ApiMethod(instanceRequired = true)
public String getAddressTranslationConfigurations();
/**
* The default authentication type used for both phases of the negotiation process. The default value is set to MD5.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getAuthenticationDefault
*/
@ApiMethod
public String getAuthenticationDefault();
/**
* Authentication options available for both phases of the negotiation process.
*
* The authentication options are as follows:
* * MD5
* * SHA1
* * SHA256
*
* @see SoftLayer_Network_Tunnel_Module_Context::getAuthenticationOptions
*/
@ApiMethod
public List getAuthenticationOptions();
/**
* The default Diffie-Hellman group used for both phases of the negotiation process. The default value is set to 2.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getDiffieHellmanGroupDefault
*/
@ApiMethod
public Long getDiffieHellmanGroupDefault();
/**
* The Diffie-Hellman group options used for both phases of the negotiation process.
*
* The diffie-hellman group options are as follows:
* * 0 (None)
* * 1
* * 2
* * 5
*
* @see SoftLayer_Network_Tunnel_Module_Context::getDiffieHellmanGroupOptions
*/
@ApiMethod
public List getDiffieHellmanGroupOptions();
/**
* The default encryption type used for both phases of the negotiation process. The default value is set to 3DES.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getEncryptionDefault
*/
@ApiMethod
public String getEncryptionDefault();
/**
* Encryption options available for both phases of the negotiation process.
*
* The valid encryption options are as follows:
* * DES
* * 3DES
* * AES128
* * AES192
* * AES256
*
* @see SoftLayer_Network_Tunnel_Module_Context::getEncryptionOptions
*/
@ApiMethod
public List getEncryptionOptions();
/**
* The keylife limits. Keylife max limit is set to 120. Keylife min limit is set to 172800.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getKeylifeLimits
*/
@ApiMethod
public List getKeylifeLimits();
/**
* getObject retrieves the SoftLayer_Network_Tunnel_Module_Context object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Tunnel_Module_Context service. The IPSec network tunnel will be returned if it is associated with the account and the user has proper permission to manage network tunnels.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getObject
*/
@ApiMethod(instanceRequired = true)
public Context getObject();
/**
* All of the IPSec VPN tunnel's configurations will be returned. It will list all of phase one and two negotiation parameters. Both remote and local subnets will be provided as well. This is useful when the configurations need to be passed on to another team and/or company for internal network configuration.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getParameterConfigurationsForCustomerView
*/
@ApiMethod(instanceRequired = true)
public String getParameterConfigurationsForCustomerView();
/**
* The default phase 1 keylife used if a value is not provided. The default value is set to 3600.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getPhaseOneKeylifeDefault
*/
@ApiMethod
public String getPhaseOneKeylifeDefault();
/**
* The default phase 2 keylife used if a value is not provided. The default value is set to 28800.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getPhaseTwoKeylifeDefault
*/
@ApiMethod
public String getPhaseTwoKeylifeDefault();
/**
* Disassociate a customer subnet (remote) from a network tunnel. When a remote subnet is disassociated, that subnet will not able to communicate with private and service subnets on the SoftLayer network.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the disassociation described above to take effect.
*
* @see SoftLayer_Network_Tunnel_Module_Context::removeCustomerSubnetFromNetworkTunnel
*/
@ApiMethod(instanceRequired = true)
public Boolean removeCustomerSubnetFromNetworkTunnel(Long subnetId);
/**
* Disassociate a private subnet from a network tunnel. When a private subnet is disassociated, the customer (remote) subnet on the other end of the tunnel will not able to communicate with the private subnet that was just disassociated.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the disassociation described above to take effect.
*
* @see SoftLayer_Network_Tunnel_Module_Context::removePrivateSubnetFromNetworkTunnel
*/
@ApiMethod(instanceRequired = true)
public Boolean removePrivateSubnetFromNetworkTunnel(Long subnetId);
/**
* Disassociate a service subnet from a network tunnel. When a service subnet is disassociated, that customer (remote) subnet on the other end of the network tunnel will not able to communicate with that service subnet on the SoftLayer network.
*
* NOTE: A network tunnel's configurations must be applied to the network device in order for the disassociation described above to take effect.
*
* @see SoftLayer_Network_Tunnel_Module_Context::removeServiceSubnetFromNetworkTunnel
*/
@ApiMethod(instanceRequired = true)
public Boolean removeServiceSubnetFromNetworkTunnel(Long subnetId);
/**
* The account that a network tunnel belongs to.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getAccount
*/
@ApiMethod(instanceRequired = true)
public Account getAccount();
/**
* The transaction that is currently applying configurations for the network tunnel.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getActiveTransaction
*/
@ApiMethod(instanceRequired = true)
public Transaction getActiveTransaction();
/**
* A network tunnel's address translations.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getAddressTranslations
*/
@ApiMethod(instanceRequired = true)
public List getAddressTranslations();
/**
* Subnets that provide access to SoftLayer services such as the management portal and the SoftLayer API.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getAllAvailableServiceSubnets
*/
@ApiMethod(instanceRequired = true)
public List getAllAvailableServiceSubnets();
/**
* The current billing item for network tunnel.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getBillingItem
*/
@ApiMethod(instanceRequired = true)
public Item getBillingItem();
/**
* Remote subnets that are allowed access through a network tunnel.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getCustomerSubnets
*/
@ApiMethod(instanceRequired = true)
public List getCustomerSubnets();
/**
* The datacenter location for one end of the network tunnel that allows access to account's private subnets.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getDatacenter
*/
@ApiMethod(instanceRequired = true)
public Location getDatacenter();
/**
* Private subnets that can be accessed through the network tunnel.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getInternalSubnets
*/
@ApiMethod(instanceRequired = true)
public List getInternalSubnets();
/**
* Service subnets that can be access through the network tunnel.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getServiceSubnets
*/
@ApiMethod(instanceRequired = true)
public List getServiceSubnets();
/**
* Subnets used for a network tunnel's address translations.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getStaticRouteSubnets
*/
@ApiMethod(instanceRequired = true)
public List getStaticRouteSubnets();
/**
* The transaction history for this network tunnel.
*
* @see SoftLayer_Network_Tunnel_Module_Context::getTransactionHistory
*/
@ApiMethod(instanceRequired = true)
public List getTransactionHistory();
}
public static interface ServiceAsync extends com.softlayer.api.ServiceAsync {
public Mask withNewMask();
public Mask withMask();
public void setMask(Mask mask);
/**
* Async version of {@link Service#addCustomerSubnetToNetworkTunnel}
*/
public Future addCustomerSubnetToNetworkTunnel(Long subnetId);
public Future> addCustomerSubnetToNetworkTunnel(Long subnetId, ResponseHandler callback);
/**
* Async version of {@link Service#addPrivateSubnetToNetworkTunnel}
*/
public Future addPrivateSubnetToNetworkTunnel(Long subnetId);
public Future> addPrivateSubnetToNetworkTunnel(Long subnetId, ResponseHandler callback);
/**
* Async version of {@link Service#addServiceSubnetToNetworkTunnel}
*/
public Future addServiceSubnetToNetworkTunnel(Long subnetId);
public Future> addServiceSubnetToNetworkTunnel(Long subnetId, ResponseHandler callback);
/**
* Async version of {@link Service#applyConfigurationsToDevice}
*/
public Future applyConfigurationsToDevice();
public Future> applyConfigurationsToDevice(ResponseHandler callback);
/**
* Async version of {@link Service#createAddressTranslation}
*/
public Future createAddressTranslation(Translation translation);
public Future> createAddressTranslation(Translation translation, ResponseHandler callback);
/**
* Async version of {@link Service#createAddressTranslations}
*/
public Future> createAddressTranslations(List translations);
public Future> createAddressTranslations(List translations, ResponseHandler> callback);
/**
* Async version of {@link Service#deleteAddressTranslation}
*/
public Future deleteAddressTranslation(Long translationId);
public Future> deleteAddressTranslation(Long translationId, ResponseHandler callback);
/**
* Async version of {@link Service#downloadAddressTranslationConfigurations}
*/
public Future downloadAddressTranslationConfigurations();
public Future> downloadAddressTranslationConfigurations(ResponseHandler callback);
/**
* Async version of {@link Service#downloadParameterConfigurations}
*/
public Future downloadParameterConfigurations();
public Future> downloadParameterConfigurations(ResponseHandler callback);
/**
* Async version of {@link Service#editAddressTranslation}
*/
public Future editAddressTranslation(Translation translation);
public Future> editAddressTranslation(Translation translation, ResponseHandler callback);
/**
* Async version of {@link Service#editAddressTranslations}
*/
public Future> editAddressTranslations(List translations);
public Future> editAddressTranslations(List translations, ResponseHandler> callback);
/**
* Async version of {@link Service#editObject}
*/
public Future editObject(Context templateObject);
public Future> editObject(Context templateObject, ResponseHandler callback);
/**
* Async version of {@link Service#getAddressTranslationConfigurations}
*/
public Future getAddressTranslationConfigurations();
public Future> getAddressTranslationConfigurations(ResponseHandler callback);
/**
* Async version of {@link Service#getAuthenticationDefault}
*/
public Future getAuthenticationDefault();
public Future> getAuthenticationDefault(ResponseHandler callback);
/**
* Async version of {@link Service#getAuthenticationOptions}
*/
public Future> getAuthenticationOptions();
public Future> getAuthenticationOptions(ResponseHandler> callback);
/**
* Async version of {@link Service#getDiffieHellmanGroupDefault}
*/
public Future getDiffieHellmanGroupDefault();
public Future> getDiffieHellmanGroupDefault(ResponseHandler callback);
/**
* Async version of {@link Service#getDiffieHellmanGroupOptions}
*/
public Future> getDiffieHellmanGroupOptions();
public Future> getDiffieHellmanGroupOptions(ResponseHandler> callback);
/**
* Async version of {@link Service#getEncryptionDefault}
*/
public Future getEncryptionDefault();
public Future> getEncryptionDefault(ResponseHandler callback);
/**
* Async version of {@link Service#getEncryptionOptions}
*/
public Future> getEncryptionOptions();
public Future> getEncryptionOptions(ResponseHandler> callback);
/**
* Async version of {@link Service#getKeylifeLimits}
*/
public Future> getKeylifeLimits();
public Future> getKeylifeLimits(ResponseHandler> callback);
/**
* Async version of {@link Service#getObject}
*/
public Future getObject();
public Future> getObject(ResponseHandler callback);
/**
* Async version of {@link Service#getParameterConfigurationsForCustomerView}
*/
public Future getParameterConfigurationsForCustomerView();
public Future> getParameterConfigurationsForCustomerView(ResponseHandler callback);
/**
* Async version of {@link Service#getPhaseOneKeylifeDefault}
*/
public Future getPhaseOneKeylifeDefault();
public Future> getPhaseOneKeylifeDefault(ResponseHandler callback);
/**
* Async version of {@link Service#getPhaseTwoKeylifeDefault}
*/
public Future getPhaseTwoKeylifeDefault();
public Future> getPhaseTwoKeylifeDefault(ResponseHandler callback);
/**
* Async version of {@link Service#removeCustomerSubnetFromNetworkTunnel}
*/
public Future removeCustomerSubnetFromNetworkTunnel(Long subnetId);
public Future> removeCustomerSubnetFromNetworkTunnel(Long subnetId, ResponseHandler callback);
/**
* Async version of {@link Service#removePrivateSubnetFromNetworkTunnel}
*/
public Future removePrivateSubnetFromNetworkTunnel(Long subnetId);
public Future> removePrivateSubnetFromNetworkTunnel(Long subnetId, ResponseHandler callback);
/**
* Async version of {@link Service#removeServiceSubnetFromNetworkTunnel}
*/
public Future removeServiceSubnetFromNetworkTunnel(Long subnetId);
public Future> removeServiceSubnetFromNetworkTunnel(Long subnetId, ResponseHandler callback);
/**
* Async version of {@link Service#getAccount}
*/
public Future getAccount();
/**
* Async callback version of {@link Service#getAccount}
*/
public Future> getAccount(ResponseHandler callback);
/**
* Async version of {@link Service#getActiveTransaction}
*/
public Future getActiveTransaction();
/**
* Async callback version of {@link Service#getActiveTransaction}
*/
public Future> getActiveTransaction(ResponseHandler callback);
/**
* Async version of {@link Service#getAddressTranslations}
*/
public Future> getAddressTranslations();
/**
* Async callback version of {@link Service#getAddressTranslations}
*/
public Future> getAddressTranslations(ResponseHandler> callback);
/**
* Async version of {@link Service#getAllAvailableServiceSubnets}
*/
public Future> getAllAvailableServiceSubnets();
/**
* Async callback version of {@link Service#getAllAvailableServiceSubnets}
*/
public Future> getAllAvailableServiceSubnets(ResponseHandler> callback);
/**
* Async version of {@link Service#getBillingItem}
*/
public Future- getBillingItem();
/**
* Async callback version of {@link Service#getBillingItem}
*/
public Future> getBillingItem(ResponseHandler
- callback);
/**
* Async version of {@link Service#getCustomerSubnets}
*/
public Future
> getCustomerSubnets();
/**
* Async callback version of {@link Service#getCustomerSubnets}
*/
public Future> getCustomerSubnets(ResponseHandler> callback);
/**
* Async version of {@link Service#getDatacenter}
*/
public Future getDatacenter();
/**
* Async callback version of {@link Service#getDatacenter}
*/
public Future> getDatacenter(ResponseHandler callback);
/**
* Async version of {@link Service#getInternalSubnets}
*/
public Future> getInternalSubnets();
/**
* Async callback version of {@link Service#getInternalSubnets}
*/
public Future> getInternalSubnets(ResponseHandler> callback);
/**
* Async version of {@link Service#getServiceSubnets}
*/
public Future> getServiceSubnets();
/**
* Async callback version of {@link Service#getServiceSubnets}
*/
public Future> getServiceSubnets(ResponseHandler> callback);
/**
* Async version of {@link Service#getStaticRouteSubnets}
*/
public Future> getStaticRouteSubnets();
/**
* Async callback version of {@link Service#getStaticRouteSubnets}
*/
public Future> getStaticRouteSubnets(ResponseHandler> callback);
/**
* Async version of {@link Service#getTransactionHistory}
*/
public Future> getTransactionHistory();
/**
* Async callback version of {@link Service#getTransactionHistory}
*/
public Future> getTransactionHistory(ResponseHandler> callback);
}
public static class Mask extends com.softlayer.api.service.Entity.Mask {
public com.softlayer.api.service.Account.Mask account() {
return withSubMask("account", com.softlayer.api.service.Account.Mask.class);
}
public com.softlayer.api.service.provisioning.version1.Transaction.Mask activeTransaction() {
return withSubMask("activeTransaction", com.softlayer.api.service.provisioning.version1.Transaction.Mask.class);
}
public com.softlayer.api.service.network.tunnel.module.context.address.Translation.Mask addressTranslations() {
return withSubMask("addressTranslations", com.softlayer.api.service.network.tunnel.module.context.address.Translation.Mask.class);
}
public com.softlayer.api.service.network.Subnet.Mask allAvailableServiceSubnets() {
return withSubMask("allAvailableServiceSubnets", com.softlayer.api.service.network.Subnet.Mask.class);
}
public com.softlayer.api.service.billing.Item.Mask billingItem() {
return withSubMask("billingItem", com.softlayer.api.service.billing.Item.Mask.class);
}
public com.softlayer.api.service.network.customer.Subnet.Mask customerSubnets() {
return withSubMask("customerSubnets", com.softlayer.api.service.network.customer.Subnet.Mask.class);
}
public com.softlayer.api.service.Location.Mask datacenter() {
return withSubMask("datacenter", com.softlayer.api.service.Location.Mask.class);
}
public com.softlayer.api.service.network.Subnet.Mask internalSubnets() {
return withSubMask("internalSubnets", com.softlayer.api.service.network.Subnet.Mask.class);
}
public com.softlayer.api.service.network.Subnet.Mask serviceSubnets() {
return withSubMask("serviceSubnets", com.softlayer.api.service.network.Subnet.Mask.class);
}
public com.softlayer.api.service.network.Subnet.Mask staticRouteSubnets() {
return withSubMask("staticRouteSubnets", com.softlayer.api.service.network.Subnet.Mask.class);
}
public com.softlayer.api.service.provisioning.version1.Transaction.Mask transactionHistory() {
return withSubMask("transactionHistory", com.softlayer.api.service.provisioning.version1.Transaction.Mask.class);
}
public Mask accountId() {
withLocalProperty("accountId");
return this;
}
public Mask advancedConfigurationFlag() {
withLocalProperty("advancedConfigurationFlag");
return this;
}
public Mask createDate() {
withLocalProperty("createDate");
return this;
}
public Mask customerPeerIpAddress() {
withLocalProperty("customerPeerIpAddress");
return this;
}
public Mask friendlyName() {
withLocalProperty("friendlyName");
return this;
}
public Mask id() {
withLocalProperty("id");
return this;
}
public Mask internalPeerIpAddress() {
withLocalProperty("internalPeerIpAddress");
return this;
}
public Mask modifyDate() {
withLocalProperty("modifyDate");
return this;
}
public Mask name() {
withLocalProperty("name");
return this;
}
public Mask phaseOneAuthentication() {
withLocalProperty("phaseOneAuthentication");
return this;
}
public Mask phaseOneDiffieHellmanGroup() {
withLocalProperty("phaseOneDiffieHellmanGroup");
return this;
}
public Mask phaseOneEncryption() {
withLocalProperty("phaseOneEncryption");
return this;
}
public Mask phaseOneKeylife() {
withLocalProperty("phaseOneKeylife");
return this;
}
public Mask phaseTwoAuthentication() {
withLocalProperty("phaseTwoAuthentication");
return this;
}
public Mask phaseTwoDiffieHellmanGroup() {
withLocalProperty("phaseTwoDiffieHellmanGroup");
return this;
}
public Mask phaseTwoEncryption() {
withLocalProperty("phaseTwoEncryption");
return this;
}
public Mask phaseTwoKeylife() {
withLocalProperty("phaseTwoKeylife");
return this;
}
public Mask phaseTwoPerfectForwardSecrecy() {
withLocalProperty("phaseTwoPerfectForwardSecrecy");
return this;
}
public Mask presharedKey() {
withLocalProperty("presharedKey");
return this;
}
public Mask addressTranslationCount() {
withLocalProperty("addressTranslationCount");
return this;
}
public Mask allAvailableServiceSubnetCount() {
withLocalProperty("allAvailableServiceSubnetCount");
return this;
}
public Mask customerSubnetCount() {
withLocalProperty("customerSubnetCount");
return this;
}
public Mask internalSubnetCount() {
withLocalProperty("internalSubnetCount");
return this;
}
public Mask serviceSubnetCount() {
withLocalProperty("serviceSubnetCount");
return this;
}
public Mask staticRouteSubnetCount() {
withLocalProperty("staticRouteSubnetCount");
return this;
}
public Mask transactionHistoryCount() {
withLocalProperty("transactionHistoryCount");
return this;
}
}
}