Skip to content

Commit 1df79c1

Browse files
feat: A new method SearchLineageStreaming is added (#33931)
* feat: A new method SearchLineageStreaming is added docs: Documentation for SearchLineageStreaming API was added feat: SearchLinks can now accept multiple source and target entity references as search criteria feat: Added support for column level lineage information to be passed and returned from the Lineage service The `field` field in EntityReference allows to add column level information when creating events. This is also returned in links along with DependencyInfo that describes the type of dependency described in the link. PiperOrigin-RevId: 912099814 Source-Link: googleapis/googleapis@6810d0e Source-Link: googleapis/googleapis-gen@76344c8 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLWRhdGFfY2F0YWxvZy1saW5lYWdlLXYxLy5Pd2xCb3QueWFtbCIsImgiOiI3NjM0NGM4YWEyNGQwNDcwNjc3ZWQ2ZGM3OGEwZjNjMmExOGI4N2Q4In0= * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent 593a68d commit 1df79c1

15 files changed

Lines changed: 1183 additions & 145 deletions

File tree

google-cloud-data_catalog-lineage-v1/.owlbot-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"proto_docs/README.md",
3232
"proto_docs/google/api/client.rb",
3333
"proto_docs/google/api/field_behavior.rb",
34+
"proto_docs/google/api/field_info.rb",
3435
"proto_docs/google/api/launch_stage.rb",
3536
"proto_docs/google/api/resource.rb",
3637
"proto_docs/google/cloud/datacatalog/lineage/v1/lineage.rb",
@@ -42,6 +43,7 @@
4243
"proto_docs/google/protobuf/struct.rb",
4344
"proto_docs/google/protobuf/timestamp.rb",
4445
"proto_docs/google/rpc/status.rb",
46+
"proto_docs/google/type/interval.rb",
4547
"snippets/Gemfile",
4648
"snippets/lineage/batch_search_link_processes.rb",
4749
"snippets/lineage/create_lineage_event.rb",
@@ -57,6 +59,7 @@
5759
"snippets/lineage/list_processes.rb",
5860
"snippets/lineage/list_runs.rb",
5961
"snippets/lineage/process_open_lineage_run_event.rb",
62+
"snippets/lineage/search_lineage_streaming.rb",
6063
"snippets/lineage/search_links.rb",
6164
"snippets/lineage/update_process.rb",
6265
"snippets/lineage/update_run.rb",

google-cloud-data_catalog-lineage-v1/gapic_metadata.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@
9494
"methods": [
9595
"batch_search_link_processes"
9696
]
97+
},
98+
"SearchLineageStreaming": {
99+
"methods": [
100+
"search_lineage_streaming"
101+
]
97102
}
98103
}
99104
}

google-cloud-data_catalog-lineage-v1/lib/google/cloud/data_catalog/lineage/v1/lineage/client.rb

Lines changed: 191 additions & 37 deletions
Large diffs are not rendered by default.

google-cloud-data_catalog-lineage-v1/lib/google/cloud/data_catalog/lineage/v1/lineage/rest/client.rb

Lines changed: 186 additions & 37 deletions
Large diffs are not rendered by default.

google-cloud-data_catalog-lineage-v1/lib/google/cloud/data_catalog/lineage/v1/lineage/rest/service_stub.rb

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,40 @@ def batch_search_link_processes request_pb, options = nil
754754
end
755755
end
756756

757+
##
758+
# Baseline implementation for the search_lineage_streaming REST call
759+
#
760+
# @param request_pb [::Google::Cloud::DataCatalog::Lineage::V1::SearchLineageStreamingRequest]
761+
# A request object representing the call parameters. Required.
762+
# @param options [::Gapic::CallOptions]
763+
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
764+
#
765+
# @yieldparam chunk [::String] The chunk of data received during server streaming.
766+
#
767+
# @return [::Gapic::Rest::TransportOperation]
768+
def search_lineage_streaming(request_pb, options = nil, &)
769+
raise ::ArgumentError, "request must be provided" if request_pb.nil?
770+
771+
verb, uri, query_string_params, body = ServiceStub.transcode_search_lineage_streaming_request request_pb
772+
query_string_params = if query_string_params.any?
773+
query_string_params.to_h { |p| p.split "=", 2 }
774+
else
775+
{}
776+
end
777+
778+
response = @client_stub.make_http_request(
779+
verb,
780+
uri: uri,
781+
body: body || "",
782+
params: query_string_params,
783+
method_name: "search_lineage_streaming",
784+
options: options,
785+
is_server_streaming: true,
786+
&
787+
)
788+
::Gapic::Rest::TransportOperation.new response
789+
end
790+
757791
##
758792
# @private
759793
#
@@ -1118,6 +1152,28 @@ def self.transcode_batch_search_link_processes_request request_pb
11181152
)
11191153
transcoder.transcode request_pb
11201154
end
1155+
1156+
##
1157+
# @private
1158+
#
1159+
# GRPC transcoding helper method for the search_lineage_streaming REST call
1160+
#
1161+
# @param request_pb [::Google::Cloud::DataCatalog::Lineage::V1::SearchLineageStreamingRequest]
1162+
# A request object representing the call parameters. Required.
1163+
# @return [Array(String, [String, nil], Hash{String => String})]
1164+
# Uri, Body, Query string parameters
1165+
def self.transcode_search_lineage_streaming_request request_pb
1166+
transcoder = Gapic::Rest::GrpcTranscoder.new
1167+
.with_bindings(
1168+
uri_method: :post,
1169+
uri_template: "/v1/{parent}:searchLineageStreaming",
1170+
body: "*",
1171+
matches: [
1172+
["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
1173+
]
1174+
)
1175+
transcoder.transcode request_pb
1176+
end
11211177
end
11221178
end
11231179
end

google-cloud-data_catalog-lineage-v1/lib/google/cloud/datacatalog/lineage/v1/lineage_pb.rb

Lines changed: 17 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

google-cloud-data_catalog-lineage-v1/lib/google/cloud/datacatalog/lineage/v1/lineage_services_pb.rb

Lines changed: 26 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

google-cloud-data_catalog-lineage-v1/proto_docs/google/api/client.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ module Api
3131
# @!attribute [rw] selective_gapic_generation
3232
# @return [::Google::Api::SelectiveGapicGeneration]
3333
# Configuration for which RPCs should be generated in the GAPIC client.
34+
#
35+
# Note: This field should not be used in most cases.
3436
class CommonLanguageSettings
3537
include ::Google::Protobuf::MessageExts
3638
extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -441,6 +443,8 @@ class LongRunning
441443

442444
# This message is used to configure the generation of a subset of the RPCs in
443445
# a service for client libraries.
446+
#
447+
# Note: This feature should not be used in most cases.
444448
# @!attribute [rw] methods
445449
# @return [::Array<::String>]
446450
# An allowlist of the fully qualified names of RPCs that should be included
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# frozen_string_literal: true
2+
3+
# Copyright 2026 Google LLC
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18+
19+
20+
module Google
21+
module Api
22+
# Rich semantic information of an API field beyond basic typing.
23+
# @!attribute [rw] format
24+
# @return [::Google::Api::FieldInfo::Format]
25+
# The standard format of a field value. This does not explicitly configure
26+
# any API consumer, just documents the API's format for the field it is
27+
# applied to.
28+
# @!attribute [rw] referenced_types
29+
# @return [::Array<::Google::Api::TypeReference>]
30+
# The type(s) that the annotated, generic field may represent.
31+
#
32+
# Currently, this must only be used on fields of type `google.protobuf.Any`.
33+
# Supporting other generic types may be considered in the future.
34+
class FieldInfo
35+
include ::Google::Protobuf::MessageExts
36+
extend ::Google::Protobuf::MessageExts::ClassMethods
37+
38+
# The standard format of a field value. The supported formats are all backed
39+
# by either an RFC defined by the IETF or a Google-defined AIP.
40+
module Format
41+
# Default, unspecified value.
42+
FORMAT_UNSPECIFIED = 0
43+
44+
# Universally Unique Identifier, version 4, value as defined by
45+
# https://datatracker.ietf.org/doc/html/rfc4122. The value may be
46+
# normalized to entirely lowercase letters. For example, the value
47+
# `F47AC10B-58CC-0372-8567-0E02B2C3D479` would be normalized to
48+
# `f47ac10b-58cc-0372-8567-0e02b2c3d479`.
49+
UUID4 = 1
50+
51+
# Internet Protocol v4 value as defined by [RFC
52+
# 791](https://datatracker.ietf.org/doc/html/rfc791). The value may be
53+
# condensed, with leading zeros in each octet stripped. For example,
54+
# `001.022.233.040` would be condensed to `1.22.233.40`.
55+
IPV4 = 2
56+
57+
# Internet Protocol v6 value as defined by [RFC
58+
# 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be
59+
# normalized to entirely lowercase letters with zeros compressed, following
60+
# [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952). For example,
61+
# the value `2001:0DB8:0::0` would be normalized to `2001:db8::`.
62+
IPV6 = 3
63+
64+
# An IP address in either v4 or v6 format as described by the individual
65+
# values defined herein. See the comments on the IPV4 and IPV6 types for
66+
# allowed normalizations of each.
67+
IPV4_OR_IPV6 = 4
68+
end
69+
end
70+
71+
# A reference to a message type, for use in {::Google::Api::FieldInfo FieldInfo}.
72+
# @!attribute [rw] type_name
73+
# @return [::String]
74+
# The name of the type that the annotated, generic field may represent.
75+
# If the type is in the same protobuf package, the value can be the simple
76+
# message name e.g., `"MyMessage"`. Otherwise, the value must be the
77+
# fully-qualified message name e.g., `"google.library.v1.Book"`.
78+
#
79+
# If the type(s) are unknown to the service (e.g. the field accepts generic
80+
# user input), use the wildcard `"*"` to denote this behavior.
81+
#
82+
# See [AIP-202](https://google.aip.dev/202#type-references) for more details.
83+
class TypeReference
84+
include ::Google::Protobuf::MessageExts
85+
extend ::Google::Protobuf::MessageExts::ClassMethods
86+
end
87+
end
88+
end

0 commit comments

Comments
 (0)