google-cloud-ai_platform-v1 0.63.0 → 0.64.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0880bff5780dd84f51521225a7472da8d7cb918c3d21c6da0754497853eb4e15'
4
- data.tar.gz: 4d0cedc50d598319d0e6b17e36f44fe473ae7c07429549748cf1a9ebbb6ec2f1
3
+ metadata.gz: 59d39866543de13a2603476ae4ee5e16c48929b62540d4238fc9d8bc5b81fe1e
4
+ data.tar.gz: c28cca2b263460ff30c209963dd5bc0f2ce7f67500df9a6b813bae9fcdf1362a
5
5
  SHA512:
6
- metadata.gz: 1e30c6767063ebe668cc347dcc4b793f6cf2bcee6ee24cf33248ee5493324e21a9e83bfc15b026340951f18e232c0e0822008cd1d886c14b0f1de7adf284a385
7
- data.tar.gz: 9d1e872d896f0de4d012266a40093ab83b121c24e45ca0dcbb4d25d5b453cec766c94c04c2acc39349f1c6857b56716397d27082cc4ba5d46adfe4f80725a1b1
6
+ metadata.gz: 771de137bb940d73e8832729ff14fa013b99ba634068e37250ab23ee3a9c7af985c385da8adc0e7aee6c46a218634ec5158e6573a55ea4f353b3da9f8c4d6c99
7
+ data.tar.gz: 790f0c2859a724dea0f7d613630d9758dae2357a528522855045c2021bf7ec6b74e2d33c811313e5aa009fd3908f1e79c85cbcf4a101eda35096105841ff2192
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module AIPlatform
23
23
  module V1
24
- VERSION = "0.63.0"
24
+ VERSION = "0.64.0"
25
25
  end
26
26
  end
27
27
  end
@@ -6,10 +6,11 @@ require 'google/protobuf'
6
6
 
7
7
  require 'google/api/field_behavior_pb'
8
8
  require 'google/api/resource_pb'
9
+ require 'google/cloud/aiplatform/v1/machine_resources_pb'
9
10
  require 'google/protobuf/timestamp_pb'
10
11
 
11
12
 
12
- descriptor_data = "\n-google/cloud/aiplatform/v1/feature_view.proto\x12\x1agoogle.cloud.aiplatform.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcd\x12\n\x0b\x46\x65\x61tureView\x12W\n\x10\x62ig_query_source\x18\x06 \x01(\x0b\x32\x36.google.cloud.aiplatform.v1.FeatureView.BigQuerySourceB\x03\xe0\x41\x01H\x00\x12\x65\n\x17\x66\x65\x61ture_registry_source\x18\t \x01(\x0b\x32=.google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySourceB\x03\xe0\x41\x01H\x00\x12Y\n\x11vertex_rag_source\x18\x12 \x01(\x0b\x32\x37.google.cloud.aiplatform.v1.FeatureView.VertexRagSourceB\x03\xe0\x41\x01H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04\x65tag\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12H\n\x06labels\x18\x05 \x03(\x0b\x32\x33.google.cloud.aiplatform.v1.FeatureView.LabelsEntryB\x03\xe0\x41\x01\x12G\n\x0bsync_config\x18\x07 \x01(\x0b\x32\x32.google.cloud.aiplatform.v1.FeatureView.SyncConfig\x12N\n\x0cindex_config\x18\x0f \x01(\x0b\x32\x33.google.cloud.aiplatform.v1.FeatureView.IndexConfigB\x03\xe0\x41\x01\x12Y\n\x12service_agent_type\x18\x0e \x01(\x0e\x32\x38.google.cloud.aiplatform.v1.FeatureView.ServiceAgentTypeB\x03\xe0\x41\x01\x12\"\n\x15service_account_email\x18\r \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzs\x18\x13 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzi\x18\x14 \x01(\x08\x42\x03\xe0\x41\x03\x1a\x42\n\x0e\x42igQuerySource\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x65ntity_id_columns\x18\x02 \x03(\tB\x03\xe0\x41\x02\x1a\x33\n\nSyncConfig\x12\x0c\n\x04\x63ron\x18\x01 \x01(\t\x12\x17\n\ncontinuous\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xe7\x05\n\x0bIndexConfig\x12_\n\x0etree_ah_config\x18\x06 \x01(\x0b\x32@.google.cloud.aiplatform.v1.FeatureView.IndexConfig.TreeAHConfigB\x03\xe0\x41\x01H\x00\x12g\n\x12\x62rute_force_config\x18\x07 \x01(\x0b\x32\x44.google.cloud.aiplatform.v1.FeatureView.IndexConfig.BruteForceConfigB\x03\xe0\x41\x01H\x00\x12\x1d\n\x10\x65mbedding_column\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0e\x66ilter_columns\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12\x1c\n\x0f\x63rowding_column\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12%\n\x13\x65mbedding_dimension\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12k\n\x15\x64istance_measure_type\x18\x05 \x01(\x0e\x32G.google.cloud.aiplatform.v1.FeatureView.IndexConfig.DistanceMeasureTypeB\x03\xe0\x41\x01\x1a\x12\n\x10\x42ruteForceConfig\x1aY\n\x0cTreeAHConfig\x12+\n\x19leaf_node_embedding_count\x18\x01 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x42\x1c\n\x1a_leaf_node_embedding_count\"\x84\x01\n\x13\x44istanceMeasureType\x12%\n!DISTANCE_MEASURE_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13SQUARED_L2_DISTANCE\x10\x01\x12\x13\n\x0f\x43OSINE_DISTANCE\x10\x02\x12\x18\n\x14\x44OT_PRODUCT_DISTANCE\x10\x03\x42\x12\n\x10\x61lgorithm_configB\x16\n\x14_embedding_dimension\x1a\xfe\x01\n\x15\x46\x65\x61tureRegistrySource\x12g\n\x0e\x66\x65\x61ture_groups\x18\x01 \x03(\x0b\x32J.google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.FeatureGroupB\x03\xe0\x41\x02\x12 \n\x0eproject_number\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x1aG\n\x0c\x46\x65\x61tureGroup\x12\x1d\n\x10\x66\x65\x61ture_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x66\x65\x61ture_ids\x18\x02 \x03(\tB\x03\xe0\x41\x02\x42\x11\n\x0f_project_number\x1a?\n\x0fVertexRagSource\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rrag_corpus_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"{\n\x10ServiceAgentType\x12\"\n\x1eSERVICE_AGENT_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSERVICE_AGENT_TYPE_PROJECT\x10\x01\x12#\n\x1fSERVICE_AGENT_TYPE_FEATURE_VIEW\x10\x02:\x9b\x01\xea\x41\x97\x01\n%aiplatform.googleapis.com/FeatureView\x12nprojects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}B\x08\n\x06sourceB\xce\x01\n\x1e\x63om.google.cloud.aiplatform.v1B\x10\x46\x65\x61tureViewProtoP\x01Z>cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb\xaa\x02\x1aGoogle.Cloud.AIPlatform.V1\xca\x02\x1aGoogle\\Cloud\\AIPlatform\\V1\xea\x02\x1dGoogle::Cloud::AIPlatform::V1b\x06proto3"
13
+ descriptor_data = "\n-google/cloud/aiplatform/v1/feature_view.proto\x12\x1agoogle.cloud.aiplatform.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x32google/cloud/aiplatform/v1/machine_resources.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x8a\x14\n\x0b\x46\x65\x61tureView\x12W\n\x10\x62ig_query_source\x18\x06 \x01(\x0b\x32\x36.google.cloud.aiplatform.v1.FeatureView.BigQuerySourceB\x03\xe0\x41\x01H\x00\x12\x65\n\x17\x66\x65\x61ture_registry_source\x18\t \x01(\x0b\x32=.google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySourceB\x03\xe0\x41\x01H\x00\x12Y\n\x11vertex_rag_source\x18\x12 \x01(\x0b\x32\x37.google.cloud.aiplatform.v1.FeatureView.VertexRagSourceB\x03\xe0\x41\x01H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04\x65tag\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12H\n\x06labels\x18\x05 \x03(\x0b\x32\x33.google.cloud.aiplatform.v1.FeatureView.LabelsEntryB\x03\xe0\x41\x01\x12G\n\x0bsync_config\x18\x07 \x01(\x0b\x32\x32.google.cloud.aiplatform.v1.FeatureView.SyncConfig\x12N\n\x0cindex_config\x18\x0f \x01(\x0b\x32\x33.google.cloud.aiplatform.v1.FeatureView.IndexConfigB\x03\xe0\x41\x01\x12V\n\x10optimized_config\x18\x10 \x01(\x0b\x32\x37.google.cloud.aiplatform.v1.FeatureView.OptimizedConfigB\x03\xe0\x41\x01\x12Y\n\x12service_agent_type\x18\x0e \x01(\x0e\x32\x38.google.cloud.aiplatform.v1.FeatureView.ServiceAgentTypeB\x03\xe0\x41\x01\x12\"\n\x15service_account_email\x18\r \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzs\x18\x13 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzi\x18\x14 \x01(\x08\x42\x03\xe0\x41\x03\x1a\x42\n\x0e\x42igQuerySource\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x65ntity_id_columns\x18\x02 \x03(\tB\x03\xe0\x41\x02\x1a\x33\n\nSyncConfig\x12\x0c\n\x04\x63ron\x18\x01 \x01(\t\x12\x17\n\ncontinuous\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xe7\x05\n\x0bIndexConfig\x12_\n\x0etree_ah_config\x18\x06 \x01(\x0b\x32@.google.cloud.aiplatform.v1.FeatureView.IndexConfig.TreeAHConfigB\x03\xe0\x41\x01H\x00\x12g\n\x12\x62rute_force_config\x18\x07 \x01(\x0b\x32\x44.google.cloud.aiplatform.v1.FeatureView.IndexConfig.BruteForceConfigB\x03\xe0\x41\x01H\x00\x12\x1d\n\x10\x65mbedding_column\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0e\x66ilter_columns\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12\x1c\n\x0f\x63rowding_column\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12%\n\x13\x65mbedding_dimension\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12k\n\x15\x64istance_measure_type\x18\x05 \x01(\x0e\x32G.google.cloud.aiplatform.v1.FeatureView.IndexConfig.DistanceMeasureTypeB\x03\xe0\x41\x01\x1a\x12\n\x10\x42ruteForceConfig\x1aY\n\x0cTreeAHConfig\x12+\n\x19leaf_node_embedding_count\x18\x01 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x42\x1c\n\x1a_leaf_node_embedding_count\"\x84\x01\n\x13\x44istanceMeasureType\x12%\n!DISTANCE_MEASURE_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13SQUARED_L2_DISTANCE\x10\x01\x12\x13\n\x0f\x43OSINE_DISTANCE\x10\x02\x12\x18\n\x14\x44OT_PRODUCT_DISTANCE\x10\x03\x42\x12\n\x10\x61lgorithm_configB\x16\n\x14_embedding_dimension\x1a\xfe\x01\n\x15\x46\x65\x61tureRegistrySource\x12g\n\x0e\x66\x65\x61ture_groups\x18\x01 \x03(\x0b\x32J.google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.FeatureGroupB\x03\xe0\x41\x02\x12 \n\x0eproject_number\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x1aG\n\x0c\x46\x65\x61tureGroup\x12\x1d\n\x10\x66\x65\x61ture_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x66\x65\x61ture_ids\x18\x02 \x03(\tB\x03\xe0\x41\x02\x42\x11\n\x0f_project_number\x1a?\n\x0fVertexRagSource\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rrag_corpus_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x1a\x63\n\x0fOptimizedConfig\x12P\n\x13\x61utomatic_resources\x18\x07 \x01(\x0b\x32..google.cloud.aiplatform.v1.AutomaticResourcesB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"{\n\x10ServiceAgentType\x12\"\n\x1eSERVICE_AGENT_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSERVICE_AGENT_TYPE_PROJECT\x10\x01\x12#\n\x1fSERVICE_AGENT_TYPE_FEATURE_VIEW\x10\x02:\x9b\x01\xea\x41\x97\x01\n%aiplatform.googleapis.com/FeatureView\x12nprojects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}B\x08\n\x06sourceB\xce\x01\n\x1e\x63om.google.cloud.aiplatform.v1B\x10\x46\x65\x61tureViewProtoP\x01Z>cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb\xaa\x02\x1aGoogle.Cloud.AIPlatform.V1\xca\x02\x1aGoogle\\Cloud\\AIPlatform\\V1\xea\x02\x1dGoogle::Cloud::AIPlatform::V1b\x06proto3"
13
14
 
14
15
  pool = Google::Protobuf::DescriptorPool.generated_pool
15
16
 
@@ -25,6 +26,7 @@ rescue TypeError
25
26
  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
26
27
  imports = [
27
28
  ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
29
+ ["google.cloud.aiplatform.v1.AutomaticResources", "google/cloud/aiplatform/v1/machine_resources.proto"],
28
30
  ]
29
31
  imports.each do |type_name, expected_filename|
30
32
  import_file = pool.lookup(type_name).file_descriptor
@@ -50,6 +52,7 @@ module Google
50
52
  FeatureView::FeatureRegistrySource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource").msgclass
51
53
  FeatureView::FeatureRegistrySource::FeatureGroup = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.FeatureGroup").msgclass
52
54
  FeatureView::VertexRagSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.FeatureView.VertexRagSource").msgclass
55
+ FeatureView::OptimizedConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.FeatureView.OptimizedConfig").msgclass
53
56
  FeatureView::ServiceAgentType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.FeatureView.ServiceAgentType").enummodule
54
57
  end
55
58
  end
@@ -409,6 +409,14 @@ module Google
409
409
  # @return [::Array<::String>]
410
410
  # An allowlist of the fully qualified names of RPCs that should be included
411
411
  # on public client surfaces.
412
+ # @!attribute [rw] generate_omitted_as_internal
413
+ # @return [::Boolean]
414
+ # Setting this to true indicates to the client generators that methods
415
+ # that would be excluded from the generation should instead be generated
416
+ # in a way that indicates these methods should not be consumed by
417
+ # end users. How this is expressed is up to individual language
418
+ # implementations to decide. Some examples may be: added annotations,
419
+ # obfuscated identifiers, or other language idiomatic patterns.
412
420
  class SelectiveGapicGeneration
413
421
  include ::Google::Protobuf::MessageExts
414
422
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -182,11 +182,11 @@ module Google
182
182
  # Numeric filter is used to search a subset of the entities by using boolean
183
183
  # rules on numeric columns.
184
184
  # For example:
185
- # Database Point 0: \\{name: a value_int: 42} \\{name: b value_float: 1.0}
186
- # Database Point 1: \\{name: a value_int: 10} \\{name: b value_float: 2.0}
187
- # Database Point 2: \\{name: a value_int: -1} \\{name: b value_float: 3.0}
188
- # Query: \\{name: a value_int: 12 operator: LESS} // Matches Point 1, 2
189
- # \\{name: b value_float: 2.0 operator: EQUAL} // Matches Point 1
185
+ # Database Point 0: \\{name: "a" value_int: 42} \\{name: "b" value_float: 1.0}
186
+ # Database Point 1: \\{name: "a" value_int: 10} \\{name: "b" value_float: 2.0}
187
+ # Database Point 2: \\{name: "a" value_int: -1} \\{name: "b" value_float: 3.0}
188
+ # Query: \\{name: "a" value_int: 12 operator: LESS} // Matches Point 1, 2
189
+ # \\{name: "b" value_float: 2.0 operator: EQUAL} // Matches Point 1
190
190
  # @!attribute [rw] value_int
191
191
  # @return [::Integer]
192
192
  # int value type.
@@ -213,7 +213,7 @@ module Google
213
213
  include ::Google::Protobuf::MessageExts
214
214
  extend ::Google::Protobuf::MessageExts::ClassMethods
215
215
 
216
- # Datapoints for which Operator is true relative to the querys Value
216
+ # Datapoints for which Operator is true relative to the query's Value
217
217
  # field will be allowlisted.
218
218
  module Operator
219
219
  # Unspecified operator.
@@ -78,6 +78,10 @@ module Google
78
78
  # contains the required configurations to create an index from source data,
79
79
  # so that approximate nearest neighbor (a.k.a ANN) algorithms search can be
80
80
  # performed during online serving.
81
+ # @!attribute [rw] optimized_config
82
+ # @return [::Google::Cloud::AIPlatform::V1::FeatureView::OptimizedConfig]
83
+ # Optional. Configuration for FeatureView created under Optimized
84
+ # FeatureOnlineStore.
81
85
  # @!attribute [rw] service_agent_type
82
86
  # @return [::Google::Cloud::AIPlatform::V1::FeatureView::ServiceAgentType]
83
87
  # Optional. Service agent type used during data sync. By default, the Vertex
@@ -263,6 +267,19 @@ module Google
263
267
  extend ::Google::Protobuf::MessageExts::ClassMethods
264
268
  end
265
269
 
270
+ # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
271
+ # @!attribute [rw] automatic_resources
272
+ # @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
273
+ # Optional. A description of resources that the FeatureView uses, which to
274
+ # large degree are decided by Vertex AI, and optionally allows only a
275
+ # modest additional configuration. If min_replica_count is not set, the
276
+ # default value is 2. If max_replica_count is not set, the default value
277
+ # is 6. The max allowed replica count is 1000.
278
+ class OptimizedConfig
279
+ include ::Google::Protobuf::MessageExts
280
+ extend ::Google::Protobuf::MessageExts::ClassMethods
281
+ end
282
+
266
283
  # @!attribute [rw] key
267
284
  # @return [::String]
268
285
  # @!attribute [rw] value
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-ai_platform-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.63.0
4
+ version: 0.64.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-29 00:00:00.000000000 Z
10
+ date: 2025-01-31 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: gapic-common
@@ -712,7 +712,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
712
712
  - !ruby/object:Gem::Version
713
713
  version: '0'
714
714
  requirements: []
715
- rubygems_version: 3.6.2
715
+ rubygems_version: 3.6.3
716
716
  specification_version: 4
717
717
  summary: Train high-quality custom machine learning models with minimal machine learning
718
718
  expertise and effort.