# 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__ = [
    'GetLaunchTemplateResult',
    'AwaitableGetLaunchTemplateResult',
    'get_launch_template',
    'get_launch_template_output',
]

@pulumi.output_type
class GetLaunchTemplateResult:
    """
    A collection of values returned by getLaunchTemplate.
    """
    def __init__(__self__, created_at=None, default_version_number=None, id=None, latest_version_number=None, launch_template_id=None, launch_template_name=None, launch_template_project_name=None, launch_template_tags=None, launch_template_version=None, updated_at=None):
        if created_at and not isinstance(created_at, str):
            raise TypeError("Expected argument 'created_at' to be a str")
        pulumi.set(__self__, "created_at", created_at)
        if default_version_number and not isinstance(default_version_number, int):
            raise TypeError("Expected argument 'default_version_number' to be a int")
        pulumi.set(__self__, "default_version_number", default_version_number)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if latest_version_number and not isinstance(latest_version_number, int):
            raise TypeError("Expected argument 'latest_version_number' to be a int")
        pulumi.set(__self__, "latest_version_number", latest_version_number)
        if launch_template_id and not isinstance(launch_template_id, str):
            raise TypeError("Expected argument 'launch_template_id' to be a str")
        pulumi.set(__self__, "launch_template_id", launch_template_id)
        if launch_template_name and not isinstance(launch_template_name, str):
            raise TypeError("Expected argument 'launch_template_name' to be a str")
        pulumi.set(__self__, "launch_template_name", launch_template_name)
        if launch_template_project_name and not isinstance(launch_template_project_name, str):
            raise TypeError("Expected argument 'launch_template_project_name' to be a str")
        pulumi.set(__self__, "launch_template_project_name", launch_template_project_name)
        if launch_template_tags and not isinstance(launch_template_tags, list):
            raise TypeError("Expected argument 'launch_template_tags' to be a list")
        pulumi.set(__self__, "launch_template_tags", launch_template_tags)
        if launch_template_version and not isinstance(launch_template_version, dict):
            raise TypeError("Expected argument 'launch_template_version' to be a dict")
        pulumi.set(__self__, "launch_template_version", launch_template_version)
        if updated_at and not isinstance(updated_at, str):
            raise TypeError("Expected argument 'updated_at' to be a str")
        pulumi.set(__self__, "updated_at", updated_at)

    @property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> builtins.str:
        """
        实例启动模板的创建时间。
        """
        return pulumi.get(self, "created_at")

    @property
    @pulumi.getter(name="defaultVersionNumber")
    def default_version_number(self) -> builtins.int:
        """
        实例启动模板的默认版本号。
        """
        return pulumi.get(self, "default_version_number")

    @property
    @pulumi.getter
    def id(self) -> builtins.str:
        """
        Uniquely identifies the resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="latestVersionNumber")
    def latest_version_number(self) -> builtins.int:
        """
        实例启动模的最新版本号。
        """
        return pulumi.get(self, "latest_version_number")

    @property
    @pulumi.getter(name="launchTemplateId")
    def launch_template_id(self) -> builtins.str:
        """
        实例启动模板 ID。
        """
        return pulumi.get(self, "launch_template_id")

    @property
    @pulumi.getter(name="launchTemplateName")
    def launch_template_name(self) -> builtins.str:
        """
        实例启动模板名称。
        """
        return pulumi.get(self, "launch_template_name")

    @property
    @pulumi.getter(name="launchTemplateProjectName")
    def launch_template_project_name(self) -> builtins.str:
        """
        实例启动模版所属项目。
        """
        return pulumi.get(self, "launch_template_project_name")

    @property
    @pulumi.getter(name="launchTemplateTags")
    def launch_template_tags(self) -> Sequence['outputs.GetLaunchTemplateLaunchTemplateTagResult']:
        """
        实例启动模版的标签信息。
        """
        return pulumi.get(self, "launch_template_tags")

    @property
    @pulumi.getter(name="launchTemplateVersion")
    def launch_template_version(self) -> 'outputs.GetLaunchTemplateLaunchTemplateVersionResult':
        """
        实例启动模板版本信息。
        """
        return pulumi.get(self, "launch_template_version")

    @property
    @pulumi.getter(name="updatedAt")
    def updated_at(self) -> builtins.str:
        """
        实例启动模板的更新时间。
        """
        return pulumi.get(self, "updated_at")


class AwaitableGetLaunchTemplateResult(GetLaunchTemplateResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetLaunchTemplateResult(
            created_at=self.created_at,
            default_version_number=self.default_version_number,
            id=self.id,
            latest_version_number=self.latest_version_number,
            launch_template_id=self.launch_template_id,
            launch_template_name=self.launch_template_name,
            launch_template_project_name=self.launch_template_project_name,
            launch_template_tags=self.launch_template_tags,
            launch_template_version=self.launch_template_version,
            updated_at=self.updated_at)


def get_launch_template(id: Optional[builtins.str] = None,
                        opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLaunchTemplateResult:
    """
    Data Source schema for Byteplus::ECS::Launchtemplate


    :param builtins.str id: Uniquely identifies the resource.
    """
    __args__ = dict()
    __args__['id'] = id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('bytepluscc:ecs/getLaunchTemplate:getLaunchTemplate', __args__, opts=opts, typ=GetLaunchTemplateResult).value

    return AwaitableGetLaunchTemplateResult(
        created_at=pulumi.get(__ret__, 'created_at'),
        default_version_number=pulumi.get(__ret__, 'default_version_number'),
        id=pulumi.get(__ret__, 'id'),
        latest_version_number=pulumi.get(__ret__, 'latest_version_number'),
        launch_template_id=pulumi.get(__ret__, 'launch_template_id'),
        launch_template_name=pulumi.get(__ret__, 'launch_template_name'),
        launch_template_project_name=pulumi.get(__ret__, 'launch_template_project_name'),
        launch_template_tags=pulumi.get(__ret__, 'launch_template_tags'),
        launch_template_version=pulumi.get(__ret__, 'launch_template_version'),
        updated_at=pulumi.get(__ret__, 'updated_at'))
def get_launch_template_output(id: Optional[pulumi.Input[builtins.str]] = None,
                               opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetLaunchTemplateResult]:
    """
    Data Source schema for Byteplus::ECS::Launchtemplate


    :param builtins.str id: Uniquely identifies the resource.
    """
    __args__ = dict()
    __args__['id'] = id
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('bytepluscc:ecs/getLaunchTemplate:getLaunchTemplate', __args__, opts=opts, typ=GetLaunchTemplateResult)
    return __ret__.apply(lambda __response__: GetLaunchTemplateResult(
        created_at=pulumi.get(__response__, 'created_at'),
        default_version_number=pulumi.get(__response__, 'default_version_number'),
        id=pulumi.get(__response__, 'id'),
        latest_version_number=pulumi.get(__response__, 'latest_version_number'),
        launch_template_id=pulumi.get(__response__, 'launch_template_id'),
        launch_template_name=pulumi.get(__response__, 'launch_template_name'),
        launch_template_project_name=pulumi.get(__response__, 'launch_template_project_name'),
        launch_template_tags=pulumi.get(__response__, 'launch_template_tags'),
        launch_template_version=pulumi.get(__response__, 'launch_template_version'),
        updated_at=pulumi.get(__response__, 'updated_at')))
