# 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
from ._inputs import *

__all__ = ['ScheduleSqlTaskArgs', 'ScheduleSqlTask']

@pulumi.input_type
class ScheduleSqlTaskArgs:
    def __init__(__self__, *,
                 dest_topic_id: pulumi.Input[builtins.str],
                 process_start_time: pulumi.Input[builtins.int],
                 process_time_window: pulumi.Input[builtins.str],
                 query: pulumi.Input[builtins.str],
                 request_cycle: pulumi.Input['ScheduleSqlTaskRequestCycleArgs'],
                 source_topic_id: pulumi.Input[builtins.str],
                 status: pulumi.Input[builtins.int],
                 task_name: pulumi.Input[builtins.str],
                 task_type: pulumi.Input[builtins.int],
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 dest_region: Optional[pulumi.Input[builtins.str]] = None,
                 process_end_time: Optional[pulumi.Input[builtins.int]] = None,
                 process_sql_delay: Optional[pulumi.Input[builtins.int]] = None):
        """
        The set of arguments for constructing a ScheduleSqlTask resource.
        :param pulumi.Input[builtins.str] dest_topic_id: 用于存储定时 SQL 分析结果数据的目标日志主题 ID。
        :param pulumi.Input[builtins.int] process_start_time: 调度定时 SQL 分析任务的开始时间，即创建第一个实例的时间。格式为秒级时间戳。
        :param pulumi.Input[builtins.str] process_time_window: SQL 时间窗口，即定时 SQL 分析任务运行时，日志检索与分析的时间范围，左闭右开格式。最大为 24 小时，最小为 1 分钟。
        :param pulumi.Input[builtins.str] query: 定时 SQL 分析任务定期执行的检索与分析语句，应符合日志服务的检索与分析语法。
        :param pulumi.Input['ScheduleSqlTaskRequestCycleArgs'] request_cycle: 定时 SQL 分析任务的调度周期。调度周期决定每个实例的调度时间。建议调度周期不小于 SQL 时间窗口。
        :param pulumi.Input[builtins.str] source_topic_id: 待进行定时 SQL 分析的原始日志所在的日志主题 ID。仅支持当前地域的日志主题。
        :param pulumi.Input[builtins.int] status: 完成任务配置后是否立即启动定时 SQL 分析任务。可选值：0 关闭；1 立即启动。
        :param pulumi.Input[builtins.str] task_name: 定时 SQL 分析任务名称。命名规则请参考资源命名规则。
        :param pulumi.Input[builtins.int] task_type: 任务类型：0 表示日志到日志；1 表示日志到指标。
        :param pulumi.Input[builtins.str] description: 定时 SQL 分析任务的简单描述。不支持<>、'、\\、\\。长度范围为 0～64 个字符。
        :param pulumi.Input[builtins.str] dest_region: 目标日志主题所属地域。默认为当前地域。
        :param pulumi.Input[builtins.int] process_end_time: 调度定时 SQL 分析任务的结束时间，格式为秒级时间戳。如果不配置，表示持续运行定时 SQL 分析任务。到达结束时间后，日志服务不会再创建实例及执行定时 SQL 分析，但任务状态仍为运行中，直至手动暂停任务。
        :param pulumi.Input[builtins.int] process_sql_delay: 每次调度的延迟时间。取值范围为 0～120，单位为秒。如果不配置，则表示 0，即无延时。
        """
        pulumi.set(__self__, "dest_topic_id", dest_topic_id)
        pulumi.set(__self__, "process_start_time", process_start_time)
        pulumi.set(__self__, "process_time_window", process_time_window)
        pulumi.set(__self__, "query", query)
        pulumi.set(__self__, "request_cycle", request_cycle)
        pulumi.set(__self__, "source_topic_id", source_topic_id)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "task_name", task_name)
        pulumi.set(__self__, "task_type", task_type)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if dest_region is not None:
            pulumi.set(__self__, "dest_region", dest_region)
        if process_end_time is not None:
            pulumi.set(__self__, "process_end_time", process_end_time)
        if process_sql_delay is not None:
            pulumi.set(__self__, "process_sql_delay", process_sql_delay)

    @property
    @pulumi.getter(name="destTopicId")
    def dest_topic_id(self) -> pulumi.Input[builtins.str]:
        """
        用于存储定时 SQL 分析结果数据的目标日志主题 ID。
        """
        return pulumi.get(self, "dest_topic_id")

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

    @property
    @pulumi.getter(name="processStartTime")
    def process_start_time(self) -> pulumi.Input[builtins.int]:
        """
        调度定时 SQL 分析任务的开始时间，即创建第一个实例的时间。格式为秒级时间戳。
        """
        return pulumi.get(self, "process_start_time")

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

    @property
    @pulumi.getter(name="processTimeWindow")
    def process_time_window(self) -> pulumi.Input[builtins.str]:
        """
        SQL 时间窗口，即定时 SQL 分析任务运行时，日志检索与分析的时间范围，左闭右开格式。最大为 24 小时，最小为 1 分钟。
        """
        return pulumi.get(self, "process_time_window")

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

    @property
    @pulumi.getter
    def query(self) -> pulumi.Input[builtins.str]:
        """
        定时 SQL 分析任务定期执行的检索与分析语句，应符合日志服务的检索与分析语法。
        """
        return pulumi.get(self, "query")

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

    @property
    @pulumi.getter(name="requestCycle")
    def request_cycle(self) -> pulumi.Input['ScheduleSqlTaskRequestCycleArgs']:
        """
        定时 SQL 分析任务的调度周期。调度周期决定每个实例的调度时间。建议调度周期不小于 SQL 时间窗口。
        """
        return pulumi.get(self, "request_cycle")

    @request_cycle.setter
    def request_cycle(self, value: pulumi.Input['ScheduleSqlTaskRequestCycleArgs']):
        pulumi.set(self, "request_cycle", value)

    @property
    @pulumi.getter(name="sourceTopicId")
    def source_topic_id(self) -> pulumi.Input[builtins.str]:
        """
        待进行定时 SQL 分析的原始日志所在的日志主题 ID。仅支持当前地域的日志主题。
        """
        return pulumi.get(self, "source_topic_id")

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

    @property
    @pulumi.getter
    def status(self) -> pulumi.Input[builtins.int]:
        """
        完成任务配置后是否立即启动定时 SQL 分析任务。可选值：0 关闭；1 立即启动。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="taskName")
    def task_name(self) -> pulumi.Input[builtins.str]:
        """
        定时 SQL 分析任务名称。命名规则请参考资源命名规则。
        """
        return pulumi.get(self, "task_name")

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

    @property
    @pulumi.getter(name="taskType")
    def task_type(self) -> pulumi.Input[builtins.int]:
        """
        任务类型：0 表示日志到日志；1 表示日志到指标。
        """
        return pulumi.get(self, "task_type")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        定时 SQL 分析任务的简单描述。不支持<>、'、\\、\\。长度范围为 0～64 个字符。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="destRegion")
    def dest_region(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        目标日志主题所属地域。默认为当前地域。
        """
        return pulumi.get(self, "dest_region")

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

    @property
    @pulumi.getter(name="processEndTime")
    def process_end_time(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        调度定时 SQL 分析任务的结束时间，格式为秒级时间戳。如果不配置，表示持续运行定时 SQL 分析任务。到达结束时间后，日志服务不会再创建实例及执行定时 SQL 分析，但任务状态仍为运行中，直至手动暂停任务。
        """
        return pulumi.get(self, "process_end_time")

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

    @property
    @pulumi.getter(name="processSqlDelay")
    def process_sql_delay(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        每次调度的延迟时间。取值范围为 0～120，单位为秒。如果不配置，则表示 0，即无延时。
        """
        return pulumi.get(self, "process_sql_delay")

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


@pulumi.input_type
class _ScheduleSqlTaskState:
    def __init__(__self__, *,
                 created_time: Optional[pulumi.Input[builtins.int]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 dest_project_id: Optional[pulumi.Input[builtins.str]] = None,
                 dest_region: Optional[pulumi.Input[builtins.str]] = None,
                 dest_topic_id: Optional[pulumi.Input[builtins.str]] = None,
                 dest_topic_name: Optional[pulumi.Input[builtins.str]] = None,
                 process_end_time: Optional[pulumi.Input[builtins.int]] = None,
                 process_sql_delay: Optional[pulumi.Input[builtins.int]] = None,
                 process_start_time: Optional[pulumi.Input[builtins.int]] = None,
                 process_time_window: Optional[pulumi.Input[builtins.str]] = None,
                 query: Optional[pulumi.Input[builtins.str]] = None,
                 request_cycle: Optional[pulumi.Input['ScheduleSqlTaskRequestCycleArgs']] = None,
                 source_project_id: Optional[pulumi.Input[builtins.str]] = None,
                 source_project_name: Optional[pulumi.Input[builtins.str]] = None,
                 source_topic_id: Optional[pulumi.Input[builtins.str]] = None,
                 source_topic_name: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.int]] = None,
                 task_id: Optional[pulumi.Input[builtins.str]] = None,
                 task_name: Optional[pulumi.Input[builtins.str]] = None,
                 task_type: Optional[pulumi.Input[builtins.int]] = None,
                 updated_time: Optional[pulumi.Input[builtins.int]] = None):
        """
        Input properties used for looking up and filtering ScheduleSqlTask resources.
        :param pulumi.Input[builtins.int] created_time: 创建时间（秒级 Unix 时间戳）。
        :param pulumi.Input[builtins.str] description: 定时 SQL 分析任务的简单描述。不支持<>、'、\\、\\。长度范围为 0～64 个字符。
        :param pulumi.Input[builtins.str] dest_project_id: 目标日志项目 ID。
        :param pulumi.Input[builtins.str] dest_region: 目标日志主题所属地域。默认为当前地域。
        :param pulumi.Input[builtins.str] dest_topic_id: 用于存储定时 SQL 分析结果数据的目标日志主题 ID。
        :param pulumi.Input[builtins.str] dest_topic_name: 目标日志主题名称。
        :param pulumi.Input[builtins.int] process_end_time: 调度定时 SQL 分析任务的结束时间，格式为秒级时间戳。如果不配置，表示持续运行定时 SQL 分析任务。到达结束时间后，日志服务不会再创建实例及执行定时 SQL 分析，但任务状态仍为运行中，直至手动暂停任务。
        :param pulumi.Input[builtins.int] process_sql_delay: 每次调度的延迟时间。取值范围为 0～120，单位为秒。如果不配置，则表示 0，即无延时。
        :param pulumi.Input[builtins.int] process_start_time: 调度定时 SQL 分析任务的开始时间，即创建第一个实例的时间。格式为秒级时间戳。
        :param pulumi.Input[builtins.str] process_time_window: SQL 时间窗口，即定时 SQL 分析任务运行时，日志检索与分析的时间范围，左闭右开格式。最大为 24 小时，最小为 1 分钟。
        :param pulumi.Input[builtins.str] query: 定时 SQL 分析任务定期执行的检索与分析语句，应符合日志服务的检索与分析语法。
        :param pulumi.Input['ScheduleSqlTaskRequestCycleArgs'] request_cycle: 定时 SQL 分析任务的调度周期。调度周期决定每个实例的调度时间。建议调度周期不小于 SQL 时间窗口。
        :param pulumi.Input[builtins.str] source_project_id: 源日志项目 ID。
        :param pulumi.Input[builtins.str] source_project_name: 源日志项目名称。
        :param pulumi.Input[builtins.str] source_topic_id: 待进行定时 SQL 分析的原始日志所在的日志主题 ID。仅支持当前地域的日志主题。
        :param pulumi.Input[builtins.str] source_topic_name: 源日志主题名称。
        :param pulumi.Input[builtins.int] status: 完成任务配置后是否立即启动定时 SQL 分析任务。可选值：0 关闭；1 立即启动。
        :param pulumi.Input[builtins.str] task_id: 任务 ID。
        :param pulumi.Input[builtins.str] task_name: 定时 SQL 分析任务名称。命名规则请参考资源命名规则。
        :param pulumi.Input[builtins.int] task_type: 任务类型：0 表示日志到日志；1 表示日志到指标。
        :param pulumi.Input[builtins.int] updated_time: 修改时间（秒级 Unix 时间戳）。
        """
        if created_time is not None:
            pulumi.set(__self__, "created_time", created_time)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if dest_project_id is not None:
            pulumi.set(__self__, "dest_project_id", dest_project_id)
        if dest_region is not None:
            pulumi.set(__self__, "dest_region", dest_region)
        if dest_topic_id is not None:
            pulumi.set(__self__, "dest_topic_id", dest_topic_id)
        if dest_topic_name is not None:
            pulumi.set(__self__, "dest_topic_name", dest_topic_name)
        if process_end_time is not None:
            pulumi.set(__self__, "process_end_time", process_end_time)
        if process_sql_delay is not None:
            pulumi.set(__self__, "process_sql_delay", process_sql_delay)
        if process_start_time is not None:
            pulumi.set(__self__, "process_start_time", process_start_time)
        if process_time_window is not None:
            pulumi.set(__self__, "process_time_window", process_time_window)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if request_cycle is not None:
            pulumi.set(__self__, "request_cycle", request_cycle)
        if source_project_id is not None:
            pulumi.set(__self__, "source_project_id", source_project_id)
        if source_project_name is not None:
            pulumi.set(__self__, "source_project_name", source_project_name)
        if source_topic_id is not None:
            pulumi.set(__self__, "source_topic_id", source_topic_id)
        if source_topic_name is not None:
            pulumi.set(__self__, "source_topic_name", source_topic_name)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if task_id is not None:
            pulumi.set(__self__, "task_id", task_id)
        if task_name is not None:
            pulumi.set(__self__, "task_name", task_name)
        if task_type is not None:
            pulumi.set(__self__, "task_type", task_type)
        if updated_time is not None:
            pulumi.set(__self__, "updated_time", updated_time)

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        创建时间（秒级 Unix 时间戳）。
        """
        return pulumi.get(self, "created_time")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        定时 SQL 分析任务的简单描述。不支持<>、'、\\、\\。长度范围为 0～64 个字符。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="destProjectId")
    def dest_project_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        目标日志项目 ID。
        """
        return pulumi.get(self, "dest_project_id")

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

    @property
    @pulumi.getter(name="destRegion")
    def dest_region(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        目标日志主题所属地域。默认为当前地域。
        """
        return pulumi.get(self, "dest_region")

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

    @property
    @pulumi.getter(name="destTopicId")
    def dest_topic_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用于存储定时 SQL 分析结果数据的目标日志主题 ID。
        """
        return pulumi.get(self, "dest_topic_id")

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

    @property
    @pulumi.getter(name="destTopicName")
    def dest_topic_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        目标日志主题名称。
        """
        return pulumi.get(self, "dest_topic_name")

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

    @property
    @pulumi.getter(name="processEndTime")
    def process_end_time(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        调度定时 SQL 分析任务的结束时间，格式为秒级时间戳。如果不配置，表示持续运行定时 SQL 分析任务。到达结束时间后，日志服务不会再创建实例及执行定时 SQL 分析，但任务状态仍为运行中，直至手动暂停任务。
        """
        return pulumi.get(self, "process_end_time")

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

    @property
    @pulumi.getter(name="processSqlDelay")
    def process_sql_delay(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        每次调度的延迟时间。取值范围为 0～120，单位为秒。如果不配置，则表示 0，即无延时。
        """
        return pulumi.get(self, "process_sql_delay")

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

    @property
    @pulumi.getter(name="processStartTime")
    def process_start_time(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        调度定时 SQL 分析任务的开始时间，即创建第一个实例的时间。格式为秒级时间戳。
        """
        return pulumi.get(self, "process_start_time")

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

    @property
    @pulumi.getter(name="processTimeWindow")
    def process_time_window(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        SQL 时间窗口，即定时 SQL 分析任务运行时，日志检索与分析的时间范围，左闭右开格式。最大为 24 小时，最小为 1 分钟。
        """
        return pulumi.get(self, "process_time_window")

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

    @property
    @pulumi.getter
    def query(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        定时 SQL 分析任务定期执行的检索与分析语句，应符合日志服务的检索与分析语法。
        """
        return pulumi.get(self, "query")

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

    @property
    @pulumi.getter(name="requestCycle")
    def request_cycle(self) -> Optional[pulumi.Input['ScheduleSqlTaskRequestCycleArgs']]:
        """
        定时 SQL 分析任务的调度周期。调度周期决定每个实例的调度时间。建议调度周期不小于 SQL 时间窗口。
        """
        return pulumi.get(self, "request_cycle")

    @request_cycle.setter
    def request_cycle(self, value: Optional[pulumi.Input['ScheduleSqlTaskRequestCycleArgs']]):
        pulumi.set(self, "request_cycle", value)

    @property
    @pulumi.getter(name="sourceProjectId")
    def source_project_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        源日志项目 ID。
        """
        return pulumi.get(self, "source_project_id")

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

    @property
    @pulumi.getter(name="sourceProjectName")
    def source_project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        源日志项目名称。
        """
        return pulumi.get(self, "source_project_name")

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

    @property
    @pulumi.getter(name="sourceTopicId")
    def source_topic_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        待进行定时 SQL 分析的原始日志所在的日志主题 ID。仅支持当前地域的日志主题。
        """
        return pulumi.get(self, "source_topic_id")

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

    @property
    @pulumi.getter(name="sourceTopicName")
    def source_topic_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        源日志主题名称。
        """
        return pulumi.get(self, "source_topic_name")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        完成任务配置后是否立即启动定时 SQL 分析任务。可选值：0 关闭；1 立即启动。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="taskId")
    def task_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        任务 ID。
        """
        return pulumi.get(self, "task_id")

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

    @property
    @pulumi.getter(name="taskName")
    def task_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        定时 SQL 分析任务名称。命名规则请参考资源命名规则。
        """
        return pulumi.get(self, "task_name")

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

    @property
    @pulumi.getter(name="taskType")
    def task_type(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        任务类型：0 表示日志到日志；1 表示日志到指标。
        """
        return pulumi.get(self, "task_type")

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

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        修改时间（秒级 Unix 时间戳）。
        """
        return pulumi.get(self, "updated_time")

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


@pulumi.type_token("bytepluscc:tls/scheduleSqlTask:ScheduleSqlTask")
class ScheduleSqlTask(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 dest_region: Optional[pulumi.Input[builtins.str]] = None,
                 dest_topic_id: Optional[pulumi.Input[builtins.str]] = None,
                 process_end_time: Optional[pulumi.Input[builtins.int]] = None,
                 process_sql_delay: Optional[pulumi.Input[builtins.int]] = None,
                 process_start_time: Optional[pulumi.Input[builtins.int]] = None,
                 process_time_window: Optional[pulumi.Input[builtins.str]] = None,
                 query: Optional[pulumi.Input[builtins.str]] = None,
                 request_cycle: Optional[pulumi.Input[Union['ScheduleSqlTaskRequestCycleArgs', 'ScheduleSqlTaskRequestCycleArgsDict']]] = None,
                 source_topic_id: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.int]] = None,
                 task_name: Optional[pulumi.Input[builtins.str]] = None,
                 task_type: Optional[pulumi.Input[builtins.int]] = None,
                 __props__=None):
        """
        定时 SQL 分析任务的资源定义。

        ## Import

        ```sh
        $ pulumi import bytepluscc:tls/scheduleSqlTask:ScheduleSqlTask example "task_id"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.str] description: 定时 SQL 分析任务的简单描述。不支持<>、'、\\、\\。长度范围为 0～64 个字符。
        :param pulumi.Input[builtins.str] dest_region: 目标日志主题所属地域。默认为当前地域。
        :param pulumi.Input[builtins.str] dest_topic_id: 用于存储定时 SQL 分析结果数据的目标日志主题 ID。
        :param pulumi.Input[builtins.int] process_end_time: 调度定时 SQL 分析任务的结束时间，格式为秒级时间戳。如果不配置，表示持续运行定时 SQL 分析任务。到达结束时间后，日志服务不会再创建实例及执行定时 SQL 分析，但任务状态仍为运行中，直至手动暂停任务。
        :param pulumi.Input[builtins.int] process_sql_delay: 每次调度的延迟时间。取值范围为 0～120，单位为秒。如果不配置，则表示 0，即无延时。
        :param pulumi.Input[builtins.int] process_start_time: 调度定时 SQL 分析任务的开始时间，即创建第一个实例的时间。格式为秒级时间戳。
        :param pulumi.Input[builtins.str] process_time_window: SQL 时间窗口，即定时 SQL 分析任务运行时，日志检索与分析的时间范围，左闭右开格式。最大为 24 小时，最小为 1 分钟。
        :param pulumi.Input[builtins.str] query: 定时 SQL 分析任务定期执行的检索与分析语句，应符合日志服务的检索与分析语法。
        :param pulumi.Input[Union['ScheduleSqlTaskRequestCycleArgs', 'ScheduleSqlTaskRequestCycleArgsDict']] request_cycle: 定时 SQL 分析任务的调度周期。调度周期决定每个实例的调度时间。建议调度周期不小于 SQL 时间窗口。
        :param pulumi.Input[builtins.str] source_topic_id: 待进行定时 SQL 分析的原始日志所在的日志主题 ID。仅支持当前地域的日志主题。
        :param pulumi.Input[builtins.int] status: 完成任务配置后是否立即启动定时 SQL 分析任务。可选值：0 关闭；1 立即启动。
        :param pulumi.Input[builtins.str] task_name: 定时 SQL 分析任务名称。命名规则请参考资源命名规则。
        :param pulumi.Input[builtins.int] task_type: 任务类型：0 表示日志到日志；1 表示日志到指标。
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: ScheduleSqlTaskArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        定时 SQL 分析任务的资源定义。

        ## Import

        ```sh
        $ pulumi import bytepluscc:tls/scheduleSqlTask:ScheduleSqlTask example "task_id"
        ```

        :param str resource_name: The name of the resource.
        :param ScheduleSqlTaskArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(ScheduleSqlTaskArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 dest_region: Optional[pulumi.Input[builtins.str]] = None,
                 dest_topic_id: Optional[pulumi.Input[builtins.str]] = None,
                 process_end_time: Optional[pulumi.Input[builtins.int]] = None,
                 process_sql_delay: Optional[pulumi.Input[builtins.int]] = None,
                 process_start_time: Optional[pulumi.Input[builtins.int]] = None,
                 process_time_window: Optional[pulumi.Input[builtins.str]] = None,
                 query: Optional[pulumi.Input[builtins.str]] = None,
                 request_cycle: Optional[pulumi.Input[Union['ScheduleSqlTaskRequestCycleArgs', 'ScheduleSqlTaskRequestCycleArgsDict']]] = None,
                 source_topic_id: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.int]] = None,
                 task_name: Optional[pulumi.Input[builtins.str]] = None,
                 task_type: Optional[pulumi.Input[builtins.int]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = ScheduleSqlTaskArgs.__new__(ScheduleSqlTaskArgs)

            __props__.__dict__["description"] = description
            __props__.__dict__["dest_region"] = dest_region
            if dest_topic_id is None and not opts.urn:
                raise TypeError("Missing required property 'dest_topic_id'")
            __props__.__dict__["dest_topic_id"] = dest_topic_id
            __props__.__dict__["process_end_time"] = process_end_time
            __props__.__dict__["process_sql_delay"] = process_sql_delay
            if process_start_time is None and not opts.urn:
                raise TypeError("Missing required property 'process_start_time'")
            __props__.__dict__["process_start_time"] = process_start_time
            if process_time_window is None and not opts.urn:
                raise TypeError("Missing required property 'process_time_window'")
            __props__.__dict__["process_time_window"] = process_time_window
            if query is None and not opts.urn:
                raise TypeError("Missing required property 'query'")
            __props__.__dict__["query"] = query
            if request_cycle is None and not opts.urn:
                raise TypeError("Missing required property 'request_cycle'")
            __props__.__dict__["request_cycle"] = request_cycle
            if source_topic_id is None and not opts.urn:
                raise TypeError("Missing required property 'source_topic_id'")
            __props__.__dict__["source_topic_id"] = source_topic_id
            if status is None and not opts.urn:
                raise TypeError("Missing required property 'status'")
            __props__.__dict__["status"] = status
            if task_name is None and not opts.urn:
                raise TypeError("Missing required property 'task_name'")
            __props__.__dict__["task_name"] = task_name
            if task_type is None and not opts.urn:
                raise TypeError("Missing required property 'task_type'")
            __props__.__dict__["task_type"] = task_type
            __props__.__dict__["created_time"] = None
            __props__.__dict__["dest_project_id"] = None
            __props__.__dict__["dest_topic_name"] = None
            __props__.__dict__["source_project_id"] = None
            __props__.__dict__["source_project_name"] = None
            __props__.__dict__["source_topic_name"] = None
            __props__.__dict__["task_id"] = None
            __props__.__dict__["updated_time"] = None
        super(ScheduleSqlTask, __self__).__init__(
            'bytepluscc:tls/scheduleSqlTask:ScheduleSqlTask',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            created_time: Optional[pulumi.Input[builtins.int]] = None,
            description: Optional[pulumi.Input[builtins.str]] = None,
            dest_project_id: Optional[pulumi.Input[builtins.str]] = None,
            dest_region: Optional[pulumi.Input[builtins.str]] = None,
            dest_topic_id: Optional[pulumi.Input[builtins.str]] = None,
            dest_topic_name: Optional[pulumi.Input[builtins.str]] = None,
            process_end_time: Optional[pulumi.Input[builtins.int]] = None,
            process_sql_delay: Optional[pulumi.Input[builtins.int]] = None,
            process_start_time: Optional[pulumi.Input[builtins.int]] = None,
            process_time_window: Optional[pulumi.Input[builtins.str]] = None,
            query: Optional[pulumi.Input[builtins.str]] = None,
            request_cycle: Optional[pulumi.Input[Union['ScheduleSqlTaskRequestCycleArgs', 'ScheduleSqlTaskRequestCycleArgsDict']]] = None,
            source_project_id: Optional[pulumi.Input[builtins.str]] = None,
            source_project_name: Optional[pulumi.Input[builtins.str]] = None,
            source_topic_id: Optional[pulumi.Input[builtins.str]] = None,
            source_topic_name: Optional[pulumi.Input[builtins.str]] = None,
            status: Optional[pulumi.Input[builtins.int]] = None,
            task_id: Optional[pulumi.Input[builtins.str]] = None,
            task_name: Optional[pulumi.Input[builtins.str]] = None,
            task_type: Optional[pulumi.Input[builtins.int]] = None,
            updated_time: Optional[pulumi.Input[builtins.int]] = None) -> 'ScheduleSqlTask':
        """
        Get an existing ScheduleSqlTask resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.int] created_time: 创建时间（秒级 Unix 时间戳）。
        :param pulumi.Input[builtins.str] description: 定时 SQL 分析任务的简单描述。不支持<>、'、\\、\\。长度范围为 0～64 个字符。
        :param pulumi.Input[builtins.str] dest_project_id: 目标日志项目 ID。
        :param pulumi.Input[builtins.str] dest_region: 目标日志主题所属地域。默认为当前地域。
        :param pulumi.Input[builtins.str] dest_topic_id: 用于存储定时 SQL 分析结果数据的目标日志主题 ID。
        :param pulumi.Input[builtins.str] dest_topic_name: 目标日志主题名称。
        :param pulumi.Input[builtins.int] process_end_time: 调度定时 SQL 分析任务的结束时间，格式为秒级时间戳。如果不配置，表示持续运行定时 SQL 分析任务。到达结束时间后，日志服务不会再创建实例及执行定时 SQL 分析，但任务状态仍为运行中，直至手动暂停任务。
        :param pulumi.Input[builtins.int] process_sql_delay: 每次调度的延迟时间。取值范围为 0～120，单位为秒。如果不配置，则表示 0，即无延时。
        :param pulumi.Input[builtins.int] process_start_time: 调度定时 SQL 分析任务的开始时间，即创建第一个实例的时间。格式为秒级时间戳。
        :param pulumi.Input[builtins.str] process_time_window: SQL 时间窗口，即定时 SQL 分析任务运行时，日志检索与分析的时间范围，左闭右开格式。最大为 24 小时，最小为 1 分钟。
        :param pulumi.Input[builtins.str] query: 定时 SQL 分析任务定期执行的检索与分析语句，应符合日志服务的检索与分析语法。
        :param pulumi.Input[Union['ScheduleSqlTaskRequestCycleArgs', 'ScheduleSqlTaskRequestCycleArgsDict']] request_cycle: 定时 SQL 分析任务的调度周期。调度周期决定每个实例的调度时间。建议调度周期不小于 SQL 时间窗口。
        :param pulumi.Input[builtins.str] source_project_id: 源日志项目 ID。
        :param pulumi.Input[builtins.str] source_project_name: 源日志项目名称。
        :param pulumi.Input[builtins.str] source_topic_id: 待进行定时 SQL 分析的原始日志所在的日志主题 ID。仅支持当前地域的日志主题。
        :param pulumi.Input[builtins.str] source_topic_name: 源日志主题名称。
        :param pulumi.Input[builtins.int] status: 完成任务配置后是否立即启动定时 SQL 分析任务。可选值：0 关闭；1 立即启动。
        :param pulumi.Input[builtins.str] task_id: 任务 ID。
        :param pulumi.Input[builtins.str] task_name: 定时 SQL 分析任务名称。命名规则请参考资源命名规则。
        :param pulumi.Input[builtins.int] task_type: 任务类型：0 表示日志到日志；1 表示日志到指标。
        :param pulumi.Input[builtins.int] updated_time: 修改时间（秒级 Unix 时间戳）。
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _ScheduleSqlTaskState.__new__(_ScheduleSqlTaskState)

        __props__.__dict__["created_time"] = created_time
        __props__.__dict__["description"] = description
        __props__.__dict__["dest_project_id"] = dest_project_id
        __props__.__dict__["dest_region"] = dest_region
        __props__.__dict__["dest_topic_id"] = dest_topic_id
        __props__.__dict__["dest_topic_name"] = dest_topic_name
        __props__.__dict__["process_end_time"] = process_end_time
        __props__.__dict__["process_sql_delay"] = process_sql_delay
        __props__.__dict__["process_start_time"] = process_start_time
        __props__.__dict__["process_time_window"] = process_time_window
        __props__.__dict__["query"] = query
        __props__.__dict__["request_cycle"] = request_cycle
        __props__.__dict__["source_project_id"] = source_project_id
        __props__.__dict__["source_project_name"] = source_project_name
        __props__.__dict__["source_topic_id"] = source_topic_id
        __props__.__dict__["source_topic_name"] = source_topic_name
        __props__.__dict__["status"] = status
        __props__.__dict__["task_id"] = task_id
        __props__.__dict__["task_name"] = task_name
        __props__.__dict__["task_type"] = task_type
        __props__.__dict__["updated_time"] = updated_time
        return ScheduleSqlTask(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> pulumi.Output[builtins.int]:
        """
        创建时间（秒级 Unix 时间戳）。
        """
        return pulumi.get(self, "created_time")

    @property
    @pulumi.getter
    def description(self) -> pulumi.Output[builtins.str]:
        """
        定时 SQL 分析任务的简单描述。不支持<>、'、\\、\\。长度范围为 0～64 个字符。
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="destProjectId")
    def dest_project_id(self) -> pulumi.Output[builtins.str]:
        """
        目标日志项目 ID。
        """
        return pulumi.get(self, "dest_project_id")

    @property
    @pulumi.getter(name="destRegion")
    def dest_region(self) -> pulumi.Output[builtins.str]:
        """
        目标日志主题所属地域。默认为当前地域。
        """
        return pulumi.get(self, "dest_region")

    @property
    @pulumi.getter(name="destTopicId")
    def dest_topic_id(self) -> pulumi.Output[builtins.str]:
        """
        用于存储定时 SQL 分析结果数据的目标日志主题 ID。
        """
        return pulumi.get(self, "dest_topic_id")

    @property
    @pulumi.getter(name="destTopicName")
    def dest_topic_name(self) -> pulumi.Output[builtins.str]:
        """
        目标日志主题名称。
        """
        return pulumi.get(self, "dest_topic_name")

    @property
    @pulumi.getter(name="processEndTime")
    def process_end_time(self) -> pulumi.Output[builtins.int]:
        """
        调度定时 SQL 分析任务的结束时间，格式为秒级时间戳。如果不配置，表示持续运行定时 SQL 分析任务。到达结束时间后，日志服务不会再创建实例及执行定时 SQL 分析，但任务状态仍为运行中，直至手动暂停任务。
        """
        return pulumi.get(self, "process_end_time")

    @property
    @pulumi.getter(name="processSqlDelay")
    def process_sql_delay(self) -> pulumi.Output[builtins.int]:
        """
        每次调度的延迟时间。取值范围为 0～120，单位为秒。如果不配置，则表示 0，即无延时。
        """
        return pulumi.get(self, "process_sql_delay")

    @property
    @pulumi.getter(name="processStartTime")
    def process_start_time(self) -> pulumi.Output[builtins.int]:
        """
        调度定时 SQL 分析任务的开始时间，即创建第一个实例的时间。格式为秒级时间戳。
        """
        return pulumi.get(self, "process_start_time")

    @property
    @pulumi.getter(name="processTimeWindow")
    def process_time_window(self) -> pulumi.Output[builtins.str]:
        """
        SQL 时间窗口，即定时 SQL 分析任务运行时，日志检索与分析的时间范围，左闭右开格式。最大为 24 小时，最小为 1 分钟。
        """
        return pulumi.get(self, "process_time_window")

    @property
    @pulumi.getter
    def query(self) -> pulumi.Output[builtins.str]:
        """
        定时 SQL 分析任务定期执行的检索与分析语句，应符合日志服务的检索与分析语法。
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="requestCycle")
    def request_cycle(self) -> pulumi.Output['outputs.ScheduleSqlTaskRequestCycle']:
        """
        定时 SQL 分析任务的调度周期。调度周期决定每个实例的调度时间。建议调度周期不小于 SQL 时间窗口。
        """
        return pulumi.get(self, "request_cycle")

    @property
    @pulumi.getter(name="sourceProjectId")
    def source_project_id(self) -> pulumi.Output[builtins.str]:
        """
        源日志项目 ID。
        """
        return pulumi.get(self, "source_project_id")

    @property
    @pulumi.getter(name="sourceProjectName")
    def source_project_name(self) -> pulumi.Output[builtins.str]:
        """
        源日志项目名称。
        """
        return pulumi.get(self, "source_project_name")

    @property
    @pulumi.getter(name="sourceTopicId")
    def source_topic_id(self) -> pulumi.Output[builtins.str]:
        """
        待进行定时 SQL 分析的原始日志所在的日志主题 ID。仅支持当前地域的日志主题。
        """
        return pulumi.get(self, "source_topic_id")

    @property
    @pulumi.getter(name="sourceTopicName")
    def source_topic_name(self) -> pulumi.Output[builtins.str]:
        """
        源日志主题名称。
        """
        return pulumi.get(self, "source_topic_name")

    @property
    @pulumi.getter
    def status(self) -> pulumi.Output[builtins.int]:
        """
        完成任务配置后是否立即启动定时 SQL 分析任务。可选值：0 关闭；1 立即启动。
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="taskId")
    def task_id(self) -> pulumi.Output[builtins.str]:
        """
        任务 ID。
        """
        return pulumi.get(self, "task_id")

    @property
    @pulumi.getter(name="taskName")
    def task_name(self) -> pulumi.Output[builtins.str]:
        """
        定时 SQL 分析任务名称。命名规则请参考资源命名规则。
        """
        return pulumi.get(self, "task_name")

    @property
    @pulumi.getter(name="taskType")
    def task_type(self) -> pulumi.Output[builtins.int]:
        """
        任务类型：0 表示日志到日志；1 表示日志到指标。
        """
        return pulumi.get(self, "task_type")

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> pulumi.Output[builtins.int]:
        """
        修改时间（秒级 Unix 时间戳）。
        """
        return pulumi.get(self, "updated_time")

