# 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 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

__all__ = [
    'GetExecutionsExecutionResult',
    'GetFlowsFlowResult',
    'GetSchedulesScheduleResult',
]

@pulumi.output_type
class GetExecutionsExecutionResult(dict):
    def __init__(__self__, *,
                 execution_name: str,
                 flow_name: str,
                 id: str,
                 input: str,
                 output: str,
                 started_time: str,
                 status: str,
                 stopped_time: str):
        """
        :param str execution_name: The name of the execution.
        :param str flow_name: The name of the flow.
        :param str id: The ID of the Execution. The value formats as `<flow_name>:<execution_name>`.
        :param str input: The Input information for this execution.
        :param str output: The output of the execution.
        :param str started_time: The started time of the execution.
        :param str status: The status of the resource.
        :param str stopped_time: The stopped time of the execution.
        """
        pulumi.set(__self__, "execution_name", execution_name)
        pulumi.set(__self__, "flow_name", flow_name)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "input", input)
        pulumi.set(__self__, "output", output)
        pulumi.set(__self__, "started_time", started_time)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "stopped_time", stopped_time)

    @property
    @pulumi.getter(name="executionName")
    def execution_name(self) -> str:
        """
        The name of the execution.
        """
        return pulumi.get(self, "execution_name")

    @property
    @pulumi.getter(name="flowName")
    def flow_name(self) -> str:
        """
        The name of the flow.
        """
        return pulumi.get(self, "flow_name")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Execution. The value formats as `<flow_name>:<execution_name>`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def input(self) -> str:
        """
        The Input information for this execution.
        """
        return pulumi.get(self, "input")

    @property
    @pulumi.getter
    def output(self) -> str:
        """
        The output of the execution.
        """
        return pulumi.get(self, "output")

    @property
    @pulumi.getter(name="startedTime")
    def started_time(self) -> str:
        """
        The started time of the execution.
        """
        return pulumi.get(self, "started_time")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The status of the resource.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="stoppedTime")
    def stopped_time(self) -> str:
        """
        The stopped time of the execution.
        """
        return pulumi.get(self, "stopped_time")


@pulumi.output_type
class GetFlowsFlowResult(dict):
    def __init__(__self__, *,
                 definition: str,
                 description: str,
                 flow_id: str,
                 id: str,
                 last_modified_time: str,
                 name: str,
                 role_arn: str,
                 type: str):
        """
        :param str definition: The definition of the flow. It must comply with the Flow Definition Language (FDL) syntax.
        :param str description: The description of the flow.
        :param str flow_id: The unique ID of the flow.
        :param str id: The ID of the Flow.
        :param str last_modified_time: The time when the flow was last modified.
        :param str name: The name of the flow. The name must be unique in an Alibaba Cloud account.
        :param str role_arn: The ARN of the specified RAM role that Serverless Workflow uses to assume the role when Serverless Workflow executes a flow.
        :param str type: The type of the flow. Set the value to `FDL`.
        """
        pulumi.set(__self__, "definition", definition)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "flow_id", flow_id)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "last_modified_time", last_modified_time)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "role_arn", role_arn)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def definition(self) -> str:
        """
        The definition of the flow. It must comply with the Flow Definition Language (FDL) syntax.
        """
        return pulumi.get(self, "definition")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        The description of the flow.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="flowId")
    def flow_id(self) -> str:
        """
        The unique ID of the flow.
        """
        return pulumi.get(self, "flow_id")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Flow.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lastModifiedTime")
    def last_modified_time(self) -> str:
        """
        The time when the flow was last modified.
        """
        return pulumi.get(self, "last_modified_time")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the flow. The name must be unique in an Alibaba Cloud account.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="roleArn")
    def role_arn(self) -> str:
        """
        The ARN of the specified RAM role that Serverless Workflow uses to assume the role when Serverless Workflow executes a flow.
        """
        return pulumi.get(self, "role_arn")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of the flow. Set the value to `FDL`.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetSchedulesScheduleResult(dict):
    def __init__(__self__, *,
                 cron_expression: str,
                 description: str,
                 enable: bool,
                 id: str,
                 last_modified_time: str,
                 payload: str,
                 schedule_id: str,
                 schedule_name: str):
        """
        :param str cron_expression: The CRON expression of the time-based schedule to be created.
        :param str description: The description of the time-based schedule to be created.
        :param bool enable: Specifies whether to enable the time-based schedule you want to create.
        :param str id: The ID of the Schedule.
        :param str last_modified_time: The time when the time-based schedule was last updated.
        :param str payload: The trigger message of the time-based schedule to be created. It must be in JSON object format.
        :param str schedule_id: The ID of the time-based schedule.
        :param str schedule_name: The name of the time-based schedule to be created.
        """
        pulumi.set(__self__, "cron_expression", cron_expression)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "enable", enable)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "last_modified_time", last_modified_time)
        pulumi.set(__self__, "payload", payload)
        pulumi.set(__self__, "schedule_id", schedule_id)
        pulumi.set(__self__, "schedule_name", schedule_name)

    @property
    @pulumi.getter(name="cronExpression")
    def cron_expression(self) -> str:
        """
        The CRON expression of the time-based schedule to be created.
        """
        return pulumi.get(self, "cron_expression")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        The description of the time-based schedule to be created.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def enable(self) -> bool:
        """
        Specifies whether to enable the time-based schedule you want to create.
        """
        return pulumi.get(self, "enable")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Schedule.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lastModifiedTime")
    def last_modified_time(self) -> str:
        """
        The time when the time-based schedule was last updated.
        """
        return pulumi.get(self, "last_modified_time")

    @property
    @pulumi.getter
    def payload(self) -> str:
        """
        The trigger message of the time-based schedule to be created. It must be in JSON object format.
        """
        return pulumi.get(self, "payload")

    @property
    @pulumi.getter(name="scheduleId")
    def schedule_id(self) -> str:
        """
        The ID of the time-based schedule.
        """
        return pulumi.get(self, "schedule_id")

    @property
    @pulumi.getter(name="scheduleName")
    def schedule_name(self) -> str:
        """
        The name of the time-based schedule to be created.
        """
        return pulumi.get(self, "schedule_name")


