Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See License.txt in the project root for
license information.
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.management.network;
import com.microsoft.azure.management.apigeneration.Beta;
import com.microsoft.azure.management.apigeneration.Fluent;
import com.microsoft.azure.management.network.implementation.NetworkManager;
import com.microsoft.azure.management.network.implementation.PublicIPAddressInner;
import com.microsoft.azure.management.network.model.UpdatableWithTags;
import com.microsoft.azure.management.resources.fluentcore.arm.AvailabilityZoneId;
import com.microsoft.azure.management.resources.fluentcore.arm.models.GroupableResource;
import com.microsoft.azure.management.resources.fluentcore.arm.models.Resource;
import com.microsoft.azure.management.resources.fluentcore.model.Creatable;
import com.microsoft.azure.management.resources.fluentcore.model.Refreshable;
import com.microsoft.azure.management.resources.fluentcore.model.Updatable;
import com.microsoft.azure.management.resources.fluentcore.model.Appliable;
import java.util.List;
import java.util.Set;
Public IP address.
/**
* Public IP address.
*/
@Fluent()
public interface PublicIPAddress extends
GroupableResource<NetworkManager, PublicIPAddressInner>,
Refreshable<PublicIPAddress>,
Updatable<PublicIPAddress.Update>,
UpdatableWithTags<PublicIPAddress> {
// Getters
Returns: the IP version of the public IP address
/**
* @return the IP version of the public IP address
*/
IPVersion version();
Returns: the assigned IP address
/**
* @return the assigned IP address
*/
String ipAddress();
Returns: the assigned leaf domain label
/**
* @return the assigned leaf domain label
*/
String leafDomainLabel();
Returns: the assigned FQDN (fully qualified domain name)
/**
* @return the assigned FQDN (fully qualified domain name)
*/
String fqdn();
Returns: the assigned reverse FQDN, if any
/**
* @return the assigned reverse FQDN, if any
*/
String reverseFqdn();
Returns: the IP address allocation method (Static/Dynamic)
/**
* @return the IP address allocation method (Static/Dynamic)
*/
IPAllocationMethod ipAllocationMethod();
Returns: the idle connection timeout setting (in minutes)
/**
* @return the idle connection timeout setting (in minutes)
*/
int idleTimeoutInMinutes();
Returns: the load balancer public frontend that this public IP address is assigned to
/**
* @return the load balancer public frontend that this public IP address is assigned to
*/
LoadBalancerPublicFrontend getAssignedLoadBalancerFrontend();
Returns: true if this public IP address is assigned to a load balancer
/**
* @return true if this public IP address is assigned to a load balancer
*/
boolean hasAssignedLoadBalancer();
Returns: the network interface IP configuration that this public IP address is assigned to
/**
* @return the network interface IP configuration that this public IP address is assigned to
*/
NicIPConfiguration getAssignedNetworkInterfaceIPConfiguration();
Returns: true if this public IP address is assigned to a network interface
/**
* @return true if this public IP address is assigned to a network interface
*/
boolean hasAssignedNetworkInterface();
Returns: the availability zones assigned to the public IP address
/**
* @return the availability zones assigned to the public IP address
*/
@Beta(Beta.SinceVersion.V1_3_0)
Set<AvailabilityZoneId> availabilityZones();
Returns: public IP address sku.
/**
* @return public IP address sku.
*/
@Beta(Beta.SinceVersion.V1_3_0)
PublicIPSkuType sku();
Returns: read-only list of ipTags assosiated with public ip address
/**
* @return read-only list of ipTags assosiated with public ip address
*/
@Beta(Beta.SinceVersion.V1_10_0)
List<IpTag> ipTags();
Container interface for all the definitions.
/**
* Container interface for all the definitions.
*/
interface Definition extends
DefinitionStages.Blank,
DefinitionStages.WithGroup,
DefinitionStages.WithCreate {
}
Grouping of public IP address definition stages.
/**
* Grouping of public IP address definition stages.
*/
interface DefinitionStages {
The first stage of a public IP address definition.
/**
* The first stage of a public IP address definition.
*/
interface Blank
extends GroupableResource.DefinitionWithRegion<WithGroup> {
}
The stage of the public IP address definition allowing to specify the resource group.
/**
* The stage of the public IP address definition allowing to specify the resource group.
*/
interface WithGroup
extends GroupableResource.DefinitionStages.WithGroup<WithCreate> {
}
A public IP address definition allowing to set the IP allocation method (static or dynamic).
/**
* A public IP address definition allowing to set the IP allocation method (static or dynamic).
*/
interface WithIPAddress {
Enables static IP address allocation.
Use PublicIPAddress.ipAddress()
after the public IP address is created to obtain the actual IP address allocated for this resource by Azure
Returns: the next stage of the definition
/**
* Enables static IP address allocation.
* <p>
* Use {@link PublicIPAddress#ipAddress()} after the public IP address is created to obtain the
* actual IP address allocated for this resource by Azure
*
* @return the next stage of the definition
*/
WithCreate withStaticIP();
Enables dynamic IP address allocation.
Returns: the next stage of the definition
/**
* Enables dynamic IP address allocation.
*
* @return the next stage of the definition
*/
WithCreate withDynamicIP();
}
A public IP address definition allowing to specify the leaf domain label, if any.
/**
* A public IP address definition allowing to specify the leaf domain label, if any.
*/
interface WithLeafDomainLabel {
Specifies the leaf domain label to associate with this public IP address.
The fully qualified domain name (FQDN)
will be constructed automatically by appending the rest of the domain to this label.
Params: - dnsName – the leaf domain label to use. This must follow the required naming convention for leaf domain names.
Returns: the next stage of the definition
/**
* Specifies the leaf domain label to associate with this public IP address.
* <p>
* The fully qualified domain name (FQDN)
* will be constructed automatically by appending the rest of the domain to this label.
* @param dnsName the leaf domain label to use. This must follow the required naming convention for leaf domain names.
* @return the next stage of the definition
*/
WithCreate withLeafDomainLabel(String dnsName);
Ensures that no leaf domain label will be used.
This means that this public IP address will not be associated with a domain name.
Returns: the next stage of the definition
/**
* Ensures that no leaf domain label will be used.
* <p>
* This means that this public IP address will not be associated with a domain name.
* @return the next stage of the definition
*/
WithCreate withoutLeafDomainLabel();
}
A public IP address definition allowing the reverse FQDN to be specified.
/**
* A public IP address definition allowing the reverse FQDN to be specified.
*/
interface WithReverseFQDN {
Specifies the reverse FQDN to assign to this public IP address.
Params: - reverseFQDN – the reverse FQDN to assign
Returns: the next stage of the definition
/**
* Specifies the reverse FQDN to assign to this public IP address.
* <p>
*
* @param reverseFQDN the reverse FQDN to assign
* @return the next stage of the definition
*/
WithCreate withReverseFqdn(String reverseFQDN);
Ensures that no reverse FQDN will be used.
Returns: the next stage of the definition
/**
* Ensures that no reverse FQDN will be used.
* @return the next stage of the definition
*/
WithCreate withoutReverseFqdn();
}
A public IP address definition allowing the idle timeout to be specified.
/**
* A public IP address definition allowing the idle timeout to be specified.
*/
interface WithIdleTimeout {
Specifies the timeout (in minutes) for an idle connection.
Params: - minutes – the length of the time out in minutes
Returns: the next stage of the definition
/**
* Specifies the timeout (in minutes) for an idle connection.
*
* @param minutes the length of the time out in minutes
* @return the next stage of the definition
*/
WithCreate withIdleTimeoutInMinutes(int minutes);
}
The stage of the IP address definition allowing to specify availability zone.
/**
* The stage of the IP address definition allowing to specify availability zone.
*/
@Beta(Beta.SinceVersion.V1_3_0)
interface WithAvailabilityZone {
Specifies the availability zone for the IP address.
Params: - zoneId – the zone identifier.
Returns: the next stage of the definition
/**
* Specifies the availability zone for the IP address.
*
* @param zoneId the zone identifier.
* @return the next stage of the definition
*/
@Beta(Beta.SinceVersion.V1_3_0)
WithCreate withAvailabilityZone(AvailabilityZoneId zoneId);
}
The stage of the IP address definition allowing to specify SKU.
/**
* The stage of the IP address definition allowing to specify SKU.
*/
@Beta(Beta.SinceVersion.V1_3_0)
interface WithSku {
Specifies the SKU for the IP address.
Params: - skuType – the SKU type
Returns: the next stage of the definition
/**
* Specifies the SKU for the IP address.
*
* @param skuType the SKU type
* @return the next stage of the definition
*/
WithCreate withSku(PublicIPSkuType skuType);
}
The stage of the definition allowing to specify ipTags associated with the public IP address.
/**
* The stage of the definition allowing to specify ipTags associated with the public IP address.
*/
@Beta(Beta.SinceVersion.V1_10_0)
interface WithIpTag {
Sets an ipTag associated with the public IP address.
Params: - tag – ip tag value
Returns: the next stage of the definition
/**
* Sets an ipTag associated with the public IP address.
* @param tag ip tag value
* @return the next stage of the definition
*/
WithCreate withIpTag(String tag);
Sets an ipTag associated with the public IP address.
Params: - tag – ip tag value
- ipTagType – ipTagType
Returns: the next stage of the definition
/**
* Sets an ipTag associated with the public IP address.
* @param tag ip tag value
* @param ipTagType ipTagType
* @return the next stage of the definition
*/
WithCreate withIpTag(String tag, String ipTagType);
}
The stage of the public IP definition which contains all the minimum required inputs for the resource to be created (via Creatable<PublicIPAddress>.create()
), but also allows for any other optional settings to be specified. /**
* The stage of the public IP definition which contains all the minimum required inputs for
* the resource to be created (via {@link WithCreate#create()}), but also allows
* for any other optional settings to be specified.
*/
interface WithCreate extends
Creatable<PublicIPAddress>,
DefinitionStages.WithLeafDomainLabel,
DefinitionStages.WithIPAddress,
DefinitionStages.WithReverseFQDN,
DefinitionStages.WithIdleTimeout,
DefinitionStages.WithAvailabilityZone,
DefinitionStages.WithSku,
DefinitionStages.WithIpTag,
Resource.DefinitionWithTags<WithCreate> {
}
}
Container interface for all the updates.
Use Appliable<PublicIPAddress>.apply()
to apply the changes to the resource in Azure.
/**
* Container interface for all the updates.
* <p>
* Use {@link Update#apply()} to apply the changes to the resource in Azure.
*/
interface Update extends
Appliable<PublicIPAddress>,
UpdateStages.WithIPAddress,
UpdateStages.WithLeafDomainLabel,
UpdateStages.WithReverseFQDN,
UpdateStages.WithIdleTimout,
UpdateStages.WithIpTag,
Resource.UpdateWithTags<Update> {
}
Grouping of public IP address update stages.
/**
* Grouping of public IP address update stages.
*/
interface UpdateStages {
A public IP address update allowing to change the IP allocation method (static or dynamic).
/**
* A public IP address update allowing to change the IP allocation method (static or dynamic).
*/
interface WithIPAddress {
Enables static IP address allocation.
Use PublicIPAddress.ipAddress()
after the public IP address is updated to obtain the actual IP address allocated for this resource by Azure
Returns: the next stage of the resource update
/**
* Enables static IP address allocation.
* <p>
* Use {@link PublicIPAddress#ipAddress()} after the public IP address is updated to
* obtain the actual IP address allocated for this resource by Azure
*
* @return the next stage of the resource update
*/
Update withStaticIP();
Enables dynamic IP address allocation.
Returns: the next stage of the resource update
/**
* Enables dynamic IP address allocation.
*
* @return the next stage of the resource update
*/
Update withDynamicIP();
}
A public IP address update allowing to change the leaf domain label, if any.
/**
* A public IP address update allowing to change the leaf domain label, if any.
*/
interface WithLeafDomainLabel {
Specifies the leaf domain label to associate with this public IP address.
The fully qualified domain name (FQDN)
will be constructed automatically by appending the rest of the domain to this label.
Params: - dnsName – the leaf domain label to use. This must follow the required naming convention for leaf domain names.
Returns: the next stage of the resource update
/**
* Specifies the leaf domain label to associate with this public IP address.
* <p>
* The fully qualified domain name (FQDN)
* will be constructed automatically by appending the rest of the domain to this label.
* @param dnsName the leaf domain label to use. This must follow the required naming convention for leaf domain names.
* @return the next stage of the resource update
*/
Update withLeafDomainLabel(String dnsName);
Ensures that no leaf domain label will be used.
This means that this public IP address will not be associated with a domain name.
Returns: the next stage of the resource update
/**
* Ensures that no leaf domain label will be used.
* <p>
* This means that this public IP address will not be associated with a domain name.
* @return the next stage of the resource update
*/
Update withoutLeafDomainLabel();
}
A public IP address update allowing the reverse FQDN to be changed.
/**
* A public IP address update allowing the reverse FQDN to be changed.
*/
interface WithReverseFQDN {
Specifies the reverse FQDN to assign to this public IP address.
Params: - reverseFQDN – the reverse FQDN to assign
Returns: the next stage of the resource update
/**
* Specifies the reverse FQDN to assign to this public IP address.
*
* @param reverseFQDN the reverse FQDN to assign
* @return the next stage of the resource update
*/
Update withReverseFqdn(String reverseFQDN);
Ensures that no reverse FQDN will be used.
Returns: The next stage of the resource update
/**
* Ensures that no reverse FQDN will be used.
*
* @return The next stage of the resource update
*/
Update withoutReverseFqdn();
}
A public IP address update allowing the idle timeout to be changed.
/**
* A public IP address update allowing the idle timeout to be changed.
*/
interface WithIdleTimout {
Specifies the timeout (in minutes) for an idle connection.
Params: - minutes – the length of the time out in minutes
Returns: the next stage of the resource update
/**
* Specifies the timeout (in minutes) for an idle connection.
*
* @param minutes the length of the time out in minutes
* @return the next stage of the resource update
*/
Update withIdleTimeoutInMinutes(int minutes);
}
The stage of the update allowing to specify ipTags associated with the public IP address.
/**
* The stage of the update allowing to specify ipTags associated with the public IP address.
*/
@Beta(Beta.SinceVersion.V1_10_0)
interface WithIpTag {
Sets an ipTag associated with the public IP address.
Params: - tag – ip tag value
Returns: the next stage of the update
/**
* Sets an ipTag associated with the public IP address.
* @param tag ip tag value
* @return the next stage of the update
*/
Update withIpTag(String tag);
Sets an ipTag associated with the public IP address.
Params: - tag – ip tag value
- ipTagType – ipTagType
Returns: the next stage of the update
/**
* Sets an ipTag associated with the public IP address.
* @param tag ip tag value
* @param ipTagType ipTagType
* @return the next stage of the update
*/
Update withIpTag(String tag, String ipTagType);
Removes an ipTag associated with the public IP address.
Params: - tag – ip tag value
Returns: the next stage of the update
/**
* Removes an ipTag associated with the public IP address.
* @param tag ip tag value
* @return the next stage of the update
*/
Update withoutIpTag(String tag);
}
}
}