multiwoven-integrations 0.10.0 → 0.11.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: 34da17012dfaee9c1275aad7968ac32378d822f53819f71d421cf29323fca12a
4
- data.tar.gz: 9a5816f59fa89720d52ec80f8d206b6eb9e303206a9858f80f999c74095fdc46
3
+ metadata.gz: 8a76de4bbbe54dda8a7a063b0e2ad56aa79cb68625661cb7396b1a23db6e8ac6
4
+ data.tar.gz: 486ad225768b3fe8732f80deeb35d25e3f2e9e73ffa652d6ea592e51288dbdc6
5
5
  SHA512:
6
- metadata.gz: b29fad3dabb2793292a2f101eb2136081051e23bb0b63013bb4d1ee6c7b76e4f8b00e8dc2db05a8ec807fffc8b27dc8034613409872ffe9f5ddfad41fec2c831
7
- data.tar.gz: 7de72831e5fe9d5075abf1a5dae5219fcf3732a85f75b105a6b173c2ad0b56ae21e750d45ef8f8f691378a1843634496bc12cd947a550a789f0db81133004774
6
+ metadata.gz: '03249a470b67cac1c549d7c7682e80f0f6e1b6c62b41c547687b1b03cbf11cc8a691b5cdfc1fa05259df58d0ed192d020f466d8136b1ce6c582d9bbc0187f245'
7
+ data.tar.gz: b30b3fe2853752f86478aaf80b300c6f9bb038bd72a2b6a2f5507819ef15d8686a2182eb29ee99136191d31be9efcf58eede56fa9ebc12edfe6d97d255b6f091
@@ -50,6 +50,9 @@ module Multiwoven
50
50
  DATABRICKS_HEALTH_URL = "https://%<databricks_host>s/api/2.0/serving-endpoints/%<endpoint_name>s"
51
51
  DATABRICKS_SERVING_URL = "https://%<databricks_host>s/serving-endpoints/%<endpoint_name>s/invocations"
52
52
 
53
+ GOOGLE_VERTEX_ENDPOINT_SERVICE_URL = "%<region>s-aiplatform.googleapis.com"
54
+ GOOGLE_VERTEX_MODEL_NAME = "projects/%<project_id>s/locations/%<region>s/endpoints/%<endpoint_id>s"
55
+
53
56
  # HTTP
54
57
  HTTP_GET = "GET"
55
58
  HTTP_POST = "POST"
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Multiwoven
4
4
  module Integrations
5
- VERSION = "0.10.0"
5
+ VERSION = "0.11.0"
6
6
 
7
7
  ENABLED_SOURCES = %w[
8
8
  Snowflake
@@ -18,6 +18,7 @@ module Multiwoven
18
18
  Oracle
19
19
  DatabricksModel
20
20
  AwsSagemakerModel
21
+ VertexModel
21
22
  ].freeze
22
23
 
23
24
  ENABLED_DESTINATIONS = %w[
@@ -1,18 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="80px" height="80px" viewBox="0 0 80 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <!-- Generator: Sketch 64 (93537) - https://sketch.com -->
4
- <title>Icon-Architecture/64/Arch_AWS-SageMaker_64</title>
5
- <desc>Created with Sketch.</desc>
6
- <defs>
7
- <linearGradient x1="0%" y1="100%" x2="100%" y2="0%" id="linearGradient-1">
8
- <stop stop-color="#055F4E" offset="0%"></stop>
9
- <stop stop-color="#56C0A7" offset="100%"></stop>
10
- </linearGradient>
11
- </defs>
12
- <g id="Icon-Architecture/64/Arch_AWS-SageMaker_64" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
13
- <g id="Icon-Architecture-BG/64/Machine-Learning" fill="url(#linearGradient-1)">
14
- <rect id="Rectangle" x="0" y="0" width="80" height="80"></rect>
15
- </g>
16
- <path d="M54.034,26.0335731 C54.034,26.5935654 53.578,27.0495592 53.017,27.0495592 C52.458,27.0495592 52.002,26.5935654 52.002,26.0335731 C52.002,25.4735807 52.458,25.0175869 53.017,25.0175869 C53.578,25.0175869 54.034,25.4735807 54.034,26.0335731 L54.034,26.0335731 Z M48.002,36.000437 C48.002,35.4494445 48.45,35.0004506 49.002,35.0004506 C49.554,35.0004506 50.002,35.4494445 50.002,36.000437 C50.002,36.5514294 49.554,37.0004233 49.002,37.0004233 C48.45,37.0004233 48.002,36.5514294 48.002,36.000437 L48.002,36.000437 Z M48.002,55.0001775 C48.002,54.449185 48.45,54.0001912 49.002,54.0001912 C49.554,54.0001912 50.002,54.449185 50.002,55.0001775 C50.002,55.55117 49.554,56.0001639 49.002,56.0001639 C48.45,56.0001639 48.002,55.55117 48.002,55.0001775 L48.002,55.0001775 Z M58.002,42.000355 C58.002,42.5513475 57.554,43.0003414 57.002,43.0003414 C56.45,43.0003414 56.002,42.5513475 56.002,42.000355 C56.002,41.4493626 56.45,41.0003687 57.002,41.0003687 C57.554,41.0003687 58.002,41.4493626 58.002,42.000355 L58.002,42.000355 Z M65,45.2723104 L59.963,42.3823498 C59.979,42.2563515 60.002,42.1313532 60.002,42.000355 C60.002,40.3463776 58.656,39.000396 57.002,39.000396 C55.347,39.000396 54.002,40.3463776 54.002,42.000355 C54.002,43.6543324 55.347,45.0003141 57.002,45.0003141 C57.801,45.0003141 58.523,44.6813184 59.061,44.1713254 L63.886,46.9392876 L59.555,49.105258 C59.216,49.2752557 59.002,49.621251 59.002,50.0002458 L59.002,58.4411305 L46.983,65.8370295 L41.003,62.4200762 L41.003,56.0001639 L46.186,56.0001639 C46.6,57.161148 47.7,58.0001366 49.002,58.0001366 C50.656,58.0001366 52.002,56.6541549 52.002,55.0001775 C52.002,53.3452001 50.656,52.0002185 49.002,52.0002185 C47.7,52.0002185 46.6,52.838207 46.186,54.0001912 L41.003,54.0001912 L41.003,40.0003823 C41.003,39.6493871 40.818,39.3233916 40.517,39.1423941 L35.516,36.142435 L34.487,37.8574116 L39.003,40.5663746 L39.003,43.5073345 L33.002,48.1232714 L33.002,44.0003277 C33.002,43.6963319 32.864,43.4083358 32.627,43.2193384 L28.002,39.5193889 L28.002,34.535457 L33.556,30.8325075 C33.835,30.6465101 34.002,30.3345143 34.002,30.0005189 L34.002,24.0006008 L32.002,24.0006008 L32.002,29.4655262 L27.013,32.7904808 L22.002,29.4635262 L22.002,21.5746339 L27.002,18.6586738 L27.002,27.0005599 L29.002,27.0005599 L29.002,17.4916897 L33.005,15.1567216 L39.001,18.6156744 L39.002,31.0005052 C39.002,31.3595003 39.194,31.6904958 39.506,31.8684934 L46.042,35.6034424 C46.024,35.7344406 46.002,35.8644388 46.002,36.000437 C46.002,37.6544144 47.347,39.000396 49.002,39.000396 C50.656,39.000396 52.002,37.6544144 52.002,36.000437 C52.002,34.3464595 50.656,33.0004779 49.002,33.0004779 C48.208,33.0004779 47.49,33.3154736 46.953,33.8204667 L41.002,30.4195132 L41.001,18.6176743 L46.964,15.1767213 L58.002,22.5356208 L58.002,25.0005872 L55.851,25.0005872 C55.429,23.844603 54.318,23.0176142 53.017,23.0176142 C51.354,23.0176142 50.002,24.3705958 50.002,26.0335731 C50.002,27.6965504 51.354,29.0495319 53.017,29.0495319 C54.343,29.0495319 55.471,28.1905436 55.875,27.0005599 L58.002,27.0005599 L58.002,30.0005189 C58.002,30.359514 58.194,30.6905095 58.506,30.868507 L65,34.5804564 L65,45.2723104 Z M33.02,65.8370295 L29.867,63.897056 L35.583,59.8141118 L34.421,58.186134 L28.018,62.7590716 L21.002,58.4411305 L21.002,50.5662381 L25.516,47.8572751 L24.487,46.1422985 L19.958,48.8602614 L15.002,46.3822952 L15.001,40.6173739 L20.449,37.8944111 L19.555,36.1054355 L15.001,38.3814044 L15.002,34.5804564 L20.963,31.1745029 L26.002,34.5194572 L26.002,39.4803894 L20.449,43.1673391 L21.555,44.8333163 L26.958,41.2453653 L31.002,44.4803212 L31.002,49.6622504 L26.392,53.207202 L27.611,54.7921804 L39.003,46.0303 L39.003,62.4190762 L33.02,65.8370295 Z M66.496,33.1324761 L60.002,29.4205268 L60.002,22.0006281 C60.002,21.6656327 59.835,21.353637 59.556,21.1686395 L47.556,13.1687487 C47.24,12.9587516 46.832,12.9447518 46.502,13.1347492 L40.004,16.884698 L33.502,13.1347492 C33.19,12.9547517 32.807,12.9547517 32.498,13.1367492 L20.498,20.1366536 C20.19,20.3156511 20.002,20.6446466 20.002,21.0006418 L20.002,29.4205268 L13.506,33.1324761 C13.194,33.3094737 13.002,33.6414692 13.002,34.0004643 L13.002,34.4174586 C13.001,34.4384583 13,34.458458 13,34.4794577 L13,45.3633091 C13,45.3833088 13.001,45.4033086 13.002,45.4223083 L13.002,47.0002868 C13.002,47.3792816 13.216,47.7252769 13.555,47.8942745 L19.002,50.6182374 L19.002,59.0001229 C19.002,59.3471182 19.181,59.6691138 19.477,59.8511113 L32.477,67.851002 C32.638,67.9500007 32.82,68 33.002,68 C33.173,68 33.344,67.9560006 33.498,67.8680018 L40.003,64.1520525 L46.506,67.8680018 C46.821,68.0489993 47.213,68.0419994 47.526,67.851002 L60.526,59.8511113 C60.822,59.6691138 61.002,59.3471182 61.002,59.0001229 L61.002,50.6182374 L66.447,47.8942745 C66.786,47.7252769 67,47.3792816 67,47.0002868 L67,34.0004643 C67,33.6414692 66.807,33.3104737 66.496,33.1324761 L66.496,33.1324761 Z" id="AWS-SageMaker_Icon_64_Squid" fill="#FFFFFF"></path>
2
+ <svg width="800px" height="800px" viewBox="0 0 80 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>Icon-Architecture/64/Arch_Amazon-SageMaker_64</title>
4
+ <g id="Icon-Architecture/64/Arch_Amazon-SageMaker_64" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <path d="M54.034,26.0335731 C54.034,26.5935654 53.578,27.0495592 53.017,27.0495592 C52.458,27.0495592 52.002,26.5935654 52.002,26.0335731 C52.002,25.4735807 52.458,25.0175869 53.017,25.0175869 C53.578,25.0175869 54.034,25.4735807 54.034,26.0335731 L54.034,26.0335731 Z M48.002,36.000437 C48.002,35.4494445 48.45,35.0004506 49.002,35.0004506 C49.554,35.0004506 50.002,35.4494445 50.002,36.000437 C50.002,36.5514294 49.554,37.0004233 49.002,37.0004233 C48.45,37.0004233 48.002,36.5514294 48.002,36.000437 L48.002,36.000437 Z M48.002,55.0001775 C48.002,54.449185 48.45,54.0001912 49.002,54.0001912 C49.554,54.0001912 50.002,54.449185 50.002,55.0001775 C50.002,55.55117 49.554,56.0001639 49.002,56.0001639 C48.45,56.0001639 48.002,55.55117 48.002,55.0001775 L48.002,55.0001775 Z M58.002,42.000355 C58.002,42.5513475 57.554,43.0003414 57.002,43.0003414 C56.45,43.0003414 56.002,42.5513475 56.002,42.000355 C56.002,41.4493626 56.45,41.0003687 57.002,41.0003687 C57.554,41.0003687 58.002,41.4493626 58.002,42.000355 L58.002,42.000355 Z M65,45.2723104 L59.963,42.3823498 C59.979,42.2563515 60.002,42.1313532 60.002,42.000355 C60.002,40.3463776 58.656,39.000396 57.002,39.000396 C55.347,39.000396 54.002,40.3463776 54.002,42.000355 C54.002,43.6543324 55.347,45.0003141 57.002,45.0003141 C57.801,45.0003141 58.523,44.6813184 59.061,44.1713254 L63.886,46.9392876 L59.555,49.105258 C59.216,49.2752557 59.002,49.621251 59.002,50.0002458 L59.002,58.4411305 L46.983,65.8370295 L41.003,62.4200762 L41.003,56.0001639 L46.186,56.0001639 C46.6,57.161148 47.7,58.0001366 49.002,58.0001366 C50.656,58.0001366 52.002,56.6541549 52.002,55.0001775 C52.002,53.3452001 50.656,52.0002185 49.002,52.0002185 C47.7,52.0002185 46.6,52.838207 46.186,54.0001912 L41.003,54.0001912 L41.003,40.0003823 C41.003,39.6493871 40.818,39.3233916 40.517,39.1423941 L35.516,36.142435 L34.487,37.8574116 L39.003,40.5663746 L39.003,43.5073345 L33.002,48.1232714 L33.002,44.0003277 C33.002,43.6963319 32.864,43.4083358 32.627,43.2193384 L28.002,39.5193889 L28.002,34.535457 L33.556,30.8325075 C33.835,30.6465101 34.002,30.3345143 34.002,30.0005189 L34.002,24.0006008 L32.002,24.0006008 L32.002,29.4655262 L27.013,32.7904808 L22.002,29.4635262 L22.002,21.5746339 L27.002,18.6586738 L27.002,27.0005599 L29.002,27.0005599 L29.002,17.4916897 L33.005,15.1567216 L39.001,18.6156744 L39.002,31.0005052 C39.002,31.3595003 39.194,31.6904958 39.506,31.8684934 L46.042,35.6034424 C46.024,35.7344406 46.002,35.8644388 46.002,36.000437 C46.002,37.6544144 47.347,39.000396 49.002,39.000396 C50.656,39.000396 52.002,37.6544144 52.002,36.000437 C52.002,34.3464595 50.656,33.0004779 49.002,33.0004779 C48.208,33.0004779 47.49,33.3154736 46.953,33.8204667 L41.002,30.4195132 L41.001,18.6176743 L46.964,15.1767213 L58.002,22.5356208 L58.002,25.0005872 L55.851,25.0005872 C55.429,23.844603 54.318,23.0176142 53.017,23.0176142 C51.354,23.0176142 50.002,24.3705958 50.002,26.0335731 C50.002,27.6965504 51.354,29.0495319 53.017,29.0495319 C54.343,29.0495319 55.471,28.1905436 55.875,27.0005599 L58.002,27.0005599 L58.002,30.0005189 C58.002,30.359514 58.194,30.6905095 58.506,30.868507 L65,34.5804564 L65,45.2723104 Z M33.02,65.8370295 L29.867,63.897056 L35.583,59.8141118 L34.421,58.186134 L28.018,62.7590716 L21.002,58.4411305 L21.002,50.5662381 L25.516,47.8572751 L24.487,46.1422985 L19.958,48.8602614 L15.002,46.3822952 L15.001,40.6173739 L20.449,37.8944111 L19.555,36.1054355 L15.001,38.3814044 L15.002,34.5804564 L20.963,31.1745029 L26.002,34.5194572 L26.002,39.4803894 L20.449,43.1673391 L21.555,44.8333163 L26.958,41.2453653 L31.002,44.4803212 L31.002,49.6622504 L26.392,53.207202 L27.611,54.7921804 L39.003,46.0303 L39.003,62.4190762 L33.02,65.8370295 Z M66.496,33.1324761 L60.002,29.4205268 L60.002,22.0006281 C60.002,21.6656327 59.835,21.353637 59.556,21.1686395 L47.556,13.1687487 C47.24,12.9587516 46.832,12.9447518 46.502,13.1347492 L40.004,16.884698 L33.502,13.1347492 C33.19,12.9547517 32.807,12.9547517 32.498,13.1367492 L20.498,20.1366536 C20.19,20.3156511 20.002,20.6446466 20.002,21.0006418 L20.002,29.4205268 L13.506,33.1324761 C13.194,33.3094737 13.002,33.6414692 13.002,34.0004643 L13.002,34.4174586 C13.001,34.4384583 13,34.458458 13,34.4794577 L13,45.3633091 C13,45.3833088 13.001,45.4033086 13.002,45.4223083 L13.002,47.0002868 C13.002,47.3792816 13.216,47.7252769 13.555,47.8942745 L19.002,50.6182374 L19.002,59.0001229 C19.002,59.3471182 19.181,59.6691138 19.477,59.8511113 L32.477,67.851002 C32.638,67.9500007 32.82,68 33.002,68 C33.173,68 33.344,67.9560006 33.498,67.8680018 L40.003,64.1520525 L46.506,67.8680018 C46.821,68.0489993 47.213,68.0419994 47.526,67.851002 L60.526,59.8511113 C60.822,59.6691138 61.002,59.3471182 61.002,59.0001229 L61.002,50.6182374 L66.447,47.8942745 C66.786,47.7252769 67,47.3792816 67,47.0002868 L67,34.0004643 C67,33.6414692 66.807,33.3104737 66.496,33.1324761 L66.496,33.1324761 Z" id="Amazon-SageMaker_Icon_64_Squid" fill="#000000"></path>
17
6
  </g>
18
7
  </svg>
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Multiwoven::Integrations::Source
4
+ module VertexModel
5
+ include Multiwoven::Integrations::Core
6
+ class Client < SourceConnector
7
+ def check_connection(connection_config)
8
+ connection_config = connection_config.with_indifferent_access
9
+ create_connection(connection_config)
10
+ @client.get_endpoint(name: build_url(GOOGLE_VERTEX_MODEL_NAME, connection_config))
11
+ ConnectionStatus.new(status: ConnectionStatusType["succeeded"]).to_multiwoven_message
12
+ rescue StandardError => e
13
+ ConnectionStatus.new(status: ConnectionStatusType["failed"], message: e.message).to_multiwoven_message
14
+ end
15
+
16
+ def discover(_connection_config = nil)
17
+ catalog_json = read_json(CATALOG_SPEC_PATH)
18
+ catalog = build_catalog(catalog_json)
19
+ catalog.to_multiwoven_message
20
+ rescue StandardError => e
21
+ handle_exception(e, {
22
+ context: "GOOGLE:VERTEX MODEL:DISCOVER:EXCEPTION",
23
+ type: "error"
24
+ })
25
+ end
26
+
27
+ def read(sync_config)
28
+ connection_config = sync_config.source.connection_specification
29
+ connection_config = connection_config.with_indifferent_access
30
+ # The server checks the ConnectorQueryType.
31
+ # If it's "ai_ml," the server calculates the payload and passes it as a query in the sync config model protocol.
32
+ # This query is then sent to the AI/ML model.
33
+ payload = JSON.parse(sync_config.model.query)
34
+ run_model(connection_config, payload)
35
+ rescue StandardError => e
36
+ handle_exception(e, {
37
+ context: "GOOGLE:VERTEX MODEL:READ:EXCEPTION",
38
+ type: "error"
39
+ })
40
+ end
41
+
42
+ private
43
+
44
+ def create_connection(connection_config)
45
+ Google::Cloud::AIPlatform::V1::EndpointService::Client.configure do |config|
46
+ config.endpoint = build_url(GOOGLE_VERTEX_ENDPOINT_SERVICE_URL, connection_config)
47
+ config.credentials = connection_config["credentials_json"]
48
+ end
49
+ Google::Cloud::AIPlatform::V1::PredictionService::Client.configure do |config|
50
+ config.endpoint = build_url(GOOGLE_VERTEX_ENDPOINT_SERVICE_URL, connection_config)
51
+ config.credentials = connection_config["credentials_json"]
52
+ end
53
+ @client = Google::Cloud::AIPlatform::V1::EndpointService::Client.new
54
+ @endpoint = Google::Cloud::AIPlatform::V1::PredictionService::Client.new
55
+ end
56
+
57
+ def run_model(connection_config, payload)
58
+ create_connection(connection_config)
59
+ http_body = Google::Api::HttpBody.new(data: JSON.generate(payload))
60
+ response = @endpoint.raw_predict(endpoint: build_url(GOOGLE_VERTEX_MODEL_NAME, connection_config), http_body: http_body)
61
+ process_response(response)
62
+ rescue StandardError => e
63
+ handle_exception(e, context: "GOOGLE:VERTEX MODEL:RUN_MODEL:EXCEPTION", type: "error")
64
+ end
65
+
66
+ def process_response(response)
67
+ data = JSON.parse(response.data)
68
+ [RecordMessage.new(data: data, emitted_at: Time.now.to_i).to_multiwoven_message]
69
+ end
70
+
71
+ def build_url(url, connection_config)
72
+ case url
73
+ when GOOGLE_VERTEX_MODEL_NAME
74
+ format(url, project_id: connection_config[:project_id],
75
+ region: connection_config[:region],
76
+ endpoint_id: connection_config[:endpoint_id])
77
+ when GOOGLE_VERTEX_ENDPOINT_SERVICE_URL
78
+ format(url, region: connection_config[:region])
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,6 @@
1
+ {
2
+ "request_rate_limit": 600,
3
+ "request_rate_limit_unit": "minute",
4
+ "request_rate_concurrency": 10,
5
+ "streams": []
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "data": {
3
+ "name": "VertexModel",
4
+ "title": "Google Vertex",
5
+ "connector_type": "source",
6
+ "category": "AI Model",
7
+ "documentation_url": "https://docs.mutliwoven.com",
8
+ "github_issue_label": "source-vertex",
9
+ "icon": "icon.svg",
10
+ "license": "MIT",
11
+ "release_stage": "alpha",
12
+ "support_level": "community",
13
+ "tags": ["language:ruby", "multiwoven"]
14
+ }
15
+ }
16
+
@@ -0,0 +1,103 @@
1
+ {
2
+ "documentation_url": "https://docs.multiwoven.com/integrations/sources/google_vertex-model",
3
+ "stream_type": "dynamic",
4
+ "connector_query_type": "raw_sql",
5
+ "connection_specification": {
6
+ "$schema": "http://json-schema.org/draft-07/schema#",
7
+ "title": "Google Vertex Model",
8
+ "type": "object",
9
+ "required": ["project_id", "endpoint_id", "location", "credentials_json", "request_format", "response_format"],
10
+ "properties": {
11
+ "project_id": {
12
+ "type": "string",
13
+ "description": "The project ID of the endpoint",
14
+ "title": "Project ID",
15
+ "order": 0
16
+ },
17
+ "endpoint_id": {
18
+ "type": "string",
19
+ "description": "The endpoint ID of the trained model",
20
+ "title": "Endpoint ID",
21
+ "order": 1
22
+ },
23
+ "region":{
24
+ "type": "string",
25
+ "description": "The region where the trained model is stored",
26
+ "title": "Region",
27
+ "order": 2
28
+ },
29
+ "request_format":{
30
+ "title": "Request Format",
31
+ "description": "Sample Request Format",
32
+ "type": "string",
33
+ "order": 3
34
+ },
35
+ "response_format": {
36
+ "title": "Response Format",
37
+ "description": "Sample Response Format",
38
+ "type": "string",
39
+ "order": 4
40
+ },
41
+ "credentials_json": {
42
+ "type": "object",
43
+ "description": "You can get the keys from the Google Cloud web console. First, go to the IAM page and select Service Accounts from the left menu. Next, locate your service account in the list, click on its Keys tab, and then click Add Key. Lastly, click Create new key and select JSON.",
44
+ "title": "",
45
+ "properties": {
46
+ "type": {
47
+ "type": "string",
48
+ "enum": ["service_account"]
49
+ },
50
+ "project_id": {
51
+ "type": "string"
52
+ },
53
+ "private_key_id": {
54
+ "type": "string"
55
+ },
56
+ "private_key": {
57
+ "type": "string",
58
+ "multiwoven_secret": true
59
+ },
60
+ "client_email": {
61
+ "type": "string",
62
+ "format": "email"
63
+ },
64
+ "client_id": {
65
+ "type": "string"
66
+ },
67
+ "auth_uri": {
68
+ "type": "string",
69
+ "format": "uri"
70
+ },
71
+ "token_uri": {
72
+ "type": "string",
73
+ "format": "uri"
74
+ },
75
+ "auth_provider_x509_cert_url": {
76
+ "type": "string",
77
+ "format": "uri"
78
+ },
79
+ "client_x509_cert_url": {
80
+ "type": "string",
81
+ "format": "uri"
82
+ },
83
+ "universe_domain": {
84
+ "type": "string"
85
+ }
86
+ },
87
+ "required": [
88
+ "type",
89
+ "project_id",
90
+ "private_key_id",
91
+ "private_key",
92
+ "client_email",
93
+ "client_id",
94
+ "auth_uri",
95
+ "token_uri",
96
+ "auth_provider_x509_cert_url",
97
+ "client_x509_cert_url",
98
+ "universe_domain"
99
+ ]
100
+ }
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
+ <svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20,13.89A.77.77,0,0,0,19,13.73l-7,5.14v.22a.72.72,0,1,1,0,1.43v0a.74.74,0,0,0,.45-.15l7.41-5.47A.76.76,0,0,0,20,13.89Z" style="fill:#669df6"/><path d="M12,20.52a.72.72,0,0,1,0-1.43h0v-.22L5,13.73a.76.76,0,0,0-1,.16.74.74,0,0,0,.16,1l7.41,5.47a.73.73,0,0,0,.44.15v0Z" style="fill:#aecbfa"/><path d="M12,18.34a1.47,1.47,0,1,0,1.47,1.47A1.47,1.47,0,0,0,12,18.34Zm0,2.18a.72.72,0,1,1,.72-.71A.71.71,0,0,1,12,20.52Z" style="fill:#4285f4"/><path d="M6,6.11a.76.76,0,0,1-.75-.75V3.48a.76.76,0,1,1,1.51,0V5.36A.76.76,0,0,1,6,6.11Z" style="fill:#aecbfa"/><circle cx="5.98" cy="12" r="0.76" style="fill:#aecbfa"/><circle cx="5.98" cy="9.79" r="0.76" style="fill:#aecbfa"/><circle cx="5.98" cy="7.57" r="0.76" style="fill:#aecbfa"/><path d="M18,8.31a.76.76,0,0,1-.75-.76V5.67a.75.75,0,1,1,1.5,0V7.55A.75.75,0,0,1,18,8.31Z" style="fill:#4285f4"/><circle cx="18.02" cy="12.01" r="0.76" style="fill:#4285f4"/><circle cx="18.02" cy="9.76" r="0.76" style="fill:#4285f4"/><circle cx="18.02" cy="3.48" r="0.76" style="fill:#4285f4"/><path d="M12,15a.76.76,0,0,1-.75-.75V12.34a.76.76,0,0,1,1.51,0v1.89A.76.76,0,0,1,12,15Z" style="fill:#669df6"/><circle cx="12" cy="16.45" r="0.76" style="fill:#669df6"/><circle cx="12" cy="10.14" r="0.76" style="fill:#669df6"/><circle cx="12" cy="7.92" r="0.76" style="fill:#669df6"/><path d="M15,10.54a.76.76,0,0,1-.75-.75V7.91a.76.76,0,1,1,1.51,0V9.79A.76.76,0,0,1,15,10.54Z" style="fill:#4285f4"/><circle cx="15.01" cy="5.69" r="0.76" style="fill:#4285f4"/><circle cx="15.01" cy="14.19" r="0.76" style="fill:#4285f4"/><circle cx="15.01" cy="11.97" r="0.76" style="fill:#4285f4"/><circle cx="8.99" cy="14.19" r="0.76" style="fill:#aecbfa"/><circle cx="8.99" cy="7.92" r="0.76" style="fill:#aecbfa"/><circle cx="8.99" cy="5.69" r="0.76" style="fill:#aecbfa"/><path d="M9,12.73A.76.76,0,0,1,8.24,12V10.1a.75.75,0,1,1,1.5,0V12A.75.75,0,0,1,9,12.73Z" style="fill:#aecbfa"/></svg>
@@ -34,6 +34,8 @@ require "aws-sdk-sts"
34
34
  require "ruby-oci8"
35
35
  require "aws-sdk-sagemaker"
36
36
  require "aws-sdk-sagemakerruntime"
37
+ require "google/cloud/ai_platform/v1"
38
+ require "grpc"
37
39
 
38
40
  # Service
39
41
  require_relative "integrations/config"
@@ -66,6 +68,7 @@ require_relative "integrations/source/maria_db/client"
66
68
  require_relative "integrations/source/oracle_db/client"
67
69
  require_relative "integrations/source/databrics_model/client"
68
70
  require_relative "integrations/source/aws_sagemaker_model/client"
71
+ require_relative "integrations/source/google_vertex_model/client"
69
72
 
70
73
  # Destination
71
74
  require_relative "integrations/destination/klaviyo/client"
@@ -47,7 +47,9 @@ Gem::Specification.new do |spec|
47
47
  spec.add_runtime_dependency "duckdb"
48
48
  spec.add_runtime_dependency "git"
49
49
  spec.add_runtime_dependency "google-apis-sheets_v4"
50
+ spec.add_runtime_dependency "google-cloud-ai_platform-v1"
50
51
  spec.add_runtime_dependency "google-cloud-bigquery"
52
+ spec.add_runtime_dependency "grpc"
51
53
  spec.add_runtime_dependency "hubspot-api-client"
52
54
  spec.add_runtime_dependency "iterable-api-client"
53
55
  spec.add_runtime_dependency "net-sftp"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multiwoven-integrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Subin T P
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-30 00:00:00.000000000 Z
11
+ date: 2024-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - ">="
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: google-cloud-ai_platform-v1
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: google-cloud-bigquery
211
225
  requirement: !ruby/object:Gem::Requirement
@@ -220,6 +234,20 @@ dependencies:
220
234
  - - ">="
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: grpc
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
223
251
  - !ruby/object:Gem::Dependency
224
252
  name: hubspot-api-client
225
253
  requirement: !ruby/object:Gem::Requirement
@@ -650,6 +678,11 @@ files:
650
678
  - lib/multiwoven/integrations/source/databrics_model/config/meta.json
651
679
  - lib/multiwoven/integrations/source/databrics_model/config/spec.json
652
680
  - lib/multiwoven/integrations/source/databrics_model/icon.svg
681
+ - lib/multiwoven/integrations/source/google_vertex_model/client.rb
682
+ - lib/multiwoven/integrations/source/google_vertex_model/config/catalog.json
683
+ - lib/multiwoven/integrations/source/google_vertex_model/config/meta.json
684
+ - lib/multiwoven/integrations/source/google_vertex_model/config/spec.json
685
+ - lib/multiwoven/integrations/source/google_vertex_model/icon.svg
653
686
  - lib/multiwoven/integrations/source/maria_db/client.rb
654
687
  - lib/multiwoven/integrations/source/maria_db/config/meta.json
655
688
  - lib/multiwoven/integrations/source/maria_db/config/spec.json