# 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 builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities
from . import outputs

__all__ = [
    'GetInstallationTemplateInputResult',
    'GetInstallationTemplateLicenseResult',
    'GetInstallationTemplateLicenseOResult',
    'GetInstallationTemplateLicenseUsageResult',
    'GetInstallationTemplateProjectResult',
    'GetInstallationTemplateProjectOResult',
    'GetInstallationTemplateProjectUsageResult',
    'GetServerVniResult',
]

@pulumi.output_type
class GetInstallationTemplateInputResult(dict):
    def __init__(__self__, *,
                 default: builtins.str,
                 description: builtins.str,
                 enums: Sequence[builtins.str],
                 mandatory: builtins.bool,
                 name: builtins.str,
                 type: builtins.str):
        """
        :param builtins.str description: Information about this template.
        """
        pulumi.set(__self__, "default", default)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "enums", enums)
        pulumi.set(__self__, "mandatory", mandatory)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def default(self) -> builtins.str:
        return pulumi.get(self, "default")

    @property
    @pulumi.getter
    def description(self) -> builtins.str:
        """
        Information about this template.
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def mandatory(self) -> builtins.bool:
        return pulumi.get(self, "mandatory")

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> builtins.str:
        return pulumi.get(self, "type")


@pulumi.output_type
class GetInstallationTemplateLicenseResult(dict):
    def __init__(__self__, *,
                 os: Sequence['outputs.GetInstallationTemplateLicenseOResult'],
                 usages: Sequence['outputs.GetInstallationTemplateLicenseUsageResult']):
        pulumi.set(__self__, "os", os)
        pulumi.set(__self__, "usages", usages)

    @property
    @pulumi.getter
    def os(self) -> Sequence['outputs.GetInstallationTemplateLicenseOResult']:
        return pulumi.get(self, "os")

    @property
    @pulumi.getter
    def usages(self) -> Sequence['outputs.GetInstallationTemplateLicenseUsageResult']:
        return pulumi.get(self, "usages")


@pulumi.output_type
class GetInstallationTemplateLicenseOResult(dict):
    def __init__(__self__, *,
                 names: Sequence[builtins.str],
                 url: builtins.str):
        pulumi.set(__self__, "names", names)
        pulumi.set(__self__, "url", url)

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

    @property
    @pulumi.getter
    def url(self) -> builtins.str:
        return pulumi.get(self, "url")


@pulumi.output_type
class GetInstallationTemplateLicenseUsageResult(dict):
    def __init__(__self__, *,
                 names: Sequence[builtins.str],
                 url: builtins.str):
        pulumi.set(__self__, "names", names)
        pulumi.set(__self__, "url", url)

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

    @property
    @pulumi.getter
    def url(self) -> builtins.str:
        return pulumi.get(self, "url")


@pulumi.output_type
class GetInstallationTemplateProjectResult(dict):
    def __init__(__self__, *,
                 os: Sequence['outputs.GetInstallationTemplateProjectOResult'],
                 usages: Sequence['outputs.GetInstallationTemplateProjectUsageResult']):
        """
        :param Sequence['GetInstallationTemplateProjectOArgs'] os: OS template project OS details
        """
        pulumi.set(__self__, "os", os)
        pulumi.set(__self__, "usages", usages)

    @property
    @pulumi.getter
    def os(self) -> Sequence['outputs.GetInstallationTemplateProjectOResult']:
        """
        OS template project OS details
        """
        return pulumi.get(self, "os")

    @property
    @pulumi.getter
    def usages(self) -> Sequence['outputs.GetInstallationTemplateProjectUsageResult']:
        return pulumi.get(self, "usages")


@pulumi.output_type
class GetInstallationTemplateProjectOResult(dict):
    def __init__(__self__, *,
                 governances: Sequence[builtins.str],
                 name: builtins.str,
                 release_notes: builtins.str,
                 url: builtins.str,
                 version: builtins.str):
        """
        :param Sequence[builtins.str] governances: OS template project item governance
        :param builtins.str name: OS template project item name
        :param builtins.str release_notes: OS template project item release notes
        :param builtins.str url: OS template project item url
        :param builtins.str version: OS template project item version
        """
        pulumi.set(__self__, "governances", governances)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "release_notes", release_notes)
        pulumi.set(__self__, "url", url)
        pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def governances(self) -> Sequence[builtins.str]:
        """
        OS template project item governance
        """
        return pulumi.get(self, "governances")

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        OS template project item name
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="releaseNotes")
    def release_notes(self) -> builtins.str:
        """
        OS template project item release notes
        """
        return pulumi.get(self, "release_notes")

    @property
    @pulumi.getter
    def url(self) -> builtins.str:
        """
        OS template project item url
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def version(self) -> builtins.str:
        """
        OS template project item version
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class GetInstallationTemplateProjectUsageResult(dict):
    def __init__(__self__, *,
                 governances: Sequence[builtins.str],
                 name: builtins.str,
                 release_notes: builtins.str,
                 url: builtins.str,
                 version: builtins.str):
        """
        :param Sequence[builtins.str] governances: OS template project item governance
        :param builtins.str name: OS template project item name
        :param builtins.str release_notes: OS template project item release notes
        :param builtins.str url: OS template project item url
        :param builtins.str version: OS template project item version
        """
        pulumi.set(__self__, "governances", governances)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "release_notes", release_notes)
        pulumi.set(__self__, "url", url)
        pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def governances(self) -> Sequence[builtins.str]:
        """
        OS template project item governance
        """
        return pulumi.get(self, "governances")

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        OS template project item name
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="releaseNotes")
    def release_notes(self) -> builtins.str:
        """
        OS template project item release notes
        """
        return pulumi.get(self, "release_notes")

    @property
    @pulumi.getter
    def url(self) -> builtins.str:
        """
        OS template project item url
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def version(self) -> builtins.str:
        """
        OS template project item version
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class GetServerVniResult(dict):
    def __init__(__self__, *,
                 enabled: builtins.bool,
                 mode: builtins.str,
                 name: builtins.str,
                 nics: Sequence[builtins.str],
                 server_name: builtins.str,
                 uuid: builtins.str,
                 vrack: builtins.str):
        """
        :param builtins.bool enabled: VirtualNetworkInterface activation state
        :param builtins.str mode: VirtualNetworkInterface mode (public,vrack,vrack_aggregation)
        :param builtins.str name: User defined VirtualNetworkInterface name
        :param Sequence[builtins.str] nics: NetworkInterfaceControllers bound to this VirtualNetworkInterface
        :param builtins.str server_name: Server bound to this VirtualNetworkInterface
        :param builtins.str uuid: VirtualNetworkInterface unique id
        :param builtins.str vrack: vRack name
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "mode", mode)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "nics", nics)
        pulumi.set(__self__, "server_name", server_name)
        pulumi.set(__self__, "uuid", uuid)
        pulumi.set(__self__, "vrack", vrack)

    @property
    @pulumi.getter
    def enabled(self) -> builtins.bool:
        """
        VirtualNetworkInterface activation state
        """
        return pulumi.get(self, "enabled")

    @property
    @pulumi.getter
    def mode(self) -> builtins.str:
        """
        VirtualNetworkInterface mode (public,vrack,vrack_aggregation)
        """
        return pulumi.get(self, "mode")

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        User defined VirtualNetworkInterface name
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def nics(self) -> Sequence[builtins.str]:
        """
        NetworkInterfaceControllers bound to this VirtualNetworkInterface
        """
        return pulumi.get(self, "nics")

    @property
    @pulumi.getter(name="serverName")
    def server_name(self) -> builtins.str:
        """
        Server bound to this VirtualNetworkInterface
        """
        return pulumi.get(self, "server_name")

    @property
    @pulumi.getter
    def uuid(self) -> builtins.str:
        """
        VirtualNetworkInterface unique id
        """
        return pulumi.get(self, "uuid")

    @property
    @pulumi.getter
    def vrack(self) -> builtins.str:
        """
        vRack name
        """
        return pulumi.get(self, "vrack")


