> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions

> Fetch existing workflow definitions matching input filters.



## OpenAPI

````yaml /api-specs/cloud/flyte-native-api.yaml get /api/v1/workflows/{id.project}/{id.domain}
openapi: 3.0.0
info:
  title: flyteidl/service/admin.proto
  version: version not set
servers:
  - url: https://mycluster.domino.tech
    description: >-
      Replace 'mycluster.domino.tech' with your Domino cluster hostname. For
      Domino Cloud customers, that is <your-subdomain>.domino.tech (e.g.,
      acme.domino.tech). For self-hosted deployments, it is the hostname you
      reach the Domino UI at.
security: []
tags:
  - name: AdminService
paths:
  /api/v1/workflows/{id.project}/{id.domain}:
    get:
      tags:
        - AdminService
      summary: Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions
      description: Fetch existing workflow definitions matching input filters.
      operationId: AdminService_ListWorkflows2
      parameters:
        - name: id.project
          description: Name of the project the resource belongs to.
          in: path
          required: true
          schema:
            type: string
        - name: id.domain
          description: |-
            Name of the domain the resource belongs to.
            A domain can be considered as a subset within a specific project.
          in: path
          required: true
          schema:
            type: string
        - name: id.name
          description: >-
            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'
          in: query
          required: false
          schema:
            type: string
        - name: id.org
          description: Optional, org key applied to the resource.
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: |-
            Indicates the number of resources to be returned.
            +required
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: token
          description: >-
            In the case of multiple pages of results, this server-provided token
            can be used to fetch the next page

            in a query.

            +optional
          in: query
          required: false
          schema:
            type: string
        - name: filters
          description: |-
            Indicates a list of filters passed as string.
            More info on constructing filters : <Link>
            +optional
          in: query
          required: false
          schema:
            type: string
        - name: sort_by.key
          description: |-
            Indicates an attribute to sort the response values.
            +required
          in: query
          required: false
          schema:
            type: string
        - name: sort_by.direction
          description: |-
            Indicates the direction to apply sort key for response values.
            +optional

             - DESCENDING: By default, fields are sorted in descending order.
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESCENDING
              - ASCENDING
            default: DESCENDING
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminWorkflowList'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
components:
  schemas:
    adminWorkflowList:
      type: object
      properties:
        workflows:
          type: array
          items:
            $ref: '#/components/schemas/adminWorkflow'
          description: A list of workflows returned based on the request.
        token:
          type: string
          description: >-
            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.
      title: |-
        Represents a list of workflows returned from the admin.
        See :ref:`ref_flyteidl.admin.Workflow` for more details
    googlerpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
    adminWorkflow:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/coreIdentifier'
        closure:
          $ref: '#/components/schemas/flyteidladminWorkflowClosure'
        short_description:
          type: string
          description: One-liner overview of the entity.
      description: >-
        Represents the workflow structure stored in the Admin

        A workflow is created by ordering tasks and associating outputs to
        inputs

        in order to produce a directed-acyclic execution graph.
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
          description: >-
            A URL/resource name that uniquely identifies the type of the
            serialized

            protocol buffer message. This string must contain at least

            one "/" character. The last segment of the URL's path must represent

            the fully qualified name of the type (as in

            `path/google.protobuf.Duration`). The name should be in a canonical
            form

            (e.g., leading "." is not accepted).


            In practice, teams usually precompile into the binary all types that
            they

            expect it to use in the context of Any. However, for URLs which use
            the

            scheme `http`, `https`, or no scheme, one can optionally set up a
            type

            server that maps type URLs to message definitions as follows:


            * If no scheme is provided, `https` is assumed.

            * An HTTP GET on the URL must yield a [google.protobuf.Type][]
              value in binary format, or produce an error.
            * Applications are allowed to cache lookup results based on the
              URL, or have them precompiled into a binary to avoid any
              lookup. Therefore, binary compatibility needs to be preserved
              on changes to types. (Use versioned type names to manage
              breaking changes.)

            Note: this functionality is not currently available in the official

            protobuf release, and it is not used for type URLs beginning with

            type.googleapis.com. As of May 2023, there are no widely used type
            server

            implementations and no plans to implement one.


            Schemes other than `http`, `https` (or the empty scheme) might be

            used with implementation specific semantics.
      additionalProperties: {}
      description: >-
        `Any` contains an arbitrary serialized protocol buffer message along
        with a

        URL that describes the type of the serialized message.


        Protobuf library provides support to pack/unpack Any values in the form

        of utility functions or additional generated methods of the Any type.


        Example 1: Pack and unpack a message in C++.

            Foo foo = ...;
            Any any;
            any.PackFrom(foo);
            ...
            if (any.UnpackTo(&foo)) {
              ...
            }

        Example 2: Pack and unpack a message in Java.

            Foo foo = ...;
            Any any = Any.pack(foo);
            ...
            if (any.is(Foo.class)) {
              foo = any.unpack(Foo.class);
            }
            // or ...
            if (any.isSameTypeAs(Foo.getDefaultInstance())) {
              foo = any.unpack(Foo.getDefaultInstance());
            }

         Example 3: Pack and unpack a message in Python.

            foo = Foo(...)
            any = Any()
            any.Pack(foo)
            ...
            if any.Is(Foo.DESCRIPTOR):
              any.Unpack(foo)
              ...

         Example 4: Pack and unpack a message in Go

             foo := &pb.Foo{...}
             any, err := anypb.New(foo)
             if err != nil {
               ...
             }
             ...
             foo := &pb.Foo{}
             if err := any.UnmarshalTo(foo); err != nil {
               ...
             }

        The pack methods provided by protobuf library will by default use

        'type.googleapis.com/full.type.name' as the type URL and the unpack

        methods only use the fully qualified type name after the last '/'

        in the type URL, for example "foo.bar.com/x/y.z" will yield type

        name "y.z".


        JSON

        ====

        The JSON representation of an `Any` value uses the regular

        representation of the deserialized, embedded message, with an

        additional field `@type` which contains the type URL. Example:

            package google.profile;
            message Person {
              string first_name = 1;
              string last_name = 2;
            }

            {
              "@type": "type.googleapis.com/google.profile.Person",
              "firstName": <string>,
              "lastName": <string>
            }

        If the embedded message type is well-known and has a custom JSON

        representation, that representation will be embedded adding a field

        `value` which holds the custom JSON in addition to the `@type`

        field. Example (for message [google.protobuf.Duration][]):

            {
              "@type": "type.googleapis.com/google.protobuf.Duration",
              "value": "1.212s"
            }
    coreIdentifier:
      type: object
      properties:
        resource_type:
          $ref: '#/components/schemas/coreResourceType'
        project:
          type: string
          description: Name of the project the resource belongs to.
        domain:
          type: string
          description: |-
            Name of the domain the resource belongs to.
            A domain can be considered as a subset within a specific project.
        name:
          type: string
          description: User provided value for the resource.
        version:
          type: string
          description: Specific version of the resource.
        org:
          type: string
          description: Optional, org key applied to the resource.
      description: Encapsulation of fields that uniquely identifies a Flyte resource.
    flyteidladminWorkflowClosure:
      type: object
      properties:
        compiled_workflow:
          $ref: '#/components/schemas/coreCompiledWorkflowClosure'
        created_at:
          type: string
          format: date-time
          description: Time at which the workflow was created.
      description: >-
        A container holding the compiled workflow produced from the WorkflowSpec
        and additional metadata.
    coreResourceType:
      type: string
      enum:
        - UNSPECIFIED
        - TASK
        - WORKFLOW
        - LAUNCH_PLAN
        - DATASET
      default: UNSPECIFIED
      description: >-
        Indicates a resource type within Flyte.

         - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.
        Eventually all Catalog objects should be modeled similar to Flyte
        Objects. The Dataset entities makes it possible for the UI  and CLI to
        act on the objects 

        in a similar manner to other Flyte objects
    coreCompiledWorkflowClosure:
      type: object
      properties:
        primary:
          $ref: '#/components/schemas/coreCompiledWorkflow'
        sub_workflows:
          type: array
          items:
            $ref: '#/components/schemas/coreCompiledWorkflow'
          title: >-
            Guaranteed that there will only exist one and only one workflow with
            a given id, i.e., every sub workflow has a

            unique identifier. Also every enclosed subworkflow is used either by
            a primary workflow or by a subworkflow

            as an inlined workflow

            +optional
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/coreCompiledTask'
          title: >-
            Guaranteed that there will only exist one and only one task with a
            given id, i.e., every task has a unique id

            +required (at least 1)
        launch_plans:
          type: array
          items:
            $ref: '#/components/schemas/coreCompiledLaunchPlan'
          description: >-
            A collection of launch plans that are compiled. Guaranteed that
            there will only exist one and only one launch plan

            with a given id, i.e., every launch plan has a unique id.
      description: >-
        A Compiled Workflow Closure contains all the information required to
        start a new execution, or to visualize a workflow

        and its details. The CompiledWorkflowClosure should always contain a
        primary workflow, that is the main workflow that

        will being the execution. All subworkflows are denormalized.
        WorkflowNodes refer to the workflow identifiers of

        compiled subworkflows.
    coreCompiledWorkflow:
      type: object
      properties:
        template:
          $ref: '#/components/schemas/coreWorkflowTemplate'
        connections:
          $ref: '#/components/schemas/coreConnectionSet'
      title: >-
        Output of the compilation Step. This object represents one workflow. We
        store more metadata at this layer
    coreCompiledTask:
      type: object
      properties:
        template:
          $ref: '#/components/schemas/coreTaskTemplate'
      title: >-
        Output of the Compilation step. This object represent one Task. We store
        more metadata at this layer
    coreCompiledLaunchPlan:
      type: object
      properties:
        template:
          $ref: '#/components/schemas/coreLaunchPlanTemplate'
      title: >-
        Output of the compilation step. This object represents one LaunchPlan.
        We store more metadata at this layer
    coreWorkflowTemplate:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/coreIdentifier'
        metadata:
          $ref: '#/components/schemas/coreWorkflowMetadata'
        interface:
          $ref: '#/components/schemas/coreTypedInterface'
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/coreNode'
          description: >-
            A list of nodes. In addition, 'globals' is a special reserved node
            id that can be used to consume workflow inputs.
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/coreBinding'
          description: >-
            A list of output bindings that specify how to construct workflow
            outputs. Bindings can pull node outputs or

            specify literals. All workflow outputs specified in the interface
            field must be bound in order for the workflow

            to be validated. A workflow has an implicit dependency on all of its
            nodes to execute successfully in order to

            bind final outputs.

            Most of these outputs will be Binding's with a BindingData of type
            OutputReference.  That is, your workflow can

            just have an output of some constant (`Output(5)`), but usually, the
            workflow will be pulling

            outputs from the output of a task.
        failure_node:
          $ref: '#/components/schemas/coreNode'
        metadata_defaults:
          $ref: '#/components/schemas/coreWorkflowMetadataDefaults'
      description: >-
        Flyte Workflow Structure that encapsulates task, branch and subworkflow
        nodes to form a statically analyzable,

        directed acyclic graph.
    coreConnectionSet:
      type: object
      properties:
        downstream:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ConnectionSetIdList'
          title: A list of all the node ids that are downstream from a given node id
        upstream:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ConnectionSetIdList'
          title: A list of all the node ids, that are upstream of this node id
      title: >-
        Adjacency list for the workflow. This is created as part of the
        compilation process. Every process after the compilation

        step uses this created ConnectionSet
    coreTaskTemplate:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/coreIdentifier'
        type:
          type: string
          description: >-
            A predefined yet extensible Task type identifier. This can be used
            to customize any of the components. If no

            extensions are provided in the system, Flyte will resolve the this
            task to its TaskCategory and default the

            implementation registered for the TaskCategory.
        metadata:
          $ref: '#/components/schemas/coreTaskMetadata'
        interface:
          $ref: '#/components/schemas/coreTypedInterface'
        custom:
          type: object
          description: >-
            Custom data about the task. This is extensible to allow various
            plugins in the system.
        container:
          $ref: '#/components/schemas/coreContainer'
        k8s_pod:
          $ref: '#/components/schemas/coreK8sPod'
        sql:
          $ref: '#/components/schemas/coreSql'
        task_type_version:
          type: integer
          format: int32
          description: >-
            This can be used to customize task handling at execution time for
            the same task type.
        security_context:
          $ref: '#/components/schemas/coreSecurityContext'
        extended_resources:
          $ref: '#/components/schemas/coreExtendedResources'
        config:
          type: object
          additionalProperties:
            type: string
          title: >-
            Metadata about the custom defined for this task. This is extensible
            to allow various plugins in the system

            to use as required.

            reserve the field numbers 1 through 15 for very frequently occurring
            message elements
      description: |-
        A Task structure that uniquely identifies a task in the system
        Tasks are registered as a first step in the system.
    coreLaunchPlanTemplate:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/coreIdentifier'
        interface:
          $ref: '#/components/schemas/coreTypedInterface'
        fixed_inputs:
          $ref: '#/components/schemas/coreLiteralMap'
      description: A structure that uniquely identifies a launch plan in the system.
    coreWorkflowMetadata:
      type: object
      properties:
        quality_of_service:
          $ref: '#/components/schemas/coreQualityOfService'
        on_failure:
          $ref: '#/components/schemas/WorkflowMetadataOnFailurePolicy'
        tags:
          type: object
          additionalProperties:
            type: string
          title: >-
            Arbitrary tags that allow users and the platform to store small but
            arbitrary labels
      description: >-
        This is workflow layer metadata. These settings are only applicable to
        the workflow as a whole, and do not

        percolate down to child entities (like tasks) launched by the workflow.
    coreTypedInterface:
      type: object
      properties:
        inputs:
          $ref: '#/components/schemas/coreVariableMap'
        outputs:
          $ref: '#/components/schemas/coreVariableMap'
      description: Defines strongly typed inputs and outputs.
    coreNode:
      type: object
      properties:
        id:
          type: string
          description: >-
            A workflow-level unique identifier that identifies this node in the
            workflow. 'inputs' and 'outputs' are reserved

            node ids that cannot be used by other nodes.
        metadata:
          $ref: '#/components/schemas/coreNodeMetadata'
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/coreBinding'
          description: >-
            Specifies how to bind the underlying interface's inputs. All
            required inputs specified in the underlying interface

            must be fulfilled.
        upstream_node_ids:
          type: array
          items:
            type: string
          description: >-
            +optional Specifies execution dependency for this node ensuring it
            will only get scheduled to run after all its

            upstream nodes have completed. This node will have an implicit
            dependency on any node that appears in inputs

            field.
        output_aliases:
          type: array
          items:
            $ref: '#/components/schemas/coreAlias'
          description: >-
            +optional. A node can define aliases for a subset of its outputs.
            This is particularly useful if different nodes

            need to conform to the same interface (e.g. all branches in a branch
            node). Downstream nodes must refer to this

            nodes outputs using the alias if one's specified.
        task_node:
          $ref: '#/components/schemas/coreTaskNode'
        workflow_node:
          $ref: '#/components/schemas/coreWorkflowNode'
        branch_node:
          $ref: '#/components/schemas/coreBranchNode'
        gate_node:
          $ref: '#/components/schemas/coreGateNode'
        array_node:
          $ref: '#/components/schemas/coreArrayNode'
      description: >-
        A Workflow graph Node. One unit of execution in the graph. Each node can
        be linked to a Task, a Workflow or a branch

        node.
    coreBinding:
      type: object
      properties:
        var:
          type: string
          description: Variable name must match an input/output variable of the node.
        binding:
          $ref: '#/components/schemas/coreBindingData'
      description: >-
        An input/output binding of a variable to either static value or a node
        output.
    coreWorkflowMetadataDefaults:
      type: object
      properties:
        interruptible:
          type: boolean
          description: Whether child nodes of the workflow are interruptible.
      description: >-
        The difference between these settings and the WorkflowMetadata ones is
        that these are meant to be passed down to

        a workflow's underlying entities (like tasks). For instance,
        'interruptible' has no meaning at the workflow layer, it

        is only relevant when a task executes. The settings here are the
        defaults that are passed to all nodes

        unless explicitly overridden at the node layer.

        If you are adding a setting that applies to both the Workflow itself,
        and everything underneath it, it should be

        added to both this object and the WorkflowMetadata object above.
    ConnectionSetIdList:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
    coreTaskMetadata:
      type: object
      properties:
        discoverable:
          type: boolean
          description: >-
            Indicates whether the system should attempt to lookup this task's
            output to avoid duplication of work.
        runtime:
          $ref: '#/components/schemas/coreRuntimeMetadata'
        timeout:
          type: string
          description: The overall timeout of a task including user-triggered retries.
        retries:
          $ref: '#/components/schemas/coreRetryStrategy'
        discovery_version:
          type: string
          description: >-
            Indicates a logical version to apply to this task for the purpose of
            discovery.
        deprecated_error_message:
          type: string
          description: >-
            If set, this indicates that this task is deprecated.  This will
            enable owners of tasks to notify consumers

            of the ending of support for a given task.
        interruptible:
          type: boolean
        cache_serializable:
          type: boolean
          title: >-
            Indicates whether the system should attempt to execute discoverable
            instances in serial to avoid duplicate work
        tags:
          type: object
          additionalProperties:
            type: string
          title: >-
            Arbitrary tags that allow users and the platform to store small but
            arbitrary labels
        pod_template_name:
          type: string
          description: >-
            pod_template_name is the unique name of a PodTemplate k8s resource
            to be used as the base configuration if this

            task creates a k8s Pod. If this value is set, the specified
            PodTemplate will be used instead of, but applied

            identically as, the default PodTemplate configured in
            FlytePropeller.
        cache_ignore_input_vars:
          type: array
          items:
            type: string
          description: >-
            cache_ignore_input_vars is the input variables that should not be
            included when calculating hash for cache.
        is_eager:
          type: boolean
          description: |-
            is_eager indicates whether the task is eager or not.
            This would be used by CreateTask endpoint.
        generates_deck:
          type: boolean
          description: >-
            Indicates whether the task will generate a deck when it finishes
            executing.

            The BoolValue can have three states:

            - nil: The value is not set.

            - true: The task will generate a deck.

            - false: The task will not generate a deck.
        metadata:
          $ref: '#/components/schemas/coreK8sObjectMetadata'
      title: Task Metadata
    coreContainer:
      type: object
      properties:
        image:
          type: string
          title: 'Container image url. Eg: docker/redis:latest'
        command:
          type: array
          items:
            type: string
          description: >-
            Command to be executed, if not provided, the default entrypoint in
            the container image will be used.
        args:
          type: array
          items:
            type: string
          description: >-
            These will default to Flyte given paths. If provided, the system
            will not append known paths. If the task still

            needs flyte's inputs and outputs path, add $(FLYTE_INPUT_FILE),
            $(FLYTE_OUTPUT_FILE) wherever makes sense and the

            system will populate these before executing the container.
        resources:
          $ref: '#/components/schemas/coreResources'
        env:
          type: array
          items:
            $ref: '#/components/schemas/flyteidlcoreKeyValuePair'
          description: Environment variables will be set as the container is starting up.
        config:
          type: array
          items:
            $ref: '#/components/schemas/flyteidlcoreKeyValuePair'
          description: |-
            Allows extra configs to be available for the container.
            TODO: elaborate on how configs will become available.
            Deprecated, please use TaskTemplate.config instead.
        ports:
          type: array
          items:
            $ref: '#/components/schemas/coreContainerPort'
          title: >-
            Ports to open in the container. This feature is not supported by all
            execution engines. (e.g. supported on K8s but

            not supported on AWS Batch)

            Only K8s
        data_config:
          $ref: '#/components/schemas/coreDataLoadingConfig'
        architecture:
          $ref: '#/components/schemas/ContainerArchitecture'
    coreK8sPod:
      type: object
      properties:
        metadata:
          $ref: '#/components/schemas/coreK8sObjectMetadata'
        pod_spec:
          type: object
          title: >-
            Defines the primary pod spec created when a task is executed.

            This should be a JSON-marshalled pod spec, which can be defined in

            - go, using:
            https://github.com/kubernetes/api/blob/release-1.21/core/v1/types.go#L2936

            - python: using
            https://github.com/kubernetes-client/python/blob/release-19.0/kubernetes/client/models/v1_pod_spec.py
        data_config:
          $ref: '#/components/schemas/coreDataLoadingConfig'
        primary_container_name:
          type: string
          description: >-
            Defines the primary container name when pod template override is
            executed.
      description: >-
        Defines a pod spec and additional pod metadata that is created when a
        task is executed.
    coreSql:
      type: object
      properties:
        statement:
          type: string
          title: >-
            The actual query to run, the query can have templated parameters.

            We use Flyte's Golang templating format for Query templating.

            For example,

            insert overwrite directory '{{ .rawOutputDataPrefix }}' stored as
            parquet

            select *

            from my_table

            where ds = '{{ .Inputs.ds }}'
        dialect:
          $ref: '#/components/schemas/SqlDialect'
      description: Sql represents a generic sql workload with a statement and dialect.
    coreSecurityContext:
      type: object
      properties:
        run_as:
          $ref: '#/components/schemas/coreIdentity'
        secrets:
          type: array
          items:
            $ref: '#/components/schemas/coreSecret'
          description: >-
            secrets indicate the list of secrets the task needs in order to
            proceed. Secrets will be mounted/passed to the

            pod as it starts. If the plugin responsible for kicking of the task
            will not run it on a flyte cluster (e.g. AWS

            Batch), it's the responsibility of the plugin to fetch the secret
            (which means propeller identity will need access

            to the secret) and to pass it to the remote execution engine.
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/coreOAuth2TokenRequest'
          description: >-
            tokens indicate the list of token requests the task needs in order
            to proceed. Tokens will be mounted/passed to the

            pod as it starts. If the plugin responsible for kicking of the task
            will not run it on a flyte cluster (e.g. AWS

            Batch), it's the responsibility of the plugin to fetch the secret
            (which means propeller identity will need access

            to the secret) and to pass it to the remote execution engine.
      description: SecurityContext holds security attributes that apply to tasks.
    coreExtendedResources:
      type: object
      properties:
        gpu_accelerator:
          $ref: '#/components/schemas/coreGPUAccelerator'
        shared_memory:
          $ref: '#/components/schemas/coreSharedMemory'
      description: >-
        Encapsulates all non-standard resources, not captured by
        v1.ResourceRequirements, to

        allocate to a task.
    coreLiteralMap:
      type: object
      properties:
        literals:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/coreLiteral'
      description: >-
        A map of literals. This is a workaround since oneofs in proto messages
        cannot contain a repeated field.
    coreQualityOfService:
      type: object
      properties:
        tier:
          $ref: '#/components/schemas/QualityOfServiceTier'
        spec:
          $ref: '#/components/schemas/coreQualityOfServiceSpec'
      description: Indicates the priority of an execution.
    WorkflowMetadataOnFailurePolicy:
      type: string
      enum:
        - FAIL_IMMEDIATELY
        - FAIL_AFTER_EXECUTABLE_NODES_COMPLETE
      default: FAIL_IMMEDIATELY
      description: >-
        - FAIL_IMMEDIATELY: FAIL_IMMEDIATELY instructs the system to fail as
        soon as a node fails in the workflow. It'll automatically

        abort all currently running nodes and clean up resources before finally
        marking the workflow executions as

        failed.
         - FAIL_AFTER_EXECUTABLE_NODES_COMPLETE: FAIL_AFTER_EXECUTABLE_NODES_COMPLETE instructs the system to make as much progress as it can. The system will
        not alter the dependencies of the execution graph so any node that
        depend on the failed node will not be run.

        Other nodes that will be executed to completion before cleaning up
        resources and marking the workflow

        execution as failed.
      title: Failure Handling Strategy
    coreVariableMap:
      type: object
      properties:
        variables:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/coreVariable'
          description: Defines a map of variable names to variables.
      title: A map of Variables
    coreNodeMetadata:
      type: object
      properties:
        name:
          type: string
          title: A friendly name for the Node
        timeout:
          type: string
          description: The overall timeout of a task.
        retries:
          $ref: '#/components/schemas/coreRetryStrategy'
        interruptible:
          type: boolean
        cacheable:
          type: boolean
        cache_version:
          type: string
        cache_serializable:
          type: boolean
        config:
          type: object
          additionalProperties:
            type: string
          description: >-
            Config is a bag of properties that can be used to instruct propeller
            on how to execute the node.
      description: Defines extra information about the Node.
    coreAlias:
      type: object
      properties:
        var:
          type: string
          description: Must match one of the output variable names on a node.
        alias:
          type: string
          description: >-
            A workflow-level unique alias that downstream nodes can refer to in
            their input.
      description: Links a variable to an alias.
    coreTaskNode:
      type: object
      properties:
        reference_id:
          $ref: '#/components/schemas/coreIdentifier'
        overrides:
          $ref: '#/components/schemas/coreTaskNodeOverrides'
      description: Refers to the task that the Node is to execute.
    coreWorkflowNode:
      type: object
      properties:
        launchplan_ref:
          $ref: '#/components/schemas/coreIdentifier'
        sub_workflow_ref:
          $ref: '#/components/schemas/coreIdentifier'
      description: Refers to a the workflow the node is to execute.
    coreBranchNode:
      type: object
      properties:
        if_else:
          $ref: '#/components/schemas/coreIfElseBlock'
      description: >-
        BranchNode is a special node that alter the flow of the workflow graph.
        It allows the control flow to branch at

        runtime based on a series of conditions that get evaluated on various
        parameters (e.g. inputs, primitives).
    coreGateNode:
      type: object
      properties:
        approve:
          $ref: '#/components/schemas/coreApproveCondition'
        signal:
          $ref: '#/components/schemas/coreSignalCondition'
        sleep:
          $ref: '#/components/schemas/coreSleepCondition'
      description: >-
        GateNode refers to the condition that is required for the gate to
        successfully complete.
    coreArrayNode:
      type: object
      properties:
        node:
          $ref: '#/components/schemas/coreNode'
        parallelism:
          type: integer
          format: int64
          description: >-
            parallelism defines the minimum number of instances to bring up
            concurrently at any given

            point. Note that this is an optimistic restriction and that, due to
            network partitioning or

            other failures, the actual number of currently running instances
            might be more. This has to

            be a positive number if assigned. Default value is size.
        min_successes:
          type: integer
          format: int64
          description: >-
            min_successes is an absolute number of the minimum number of
            successful completions of

            sub-nodes. As soon as this criteria is met, the ArrayNode will be
            marked as successful

            and outputs will be computed. This has to be a non-negative number
            if assigned. Default

            value is size (if specified).
        min_success_ratio:
          type: number
          format: float
          description: >-
            If the array job size is not known beforehand, the min_success_ratio
            can instead be used

            to determine when an ArrayNode can be marked successful.
        execution_mode:
          $ref: '#/components/schemas/coreArrayNodeExecutionMode'
        is_original_sub_node_interface:
          type: boolean
          title: Indicates whether the sub node's original interface was altered
        data_mode:
          $ref: '#/components/schemas/ArrayNodeDataMode'
        bound_inputs:
          type: array
          items:
            type: string
          description: >-
            +optional. Specifies input bindings that are not mapped over for the
            node.
      description: >-
        ArrayNode is a Flyte node type that simplifies the execution of a
        sub-node over a list of input

        values. An ArrayNode can be executed with configurable parallelism
        (separate from the parent

        workflow) and can be configured to succeed when a certain number of
        sub-nodes succeed.
    coreBindingData:
      type: object
      properties:
        scalar:
          $ref: '#/components/schemas/coreScalar'
        collection:
          $ref: '#/components/schemas/coreBindingDataCollection'
        promise:
          $ref: '#/components/schemas/coreOutputReference'
        map:
          $ref: '#/components/schemas/coreBindingDataMap'
        offloaded_metadata:
          $ref: '#/components/schemas/coreLiteralOffloadedMetadata'
        union:
          $ref: '#/components/schemas/coreUnionInfo'
      description: Specifies either a simple value or a reference to another output.
    coreRuntimeMetadata:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/RuntimeMetadataRuntimeType'
        version:
          type: string
          description: >-
            Version of the runtime. All versions should be backward compatible.
            However, certain cases call for version

            checks to ensure tighter validation or setting expectations.
        flavor:
          type: string
          description: >-
            +optional It can be used to provide extra information about the
            runtime (e.g. python, golang... etc.).
      description: Runtime information. This is loosely defined to allow for extensibility.
    coreRetryStrategy:
      type: object
      properties:
        retries:
          type: integer
          format: int64
          description: >-
            Number of retries. Retries will be consumed when the job fails with
            a recoverable error.

            The number of retries must be less than or equals to 10.
      description: Retry strategy associated with an executable unit.
    coreK8sObjectMetadata:
      type: object
      properties:
        labels:
          type: object
          additionalProperties:
            type: string
          description: Optional labels to add to the pod definition.
        annotations:
          type: object
          additionalProperties:
            type: string
          description: Optional annotations to add to the pod definition.
      description: Metadata for building a kubernetes object when a task is executed.
    coreResources:
      type: object
      properties:
        requests:
          type: array
          items:
            $ref: '#/components/schemas/ResourcesResourceEntry'
          description: >-
            The desired set of resources requested. ResourceNames must be unique
            within the list.
        limits:
          type: array
          items:
            $ref: '#/components/schemas/ResourcesResourceEntry'
          description: >-
            Defines a set of bounds (e.g. min/max) within which the task can
            reliably run. ResourceNames must be unique

            within the list.
      description: >-
        A customizable interface to convey resources requested for a container.
        This can be interpreted differently for different

        container engines.
    flyteidlcoreKeyValuePair:
      type: object
      properties:
        key:
          type: string
          description: required.
        value:
          type: string
          description: +optional.
      description: A generic key value pair.
    coreContainerPort:
      type: object
      properties:
        container_port:
          type: integer
          format: int64
          description: |-
            Number of port to expose on the pod's IP address.
            This must be a valid port number, 0 < x < 65536.
        name:
          type: string
          description: Name of the port to expose on the pod's IP address.
      description: Defines port properties for a container.
    coreDataLoadingConfig:
      type: object
      properties:
        enabled:
          type: boolean
          title: >-
            Flag enables DataLoading Config. If this is not set, data loading
            will not be used!
        input_path:
          type: string
          title: >-
            File system path (start at root). This folder will contain all the
            inputs exploded to a separate file.

            Example, if the input interface needs (x: int, y: blob, z:
            multipart_blob) and the input path is '/var/flyte/inputs', then the
            file system will look like

            /var/flyte/inputs/inputs.<metadata format dependent -> .pb .json
            .yaml> -> Format as defined previously. The Blob and Multipart blob
            will reference local filesystem instead of remote locations

            /var/flyte/inputs/x -> X is a file that contains the value of x
            (integer) in string format

            /var/flyte/inputs/y -> Y is a file in Binary format

            /var/flyte/inputs/z/... -> Note Z itself is a directory

            More information about the protocol - refer to docs #TODO reference
            docs here
        output_path:
          type: string
          title: >-
            File system path (start at root). This folder should contain all the
            outputs for the task as individual files and/or an error text file
        format:
          $ref: '#/components/schemas/DataLoadingConfigLiteralMapFormat'
        io_strategy:
          $ref: '#/components/schemas/coreIOStrategy'
      description: >-
        This configuration allows executing raw containers in Flyte using the
        Flyte CoPilot system.

        Flyte CoPilot, eliminates the needs of flytekit or sdk inside the
        container. Any inputs required by the users container are side-loaded in
        the input_path

        Any outputs generated by the user container - within output_path are
        automatically uploaded.
    ContainerArchitecture:
      type: string
      enum:
        - UNKNOWN
        - AMD64
        - ARM64
        - ARM_V6
        - ARM_V7
      default: UNKNOWN
      description: Architecture-type the container image supports.
    SqlDialect:
      type: string
      enum:
        - UNDEFINED
        - ANSI
        - HIVE
        - OTHER
      default: UNDEFINED
      description: >-
        The dialect of the SQL statement. This is used to validate and parse SQL
        statements at compilation time to avoid

        expensive runtime operations. If set to an unsupported dialect, no
        validation will be done on the statement.

        We support the following dialect: ansi, hive.
    coreIdentity:
      type: object
      properties:
        iam_role:
          type: string
          description: >-
            iam_role references the fully qualified name of Identity & Access
            Management role to impersonate.
        k8s_service_account:
          type: string
          description: >-
            k8s_service_account references a kubernetes service account to
            impersonate.
        oauth2_client:
          $ref: '#/components/schemas/coreOAuth2Client'
        execution_identity:
          type: string
          title: execution_identity references the subject who makes the execution
      description: >-
        Identity encapsulates the various security identities a task can run as.
        It's up to the underlying plugin to pick the

        right identity for the execution environment.
    coreSecret:
      type: object
      properties:
        group:
          type: string
          title: >-
            The name of the secret group where to find the key referenced below.
            For K8s secrets, this should be the name of

            the v1/secret object. For Confidant, this should be the Credential
            name. For Vault, this should be the secret name.

            For AWS Secret Manager, this should be the name of the secret.

            +required
        group_version:
          type: string
          title: >-
            The group version to fetch. This is not supported in all secret
            management systems. It'll be ignored for the ones

            that do not support it.

            +optional
        key:
          type: string
          title: >-
            The name of the secret to mount. This has to match an existing
            secret in the system. It's up to the implementation

            of the secret management system to require case sensitivity. For K8s
            secrets, Confidant and Vault, this should

            match one of the keys inside the secret. For AWS Secret Manager,
            it's ignored.

            +optional
        mount_requirement:
          $ref: '#/components/schemas/SecretMountType'
        env_var:
          type: string
          title: >-
            env_var is optional. Custom environment variable to set the value of
            the secret. If mount_requirement is ENV_VAR,

            then the value is the secret itself. If mount_requirement is FILE,
            then the value is the path to the secret file.

            +optional
      description: >-
        Secret encapsulates information about the secret a task needs to
        proceed. An environment variable

        FLYTE_SECRETS_ENV_PREFIX will be passed to indicate the prefix of the
        environment variables that will be present if

        secrets are passed through environment variables.

        FLYTE_SECRETS_DEFAULT_DIR will be passed to indicate the prefix of the
        path where secrets will be mounted if secrets

        are passed through file mounts.
    coreOAuth2TokenRequest:
      type: object
      properties:
        name:
          type: string
          title: >-
            name indicates a unique id for the token request within this task
            token requests. It'll be used as a suffix for

            environment variables and as a filename for mounting tokens as
            files.

            +required
        type:
          $ref: '#/components/schemas/coreOAuth2TokenRequestType'
        client:
          $ref: '#/components/schemas/coreOAuth2Client'
        idp_discovery_endpoint:
          type: string
          title: >-
            idp_discovery_endpoint references the discovery endpoint used to
            retrieve token endpoint and other related

            information.

            +optional
        token_endpoint:
          type: string
          title: >-
            token_endpoint references the token issuance endpoint. If
            idp_discovery_endpoint is not provided, this parameter is

            mandatory.

            +optional
      description: >-
        OAuth2TokenRequest encapsulates information needed to request an OAuth2
        token.

        FLYTE_TOKENS_ENV_PREFIX will be passed to indicate the prefix of the
        environment variables that will be present if

        tokens are passed through environment variables.

        FLYTE_TOKENS_PATH_PREFIX will be passed to indicate the prefix of the
        path where secrets will be mounted if tokens

        are passed through file mounts.
    coreGPUAccelerator:
      type: object
      properties:
        device:
          type: string
          description: >-
            This can be any arbitrary string, and should be informed by the
            labels or taints

            associated with the nodes in question. Default cloud provider labels
            typically

            use the following values: `nvidia-tesla-t4`, `nvidia-tesla-a100`,
            etc.
        unpartitioned:
          type: boolean
        partition_size:
          type: string
          description: >-
            Like `device`, this can be any arbitrary string, and should be
            informed by

            the labels or taints associated with the nodes in question. Default
            cloud

            provider labels typically use the following values: `1g.5gb`,
            `2g.10gb`, etc.
      description: >-
        Metadata associated with the GPU accelerator to allocate to a task.
        Contains

        information about device type, and for multi-instance GPUs, the
        partition size to

        use.
    coreSharedMemory:
      type: object
      properties:
        mount_path:
          type: string
          title: Mount path to place in container
        mount_name:
          type: string
          title: Name for volume
        size_limit:
          type: string
          title: >-
            Size limit for shared memory. If not set, then the shared memory is
            equal

            to the allocated memory.

            +optional
      description: Metadata associated with configuring a shared memory volume for a task.
    coreLiteral:
      type: object
      properties:
        scalar:
          $ref: '#/components/schemas/coreScalar'
        collection:
          $ref: '#/components/schemas/coreLiteralCollection'
        map:
          $ref: '#/components/schemas/coreLiteralMap'
        offloaded_metadata:
          $ref: '#/components/schemas/coreLiteralOffloadedMetadata'
        hash:
          type: string
          title: >-
            A hash representing this literal.

            This is used for caching purposes. For more details refer to RFC
            1893

            (https://github.com/flyteorg/flyte/blob/master/rfc/system/1893-caching-of-offloaded-objects.md)
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Additional metadata for literals.
      description: >-
        A simple value. This supports any level of nesting (e.g. array of array
        of array of Blobs) as well as simple primitives.
    QualityOfServiceTier:
      type: string
      enum:
        - UNDEFINED
        - HIGH
        - MEDIUM
        - LOW
      default: UNDEFINED
      description: ' - UNDEFINED: Default: no quality of service specified.'
    coreQualityOfServiceSpec:
      type: object
      properties:
        queueing_budget:
          type: string
          description: Indicates how much queueing delay an execution can tolerate.
      description: Represents customized execution run-time attributes.
    coreVariable:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/coreLiteralType'
        description:
          type: string
          title: +optional string describing input variable
        artifact_partial_id:
          $ref: '#/components/schemas/coreArtifactID'
        artifact_tag:
          $ref: '#/components/schemas/coreArtifactTag'
      description: Defines a strongly typed variable.
    coreTaskNodeOverrides:
      type: object
      properties:
        resources:
          $ref: '#/components/schemas/coreResources'
        extended_resources:
          $ref: '#/components/schemas/coreExtendedResources'
        container_image:
          type: string
          description: Override for the image used by task pods.
        pod_template:
          $ref: '#/components/schemas/coreK8sPod'
      description: >-
        Optional task node overrides that will be applied at task execution
        time.
    coreIfElseBlock:
      type: object
      properties:
        case:
          $ref: '#/components/schemas/coreIfBlock'
        other:
          type: array
          items:
            $ref: '#/components/schemas/coreIfBlock'
          description: +optional. Additional branches to evaluate.
        else_node:
          $ref: '#/components/schemas/coreNode'
        error:
          $ref: '#/components/schemas/coreError'
      description: >-
        Defines a series of if/else blocks. The first branch whose condition
        evaluates to true is the one to execute.

        If no conditions were satisfied, the else_node or the error will
        execute.
    coreApproveCondition:
      type: object
      properties:
        signal_id:
          type: string
          description: A unique identifier for the requested boolean signal.
      description: >-
        ApproveCondition represents a dependency on an external approval. During
        execution, this will manifest as a boolean

        signal with the provided signal_id.
    coreSignalCondition:
      type: object
      properties:
        signal_id:
          type: string
          description: A unique identifier for the requested signal.
        type:
          $ref: '#/components/schemas/coreLiteralType'
        output_variable_name:
          type: string
          description: The variable name for the signal value in this nodes outputs.
      description: SignalCondition represents a dependency on an signal.
    coreSleepCondition:
      type: object
      properties:
        duration:
          type: string
          description: The overall duration for this sleep.
      description: >-
        SleepCondition represents a dependency on waiting for the specified
        duration.
    coreArrayNodeExecutionMode:
      type: string
      enum:
        - MINIMAL_STATE
        - FULL_STATE
      default: MINIMAL_STATE
      description: |2-
         - MINIMAL_STATE: Indicates the ArrayNode will store minimal state for the sub-nodes.
        This is more efficient, but only supports a subset of Flyte entities.
         - FULL_STATE: Indicates the ArrayNode will store full state for the sub-nodes.
        This supports a wider range of Flyte entities.
    ArrayNodeDataMode:
      type: string
      enum:
        - SINGLE_INPUT_FILE
        - INDIVIDUAL_INPUT_FILES
      default: SINGLE_INPUT_FILE
      description: >2-
         - SINGLE_INPUT_FILE: Indicates the ArrayNode's input is a list of input values that map to subNode executions.
        The file path set for the subNode will be the ArrayNode's input file,
        but the in-memory

        value utilized in propeller will be the individual value for each
        subNode execution.

        SubNode executions need to be able to read in and parse the individual
        value to execute correctly.
         - INDIVIDUAL_INPUT_FILES: Indicates the ArrayNode's input is a list of input values that map to subNode executions.
        Propeller will create input files for each ArrayNode subNode by parsing
        the inputs and

        setting the InputBindings on each subNodeSpec. Both the file path and
        in-memory input values will

        be the individual value for each subNode execution.
    coreScalar:
      type: object
      properties:
        primitive:
          $ref: '#/components/schemas/corePrimitive'
        blob:
          $ref: '#/components/schemas/coreBlob'
        binary:
          $ref: '#/components/schemas/coreBinary'
        schema:
          $ref: '#/components/schemas/flyteidlcoreSchema'
        none_type:
          $ref: '#/components/schemas/coreVoid'
        error:
          $ref: '#/components/schemas/coreError'
        generic:
          type: object
        structured_dataset:
          $ref: '#/components/schemas/coreStructuredDataset'
        union:
          $ref: '#/components/schemas/coreUnion'
    coreBindingDataCollection:
      type: object
      properties:
        bindings:
          type: array
          items:
            $ref: '#/components/schemas/coreBindingData'
      description: A collection of BindingData items.
    coreOutputReference:
      type: object
      properties:
        node_id:
          type: string
          description: Node id must exist at the graph layer.
        var:
          type: string
          description: Variable name must refer to an output variable for the node.
        attr_path:
          type: array
          items:
            $ref: '#/components/schemas/corePromiseAttribute'
      description: >-
        A reference to an output produced by a node. The type can be retrieved
        -and validated- from

        the underlying interface of the node.
    coreBindingDataMap:
      type: object
      properties:
        bindings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/coreBindingData'
      description: A map of BindingData items.
    coreLiteralOffloadedMetadata:
      type: object
      properties:
        uri:
          type: string
          description: The location of the offloaded core.Literal.
        size_bytes:
          type: string
          format: uint64
          description: The size of the offloaded data.
        inferred_type:
          $ref: '#/components/schemas/coreLiteralType'
      description: A message that contains the metadata of the offloaded data.
    coreUnionInfo:
      type: object
      properties:
        targetType:
          $ref: '#/components/schemas/coreLiteralType'
    RuntimeMetadataRuntimeType:
      type: string
      enum:
        - OTHER
        - FLYTE_SDK
      default: OTHER
    ResourcesResourceEntry:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/ResourcesResourceName'
        value:
          type: string
          title: >-
            Value must be a valid k8s quantity. See

            https://github.com/kubernetes/apimachinery/blob/master/pkg/api/resource/quantity.go#L30-L80
      description: Encapsulates a resource name and value.
    DataLoadingConfigLiteralMapFormat:
      type: string
      enum:
        - JSON
        - YAML
        - PROTO
      default: JSON
      description: >-
        - JSON: JSON / YAML for the metadata (which contains inlined primitive
        values). The representation is inline with the standard json
        specification as specified - https://www.json.org/json-en.html
         - PROTO: Proto is a serialized binary of `core.LiteralMap` defined in flyteidl/core
      title: >-
        LiteralMapFormat decides the encoding format in which the input metadata
        should be made available to the containers.

        If the user has access to the protocol buffer definitions, it is
        recommended to use the PROTO format.

        JSON and YAML do not need any protobuf definitions to read it

        All remote references in core.LiteralMap are replaced with local
        filesystem references (the data is downloaded to local filesystem)
    coreIOStrategy:
      type: object
      properties:
        download_mode:
          $ref: '#/components/schemas/IOStrategyDownloadMode'
        upload_mode:
          $ref: '#/components/schemas/IOStrategyUploadMode'
      title: >-
        Strategy to use when dealing with Blob, Schema, or multipart blob data
        (large datasets)
    coreOAuth2Client:
      type: object
      properties:
        client_id:
          type: string
          title: >-
            client_id is the public id for the client to use. The system will
            not perform any pre-auth validation that the

            secret requested matches the client_id indicated here.

            +required
        client_secret:
          $ref: '#/components/schemas/coreSecret'
      description: >-
        OAuth2Client encapsulates OAuth2 Client Credentials to be used when
        making calls on behalf of that task.
    SecretMountType:
      type: string
      enum:
        - ANY
        - ENV_VAR
        - FILE
      default: ANY
      description: |2-
         - ANY: Default case, indicates the client can tolerate either mounting options.
         - ENV_VAR: ENV_VAR indicates the secret needs to be mounted as an environment variable.
         - FILE: FILE indicates the secret needs to be mounted as a file.
    coreOAuth2TokenRequestType:
      type: string
      enum:
        - CLIENT_CREDENTIALS
      default: CLIENT_CREDENTIALS
      description: |-
        Type of the token requested.

         - CLIENT_CREDENTIALS: CLIENT_CREDENTIALS indicates a 2-legged OAuth token requested using client credentials.
    coreLiteralCollection:
      type: object
      properties:
        literals:
          type: array
          items:
            $ref: '#/components/schemas/coreLiteral'
      description: >-
        A collection of literals. This is a workaround since oneofs in proto
        messages cannot contain a repeated field.
    coreLiteralType:
      type: object
      properties:
        simple:
          $ref: '#/components/schemas/coreSimpleType'
        schema:
          $ref: '#/components/schemas/coreSchemaType'
        collection_type:
          $ref: '#/components/schemas/coreLiteralType'
        map_value_type:
          $ref: '#/components/schemas/coreLiteralType'
        blob:
          $ref: '#/components/schemas/coreBlobType'
        enum_type:
          $ref: '#/components/schemas/flyteidlcoreEnumType'
        structured_dataset_type:
          $ref: '#/components/schemas/coreStructuredDatasetType'
        union_type:
          $ref: '#/components/schemas/coreUnionType'
        metadata:
          type: object
          description: >-
            This field contains type metadata that is descriptive of the type,
            but is NOT considered in type-checking.  This might be used by

            consumers to identify special behavior or display extended
            information for the type.
        annotation:
          $ref: '#/components/schemas/coreTypeAnnotation'
        structure:
          $ref: '#/components/schemas/coreTypeStructure'
      description: Defines a strong type to allow type checking between interfaces.
    coreArtifactID:
      type: object
      properties:
        artifact_key:
          $ref: '#/components/schemas/coreArtifactKey'
        version:
          type: string
        partitions:
          $ref: '#/components/schemas/corePartitions'
        time_partition:
          $ref: '#/components/schemas/coreTimePartition'
    coreArtifactTag:
      type: object
      properties:
        artifact_key:
          $ref: '#/components/schemas/coreArtifactKey'
        value:
          $ref: '#/components/schemas/coreLabelValue'
    coreIfBlock:
      type: object
      properties:
        condition:
          $ref: '#/components/schemas/coreBooleanExpression'
        then_node:
          $ref: '#/components/schemas/coreNode'
      description: >-
        Defines a condition and the execution unit that should be executed if
        the condition is satisfied.
    coreError:
      type: object
      properties:
        failed_node_id:
          type: string
          description: The node id that threw the error.
        message:
          type: string
          description: Error message thrown.
      description: Represents an error thrown from a node.
    corePrimitive:
      type: object
      properties:
        integer:
          type: string
          format: int64
        float_value:
          type: number
          format: double
        string_value:
          type: string
        boolean:
          type: boolean
        datetime:
          type: string
          format: date-time
        duration:
          type: string
      title: Primitive Types
    coreBlob:
      type: object
      properties:
        metadata:
          $ref: '#/components/schemas/coreBlobMetadata'
        uri:
          type: string
      description: >-
        Refers to an offloaded set of files. It encapsulates the type of the
        store and a unique uri for where the data is.

        There are no restrictions on how the uri is formatted since it will
        depend on how to interact with the store.
    coreBinary:
      type: object
      properties:
        value:
          type: string
          format: byte
          description: >-
            Serialized data (MessagePack) for supported types like Dataclass,
            Pydantic BaseModel, and untyped dict.
        tag:
          type: string
          description: >-
            The serialization format identifier (e.g., MessagePack). Consumers
            must define unique tags and validate them before deserialization.
      description: >-
        A simple byte array with a tag to help different parts of the system
        communicate about what is in the byte array.

        It's strongly advisable that consumers of this type define a unique tag
        and validate the tag before parsing the data.
    flyteidlcoreSchema:
      type: object
      properties:
        uri:
          type: string
        type:
          $ref: '#/components/schemas/coreSchemaType'
      description: >-
        A strongly typed schema that defines the interface of data retrieved
        from the underlying storage medium.
    coreVoid:
      type: object
      description: >-
        Used to denote a nil/null/None assignment to a scalar value. The
        underlying LiteralType for Void is intentionally

        undefined since it can be assigned to a scalar of any LiteralType.
    coreStructuredDataset:
      type: object
      properties:
        uri:
          type: string
          title: >-
            String location uniquely identifying where the data is.

            Should start with the storage location (e.g. s3://, gs://, bq://,
            etc.)
        metadata:
          $ref: '#/components/schemas/coreStructuredDatasetMetadata'
    coreUnion:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/coreLiteral'
        type:
          $ref: '#/components/schemas/coreLiteralType'
      description: >-
        The runtime representation of a tagged union value. See `UnionType` for
        more details.
    corePromiseAttribute:
      type: object
      properties:
        string_value:
          type: string
        int_value:
          type: integer
          format: int32
    ResourcesResourceName:
      type: string
      enum:
        - UNKNOWN
        - CPU
        - GPU
        - MEMORY
        - STORAGE
        - EPHEMERAL_STORAGE
      default: UNKNOWN
      description: |-
        Known resource names.

         - EPHEMERAL_STORAGE: For Kubernetes-based deployments, pods use ephemeral local storage for scratch space, caching, and for logs.
    IOStrategyDownloadMode:
      type: string
      enum:
        - DOWNLOAD_EAGER
        - DOWNLOAD_STREAM
        - DO_NOT_DOWNLOAD
      default: DOWNLOAD_EAGER
      description: >-
        - DOWNLOAD_EAGER: All data will be downloaded before the main container
        is executed
         - DOWNLOAD_STREAM: Data will be downloaded as a stream and an End-Of-Stream marker will be written to indicate all data has been downloaded. Refer to protocol for details
         - DO_NOT_DOWNLOAD: Large objects (offloaded) will not be downloaded
      title: Mode to use for downloading
    IOStrategyUploadMode:
      type: string
      enum:
        - UPLOAD_ON_EXIT
        - UPLOAD_EAGER
        - DO_NOT_UPLOAD
      default: UPLOAD_ON_EXIT
      description: >-
        - UPLOAD_ON_EXIT: All data will be uploaded after the main container
        exits
         - UPLOAD_EAGER: Data will be uploaded as it appears. Refer to protocol specification for details
         - DO_NOT_UPLOAD: Data will not be uploaded, only references will be written
      title: Mode to use for uploading
    coreSimpleType:
      type: string
      enum:
        - NONE
        - INTEGER
        - FLOAT
        - STRING
        - BOOLEAN
        - DATETIME
        - DURATION
        - BINARY
        - ERROR
        - STRUCT
      default: NONE
      description: Define a set of simple types.
    coreSchemaType:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/SchemaTypeSchemaColumn'
          description: A list of ordered columns this schema comprises of.
      description: >-
        Defines schema columns and types to strongly type-validate schemas
        interoperability.
    coreBlobType:
      type: object
      properties:
        format:
          type: string
          title: |-
            Format can be a free form string understood by SDK/UI etc like
            csv, parquet etc
        dimensionality:
          $ref: '#/components/schemas/BlobTypeBlobDimensionality'
      title: Defines type behavior for blob objects
    flyteidlcoreEnumType:
      type: object
      properties:
        values:
          type: array
          items:
            type: string
          description: Predefined set of enum values.
      description: >-
        Enables declaring enum types, with predefined string values

        For len(values) > 0, the first value in the ordered list is regarded as
        the default value. If you wish

        To provide no defaults, make the first value as undefined.
    coreStructuredDatasetType:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/StructuredDatasetTypeDatasetColumn'
          description: A list of ordered columns this schema comprises of.
        format:
          type: string
          description: >-
            This is the storage format, the format of the bits at rest

            parquet, feather, csv, etc.

            For two types to be compatible, the format will need to be an exact
            match.
        external_schema_type:
          type: string
          description: >-
            This is a string representing the type that the bytes in
            external_schema_bytes are formatted in.

            This is an optional field that will not be used for type checking.
        external_schema_bytes:
          type: string
          format: byte
          description: |-
            The serialized bytes of a third-party schema library like Arrow.
            This is an optional field that will not be used for type checking.
    coreUnionType:
      type: object
      properties:
        variants:
          type: array
          items:
            $ref: '#/components/schemas/coreLiteralType'
          description: Predefined set of variants in union.
      description: >-
        Defines a tagged union type, also known as a variant (and formally as
        the sum type).


        A sum type S is defined by a sequence of types (A, B, C, ...), each
        tagged by a string tag

        A value of type S is constructed from a value of any of the variant
        types. The specific choice of type is recorded by

        storing the varaint's tag with the literal value and can be examined in
        runtime.


        Type S is typically written as

        S := Apple A | Banana B | Cantaloupe C | ...


        Notably, a nullable (optional) type is a sum type between some type X
        and the singleton type representing a null-value:

        Optional X := X | Null


        See also: https://en.wikipedia.org/wiki/Tagged_union
    coreTypeAnnotation:
      type: object
      properties:
        annotations:
          type: object
          description: A arbitrary JSON payload to describe a type.
      description: >-
        TypeAnnotation encapsulates registration time information about a type.
        This can be used for various control-plane operations. TypeAnnotation
        will not be available at runtime when a task runs.
    coreTypeStructure:
      type: object
      properties:
        tag:
          type: string
          title: Must exactly match for types to be castable
        dataclass_type:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/coreLiteralType'
          title: >-
            dataclass_type only exists for dataclasses.

            This is used to resolve the type of the fields of dataclass

            The key is the field name, and the value is the literal type of the
            field

            e.g. For dataclass Foo, with fields a, and a is a string

            Foo.a will be resolved as a literal type of string from
            dataclass_type
      description: |-
        Hints to improve type matching
        e.g. allows distinguishing output from custom type transformers
        even if the underlying IDL serialization matches.
    coreArtifactKey:
      type: object
      properties:
        project:
          type: string
          description: >-
            Project and domain and suffix needs to be unique across a given
            artifact store.
        domain:
          type: string
        name:
          type: string
        org:
          type: string
    corePartitions:
      type: object
      properties:
        value:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/coreLabelValue'
    coreTimePartition:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/coreLabelValue'
        granularity:
          $ref: '#/components/schemas/coreGranularity'
    coreLabelValue:
      type: object
      properties:
        static_value:
          type: string
          title: The string static value is for use in the Partitions object
        time_value:
          type: string
          format: date-time
          title: The time value is for use in the TimePartition case
        triggered_binding:
          $ref: '#/components/schemas/coreArtifactBindingData'
        input_binding:
          $ref: '#/components/schemas/coreInputBindingData'
        runtime_binding:
          $ref: '#/components/schemas/coreRuntimeBinding'
    coreBooleanExpression:
      type: object
      properties:
        conjunction:
          $ref: '#/components/schemas/coreConjunctionExpression'
        comparison:
          $ref: '#/components/schemas/coreComparisonExpression'
      description: >-
        Defines a boolean expression tree. It can be a simple or a conjunction
        expression.

        Multiple expressions can be combined using a conjunction or a
        disjunction to result in a final boolean result.
    coreBlobMetadata:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/coreBlobType'
    coreStructuredDatasetMetadata:
      type: object
      properties:
        structured_dataset_type:
          $ref: '#/components/schemas/coreStructuredDatasetType'
    SchemaTypeSchemaColumn:
      type: object
      properties:
        name:
          type: string
          title: A unique name -within the schema type- for the column
        type:
          $ref: '#/components/schemas/SchemaColumnSchemaColumnType'
    BlobTypeBlobDimensionality:
      type: string
      enum:
        - SINGLE
        - MULTIPART
      default: SINGLE
    StructuredDatasetTypeDatasetColumn:
      type: object
      properties:
        name:
          type: string
          description: A unique name within the schema type for the column.
        literal_type:
          $ref: '#/components/schemas/coreLiteralType'
    coreGranularity:
      type: string
      enum:
        - UNSET
        - MINUTE
        - HOUR
        - DAY
        - MONTH
      default: UNSET
      title: '- DAY: default'
    coreArtifactBindingData:
      type: object
      properties:
        partition_key:
          type: string
        bind_to_time_partition:
          type: boolean
        time_transform:
          $ref: '#/components/schemas/coreTimeTransform'
      title: Only valid for triggers
    coreInputBindingData:
      type: object
      properties:
        var:
          type: string
    coreRuntimeBinding:
      type: object
    coreConjunctionExpression:
      type: object
      properties:
        operator:
          $ref: '#/components/schemas/ConjunctionExpressionLogicalOperator'
        left_expression:
          $ref: '#/components/schemas/coreBooleanExpression'
        right_expression:
          $ref: '#/components/schemas/coreBooleanExpression'
      description: Defines a conjunction expression of two boolean expressions.
    coreComparisonExpression:
      type: object
      properties:
        operator:
          $ref: '#/components/schemas/coreComparisonExpressionOperator'
        left_value:
          $ref: '#/components/schemas/coreOperand'
        right_value:
          $ref: '#/components/schemas/coreOperand'
      description: >-
        Defines a 2-level tree where the root is a comparison operator and
        Operands are primitives or known variables.

        Each expression results in a boolean result.
    SchemaColumnSchemaColumnType:
      type: string
      enum:
        - INTEGER
        - FLOAT
        - STRING
        - BOOLEAN
        - DATETIME
        - DURATION
      default: INTEGER
    coreTimeTransform:
      type: object
      properties:
        transform:
          type: string
        op:
          $ref: '#/components/schemas/flyteidlcoreOperator'
    ConjunctionExpressionLogicalOperator:
      type: string
      enum:
        - AND
        - OR
      default: AND
      description: '- AND: Conjunction'
      title: |-
        Nested conditions. They can be conjoined using AND / OR
        Order of evaluation is not important as the operators are Commutative
    coreComparisonExpressionOperator:
      type: string
      enum:
        - EQ
        - NEQ
        - GT
        - GTE
        - LT
        - LTE
      default: EQ
      description: |-
        - GT: Greater Than
         - LT: Less Than
      title: Binary Operator for each expression
    coreOperand:
      type: object
      properties:
        primitive:
          $ref: '#/components/schemas/corePrimitive'
        var:
          type: string
          title: Or one of this node's input variables
        scalar:
          $ref: '#/components/schemas/coreScalar'
      description: Defines an operand to a comparison expression.
    flyteidlcoreOperator:
      type: string
      enum:
        - MINUS
        - PLUS
      default: MINUS

````