"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import flyteidl.admin.common_pb2
import flyteidl.admin.schedule_pb2
import flyteidl.core.execution_pb2
import flyteidl.core.identifier_pb2
import flyteidl.core.interface_pb2
import flyteidl.core.literals_pb2
import flyteidl.core.security_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class LaunchPlanState(_LaunchPlanState, metaclass=_LaunchPlanStateEnumTypeWrapper):
    """By default any launch plan regardless of state can be used to launch a workflow execution.
    However, at most one version of a launch plan
    (e.g. a NamedEntityIdentifier set of shared project, domain and name values) can be
    active at a time in regards to *schedules*. That is, at most one schedule in a NamedEntityIdentifier
    group will be observed and trigger executions at a defined cadence.
    """
    pass
class _LaunchPlanState:
    V = typing.NewType('V', builtins.int)
class _LaunchPlanStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_LaunchPlanState.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    INACTIVE = LaunchPlanState.V(0)
    ACTIVE = LaunchPlanState.V(1)

INACTIVE = LaunchPlanState.V(0)
ACTIVE = LaunchPlanState.V(1)
global___LaunchPlanState = LaunchPlanState


class LaunchPlanCreateRequest(google.protobuf.message.Message):
    """Request to register a launch plan. The included LaunchPlanSpec may have a complete or incomplete set of inputs required
    to launch a workflow execution. By default all launch plans are registered in state INACTIVE. If you wish to
    set the state to ACTIVE, you must submit a LaunchPlanUpdateRequest, after you have successfully created a launch plan.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> flyteidl.core.identifier_pb2.Identifier:
        """Uniquely identifies a launch plan entity."""
        pass
    @property
    def spec(self) -> global___LaunchPlanSpec:
        """User-provided launch plan details, including reference workflow, inputs and other metadata."""
        pass
    def __init__(self,
        *,
        id : typing.Optional[flyteidl.core.identifier_pb2.Identifier] = ...,
        spec : typing.Optional[global___LaunchPlanSpec] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id",u"spec",b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"spec",b"spec"]) -> None: ...
global___LaunchPlanCreateRequest = LaunchPlanCreateRequest

class LaunchPlanCreateResponse(google.protobuf.message.Message):
    """Purposefully empty, may be populated in the future."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    def __init__(self,
        ) -> None: ...
global___LaunchPlanCreateResponse = LaunchPlanCreateResponse

class LaunchPlan(google.protobuf.message.Message):
    """A LaunchPlan provides the capability to templatize workflow executions.
    Launch plans simplify associating one or more schedules, inputs and notifications with your workflows.
    Launch plans can be shared and used to trigger executions with predefined inputs even when a workflow
    definition doesn't necessarily have a default value for said input.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    CLOSURE_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> flyteidl.core.identifier_pb2.Identifier:
        """Uniquely identifies a launch plan entity."""
        pass
    @property
    def spec(self) -> global___LaunchPlanSpec:
        """User-provided launch plan details, including reference workflow, inputs and other metadata."""
        pass
    @property
    def closure(self) -> global___LaunchPlanClosure:
        """Values computed by the flyte platform after launch plan registration."""
        pass
    def __init__(self,
        *,
        id : typing.Optional[flyteidl.core.identifier_pb2.Identifier] = ...,
        spec : typing.Optional[global___LaunchPlanSpec] = ...,
        closure : typing.Optional[global___LaunchPlanClosure] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"closure",b"closure",u"id",b"id",u"spec",b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"closure",b"closure",u"id",b"id",u"spec",b"spec"]) -> None: ...
global___LaunchPlan = LaunchPlan

class LaunchPlanList(google.protobuf.message.Message):
    """Response object for list launch plan requests.
    See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    LAUNCH_PLANS_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    @property
    def launch_plans(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LaunchPlan]: ...
    token: typing.Text = ...
    """In the case of multiple pages of results, the server-provided token can be used to fetch the next page
    in a query. If there are no more results, this value will be empty.
    """

    def __init__(self,
        *,
        launch_plans : typing.Optional[typing.Iterable[global___LaunchPlan]] = ...,
        token : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"launch_plans",b"launch_plans",u"token",b"token"]) -> None: ...
global___LaunchPlanList = LaunchPlanList

class Auth(google.protobuf.message.Message):
    """Defines permissions associated with executions created by this launch plan spec.
    Use either of these roles when they have permissions required by your workflow execution.
    Deprecated.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ASSUMABLE_IAM_ROLE_FIELD_NUMBER: builtins.int
    KUBERNETES_SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
    assumable_iam_role: typing.Text = ...
    """Defines an optional iam role which will be used for tasks run in executions created with this launch plan."""

    kubernetes_service_account: typing.Text = ...
    """Defines an optional kubernetes service account which will be used for tasks run in executions created with this launch plan."""

    def __init__(self,
        *,
        assumable_iam_role : typing.Text = ...,
        kubernetes_service_account : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"assumable_iam_role",b"assumable_iam_role",u"kubernetes_service_account",b"kubernetes_service_account"]) -> None: ...
global___Auth = Auth

class LaunchPlanSpec(google.protobuf.message.Message):
    """User-provided launch plan definition and configuration values."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    WORKFLOW_ID_FIELD_NUMBER: builtins.int
    ENTITY_METADATA_FIELD_NUMBER: builtins.int
    DEFAULT_INPUTS_FIELD_NUMBER: builtins.int
    FIXED_INPUTS_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    ANNOTATIONS_FIELD_NUMBER: builtins.int
    AUTH_FIELD_NUMBER: builtins.int
    AUTH_ROLE_FIELD_NUMBER: builtins.int
    SECURITY_CONTEXT_FIELD_NUMBER: builtins.int
    QUALITY_OF_SERVICE_FIELD_NUMBER: builtins.int
    RAW_OUTPUT_DATA_CONFIG_FIELD_NUMBER: builtins.int
    MAX_PARALLELISM_FIELD_NUMBER: builtins.int
    @property
    def workflow_id(self) -> flyteidl.core.identifier_pb2.Identifier:
        """Reference to the Workflow template that the launch plan references"""
        pass
    @property
    def entity_metadata(self) -> global___LaunchPlanMetadata:
        """Metadata for the Launch Plan"""
        pass
    @property
    def default_inputs(self) -> flyteidl.core.interface_pb2.ParameterMap:
        """Input values to be passed for the execution.
        These can be overriden when an execution is created with this launch plan.
        """
        pass
    @property
    def fixed_inputs(self) -> flyteidl.core.literals_pb2.LiteralMap:
        """Fixed, non-overridable inputs for the Launch Plan.
        These can not be overriden when an execution is created with this launch plan.
        """
        pass
    role: typing.Text = ...
    """String to indicate the role to use to execute the workflow underneath"""

    @property
    def labels(self) -> flyteidl.admin.common_pb2.Labels:
        """Custom labels to be applied to the execution resource."""
        pass
    @property
    def annotations(self) -> flyteidl.admin.common_pb2.Annotations:
        """Custom annotations to be applied to the execution resource."""
        pass
    @property
    def auth(self) -> global___Auth:
        """Indicates the permission associated with workflow executions triggered with this launch plan."""
        pass
    @property
    def auth_role(self) -> flyteidl.admin.common_pb2.AuthRole: ...
    @property
    def security_context(self) -> flyteidl.core.security_pb2.SecurityContext:
        """Indicates security context for permissions triggered with this launch plan"""
        pass
    @property
    def quality_of_service(self) -> flyteidl.core.execution_pb2.QualityOfService:
        """Indicates the runtime priority of the execution."""
        pass
    @property
    def raw_output_data_config(self) -> flyteidl.admin.common_pb2.RawOutputDataConfig:
        """Encapsulates user settings pertaining to offloaded data (i.e. Blobs, Schema, query data, etc.)."""
        pass
    max_parallelism: builtins.int = ...
    """Controls the maximum number of tasknodes that can be run in parallel for the entire workflow.
    This is useful to achieve fairness. Note: MapTasks are regarded as one unit,
    and parallelism/concurrency of MapTasks is independent from this.
    """

    def __init__(self,
        *,
        workflow_id : typing.Optional[flyteidl.core.identifier_pb2.Identifier] = ...,
        entity_metadata : typing.Optional[global___LaunchPlanMetadata] = ...,
        default_inputs : typing.Optional[flyteidl.core.interface_pb2.ParameterMap] = ...,
        fixed_inputs : typing.Optional[flyteidl.core.literals_pb2.LiteralMap] = ...,
        role : typing.Text = ...,
        labels : typing.Optional[flyteidl.admin.common_pb2.Labels] = ...,
        annotations : typing.Optional[flyteidl.admin.common_pb2.Annotations] = ...,
        auth : typing.Optional[global___Auth] = ...,
        auth_role : typing.Optional[flyteidl.admin.common_pb2.AuthRole] = ...,
        security_context : typing.Optional[flyteidl.core.security_pb2.SecurityContext] = ...,
        quality_of_service : typing.Optional[flyteidl.core.execution_pb2.QualityOfService] = ...,
        raw_output_data_config : typing.Optional[flyteidl.admin.common_pb2.RawOutputDataConfig] = ...,
        max_parallelism : builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"annotations",b"annotations",u"auth",b"auth",u"auth_role",b"auth_role",u"default_inputs",b"default_inputs",u"entity_metadata",b"entity_metadata",u"fixed_inputs",b"fixed_inputs",u"labels",b"labels",u"quality_of_service",b"quality_of_service",u"raw_output_data_config",b"raw_output_data_config",u"security_context",b"security_context",u"workflow_id",b"workflow_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"annotations",b"annotations",u"auth",b"auth",u"auth_role",b"auth_role",u"default_inputs",b"default_inputs",u"entity_metadata",b"entity_metadata",u"fixed_inputs",b"fixed_inputs",u"labels",b"labels",u"max_parallelism",b"max_parallelism",u"quality_of_service",b"quality_of_service",u"raw_output_data_config",b"raw_output_data_config",u"role",b"role",u"security_context",b"security_context",u"workflow_id",b"workflow_id"]) -> None: ...
global___LaunchPlanSpec = LaunchPlanSpec

class LaunchPlanClosure(google.protobuf.message.Message):
    """Values computed by the flyte platform after launch plan registration.
    These include expected_inputs required to be present in a CreateExecutionRequest
    to launch the reference workflow as well timestamp values associated with the launch plan.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    STATE_FIELD_NUMBER: builtins.int
    EXPECTED_INPUTS_FIELD_NUMBER: builtins.int
    EXPECTED_OUTPUTS_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    state: global___LaunchPlanState.V = ...
    """Indicate the Launch plan state."""

    @property
    def expected_inputs(self) -> flyteidl.core.interface_pb2.ParameterMap:
        """Indicates the set of inputs expected when creating an execution with the Launch plan"""
        pass
    @property
    def expected_outputs(self) -> flyteidl.core.interface_pb2.VariableMap:
        """Indicates the set of outputs expected to be produced by creating an execution with the Launch plan"""
        pass
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Time at which the launch plan was created."""
        pass
    @property
    def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Time at which the launch plan was last updated."""
        pass
    def __init__(self,
        *,
        state : global___LaunchPlanState.V = ...,
        expected_inputs : typing.Optional[flyteidl.core.interface_pb2.ParameterMap] = ...,
        expected_outputs : typing.Optional[flyteidl.core.interface_pb2.VariableMap] = ...,
        created_at : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        updated_at : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"created_at",b"created_at",u"expected_inputs",b"expected_inputs",u"expected_outputs",b"expected_outputs",u"updated_at",b"updated_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"created_at",b"created_at",u"expected_inputs",b"expected_inputs",u"expected_outputs",b"expected_outputs",u"state",b"state",u"updated_at",b"updated_at"]) -> None: ...
global___LaunchPlanClosure = LaunchPlanClosure

class LaunchPlanMetadata(google.protobuf.message.Message):
    """Additional launch plan attributes included in the LaunchPlanSpec not strictly required to launch
    the reference workflow.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SCHEDULE_FIELD_NUMBER: builtins.int
    NOTIFICATIONS_FIELD_NUMBER: builtins.int
    @property
    def schedule(self) -> flyteidl.admin.schedule_pb2.Schedule:
        """Schedule to execute the Launch Plan"""
        pass
    @property
    def notifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flyteidl.admin.common_pb2.Notification]:
        """List of notifications based on Execution status transitions"""
        pass
    def __init__(self,
        *,
        schedule : typing.Optional[flyteidl.admin.schedule_pb2.Schedule] = ...,
        notifications : typing.Optional[typing.Iterable[flyteidl.admin.common_pb2.Notification]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"schedule",b"schedule"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"notifications",b"notifications",u"schedule",b"schedule"]) -> None: ...
global___LaunchPlanMetadata = LaunchPlanMetadata

class LaunchPlanUpdateRequest(google.protobuf.message.Message):
    """Request to set the referenced launch plan state to the configured value.
    See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> flyteidl.core.identifier_pb2.Identifier:
        """Identifier of launch plan for which to change state.
        +required.
        """
        pass
    state: global___LaunchPlanState.V = ...
    """Desired state to apply to the launch plan.
    +required.
    """

    def __init__(self,
        *,
        id : typing.Optional[flyteidl.core.identifier_pb2.Identifier] = ...,
        state : global___LaunchPlanState.V = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"state",b"state"]) -> None: ...
global___LaunchPlanUpdateRequest = LaunchPlanUpdateRequest

class LaunchPlanUpdateResponse(google.protobuf.message.Message):
    """Purposefully empty, may be populated in the future."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    def __init__(self,
        ) -> None: ...
global___LaunchPlanUpdateResponse = LaunchPlanUpdateResponse

class ActiveLaunchPlanRequest(google.protobuf.message.Message):
    """Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier
    See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> flyteidl.admin.common_pb2.NamedEntityIdentifier:
        """+required."""
        pass
    def __init__(self,
        *,
        id : typing.Optional[flyteidl.admin.common_pb2.NamedEntityIdentifier] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id"]) -> None: ...
global___ActiveLaunchPlanRequest = ActiveLaunchPlanRequest

class ActiveLaunchPlanListRequest(google.protobuf.message.Message):
    """Represents a request structure to list active launch plans within a project/domain.
    See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PROJECT_FIELD_NUMBER: builtins.int
    DOMAIN_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    SORT_BY_FIELD_NUMBER: builtins.int
    project: typing.Text = ...
    """Name of the project that contains the identifiers.
    +required.
    """

    domain: typing.Text = ...
    """Name of the domain the identifiers belongs to within the project.
    +required.
    """

    limit: builtins.int = ...
    """Indicates the number of resources to be returned.
    +required.
    """

    token: typing.Text = ...
    """In the case of multiple pages of results, the server-provided token can be used to fetch the next page
    in a query.
    +optional
    """

    @property
    def sort_by(self) -> flyteidl.admin.common_pb2.Sort:
        """Sort ordering.
        +optional
        """
        pass
    def __init__(self,
        *,
        project : typing.Text = ...,
        domain : typing.Text = ...,
        limit : builtins.int = ...,
        token : typing.Text = ...,
        sort_by : typing.Optional[flyteidl.admin.common_pb2.Sort] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"sort_by",b"sort_by"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"domain",b"domain",u"limit",b"limit",u"project",b"project",u"sort_by",b"sort_by",u"token",b"token"]) -> None: ...
global___ActiveLaunchPlanListRequest = ActiveLaunchPlanListRequest
