From d82b62a7186245f96a6973dcb15d91c03fa059bd Mon Sep 17 00:00:00 2001 From: ddl-rliu <140021987+ddl-rliu@users.noreply.github.com> Date: Mon, 6 Apr 2026 15:34:12 -0700 Subject: [PATCH] Revert "Add file_extension, enable_legacy_filename fields to BlobType" --- flytecopilot/cmd/download.go | 10 +- flytecopilot/cmd/download_test.go | 78 ------ flytecopilot/data/download.go | 65 +---- flytecopilot/data/download_test.go | 4 +- flytecopilot/data/upload.go | 4 +- flyteidl/.gitignore | 3 - flyteidl/clients/go/assets/admin.swagger.json | 8 - flyteidl/clients/go/coreutils/literals.go | 10 +- .../clients/go/coreutils/literals_test.go | 12 +- flyteidl/gen/pb-es/flyteidl/core/types_pb.ts | 24 -- flyteidl/gen/pb-go/flyteidl/core/types.pb.go | 256 ++++++++---------- .../cacheservice/cacheservice.swagger.json | 8 - .../datacatalog/datacatalog.swagger.json | 8 - .../flyteidl/service/admin.swagger.json | 8 - .../flyteidl/service/agent.swagger.json | 8 - .../flyteidl/service/dataproxy.swagger.json | 8 - .../external_plugin_service.swagger.json | 8 - .../flyteidl/service/signal.swagger.json | 8 - flyteidl/gen/pb-js/flyteidl.d.ts | 12 - flyteidl/gen/pb-js/flyteidl.js | 34 --- .../gen/pb_python/flyteidl/core/types_pb2.py | 48 ++-- .../gen/pb_python/flyteidl/core/types_pb2.pyi | 8 +- flyteidl/gen/pb_rust/flyteidl.core.rs | 14 - flyteidl/protos/flyteidl/core/types.proto | 14 - 24 files changed, 161 insertions(+), 499 deletions(-) diff --git a/flytecopilot/cmd/download.go b/flytecopilot/cmd/download.go index 42b1f8d9cde..3827308c335 100644 --- a/flytecopilot/cmd/download.go +++ b/flytecopilot/cmd/download.go @@ -5,7 +5,6 @@ import ( "fmt" "time" - "github.com/golang/protobuf/proto" "github.com/spf13/cobra" "github.com/flyteorg/flyte/flytecopilot/data" @@ -50,11 +49,6 @@ func GetUploadModeVals() []string { } func (d *DownloadOptions) Download(ctx context.Context) error { - inputInterface := &core.VariableMap{} - if err := proto.Unmarshal(d.inputInterface, inputInterface); err != nil { - logger.Warnf(ctx, "Bad input interface passed, failed to unmarshal err: %s", err) - } - if d.remoteOutputsPrefix == "" { return fmt.Errorf("to-output-prefix is required") } @@ -83,7 +77,7 @@ func (d *DownloadOptions) Download(ctx context.Context) error { childCtx, cancelFn = context.WithTimeout(ctx, d.timeout) } defer cancelFn() - err := dl.DownloadInputs(childCtx, inputInterface, storage.DataReference(d.remoteInputsPath), d.localDirectoryPath) + err := dl.DownloadInputs(childCtx, storage.DataReference(d.remoteInputsPath), d.localDirectoryPath) if err != nil { logger.Errorf(ctx, "Downloading failed, err %s", err) return err @@ -122,6 +116,6 @@ func NewDownloadCommand(opts *RootOptions) *cobra.Command { downloadCmd.Flags().StringVarP(&downloadOpts.metadataFormat, "format", "m", core.DataLoadingConfig_JSON.String(), fmt.Sprintf("What should be the output format for the primitive and structured types. Options [%v]", GetFormatVals())) downloadCmd.Flags().StringVarP(&downloadOpts.downloadMode, "download-mode", "d", core.IOStrategy_DOWNLOAD_EAGER.String(), fmt.Sprintf("Download mode to use. Options [%v]", GetDownloadModeVals())) downloadCmd.Flags().DurationVarP(&downloadOpts.timeout, "timeout", "t", time.Hour*1, "Max time to allow for downloads to complete, default is 1H") - downloadCmd.Flags().BytesBase64VarP(&downloadOpts.inputInterface, "input-interface", "i", nil, "Input interface proto message - core.VariableMap, base64 encoded string") + downloadCmd.Flags().BytesBase64VarP(&downloadOpts.inputInterface, "input-interface", "i", nil, "Input interface proto message - core.VariableMap, base64 encoced string") return downloadCmd } diff --git a/flytecopilot/cmd/download_test.go b/flytecopilot/cmd/download_test.go index f9e2c436c2f..b96ffd46a60 100644 --- a/flytecopilot/cmd/download_test.go +++ b/flytecopilot/cmd/download_test.go @@ -10,7 +10,6 @@ import ( "strings" "testing" - "github.com/golang/protobuf/proto" "github.com/stretchr/testify/assert" "github.com/flyteorg/flyte/flyteidl/clients/go/coreutils" @@ -138,83 +137,6 @@ func TestDownloadOptions_Download(t *testing.T) { assert.ElementsMatch(t, []string{"inputs.json", "inputs.pb", "x", "y", "blob"}, collectFile(tmpDir)) }) - t.Run("primitiveAndBlobInputsWithFileExtension", func(t *testing.T) { - tmpDir, err := ioutil.TempDir(tmpFolderLocation, tmpPrefix) - assert.NoError(t, err) - defer func() { - assert.NoError(t, os.RemoveAll(tmpDir)) - }() - dopts.localDirectoryPath = tmpDir - - s := promutils.NewTestScope() - store, err := storage.NewDataStore(&storage.Config{Type: storage.TypeMemory}, s.NewSubScope("storage")) - assert.NoError(t, err) - dopts.RootOptions = &RootOptions{ - Scope: s, - Store: store, - } - - iface := &core.VariableMap{ - Variables: map[string]*core.Variable{ - "blob": { - Type: &core.LiteralType{Type: &core.LiteralType_Blob{Blob: &core.BlobType{Dimensionality: core.BlobType_SINGLE, Format: "xyz", FileExtension: "xyz", EnableLegacyFilename: false}}}, - }, - "legacy_blob": { - Type: &core.LiteralType{Type: &core.LiteralType_Blob{Blob: &core.BlobType{Dimensionality: core.BlobType_SINGLE, Format: "xyz", FileExtension: "xyz", EnableLegacyFilename: true}}}, - }, - }, - } - d, err := proto.Marshal(iface) - assert.NoError(t, err) - dopts.inputInterface = d - - blobLoc := storage.DataReference("blob-loc") - br := bytes.NewBuffer([]byte("Hello World!")) - assert.NoError(t, store.WriteRaw(ctx, blobLoc, int64(br.Len()), storage.Options{}, br)) - assert.NoError(t, store.WriteProtobuf(ctx, storage.DataReference(inputPath), storage.Options{}, &core.LiteralMap{ - Literals: map[string]*core.Literal{ - "x": coreutils.MustMakePrimitiveLiteral(1), - "y": coreutils.MustMakePrimitiveLiteral("hello"), - "blob": {Value: &core.Literal_Scalar{ - Scalar: &core.Scalar{ - Value: &core.Scalar_Blob{ - Blob: &core.Blob{ - Uri: blobLoc.String(), - Metadata: &core.BlobMetadata{ - Type: &core.BlobType{ - Dimensionality: core.BlobType_SINGLE, - Format: "xyz", - FileExtension: "xyz", - EnableLegacyFilename: false, - }, - }, - }, - }, - }, - }}, - "legacy_blob": {Value: &core.Literal_Scalar{ - Scalar: &core.Scalar{ - Value: &core.Scalar_Blob{ - Blob: &core.Blob{ - Uri: blobLoc.String(), - Metadata: &core.BlobMetadata{ - Type: &core.BlobType{ - Dimensionality: core.BlobType_SINGLE, - Format: "xyz", - FileExtension: "xyz", - EnableLegacyFilename: true, - }, - }, - }, - }, - }, - }}, - }, - })) - assert.NoError(t, dopts.Download(ctx), "Download Operation failed") - assert.ElementsMatch(t, []string{"inputs.json", "inputs.pb", "x", "y", "blob.xyz", "legacy_blob", "legacy_blob.xyz"}, collectFile(tmpDir)) - }) - t.Run("primitiveAndMissingBlobInputs", func(t *testing.T) { tmpDir, err := ioutil.TempDir(tmpFolderLocation, tmpPrefix) assert.NoError(t, err) diff --git a/flytecopilot/data/download.go b/flytecopilot/data/download.go index effb63686ff..084469faed2 100644 --- a/flytecopilot/data/download.go +++ b/flytecopilot/data/download.go @@ -33,39 +33,6 @@ type Downloader struct { mode core.IOStrategy_DownloadMode } -// By default, blobs (FlyteFiles) were not and still are not written with a file extension. -// For example, a data: FlyteFile["csv"] blob should be written to "data", even though -// Format="csv". -// -// When FileExtension="" (the default), this old behavior is preserved. -// -// However, a data: Annotated[FlyteFile["csv"], FileDownloadConfig(file_extension="csv")] -// blob should be written to "data.csv" - both Format="csv" and FileExtension="csv" (new behavior). -// -// So when e.g. FileExtension="csv", the file is written to "data.csv". -// Also, when e.g. FileExtension="csv" and EnableLegacyFilename=true, the file is written to -// "data" and "data.csv" (partially new behavior, bridges the gap of backward compatibility). -func resolveVarFilenames(vars *core.VariableMap) map[string][]string { - varFilenames := make(map[string][]string, len(vars.GetVariables())) - for varName, variable := range vars.GetVariables() { - varType := variable.GetType() - switch varType.GetType().(type) { - case *core.LiteralType_Blob: - if varType.GetBlob().GetFileExtension() == "" { - varFilenames[varName] = append(varFilenames[varName], varName) - } else { - varFilenames[varName] = append(varFilenames[varName], varName+"."+varType.GetBlob().GetFileExtension()) - if varType.GetBlob().GetEnableLegacyFilename() { - varFilenames[varName] = append(varFilenames[varName], varName) - } - } - default: - varFilenames[varName] = append(varFilenames[varName], varName) - } - } - return varFilenames -} - // TODO add timeout and rate limit // TODO use chunk to download func (d Downloader) handleBlob(ctx context.Context, blob *core.Blob, toPath string) (interface{}, error) { @@ -465,7 +432,7 @@ func (d Downloader) handleLiteral(ctx context.Context, lit *core.Literal, filePa if err != nil { return nil, nil, errors.Wrapf(err, "failed to create directory [%s]", filePath) } - v, m, err := d.RecursiveDownload(ctx, lit.GetMap(), filePath, make(map[string][]string), writeToFile) + v, m, err := d.RecursiveDownload(ctx, lit.GetMap(), filePath, writeToFile) if err != nil { return nil, nil, err } @@ -501,7 +468,7 @@ type downloadedResult struct { v interface{} } -func (d Downloader) RecursiveDownload(ctx context.Context, inputs *core.LiteralMap, dir string, varFilenames map[string][]string, writePrimitiveToFile bool) (VarMap, *core.LiteralMap, error) { +func (d Downloader) RecursiveDownload(ctx context.Context, inputs *core.LiteralMap, dir string, writePrimitiveToFile bool) (VarMap, *core.LiteralMap, error) { childCtx, cancel := context.WithCancel(ctx) defer cancel() if inputs == nil || len(inputs.GetLiterals()) == 0 { @@ -519,26 +486,14 @@ func (d Downloader) RecursiveDownload(ctx context.Context, inputs *core.LiteralM } logger.Infof(ctx, "read object at location [%s]", offloadedMetadataURI) } + varPath := path.Join(dir, variable) lit := literal f[variable] = futures.NewAsyncFuture(childCtx, func(ctx2 context.Context) (interface{}, error) { - var filenames []string - var resultLit *core.Literal - var resultV interface{} - var err error - if len(varFilenames[variable]) == 0 { - filenames = []string{variable} - } else { - filenames = varFilenames[variable] - } - for _, filename := range filenames { - varPath := path.Join(dir, filename) - // TODO: Refactor handleLiteral to accept a list of file paths and return a list of downloaded results - resultV, resultLit, err = d.handleLiteral(ctx2, lit, varPath, writePrimitiveToFile) - if err != nil { - return nil, err - } + v, lit, err := d.handleLiteral(ctx2, lit, varPath, writePrimitiveToFile) + if err != nil { + return nil, err } - return downloadedResult{lit: resultLit, v: resultV}, nil + return downloadedResult{lit: lit, v: v}, nil }) } @@ -565,7 +520,7 @@ func (d Downloader) RecursiveDownload(ctx context.Context, inputs *core.LiteralM return vmap, m, nil } -func (d Downloader) DownloadInputs(ctx context.Context, vars *core.VariableMap, inputRef storage.DataReference, outputDir string) error { +func (d Downloader) DownloadInputs(ctx context.Context, inputRef storage.DataReference, outputDir string) error { logger.Infof(ctx, "Downloading inputs from [%s]", inputRef) defer logger.Infof(ctx, "Exited downloading inputs from [%s]", inputRef) if err := os.MkdirAll(outputDir, os.ModePerm); err != nil { @@ -578,9 +533,7 @@ func (d Downloader) DownloadInputs(ctx context.Context, vars *core.VariableMap, logger.Errorf(ctx, "Failed to download inputs from [%s], err [%s]", inputRef, err) return errors.Wrapf(err, "failed to download input metadata message from remote store") } - - varFilenames := resolveVarFilenames(vars) - varMap, lMap, err := d.RecursiveDownload(ctx, inputs, outputDir, varFilenames, true) + varMap, lMap, err := d.RecursiveDownload(ctx, inputs, outputDir, true) if err != nil { return errors.Wrapf(err, "failed to download input variable from remote store") } diff --git a/flytecopilot/data/download_test.go b/flytecopilot/data/download_test.go index df38fdb0c82..1da5602e2c9 100644 --- a/flytecopilot/data/download_test.go +++ b/flytecopilot/data/download_test.go @@ -231,7 +231,7 @@ func TestRecursiveDownload(t *testing.T) { } }() - varMap, lMap, err := d.RecursiveDownload(context.Background(), inputs, toPath, map[string][]string{}, true) + varMap, lMap, err := d.RecursiveDownload(context.Background(), inputs, toPath, true) assert.NoError(t, err) assert.NotNil(t, varMap) assert.NotNil(t, lMap) @@ -309,7 +309,7 @@ func TestRecursiveDownload(t *testing.T) { } }() - varMap, lMap, err := d.RecursiveDownload(context.Background(), inputs, toPath, map[string][]string{}, true) + varMap, lMap, err := d.RecursiveDownload(context.Background(), inputs, toPath, true) assert.NoError(t, err) assert.NotNil(t, varMap) assert.NotNil(t, lMap) diff --git a/flytecopilot/data/upload.go b/flytecopilot/data/upload.go index 6c8e3600683..2103028d287 100644 --- a/flytecopilot/data/upload.go +++ b/flytecopilot/data/upload.go @@ -107,11 +107,11 @@ func (u Uploader) handleBlobType(ctx context.Context, localPath string, toPath s } } - return coreutils.MakeLiteralForBlob(toPath, false, "", "", false), nil + return coreutils.MakeLiteralForBlob(toPath, false, ""), nil } size := info.Size() // Should we make this a go routine as well, so that we can introduce timeouts - return coreutils.MakeLiteralForBlob(toPath, false, "", "", false), UploadFileToStorage(ctx, fpath, toPath, size, u.store) + return coreutils.MakeLiteralForBlob(toPath, false, ""), UploadFileToStorage(ctx, fpath, toPath, size, u.store) } func (u Uploader) RecursiveUpload(ctx context.Context, vars *core.VariableMap, fromPath string, metaOutputPath, dataRawPath storage.DataReference) error { diff --git a/flyteidl/.gitignore b/flyteidl/.gitignore index a666666dbbc..f7a920620fd 100644 --- a/flyteidl/.gitignore +++ b/flyteidl/.gitignore @@ -8,9 +8,6 @@ vendor dist gen/pb_python/flyteidl.egg-info/ -gen/pb_python/flyteidl/**/__pycache__/ -pip-wheel-metadata/*.dist-info/ -*.egg-info/ .virtualgo docs/build/ diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index e8c0f7dd5b3..6e3aa65f81c 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -6857,14 +6857,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/clients/go/coreutils/literals.go b/flyteidl/clients/go/coreutils/literals.go index 0874d3c015b..310e389c733 100644 --- a/flyteidl/clients/go/coreutils/literals.go +++ b/flyteidl/clients/go/coreutils/literals.go @@ -485,7 +485,7 @@ func MakeLiteralForStructuredDataSet(path storage.DataReference, columns []*core } } -func MakeLiteralForBlob(path storage.DataReference, isDir bool, format string, fileExtension string, enableLegacyFilename bool) *core.Literal { +func MakeLiteralForBlob(path storage.DataReference, isDir bool, format string) *core.Literal { dim := core.BlobType_SINGLE if isDir { dim = core.BlobType_MULTIPART @@ -498,10 +498,8 @@ func MakeLiteralForBlob(path storage.DataReference, isDir bool, format string, f Uri: path.String(), Metadata: &core.BlobMetadata{ Type: &core.BlobType{ - Dimensionality: dim, - Format: format, - FileExtension: fileExtension, - EnableLegacyFilename: enableLegacyFilename, + Dimensionality: dim, + Format: format, }, }, }, @@ -603,7 +601,7 @@ func MakeLiteralForType(t *core.LiteralType, v interface{}) (*core.Literal, erro case *core.LiteralType_Blob: isDir := newT.Blob.GetDimensionality() == core.BlobType_MULTIPART - lv := MakeLiteralForBlob(storage.DataReference(fmt.Sprintf("%v", v)), isDir, newT.Blob.GetFormat(), newT.Blob.GetFileExtension(), newT.Blob.GetEnableLegacyFilename()) + lv := MakeLiteralForBlob(storage.DataReference(fmt.Sprintf("%v", v)), isDir, newT.Blob.GetFormat()) return lv, nil case *core.LiteralType_Schema: diff --git a/flyteidl/clients/go/coreutils/literals_test.go b/flyteidl/clients/go/coreutils/literals_test.go index 9d5967da9b0..3586e0e02fc 100644 --- a/flyteidl/clients/go/coreutils/literals_test.go +++ b/flyteidl/clients/go/coreutils/literals_test.go @@ -388,11 +388,9 @@ func TestMakeLiteralForSimpleType(t *testing.T) { func TestMakeLiteralForBlob(t *testing.T) { type args struct { - path storage.DataReference - isDir bool - format string - fileExtension string - enableLegacyFilename bool + path storage.DataReference + isDir bool + format string } tests := []struct { name string @@ -401,12 +399,10 @@ func TestMakeLiteralForBlob(t *testing.T) { }{ {"simple-key", args{path: "/key", isDir: false, format: "xyz"}, &core.Blob{Uri: "/key", Metadata: &core.BlobMetadata{Type: &core.BlobType{Format: "xyz", Dimensionality: core.BlobType_SINGLE}}}}, {"simple-dir", args{path: "/key", isDir: true, format: "xyz"}, &core.Blob{Uri: "/key", Metadata: &core.BlobMetadata{Type: &core.BlobType{Format: "xyz", Dimensionality: core.BlobType_MULTIPART}}}}, - {"simple-key-with-extension", args{path: "/key", isDir: false, format: "xyz", fileExtension: "xyz", enableLegacyFilename: false}, &core.Blob{Uri: "/key", Metadata: &core.BlobMetadata{Type: &core.BlobType{Format: "xyz", Dimensionality: core.BlobType_SINGLE, FileExtension: "xyz", EnableLegacyFilename: false}}}}, - {"simple-key-with-extension-and-legacy-filename", args{path: "/key", isDir: false, format: "xyz", fileExtension: "xyz", enableLegacyFilename: true}, &core.Blob{Uri: "/key", Metadata: &core.BlobMetadata{Type: &core.BlobType{Format: "xyz", Dimensionality: core.BlobType_SINGLE, FileExtension: "xyz", EnableLegacyFilename: true}}}}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := MakeLiteralForBlob(tt.args.path, tt.args.isDir, tt.args.format, tt.args.fileExtension, tt.args.enableLegacyFilename); !reflect.DeepEqual(got.GetScalar().GetBlob(), tt.want) { + if got := MakeLiteralForBlob(tt.args.path, tt.args.isDir, tt.args.format); !reflect.DeepEqual(got.GetScalar().GetBlob(), tt.want) { t.Errorf("MakeLiteralForBlob() = %v, want %v", got, tt.want) } }) diff --git a/flyteidl/gen/pb-es/flyteidl/core/types_pb.ts b/flyteidl/gen/pb-es/flyteidl/core/types_pb.ts index 5b0344c65b2..f311fa0692b 100644 --- a/flyteidl/gen/pb-es/flyteidl/core/types_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/core/types_pb.ts @@ -341,28 +341,6 @@ export class BlobType extends Message { */ dimensionality = BlobType_BlobDimensionality.SINGLE; - /** - * Optional file extension (e.g. "csv", "parquet") to use during copilot download. - * Default is "", which means no extension is appended. - * Differences from "format": - * 1. "format" is used for type validation in flytekit, "file_extension" is not. - * 2. "file_extension" controls the file extension of the blob when materializing - * to local disk during copilot download, unlike "format". - * - * @generated from field: string file_extension = 3; - */ - fileExtension = ""; - - /** - * When true and file_extension is non-empty, the copilot download phase - * writes the blob to both the full path (with extension) and the - * old path (without extension), preserving backward compatibility for - * workflows with tasks that may read from both. Default is false. - * - * @generated from field: bool enable_legacy_filename = 4; - */ - enableLegacyFilename = false; - constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -373,8 +351,6 @@ export class BlobType extends Message { static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "format", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "dimensionality", kind: "enum", T: proto3.getEnumType(BlobType_BlobDimensionality) }, - { no: 3, name: "file_extension", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 4, name: "enable_legacy_filename", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): BlobType { diff --git a/flyteidl/gen/pb-go/flyteidl/core/types.pb.go b/flyteidl/gen/pb-go/flyteidl/core/types.pb.go index 8563add7080..b844e951c93 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/types.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/types.pb.go @@ -334,18 +334,6 @@ type BlobType struct { // csv, parquet etc Format string `protobuf:"bytes,1,opt,name=format,proto3" json:"format,omitempty"` Dimensionality BlobType_BlobDimensionality `protobuf:"varint,2,opt,name=dimensionality,proto3,enum=flyteidl.core.BlobType_BlobDimensionality" json:"dimensionality,omitempty"` - // Optional file extension (e.g. "csv", "parquet") to use during copilot download. - // Default is "", which means no extension is appended. - // Differences from "format": - // 1. "format" is used for type validation in flytekit, "file_extension" is not. - // 2. "file_extension" controls the file extension of the blob when materializing - // to local disk during copilot download, unlike "format". - FileExtension string `protobuf:"bytes,3,opt,name=file_extension,json=fileExtension,proto3" json:"file_extension,omitempty"` - // When true and file_extension is non-empty, the copilot download phase - // writes the blob to both the full path (with extension) and the - // old path (without extension), preserving backward compatibility for - // workflows with tasks that may read from both. Default is false. - EnableLegacyFilename bool `protobuf:"varint,4,opt,name=enable_legacy_filename,json=enableLegacyFilename,proto3" json:"enable_legacy_filename,omitempty"` } func (x *BlobType) Reset() { @@ -394,20 +382,6 @@ func (x *BlobType) GetDimensionality() BlobType_BlobDimensionality { return BlobType_SINGLE } -func (x *BlobType) GetFileExtension() string { - if x != nil { - return x.FileExtension - } - return "" -} - -func (x *BlobType) GetEnableLegacyFilename() bool { - if x != nil { - return x.EnableLegacyFilename - } - return false -} - // 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. @@ -1202,131 +1176,125 @@ var file_flyteidl_core_types_proto_rawDesc = []byte{ 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6c, 0x69, 0x74, 0x65, 0x72, - 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x84, 0x02, 0x0a, 0x08, 0x42, 0x6c, 0x6f, 0x62, 0x54, + 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x42, 0x6c, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x52, 0x0a, 0x0e, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, - 0x0e, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x25, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x65, - 0x67, 0x61, 0x63, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2f, 0x0a, 0x12, - 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x52, 0x54, 0x10, 0x01, 0x22, 0x22, 0x0a, - 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x22, 0x43, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, - 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x22, 0xd7, 0x01, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x56, 0x0a, 0x0e, 0x64, 0x61, - 0x74, 0x61, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x1a, 0x5c, 0x0a, 0x12, 0x44, 0x61, 0x74, 0x61, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x0e, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, + 0x2f, 0x0a, 0x12, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x52, 0x54, 0x10, 0x01, + 0x22, 0x22, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x36, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x22, 0xd7, 0x01, 0x0a, 0x0d, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, + 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x56, 0x0a, + 0x0e, 0x64, 0x61, 0x74, 0x61, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x5c, 0x0a, 0x12, 0x44, 0x61, 0x74, 0x61, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x0e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0xbc, 0x05, 0x0a, 0x0b, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x33, 0x0a, 0x06, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, + 0x00, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x4b, 0x0a, 0x0e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xbc, 0x05, - 0x0a, 0x0b, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, - 0x06, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, - 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, - 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6c, 0x6f, - 0x62, 0x12, 0x36, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, - 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5e, 0x0a, 0x17, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x00, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x6e, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x6e, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x79, - 0x70, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7a, 0x0a, 0x0f, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x72, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x72, - 0x6f, 0x6d, 0x69, 0x73, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x08, - 0x61, 0x74, 0x74, 0x72, 0x50, 0x61, 0x74, 0x68, 0x22, 0x5f, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6d, - 0x69, 0x73, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0c, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x05, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x2a, 0x86, 0x01, 0x0a, 0x0a, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, - 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x4f, 0x41, - 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, - 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, - 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x55, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, - 0x52, 0x59, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x08, 0x12, - 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x09, 0x42, 0xb0, 0x01, 0x0a, 0x11, - 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x43, - 0x58, 0xaa, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x43, 0x6f, 0x72, - 0x65, 0xca, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x43, 0x6f, 0x72, - 0x65, 0xe2, 0x02, 0x19, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x43, 0x6f, 0x72, - 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, - 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, + 0x62, 0x6c, 0x6f, 0x62, 0x12, 0x36, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5e, 0x0a, 0x17, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0a, + 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x0a, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x7a, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, + 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x72, 0x12, 0x3c, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x50, 0x61, 0x74, 0x68, 0x22, 0x5f, 0x0a, 0x10, 0x50, + 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x05, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x86, 0x01, 0x0a, 0x0a, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0b, + 0x0a, 0x07, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x46, + 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x04, 0x12, + 0x0c, 0x0a, 0x08, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x0c, 0x0a, + 0x08, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x42, + 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x09, 0x42, 0xb0, + 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, + 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0xa2, 0x02, + 0x03, 0x46, 0x43, 0x58, 0xaa, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x43, 0x6f, 0x72, 0x65, 0xca, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, + 0x43, 0x6f, 0x72, 0x65, 0xe2, 0x02, 0x19, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, + 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x72, + 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json index ccd899c1966..204e9e71223 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json @@ -156,14 +156,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/datacatalog/datacatalog.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/datacatalog/datacatalog.swagger.json index d870ad8d8dc..990cc1ec4ae 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/datacatalog/datacatalog.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/datacatalog/datacatalog.swagger.json @@ -130,14 +130,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index e8c0f7dd5b3..6e3aa65f81c 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -6857,14 +6857,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json index f7484cce141..7752341446a 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json @@ -1024,14 +1024,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json index 1c39db41cd9..20f32b743d0 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json @@ -246,14 +246,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json index 0c6616f0b72..468030f76d2 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json @@ -272,14 +272,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/signal.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/signal.swagger.json index 4ec586f89c2..841cb04f267 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/signal.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/signal.swagger.json @@ -322,14 +322,6 @@ }, "dimensionality": { "$ref": "#/definitions/BlobTypeBlobDimensionality" - }, - "file_extension": { - "type": "string", - "description": "Optional file extension (e.g. \"csv\", \"parquet\") to use during copilot download.\nDefault is \"\", which means no extension is appended.\nDifferences from \"format\":\n 1. \"format\" is used for type validation in flytekit, \"file_extension\" is not.\n 2. \"file_extension\" controls the file extension of the blob when materializing\n to local disk during copilot download, unlike \"format\"." - }, - "enable_legacy_filename": { - "type": "boolean", - "description": "When true and file_extension is non-empty, the copilot download phase\nwrites the blob to both the full path (with extension) and the\nold path (without extension), preserving backward compatibility for\nworkflows with tasks that may read from both. Default is false." } }, "title": "Defines type behavior for blob objects" diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index d268bd5e4f2..d42bc601f07 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -2174,12 +2174,6 @@ export namespace flyteidl { /** BlobType dimensionality */ dimensionality?: (flyteidl.core.BlobType.BlobDimensionality|null); - - /** BlobType fileExtension */ - fileExtension?: (string|null); - - /** BlobType enableLegacyFilename */ - enableLegacyFilename?: (boolean|null); } /** Represents a BlobType. */ @@ -2197,12 +2191,6 @@ export namespace flyteidl { /** BlobType dimensionality. */ public dimensionality: flyteidl.core.BlobType.BlobDimensionality; - /** BlobType fileExtension. */ - public fileExtension: string; - - /** BlobType enableLegacyFilename. */ - public enableLegacyFilename: boolean; - /** * Creates a new BlobType instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index eb13bb0da02..7e35168f471 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -5147,8 +5147,6 @@ * @interface IBlobType * @property {string|null} [format] BlobType format * @property {flyteidl.core.BlobType.BlobDimensionality|null} [dimensionality] BlobType dimensionality - * @property {string|null} [fileExtension] BlobType fileExtension - * @property {boolean|null} [enableLegacyFilename] BlobType enableLegacyFilename */ /** @@ -5182,22 +5180,6 @@ */ BlobType.prototype.dimensionality = 0; - /** - * BlobType fileExtension. - * @member {string} fileExtension - * @memberof flyteidl.core.BlobType - * @instance - */ - BlobType.prototype.fileExtension = ""; - - /** - * BlobType enableLegacyFilename. - * @member {boolean} enableLegacyFilename - * @memberof flyteidl.core.BlobType - * @instance - */ - BlobType.prototype.enableLegacyFilename = false; - /** * Creates a new BlobType instance using the specified properties. * @function create @@ -5226,10 +5208,6 @@ writer.uint32(/* id 1, wireType 2 =*/10).string(message.format); if (message.dimensionality != null && message.hasOwnProperty("dimensionality")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.dimensionality); - if (message.fileExtension != null && message.hasOwnProperty("fileExtension")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.fileExtension); - if (message.enableLegacyFilename != null && message.hasOwnProperty("enableLegacyFilename")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.enableLegacyFilename); return writer; }; @@ -5257,12 +5235,6 @@ case 2: message.dimensionality = reader.int32(); break; - case 3: - message.fileExtension = reader.string(); - break; - case 4: - message.enableLegacyFilename = reader.bool(); - break; default: reader.skipType(tag & 7); break; @@ -5293,12 +5265,6 @@ case 1: break; } - if (message.fileExtension != null && message.hasOwnProperty("fileExtension")) - if (!$util.isString(message.fileExtension)) - return "fileExtension: string expected"; - if (message.enableLegacyFilename != null && message.hasOwnProperty("enableLegacyFilename")) - if (typeof message.enableLegacyFilename !== "boolean") - return "enableLegacyFilename: boolean expected"; return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/core/types_pb2.py b/flyteidl/gen/pb_python/flyteidl/core/types_pb2.py index 549ba55fd00..3043a0cf6b8 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/types_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/core/types_pb2.py @@ -14,7 +14,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66lyteidl/core/types.proto\x12\rflyteidl.core\x1a\x1cgoogle/protobuf/struct.proto\"\xa1\x02\n\nSchemaType\x12@\n\x07\x63olumns\x18\x03 \x03(\x0b\x32&.flyteidl.core.SchemaType.SchemaColumnR\x07\x63olumns\x1a\xd0\x01\n\x0cSchemaColumn\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12K\n\x04type\x18\x02 \x01(\x0e\x32\x37.flyteidl.core.SchemaType.SchemaColumn.SchemaColumnTypeR\x04type\"_\n\x10SchemaColumnType\x12\x0b\n\x07INTEGER\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x0b\n\x07\x42OOLEAN\x10\x03\x12\x0c\n\x08\x44\x41TETIME\x10\x04\x12\x0c\n\x08\x44URATION\x10\x05\"\xc7\x02\n\x15StructuredDatasetType\x12L\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\x32.flyteidl.core.StructuredDatasetType.DatasetColumnR\x07\x63olumns\x12\x16\n\x06\x66ormat\x18\x02 \x01(\tR\x06\x66ormat\x12\x30\n\x14\x65xternal_schema_type\x18\x03 \x01(\tR\x12\x65xternalSchemaType\x12\x32\n\x15\x65xternal_schema_bytes\x18\x04 \x01(\x0cR\x13\x65xternalSchemaBytes\x1a\x62\n\rDatasetColumn\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12=\n\x0cliteral_type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x0bliteralType\"\x84\x02\n\x08\x42lobType\x12\x16\n\x06\x66ormat\x18\x01 \x01(\tR\x06\x66ormat\x12R\n\x0e\x64imensionality\x18\x02 \x01(\x0e\x32*.flyteidl.core.BlobType.BlobDimensionalityR\x0e\x64imensionality\x12%\n\x0e\x66ile_extension\x18\x03 \x01(\tR\rfileExtension\x12\x34\n\x16\x65nable_legacy_filename\x18\x04 \x01(\x08R\x14\x65nableLegacyFilename\"/\n\x12\x42lobDimensionality\x12\n\n\x06SINGLE\x10\x00\x12\r\n\tMULTIPART\x10\x01\"\"\n\x08\x45numType\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"C\n\tUnionType\x12\x36\n\x08variants\x18\x01 \x03(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x08variants\"\xd7\x01\n\rTypeStructure\x12\x10\n\x03tag\x18\x01 \x01(\tR\x03tag\x12V\n\x0e\x64\x61taclass_type\x18\x02 \x03(\x0b\x32/.flyteidl.core.TypeStructure.DataclassTypeEntryR\rdataclassType\x1a\\\n\x12\x44\x61taclassTypeEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x05value:\x02\x38\x01\"K\n\x0eTypeAnnotation\x12\x39\n\x0b\x61nnotations\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x0b\x61nnotations\"\xbc\x05\n\x0bLiteralType\x12\x33\n\x06simple\x18\x01 \x01(\x0e\x32\x19.flyteidl.core.SimpleTypeH\x00R\x06simple\x12\x33\n\x06schema\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.SchemaTypeH\x00R\x06schema\x12\x45\n\x0f\x63ollection_type\x18\x03 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeH\x00R\x0e\x63ollectionType\x12\x42\n\x0emap_value_type\x18\x04 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeH\x00R\x0cmapValueType\x12-\n\x04\x62lob\x18\x05 \x01(\x0b\x32\x17.flyteidl.core.BlobTypeH\x00R\x04\x62lob\x12\x36\n\tenum_type\x18\x07 \x01(\x0b\x32\x17.flyteidl.core.EnumTypeH\x00R\x08\x65numType\x12^\n\x17structured_dataset_type\x18\x08 \x01(\x0b\x32$.flyteidl.core.StructuredDatasetTypeH\x00R\x15structuredDatasetType\x12\x39\n\nunion_type\x18\n \x01(\x0b\x32\x18.flyteidl.core.UnionTypeH\x00R\tunionType\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12=\n\nannotation\x18\t \x01(\x0b\x32\x1d.flyteidl.core.TypeAnnotationR\nannotation\x12:\n\tstructure\x18\x0b \x01(\x0b\x32\x1c.flyteidl.core.TypeStructureR\tstructureB\x06\n\x04type\"z\n\x0fOutputReference\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\x12\x10\n\x03var\x18\x02 \x01(\tR\x03var\x12<\n\tattr_path\x18\x03 \x03(\x0b\x32\x1f.flyteidl.core.PromiseAttributeR\x08\x61ttrPath\"_\n\x10PromiseAttribute\x12#\n\x0cstring_value\x18\x01 \x01(\tH\x00R\x0bstringValue\x12\x1d\n\tint_value\x18\x02 \x01(\x05H\x00R\x08intValueB\x07\n\x05value\"G\n\x05\x45rror\x12$\n\x0e\x66\x61iled_node_id\x18\x01 \x01(\tR\x0c\x66\x61iledNodeId\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message*\x86\x01\n\nSimpleType\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07INTEGER\x10\x01\x12\t\n\x05\x46LOAT\x10\x02\x12\n\n\x06STRING\x10\x03\x12\x0b\n\x07\x42OOLEAN\x10\x04\x12\x0c\n\x08\x44\x41TETIME\x10\x05\x12\x0c\n\x08\x44URATION\x10\x06\x12\n\n\x06\x42INARY\x10\x07\x12\t\n\x05\x45RROR\x10\x08\x12\n\n\x06STRUCT\x10\tB\xb0\x01\n\x11\x63om.flyteidl.coreB\nTypesProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66lyteidl/core/types.proto\x12\rflyteidl.core\x1a\x1cgoogle/protobuf/struct.proto\"\xa1\x02\n\nSchemaType\x12@\n\x07\x63olumns\x18\x03 \x03(\x0b\x32&.flyteidl.core.SchemaType.SchemaColumnR\x07\x63olumns\x1a\xd0\x01\n\x0cSchemaColumn\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12K\n\x04type\x18\x02 \x01(\x0e\x32\x37.flyteidl.core.SchemaType.SchemaColumn.SchemaColumnTypeR\x04type\"_\n\x10SchemaColumnType\x12\x0b\n\x07INTEGER\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x0b\n\x07\x42OOLEAN\x10\x03\x12\x0c\n\x08\x44\x41TETIME\x10\x04\x12\x0c\n\x08\x44URATION\x10\x05\"\xc7\x02\n\x15StructuredDatasetType\x12L\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\x32.flyteidl.core.StructuredDatasetType.DatasetColumnR\x07\x63olumns\x12\x16\n\x06\x66ormat\x18\x02 \x01(\tR\x06\x66ormat\x12\x30\n\x14\x65xternal_schema_type\x18\x03 \x01(\tR\x12\x65xternalSchemaType\x12\x32\n\x15\x65xternal_schema_bytes\x18\x04 \x01(\x0cR\x13\x65xternalSchemaBytes\x1a\x62\n\rDatasetColumn\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12=\n\x0cliteral_type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x0bliteralType\"\xa7\x01\n\x08\x42lobType\x12\x16\n\x06\x66ormat\x18\x01 \x01(\tR\x06\x66ormat\x12R\n\x0e\x64imensionality\x18\x02 \x01(\x0e\x32*.flyteidl.core.BlobType.BlobDimensionalityR\x0e\x64imensionality\"/\n\x12\x42lobDimensionality\x12\n\n\x06SINGLE\x10\x00\x12\r\n\tMULTIPART\x10\x01\"\"\n\x08\x45numType\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"C\n\tUnionType\x12\x36\n\x08variants\x18\x01 \x03(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x08variants\"\xd7\x01\n\rTypeStructure\x12\x10\n\x03tag\x18\x01 \x01(\tR\x03tag\x12V\n\x0e\x64\x61taclass_type\x18\x02 \x03(\x0b\x32/.flyteidl.core.TypeStructure.DataclassTypeEntryR\rdataclassType\x1a\\\n\x12\x44\x61taclassTypeEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x05value:\x02\x38\x01\"K\n\x0eTypeAnnotation\x12\x39\n\x0b\x61nnotations\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x0b\x61nnotations\"\xbc\x05\n\x0bLiteralType\x12\x33\n\x06simple\x18\x01 \x01(\x0e\x32\x19.flyteidl.core.SimpleTypeH\x00R\x06simple\x12\x33\n\x06schema\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.SchemaTypeH\x00R\x06schema\x12\x45\n\x0f\x63ollection_type\x18\x03 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeH\x00R\x0e\x63ollectionType\x12\x42\n\x0emap_value_type\x18\x04 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeH\x00R\x0cmapValueType\x12-\n\x04\x62lob\x18\x05 \x01(\x0b\x32\x17.flyteidl.core.BlobTypeH\x00R\x04\x62lob\x12\x36\n\tenum_type\x18\x07 \x01(\x0b\x32\x17.flyteidl.core.EnumTypeH\x00R\x08\x65numType\x12^\n\x17structured_dataset_type\x18\x08 \x01(\x0b\x32$.flyteidl.core.StructuredDatasetTypeH\x00R\x15structuredDatasetType\x12\x39\n\nunion_type\x18\n \x01(\x0b\x32\x18.flyteidl.core.UnionTypeH\x00R\tunionType\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12=\n\nannotation\x18\t \x01(\x0b\x32\x1d.flyteidl.core.TypeAnnotationR\nannotation\x12:\n\tstructure\x18\x0b \x01(\x0b\x32\x1c.flyteidl.core.TypeStructureR\tstructureB\x06\n\x04type\"z\n\x0fOutputReference\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\x12\x10\n\x03var\x18\x02 \x01(\tR\x03var\x12<\n\tattr_path\x18\x03 \x03(\x0b\x32\x1f.flyteidl.core.PromiseAttributeR\x08\x61ttrPath\"_\n\x10PromiseAttribute\x12#\n\x0cstring_value\x18\x01 \x01(\tH\x00R\x0bstringValue\x12\x1d\n\tint_value\x18\x02 \x01(\x05H\x00R\x08intValueB\x07\n\x05value\"G\n\x05\x45rror\x12$\n\x0e\x66\x61iled_node_id\x18\x01 \x01(\tR\x0c\x66\x61iledNodeId\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message*\x86\x01\n\nSimpleType\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07INTEGER\x10\x01\x12\t\n\x05\x46LOAT\x10\x02\x12\n\n\x06STRING\x10\x03\x12\x0b\n\x07\x42OOLEAN\x10\x04\x12\x0c\n\x08\x44\x41TETIME\x10\x05\x12\x0c\n\x08\x44URATION\x10\x06\x12\n\n\x06\x42INARY\x10\x07\x12\t\n\x05\x45RROR\x10\x08\x12\n\n\x06STRUCT\x10\tB\xb0\x01\n\x11\x63om.flyteidl.coreB\nTypesProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,8 +25,8 @@ DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\nTypesProtoP\001Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\242\002\003FCX\252\002\rFlyteidl.Core\312\002\rFlyteidl\\Core\342\002\031Flyteidl\\Core\\GPBMetadata\352\002\016Flyteidl::Core' _TYPESTRUCTURE_DATACLASSTYPEENTRY._options = None _TYPESTRUCTURE_DATACLASSTYPEENTRY._serialized_options = b'8\001' - _globals['_SIMPLETYPE']._serialized_start=2357 - _globals['_SIMPLETYPE']._serialized_end=2491 + _globals['_SIMPLETYPE']._serialized_start=2264 + _globals['_SIMPLETYPE']._serialized_end=2398 _globals['_SCHEMATYPE']._serialized_start=75 _globals['_SCHEMATYPE']._serialized_end=364 _globals['_SCHEMATYPE_SCHEMACOLUMN']._serialized_start=156 @@ -38,25 +38,25 @@ _globals['_STRUCTUREDDATASETTYPE_DATASETCOLUMN']._serialized_start=596 _globals['_STRUCTUREDDATASETTYPE_DATASETCOLUMN']._serialized_end=694 _globals['_BLOBTYPE']._serialized_start=697 - _globals['_BLOBTYPE']._serialized_end=957 - _globals['_BLOBTYPE_BLOBDIMENSIONALITY']._serialized_start=910 - _globals['_BLOBTYPE_BLOBDIMENSIONALITY']._serialized_end=957 - _globals['_ENUMTYPE']._serialized_start=959 - _globals['_ENUMTYPE']._serialized_end=993 - _globals['_UNIONTYPE']._serialized_start=995 - _globals['_UNIONTYPE']._serialized_end=1062 - _globals['_TYPESTRUCTURE']._serialized_start=1065 - _globals['_TYPESTRUCTURE']._serialized_end=1280 - _globals['_TYPESTRUCTURE_DATACLASSTYPEENTRY']._serialized_start=1188 - _globals['_TYPESTRUCTURE_DATACLASSTYPEENTRY']._serialized_end=1280 - _globals['_TYPEANNOTATION']._serialized_start=1282 - _globals['_TYPEANNOTATION']._serialized_end=1357 - _globals['_LITERALTYPE']._serialized_start=1360 - _globals['_LITERALTYPE']._serialized_end=2060 - _globals['_OUTPUTREFERENCE']._serialized_start=2062 - _globals['_OUTPUTREFERENCE']._serialized_end=2184 - _globals['_PROMISEATTRIBUTE']._serialized_start=2186 - _globals['_PROMISEATTRIBUTE']._serialized_end=2281 - _globals['_ERROR']._serialized_start=2283 - _globals['_ERROR']._serialized_end=2354 + _globals['_BLOBTYPE']._serialized_end=864 + _globals['_BLOBTYPE_BLOBDIMENSIONALITY']._serialized_start=817 + _globals['_BLOBTYPE_BLOBDIMENSIONALITY']._serialized_end=864 + _globals['_ENUMTYPE']._serialized_start=866 + _globals['_ENUMTYPE']._serialized_end=900 + _globals['_UNIONTYPE']._serialized_start=902 + _globals['_UNIONTYPE']._serialized_end=969 + _globals['_TYPESTRUCTURE']._serialized_start=972 + _globals['_TYPESTRUCTURE']._serialized_end=1187 + _globals['_TYPESTRUCTURE_DATACLASSTYPEENTRY']._serialized_start=1095 + _globals['_TYPESTRUCTURE_DATACLASSTYPEENTRY']._serialized_end=1187 + _globals['_TYPEANNOTATION']._serialized_start=1189 + _globals['_TYPEANNOTATION']._serialized_end=1264 + _globals['_LITERALTYPE']._serialized_start=1267 + _globals['_LITERALTYPE']._serialized_end=1967 + _globals['_OUTPUTREFERENCE']._serialized_start=1969 + _globals['_OUTPUTREFERENCE']._serialized_end=2091 + _globals['_PROMISEATTRIBUTE']._serialized_start=2093 + _globals['_PROMISEATTRIBUTE']._serialized_end=2188 + _globals['_ERROR']._serialized_start=2190 + _globals['_ERROR']._serialized_end=2261 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/core/types_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/core/types_pb2.pyi index ec8dba49eec..9028afabd55 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/types_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/core/types_pb2.pyi @@ -77,7 +77,7 @@ class StructuredDatasetType(_message.Message): def __init__(self, columns: _Optional[_Iterable[_Union[StructuredDatasetType.DatasetColumn, _Mapping]]] = ..., format: _Optional[str] = ..., external_schema_type: _Optional[str] = ..., external_schema_bytes: _Optional[bytes] = ...) -> None: ... class BlobType(_message.Message): - __slots__ = ["format", "dimensionality", "file_extension", "enable_legacy_filename"] + __slots__ = ["format", "dimensionality"] class BlobDimensionality(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = [] SINGLE: _ClassVar[BlobType.BlobDimensionality] @@ -86,13 +86,9 @@ class BlobType(_message.Message): MULTIPART: BlobType.BlobDimensionality FORMAT_FIELD_NUMBER: _ClassVar[int] DIMENSIONALITY_FIELD_NUMBER: _ClassVar[int] - FILE_EXTENSION_FIELD_NUMBER: _ClassVar[int] - ENABLE_LEGACY_FILENAME_FIELD_NUMBER: _ClassVar[int] format: str dimensionality: BlobType.BlobDimensionality - file_extension: str - enable_legacy_filename: bool - def __init__(self, format: _Optional[str] = ..., dimensionality: _Optional[_Union[BlobType.BlobDimensionality, str]] = ..., file_extension: _Optional[str] = ..., enable_legacy_filename: bool = ...) -> None: ... + def __init__(self, format: _Optional[str] = ..., dimensionality: _Optional[_Union[BlobType.BlobDimensionality, str]] = ...) -> None: ... class EnumType(_message.Message): __slots__ = ["values"] diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index 14b1838114a..4975baeb564 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -105,20 +105,6 @@ pub struct BlobType { pub format: ::prost::alloc::string::String, #[prost(enumeration="blob_type::BlobDimensionality", tag="2")] pub dimensionality: i32, - /// Optional file extension (e.g. "csv", "parquet") to use during copilot download. - /// Default is "", which means no extension is appended. - /// Differences from "format": - /// 1. "format" is used for type validation in flytekit, "file_extension" is not. - /// 2. "file_extension" controls the file extension of the blob when materializing - /// to local disk during copilot download, unlike "format". - #[prost(string, tag="3")] - pub file_extension: ::prost::alloc::string::String, - /// When true and file_extension is non-empty, the copilot download phase - /// writes the blob to both the full path (with extension) and the - /// old path (without extension), preserving backward compatibility for - /// workflows with tasks that may read from both. Default is false. - #[prost(bool, tag="4")] - pub enable_legacy_filename: bool, } /// Nested message and enum types in `BlobType`. pub mod blob_type { diff --git a/flyteidl/protos/flyteidl/core/types.proto b/flyteidl/protos/flyteidl/core/types.proto index c575901a6ca..3580eea9f00 100644 --- a/flyteidl/protos/flyteidl/core/types.proto +++ b/flyteidl/protos/flyteidl/core/types.proto @@ -80,20 +80,6 @@ message BlobType { // csv, parquet etc string format = 1; BlobDimensionality dimensionality = 2; - - // Optional file extension (e.g. "csv", "parquet") to use during copilot download. - // Default is "", which means no extension is appended. - // Differences from "format": - // 1. "format" is used for type validation in flytekit, "file_extension" is not. - // 2. "file_extension" controls the file extension of the blob when materializing - // to local disk during copilot download, unlike "format". - string file_extension = 3; - - // When true and file_extension is non-empty, the copilot download phase - // writes the blob to both the full path (with extension) and the - // old path (without extension), preserving backward compatibility for - // workflows with tasks that may read from both. Default is false. - bool enable_legacy_filename = 4; } // Enables declaring enum types, with predefined string values