# 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__ = [
    'MachineMountArgs',
    'MachineServiceArgs',
    'MachineServicePortArgs',
]

@pulumi.input_type
class MachineMountArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[str],
                 volume: pulumi.Input[str],
                 encrypted: Optional[pulumi.Input[bool]] = None,
                 size_gb: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] path: Path for volume to be mounted on vm
        :param pulumi.Input[str] volume: Name or ID of volume
        """
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "volume", volume)
        if encrypted is not None:
            pulumi.set(__self__, "encrypted", encrypted)
        if size_gb is not None:
            pulumi.set(__self__, "size_gb", size_gb)

    @property
    @pulumi.getter
    def path(self) -> pulumi.Input[str]:
        """
        Path for volume to be mounted on vm
        """
        return pulumi.get(self, "path")

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

    @property
    @pulumi.getter
    def volume(self) -> pulumi.Input[str]:
        """
        Name or ID of volume
        """
        return pulumi.get(self, "volume")

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

    @property
    @pulumi.getter
    def encrypted(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "encrypted")

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

    @property
    @pulumi.getter(name="sizeGb")
    def size_gb(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "size_gb")

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


@pulumi.input_type
class MachineServiceArgs:
    def __init__(__self__, *,
                 internal_port: pulumi.Input[int],
                 ports: pulumi.Input[Sequence[pulumi.Input['MachineServicePortArgs']]],
                 protocol: pulumi.Input[str]):
        """
        :param pulumi.Input[int] internal_port: Port application listens on internally
        :param pulumi.Input[Sequence[pulumi.Input['MachineServicePortArgs']]] ports: External ports and handlers
        :param pulumi.Input[str] protocol: network protocol
        """
        pulumi.set(__self__, "internal_port", internal_port)
        pulumi.set(__self__, "ports", ports)
        pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="internalPort")
    def internal_port(self) -> pulumi.Input[int]:
        """
        Port application listens on internally
        """
        return pulumi.get(self, "internal_port")

    @internal_port.setter
    def internal_port(self, value: pulumi.Input[int]):
        pulumi.set(self, "internal_port", value)

    @property
    @pulumi.getter
    def ports(self) -> pulumi.Input[Sequence[pulumi.Input['MachineServicePortArgs']]]:
        """
        External ports and handlers
        """
        return pulumi.get(self, "ports")

    @ports.setter
    def ports(self, value: pulumi.Input[Sequence[pulumi.Input['MachineServicePortArgs']]]):
        pulumi.set(self, "ports", value)

    @property
    @pulumi.getter
    def protocol(self) -> pulumi.Input[str]:
        """
        network protocol
        """
        return pulumi.get(self, "protocol")

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


@pulumi.input_type
class MachineServicePortArgs:
    def __init__(__self__, *,
                 port: pulumi.Input[int],
                 handlers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        pulumi.set(__self__, "port", port)
        if handlers is not None:
            pulumi.set(__self__, "handlers", handlers)

    @property
    @pulumi.getter
    def port(self) -> pulumi.Input[int]:
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: pulumi.Input[int]):
        pulumi.set(self, "port", value)

    @property
    @pulumi.getter
    def handlers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "handlers")

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


