# 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__ = ['InvocationArgs', 'Invocation']

@pulumi.input_type
class InvocationArgs:
    def __init__(__self__, *,
                 command_id: pulumi.Input[builtins.str],
                 instance_ids: pulumi.Input[Sequence[pulumi.Input[builtins.str]]],
                 invocation_name: pulumi.Input[builtins.str],
                 frequency: Optional[pulumi.Input[builtins.str]] = None,
                 invocation_description: Optional[pulumi.Input[builtins.str]] = None,
                 launch_time: Optional[pulumi.Input[builtins.str]] = None,
                 parameters: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 recurrence_end_time: Optional[pulumi.Input[builtins.str]] = None,
                 repeat_mode: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationTagArgs']]]] = None,
                 timeout: Optional[pulumi.Input[builtins.int]] = None,
                 username: Optional[pulumi.Input[builtins.str]] = None,
                 windows_password: Optional[pulumi.Input[builtins.str]] = None,
                 working_dir: Optional[pulumi.Input[builtins.str]] = None):
        """
        The set of arguments for constructing a Invocation resource.
        :param pulumi.Input[builtins.str] command_id: 命令ID。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] instance_ids: 实例ID列表，最多支持200个ID。
        :param pulumi.Input[builtins.str] invocation_name: 作业名称。不超过64个字符。暂不限制特殊字符。同地域下作业名称可重复。
        :param pulumi.Input[builtins.str] frequency: 执行频率。RepeatMode=Rate 时本参数必填。格式：<执行间隔数值><执行间隔单位>，执行间隔单位：支持分钟（5m-60m）、小时（1h-24h）和天（1d-7d）。执行间隔基于固定频率，与作业实际执行需要的时间无关。创建作业后基于LaunchTime执行一次，根据间隔设置确定下一次执行时间。
        :param pulumi.Input[builtins.str] invocation_description: 作业描述，默认为空字符串，不超过256个字符。
        :param pulumi.Input[builtins.str] launch_time: 执行时间。
        :param pulumi.Input[builtins.str] parameters: 命令中包含自定义参数时，需通过本参数传入自定义参数的键值对。自定义参数个数范围为0~60。Key不允许为空字符串，最多支持64个字符。Value允许为空字符串。自定义参数与原始命令内容在Base64编码后，综合长度不能超过16KB。设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数，使用默认值代替。
        :param pulumi.Input[builtins.str] project_name: 资源所属项目，一个资源只能归属于一个项目。
        :param pulumi.Input[builtins.str] recurrence_end_time: 周期结束时间，仅适用于周期任务（Rate）。
        :param pulumi.Input[builtins.str] repeat_mode: 设置命令执行的方式。Once：默认，表示立即执行命令。Rate：周期执行命令，需要通过Frequency参数传入Rate表达式指定执行周期。Fixed：定时执行命令，需要通过LaunchTime参数指定的执行时间。
        :param pulumi.Input[builtins.int] timeout: 创建的命令在ECS实例中执行时最大的超时时间，单位为秒。默认值：60。可选范围为：30~86400。
        :param pulumi.Input[builtins.str] username: 在ECS实例中执行命令的用户名称。
        :param pulumi.Input[builtins.str] windows_password: 自定义windows用户的密码。
        :param pulumi.Input[builtins.str] working_dir: 创建的命令在ECS实例中运行的目录。
        """
        pulumi.set(__self__, "command_id", command_id)
        pulumi.set(__self__, "instance_ids", instance_ids)
        pulumi.set(__self__, "invocation_name", invocation_name)
        if frequency is not None:
            pulumi.set(__self__, "frequency", frequency)
        if invocation_description is not None:
            pulumi.set(__self__, "invocation_description", invocation_description)
        if launch_time is not None:
            pulumi.set(__self__, "launch_time", launch_time)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if recurrence_end_time is not None:
            pulumi.set(__self__, "recurrence_end_time", recurrence_end_time)
        if repeat_mode is not None:
            pulumi.set(__self__, "repeat_mode", repeat_mode)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if windows_password is not None:
            pulumi.set(__self__, "windows_password", windows_password)
        if working_dir is not None:
            pulumi.set(__self__, "working_dir", working_dir)

    @property
    @pulumi.getter(name="commandId")
    def command_id(self) -> pulumi.Input[builtins.str]:
        """
        命令ID。
        """
        return pulumi.get(self, "command_id")

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

    @property
    @pulumi.getter(name="instanceIds")
    def instance_ids(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
        """
        实例ID列表，最多支持200个ID。
        """
        return pulumi.get(self, "instance_ids")

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

    @property
    @pulumi.getter(name="invocationName")
    def invocation_name(self) -> pulumi.Input[builtins.str]:
        """
        作业名称。不超过64个字符。暂不限制特殊字符。同地域下作业名称可重复。
        """
        return pulumi.get(self, "invocation_name")

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

    @property
    @pulumi.getter
    def frequency(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        执行频率。RepeatMode=Rate 时本参数必填。格式：<执行间隔数值><执行间隔单位>，执行间隔单位：支持分钟（5m-60m）、小时（1h-24h）和天（1d-7d）。执行间隔基于固定频率，与作业实际执行需要的时间无关。创建作业后基于LaunchTime执行一次，根据间隔设置确定下一次执行时间。
        """
        return pulumi.get(self, "frequency")

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

    @property
    @pulumi.getter(name="invocationDescription")
    def invocation_description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        作业描述，默认为空字符串，不超过256个字符。
        """
        return pulumi.get(self, "invocation_description")

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

    @property
    @pulumi.getter(name="launchTime")
    def launch_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        执行时间。
        """
        return pulumi.get(self, "launch_time")

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

    @property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        命令中包含自定义参数时，需通过本参数传入自定义参数的键值对。自定义参数个数范围为0~60。Key不允许为空字符串，最多支持64个字符。Value允许为空字符串。自定义参数与原始命令内容在Base64编码后，综合长度不能超过16KB。设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数，使用默认值代替。
        """
        return pulumi.get(self, "parameters")

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

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        资源所属项目，一个资源只能归属于一个项目。
        """
        return pulumi.get(self, "project_name")

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

    @property
    @pulumi.getter(name="recurrenceEndTime")
    def recurrence_end_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        周期结束时间，仅适用于周期任务（Rate）。
        """
        return pulumi.get(self, "recurrence_end_time")

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

    @property
    @pulumi.getter(name="repeatMode")
    def repeat_mode(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        设置命令执行的方式。Once：默认，表示立即执行命令。Rate：周期执行命令，需要通过Frequency参数传入Rate表达式指定执行周期。Fixed：定时执行命令，需要通过LaunchTime参数指定的执行时间。
        """
        return pulumi.get(self, "repeat_mode")

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

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

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationTagArgs']]]]):
        pulumi.set(self, "tags", value)

    @property
    @pulumi.getter
    def timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        创建的命令在ECS实例中执行时最大的超时时间，单位为秒。默认值：60。可选范围为：30~86400。
        """
        return pulumi.get(self, "timeout")

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

    @property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        在ECS实例中执行命令的用户名称。
        """
        return pulumi.get(self, "username")

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

    @property
    @pulumi.getter(name="windowsPassword")
    def windows_password(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        自定义windows用户的密码。
        """
        return pulumi.get(self, "windows_password")

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

    @property
    @pulumi.getter(name="workingDir")
    def working_dir(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        创建的命令在ECS实例中运行的目录。
        """
        return pulumi.get(self, "working_dir")

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


@pulumi.input_type
class _InvocationState:
    def __init__(__self__, *,
                 command_content: Optional[pulumi.Input[builtins.str]] = None,
                 command_description: Optional[pulumi.Input[builtins.str]] = None,
                 command_id: Optional[pulumi.Input[builtins.str]] = None,
                 command_name: Optional[pulumi.Input[builtins.str]] = None,
                 command_provider: Optional[pulumi.Input[builtins.str]] = None,
                 command_type: Optional[pulumi.Input[builtins.str]] = None,
                 enable_parameter: Optional[pulumi.Input[builtins.bool]] = None,
                 end_time: Optional[pulumi.Input[builtins.str]] = None,
                 frequency: Optional[pulumi.Input[builtins.str]] = None,
                 instance_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 instance_number: Optional[pulumi.Input[builtins.int]] = None,
                 invocation_description: Optional[pulumi.Input[builtins.str]] = None,
                 invocation_id: Optional[pulumi.Input[builtins.str]] = None,
                 invocation_name: Optional[pulumi.Input[builtins.str]] = None,
                 invocation_results: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationInvocationResultArgs']]]] = None,
                 invocation_status: Optional[pulumi.Input[builtins.str]] = None,
                 launch_time: Optional[pulumi.Input[builtins.str]] = None,
                 parameter_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationParameterDefinitionArgs']]]] = None,
                 parameters: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 recurrence_end_time: Optional[pulumi.Input[builtins.str]] = None,
                 repeat_mode: Optional[pulumi.Input[builtins.str]] = None,
                 start_time: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationTagArgs']]]] = None,
                 timeout: Optional[pulumi.Input[builtins.int]] = None,
                 username: Optional[pulumi.Input[builtins.str]] = None,
                 windows_password: Optional[pulumi.Input[builtins.str]] = None,
                 working_dir: Optional[pulumi.Input[builtins.str]] = None):
        """
        Input properties used for looking up and filtering Invocation resources.
        :param pulumi.Input[builtins.str] command_content: 命令内容。
        :param pulumi.Input[builtins.str] command_description: 被调用命令的描述。
        :param pulumi.Input[builtins.str] command_id: 命令ID。
        :param pulumi.Input[builtins.str] command_name: 任务触发时的命令名称。
        :param pulumi.Input[builtins.str] command_provider: 被调用命令的提供方。
        :param pulumi.Input[builtins.str] command_type: 作业触发的命令类型。
        :param pulumi.Input[builtins.bool] enable_parameter: 被调用命令是否使用自定义参数。true：已启用。false：未启用。
        :param pulumi.Input[builtins.str] end_time: 任务结束时间。
        :param pulumi.Input[builtins.str] frequency: 执行频率。RepeatMode=Rate 时本参数必填。格式：<执行间隔数值><执行间隔单位>，执行间隔单位：支持分钟（5m-60m）、小时（1h-24h）和天（1d-7d）。执行间隔基于固定频率，与作业实际执行需要的时间无关。创建作业后基于LaunchTime执行一次，根据间隔设置确定下一次执行时间。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] instance_ids: 实例ID列表，最多支持200个ID。
        :param pulumi.Input[builtins.int] instance_number: 执行实例数量。
        :param pulumi.Input[builtins.str] invocation_description: 作业描述，默认为空字符串，不超过256个字符。
        :param pulumi.Input[builtins.str] invocation_id: 任务执行 ID。
        :param pulumi.Input[builtins.str] invocation_name: 作业名称。不超过64个字符。暂不限制特殊字符。同地域下作业名称可重复。
        :param pulumi.Input[builtins.str] invocation_status: 命令执行的总执行状态。
        :param pulumi.Input[builtins.str] launch_time: 执行时间。
        :param pulumi.Input[builtins.str] parameters: 命令中包含自定义参数时，需通过本参数传入自定义参数的键值对。自定义参数个数范围为0~60。Key不允许为空字符串，最多支持64个字符。Value允许为空字符串。自定义参数与原始命令内容在Base64编码后，综合长度不能超过16KB。设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数，使用默认值代替。
        :param pulumi.Input[builtins.str] project_name: 资源所属项目，一个资源只能归属于一个项目。
        :param pulumi.Input[builtins.str] recurrence_end_time: 周期结束时间，仅适用于周期任务（Rate）。
        :param pulumi.Input[builtins.str] repeat_mode: 设置命令执行的方式。Once：默认，表示立即执行命令。Rate：周期执行命令，需要通过Frequency参数传入Rate表达式指定执行周期。Fixed：定时执行命令，需要通过LaunchTime参数指定的执行时间。
        :param pulumi.Input[builtins.str] start_time: 任务开始时间。
        :param pulumi.Input[builtins.int] timeout: 创建的命令在ECS实例中执行时最大的超时时间，单位为秒。默认值：60。可选范围为：30~86400。
        :param pulumi.Input[builtins.str] username: 在ECS实例中执行命令的用户名称。
        :param pulumi.Input[builtins.str] windows_password: 自定义windows用户的密码。
        :param pulumi.Input[builtins.str] working_dir: 创建的命令在ECS实例中运行的目录。
        """
        if command_content is not None:
            pulumi.set(__self__, "command_content", command_content)
        if command_description is not None:
            pulumi.set(__self__, "command_description", command_description)
        if command_id is not None:
            pulumi.set(__self__, "command_id", command_id)
        if command_name is not None:
            pulumi.set(__self__, "command_name", command_name)
        if command_provider is not None:
            pulumi.set(__self__, "command_provider", command_provider)
        if command_type is not None:
            pulumi.set(__self__, "command_type", command_type)
        if enable_parameter is not None:
            pulumi.set(__self__, "enable_parameter", enable_parameter)
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if frequency is not None:
            pulumi.set(__self__, "frequency", frequency)
        if instance_ids is not None:
            pulumi.set(__self__, "instance_ids", instance_ids)
        if instance_number is not None:
            pulumi.set(__self__, "instance_number", instance_number)
        if invocation_description is not None:
            pulumi.set(__self__, "invocation_description", invocation_description)
        if invocation_id is not None:
            pulumi.set(__self__, "invocation_id", invocation_id)
        if invocation_name is not None:
            pulumi.set(__self__, "invocation_name", invocation_name)
        if invocation_results is not None:
            pulumi.set(__self__, "invocation_results", invocation_results)
        if invocation_status is not None:
            pulumi.set(__self__, "invocation_status", invocation_status)
        if launch_time is not None:
            pulumi.set(__self__, "launch_time", launch_time)
        if parameter_definitions is not None:
            pulumi.set(__self__, "parameter_definitions", parameter_definitions)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if recurrence_end_time is not None:
            pulumi.set(__self__, "recurrence_end_time", recurrence_end_time)
        if repeat_mode is not None:
            pulumi.set(__self__, "repeat_mode", repeat_mode)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if windows_password is not None:
            pulumi.set(__self__, "windows_password", windows_password)
        if working_dir is not None:
            pulumi.set(__self__, "working_dir", working_dir)

    @property
    @pulumi.getter(name="commandContent")
    def command_content(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        命令内容。
        """
        return pulumi.get(self, "command_content")

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

    @property
    @pulumi.getter(name="commandDescription")
    def command_description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        被调用命令的描述。
        """
        return pulumi.get(self, "command_description")

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

    @property
    @pulumi.getter(name="commandId")
    def command_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        命令ID。
        """
        return pulumi.get(self, "command_id")

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

    @property
    @pulumi.getter(name="commandName")
    def command_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        任务触发时的命令名称。
        """
        return pulumi.get(self, "command_name")

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

    @property
    @pulumi.getter(name="commandProvider")
    def command_provider(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        被调用命令的提供方。
        """
        return pulumi.get(self, "command_provider")

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

    @property
    @pulumi.getter(name="commandType")
    def command_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        作业触发的命令类型。
        """
        return pulumi.get(self, "command_type")

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

    @property
    @pulumi.getter(name="enableParameter")
    def enable_parameter(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        被调用命令是否使用自定义参数。true：已启用。false：未启用。
        """
        return pulumi.get(self, "enable_parameter")

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

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        任务结束时间。
        """
        return pulumi.get(self, "end_time")

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

    @property
    @pulumi.getter
    def frequency(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        执行频率。RepeatMode=Rate 时本参数必填。格式：<执行间隔数值><执行间隔单位>，执行间隔单位：支持分钟（5m-60m）、小时（1h-24h）和天（1d-7d）。执行间隔基于固定频率，与作业实际执行需要的时间无关。创建作业后基于LaunchTime执行一次，根据间隔设置确定下一次执行时间。
        """
        return pulumi.get(self, "frequency")

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

    @property
    @pulumi.getter(name="instanceIds")
    def instance_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        实例ID列表，最多支持200个ID。
        """
        return pulumi.get(self, "instance_ids")

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

    @property
    @pulumi.getter(name="instanceNumber")
    def instance_number(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        执行实例数量。
        """
        return pulumi.get(self, "instance_number")

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

    @property
    @pulumi.getter(name="invocationDescription")
    def invocation_description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        作业描述，默认为空字符串，不超过256个字符。
        """
        return pulumi.get(self, "invocation_description")

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

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

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

    @property
    @pulumi.getter(name="invocationName")
    def invocation_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        作业名称。不超过64个字符。暂不限制特殊字符。同地域下作业名称可重复。
        """
        return pulumi.get(self, "invocation_name")

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

    @property
    @pulumi.getter(name="invocationResults")
    def invocation_results(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InvocationInvocationResultArgs']]]]:
        return pulumi.get(self, "invocation_results")

    @invocation_results.setter
    def invocation_results(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationInvocationResultArgs']]]]):
        pulumi.set(self, "invocation_results", value)

    @property
    @pulumi.getter(name="invocationStatus")
    def invocation_status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        命令执行的总执行状态。
        """
        return pulumi.get(self, "invocation_status")

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

    @property
    @pulumi.getter(name="launchTime")
    def launch_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        执行时间。
        """
        return pulumi.get(self, "launch_time")

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

    @property
    @pulumi.getter(name="parameterDefinitions")
    def parameter_definitions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InvocationParameterDefinitionArgs']]]]:
        return pulumi.get(self, "parameter_definitions")

    @parameter_definitions.setter
    def parameter_definitions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationParameterDefinitionArgs']]]]):
        pulumi.set(self, "parameter_definitions", value)

    @property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        命令中包含自定义参数时，需通过本参数传入自定义参数的键值对。自定义参数个数范围为0~60。Key不允许为空字符串，最多支持64个字符。Value允许为空字符串。自定义参数与原始命令内容在Base64编码后，综合长度不能超过16KB。设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数，使用默认值代替。
        """
        return pulumi.get(self, "parameters")

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

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        资源所属项目，一个资源只能归属于一个项目。
        """
        return pulumi.get(self, "project_name")

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

    @property
    @pulumi.getter(name="recurrenceEndTime")
    def recurrence_end_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        周期结束时间，仅适用于周期任务（Rate）。
        """
        return pulumi.get(self, "recurrence_end_time")

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

    @property
    @pulumi.getter(name="repeatMode")
    def repeat_mode(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        设置命令执行的方式。Once：默认，表示立即执行命令。Rate：周期执行命令，需要通过Frequency参数传入Rate表达式指定执行周期。Fixed：定时执行命令，需要通过LaunchTime参数指定的执行时间。
        """
        return pulumi.get(self, "repeat_mode")

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

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        任务开始时间。
        """
        return pulumi.get(self, "start_time")

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

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

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InvocationTagArgs']]]]):
        pulumi.set(self, "tags", value)

    @property
    @pulumi.getter
    def timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        创建的命令在ECS实例中执行时最大的超时时间，单位为秒。默认值：60。可选范围为：30~86400。
        """
        return pulumi.get(self, "timeout")

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

    @property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        在ECS实例中执行命令的用户名称。
        """
        return pulumi.get(self, "username")

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

    @property
    @pulumi.getter(name="windowsPassword")
    def windows_password(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        自定义windows用户的密码。
        """
        return pulumi.get(self, "windows_password")

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

    @property
    @pulumi.getter(name="workingDir")
    def working_dir(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        创建的命令在ECS实例中运行的目录。
        """
        return pulumi.get(self, "working_dir")

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


@pulumi.type_token("bytepluscc:ecs/invocation:Invocation")
class Invocation(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 command_id: Optional[pulumi.Input[builtins.str]] = None,
                 frequency: Optional[pulumi.Input[builtins.str]] = None,
                 instance_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 invocation_description: Optional[pulumi.Input[builtins.str]] = None,
                 invocation_name: Optional[pulumi.Input[builtins.str]] = None,
                 launch_time: Optional[pulumi.Input[builtins.str]] = None,
                 parameters: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 recurrence_end_time: Optional[pulumi.Input[builtins.str]] = None,
                 repeat_mode: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InvocationTagArgs', 'InvocationTagArgsDict']]]]] = None,
                 timeout: Optional[pulumi.Input[builtins.int]] = None,
                 username: Optional[pulumi.Input[builtins.str]] = None,
                 windows_password: Optional[pulumi.Input[builtins.str]] = None,
                 working_dir: Optional[pulumi.Input[builtins.str]] = None,
                 __props__=None):
        """
        云助手是火山引擎打造的原生自动化运维工具。您可以创建立即执行、周期执行、定时执行的作业任务，创建完成后完，云助手客户端将按照执行模式自动开始执行。

        ## Example Usage

        ```python
        import pulumi
        import pulumi_bytepluscc as bytepluscc

        invocation_demo = bytepluscc.ecs.Invocation("InvocationDemo",
            invocation_name="InvocationDemo",
            invocation_description="InvocationDemo desc",
            working_dir="/home",
            username="InvocationDemo",
            windows_password="********",
            timeout=60,
            instance_ids=["i-ye2v6l0pvkqc6inxxxxx"],
            repeat_mode="Rate",
            frequency="1h",
            launch_time="2025-08-30T11:10Z",
            recurrence_end_time="2025-08-31T11:04Z",
            project_name="default",
            tags=[{
                "key": "env",
                "value": "test",
            }],
            command_id="cmd-ye28kugp249tzrexxxxx",
            parameters="{\\"dirname\\":\\"10\\"}")
        ```

        ## Import

        ```sh
        $ pulumi import bytepluscc:ecs/invocation:Invocation example "invocation_id"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.str] command_id: 命令ID。
        :param pulumi.Input[builtins.str] frequency: 执行频率。RepeatMode=Rate 时本参数必填。格式：<执行间隔数值><执行间隔单位>，执行间隔单位：支持分钟（5m-60m）、小时（1h-24h）和天（1d-7d）。执行间隔基于固定频率，与作业实际执行需要的时间无关。创建作业后基于LaunchTime执行一次，根据间隔设置确定下一次执行时间。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] instance_ids: 实例ID列表，最多支持200个ID。
        :param pulumi.Input[builtins.str] invocation_description: 作业描述，默认为空字符串，不超过256个字符。
        :param pulumi.Input[builtins.str] invocation_name: 作业名称。不超过64个字符。暂不限制特殊字符。同地域下作业名称可重复。
        :param pulumi.Input[builtins.str] launch_time: 执行时间。
        :param pulumi.Input[builtins.str] parameters: 命令中包含自定义参数时，需通过本参数传入自定义参数的键值对。自定义参数个数范围为0~60。Key不允许为空字符串，最多支持64个字符。Value允许为空字符串。自定义参数与原始命令内容在Base64编码后，综合长度不能超过16KB。设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数，使用默认值代替。
        :param pulumi.Input[builtins.str] project_name: 资源所属项目，一个资源只能归属于一个项目。
        :param pulumi.Input[builtins.str] recurrence_end_time: 周期结束时间，仅适用于周期任务（Rate）。
        :param pulumi.Input[builtins.str] repeat_mode: 设置命令执行的方式。Once：默认，表示立即执行命令。Rate：周期执行命令，需要通过Frequency参数传入Rate表达式指定执行周期。Fixed：定时执行命令，需要通过LaunchTime参数指定的执行时间。
        :param pulumi.Input[builtins.int] timeout: 创建的命令在ECS实例中执行时最大的超时时间，单位为秒。默认值：60。可选范围为：30~86400。
        :param pulumi.Input[builtins.str] username: 在ECS实例中执行命令的用户名称。
        :param pulumi.Input[builtins.str] windows_password: 自定义windows用户的密码。
        :param pulumi.Input[builtins.str] working_dir: 创建的命令在ECS实例中运行的目录。
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: InvocationArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        云助手是火山引擎打造的原生自动化运维工具。您可以创建立即执行、周期执行、定时执行的作业任务，创建完成后完，云助手客户端将按照执行模式自动开始执行。

        ## Example Usage

        ```python
        import pulumi
        import pulumi_bytepluscc as bytepluscc

        invocation_demo = bytepluscc.ecs.Invocation("InvocationDemo",
            invocation_name="InvocationDemo",
            invocation_description="InvocationDemo desc",
            working_dir="/home",
            username="InvocationDemo",
            windows_password="********",
            timeout=60,
            instance_ids=["i-ye2v6l0pvkqc6inxxxxx"],
            repeat_mode="Rate",
            frequency="1h",
            launch_time="2025-08-30T11:10Z",
            recurrence_end_time="2025-08-31T11:04Z",
            project_name="default",
            tags=[{
                "key": "env",
                "value": "test",
            }],
            command_id="cmd-ye28kugp249tzrexxxxx",
            parameters="{\\"dirname\\":\\"10\\"}")
        ```

        ## Import

        ```sh
        $ pulumi import bytepluscc:ecs/invocation:Invocation example "invocation_id"
        ```

        :param str resource_name: The name of the resource.
        :param InvocationArgs 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(InvocationArgs, 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,
                 command_id: Optional[pulumi.Input[builtins.str]] = None,
                 frequency: Optional[pulumi.Input[builtins.str]] = None,
                 instance_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 invocation_description: Optional[pulumi.Input[builtins.str]] = None,
                 invocation_name: Optional[pulumi.Input[builtins.str]] = None,
                 launch_time: Optional[pulumi.Input[builtins.str]] = None,
                 parameters: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 recurrence_end_time: Optional[pulumi.Input[builtins.str]] = None,
                 repeat_mode: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InvocationTagArgs', 'InvocationTagArgsDict']]]]] = None,
                 timeout: Optional[pulumi.Input[builtins.int]] = None,
                 username: Optional[pulumi.Input[builtins.str]] = None,
                 windows_password: Optional[pulumi.Input[builtins.str]] = None,
                 working_dir: Optional[pulumi.Input[builtins.str]] = 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__ = InvocationArgs.__new__(InvocationArgs)

            if command_id is None and not opts.urn:
                raise TypeError("Missing required property 'command_id'")
            __props__.__dict__["command_id"] = command_id
            __props__.__dict__["frequency"] = frequency
            if instance_ids is None and not opts.urn:
                raise TypeError("Missing required property 'instance_ids'")
            __props__.__dict__["instance_ids"] = instance_ids
            __props__.__dict__["invocation_description"] = invocation_description
            if invocation_name is None and not opts.urn:
                raise TypeError("Missing required property 'invocation_name'")
            __props__.__dict__["invocation_name"] = invocation_name
            __props__.__dict__["launch_time"] = launch_time
            __props__.__dict__["parameters"] = parameters
            __props__.__dict__["project_name"] = project_name
            __props__.__dict__["recurrence_end_time"] = recurrence_end_time
            __props__.__dict__["repeat_mode"] = repeat_mode
            __props__.__dict__["tags"] = tags
            __props__.__dict__["timeout"] = timeout
            __props__.__dict__["username"] = username
            __props__.__dict__["windows_password"] = windows_password
            __props__.__dict__["working_dir"] = working_dir
            __props__.__dict__["command_content"] = None
            __props__.__dict__["command_description"] = None
            __props__.__dict__["command_name"] = None
            __props__.__dict__["command_provider"] = None
            __props__.__dict__["command_type"] = None
            __props__.__dict__["enable_parameter"] = None
            __props__.__dict__["end_time"] = None
            __props__.__dict__["instance_number"] = None
            __props__.__dict__["invocation_id"] = None
            __props__.__dict__["invocation_results"] = None
            __props__.__dict__["invocation_status"] = None
            __props__.__dict__["parameter_definitions"] = None
            __props__.__dict__["start_time"] = None
        super(Invocation, __self__).__init__(
            'bytepluscc:ecs/invocation:Invocation',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            command_content: Optional[pulumi.Input[builtins.str]] = None,
            command_description: Optional[pulumi.Input[builtins.str]] = None,
            command_id: Optional[pulumi.Input[builtins.str]] = None,
            command_name: Optional[pulumi.Input[builtins.str]] = None,
            command_provider: Optional[pulumi.Input[builtins.str]] = None,
            command_type: Optional[pulumi.Input[builtins.str]] = None,
            enable_parameter: Optional[pulumi.Input[builtins.bool]] = None,
            end_time: Optional[pulumi.Input[builtins.str]] = None,
            frequency: Optional[pulumi.Input[builtins.str]] = None,
            instance_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
            instance_number: Optional[pulumi.Input[builtins.int]] = None,
            invocation_description: Optional[pulumi.Input[builtins.str]] = None,
            invocation_id: Optional[pulumi.Input[builtins.str]] = None,
            invocation_name: Optional[pulumi.Input[builtins.str]] = None,
            invocation_results: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InvocationInvocationResultArgs', 'InvocationInvocationResultArgsDict']]]]] = None,
            invocation_status: Optional[pulumi.Input[builtins.str]] = None,
            launch_time: Optional[pulumi.Input[builtins.str]] = None,
            parameter_definitions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InvocationParameterDefinitionArgs', 'InvocationParameterDefinitionArgsDict']]]]] = None,
            parameters: Optional[pulumi.Input[builtins.str]] = None,
            project_name: Optional[pulumi.Input[builtins.str]] = None,
            recurrence_end_time: Optional[pulumi.Input[builtins.str]] = None,
            repeat_mode: Optional[pulumi.Input[builtins.str]] = None,
            start_time: Optional[pulumi.Input[builtins.str]] = None,
            tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InvocationTagArgs', 'InvocationTagArgsDict']]]]] = None,
            timeout: Optional[pulumi.Input[builtins.int]] = None,
            username: Optional[pulumi.Input[builtins.str]] = None,
            windows_password: Optional[pulumi.Input[builtins.str]] = None,
            working_dir: Optional[pulumi.Input[builtins.str]] = None) -> 'Invocation':
        """
        Get an existing Invocation 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.str] command_content: 命令内容。
        :param pulumi.Input[builtins.str] command_description: 被调用命令的描述。
        :param pulumi.Input[builtins.str] command_id: 命令ID。
        :param pulumi.Input[builtins.str] command_name: 任务触发时的命令名称。
        :param pulumi.Input[builtins.str] command_provider: 被调用命令的提供方。
        :param pulumi.Input[builtins.str] command_type: 作业触发的命令类型。
        :param pulumi.Input[builtins.bool] enable_parameter: 被调用命令是否使用自定义参数。true：已启用。false：未启用。
        :param pulumi.Input[builtins.str] end_time: 任务结束时间。
        :param pulumi.Input[builtins.str] frequency: 执行频率。RepeatMode=Rate 时本参数必填。格式：<执行间隔数值><执行间隔单位>，执行间隔单位：支持分钟（5m-60m）、小时（1h-24h）和天（1d-7d）。执行间隔基于固定频率，与作业实际执行需要的时间无关。创建作业后基于LaunchTime执行一次，根据间隔设置确定下一次执行时间。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] instance_ids: 实例ID列表，最多支持200个ID。
        :param pulumi.Input[builtins.int] instance_number: 执行实例数量。
        :param pulumi.Input[builtins.str] invocation_description: 作业描述，默认为空字符串，不超过256个字符。
        :param pulumi.Input[builtins.str] invocation_id: 任务执行 ID。
        :param pulumi.Input[builtins.str] invocation_name: 作业名称。不超过64个字符。暂不限制特殊字符。同地域下作业名称可重复。
        :param pulumi.Input[builtins.str] invocation_status: 命令执行的总执行状态。
        :param pulumi.Input[builtins.str] launch_time: 执行时间。
        :param pulumi.Input[builtins.str] parameters: 命令中包含自定义参数时，需通过本参数传入自定义参数的键值对。自定义参数个数范围为0~60。Key不允许为空字符串，最多支持64个字符。Value允许为空字符串。自定义参数与原始命令内容在Base64编码后，综合长度不能超过16KB。设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数，使用默认值代替。
        :param pulumi.Input[builtins.str] project_name: 资源所属项目，一个资源只能归属于一个项目。
        :param pulumi.Input[builtins.str] recurrence_end_time: 周期结束时间，仅适用于周期任务（Rate）。
        :param pulumi.Input[builtins.str] repeat_mode: 设置命令执行的方式。Once：默认，表示立即执行命令。Rate：周期执行命令，需要通过Frequency参数传入Rate表达式指定执行周期。Fixed：定时执行命令，需要通过LaunchTime参数指定的执行时间。
        :param pulumi.Input[builtins.str] start_time: 任务开始时间。
        :param pulumi.Input[builtins.int] timeout: 创建的命令在ECS实例中执行时最大的超时时间，单位为秒。默认值：60。可选范围为：30~86400。
        :param pulumi.Input[builtins.str] username: 在ECS实例中执行命令的用户名称。
        :param pulumi.Input[builtins.str] windows_password: 自定义windows用户的密码。
        :param pulumi.Input[builtins.str] working_dir: 创建的命令在ECS实例中运行的目录。
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _InvocationState.__new__(_InvocationState)

        __props__.__dict__["command_content"] = command_content
        __props__.__dict__["command_description"] = command_description
        __props__.__dict__["command_id"] = command_id
        __props__.__dict__["command_name"] = command_name
        __props__.__dict__["command_provider"] = command_provider
        __props__.__dict__["command_type"] = command_type
        __props__.__dict__["enable_parameter"] = enable_parameter
        __props__.__dict__["end_time"] = end_time
        __props__.__dict__["frequency"] = frequency
        __props__.__dict__["instance_ids"] = instance_ids
        __props__.__dict__["instance_number"] = instance_number
        __props__.__dict__["invocation_description"] = invocation_description
        __props__.__dict__["invocation_id"] = invocation_id
        __props__.__dict__["invocation_name"] = invocation_name
        __props__.__dict__["invocation_results"] = invocation_results
        __props__.__dict__["invocation_status"] = invocation_status
        __props__.__dict__["launch_time"] = launch_time
        __props__.__dict__["parameter_definitions"] = parameter_definitions
        __props__.__dict__["parameters"] = parameters
        __props__.__dict__["project_name"] = project_name
        __props__.__dict__["recurrence_end_time"] = recurrence_end_time
        __props__.__dict__["repeat_mode"] = repeat_mode
        __props__.__dict__["start_time"] = start_time
        __props__.__dict__["tags"] = tags
        __props__.__dict__["timeout"] = timeout
        __props__.__dict__["username"] = username
        __props__.__dict__["windows_password"] = windows_password
        __props__.__dict__["working_dir"] = working_dir
        return Invocation(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="commandContent")
    def command_content(self) -> pulumi.Output[builtins.str]:
        """
        命令内容。
        """
        return pulumi.get(self, "command_content")

    @property
    @pulumi.getter(name="commandDescription")
    def command_description(self) -> pulumi.Output[builtins.str]:
        """
        被调用命令的描述。
        """
        return pulumi.get(self, "command_description")

    @property
    @pulumi.getter(name="commandId")
    def command_id(self) -> pulumi.Output[builtins.str]:
        """
        命令ID。
        """
        return pulumi.get(self, "command_id")

    @property
    @pulumi.getter(name="commandName")
    def command_name(self) -> pulumi.Output[builtins.str]:
        """
        任务触发时的命令名称。
        """
        return pulumi.get(self, "command_name")

    @property
    @pulumi.getter(name="commandProvider")
    def command_provider(self) -> pulumi.Output[builtins.str]:
        """
        被调用命令的提供方。
        """
        return pulumi.get(self, "command_provider")

    @property
    @pulumi.getter(name="commandType")
    def command_type(self) -> pulumi.Output[builtins.str]:
        """
        作业触发的命令类型。
        """
        return pulumi.get(self, "command_type")

    @property
    @pulumi.getter(name="enableParameter")
    def enable_parameter(self) -> pulumi.Output[builtins.bool]:
        """
        被调用命令是否使用自定义参数。true：已启用。false：未启用。
        """
        return pulumi.get(self, "enable_parameter")

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> pulumi.Output[builtins.str]:
        """
        任务结束时间。
        """
        return pulumi.get(self, "end_time")

    @property
    @pulumi.getter
    def frequency(self) -> pulumi.Output[builtins.str]:
        """
        执行频率。RepeatMode=Rate 时本参数必填。格式：<执行间隔数值><执行间隔单位>，执行间隔单位：支持分钟（5m-60m）、小时（1h-24h）和天（1d-7d）。执行间隔基于固定频率，与作业实际执行需要的时间无关。创建作业后基于LaunchTime执行一次，根据间隔设置确定下一次执行时间。
        """
        return pulumi.get(self, "frequency")

    @property
    @pulumi.getter(name="instanceIds")
    def instance_ids(self) -> pulumi.Output[Sequence[builtins.str]]:
        """
        实例ID列表，最多支持200个ID。
        """
        return pulumi.get(self, "instance_ids")

    @property
    @pulumi.getter(name="instanceNumber")
    def instance_number(self) -> pulumi.Output[builtins.int]:
        """
        执行实例数量。
        """
        return pulumi.get(self, "instance_number")

    @property
    @pulumi.getter(name="invocationDescription")
    def invocation_description(self) -> pulumi.Output[builtins.str]:
        """
        作业描述，默认为空字符串，不超过256个字符。
        """
        return pulumi.get(self, "invocation_description")

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

    @property
    @pulumi.getter(name="invocationName")
    def invocation_name(self) -> pulumi.Output[builtins.str]:
        """
        作业名称。不超过64个字符。暂不限制特殊字符。同地域下作业名称可重复。
        """
        return pulumi.get(self, "invocation_name")

    @property
    @pulumi.getter(name="invocationResults")
    def invocation_results(self) -> pulumi.Output[Sequence['outputs.InvocationInvocationResult']]:
        return pulumi.get(self, "invocation_results")

    @property
    @pulumi.getter(name="invocationStatus")
    def invocation_status(self) -> pulumi.Output[builtins.str]:
        """
        命令执行的总执行状态。
        """
        return pulumi.get(self, "invocation_status")

    @property
    @pulumi.getter(name="launchTime")
    def launch_time(self) -> pulumi.Output[builtins.str]:
        """
        执行时间。
        """
        return pulumi.get(self, "launch_time")

    @property
    @pulumi.getter(name="parameterDefinitions")
    def parameter_definitions(self) -> pulumi.Output[Sequence['outputs.InvocationParameterDefinition']]:
        return pulumi.get(self, "parameter_definitions")

    @property
    @pulumi.getter
    def parameters(self) -> pulumi.Output[builtins.str]:
        """
        命令中包含自定义参数时，需通过本参数传入自定义参数的键值对。自定义参数个数范围为0~60。Key不允许为空字符串，最多支持64个字符。Value允许为空字符串。自定义参数与原始命令内容在Base64编码后，综合长度不能超过16KB。设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数，使用默认值代替。
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> pulumi.Output[builtins.str]:
        """
        资源所属项目，一个资源只能归属于一个项目。
        """
        return pulumi.get(self, "project_name")

    @property
    @pulumi.getter(name="recurrenceEndTime")
    def recurrence_end_time(self) -> pulumi.Output[builtins.str]:
        """
        周期结束时间，仅适用于周期任务（Rate）。
        """
        return pulumi.get(self, "recurrence_end_time")

    @property
    @pulumi.getter(name="repeatMode")
    def repeat_mode(self) -> pulumi.Output[builtins.str]:
        """
        设置命令执行的方式。Once：默认，表示立即执行命令。Rate：周期执行命令，需要通过Frequency参数传入Rate表达式指定执行周期。Fixed：定时执行命令，需要通过LaunchTime参数指定的执行时间。
        """
        return pulumi.get(self, "repeat_mode")

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> pulumi.Output[builtins.str]:
        """
        任务开始时间。
        """
        return pulumi.get(self, "start_time")

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

    @property
    @pulumi.getter
    def timeout(self) -> pulumi.Output[builtins.int]:
        """
        创建的命令在ECS实例中执行时最大的超时时间，单位为秒。默认值：60。可选范围为：30~86400。
        """
        return pulumi.get(self, "timeout")

    @property
    @pulumi.getter
    def username(self) -> pulumi.Output[builtins.str]:
        """
        在ECS实例中执行命令的用户名称。
        """
        return pulumi.get(self, "username")

    @property
    @pulumi.getter(name="windowsPassword")
    def windows_password(self) -> pulumi.Output[builtins.str]:
        """
        自定义windows用户的密码。
        """
        return pulumi.get(self, "windows_password")

    @property
    @pulumi.getter(name="workingDir")
    def working_dir(self) -> pulumi.Output[builtins.str]:
        """
        创建的命令在ECS实例中运行的目录。
        """
        return pulumi.get(self, "working_dir")

