# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
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__ = [
    'GetUrlsResult',
    'AwaitableGetUrlsResult',
    'get_urls',
    'get_urls_output',
]

@pulumi.output_type
class GetUrlsResult:
    """
    A collection of values returned by getUrls.
    """
    def __init__(__self__, architecture=None, id=None, platform=None, sbc=None, schematic_id=None, talos_version=None, urls=None):
        if architecture and not isinstance(architecture, str):
            raise TypeError("Expected argument 'architecture' to be a str")
        pulumi.set(__self__, "architecture", architecture)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if platform and not isinstance(platform, str):
            raise TypeError("Expected argument 'platform' to be a str")
        pulumi.set(__self__, "platform", platform)
        if sbc and not isinstance(sbc, str):
            raise TypeError("Expected argument 'sbc' to be a str")
        pulumi.set(__self__, "sbc", sbc)
        if schematic_id and not isinstance(schematic_id, str):
            raise TypeError("Expected argument 'schematic_id' to be a str")
        pulumi.set(__self__, "schematic_id", schematic_id)
        if talos_version and not isinstance(talos_version, str):
            raise TypeError("Expected argument 'talos_version' to be a str")
        pulumi.set(__self__, "talos_version", talos_version)
        if urls and not isinstance(urls, dict):
            raise TypeError("Expected argument 'urls' to be a dict")
        pulumi.set(__self__, "urls", urls)

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

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

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

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

    @_builtins.property
    @pulumi.getter(name="schematicId")
    def schematic_id(self) -> _builtins.str:
        return pulumi.get(self, "schematic_id")

    @_builtins.property
    @pulumi.getter(name="talosVersion")
    def talos_version(self) -> _builtins.str:
        return pulumi.get(self, "talos_version")

    @_builtins.property
    @pulumi.getter
    def urls(self) -> 'outputs.GetUrlsUrlsResult':
        return pulumi.get(self, "urls")


class AwaitableGetUrlsResult(GetUrlsResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetUrlsResult(
            architecture=self.architecture,
            id=self.id,
            platform=self.platform,
            sbc=self.sbc,
            schematic_id=self.schematic_id,
            talos_version=self.talos_version,
            urls=self.urls)


def get_urls(architecture: Optional[_builtins.str] = None,
             platform: Optional[_builtins.str] = None,
             sbc: Optional[_builtins.str] = None,
             schematic_id: Optional[_builtins.str] = None,
             talos_version: Optional[_builtins.str] = None,
             opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUrlsResult:
    """
    Generates URLs for different assets supported by the Talos image factory.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_talos as talos

    this = talos.imageFactory.get_urls(talos_version="v1.7.5",
        schematic_id="376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba",
        platform="metal")
    pulumi.export("installerImage", this.urls.installer)
    ```
    """
    __args__ = dict()
    __args__['architecture'] = architecture
    __args__['platform'] = platform
    __args__['sbc'] = sbc
    __args__['schematicId'] = schematic_id
    __args__['talosVersion'] = talos_version
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('talos:imageFactory/getUrls:getUrls', __args__, opts=opts, typ=GetUrlsResult).value

    return AwaitableGetUrlsResult(
        architecture=pulumi.get(__ret__, 'architecture'),
        id=pulumi.get(__ret__, 'id'),
        platform=pulumi.get(__ret__, 'platform'),
        sbc=pulumi.get(__ret__, 'sbc'),
        schematic_id=pulumi.get(__ret__, 'schematic_id'),
        talos_version=pulumi.get(__ret__, 'talos_version'),
        urls=pulumi.get(__ret__, 'urls'))
def get_urls_output(architecture: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                    platform: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                    sbc: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                    schematic_id: Optional[pulumi.Input[_builtins.str]] = None,
                    talos_version: Optional[pulumi.Input[_builtins.str]] = None,
                    opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetUrlsResult]:
    """
    Generates URLs for different assets supported by the Talos image factory.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_talos as talos

    this = talos.imageFactory.get_urls(talos_version="v1.7.5",
        schematic_id="376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba",
        platform="metal")
    pulumi.export("installerImage", this.urls.installer)
    ```
    """
    __args__ = dict()
    __args__['architecture'] = architecture
    __args__['platform'] = platform
    __args__['sbc'] = sbc
    __args__['schematicId'] = schematic_id
    __args__['talosVersion'] = talos_version
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getUrls:getUrls', __args__, opts=opts, typ=GetUrlsResult)
    return __ret__.apply(lambda __response__: GetUrlsResult(
        architecture=pulumi.get(__response__, 'architecture'),
        id=pulumi.get(__response__, 'id'),
        platform=pulumi.get(__response__, 'platform'),
        sbc=pulumi.get(__response__, 'sbc'),
        schematic_id=pulumi.get(__response__, 'schematic_id'),
        talos_version=pulumi.get(__response__, 'talos_version'),
        urls=pulumi.get(__response__, 'urls')))
