# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'ServicePlanDefaultAutoShutdownArgs',
    'ServicePlanDefaultConnectionArgs',
    'ServicePlanSupportArgs',
]

@pulumi.input_type
class ServicePlanDefaultAutoShutdownArgs:
    def __init__(__self__, *,
                 disconnect_delay: Optional[pulumi.Input[str]] = None,
                 idle_delay: Optional[pulumi.Input[str]] = None,
                 no_connect_delay: Optional[pulumi.Input[str]] = None,
                 shutdown_on_idle: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] disconnect_delay: The amount of time a VM will stay running after a user disconnects if this behavior is enabled. This value must be formatted as an ISO 8601 string.
        :param pulumi.Input[str] idle_delay: The amount of time a VM will idle before it is shutdown if this behavior is enabled. This value must be formatted as an ISO 8601 string.
        :param pulumi.Input[str] no_connect_delay: The amount of time a VM will stay running before it is shutdown if no connection is made and this behavior is enabled. This value must be formatted as an ISO 8601 string.
        :param pulumi.Input[str] shutdown_on_idle: Will a VM get shutdown when it has idled for a period of time? Possible values are `LowUsage` and `UserAbsence`.
        """
        if disconnect_delay is not None:
            pulumi.set(__self__, "disconnect_delay", disconnect_delay)
        if idle_delay is not None:
            pulumi.set(__self__, "idle_delay", idle_delay)
        if no_connect_delay is not None:
            pulumi.set(__self__, "no_connect_delay", no_connect_delay)
        if shutdown_on_idle is not None:
            pulumi.set(__self__, "shutdown_on_idle", shutdown_on_idle)

    @property
    @pulumi.getter(name="disconnectDelay")
    def disconnect_delay(self) -> Optional[pulumi.Input[str]]:
        """
        The amount of time a VM will stay running after a user disconnects if this behavior is enabled. This value must be formatted as an ISO 8601 string.
        """
        return pulumi.get(self, "disconnect_delay")

    @disconnect_delay.setter
    def disconnect_delay(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "disconnect_delay", value)

    @property
    @pulumi.getter(name="idleDelay")
    def idle_delay(self) -> Optional[pulumi.Input[str]]:
        """
        The amount of time a VM will idle before it is shutdown if this behavior is enabled. This value must be formatted as an ISO 8601 string.
        """
        return pulumi.get(self, "idle_delay")

    @idle_delay.setter
    def idle_delay(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "idle_delay", value)

    @property
    @pulumi.getter(name="noConnectDelay")
    def no_connect_delay(self) -> Optional[pulumi.Input[str]]:
        """
        The amount of time a VM will stay running before it is shutdown if no connection is made and this behavior is enabled. This value must be formatted as an ISO 8601 string.
        """
        return pulumi.get(self, "no_connect_delay")

    @no_connect_delay.setter
    def no_connect_delay(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "no_connect_delay", value)

    @property
    @pulumi.getter(name="shutdownOnIdle")
    def shutdown_on_idle(self) -> Optional[pulumi.Input[str]]:
        """
        Will a VM get shutdown when it has idled for a period of time? Possible values are `LowUsage` and `UserAbsence`.
        """
        return pulumi.get(self, "shutdown_on_idle")

    @shutdown_on_idle.setter
    def shutdown_on_idle(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "shutdown_on_idle", value)


@pulumi.input_type
class ServicePlanDefaultConnectionArgs:
    def __init__(__self__, *,
                 client_rdp_access: Optional[pulumi.Input[str]] = None,
                 client_ssh_access: Optional[pulumi.Input[str]] = None,
                 web_rdp_access: Optional[pulumi.Input[str]] = None,
                 web_ssh_access: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] client_rdp_access: The enabled access level for Client Access over RDP. Possible values are `Private` and `Public`.
        :param pulumi.Input[str] client_ssh_access: The enabled access level for Client Access over SSH. Possible values are `Private` and `Public`.
        :param pulumi.Input[str] web_rdp_access: The enabled access level for Web Access over RDP. Possible values are `Private` and `Public`.
        :param pulumi.Input[str] web_ssh_access: The enabled access level for Web Access over SSH. Possible values are `Private` and `Public`.
        """
        if client_rdp_access is not None:
            pulumi.set(__self__, "client_rdp_access", client_rdp_access)
        if client_ssh_access is not None:
            pulumi.set(__self__, "client_ssh_access", client_ssh_access)
        if web_rdp_access is not None:
            pulumi.set(__self__, "web_rdp_access", web_rdp_access)
        if web_ssh_access is not None:
            pulumi.set(__self__, "web_ssh_access", web_ssh_access)

    @property
    @pulumi.getter(name="clientRdpAccess")
    def client_rdp_access(self) -> Optional[pulumi.Input[str]]:
        """
        The enabled access level for Client Access over RDP. Possible values are `Private` and `Public`.
        """
        return pulumi.get(self, "client_rdp_access")

    @client_rdp_access.setter
    def client_rdp_access(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_rdp_access", value)

    @property
    @pulumi.getter(name="clientSshAccess")
    def client_ssh_access(self) -> Optional[pulumi.Input[str]]:
        """
        The enabled access level for Client Access over SSH. Possible values are `Private` and `Public`.
        """
        return pulumi.get(self, "client_ssh_access")

    @client_ssh_access.setter
    def client_ssh_access(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_ssh_access", value)

    @property
    @pulumi.getter(name="webRdpAccess")
    def web_rdp_access(self) -> Optional[pulumi.Input[str]]:
        """
        The enabled access level for Web Access over RDP. Possible values are `Private` and `Public`.
        """
        return pulumi.get(self, "web_rdp_access")

    @web_rdp_access.setter
    def web_rdp_access(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "web_rdp_access", value)

    @property
    @pulumi.getter(name="webSshAccess")
    def web_ssh_access(self) -> Optional[pulumi.Input[str]]:
        """
        The enabled access level for Web Access over SSH. Possible values are `Private` and `Public`.
        """
        return pulumi.get(self, "web_ssh_access")

    @web_ssh_access.setter
    def web_ssh_access(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "web_ssh_access", value)


@pulumi.input_type
class ServicePlanSupportArgs:
    def __init__(__self__, *,
                 email: Optional[pulumi.Input[str]] = None,
                 instructions: Optional[pulumi.Input[str]] = None,
                 phone: Optional[pulumi.Input[str]] = None,
                 url: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] email: The email address for the support contact.
        :param pulumi.Input[str] instructions: The instructions for users of the Lab Service Plan.
        :param pulumi.Input[str] phone: The phone number for the support contact.
        :param pulumi.Input[str] url: The web address for users of the Lab Service Plan.
        """
        if email is not None:
            pulumi.set(__self__, "email", email)
        if instructions is not None:
            pulumi.set(__self__, "instructions", instructions)
        if phone is not None:
            pulumi.set(__self__, "phone", phone)
        if url is not None:
            pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter
    def email(self) -> Optional[pulumi.Input[str]]:
        """
        The email address for the support contact.
        """
        return pulumi.get(self, "email")

    @email.setter
    def email(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "email", value)

    @property
    @pulumi.getter
    def instructions(self) -> Optional[pulumi.Input[str]]:
        """
        The instructions for users of the Lab Service Plan.
        """
        return pulumi.get(self, "instructions")

    @instructions.setter
    def instructions(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "instructions", value)

    @property
    @pulumi.getter
    def phone(self) -> Optional[pulumi.Input[str]]:
        """
        The phone number for the support contact.
        """
        return pulumi.get(self, "phone")

    @phone.setter
    def phone(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "phone", value)

    @property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[str]]:
        """
        The web address for users of the Lab Service Plan.
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "url", value)


