All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.management.network.PointToSiteConfiguration Maven / Gradle / Ivy

Go to download

This package contains Microsoft Azure Network Management SDK. A new set of management libraries are now Generally Available. For documentation on how to use the new libraries, please see https://aka.ms/azsdk/java/mgmt

There is a newer version: 1.41.4
Show newest version
/**
 * 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 { } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy