From 7be904a67048bce7dc56b6f6f986df67e1e7e379 Mon Sep 17 00:00:00 2001 From: Joe Eschen <126913098+squiishyy@users.noreply.github.com> Date: Tue, 5 Mar 2024 11:57:13 -0800 Subject: [PATCH] Time partition granularity (#4959) Signed-off-by: Yee Hing Tong --- flyteidl/clients/go/assets/admin.swagger.json | 74 ++- .../gen/pb-es/flyteidl/core/artifact_id_pb.ts | 161 ++++- .../gen/pb-go/flyteidl/core/artifact_id.pb.go | 593 +++++++++++++----- .../flyteidl/service/admin.swagger.json | 74 ++- .../flyteidl/service/agent.swagger.json | 44 +- .../external_plugin_service.swagger.json | 44 +- flyteidl/gen/pb-js/flyteidl.d.ts | 141 ++++- flyteidl/gen/pb-js/flyteidl.js | 340 +++++++++- .../flyteidl/core/artifact_id_pb2.py | 44 +- .../flyteidl/core/artifact_id_pb2.pyi | 51 +- flyteidl/gen/pb_rust/flyteidl.core.rs | 90 ++- .../protos/flyteidl/core/artifact_id.proto | 29 +- 12 files changed, 1427 insertions(+), 258 deletions(-) diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index 191143dd89..7b9045cbe3 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -4197,20 +4197,6 @@ ], "default": "SINGLE" }, - "ComparisonExpressionOperator": { - "type": "string", - "enum": [ - "EQ", - "NEQ", - "GT", - "GTE", - "LT", - "LTE" - ], - "default": "EQ", - "description": "- GT: Greater Than\n - LT: Less Than", - "title": "Binary Operator for each expression" - }, "ConjunctionExpressionLogicalOperator": { "type": "string", "enum": [ @@ -6481,8 +6467,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -6750,7 +6736,7 @@ "type": "object", "properties": { "operator": { - "$ref": "#/definitions/ComparisonExpressionOperator" + "$ref": "#/definitions/coreComparisonExpressionOperator" }, "left_value": { "$ref": "#/definitions/coreOperand" @@ -6761,6 +6747,20 @@ }, "description": "Defines a 2-level tree where the root is a comparison operator and Operands are primitives or known variables.\nEach expression results in a boolean result." }, + "coreComparisonExpressionOperator": { + "type": "string", + "enum": [ + "EQ", + "NEQ", + "GT", + "GTE", + "LT", + "LTE" + ], + "default": "EQ", + "description": "- GT: Greater Than\n - LT: Less Than", + "title": "Binary Operator for each expression" + }, "coreCompiledLaunchPlan": { "type": "object", "properties": { @@ -7038,6 +7038,18 @@ }, "description": "GateNode refers to the condition that is required for the gate to successfully complete." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -7205,6 +7217,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -7688,6 +7703,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -8145,6 +8163,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -8838,6 +8870,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts b/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts index 42d063161d..be92b47b70 100644 --- a/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts @@ -6,6 +6,66 @@ import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, Timestamp } from "@bufbuild/protobuf"; +/** + * @generated from enum flyteidl.core.Granularity + */ +export enum Granularity { + /** + * @generated from enum value: UNSET = 0; + */ + UNSET = 0, + + /** + * @generated from enum value: MINUTE = 1; + */ + MINUTE = 1, + + /** + * @generated from enum value: HOUR = 2; + */ + HOUR = 2, + + /** + * default + * + * @generated from enum value: DAY = 3; + */ + DAY = 3, + + /** + * @generated from enum value: MONTH = 4; + */ + MONTH = 4, +} +// Retrieve enum metadata with: proto3.getEnumType(Granularity) +proto3.util.setEnumType(Granularity, "flyteidl.core.Granularity", [ + { no: 0, name: "UNSET" }, + { no: 1, name: "MINUTE" }, + { no: 2, name: "HOUR" }, + { no: 3, name: "DAY" }, + { no: 4, name: "MONTH" }, +]); + +/** + * @generated from enum flyteidl.core.Operator + */ +export enum Operator { + /** + * @generated from enum value: MINUS = 0; + */ + MINUS = 0, + + /** + * @generated from enum value: PLUS = 1; + */ + PLUS = 1, +} +// Retrieve enum metadata with: proto3.getEnumType(Operator) +proto3.util.setEnumType(Operator, "flyteidl.core.Operator", [ + { no: 0, name: "MINUS" }, + { no: 1, name: "PLUS" }, +]); + /** * @generated from message flyteidl.core.ArtifactKey */ @@ -76,13 +136,13 @@ export class ArtifactBindingData extends Message { */ partitionData: { /** - * @generated from field: string partition_key = 2; + * @generated from field: string partition_key = 5; */ value: string; case: "partitionKey"; } | { /** - * @generated from field: bool bind_to_time_partition = 3; + * @generated from field: bool bind_to_time_partition = 6; */ value: boolean; case: "bindToTimePartition"; @@ -91,9 +151,9 @@ export class ArtifactBindingData extends Message { /** * This is only relevant in the time partition case * - * @generated from field: string transform = 4; + * @generated from field: flyteidl.core.TimeTransform time_transform = 7; */ - transform = ""; + timeTransform?: TimeTransform; constructor(data?: PartialMessage) { super(); @@ -103,9 +163,9 @@ export class ArtifactBindingData extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "flyteidl.core.ArtifactBindingData"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 2, name: "partition_key", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "partition_data" }, - { no: 3, name: "bind_to_time_partition", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "partition_data" }, - { no: 4, name: "transform", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 5, name: "partition_key", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "partition_data" }, + { no: 6, name: "bind_to_time_partition", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "partition_data" }, + { no: 7, name: "time_transform", kind: "message", T: TimeTransform }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): ArtifactBindingData { @@ -125,6 +185,49 @@ export class ArtifactBindingData extends Message { } } +/** + * @generated from message flyteidl.core.TimeTransform + */ +export class TimeTransform extends Message { + /** + * @generated from field: string transform = 1; + */ + transform = ""; + + /** + * @generated from field: flyteidl.core.Operator op = 2; + */ + op = Operator.MINUS; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.core.TimeTransform"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "transform", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "op", kind: "enum", T: proto3.getEnumType(Operator) }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): TimeTransform { + return new TimeTransform().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): TimeTransform { + return new TimeTransform().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): TimeTransform { + return new TimeTransform().fromJsonString(jsonString, options); + } + + static equals(a: TimeTransform | PlainMessage | undefined, b: TimeTransform | PlainMessage | undefined): boolean { + return proto3.util.equals(TimeTransform, a, b); + } +} + /** * @generated from message flyteidl.core.InputBindingData */ @@ -162,6 +265,37 @@ export class InputBindingData extends Message { } } +/** + * @generated from message flyteidl.core.RuntimeBinding + */ +export class RuntimeBinding extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.core.RuntimeBinding"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): RuntimeBinding { + return new RuntimeBinding().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): RuntimeBinding { + return new RuntimeBinding().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): RuntimeBinding { + return new RuntimeBinding().fromJsonString(jsonString, options); + } + + static equals(a: RuntimeBinding | PlainMessage | undefined, b: RuntimeBinding | PlainMessage | undefined): boolean { + return proto3.util.equals(RuntimeBinding, a, b); + } +} + /** * @generated from message flyteidl.core.LabelValue */ @@ -197,6 +331,12 @@ export class LabelValue extends Message { */ value: InputBindingData; case: "inputBinding"; + } | { + /** + * @generated from field: flyteidl.core.RuntimeBinding runtime_binding = 5; + */ + value: RuntimeBinding; + case: "runtimeBinding"; } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { @@ -211,6 +351,7 @@ export class LabelValue extends Message { { no: 2, name: "time_value", kind: "message", T: Timestamp, oneof: "value" }, { no: 3, name: "triggered_binding", kind: "message", T: ArtifactBindingData, oneof: "value" }, { no: 4, name: "input_binding", kind: "message", T: InputBindingData, oneof: "value" }, + { no: 5, name: "runtime_binding", kind: "message", T: RuntimeBinding, oneof: "value" }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): LabelValue { @@ -276,6 +417,11 @@ export class TimePartition extends Message { */ value?: LabelValue; + /** + * @generated from field: flyteidl.core.Granularity granularity = 2; + */ + granularity = Granularity.UNSET; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -285,6 +431,7 @@ export class TimePartition extends Message { static readonly typeName = "flyteidl.core.TimePartition"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "value", kind: "message", T: LabelValue }, + { no: 2, name: "granularity", kind: "enum", T: proto3.getEnumType(Granularity) }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): TimePartition { diff --git a/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go b/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go index 7d692916a7..9fd82504dd 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go @@ -21,6 +21,107 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type Granularity int32 + +const ( + Granularity_UNSET Granularity = 0 + Granularity_MINUTE Granularity = 1 + Granularity_HOUR Granularity = 2 + Granularity_DAY Granularity = 3 // default + Granularity_MONTH Granularity = 4 +) + +// Enum value maps for Granularity. +var ( + Granularity_name = map[int32]string{ + 0: "UNSET", + 1: "MINUTE", + 2: "HOUR", + 3: "DAY", + 4: "MONTH", + } + Granularity_value = map[string]int32{ + "UNSET": 0, + "MINUTE": 1, + "HOUR": 2, + "DAY": 3, + "MONTH": 4, + } +) + +func (x Granularity) Enum() *Granularity { + p := new(Granularity) + *p = x + return p +} + +func (x Granularity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Granularity) Descriptor() protoreflect.EnumDescriptor { + return file_flyteidl_core_artifact_id_proto_enumTypes[0].Descriptor() +} + +func (Granularity) Type() protoreflect.EnumType { + return &file_flyteidl_core_artifact_id_proto_enumTypes[0] +} + +func (x Granularity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Granularity.Descriptor instead. +func (Granularity) EnumDescriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{0} +} + +type Operator int32 + +const ( + Operator_MINUS Operator = 0 + Operator_PLUS Operator = 1 +) + +// Enum value maps for Operator. +var ( + Operator_name = map[int32]string{ + 0: "MINUS", + 1: "PLUS", + } + Operator_value = map[string]int32{ + "MINUS": 0, + "PLUS": 1, + } +) + +func (x Operator) Enum() *Operator { + p := new(Operator) + *p = x + return p +} + +func (x Operator) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Operator) Descriptor() protoreflect.EnumDescriptor { + return file_flyteidl_core_artifact_id_proto_enumTypes[1].Descriptor() +} + +func (Operator) Type() protoreflect.EnumType { + return &file_flyteidl_core_artifact_id_proto_enumTypes[1] +} + +func (x Operator) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Operator.Descriptor instead. +func (Operator) EnumDescriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{1} +} + type ArtifactKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -107,7 +208,7 @@ type ArtifactBindingData struct { // *ArtifactBindingData_BindToTimePartition PartitionData isArtifactBindingData_PartitionData `protobuf_oneof:"partition_data"` // This is only relevant in the time partition case - Transform string `protobuf:"bytes,4,opt,name=transform,proto3" json:"transform,omitempty"` + TimeTransform *TimeTransform `protobuf:"bytes,7,opt,name=time_transform,json=timeTransform,proto3" json:"time_transform,omitempty"` } func (x *ArtifactBindingData) Reset() { @@ -163,11 +264,11 @@ func (x *ArtifactBindingData) GetBindToTimePartition() bool { return false } -func (x *ArtifactBindingData) GetTransform() string { +func (x *ArtifactBindingData) GetTimeTransform() *TimeTransform { if x != nil { - return x.Transform + return x.TimeTransform } - return "" + return nil } type isArtifactBindingData_PartitionData interface { @@ -175,17 +276,72 @@ type isArtifactBindingData_PartitionData interface { } type ArtifactBindingData_PartitionKey struct { - PartitionKey string `protobuf:"bytes,2,opt,name=partition_key,json=partitionKey,proto3,oneof"` + PartitionKey string `protobuf:"bytes,5,opt,name=partition_key,json=partitionKey,proto3,oneof"` } type ArtifactBindingData_BindToTimePartition struct { - BindToTimePartition bool `protobuf:"varint,3,opt,name=bind_to_time_partition,json=bindToTimePartition,proto3,oneof"` + BindToTimePartition bool `protobuf:"varint,6,opt,name=bind_to_time_partition,json=bindToTimePartition,proto3,oneof"` } func (*ArtifactBindingData_PartitionKey) isArtifactBindingData_PartitionData() {} func (*ArtifactBindingData_BindToTimePartition) isArtifactBindingData_PartitionData() {} +type TimeTransform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transform string `protobuf:"bytes,1,opt,name=transform,proto3" json:"transform,omitempty"` + Op Operator `protobuf:"varint,2,opt,name=op,proto3,enum=flyteidl.core.Operator" json:"op,omitempty"` +} + +func (x *TimeTransform) Reset() { + *x = TimeTransform{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimeTransform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimeTransform) ProtoMessage() {} + +func (x *TimeTransform) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimeTransform.ProtoReflect.Descriptor instead. +func (*TimeTransform) Descriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{2} +} + +func (x *TimeTransform) GetTransform() string { + if x != nil { + return x.Transform + } + return "" +} + +func (x *TimeTransform) GetOp() Operator { + if x != nil { + return x.Op + } + return Operator_MINUS +} + type InputBindingData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -197,7 +353,7 @@ type InputBindingData struct { func (x *InputBindingData) Reset() { *x = InputBindingData{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -210,7 +366,7 @@ func (x *InputBindingData) String() string { func (*InputBindingData) ProtoMessage() {} func (x *InputBindingData) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -223,7 +379,7 @@ func (x *InputBindingData) ProtoReflect() protoreflect.Message { // Deprecated: Use InputBindingData.ProtoReflect.Descriptor instead. func (*InputBindingData) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{2} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{3} } func (x *InputBindingData) GetVar() string { @@ -233,6 +389,44 @@ func (x *InputBindingData) GetVar() string { return "" } +type RuntimeBinding struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RuntimeBinding) Reset() { + *x = RuntimeBinding{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RuntimeBinding) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuntimeBinding) ProtoMessage() {} + +func (x *RuntimeBinding) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RuntimeBinding.ProtoReflect.Descriptor instead. +func (*RuntimeBinding) Descriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{4} +} + type LabelValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -244,13 +438,14 @@ type LabelValue struct { // *LabelValue_TimeValue // *LabelValue_TriggeredBinding // *LabelValue_InputBinding + // *LabelValue_RuntimeBinding Value isLabelValue_Value `protobuf_oneof:"value"` } func (x *LabelValue) Reset() { *x = LabelValue{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -263,7 +458,7 @@ func (x *LabelValue) String() string { func (*LabelValue) ProtoMessage() {} func (x *LabelValue) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -276,7 +471,7 @@ func (x *LabelValue) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelValue.ProtoReflect.Descriptor instead. func (*LabelValue) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{3} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{5} } func (m *LabelValue) GetValue() isLabelValue_Value { @@ -314,6 +509,13 @@ func (x *LabelValue) GetInputBinding() *InputBindingData { return nil } +func (x *LabelValue) GetRuntimeBinding() *RuntimeBinding { + if x, ok := x.GetValue().(*LabelValue_RuntimeBinding); ok { + return x.RuntimeBinding + } + return nil +} + type isLabelValue_Value interface { isLabelValue_Value() } @@ -336,6 +538,10 @@ type LabelValue_InputBinding struct { InputBinding *InputBindingData `protobuf:"bytes,4,opt,name=input_binding,json=inputBinding,proto3,oneof"` } +type LabelValue_RuntimeBinding struct { + RuntimeBinding *RuntimeBinding `protobuf:"bytes,5,opt,name=runtime_binding,json=runtimeBinding,proto3,oneof"` +} + func (*LabelValue_StaticValue) isLabelValue_Value() {} func (*LabelValue_TimeValue) isLabelValue_Value() {} @@ -344,6 +550,8 @@ func (*LabelValue_TriggeredBinding) isLabelValue_Value() {} func (*LabelValue_InputBinding) isLabelValue_Value() {} +func (*LabelValue_RuntimeBinding) isLabelValue_Value() {} + type Partitions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -355,7 +563,7 @@ type Partitions struct { func (x *Partitions) Reset() { *x = Partitions{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -368,7 +576,7 @@ func (x *Partitions) String() string { func (*Partitions) ProtoMessage() {} func (x *Partitions) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -381,7 +589,7 @@ func (x *Partitions) ProtoReflect() protoreflect.Message { // Deprecated: Use Partitions.ProtoReflect.Descriptor instead. func (*Partitions) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{4} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{6} } func (x *Partitions) GetValue() map[string]*LabelValue { @@ -396,13 +604,14 @@ type TimePartition struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value *LabelValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Value *LabelValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Granularity Granularity `protobuf:"varint,2,opt,name=granularity,proto3,enum=flyteidl.core.Granularity" json:"granularity,omitempty"` } func (x *TimePartition) Reset() { *x = TimePartition{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -415,7 +624,7 @@ func (x *TimePartition) String() string { func (*TimePartition) ProtoMessage() {} func (x *TimePartition) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -428,7 +637,7 @@ func (x *TimePartition) ProtoReflect() protoreflect.Message { // Deprecated: Use TimePartition.ProtoReflect.Descriptor instead. func (*TimePartition) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{5} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{7} } func (x *TimePartition) GetValue() *LabelValue { @@ -438,6 +647,13 @@ func (x *TimePartition) GetValue() *LabelValue { return nil } +func (x *TimePartition) GetGranularity() Granularity { + if x != nil { + return x.Granularity + } + return Granularity_UNSET +} + type ArtifactID struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -455,7 +671,7 @@ type ArtifactID struct { func (x *ArtifactID) Reset() { *x = ArtifactID{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -468,7 +684,7 @@ func (x *ArtifactID) String() string { func (*ArtifactID) ProtoMessage() {} func (x *ArtifactID) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -481,7 +697,7 @@ func (x *ArtifactID) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactID.ProtoReflect.Descriptor instead. func (*ArtifactID) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{6} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{8} } func (x *ArtifactID) GetArtifactKey() *ArtifactKey { @@ -524,7 +740,7 @@ type ArtifactTag struct { func (x *ArtifactTag) Reset() { *x = ArtifactTag{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -537,7 +753,7 @@ func (x *ArtifactTag) String() string { func (*ArtifactTag) ProtoMessage() {} func (x *ArtifactTag) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -550,7 +766,7 @@ func (x *ArtifactTag) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactTag.ProtoReflect.Descriptor instead. func (*ArtifactTag) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{7} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{9} } func (x *ArtifactTag) GetArtifactKey() *ArtifactKey { @@ -590,7 +806,7 @@ type ArtifactQuery struct { func (x *ArtifactQuery) Reset() { *x = ArtifactQuery{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -603,7 +819,7 @@ func (x *ArtifactQuery) String() string { func (*ArtifactQuery) ProtoMessage() {} func (x *ArtifactQuery) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -616,7 +832,7 @@ func (x *ArtifactQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactQuery.ProtoReflect.Descriptor instead. func (*ArtifactQuery) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{8} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{10} } func (m *ArtifactQuery) GetIdentifier() isArtifactQuery_Identifier { @@ -700,101 +916,125 @@ var file_flyteidl_core_artifact_id_proto_rawDesc = []byte{ 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x41, 0x72, 0x74, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xd0, 0x01, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x16, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x6e, 0x64, 0x54, - 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x10, 0x0a, 0x0e, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x24, - 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x76, 0x61, 0x72, 0x22, 0x92, 0x02, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, - 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x0a, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x53, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 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, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x0d, 0x54, 0x69, 0x6d, - 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x0a, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, - 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, - 0x61, 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, - 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x49, 0x44, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, - 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x6e, 0x64, 0x54, + 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, + 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x05, 0x22, 0x56, 0x0a, 0x0d, 0x54, + 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x27, 0x0a, 0x02, 0x6f, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x02, 0x6f, 0x70, 0x22, 0x24, 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x72, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xdc, 0x02, 0x0a, 0x0a, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x3b, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, + 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 0x11, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x46, 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, + 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x0a, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x53, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 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, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7e, 0x0a, 0x0d, 0x54, 0x69, + 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, + 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x67, + 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x22, 0xe5, 0x01, 0x0a, 0x0a, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, + 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x61, + 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, + 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, - 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0f, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 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, + 0x74, 0x49, 0x44, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x61, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x2a, 0x42, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4f, + 0x55, 0x52, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x41, 0x59, 0x10, 0x03, 0x12, 0x09, 0x0a, + 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x04, 0x2a, 0x1f, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x49, 0x4e, 0x55, 0x53, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x50, 0x4c, 0x55, 0x53, 0x10, 0x01, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, + 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, + 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 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 ( @@ -809,40 +1049,49 @@ func file_flyteidl_core_artifact_id_proto_rawDescGZIP() []byte { return file_flyteidl_core_artifact_id_proto_rawDescData } -var file_flyteidl_core_artifact_id_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_flyteidl_core_artifact_id_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_flyteidl_core_artifact_id_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_flyteidl_core_artifact_id_proto_goTypes = []interface{}{ - (*ArtifactKey)(nil), // 0: flyteidl.core.ArtifactKey - (*ArtifactBindingData)(nil), // 1: flyteidl.core.ArtifactBindingData - (*InputBindingData)(nil), // 2: flyteidl.core.InputBindingData - (*LabelValue)(nil), // 3: flyteidl.core.LabelValue - (*Partitions)(nil), // 4: flyteidl.core.Partitions - (*TimePartition)(nil), // 5: flyteidl.core.TimePartition - (*ArtifactID)(nil), // 6: flyteidl.core.ArtifactID - (*ArtifactTag)(nil), // 7: flyteidl.core.ArtifactTag - (*ArtifactQuery)(nil), // 8: flyteidl.core.ArtifactQuery - nil, // 9: flyteidl.core.Partitions.ValueEntry - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (Granularity)(0), // 0: flyteidl.core.Granularity + (Operator)(0), // 1: flyteidl.core.Operator + (*ArtifactKey)(nil), // 2: flyteidl.core.ArtifactKey + (*ArtifactBindingData)(nil), // 3: flyteidl.core.ArtifactBindingData + (*TimeTransform)(nil), // 4: flyteidl.core.TimeTransform + (*InputBindingData)(nil), // 5: flyteidl.core.InputBindingData + (*RuntimeBinding)(nil), // 6: flyteidl.core.RuntimeBinding + (*LabelValue)(nil), // 7: flyteidl.core.LabelValue + (*Partitions)(nil), // 8: flyteidl.core.Partitions + (*TimePartition)(nil), // 9: flyteidl.core.TimePartition + (*ArtifactID)(nil), // 10: flyteidl.core.ArtifactID + (*ArtifactTag)(nil), // 11: flyteidl.core.ArtifactTag + (*ArtifactQuery)(nil), // 12: flyteidl.core.ArtifactQuery + nil, // 13: flyteidl.core.Partitions.ValueEntry + (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp } var file_flyteidl_core_artifact_id_proto_depIdxs = []int32{ - 10, // 0: flyteidl.core.LabelValue.time_value:type_name -> google.protobuf.Timestamp - 1, // 1: flyteidl.core.LabelValue.triggered_binding:type_name -> flyteidl.core.ArtifactBindingData - 2, // 2: flyteidl.core.LabelValue.input_binding:type_name -> flyteidl.core.InputBindingData - 9, // 3: flyteidl.core.Partitions.value:type_name -> flyteidl.core.Partitions.ValueEntry - 3, // 4: flyteidl.core.TimePartition.value:type_name -> flyteidl.core.LabelValue - 0, // 5: flyteidl.core.ArtifactID.artifact_key:type_name -> flyteidl.core.ArtifactKey - 4, // 6: flyteidl.core.ArtifactID.partitions:type_name -> flyteidl.core.Partitions - 5, // 7: flyteidl.core.ArtifactID.time_partition:type_name -> flyteidl.core.TimePartition - 0, // 8: flyteidl.core.ArtifactTag.artifact_key:type_name -> flyteidl.core.ArtifactKey - 3, // 9: flyteidl.core.ArtifactTag.value:type_name -> flyteidl.core.LabelValue - 6, // 10: flyteidl.core.ArtifactQuery.artifact_id:type_name -> flyteidl.core.ArtifactID - 7, // 11: flyteidl.core.ArtifactQuery.artifact_tag:type_name -> flyteidl.core.ArtifactTag - 1, // 12: flyteidl.core.ArtifactQuery.binding:type_name -> flyteidl.core.ArtifactBindingData - 3, // 13: flyteidl.core.Partitions.ValueEntry.value:type_name -> flyteidl.core.LabelValue - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 4, // 0: flyteidl.core.ArtifactBindingData.time_transform:type_name -> flyteidl.core.TimeTransform + 1, // 1: flyteidl.core.TimeTransform.op:type_name -> flyteidl.core.Operator + 14, // 2: flyteidl.core.LabelValue.time_value:type_name -> google.protobuf.Timestamp + 3, // 3: flyteidl.core.LabelValue.triggered_binding:type_name -> flyteidl.core.ArtifactBindingData + 5, // 4: flyteidl.core.LabelValue.input_binding:type_name -> flyteidl.core.InputBindingData + 6, // 5: flyteidl.core.LabelValue.runtime_binding:type_name -> flyteidl.core.RuntimeBinding + 13, // 6: flyteidl.core.Partitions.value:type_name -> flyteidl.core.Partitions.ValueEntry + 7, // 7: flyteidl.core.TimePartition.value:type_name -> flyteidl.core.LabelValue + 0, // 8: flyteidl.core.TimePartition.granularity:type_name -> flyteidl.core.Granularity + 2, // 9: flyteidl.core.ArtifactID.artifact_key:type_name -> flyteidl.core.ArtifactKey + 8, // 10: flyteidl.core.ArtifactID.partitions:type_name -> flyteidl.core.Partitions + 9, // 11: flyteidl.core.ArtifactID.time_partition:type_name -> flyteidl.core.TimePartition + 2, // 12: flyteidl.core.ArtifactTag.artifact_key:type_name -> flyteidl.core.ArtifactKey + 7, // 13: flyteidl.core.ArtifactTag.value:type_name -> flyteidl.core.LabelValue + 10, // 14: flyteidl.core.ArtifactQuery.artifact_id:type_name -> flyteidl.core.ArtifactID + 11, // 15: flyteidl.core.ArtifactQuery.artifact_tag:type_name -> flyteidl.core.ArtifactTag + 3, // 16: flyteidl.core.ArtifactQuery.binding:type_name -> flyteidl.core.ArtifactBindingData + 7, // 17: flyteidl.core.Partitions.ValueEntry.value:type_name -> flyteidl.core.LabelValue + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_flyteidl_core_artifact_id_proto_init() } @@ -877,7 +1126,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InputBindingData); i { + switch v := v.(*TimeTransform); i { case 0: return &v.state case 1: @@ -889,7 +1138,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelValue); i { + switch v := v.(*InputBindingData); i { case 0: return &v.state case 1: @@ -901,7 +1150,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Partitions); i { + switch v := v.(*RuntimeBinding); i { case 0: return &v.state case 1: @@ -913,7 +1162,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TimePartition); i { + switch v := v.(*LabelValue); i { case 0: return &v.state case 1: @@ -925,7 +1174,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactID); i { + switch v := v.(*Partitions); i { case 0: return &v.state case 1: @@ -937,7 +1186,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactTag); i { + switch v := v.(*TimePartition); i { case 0: return &v.state case 1: @@ -949,6 +1198,30 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_core_artifact_id_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactTag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_core_artifact_id_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtifactQuery); i { case 0: return &v.state @@ -965,13 +1238,14 @@ func file_flyteidl_core_artifact_id_proto_init() { (*ArtifactBindingData_PartitionKey)(nil), (*ArtifactBindingData_BindToTimePartition)(nil), } - file_flyteidl_core_artifact_id_proto_msgTypes[3].OneofWrappers = []interface{}{ + file_flyteidl_core_artifact_id_proto_msgTypes[5].OneofWrappers = []interface{}{ (*LabelValue_StaticValue)(nil), (*LabelValue_TimeValue)(nil), (*LabelValue_TriggeredBinding)(nil), (*LabelValue_InputBinding)(nil), + (*LabelValue_RuntimeBinding)(nil), } - file_flyteidl_core_artifact_id_proto_msgTypes[8].OneofWrappers = []interface{}{ + file_flyteidl_core_artifact_id_proto_msgTypes[10].OneofWrappers = []interface{}{ (*ArtifactQuery_ArtifactId)(nil), (*ArtifactQuery_ArtifactTag)(nil), (*ArtifactQuery_Uri)(nil), @@ -982,13 +1256,14 @@ func file_flyteidl_core_artifact_id_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flyteidl_core_artifact_id_proto_rawDesc, - NumEnums: 0, - NumMessages: 10, + NumEnums: 2, + NumMessages: 12, NumExtensions: 0, NumServices: 0, }, GoTypes: file_flyteidl_core_artifact_id_proto_goTypes, DependencyIndexes: file_flyteidl_core_artifact_id_proto_depIdxs, + EnumInfos: file_flyteidl_core_artifact_id_proto_enumTypes, MessageInfos: file_flyteidl_core_artifact_id_proto_msgTypes, }.Build() File_flyteidl_core_artifact_id_proto = out.File 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 191143dd89..7b9045cbe3 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -4197,20 +4197,6 @@ ], "default": "SINGLE" }, - "ComparisonExpressionOperator": { - "type": "string", - "enum": [ - "EQ", - "NEQ", - "GT", - "GTE", - "LT", - "LTE" - ], - "default": "EQ", - "description": "- GT: Greater Than\n - LT: Less Than", - "title": "Binary Operator for each expression" - }, "ConjunctionExpressionLogicalOperator": { "type": "string", "enum": [ @@ -6481,8 +6467,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -6750,7 +6736,7 @@ "type": "object", "properties": { "operator": { - "$ref": "#/definitions/ComparisonExpressionOperator" + "$ref": "#/definitions/coreComparisonExpressionOperator" }, "left_value": { "$ref": "#/definitions/coreOperand" @@ -6761,6 +6747,20 @@ }, "description": "Defines a 2-level tree where the root is a comparison operator and Operands are primitives or known variables.\nEach expression results in a boolean result." }, + "coreComparisonExpressionOperator": { + "type": "string", + "enum": [ + "EQ", + "NEQ", + "GT", + "GTE", + "LT", + "LTE" + ], + "default": "EQ", + "description": "- GT: Greater Than\n - LT: Less Than", + "title": "Binary Operator for each expression" + }, "coreCompiledLaunchPlan": { "type": "object", "properties": { @@ -7038,6 +7038,18 @@ }, "description": "GateNode refers to the condition that is required for the gate to successfully complete." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -7205,6 +7217,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -7688,6 +7703,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -8145,6 +8163,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -8838,6 +8870,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { 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 ff115cad21..2680d36bda 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json @@ -843,8 +843,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -1093,6 +1093,18 @@ }, "description": "Metadata associated with the GPU accelerator to allocate to a task. Contains\ninformation about device type, and for multi-instance GPUs, the partition size to\nuse." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -1222,6 +1234,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -1472,6 +1487,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -1847,6 +1865,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -2071,6 +2103,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { 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 eda2434bcd..cebc48b75b 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 @@ -173,8 +173,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -409,6 +409,18 @@ }, "description": "Metadata associated with the GPU accelerator to allocate to a task. Contains\ninformation about device type, and for multi-instance GPUs, the partition size to\nuse." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -538,6 +550,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -776,6 +791,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -1084,6 +1102,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -1217,6 +1249,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index c876340a61..5cc6b36eeb 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -84,8 +84,8 @@ export namespace flyteidl { /** ArtifactBindingData bindToTimePartition */ bindToTimePartition?: (boolean|null); - /** ArtifactBindingData transform */ - transform?: (string|null); + /** ArtifactBindingData timeTransform */ + timeTransform?: (flyteidl.core.ITimeTransform|null); } /** Represents an ArtifactBindingData. */ @@ -103,8 +103,8 @@ export namespace flyteidl { /** ArtifactBindingData bindToTimePartition. */ public bindToTimePartition: boolean; - /** ArtifactBindingData transform. */ - public transform: string; + /** ArtifactBindingData timeTransform. */ + public timeTransform?: (flyteidl.core.ITimeTransform|null); /** ArtifactBindingData partitionData. */ public partitionData?: ("partitionKey"|"bindToTimePartition"); @@ -142,6 +142,79 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Granularity enum. */ + enum Granularity { + UNSET = 0, + MINUTE = 1, + HOUR = 2, + DAY = 3, + MONTH = 4 + } + + /** Operator enum. */ + enum Operator { + MINUS = 0, + PLUS = 1 + } + + /** Properties of a TimeTransform. */ + interface ITimeTransform { + + /** TimeTransform transform */ + transform?: (string|null); + + /** TimeTransform op */ + op?: (flyteidl.core.Operator|null); + } + + /** Represents a TimeTransform. */ + class TimeTransform implements ITimeTransform { + + /** + * Constructs a new TimeTransform. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.core.ITimeTransform); + + /** TimeTransform transform. */ + public transform: string; + + /** TimeTransform op. */ + public op: flyteidl.core.Operator; + + /** + * Creates a new TimeTransform instance using the specified properties. + * @param [properties] Properties to set + * @returns TimeTransform instance + */ + public static create(properties?: flyteidl.core.ITimeTransform): flyteidl.core.TimeTransform; + + /** + * Encodes the specified TimeTransform message. Does not implicitly {@link flyteidl.core.TimeTransform.verify|verify} messages. + * @param message TimeTransform message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.core.ITimeTransform, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TimeTransform message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TimeTransform + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.core.TimeTransform; + + /** + * Verifies a TimeTransform message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of an InputBindingData. */ interface IInputBindingData { @@ -194,6 +267,52 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a RuntimeBinding. */ + interface IRuntimeBinding { + } + + /** Represents a RuntimeBinding. */ + class RuntimeBinding implements IRuntimeBinding { + + /** + * Constructs a new RuntimeBinding. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.core.IRuntimeBinding); + + /** + * Creates a new RuntimeBinding instance using the specified properties. + * @param [properties] Properties to set + * @returns RuntimeBinding instance + */ + public static create(properties?: flyteidl.core.IRuntimeBinding): flyteidl.core.RuntimeBinding; + + /** + * Encodes the specified RuntimeBinding message. Does not implicitly {@link flyteidl.core.RuntimeBinding.verify|verify} messages. + * @param message RuntimeBinding message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.core.IRuntimeBinding, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RuntimeBinding message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RuntimeBinding + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.core.RuntimeBinding; + + /** + * Verifies a RuntimeBinding message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of a LabelValue. */ interface ILabelValue { @@ -208,6 +327,9 @@ export namespace flyteidl { /** LabelValue inputBinding */ inputBinding?: (flyteidl.core.IInputBindingData|null); + + /** LabelValue runtimeBinding */ + runtimeBinding?: (flyteidl.core.IRuntimeBinding|null); } /** Represents a LabelValue. */ @@ -231,8 +353,11 @@ export namespace flyteidl { /** LabelValue inputBinding. */ public inputBinding?: (flyteidl.core.IInputBindingData|null); + /** LabelValue runtimeBinding. */ + public runtimeBinding?: (flyteidl.core.IRuntimeBinding|null); + /** LabelValue value. */ - public value?: ("staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"); + public value?: ("staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"|"runtimeBinding"); /** * Creates a new LabelValue instance using the specified properties. @@ -324,6 +449,9 @@ export namespace flyteidl { /** TimePartition value */ value?: (flyteidl.core.ILabelValue|null); + + /** TimePartition granularity */ + granularity?: (flyteidl.core.Granularity|null); } /** Represents a TimePartition. */ @@ -338,6 +466,9 @@ export namespace flyteidl { /** TimePartition value. */ public value?: (flyteidl.core.ILabelValue|null); + /** TimePartition granularity. */ + public granularity: flyteidl.core.Granularity; + /** * Creates a new TimePartition 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 161d05475b..3400b971b3 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -203,7 +203,7 @@ * @interface IArtifactBindingData * @property {string|null} [partitionKey] ArtifactBindingData partitionKey * @property {boolean|null} [bindToTimePartition] ArtifactBindingData bindToTimePartition - * @property {string|null} [transform] ArtifactBindingData transform + * @property {flyteidl.core.ITimeTransform|null} [timeTransform] ArtifactBindingData timeTransform */ /** @@ -238,12 +238,12 @@ ArtifactBindingData.prototype.bindToTimePartition = false; /** - * ArtifactBindingData transform. - * @member {string} transform + * ArtifactBindingData timeTransform. + * @member {flyteidl.core.ITimeTransform|null|undefined} timeTransform * @memberof flyteidl.core.ArtifactBindingData * @instance */ - ArtifactBindingData.prototype.transform = ""; + ArtifactBindingData.prototype.timeTransform = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -284,11 +284,11 @@ if (!writer) writer = $Writer.create(); if (message.partitionKey != null && message.hasOwnProperty("partitionKey")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.partitionKey); + writer.uint32(/* id 5, wireType 2 =*/42).string(message.partitionKey); if (message.bindToTimePartition != null && message.hasOwnProperty("bindToTimePartition")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.bindToTimePartition); - if (message.transform != null && message.hasOwnProperty("transform")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.transform); + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.bindToTimePartition); + if (message.timeTransform != null && message.hasOwnProperty("timeTransform")) + $root.flyteidl.core.TimeTransform.encode(message.timeTransform, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; @@ -310,14 +310,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: + case 5: message.partitionKey = reader.string(); break; - case 3: + case 6: message.bindToTimePartition = reader.bool(); break; - case 4: - message.transform = reader.string(); + case 7: + message.timeTransform = $root.flyteidl.core.TimeTransform.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -351,13 +351,181 @@ if (typeof message.bindToTimePartition !== "boolean") return "bindToTimePartition: boolean expected"; } + if (message.timeTransform != null && message.hasOwnProperty("timeTransform")) { + var error = $root.flyteidl.core.TimeTransform.verify(message.timeTransform); + if (error) + return "timeTransform." + error; + } + return null; + }; + + return ArtifactBindingData; + })(); + + /** + * Granularity enum. + * @name flyteidl.core.Granularity + * @enum {string} + * @property {number} UNSET=0 UNSET value + * @property {number} MINUTE=1 MINUTE value + * @property {number} HOUR=2 HOUR value + * @property {number} DAY=3 DAY value + * @property {number} MONTH=4 MONTH value + */ + core.Granularity = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "UNSET"] = 0; + values[valuesById[1] = "MINUTE"] = 1; + values[valuesById[2] = "HOUR"] = 2; + values[valuesById[3] = "DAY"] = 3; + values[valuesById[4] = "MONTH"] = 4; + return values; + })(); + + /** + * Operator enum. + * @name flyteidl.core.Operator + * @enum {string} + * @property {number} MINUS=0 MINUS value + * @property {number} PLUS=1 PLUS value + */ + core.Operator = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MINUS"] = 0; + values[valuesById[1] = "PLUS"] = 1; + return values; + })(); + + core.TimeTransform = (function() { + + /** + * Properties of a TimeTransform. + * @memberof flyteidl.core + * @interface ITimeTransform + * @property {string|null} [transform] TimeTransform transform + * @property {flyteidl.core.Operator|null} [op] TimeTransform op + */ + + /** + * Constructs a new TimeTransform. + * @memberof flyteidl.core + * @classdesc Represents a TimeTransform. + * @implements ITimeTransform + * @constructor + * @param {flyteidl.core.ITimeTransform=} [properties] Properties to set + */ + function TimeTransform(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TimeTransform transform. + * @member {string} transform + * @memberof flyteidl.core.TimeTransform + * @instance + */ + TimeTransform.prototype.transform = ""; + + /** + * TimeTransform op. + * @member {flyteidl.core.Operator} op + * @memberof flyteidl.core.TimeTransform + * @instance + */ + TimeTransform.prototype.op = 0; + + /** + * Creates a new TimeTransform instance using the specified properties. + * @function create + * @memberof flyteidl.core.TimeTransform + * @static + * @param {flyteidl.core.ITimeTransform=} [properties] Properties to set + * @returns {flyteidl.core.TimeTransform} TimeTransform instance + */ + TimeTransform.create = function create(properties) { + return new TimeTransform(properties); + }; + + /** + * Encodes the specified TimeTransform message. Does not implicitly {@link flyteidl.core.TimeTransform.verify|verify} messages. + * @function encode + * @memberof flyteidl.core.TimeTransform + * @static + * @param {flyteidl.core.ITimeTransform} message TimeTransform message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TimeTransform.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.transform != null && message.hasOwnProperty("transform")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.transform); + if (message.op != null && message.hasOwnProperty("op")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.op); + return writer; + }; + + /** + * Decodes a TimeTransform message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.core.TimeTransform + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.core.TimeTransform} TimeTransform + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TimeTransform.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.core.TimeTransform(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.transform = reader.string(); + break; + case 2: + message.op = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a TimeTransform message. + * @function verify + * @memberof flyteidl.core.TimeTransform + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TimeTransform.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; if (message.transform != null && message.hasOwnProperty("transform")) if (!$util.isString(message.transform)) return "transform: string expected"; + if (message.op != null && message.hasOwnProperty("op")) + switch (message.op) { + default: + return "op: enum value expected"; + case 0: + case 1: + break; + } return null; }; - return ArtifactBindingData; + return TimeTransform; })(); core.InputBindingData = (function() { @@ -470,6 +638,99 @@ return InputBindingData; })(); + core.RuntimeBinding = (function() { + + /** + * Properties of a RuntimeBinding. + * @memberof flyteidl.core + * @interface IRuntimeBinding + */ + + /** + * Constructs a new RuntimeBinding. + * @memberof flyteidl.core + * @classdesc Represents a RuntimeBinding. + * @implements IRuntimeBinding + * @constructor + * @param {flyteidl.core.IRuntimeBinding=} [properties] Properties to set + */ + function RuntimeBinding(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new RuntimeBinding instance using the specified properties. + * @function create + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {flyteidl.core.IRuntimeBinding=} [properties] Properties to set + * @returns {flyteidl.core.RuntimeBinding} RuntimeBinding instance + */ + RuntimeBinding.create = function create(properties) { + return new RuntimeBinding(properties); + }; + + /** + * Encodes the specified RuntimeBinding message. Does not implicitly {@link flyteidl.core.RuntimeBinding.verify|verify} messages. + * @function encode + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {flyteidl.core.IRuntimeBinding} message RuntimeBinding message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RuntimeBinding.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Decodes a RuntimeBinding message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.core.RuntimeBinding} RuntimeBinding + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RuntimeBinding.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.core.RuntimeBinding(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a RuntimeBinding message. + * @function verify + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RuntimeBinding.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + return RuntimeBinding; + })(); + core.LabelValue = (function() { /** @@ -480,6 +741,7 @@ * @property {google.protobuf.ITimestamp|null} [timeValue] LabelValue timeValue * @property {flyteidl.core.IArtifactBindingData|null} [triggeredBinding] LabelValue triggeredBinding * @property {flyteidl.core.IInputBindingData|null} [inputBinding] LabelValue inputBinding + * @property {flyteidl.core.IRuntimeBinding|null} [runtimeBinding] LabelValue runtimeBinding */ /** @@ -529,17 +791,25 @@ */ LabelValue.prototype.inputBinding = null; + /** + * LabelValue runtimeBinding. + * @member {flyteidl.core.IRuntimeBinding|null|undefined} runtimeBinding + * @memberof flyteidl.core.LabelValue + * @instance + */ + LabelValue.prototype.runtimeBinding = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; /** * LabelValue value. - * @member {"staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"|undefined} value + * @member {"staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"|"runtimeBinding"|undefined} value * @memberof flyteidl.core.LabelValue * @instance */ Object.defineProperty(LabelValue.prototype, "value", { - get: $util.oneOfGetter($oneOfFields = ["staticValue", "timeValue", "triggeredBinding", "inputBinding"]), + get: $util.oneOfGetter($oneOfFields = ["staticValue", "timeValue", "triggeredBinding", "inputBinding", "runtimeBinding"]), set: $util.oneOfSetter($oneOfFields) }); @@ -575,6 +845,8 @@ $root.flyteidl.core.ArtifactBindingData.encode(message.triggeredBinding, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.inputBinding != null && message.hasOwnProperty("inputBinding")) $root.flyteidl.core.InputBindingData.encode(message.inputBinding, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.runtimeBinding != null && message.hasOwnProperty("runtimeBinding")) + $root.flyteidl.core.RuntimeBinding.encode(message.runtimeBinding, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; @@ -608,6 +880,9 @@ case 4: message.inputBinding = $root.flyteidl.core.InputBindingData.decode(reader, reader.uint32()); break; + case 5: + message.runtimeBinding = $root.flyteidl.core.RuntimeBinding.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -663,6 +938,16 @@ return "inputBinding." + error; } } + if (message.runtimeBinding != null && message.hasOwnProperty("runtimeBinding")) { + if (properties.value === 1) + return "value: multiple values"; + properties.value = 1; + { + var error = $root.flyteidl.core.RuntimeBinding.verify(message.runtimeBinding); + if (error) + return "runtimeBinding." + error; + } + } return null; }; @@ -802,6 +1087,7 @@ * @memberof flyteidl.core * @interface ITimePartition * @property {flyteidl.core.ILabelValue|null} [value] TimePartition value + * @property {flyteidl.core.Granularity|null} [granularity] TimePartition granularity */ /** @@ -827,6 +1113,14 @@ */ TimePartition.prototype.value = null; + /** + * TimePartition granularity. + * @member {flyteidl.core.Granularity} granularity + * @memberof flyteidl.core.TimePartition + * @instance + */ + TimePartition.prototype.granularity = 0; + /** * Creates a new TimePartition instance using the specified properties. * @function create @@ -853,6 +1147,8 @@ writer = $Writer.create(); if (message.value != null && message.hasOwnProperty("value")) $root.flyteidl.core.LabelValue.encode(message.value, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.granularity != null && message.hasOwnProperty("granularity")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.granularity); return writer; }; @@ -877,6 +1173,9 @@ case 1: message.value = $root.flyteidl.core.LabelValue.decode(reader, reader.uint32()); break; + case 2: + message.granularity = reader.int32(); + break; default: reader.skipType(tag & 7); break; @@ -901,6 +1200,17 @@ if (error) return "value." + error; } + if (message.granularity != null && message.hasOwnProperty("granularity")) + switch (message.granularity) { + default: + return "granularity: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py index cffe1484c7..a0cde0f864 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py @@ -15,7 +15,7 @@ from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/core/artifact_id.proto\x12\rflyteidl.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"e\n\x0b\x41rtifactKey\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"\xa3\x01\n\x13\x41rtifactBindingData\x12%\n\rpartition_key\x18\x02 \x01(\tH\x00R\x0cpartitionKey\x12\x35\n\x16\x62ind_to_time_partition\x18\x03 \x01(\x08H\x00R\x13\x62indToTimePartition\x12\x1c\n\ttransform\x18\x04 \x01(\tR\ttransformB\x10\n\x0epartition_data\"$\n\x10InputBindingData\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\"\x92\x02\n\nLabelValue\x12#\n\x0cstatic_value\x18\x01 \x01(\tH\x00R\x0bstaticValue\x12;\n\ntime_value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ttimeValue\x12Q\n\x11triggered_binding\x18\x03 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x10triggeredBinding\x12\x46\n\rinput_binding\x18\x04 \x01(\x0b\x32\x1f.flyteidl.core.InputBindingDataH\x00R\x0cinputBindingB\x07\n\x05value\"\x9d\x01\n\nPartitions\x12:\n\x05value\x18\x01 \x03(\x0b\x32$.flyteidl.core.Partitions.ValueEntryR\x05value\x1aS\n\nValueEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value:\x02\x38\x01\"@\n\rTimePartition\x12/\n\x05value\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xe5\x01\n\nArtifactID\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x39\n\npartitions\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.PartitionsR\npartitions\x12\x43\n\x0etime_partition\x18\x04 \x01(\x0b\x32\x1c.flyteidl.core.TimePartitionR\rtimePartition\"}\n\x0b\x41rtifactTag\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xf0\x01\n\rArtifactQuery\x12<\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDH\x00R\nartifactId\x12?\n\x0c\x61rtifact_tag\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactTagH\x00R\x0b\x61rtifactTag\x12\x12\n\x03uri\x18\x03 \x01(\tH\x00R\x03uri\x12>\n\x07\x62inding\x18\x04 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x07\x62indingB\x0c\n\nidentifierB\xb5\x01\n\x11\x63om.flyteidl.coreB\x0f\x41rtifactIdProtoP\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\x1f\x66lyteidl/core/artifact_id.proto\x12\rflyteidl.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"e\n\x0b\x41rtifactKey\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"\xd0\x01\n\x13\x41rtifactBindingData\x12%\n\rpartition_key\x18\x05 \x01(\tH\x00R\x0cpartitionKey\x12\x35\n\x16\x62ind_to_time_partition\x18\x06 \x01(\x08H\x00R\x13\x62indToTimePartition\x12\x43\n\x0etime_transform\x18\x07 \x01(\x0b\x32\x1c.flyteidl.core.TimeTransformR\rtimeTransformB\x10\n\x0epartition_dataJ\x04\x08\x01\x10\x05\"V\n\rTimeTransform\x12\x1c\n\ttransform\x18\x01 \x01(\tR\ttransform\x12\'\n\x02op\x18\x02 \x01(\x0e\x32\x17.flyteidl.core.OperatorR\x02op\"$\n\x10InputBindingData\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\"\x10\n\x0eRuntimeBinding\"\xdc\x02\n\nLabelValue\x12#\n\x0cstatic_value\x18\x01 \x01(\tH\x00R\x0bstaticValue\x12;\n\ntime_value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ttimeValue\x12Q\n\x11triggered_binding\x18\x03 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x10triggeredBinding\x12\x46\n\rinput_binding\x18\x04 \x01(\x0b\x32\x1f.flyteidl.core.InputBindingDataH\x00R\x0cinputBinding\x12H\n\x0fruntime_binding\x18\x05 \x01(\x0b\x32\x1d.flyteidl.core.RuntimeBindingH\x00R\x0eruntimeBindingB\x07\n\x05value\"\x9d\x01\n\nPartitions\x12:\n\x05value\x18\x01 \x03(\x0b\x32$.flyteidl.core.Partitions.ValueEntryR\x05value\x1aS\n\nValueEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value:\x02\x38\x01\"~\n\rTimePartition\x12/\n\x05value\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\x12<\n\x0bgranularity\x18\x02 \x01(\x0e\x32\x1a.flyteidl.core.GranularityR\x0bgranularity\"\xe5\x01\n\nArtifactID\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x39\n\npartitions\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.PartitionsR\npartitions\x12\x43\n\x0etime_partition\x18\x04 \x01(\x0b\x32\x1c.flyteidl.core.TimePartitionR\rtimePartition\"}\n\x0b\x41rtifactTag\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xf0\x01\n\rArtifactQuery\x12<\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDH\x00R\nartifactId\x12?\n\x0c\x61rtifact_tag\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactTagH\x00R\x0b\x61rtifactTag\x12\x12\n\x03uri\x18\x03 \x01(\tH\x00R\x03uri\x12>\n\x07\x62inding\x18\x04 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x07\x62indingB\x0c\n\nidentifier*B\n\x0bGranularity\x12\t\n\x05UNSET\x10\x00\x12\n\n\x06MINUTE\x10\x01\x12\x08\n\x04HOUR\x10\x02\x12\x07\n\x03\x44\x41Y\x10\x03\x12\t\n\x05MONTH\x10\x04*\x1f\n\x08Operator\x12\t\n\x05MINUS\x10\x00\x12\x08\n\x04PLUS\x10\x01\x42\xb5\x01\n\x11\x63om.flyteidl.coreB\x0f\x41rtifactIdProtoP\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) @@ -26,24 +26,32 @@ DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\017ArtifactIdProtoP\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' _PARTITIONS_VALUEENTRY._options = None _PARTITIONS_VALUEENTRY._serialized_options = b'8\001' + _globals['_GRANULARITY']._serialized_start=1814 + _globals['_GRANULARITY']._serialized_end=1880 + _globals['_OPERATOR']._serialized_start=1882 + _globals['_OPERATOR']._serialized_end=1913 _globals['_ARTIFACTKEY']._serialized_start=115 _globals['_ARTIFACTKEY']._serialized_end=216 _globals['_ARTIFACTBINDINGDATA']._serialized_start=219 - _globals['_ARTIFACTBINDINGDATA']._serialized_end=382 - _globals['_INPUTBINDINGDATA']._serialized_start=384 - _globals['_INPUTBINDINGDATA']._serialized_end=420 - _globals['_LABELVALUE']._serialized_start=423 - _globals['_LABELVALUE']._serialized_end=697 - _globals['_PARTITIONS']._serialized_start=700 - _globals['_PARTITIONS']._serialized_end=857 - _globals['_PARTITIONS_VALUEENTRY']._serialized_start=774 - _globals['_PARTITIONS_VALUEENTRY']._serialized_end=857 - _globals['_TIMEPARTITION']._serialized_start=859 - _globals['_TIMEPARTITION']._serialized_end=923 - _globals['_ARTIFACTID']._serialized_start=926 - _globals['_ARTIFACTID']._serialized_end=1155 - _globals['_ARTIFACTTAG']._serialized_start=1157 - _globals['_ARTIFACTTAG']._serialized_end=1282 - _globals['_ARTIFACTQUERY']._serialized_start=1285 - _globals['_ARTIFACTQUERY']._serialized_end=1525 + _globals['_ARTIFACTBINDINGDATA']._serialized_end=427 + _globals['_TIMETRANSFORM']._serialized_start=429 + _globals['_TIMETRANSFORM']._serialized_end=515 + _globals['_INPUTBINDINGDATA']._serialized_start=517 + _globals['_INPUTBINDINGDATA']._serialized_end=553 + _globals['_RUNTIMEBINDING']._serialized_start=555 + _globals['_RUNTIMEBINDING']._serialized_end=571 + _globals['_LABELVALUE']._serialized_start=574 + _globals['_LABELVALUE']._serialized_end=922 + _globals['_PARTITIONS']._serialized_start=925 + _globals['_PARTITIONS']._serialized_end=1082 + _globals['_PARTITIONS_VALUEENTRY']._serialized_start=999 + _globals['_PARTITIONS_VALUEENTRY']._serialized_end=1082 + _globals['_TIMEPARTITION']._serialized_start=1084 + _globals['_TIMEPARTITION']._serialized_end=1210 + _globals['_ARTIFACTID']._serialized_start=1213 + _globals['_ARTIFACTID']._serialized_end=1442 + _globals['_ARTIFACTTAG']._serialized_start=1444 + _globals['_ARTIFACTTAG']._serialized_end=1569 + _globals['_ARTIFACTQUERY']._serialized_start=1572 + _globals['_ARTIFACTQUERY']._serialized_end=1812 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi index e1e688c8e4..c8e5a61a4a 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi @@ -1,12 +1,33 @@ from google.protobuf import timestamp_pb2 as _timestamp_pb2 from flyteidl.core import identifier_pb2 as _identifier_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class Granularity(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNSET: _ClassVar[Granularity] + MINUTE: _ClassVar[Granularity] + HOUR: _ClassVar[Granularity] + DAY: _ClassVar[Granularity] + MONTH: _ClassVar[Granularity] + +class Operator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MINUS: _ClassVar[Operator] + PLUS: _ClassVar[Operator] +UNSET: Granularity +MINUTE: Granularity +HOUR: Granularity +DAY: Granularity +MONTH: Granularity +MINUS: Operator +PLUS: Operator + class ArtifactKey(_message.Message): __slots__ = ["project", "domain", "name", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] @@ -20,14 +41,22 @@ class ArtifactKey(_message.Message): def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class ArtifactBindingData(_message.Message): - __slots__ = ["partition_key", "bind_to_time_partition", "transform"] + __slots__ = ["partition_key", "bind_to_time_partition", "time_transform"] PARTITION_KEY_FIELD_NUMBER: _ClassVar[int] BIND_TO_TIME_PARTITION_FIELD_NUMBER: _ClassVar[int] - TRANSFORM_FIELD_NUMBER: _ClassVar[int] + TIME_TRANSFORM_FIELD_NUMBER: _ClassVar[int] partition_key: str bind_to_time_partition: bool + time_transform: TimeTransform + def __init__(self, partition_key: _Optional[str] = ..., bind_to_time_partition: bool = ..., time_transform: _Optional[_Union[TimeTransform, _Mapping]] = ...) -> None: ... + +class TimeTransform(_message.Message): + __slots__ = ["transform", "op"] + TRANSFORM_FIELD_NUMBER: _ClassVar[int] + OP_FIELD_NUMBER: _ClassVar[int] transform: str - def __init__(self, partition_key: _Optional[str] = ..., bind_to_time_partition: bool = ..., transform: _Optional[str] = ...) -> None: ... + op: Operator + def __init__(self, transform: _Optional[str] = ..., op: _Optional[_Union[Operator, str]] = ...) -> None: ... class InputBindingData(_message.Message): __slots__ = ["var"] @@ -35,17 +64,23 @@ class InputBindingData(_message.Message): var: str def __init__(self, var: _Optional[str] = ...) -> None: ... +class RuntimeBinding(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + class LabelValue(_message.Message): - __slots__ = ["static_value", "time_value", "triggered_binding", "input_binding"] + __slots__ = ["static_value", "time_value", "triggered_binding", "input_binding", "runtime_binding"] STATIC_VALUE_FIELD_NUMBER: _ClassVar[int] TIME_VALUE_FIELD_NUMBER: _ClassVar[int] TRIGGERED_BINDING_FIELD_NUMBER: _ClassVar[int] INPUT_BINDING_FIELD_NUMBER: _ClassVar[int] + RUNTIME_BINDING_FIELD_NUMBER: _ClassVar[int] static_value: str time_value: _timestamp_pb2.Timestamp triggered_binding: ArtifactBindingData input_binding: InputBindingData - def __init__(self, static_value: _Optional[str] = ..., time_value: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., triggered_binding: _Optional[_Union[ArtifactBindingData, _Mapping]] = ..., input_binding: _Optional[_Union[InputBindingData, _Mapping]] = ...) -> None: ... + runtime_binding: RuntimeBinding + def __init__(self, static_value: _Optional[str] = ..., time_value: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., triggered_binding: _Optional[_Union[ArtifactBindingData, _Mapping]] = ..., input_binding: _Optional[_Union[InputBindingData, _Mapping]] = ..., runtime_binding: _Optional[_Union[RuntimeBinding, _Mapping]] = ...) -> None: ... class Partitions(_message.Message): __slots__ = ["value"] @@ -61,10 +96,12 @@ class Partitions(_message.Message): def __init__(self, value: _Optional[_Mapping[str, LabelValue]] = ...) -> None: ... class TimePartition(_message.Message): - __slots__ = ["value"] + __slots__ = ["value", "granularity"] VALUE_FIELD_NUMBER: _ClassVar[int] + GRANULARITY_FIELD_NUMBER: _ClassVar[int] value: LabelValue - def __init__(self, value: _Optional[_Union[LabelValue, _Mapping]] = ...) -> None: ... + granularity: Granularity + def __init__(self, value: _Optional[_Union[LabelValue, _Mapping]] = ..., granularity: _Optional[_Union[Granularity, str]] = ...) -> None: ... class ArtifactID(_message.Message): __slots__ = ["artifact_key", "version", "partitions", "time_partition"] diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index 07973186b4..a36add78f2 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -731,10 +731,10 @@ pub struct ArtifactKey { #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArtifactBindingData { /// This is only relevant in the time partition case - #[prost(string, tag="4")] - pub transform: ::prost::alloc::string::String, + #[prost(message, optional, tag="7")] + pub time_transform: ::core::option::Option, /// These two fields are only relevant in the partition value case - #[prost(oneof="artifact_binding_data::PartitionData", tags="2, 3")] + #[prost(oneof="artifact_binding_data::PartitionData", tags="5, 6")] pub partition_data: ::core::option::Option, } /// Nested message and enum types in `ArtifactBindingData`. @@ -743,22 +743,34 @@ pub mod artifact_binding_data { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum PartitionData { - #[prost(string, tag="2")] + #[prost(string, tag="5")] PartitionKey(::prost::alloc::string::String), - #[prost(bool, tag="3")] + #[prost(bool, tag="6")] BindToTimePartition(bool), } } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct TimeTransform { + #[prost(string, tag="1")] + pub transform: ::prost::alloc::string::String, + #[prost(enumeration="Operator", tag="2")] + pub op: i32, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct InputBindingData { #[prost(string, tag="1")] pub var: ::prost::alloc::string::String, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct RuntimeBinding { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct LabelValue { - #[prost(oneof="label_value::Value", tags="1, 2, 3, 4")] + #[prost(oneof="label_value::Value", tags="1, 2, 3, 4, 5")] pub value: ::core::option::Option, } /// Nested message and enum types in `LabelValue`. @@ -776,6 +788,8 @@ pub mod label_value { TriggeredBinding(super::ArtifactBindingData), #[prost(message, tag="4")] InputBinding(super::InputBindingData), + #[prost(message, tag="5")] + RuntimeBinding(super::RuntimeBinding), } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -789,6 +803,8 @@ pub struct Partitions { pub struct TimePartition { #[prost(message, optional, tag="1")] pub value: ::core::option::Option, + #[prost(enumeration="Granularity", tag="2")] + pub granularity: i32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -841,6 +857,68 @@ pub mod artifact_query { Binding(super::ArtifactBindingData), } } +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Granularity { + Unset = 0, + Minute = 1, + Hour = 2, + /// default + Day = 3, + Month = 4, +} +impl Granularity { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Granularity::Unset => "UNSET", + Granularity::Minute => "MINUTE", + Granularity::Hour => "HOUR", + Granularity::Day => "DAY", + Granularity::Month => "MONTH", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "UNSET" => Some(Self::Unset), + "MINUTE" => Some(Self::Minute), + "HOUR" => Some(Self::Hour), + "DAY" => Some(Self::Day), + "MONTH" => Some(Self::Month), + _ => None, + } + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Operator { + Minus = 0, + Plus = 1, +} +impl Operator { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Operator::Minus => "MINUS", + Operator::Plus => "PLUS", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MINUS" => Some(Self::Minus), + "PLUS" => Some(Self::Plus), + _ => None, + } + } +} /// Defines a strongly typed variable. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/flyteidl/protos/flyteidl/core/artifact_id.proto b/flyteidl/protos/flyteidl/core/artifact_id.proto index fe887e336a..022bc20cff 100644 --- a/flyteidl/protos/flyteidl/core/artifact_id.proto +++ b/flyteidl/protos/flyteidl/core/artifact_id.proto @@ -18,20 +18,41 @@ message ArtifactKey { // Only valid for triggers message ArtifactBindingData { + reserved 1 to 4; // These two fields are only relevant in the partition value case oneof partition_data { - string partition_key = 2; - bool bind_to_time_partition = 3; + string partition_key = 5; + bool bind_to_time_partition = 6; } // This is only relevant in the time partition case - string transform = 4; + TimeTransform time_transform = 7; +} + +enum Granularity { + UNSET = 0; + MINUTE = 1; + HOUR = 2; + DAY = 3; // default + MONTH = 4; +} + +enum Operator { + MINUS = 0; + PLUS = 1; +} + +message TimeTransform { + string transform = 1; + Operator op = 2; } message InputBindingData { string var = 1; } +message RuntimeBinding {} + message LabelValue { oneof value { // The string static value is for use in the Partitions object @@ -41,6 +62,7 @@ message LabelValue { google.protobuf.Timestamp time_value = 2; ArtifactBindingData triggered_binding = 3; InputBindingData input_binding = 4; + RuntimeBinding runtime_binding = 5; } } @@ -50,6 +72,7 @@ message Partitions { message TimePartition { LabelValue value = 1; + Granularity granularity = 2; } message ArtifactID {