@finos/legend-graph 24.0.0 → 24.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/lib/graph/BasicModel.d.ts +6 -0
  2. package/lib/graph/BasicModel.d.ts.map +1 -1
  3. package/lib/graph/BasicModel.js +23 -0
  4. package/lib/graph/BasicModel.js.map +1 -1
  5. package/lib/graph/Core_HashUtils.d.ts +6 -0
  6. package/lib/graph/Core_HashUtils.d.ts.map +1 -1
  7. package/lib/graph/Core_HashUtils.js +7 -0
  8. package/lib/graph/Core_HashUtils.js.map +1 -1
  9. package/lib/graph/DependencyManager.d.ts +3 -0
  10. package/lib/graph/DependencyManager.d.ts.map +1 -1
  11. package/lib/graph/DependencyManager.js +4 -0
  12. package/lib/graph/DependencyManager.js.map +1 -1
  13. package/lib/graph/MetaModelConst.d.ts +2 -0
  14. package/lib/graph/MetaModelConst.d.ts.map +1 -1
  15. package/lib/graph/MetaModelConst.js +2 -0
  16. package/lib/graph/MetaModelConst.js.map +1 -1
  17. package/lib/graph/PureModel.d.ts +2 -0
  18. package/lib/graph/PureModel.d.ts.map +1 -1
  19. package/lib/graph/PureModel.js +9 -0
  20. package/lib/graph/PureModel.js.map +1 -1
  21. package/lib/graph/helpers/PureLanguageHelper.d.ts +2 -1
  22. package/lib/graph/helpers/PureLanguageHelper.d.ts.map +1 -1
  23. package/lib/graph/helpers/PureLanguageHelper.js +1 -0
  24. package/lib/graph/helpers/PureLanguageHelper.js.map +1 -1
  25. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts +2 -0
  26. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts.map +1 -1
  27. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.js.map +1 -1
  28. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.d.ts +40 -0
  29. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.d.ts.map +1 -0
  30. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js +58 -0
  31. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js.map +1 -0
  32. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.d.ts +6 -0
  33. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.d.ts.map +1 -1
  34. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js +16 -0
  35. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js.map +1 -1
  36. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts +17 -0
  37. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts.map +1 -1
  38. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js +41 -0
  39. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js.map +1 -1
  40. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.d.ts +2 -1
  41. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.d.ts.map +1 -1
  42. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.js +1 -0
  43. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.js.map +1 -1
  44. package/lib/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.d.ts +18 -0
  45. package/lib/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.d.ts.map +1 -0
  46. package/lib/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.js +26 -0
  47. package/lib/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.js.map +1 -0
  48. package/lib/graphManager/action/changeDetection/GraphObserverHelper.d.ts.map +1 -1
  49. package/lib/graphManager/action/changeDetection/GraphObserverHelper.js +4 -0
  50. package/lib/graphManager/action/changeDetection/GraphObserverHelper.js.map +1 -1
  51. package/lib/graphManager/action/changeDetection/PackageableElementObserver.d.ts.map +1 -1
  52. package/lib/graphManager/action/changeDetection/PackageableElementObserver.js +4 -0
  53. package/lib/graphManager/action/changeDetection/PackageableElementObserver.js.map +1 -1
  54. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.d.ts +5 -2
  55. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.d.ts.map +1 -1
  56. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.js +31 -2
  57. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.js.map +1 -1
  58. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.d.ts +2 -0
  59. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  60. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.js +10 -1
  61. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.js.map +1 -1
  62. package/lib/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts +2 -0
  63. package/lib/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts.map +1 -1
  64. package/lib/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.js.map +1 -1
  65. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.d.ts +38 -0
  66. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.d.ts.map +1 -0
  67. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.js +58 -0
  68. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.js.map +1 -0
  69. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.d.ts +5 -0
  70. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.d.ts.map +1 -1
  71. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js +11 -0
  72. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js.map +1 -1
  73. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts +15 -0
  74. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts.map +1 -1
  75. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js +32 -0
  76. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js.map +1 -1
  77. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts +2 -1
  78. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts.map +1 -1
  79. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js +1 -0
  80. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js.map +1 -1
  81. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  82. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +29 -4
  83. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  84. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.d.ts +20 -0
  85. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.d.ts.map +1 -0
  86. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.js +46 -0
  87. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.js.map +1 -0
  88. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.d.ts.map +1 -1
  89. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js +4 -0
  90. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js.map +1 -1
  91. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts +2 -0
  92. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts.map +1 -1
  93. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js +3 -0
  94. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js.map +1 -1
  95. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts +2 -0
  96. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts.map +1 -1
  97. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js +11 -0
  98. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js.map +1 -1
  99. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts +2 -0
  100. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts.map +1 -1
  101. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js +3 -0
  102. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js.map +1 -1
  103. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts +2 -0
  104. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts.map +1 -1
  105. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js +5 -0
  106. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js.map +1 -1
  107. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts +2 -0
  108. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts.map +1 -1
  109. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js +3 -0
  110. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js.map +1 -1
  111. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.d.ts +21 -0
  112. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.d.ts.map +1 -0
  113. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.js +51 -0
  114. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.js.map +1 -0
  115. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.d.ts.map +1 -1
  116. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js +23 -4
  117. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js.map +1 -1
  118. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.d.ts.map +1 -1
  119. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js +6 -0
  120. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js.map +1 -1
  121. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.d.ts.map +1 -1
  122. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js +34 -3
  123. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js.map +1 -1
  124. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.d.ts +20 -0
  125. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.d.ts.map +1 -0
  126. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.js +63 -0
  127. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.js.map +1 -0
  128. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.d.ts +3 -0
  129. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.d.ts.map +1 -1
  130. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js +5 -17
  131. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js.map +1 -1
  132. package/lib/index.d.ts +2 -1
  133. package/lib/index.d.ts.map +1 -1
  134. package/lib/index.js +2 -1
  135. package/lib/index.js.map +1 -1
  136. package/lib/package.json +1 -1
  137. package/package.json +3 -3
  138. package/src/graph/BasicModel.ts +33 -0
  139. package/src/graph/Core_HashUtils.ts +7 -0
  140. package/src/graph/DependencyManager.ts +10 -0
  141. package/src/graph/MetaModelConst.ts +2 -0
  142. package/src/graph/PureModel.ts +11 -0
  143. package/src/graph/helpers/PureLanguageHelper.ts +1 -0
  144. package/src/graph/metamodel/pure/packageableElements/PackageableElement.ts +2 -0
  145. package/src/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.ts +78 -0
  146. package/src/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.ts +25 -0
  147. package/src/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.ts +53 -0
  148. package/src/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.ts +1 -0
  149. package/src/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.ts +40 -0
  150. package/src/graphManager/action/changeDetection/GraphObserverHelper.ts +5 -0
  151. package/src/graphManager/action/changeDetection/PackageableElementObserver.ts +8 -0
  152. package/src/graphManager/action/changeDetection/STO_Relational_ObserverHelper.ts +47 -0
  153. package/src/graphManager/protocol/pure/v1/V1_PureGraphManager.ts +22 -1
  154. package/src/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.ts +4 -0
  155. package/src/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.ts +82 -0
  156. package/src/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.ts +16 -0
  157. package/src/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.ts +39 -0
  158. package/src/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.ts +1 -0
  159. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +33 -0
  160. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.ts +72 -0
  161. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.ts +8 -0
  162. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.ts +7 -0
  163. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.ts +28 -0
  164. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.ts +7 -0
  165. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.ts +13 -0
  166. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.ts +7 -0
  167. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.ts +88 -0
  168. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.ts +46 -0
  169. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.ts +13 -0
  170. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.ts +50 -0
  171. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.ts +120 -0
  172. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.ts +6 -22
  173. package/src/index.ts +2 -1
  174. package/tsconfig.json +6 -0
@@ -39,6 +39,7 @@ import {
39
39
  UsernamePasswordAuthenticationStrategy,
40
40
  GCPWorkloadIdentityFederationAuthenticationStrategy,
41
41
  MiddleTierUsernamePasswordAuthenticationStrategy,
42
+ TrinoDelegatedKerberosAuthenticationStrategy,
42
43
  } from '../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js';
43
44
  import {
44
45
  type DatasourceSpecification,
@@ -50,6 +51,7 @@ import {
50
51
  RedshiftDatasourceSpecification,
51
52
  BigQueryDatasourceSpecification,
52
53
  SpannerDatasourceSpecification,
54
+ TrinoDatasourceSpecification,
53
55
  } from '../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js';
54
56
  import type { ModelChainConnection } from '../../../../../../../graph/metamodel/pure/packageableElements/store/modelToModel/connection/ModelChainConnection.js';
55
57
  import { V1_initPackageableElement } from './V1_CoreTransformerHelper.js';
@@ -64,6 +66,8 @@ import {
64
66
  V1_StaticDatasourceSpecification,
65
67
  V1_RedshiftDatasourceSpecification,
66
68
  V1_SpannerDatasourceSpecification,
69
+ V1_TrinoDatasourceSpecification,
70
+ V1_TrinoSslSpecification,
67
71
  } from '../../../model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js';
68
72
  import {
69
73
  type V1_AuthenticationStrategy,
@@ -76,6 +80,7 @@ import {
76
80
  V1_OAuthAuthenticationStrategy,
77
81
  V1_GCPWorkloadIdentityFederationAuthenticationStrategy,
78
82
  V1_MiddleTierUsernamePasswordAuthenticationStrategy,
83
+ V1_TrinoDelegatedKerberosAuthenticationStrategy,
79
84
  } from '../../../model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js';
80
85
  import type { V1_Connection } from '../../../model/packageableElements/connection/V1_Connection.js';
81
86
  import {
@@ -178,6 +183,25 @@ const transformSpannerDatasourceSpecification = (
178
183
  return source;
179
184
  };
180
185
 
186
+ const transformTrinoDatasourceSpecification = (
187
+ metamodel: TrinoDatasourceSpecification,
188
+ ): V1_TrinoDatasourceSpecification => {
189
+ const source = new V1_TrinoDatasourceSpecification();
190
+ source.host = metamodel.host;
191
+ source.port = metamodel.port;
192
+ source.catalog = metamodel.catalog;
193
+ source.schema = metamodel.schema;
194
+ source.clientTags = metamodel.clientTags;
195
+ const sslSpecification = new V1_TrinoSslSpecification();
196
+ sslSpecification.ssl = metamodel.sslSpecification.ssl;
197
+ sslSpecification.trustStorePathVaultReference =
198
+ metamodel.sslSpecification.trustStorePathVaultReference;
199
+ sslSpecification.trustStorePasswordVaultReference =
200
+ metamodel.sslSpecification.trustStorePasswordVaultReference;
201
+ source.sslSpecification = sslSpecification;
202
+ return source;
203
+ };
204
+
181
205
  const transformDatasourceSpecification = (
182
206
  metamodel: DatasourceSpecification,
183
207
  context: V1_GraphTransformerContext,
@@ -201,6 +225,8 @@ const transformDatasourceSpecification = (
201
225
  return protocol;
202
226
  } else if (metamodel instanceof RedshiftDatasourceSpecification) {
203
227
  return transformRedshiftDatasourceSpecification(metamodel);
228
+ } else if (metamodel instanceof TrinoDatasourceSpecification) {
229
+ return transformTrinoDatasourceSpecification(metamodel);
204
230
  }
205
231
  const extraConnectionDatasourceSpecificationTransformers =
206
232
  context.plugins.flatMap(
@@ -277,6 +303,13 @@ const transformAuthenticationStrategy = (
277
303
  const auth = new V1_MiddleTierUsernamePasswordAuthenticationStrategy();
278
304
  auth.vaultReference = metamodel.vaultReference;
279
305
  return auth;
306
+ } else if (
307
+ metamodel instanceof TrinoDelegatedKerberosAuthenticationStrategy
308
+ ) {
309
+ const auth = new V1_TrinoDelegatedKerberosAuthenticationStrategy();
310
+ auth.kerberosRemoteServiceName = metamodel.kerberosRemoteServiceName;
311
+ auth.kerberosUseCanonicalHostname = metamodel.kerberosUseCanonicalHostname;
312
+ return auth;
280
313
  }
281
314
  const extraConnectionAuthenticationStrategyTransformers =
282
315
  context.plugins.flatMap(
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ type ExecutionEnvironmentInstance,
19
+ type ExecutionParameters,
20
+ SingleExecutionParameters,
21
+ MultiExecutionParameters,
22
+ } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
23
+ import { V1_initPackageableElement } from './V1_CoreTransformerHelper.js';
24
+ import type { V1_GraphTransformerContext } from './V1_GraphTransformerContext.js';
25
+ import {
26
+ type V1_ExecutionParameters,
27
+ V1_ExecutionEnvironmentInstance,
28
+ V1_MultiExecutionParameters,
29
+ V1_SingleExecutionParameters,
30
+ } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
31
+ import { V1_transformRuntime } from './V1_RuntimeTransformer.js';
32
+ import { UnsupportedOperationError } from '@finos/legend-shared';
33
+
34
+ const V1_transformSingleExecutionParameters = (
35
+ element: SingleExecutionParameters,
36
+ context: V1_GraphTransformerContext,
37
+ ): V1_SingleExecutionParameters => {
38
+ const _val = new V1_SingleExecutionParameters();
39
+ _val.key = element.key;
40
+ _val.mapping = element.mapping.valueForSerialization ?? '';
41
+ _val.runtime = V1_transformRuntime(element.runtime, context);
42
+ return _val;
43
+ };
44
+
45
+ const V1_transformExecutionParameters = (
46
+ element: ExecutionParameters,
47
+ context: V1_GraphTransformerContext,
48
+ ): V1_ExecutionParameters => {
49
+ if (element instanceof SingleExecutionParameters) {
50
+ return V1_transformSingleExecutionParameters(element, context);
51
+ } else if (element instanceof MultiExecutionParameters) {
52
+ const val = new V1_MultiExecutionParameters();
53
+ val.masterKey = element.masterKey;
54
+ val.singleExecutionParameters = element.singleExecutionParameters.map((s) =>
55
+ V1_transformSingleExecutionParameters(s, context),
56
+ );
57
+ return val;
58
+ }
59
+ throw new UnsupportedOperationError('Unsupported execution parameter type');
60
+ };
61
+
62
+ export const V1_transformExecutionEnvirnoment = (
63
+ element: ExecutionEnvironmentInstance,
64
+ context: V1_GraphTransformerContext,
65
+ ): V1_ExecutionEnvironmentInstance => {
66
+ const execEnv = new V1_ExecutionEnvironmentInstance();
67
+ V1_initPackageableElement(execEnv, element);
68
+ execEnv.executionParameters = element.executionParameters.map((e) =>
69
+ V1_transformExecutionParameters(e, context),
70
+ );
71
+ return execEnv;
72
+ };
@@ -66,6 +66,8 @@ import type {
66
66
  import type { V1_GraphTransformerContext } from './V1_GraphTransformerContext.js';
67
67
  import type { DataElement } from '../../../../../../../graph/metamodel/pure/packageableElements/data/DataElement.js';
68
68
  import { V1_transformDataElement } from './V1_DataElementTransformer.js';
69
+ import type { ExecutionEnvironmentInstance } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
70
+ import { V1_transformExecutionEnvirnoment } from './V1_ExecutionEnvironmentTransformer.js';
69
71
 
70
72
  class V1_PackageableElementTransformer
71
73
  implements PackageableElementVisitor<V1_PackageableElement>
@@ -175,6 +177,12 @@ class V1_PackageableElementTransformer
175
177
  visit_DataElement(element: DataElement): V1_PackageableElement {
176
178
  return V1_transformDataElement(element, this.context);
177
179
  }
180
+
181
+ visit_ExecutionEnvironmentInstance(
182
+ element: ExecutionEnvironmentInstance,
183
+ ): V1_PackageableElement {
184
+ return V1_transformExecutionEnvirnoment(element, this.context);
185
+ }
178
186
  }
179
187
 
180
188
  export const V1_transformPackageableElement = (
@@ -44,6 +44,7 @@ import type { V1_Measure } from '../../../model/packageableElements/domain/V1_Me
44
44
  import { V1_buildDatabaseSchemaViewsSecondPass } from './helpers/V1_DatabaseBuilderHelper.js';
45
45
  import type { V1_SectionIndex } from '../../../model/packageableElements/section/V1_SectionIndex.js';
46
46
  import type { V1_DataElement } from '../../../model/packageableElements/data/V1_DataElement.js';
47
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
47
48
 
48
49
  export class V1_ElementFifthPassBuilder
49
50
  implements V1_PackageableElementVisitor<void>
@@ -139,4 +140,10 @@ export class V1_ElementFifthPassBuilder
139
140
  visit_DataElement(element: V1_DataElement): void {
140
141
  throw new UnsupportedOperationError();
141
142
  }
143
+
144
+ visit_ExecutionEnvironmentInstance(
145
+ element: V1_ExecutionEnvironmentInstance,
146
+ ): void {
147
+ throw new UnsupportedOperationError();
148
+ }
142
149
  }
@@ -66,6 +66,8 @@ import { DataElement } from '../../../../../../../graph/metamodel/pure/packageab
66
66
  import { V1_buildFunctionSignature } from '../../../helpers/V1_DomainHelper.js';
67
67
  import { Multiplicity } from '../../../../../../../graph/metamodel/pure/packageableElements/domain/Multiplicity.js';
68
68
  import { PrimitiveType } from '../../../../../../../graph/metamodel/pure/packageableElements/domain/PrimitiveType.js';
69
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
70
+ import { ExecutionEnvironmentInstance } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
69
71
 
70
72
  export class V1_ElementFirstPassBuilder
71
73
  implements V1_PackageableElementVisitor<PackageableElement>
@@ -488,4 +490,30 @@ export class V1_ElementFirstPassBuilder
488
490
  this.context.currentSubGraph.setOwnDataElement(path, dataElement);
489
491
  return dataElement;
490
492
  }
493
+
494
+ visit_ExecutionEnvironmentInstance(
495
+ element: V1_ExecutionEnvironmentInstance,
496
+ ): PackageableElement {
497
+ assertNonEmptyString(
498
+ element.package,
499
+ `Execution Environment 'package' field is missing or empty`,
500
+ );
501
+ assertNonEmptyString(
502
+ element.name,
503
+ `Execution Environment 'name' field is missing or empty`,
504
+ );
505
+ const exEnvir = new ExecutionEnvironmentInstance(element.name);
506
+ const path = V1_buildFullPath(element.package, element.name);
507
+ V1_checkDuplicatedElement(path, this.context, this.elementPathCache);
508
+ addElementToPackage(
509
+ getOrCreateGraphPackage(
510
+ this.context.currentSubGraph,
511
+ element.package,
512
+ this.packageCache,
513
+ ),
514
+ exEnvir,
515
+ );
516
+ this.context.currentSubGraph.setOwnExecutionEnvironment(path, exEnvir);
517
+ return exEnvir;
518
+ }
491
519
  }
@@ -52,6 +52,7 @@ import { V1_buildMilestoningProperties } from './helpers/V1_MilestoneBuilderHelp
52
52
  import type { V1_DataElement } from '../../../model/packageableElements/data/V1_DataElement.js';
53
53
  import { V1_buildTestSuite } from './helpers/V1_TestBuilderHelper.js';
54
54
  import { MappingTestSuite } from '../../../../../../../graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.js';
55
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
55
56
 
56
57
  export class V1_ElementFourthPassBuilder
57
58
  implements V1_PackageableElementVisitor<void>
@@ -124,6 +125,12 @@ export class V1_ElementFourthPassBuilder
124
125
  );
125
126
  }
126
127
 
128
+ visit_ExecutionEnvironmentInstance(
129
+ element: V1_ExecutionEnvironmentInstance,
130
+ ): void {
131
+ throw new UnsupportedOperationError();
132
+ }
133
+
127
134
  visit_Mapping(element: V1_Mapping): void {
128
135
  const path = V1_buildFullPath(element.package, element.name);
129
136
  const mapping = this.context.currentSubGraph.getOwnMapping(path);
@@ -87,6 +87,8 @@ import { V1_buildFunctionSignature } from '../../../helpers/V1_DomainHelper.js';
87
87
  import { getFunctionName } from '../../../../../../../graph/helpers/DomainHelper.js';
88
88
  import { GraphBuilderError } from '../../../../../../GraphManagerUtils.js';
89
89
  import { PostValidation } from '../../../../../../../graph/metamodel/pure/packageableElements/service/PostValidation.js';
90
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
91
+ import { V1_buildExecutionParameters } from './V1_ExecutionEnvironmentBuilderHelper.js';
90
92
 
91
93
  export class V1_ElementSecondPassBuilder
92
94
  implements V1_PackageableElementVisitor<void>
@@ -423,4 +425,15 @@ export class V1_ElementSecondPassBuilder
423
425
  }
424
426
  dataElement.data = V1_buildEmbeddedData(element.data, this.context);
425
427
  }
428
+
429
+ visit_ExecutionEnvironmentInstance(
430
+ element: V1_ExecutionEnvironmentInstance,
431
+ ): void {
432
+ const execEnv = this.context.currentSubGraph.getOwnExecutionEnvironment(
433
+ V1_buildFullPath(element.package, element.name),
434
+ );
435
+ execEnv.executionParameters = element.executionParameters.map((e) =>
436
+ V1_buildExecutionParameters(e, this.context),
437
+ );
438
+ }
426
439
  }
@@ -59,6 +59,7 @@ import type { V1_SectionIndex } from '../../../model/packageableElements/section
59
59
  import { GraphBuilderError } from '../../../../../../../graphManager/GraphManagerUtils.js';
60
60
  import type { V1_DataElement } from '../../../model/packageableElements/data/V1_DataElement.js';
61
61
  import { V1_TEMPORARY__buildMilestoningClass } from './helpers/V1_MilestoneBuilderHelper.js';
62
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
62
63
 
63
64
  export class V1_ElementThirdPassBuilder
64
65
  implements V1_PackageableElementVisitor<void>
@@ -87,6 +88,12 @@ export class V1_ElementThirdPassBuilder
87
88
  throw new UnsupportedOperationError();
88
89
  }
89
90
 
91
+ visit_ExecutionEnvironmentInstance(
92
+ element: V1_ExecutionEnvironmentInstance,
93
+ ): void {
94
+ throw new UnsupportedOperationError();
95
+ }
96
+
90
97
  visit_Class(element: V1_Class): void {
91
98
  const _class = this.context.currentSubGraph.getOwnClass(
92
99
  V1_buildFullPath(element.package, element.name),
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ assertNonNullable,
19
+ UnsupportedOperationError,
20
+ } from '@finos/legend-shared';
21
+ import {
22
+ type Runtime,
23
+ RuntimePointer,
24
+ } from '../../../../../../../graph/metamodel/pure/packageableElements/runtime/Runtime.js';
25
+ import {
26
+ type ExecutionParameters,
27
+ MultiExecutionParameters,
28
+ SingleExecutionParameters,
29
+ } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
30
+ import {
31
+ type V1_Runtime,
32
+ V1_EngineRuntime,
33
+ V1_RuntimePointer,
34
+ } from '../../../model/packageableElements/runtime/V1_Runtime.js';
35
+ import {
36
+ type V1_ExecutionParameters,
37
+ V1_MultiExecutionParameters,
38
+ V1_SingleExecutionParameters,
39
+ } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
40
+ import { V1_buildEngineRuntime } from './helpers/V1_RuntimeBuilderHelper.js';
41
+ import type { V1_GraphBuilderContext } from './V1_GraphBuilderContext.js';
42
+
43
+ const buildExecutionRuntime = (
44
+ runtime: V1_Runtime,
45
+ context: V1_GraphBuilderContext,
46
+ ): Runtime => {
47
+ if (runtime instanceof V1_RuntimePointer) {
48
+ assertNonNullable(
49
+ runtime.runtime,
50
+ `Runtime pointer 'runtime' field is missing`,
51
+ );
52
+ return new RuntimePointer(context.resolveRuntime(runtime.runtime));
53
+ } else if (runtime instanceof V1_EngineRuntime) {
54
+ return V1_buildEngineRuntime(runtime, context);
55
+ }
56
+ throw new UnsupportedOperationError();
57
+ };
58
+
59
+ export const V1_buildSingleExecutionParameters = (
60
+ protocol: V1_SingleExecutionParameters,
61
+ context: V1_GraphBuilderContext,
62
+ ): SingleExecutionParameters => {
63
+ const element = new SingleExecutionParameters();
64
+ element.key = protocol.key;
65
+ element.mapping = context.resolveMapping(protocol.mapping);
66
+ element.runtime = buildExecutionRuntime(protocol.runtime, context);
67
+
68
+ return element;
69
+ };
70
+
71
+ export const V1_buildExecutionParameters = (
72
+ protocol: V1_ExecutionParameters,
73
+ context: V1_GraphBuilderContext,
74
+ ): ExecutionParameters => {
75
+ if (protocol instanceof V1_SingleExecutionParameters) {
76
+ return V1_buildSingleExecutionParameters(protocol, context);
77
+ } else if (protocol instanceof V1_MultiExecutionParameters) {
78
+ const element = new MultiExecutionParameters();
79
+ element.masterKey = protocol.masterKey;
80
+ element.singleExecutionParameters = protocol.singleExecutionParameters.map(
81
+ (e) => V1_buildSingleExecutionParameters(e, context),
82
+ );
83
+ return element;
84
+ }
85
+ throw new UnsupportedOperationError(
86
+ 'Unsupported execution environment parameter type',
87
+ );
88
+ };
@@ -30,6 +30,8 @@ import {
30
30
  RedshiftDatasourceSpecification,
31
31
  BigQueryDatasourceSpecification,
32
32
  SpannerDatasourceSpecification,
33
+ TrinoDatasourceSpecification,
34
+ TrinoSslSpecification,
33
35
  } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js';
34
36
  import {
35
37
  type AuthenticationStrategy,
@@ -42,6 +44,7 @@ import {
42
44
  DelegatedKerberosAuthenticationStrategy,
43
45
  GCPWorkloadIdentityFederationAuthenticationStrategy,
44
46
  MiddleTierUsernamePasswordAuthenticationStrategy,
47
+ TrinoDelegatedKerberosAuthenticationStrategy,
45
48
  } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js';
46
49
  import type { V1_GraphBuilderContext } from '../../../../transformation/pureGraph/to/V1_GraphBuilderContext.js';
47
50
  import {
@@ -54,6 +57,7 @@ import {
54
57
  V1_RedshiftDatasourceSpecification,
55
58
  V1_BigQueryDatasourceSpecification,
56
59
  V1_SpannerDatasourceSpecification,
60
+ V1_TrinoDatasourceSpecification,
57
61
  } from '../../../../model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js';
58
62
  import {
59
63
  type V1_AuthenticationStrategy,
@@ -66,6 +70,7 @@ import {
66
70
  V1_UsernamePasswordAuthenticationStrategy,
67
71
  V1_GCPWorkloadIdentityFederationAuthenticationStrategy,
68
72
  V1_MiddleTierUsernamePasswordAuthenticationStrategy,
73
+ V1_TrinoDelegatedKerberosAuthenticationStrategy,
69
74
  } from '../../../../model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js';
70
75
  import type { STO_Relational_PureProtocolProcessorPlugin_Extension } from '../../../../../extensions/STO_Relational_PureProtocolProcessorPlugin_Extension.js';
71
76
 
@@ -239,6 +244,35 @@ export const V1_buildDatasourceSpecification = (
239
244
  protocol.proxyPort,
240
245
  );
241
246
  return spannerSpec;
247
+ } else if (protocol instanceof V1_TrinoDatasourceSpecification) {
248
+ assertNonEmptyString(
249
+ protocol.host,
250
+ `Trino datasource specification 'host' field is missing or empty`,
251
+ );
252
+ assertNonNullable(
253
+ protocol.port,
254
+ `Trino datasource specification 'port' field is missing or empty`,
255
+ );
256
+ assertNonNullable(
257
+ protocol.sslSpecification.ssl,
258
+ `Trino datasource specification 'ssl' field is missing or empty`,
259
+ );
260
+ const sslSpecification = new TrinoSslSpecification(
261
+ protocol.sslSpecification.ssl,
262
+ );
263
+ sslSpecification.trustStorePathVaultReference =
264
+ protocol.sslSpecification.trustStorePathVaultReference;
265
+ sslSpecification.trustStorePasswordVaultReference =
266
+ protocol.sslSpecification.trustStorePasswordVaultReference;
267
+ const trinoSpec = new TrinoDatasourceSpecification(
268
+ protocol.host,
269
+ protocol.port,
270
+ sslSpecification,
271
+ );
272
+ trinoSpec.catalog = protocol.catalog;
273
+ trinoSpec.schema = protocol.schema;
274
+ trinoSpec.clientTags = protocol.clientTags;
275
+ return trinoSpec;
242
276
  }
243
277
  const extraConnectionDatasourceSpecificationBuilders =
244
278
  context.extensions.plugins.flatMap(
@@ -345,6 +379,18 @@ export const V1_buildAuthenticationStrategy = (
345
379
  return new MiddleTierUsernamePasswordAuthenticationStrategy(
346
380
  protocol.vaultReference,
347
381
  );
382
+ } else if (
383
+ protocol instanceof V1_TrinoDelegatedKerberosAuthenticationStrategy
384
+ ) {
385
+ assertNonEmptyString(
386
+ protocol.kerberosRemoteServiceName,
387
+ `Trino delegated kerberos authentication strategy 'kerberosRemoteServiceName' field is missing or empty`,
388
+ );
389
+
390
+ return new TrinoDelegatedKerberosAuthenticationStrategy(
391
+ protocol.kerberosRemoteServiceName,
392
+ protocol.kerberosUseCanonicalHostname,
393
+ );
348
394
  }
349
395
 
350
396
  const extraConnectionAuthenticationStrategyBuilders =
@@ -100,6 +100,11 @@ import {
100
100
  V1_dataElementModelSchema,
101
101
  V1_DATA_ELEMENT_PROTOCOL_TYPE,
102
102
  } from './serializationHelpers/V1_DataElementSerializationHelper.js';
103
+ import {
104
+ V1_executionEnvModelSchema,
105
+ V1_EXECUTION_ENVIRONMENT_ELEMENT_PROTOCOL_TYPE,
106
+ } from './serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.js';
107
+ import type { V1_ExecutionEnvironmentInstance } from '../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
103
108
 
104
109
  class V1_PackageableElementSerializer
105
110
  implements V1_PackageableElementVisitor<PlainObject<V1_PackageableElement>>
@@ -174,6 +179,12 @@ class V1_PackageableElementSerializer
174
179
  return serialize(V1_serviceModelSchema(this.plugins), element);
175
180
  }
176
181
 
182
+ visit_ExecutionEnvironmentInstance(
183
+ element: V1_ExecutionEnvironmentInstance,
184
+ ): PlainObject<V1_ExecutionEnvironmentInstance> {
185
+ return serialize(V1_executionEnvModelSchema, element);
186
+ }
187
+
177
188
  visit_PackageableRuntime(
178
189
  element: V1_PackageableRuntime,
179
190
  ): PlainObject<V1_PackageableElement> {
@@ -268,6 +279,8 @@ export const V1_deserializePackageableElement = (
268
279
  return deserialize(V1_mappingModelSchema(plugins), json);
269
280
  case V1_SERVICE_ELEMENT_PROTOCOL_TYPE:
270
281
  return deserialize(V1_serviceModelSchema(plugins), json);
282
+ case V1_EXECUTION_ENVIRONMENT_ELEMENT_PROTOCOL_TYPE:
283
+ return deserialize(V1_executionEnvModelSchema, json);
271
284
  case V1_PACKAGEABLE_CONNECTION_ELEMENT_PROTOCOL_TYPE:
272
285
  return deserialize(V1_packageableConnectionModelSchema(plugins), json);
273
286
  case V1_PACKAGEABLE_RUNTIME_ELEMENT_PROTOCOL_TYPE:
@@ -28,6 +28,7 @@ import {
28
28
  import {
29
29
  type PlainObject,
30
30
  usingConstantValueSchema,
31
+ usingModelSchema,
31
32
  IllegalStateError,
32
33
  UnsupportedOperationError,
33
34
  customEquivalentList,
@@ -52,6 +53,8 @@ import {
52
53
  V1_EmbeddedH2DatasourceSpecification,
53
54
  V1_RedshiftDatasourceSpecification,
54
55
  V1_SpannerDatasourceSpecification,
56
+ V1_TrinoDatasourceSpecification,
57
+ V1_TrinoSslSpecification,
55
58
  } from '../../../model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js';
56
59
  import {
57
60
  type V1_AuthenticationStrategy,
@@ -64,6 +67,7 @@ import {
64
67
  V1_UsernamePasswordAuthenticationStrategy,
65
68
  V1_GCPWorkloadIdentityFederationAuthenticationStrategy,
66
69
  V1_MiddleTierUsernamePasswordAuthenticationStrategy,
70
+ V1_TrinoDelegatedKerberosAuthenticationStrategy,
67
71
  } from '../../../model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js';
68
72
  import type { PureProtocolProcessorPlugin } from '../../../../PureProtocolProcessorPlugin.js';
69
73
  import type { STO_Relational_PureProtocolProcessorPlugin_Extension } from '../../../../extensions/STO_Relational_PureProtocolProcessorPlugin_Extension.js';
@@ -163,6 +167,7 @@ enum V1_DatasourceSpecificationType {
163
167
  REDSHIFT = 'redshift',
164
168
  BIGQUERY = 'bigQuery',
165
169
  SPANNER = 'spanner',
170
+ TRINO = 'Trino',
166
171
  }
167
172
 
168
173
  const staticDatasourceSpecificationModelSchema = createModelSchema(
@@ -260,6 +265,28 @@ const spannerDatasourceSpecificationModelSchema = createModelSchema(
260
265
  },
261
266
  );
262
267
 
268
+ const trinoSslSpecificationModelSchema = createModelSchema(
269
+ V1_TrinoSslSpecification,
270
+ {
271
+ ssl: primitive(),
272
+ trustStorePathVaultReference: optional(primitive()),
273
+ trustStorePasswordVaultReference: optional(primitive()),
274
+ },
275
+ );
276
+
277
+ const trinoDatasourceSpecificationModelSchema = createModelSchema(
278
+ V1_TrinoDatasourceSpecification,
279
+ {
280
+ _type: usingConstantValueSchema(V1_DatasourceSpecificationType.TRINO),
281
+ host: primitive(),
282
+ port: primitive(),
283
+ catalog: optional(primitive()),
284
+ schema: optional(primitive()),
285
+ clientTags: optional(primitive()),
286
+ sslSpecification: usingModelSchema(trinoSslSpecificationModelSchema),
287
+ },
288
+ );
289
+
263
290
  export const V1_serializeDatasourceSpecification = (
264
291
  protocol: V1_DatasourceSpecification,
265
292
  plugins: PureProtocolProcessorPlugin[],
@@ -280,6 +307,8 @@ export const V1_serializeDatasourceSpecification = (
280
307
  return serialize(redshiftDatasourceSpecificationModelSchema, protocol);
281
308
  } else if (protocol instanceof V1_SpannerDatasourceSpecification) {
282
309
  return serialize(spannerDatasourceSpecificationModelSchema, protocol);
310
+ } else if (protocol instanceof V1_TrinoDatasourceSpecification) {
311
+ return serialize(trinoDatasourceSpecificationModelSchema, protocol);
283
312
  }
284
313
  const extraConnectionDatasourceSpecificationProtocolSerializers =
285
314
  plugins.flatMap(
@@ -322,6 +351,8 @@ export const V1_deserializeDatasourceSpecification = (
322
351
  return deserialize(redshiftDatasourceSpecificationModelSchema, json);
323
352
  case V1_DatasourceSpecificationType.SPANNER:
324
353
  return deserialize(spannerDatasourceSpecificationModelSchema, json);
354
+ case V1_DatasourceSpecificationType.TRINO:
355
+ return deserialize(trinoDatasourceSpecificationModelSchema, json);
325
356
  default: {
326
357
  const extraConnectionDatasourceSpecificationProtocolDeserializers =
327
358
  plugins.flatMap(
@@ -356,6 +387,7 @@ enum V1_AuthenticationStrategyType {
356
387
  USERNAME_PASSWORD = 'userNamePassword',
357
388
  GCP_WORKLOAD_IDENTITY_FEDERATION = 'gcpWorkloadIdentityFederation',
358
389
  MIDDLE_TIER_USERNAME_PASSWORD = 'middleTierUserNamePassword',
390
+ TRINO_DELEGATED_KERBEROS = 'TrinoDelegatedKerberosAuth',
359
391
  }
360
392
 
361
393
  const V1_delegatedKerberosAuthenticationStrategyModelSchema = createModelSchema(
@@ -429,6 +461,15 @@ const V1_UsernamePasswordAuthenticationStrategyModelSchema = createModelSchema(
429
461
  },
430
462
  );
431
463
 
464
+ const V1_TrinoDelegatedKerberosAuthenticationStrategyModelSchema =
465
+ createModelSchema(V1_TrinoDelegatedKerberosAuthenticationStrategy, {
466
+ _type: usingConstantValueSchema(
467
+ V1_AuthenticationStrategyType.TRINO_DELEGATED_KERBEROS,
468
+ ),
469
+ kerberosRemoteServiceName: primitive(),
470
+ kerberosUseCanonicalHostname: optional(primitive()),
471
+ });
472
+
432
473
  const V1_oAuthAuthenticationStrategyModelSchema = createModelSchema(
433
474
  V1_OAuthAuthenticationStrategy,
434
475
  {
@@ -485,6 +526,13 @@ export const V1_serializeAuthenticationStrategy = (
485
526
  V1_MiddleTierUsernamePasswordAuthenticationStrategyModelSchema,
486
527
  protocol,
487
528
  );
529
+ } else if (
530
+ protocol instanceof V1_TrinoDelegatedKerberosAuthenticationStrategy
531
+ ) {
532
+ return serialize(
533
+ V1_TrinoDelegatedKerberosAuthenticationStrategyModelSchema,
534
+ protocol,
535
+ );
488
536
  }
489
537
  const extraConnectionAuthenticationStrategyProtocolSerializers =
490
538
  plugins.flatMap(
@@ -547,6 +595,8 @@ export const V1_deserializeAuthenticationStrategy = (
547
595
  V1_MiddleTierUsernamePasswordAuthenticationStrategyModelSchema,
548
596
  json,
549
597
  );
598
+ case V1_AuthenticationStrategyType.TRINO_DELEGATED_KERBEROS:
599
+ return deserialize(V1_TrinoDelegatedKerberosAuthenticationStrategy, json);
550
600
  default: {
551
601
  const extraConnectionAuthenticationStrategyProtocolDeserializers =
552
602
  plugins.flatMap(