com.microsoft.azure.management.network.PointToSiteConfiguration Maven / Gradle / Ivy
Show all versions of azure-mgmt-network Show documentation
/**
* 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.apigeneration.Beta.SinceVersion;
import com.microsoft.azure.management.resources.fluentcore.model.Attachable;
import com.microsoft.azure.management.resources.fluentcore.model.HasInner;
import com.microsoft.azure.management.resources.fluentcore.model.Settable;
import java.io.File;
import java.io.IOException;
/**
* A client-side representation of point-to-site configuration for a virtual network gateway.
*/
@Fluent
@Beta(SinceVersion.V1_6_0)
public interface PointToSiteConfiguration extends
HasInner {
/**
* Grouping of point-to-site configuration definition stages.
*/
interface DefinitionStages {
/**
* The first stage of the point-to-site configuration definition.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface Blank extends WithAddressPool {
}
interface WithAddressPool {
WithAuthenticationType withAddressPool(String addressPool);
}
/**
* The stage of the point-to-site configuration definition allowing to specify authentication type.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithAuthenticationType extends WithAzureCertificate {
/**
* Specifies that RADIUS server will be used for authentication.
* @param serverIPAddress the radius server address
* @param serverSecret the radius server secret
* @return the next stage of the definition
*/
WithAttach withRadiusAuthentication(String serverIPAddress, String serverSecret);
}
/**
* The stage of the point-to-site configuration definition allowing to add root certificate for Azure authentication.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithAzureCertificate {
/**
* Specifies that Azure certificate authentication type will be used and certificate to use for Azure authentication.
* @param name name of certificate
* @param certificateData the certificate public data
* @return the next stage of the definition
*/
WithAttachAndAzureCertificate withAzureCertificate(String name, String certificateData);
/**
* Specifies that Azure certificate authentication type will be used and certificate to use for Azure authentication.
*
* @param name name of certificate
* @param certificateFile public Base64-encoded certificate file
* @return the next stage of the definition
* @throws IOException IOException
*/
WithAttachAndAzureCertificate withAzureCertificateFromFile(String name, File certificateFile) throws IOException;
}
interface WithRevokedCertificate {
WithAttach withRevokedCertificate(String name, String thumbprint);
}
/**
* The stage of a point-to-site configuration definition allowing to specify which tunnel type will be used.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithTunnelType {
/**
* Specifies that only SSTP tunnel type will be used.
* @return the next stage of the definition
*/
WithAttach withSstpOnly();
/**
* Specifies that only IKEv2 VPN tunnel type will be used.
* @return the next stage of the definition
*/
WithAttach withIkeV2Only();
}
/** The final stage of the point-to-site configuration definition.
*
* At this stage, any remaining optional settings can be specified, or the point-to-site configuration definition
* can be attached to the parent virtual network gateway definition.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithAttach extends
Attachable.InDefinition,
WithTunnelType {
}
/** The final stage of the point-to-site configuration definition.
*
* At this stage, any remaining optional settings can be specified, or the point-to-site configuration definition
* can be attached to the parent virtual network gateway definition.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithAttachAndAzureCertificate extends
WithAttach,
WithTunnelType,
WithAzureCertificate,
WithRevokedCertificate {
}
}
/** The entirety of a point-to-site configuration definition.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface Definition extends
DefinitionStages.Blank,
DefinitionStages.WithAuthenticationType,
DefinitionStages.WithAddressPool,
DefinitionStages.WithAttachAndAzureCertificate {
}
/**
* Grouping of point-to-site configuration update stages.
*/
interface UpdateStages {
/**
* The stage of the point-to-site configuration definition allowing to specify address pool.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithAddressPool {
/**
* Specifies address pool.
* @param addressPool address pool
* @return the next stage of the update
*/
Update withAddressPool(String addressPool);
}
/**
* Specifies authentication type of the point-to-site configuration.
*/
interface WithAuthenticationType extends WithAzureCertificate {
/**
* Specifies that RADIUS authentication type will be used.
* @param serverIPAddress the radius server address
* @param serverSecret the radius server secret
* @return the next stage of the update
*/
Update withRadiusAuthentication(String serverIPAddress, String serverSecret);
}
/**
* Specifies Azure certificate for authentication.
*/
interface WithAzureCertificate {
/**
* Specifies that Azure certificate authentication type will be used and certificate to use for Azure authentication.
* @param name name of certificate
* @param certificateData the certificate public data
* @return the next stage of the update
*/
Update withAzureCertificate(String name, String certificateData);
/**
* Specifies that azure certificate authentication type will be used and certificate to use for Azure authentication.
* @param name name of certificate
* @param certificateFile public Base64-encoded certificate file
* @return the next stage of the update
* @throws IOException IOException
*/
Update withAzureCertificateFromFile(String name, File certificateFile) throws IOException;
/**
* Removes attached azure certificate with specified name.
* @param name name of the certificate
* @return the next stage of the update
*/
Update withoutAzureCertificate(String name);
}
/**
* Specifies revoked certificate for azure authentication.
*/
interface WithRevokedCertificate {
/**
* Specifies revoked certificate.
* @param name certificate name
* @param thumbprint certificate thumbprint
* @return the next stage of the update
*/
Update withRevokedCertificate(String name, String thumbprint);
}
/**
* The stage of a point-to-site configuration definition allowing to specify which tunnel type will be used.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithTunnelType {
/**
* Specifies that only SSTP tunnel type will be used.
* @return the next stage of the update
*/
Update withSstpOnly();
/**
* Specifies that only IKEv2 VPN tunnel type will be used.
* @return the next stage of the update
*/
Update withIkeV2Only();
}
}
/**
* The entirety of a subnet update as part of a network update.
*/
interface Update extends
UpdateStages.WithAddressPool,
UpdateStages.WithAuthenticationType,
UpdateStages.WithRevokedCertificate,
UpdateStages.WithTunnelType,
Settable {
}
}