// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.labservices.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** Connection profile for how users connect to lab virtual machines. */
@Fluent
public final class ConnectionProfile {
    /*
     * The enabled access level for Web Access over SSH.
     */
    @JsonProperty(value = "webSshAccess")
    private ConnectionType webSshAccess;

    /*
     * The enabled access level for Web Access over RDP.
     */
    @JsonProperty(value = "webRdpAccess")
    private ConnectionType webRdpAccess;

    /*
     * The enabled access level for Client Access over SSH.
     */
    @JsonProperty(value = "clientSshAccess")
    private ConnectionType clientSshAccess;

    /*
     * The enabled access level for Client Access over RDP.
     */
    @JsonProperty(value = "clientRdpAccess")
    private ConnectionType clientRdpAccess;

    /**
     * Get the webSshAccess property: The enabled access level for Web Access over SSH.
     *
     * @return the webSshAccess value.
     */
    public ConnectionType webSshAccess() {
        return this.webSshAccess;
    }

    /**
     * Set the webSshAccess property: The enabled access level for Web Access over SSH.
     *
     * @param webSshAccess the webSshAccess value to set.
     * @return the ConnectionProfile object itself.
     */
    public ConnectionProfile withWebSshAccess(ConnectionType webSshAccess) {
        this.webSshAccess = webSshAccess;
        return this;
    }

    /**
     * Get the webRdpAccess property: The enabled access level for Web Access over RDP.
     *
     * @return the webRdpAccess value.
     */
    public ConnectionType webRdpAccess() {
        return this.webRdpAccess;
    }

    /**
     * Set the webRdpAccess property: The enabled access level for Web Access over RDP.
     *
     * @param webRdpAccess the webRdpAccess value to set.
     * @return the ConnectionProfile object itself.
     */
    public ConnectionProfile withWebRdpAccess(ConnectionType webRdpAccess) {
        this.webRdpAccess = webRdpAccess;
        return this;
    }

    /**
     * Get the clientSshAccess property: The enabled access level for Client Access over SSH.
     *
     * @return the clientSshAccess value.
     */
    public ConnectionType clientSshAccess() {
        return this.clientSshAccess;
    }

    /**
     * Set the clientSshAccess property: The enabled access level for Client Access over SSH.
     *
     * @param clientSshAccess the clientSshAccess value to set.
     * @return the ConnectionProfile object itself.
     */
    public ConnectionProfile withClientSshAccess(ConnectionType clientSshAccess) {
        this.clientSshAccess = clientSshAccess;
        return this;
    }

    /**
     * Get the clientRdpAccess property: The enabled access level for Client Access over RDP.
     *
     * @return the clientRdpAccess value.
     */
    public ConnectionType clientRdpAccess() {
        return this.clientRdpAccess;
    }

    /**
     * Set the clientRdpAccess property: The enabled access level for Client Access over RDP.
     *
     * @param clientRdpAccess the clientRdpAccess value to set.
     * @return the ConnectionProfile object itself.
     */
    public ConnectionProfile withClientRdpAccess(ConnectionType clientRdpAccess) {
        this.clientRdpAccess = clientRdpAccess;
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
    }
}
