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

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

class NamedEntityState(_NamedEntityState, metaclass=_NamedEntityStateEnumTypeWrapper):
    """The status of the named entity is used to control its visibility in the UI."""
    pass
class _NamedEntityState:
    V = typing.NewType('V', builtins.int)
class _NamedEntityStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NamedEntityState.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    NAMED_ENTITY_ACTIVE = NamedEntityState.V(0)
    """By default, all named entities are considered active and under development."""

    NAMED_ENTITY_ARCHIVED = NamedEntityState.V(1)
    """Archived named entities are no longer visible in the UI."""

    SYSTEM_GENERATED = NamedEntityState.V(2)
    """System generated entities that aren't explicitly created or managed by a user."""


NAMED_ENTITY_ACTIVE = NamedEntityState.V(0)
"""By default, all named entities are considered active and under development."""

NAMED_ENTITY_ARCHIVED = NamedEntityState.V(1)
"""Archived named entities are no longer visible in the UI."""

SYSTEM_GENERATED = NamedEntityState.V(2)
"""System generated entities that aren't explicitly created or managed by a user."""

global___NamedEntityState = NamedEntityState


class NamedEntityIdentifier(google.protobuf.message.Message):
    """Encapsulation of fields that identifies a Flyte resource.
    A Flyte resource can be a task, workflow or launch plan.
    A resource can internally have multiple versions and is uniquely identified
    by project, domain, and name.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PROJECT_FIELD_NUMBER: builtins.int
    DOMAIN_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    project: typing.Text = ...
    """Name of the project the resource belongs to."""

    domain: typing.Text = ...
    """Name of the domain the resource belongs to.
    A domain can be considered as a subset within a specific project.
    """

    name: typing.Text = ...
    """User provided value for the resource.
    The combination of project + domain + name uniquely identifies the resource.
    +optional - in certain contexts - like 'List API', 'Launch plans'
    """

    def __init__(self,
        *,
        project : typing.Text = ...,
        domain : typing.Text = ...,
        name : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"domain",b"domain",u"name",b"name",u"project",b"project"]) -> None: ...
global___NamedEntityIdentifier = NamedEntityIdentifier

class NamedEntityMetadata(google.protobuf.message.Message):
    """Additional metadata around a named entity."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DESCRIPTION_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    description: typing.Text = ...
    """Common description across all versions of the entity
    +optional
    """

    state: global___NamedEntityState.V = ...
    """Shared state across all version of the entity
    At this point in time, only workflow entities can have their state archived.
    """

    def __init__(self,
        *,
        description : typing.Text = ...,
        state : global___NamedEntityState.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"description",b"description",u"state",b"state"]) -> None: ...
global___NamedEntityMetadata = NamedEntityMetadata

class NamedEntity(google.protobuf.message.Message):
    """Encapsulates information common to a NamedEntity, a Flyte resource such as a task,
    workflow or launch plan. A NamedEntity is exclusively identified by its resource type
    and identifier.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_TYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    resource_type: flyteidl.core.identifier_pb2.ResourceType.V = ...
    """Resource type of the named entity. One of Task, Workflow or LaunchPlan."""

    @property
    def id(self) -> global___NamedEntityIdentifier: ...
    @property
    def metadata(self) -> global___NamedEntityMetadata:
        """Additional metadata around a named entity."""
        pass
    def __init__(self,
        *,
        resource_type : flyteidl.core.identifier_pb2.ResourceType.V = ...,
        id : typing.Optional[global___NamedEntityIdentifier] = ...,
        metadata : typing.Optional[global___NamedEntityMetadata] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id",u"metadata",b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"metadata",b"metadata",u"resource_type",b"resource_type"]) -> None: ...
global___NamedEntity = NamedEntity

class Sort(google.protobuf.message.Message):
    """Specifies sort ordering in a list request."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Direction(_Direction, metaclass=_DirectionEnumTypeWrapper):
        pass
    class _Direction:
        V = typing.NewType('V', builtins.int)
    class _DirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Direction.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        DESCENDING = Sort.Direction.V(0)
        """By default, fields are sorted in descending order."""

        ASCENDING = Sort.Direction.V(1)

    DESCENDING = Sort.Direction.V(0)
    """By default, fields are sorted in descending order."""

    ASCENDING = Sort.Direction.V(1)

    KEY_FIELD_NUMBER: builtins.int
    DIRECTION_FIELD_NUMBER: builtins.int
    key: typing.Text = ...
    """Indicates an attribute to sort the response values.
    +required
    """

    direction: global___Sort.Direction.V = ...
    """Indicates the direction to apply sort key for response values.
    +optional
    """

    def __init__(self,
        *,
        key : typing.Text = ...,
        direction : global___Sort.Direction.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"direction",b"direction",u"key",b"key"]) -> None: ...
global___Sort = Sort

class NamedEntityIdentifierListRequest(google.protobuf.message.Message):
    """Represents a request structure to list NamedEntityIdentifiers."""
    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
    FILTERS_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) -> global___Sort:
        """Specifies how listed entities should be sorted in the response.
        +optional
        """
        pass
    filters: typing.Text = ...
    """Indicates a list of filters passed as string.
    +optional
    """

    def __init__(self,
        *,
        project : typing.Text = ...,
        domain : typing.Text = ...,
        limit : builtins.int = ...,
        token : typing.Text = ...,
        sort_by : typing.Optional[global___Sort] = ...,
        filters : typing.Text = ...,
        ) -> 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"filters",b"filters",u"limit",b"limit",u"project",b"project",u"sort_by",b"sort_by",u"token",b"token"]) -> None: ...
global___NamedEntityIdentifierListRequest = NamedEntityIdentifierListRequest

class NamedEntityListRequest(google.protobuf.message.Message):
    """Represents a request structure to list NamedEntity objects"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_TYPE_FIELD_NUMBER: builtins.int
    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
    FILTERS_FIELD_NUMBER: builtins.int
    resource_type: flyteidl.core.identifier_pb2.ResourceType.V = ...
    """Resource type of the metadata to query. One of Task, Workflow or LaunchPlan.
    +required
    """

    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."""

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

    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) -> global___Sort:
        """Specifies how listed entities should be sorted in the response.
        +optional
        """
        pass
    filters: typing.Text = ...
    """Indicates a list of filters passed as string.
    +optional
    """

    def __init__(self,
        *,
        resource_type : flyteidl.core.identifier_pb2.ResourceType.V = ...,
        project : typing.Text = ...,
        domain : typing.Text = ...,
        limit : builtins.int = ...,
        token : typing.Text = ...,
        sort_by : typing.Optional[global___Sort] = ...,
        filters : typing.Text = ...,
        ) -> 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"filters",b"filters",u"limit",b"limit",u"project",b"project",u"resource_type",b"resource_type",u"sort_by",b"sort_by",u"token",b"token"]) -> None: ...
global___NamedEntityListRequest = NamedEntityListRequest

class NamedEntityIdentifierList(google.protobuf.message.Message):
    """Represents a list of NamedEntityIdentifiers."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ENTITIES_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    @property
    def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedEntityIdentifier]:
        """A list of identifiers."""
        pass
    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,
        *,
        entities : typing.Optional[typing.Iterable[global___NamedEntityIdentifier]] = ...,
        token : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"entities",b"entities",u"token",b"token"]) -> None: ...
global___NamedEntityIdentifierList = NamedEntityIdentifierList

class NamedEntityList(google.protobuf.message.Message):
    """Represents a list of NamedEntityIdentifiers."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ENTITIES_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    @property
    def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedEntity]:
        """A list of NamedEntity objects"""
        pass
    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,
        *,
        entities : typing.Optional[typing.Iterable[global___NamedEntity]] = ...,
        token : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"entities",b"entities",u"token",b"token"]) -> None: ...
global___NamedEntityList = NamedEntityList

class NamedEntityGetRequest(google.protobuf.message.Message):
    """A request to retrieve the metadata associated with a NamedEntityIdentifier"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_TYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    resource_type: flyteidl.core.identifier_pb2.ResourceType.V = ...
    """Resource type of the metadata to get. One of Task, Workflow or LaunchPlan.
    +required
    """

    @property
    def id(self) -> global___NamedEntityIdentifier:
        """The identifier for the named entity for which to fetch metadata.
        +required
        """
        pass
    def __init__(self,
        *,
        resource_type : flyteidl.core.identifier_pb2.ResourceType.V = ...,
        id : typing.Optional[global___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",u"resource_type",b"resource_type"]) -> None: ...
global___NamedEntityGetRequest = NamedEntityGetRequest

class NamedEntityUpdateRequest(google.protobuf.message.Message):
    """Request to set the referenced named entity state to the configured value."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_TYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    resource_type: flyteidl.core.identifier_pb2.ResourceType.V = ...
    """Resource type of the metadata to update
    +required
    """

    @property
    def id(self) -> global___NamedEntityIdentifier:
        """Identifier of the metadata to update
        +required
        """
        pass
    @property
    def metadata(self) -> global___NamedEntityMetadata:
        """Metadata object to set as the new value
        +required
        """
        pass
    def __init__(self,
        *,
        resource_type : flyteidl.core.identifier_pb2.ResourceType.V = ...,
        id : typing.Optional[global___NamedEntityIdentifier] = ...,
        metadata : typing.Optional[global___NamedEntityMetadata] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id",u"metadata",b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"metadata",b"metadata",u"resource_type",b"resource_type"]) -> None: ...
global___NamedEntityUpdateRequest = NamedEntityUpdateRequest

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

class ObjectGetRequest(google.protobuf.message.Message):
    """Shared request structure to fetch a single resource.
    Resources include: Task, Workflow, LaunchPlan
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> flyteidl.core.identifier_pb2.Identifier:
        """Indicates a unique version of resource.
        +required
        """
        pass
    def __init__(self,
        *,
        id : typing.Optional[flyteidl.core.identifier_pb2.Identifier] = ...,
        ) -> 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___ObjectGetRequest = ObjectGetRequest

class ResourceListRequest(google.protobuf.message.Message):
    """Shared request structure to retrieve a list of resources.
    Resources include: Task, Workflow, LaunchPlan
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    FILTERS_FIELD_NUMBER: builtins.int
    SORT_BY_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> global___NamedEntityIdentifier:
        """id represents the unique identifier of the resource.
        +required
        """
        pass
    limit: builtins.int = ...
    """Indicates the number of resources to be returned.
    +required
    """

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

    filters: typing.Text = ...
    """Indicates a list of filters passed as string.
    More info on constructing filters : <Link>
    +optional
    """

    @property
    def sort_by(self) -> global___Sort:
        """Sort ordering.
        +optional
        """
        pass
    def __init__(self,
        *,
        id : typing.Optional[global___NamedEntityIdentifier] = ...,
        limit : builtins.int = ...,
        token : typing.Text = ...,
        filters : typing.Text = ...,
        sort_by : typing.Optional[global___Sort] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id",u"sort_by",b"sort_by"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"filters",b"filters",u"id",b"id",u"limit",b"limit",u"sort_by",b"sort_by",u"token",b"token"]) -> None: ...
global___ResourceListRequest = ResourceListRequest

class EmailNotification(google.protobuf.message.Message):
    """Defines an email notification specification."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RECIPIENTS_EMAIL_FIELD_NUMBER: builtins.int
    @property
    def recipients_email(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
        """The list of email addresses recipients for this notification.
        +required
        """
        pass
    def __init__(self,
        *,
        recipients_email : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"recipients_email",b"recipients_email"]) -> None: ...
global___EmailNotification = EmailNotification

class PagerDutyNotification(google.protobuf.message.Message):
    """Defines a pager duty notification specification."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RECIPIENTS_EMAIL_FIELD_NUMBER: builtins.int
    @property
    def recipients_email(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
        """Currently, PagerDuty notifications leverage email to trigger a notification.
        +required
        """
        pass
    def __init__(self,
        *,
        recipients_email : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"recipients_email",b"recipients_email"]) -> None: ...
global___PagerDutyNotification = PagerDutyNotification

class SlackNotification(google.protobuf.message.Message):
    """Defines a slack notification specification."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RECIPIENTS_EMAIL_FIELD_NUMBER: builtins.int
    @property
    def recipients_email(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
        """Currently, Slack notifications leverage email to trigger a notification.
        +required
        """
        pass
    def __init__(self,
        *,
        recipients_email : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"recipients_email",b"recipients_email"]) -> None: ...
global___SlackNotification = SlackNotification

class Notification(google.protobuf.message.Message):
    """Represents a structure for notifications based on execution status.
    The notification content is configured within flyte admin but can be templatized.
    Future iterations could expose configuring notifications with custom content.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PHASES_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    PAGER_DUTY_FIELD_NUMBER: builtins.int
    SLACK_FIELD_NUMBER: builtins.int
    @property
    def phases(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[flyteidl.core.execution_pb2.WorkflowExecution.Phase.V]:
        """A list of phases to which users can associate the notifications to.
        +required
        """
        pass
    @property
    def email(self) -> global___EmailNotification: ...
    @property
    def pager_duty(self) -> global___PagerDutyNotification: ...
    @property
    def slack(self) -> global___SlackNotification: ...
    def __init__(self,
        *,
        phases : typing.Optional[typing.Iterable[flyteidl.core.execution_pb2.WorkflowExecution.Phase.V]] = ...,
        email : typing.Optional[global___EmailNotification] = ...,
        pager_duty : typing.Optional[global___PagerDutyNotification] = ...,
        slack : typing.Optional[global___SlackNotification] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"email",b"email",u"pager_duty",b"pager_duty",u"slack",b"slack",u"type",b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"email",b"email",u"pager_duty",b"pager_duty",u"phases",b"phases",u"slack",b"slack",u"type",b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"type",b"type"]) -> typing.Optional[typing_extensions.Literal["email","pager_duty","slack"]]: ...
global___Notification = Notification

class UrlBlob(google.protobuf.message.Message):
    """Represents a string url and associated metadata used throughout the platform."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    URL_FIELD_NUMBER: builtins.int
    BYTES_FIELD_NUMBER: builtins.int
    url: typing.Text = ...
    """Actual url value."""

    bytes: builtins.int = ...
    """Represents the size of the file accessible at the above url."""

    def __init__(self,
        *,
        url : typing.Text = ...,
        bytes : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"bytes",b"bytes",u"url",b"url"]) -> None: ...
global___UrlBlob = UrlBlob

class Labels(google.protobuf.message.Message):
    """Label values to be applied to an execution resource.
    In the future a mode (e.g. OVERRIDE, APPEND, etc) can be defined
    to specify how to merge labels defined at registration and execution time.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ValuesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    VALUES_FIELD_NUMBER: builtins.int
    @property
    def values(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Map of custom labels to be applied to the execution resource."""
        pass
    def __init__(self,
        *,
        values : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"values",b"values"]) -> None: ...
global___Labels = Labels

class Annotations(google.protobuf.message.Message):
    """Annotation values to be applied to an execution resource.
    In the future a mode (e.g. OVERRIDE, APPEND, etc) can be defined
    to specify how to merge annotations defined at registration and execution time.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ValuesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    VALUES_FIELD_NUMBER: builtins.int
    @property
    def values(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Map of custom annotations to be applied to the execution resource."""
        pass
    def __init__(self,
        *,
        values : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"values",b"values"]) -> None: ...
global___Annotations = Annotations

class AuthRole(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___AuthRole = AuthRole

class RawOutputDataConfig(google.protobuf.message.Message):
    """Encapsulates user settings pertaining to offloaded data (i.e. Blobs, Schema, query data, etc.).
    See https://github.com/flyteorg/flyte/issues/211 for more background information.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    OUTPUT_LOCATION_PREFIX_FIELD_NUMBER: builtins.int
    output_location_prefix: typing.Text = ...
    """Prefix for where offloaded data from user workflows will be written
    e.g. s3://bucket/key or s3://bucket/
    """

    def __init__(self,
        *,
        output_location_prefix : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"output_location_prefix",b"output_location_prefix"]) -> None: ...
global___RawOutputDataConfig = RawOutputDataConfig
