@aws-amplify/graphql-api-construct 1.5.7-implicit-fields.0 → 1.6.0-secrets-manager.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. package/.jsii +147 -36
  2. package/API.md +13 -1
  3. package/CHANGELOG.md +3 -5
  4. package/README.md +75 -17
  5. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  6. package/lib/amplify-graphql-api.js +1 -1
  7. package/lib/amplify-graphql-definition.js +1 -1
  8. package/lib/internal/data-source-config.js +37 -4
  9. package/lib/model-datasource-strategy-types.d.ts +25 -1
  10. package/lib/model-datasource-strategy-types.js +1 -1
  11. package/lib/sql-model-datasource-strategy.d.ts +13 -1
  12. package/lib/sql-model-datasource-strategy.js +26 -4
  13. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +1 -12
  14. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
  15. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +1 -32
  16. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
  17. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +14 -20
  18. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +1 -7
  19. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +9 -15
  20. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +1 -5
  21. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +8 -14
  22. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +1 -5
  23. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +8 -14
  24. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +1 -5
  25. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +9 -15
  26. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +1 -5
  27. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  28. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +14 -16
  29. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +3 -11
  30. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
  31. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +5 -5
  32. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
  33. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/common.d.ts.map +1 -1
  34. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/common.js +0 -15
  35. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/common.js.map +1 -1
  36. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  37. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  38. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  39. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +5 -1
  40. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  41. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +71 -26
  42. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  43. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  44. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +21 -7
  45. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  46. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +11 -17
  47. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +1 -5
  48. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  49. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +8 -14
  50. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +1 -11
  51. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.d.ts.map +1 -1
  52. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js +0 -10
  53. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js.map +1 -1
  54. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +11 -17
  55. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +1 -7
  56. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  57. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +9 -15
  58. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +1 -5
  59. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +10 -16
  60. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +3 -5
  61. package/node_modules/@aws-amplify/graphql-transformer/package.json +17 -23
  62. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +0 -12
  63. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +1 -11
  64. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +1 -1
  65. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
  66. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +2 -6
  67. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
  68. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts +0 -2
  69. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts.map +1 -1
  70. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js +0 -14
  71. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js.map +1 -1
  72. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +1 -1
  73. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
  74. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +1 -5
  75. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
  76. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts +0 -4
  77. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts.map +1 -1
  78. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js +1 -18
  79. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js.map +1 -1
  80. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +8 -14
  81. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +27 -5
  82. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +2 -2
  83. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +12 -1
  84. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -1
  85. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +22 -0
  86. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -1
  87. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-output-provider.d.ts +0 -2
  88. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-output-provider.d.ts.map +1 -1
  89. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -8
  90. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +76 -1
  91. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-output-provider.ts +0 -4
  92. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  93. package/node_modules/graphql-mapping-template/CHANGELOG.md +0 -4
  94. package/node_modules/graphql-mapping-template/package.json +5 -12
  95. package/node_modules/graphql-transformer-common/API.md +0 -14
  96. package/node_modules/graphql-transformer-common/CHANGELOG.md +0 -10
  97. package/node_modules/graphql-transformer-common/lib/index.d.ts +0 -1
  98. package/node_modules/graphql-transformer-common/lib/index.d.ts.map +1 -1
  99. package/node_modules/graphql-transformer-common/lib/index.js +0 -1
  100. package/node_modules/graphql-transformer-common/lib/index.js.map +1 -1
  101. package/node_modules/graphql-transformer-common/package.json +6 -13
  102. package/package.json +21 -27
  103. package/src/internal/data-source-config.ts +42 -9
  104. package/src/model-datasource-strategy-types.ts +33 -1
  105. package/src/sql-model-datasource-strategy.ts +32 -1
  106. package/node_modules/graphql-mapping-template/LICENSE +0 -201
  107. package/node_modules/graphql-transformer-common/LICENSE +0 -201
  108. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.d.ts +0 -13
  109. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.d.ts.map +0 -1
  110. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.js +0 -16
  111. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.js.map +0 -1
package/API.md CHANGED
@@ -340,7 +340,19 @@ export class SQLLambdaModelDataSourceStrategyFactory {
340
340
  }
341
341
 
342
342
  // @public
343
- export interface SqlModelDataSourceDbConnectionConfig {
343
+ export type SqlModelDataSourceDbConnectionConfig = SqlModelDataSourceSecretsManagerDbConnectionConfig | SqlModelDataSourceSsmDbConnectionConfig;
344
+
345
+ // @public
346
+ export interface SqlModelDataSourceSecretsManagerDbConnectionConfig {
347
+ readonly databaseName: string;
348
+ readonly hostname: string;
349
+ readonly keyArn?: string;
350
+ readonly port: number;
351
+ readonly secretArn: string;
352
+ }
353
+
354
+ // @public
355
+ export interface SqlModelDataSourceSsmDbConnectionConfig {
344
356
  readonly databaseNameSsmPath: string;
345
357
  readonly hostnameSsmPath: string;
346
358
  readonly passwordSsmPath: string;
package/CHANGELOG.md CHANGED
@@ -3,13 +3,11 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [1.5.7-implicit-fields.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.5.6...@aws-amplify/graphql-api-construct@1.5.7-implicit-fields.0) (2024-02-07)
6
+ # [1.6.0-secrets-manager.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.5.5...@aws-amplify/graphql-api-construct@1.6.0-secrets-manager.0) (2024-02-21)
7
7
 
8
- **Note:** Version bump only for package @aws-amplify/graphql-api-construct
9
-
10
- ## [1.5.6](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.5.5...@aws-amplify/graphql-api-construct@1.5.6) (2024-02-05)
8
+ ### Features
11
9
 
12
- **Note:** Version bump only for package @aws-amplify/graphql-api-construct
10
+ - add secrets manager support for sql lambda auth ([#2103](https://github.com/aws-amplify/amplify-category-api/issues/2103)) ([fde423b](https://github.com/aws-amplify/amplify-category-api/commit/fde423bba09403c6bfd6788cc63546d629d756b6))
13
11
 
14
12
  ## [1.5.5](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.5.4...@aws-amplify/graphql-api-construct@1.5.5) (2024-01-30)
15
13
 
package/README.md CHANGED
@@ -2623,7 +2623,7 @@ const sQLLambdaModelDataSourceStrategy: SQLLambdaModelDataSourceStrategy = { ...
2623
2623
 
2624
2624
  | **Name** | **Type** | **Description** |
2625
2625
  | --- | --- | --- |
2626
- | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig">dbConnectionConfig</a></code> | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig">SqlModelDataSourceDbConnectionConfig</a></code> | The parameters the Lambda data source will use to connect to the database. |
2626
+ | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig">dbConnectionConfig</a></code> | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig">SqlModelDataSourceSecretsManagerDbConnectionConfig</a> \| <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig">SqlModelDataSourceSsmDbConnectionConfig</a></code> | The parameters the Lambda data source will use to connect to the database. |
2627
2627
  | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbType">dbType</a></code> | <code>string</code> | The type of the SQL database used to process model operations for this definition. |
2628
2628
  | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.name">name</a></code> | <code>string</code> | The name of the strategy. |
2629
2629
  | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.customSqlStatements">customSqlStatements</a></code> | <code>{[ key: string ]: string}</code> | Custom SQL statements. |
@@ -2635,10 +2635,10 @@ const sQLLambdaModelDataSourceStrategy: SQLLambdaModelDataSourceStrategy = { ...
2635
2635
  ##### `dbConnectionConfig`<sup>Required</sup> <a name="dbConnectionConfig" id="@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig"></a>
2636
2636
 
2637
2637
  ```typescript
2638
- public readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;
2638
+ public readonly dbConnectionConfig: SqlModelDataSourceSecretsManagerDbConnectionConfig | SqlModelDataSourceSsmDbConnectionConfig;
2639
2639
  ```
2640
2640
 
2641
- - *Type:* <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig">SqlModelDataSourceDbConnectionConfig</a>
2641
+ - *Type:* <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig">SqlModelDataSourceSecretsManagerDbConnectionConfig</a> | <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig">SqlModelDataSourceSsmDbConnectionConfig</a>
2642
2642
 
2643
2643
  The parameters the Lambda data source will use to connect to the database.
2644
2644
 
@@ -2710,33 +2710,91 @@ The configuration of the VPC into which to install the Lambda.
2710
2710
 
2711
2711
  ---
2712
2712
 
2713
- ### SqlModelDataSourceDbConnectionConfig <a name="SqlModelDataSourceDbConnectionConfig" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig"></a>
2713
+ ### SqlModelDataSourceSecretsManagerDbConnectionConfig <a name="SqlModelDataSourceSecretsManagerDbConnectionConfig" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig"></a>
2714
+
2715
+ #### Initializer <a name="Initializer" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.Initializer"></a>
2716
+
2717
+ ```typescript
2718
+ import { SqlModelDataSourceSecretsManagerDbConnectionConfig } from '@aws-amplify/graphql-api-construct'
2719
+
2720
+ const sqlModelDataSourceSecretsManagerDbConnectionConfig: SqlModelDataSourceSecretsManagerDbConnectionConfig = { ... }
2721
+ ```
2722
+
2723
+ #### Properties <a name="Properties" id="Properties"></a>
2724
+
2725
+ | **Name** | **Type** | **Description** |
2726
+ | --- | --- | --- |
2727
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.databaseName">databaseName</a></code> | <code>string</code> | database name. |
2728
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.port">port</a></code> | <code>number</code> | port number of the database proxy, cluster, or instance. |
2729
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.secretArn">secretArn</a></code> | <code>string</code> | The arn of the managed secret with username, password, and hostname to use when connecting to the database. |
2730
+
2731
+ ---
2732
+
2733
+ ##### `databaseName`<sup>Required</sup> <a name="databaseName" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.databaseName"></a>
2734
+
2735
+ ```typescript
2736
+ public readonly databaseName: string;
2737
+ ```
2738
+
2739
+ - *Type:* string
2740
+
2741
+ database name.
2742
+
2743
+ ---
2744
+
2745
+ ##### `port`<sup>Required</sup> <a name="port" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.port"></a>
2746
+
2747
+ ```typescript
2748
+ public readonly port: number;
2749
+ ```
2750
+
2751
+ - *Type:* number
2752
+
2753
+ port number of the database proxy, cluster, or instance.
2754
+
2755
+ ---
2756
+
2757
+ ##### `secretArn`<sup>Required</sup> <a name="secretArn" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.secretArn"></a>
2758
+
2759
+ ```typescript
2760
+ public readonly secretArn: string;
2761
+ ```
2762
+
2763
+ - *Type:* string
2764
+
2765
+ The arn of the managed secret with username, password, and hostname to use when connecting to the database.
2766
+
2767
+ *
2768
+
2769
+ ---
2770
+
2771
+ ### SqlModelDataSourceSsmDbConnectionConfig <a name="SqlModelDataSourceSsmDbConnectionConfig" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig"></a>
2714
2772
 
2715
2773
  The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
2716
2774
 
2717
2775
  These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
2718
2776
 
2719
- #### Initializer <a name="Initializer" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.Initializer"></a>
2777
+ #### Initializer <a name="Initializer" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.Initializer"></a>
2720
2778
 
2721
2779
  ```typescript
2722
- import { SqlModelDataSourceDbConnectionConfig } from '@aws-amplify/graphql-api-construct'
2780
+ import { SqlModelDataSourceSsmDbConnectionConfig } from '@aws-amplify/graphql-api-construct'
2723
2781
 
2724
- const sqlModelDataSourceDbConnectionConfig: SqlModelDataSourceDbConnectionConfig = { ... }
2782
+ const sqlModelDataSourceSsmDbConnectionConfig: SqlModelDataSourceSsmDbConnectionConfig = { ... }
2725
2783
  ```
2726
2784
 
2727
2785
  #### Properties <a name="Properties" id="Properties"></a>
2728
2786
 
2729
2787
  | **Name** | **Type** | **Description** |
2730
2788
  | --- | --- | --- |
2731
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.databaseNameSsmPath">databaseNameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the database name. |
2732
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.hostnameSsmPath">hostnameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the hostname of the database. |
2733
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.passwordSsmPath">passwordSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the password to use when connecting to the database. |
2734
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.portSsmPath">portSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. |
2735
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.usernameSsmPath">usernameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the username to use when connecting to the database. |
2789
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.databaseNameSsmPath">databaseNameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the database name. |
2790
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.hostnameSsmPath">hostnameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the hostname of the database. |
2791
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.passwordSsmPath">passwordSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the password to use when connecting to the database. |
2792
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.portSsmPath">portSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. |
2793
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.usernameSsmPath">usernameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the username to use when connecting to the database. |
2736
2794
 
2737
2795
  ---
2738
2796
 
2739
- ##### `databaseNameSsmPath`<sup>Required</sup> <a name="databaseNameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.databaseNameSsmPath"></a>
2797
+ ##### `databaseNameSsmPath`<sup>Required</sup> <a name="databaseNameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.databaseNameSsmPath"></a>
2740
2798
 
2741
2799
  ```typescript
2742
2800
  public readonly databaseNameSsmPath: string;
@@ -2748,7 +2806,7 @@ The Secure Systems Manager parameter containing the database name.
2748
2806
 
2749
2807
  ---
2750
2808
 
2751
- ##### `hostnameSsmPath`<sup>Required</sup> <a name="hostnameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.hostnameSsmPath"></a>
2809
+ ##### `hostnameSsmPath`<sup>Required</sup> <a name="hostnameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.hostnameSsmPath"></a>
2752
2810
 
2753
2811
  ```typescript
2754
2812
  public readonly hostnameSsmPath: string;
@@ -2763,7 +2821,7 @@ of a database proxy, cluster, or instance.
2763
2821
 
2764
2822
  ---
2765
2823
 
2766
- ##### `passwordSsmPath`<sup>Required</sup> <a name="passwordSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.passwordSsmPath"></a>
2824
+ ##### `passwordSsmPath`<sup>Required</sup> <a name="passwordSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.passwordSsmPath"></a>
2767
2825
 
2768
2826
  ```typescript
2769
2827
  public readonly passwordSsmPath: string;
@@ -2775,7 +2833,7 @@ The Secure Systems Manager parameter containing the password to use when connect
2775
2833
 
2776
2834
  ---
2777
2835
 
2778
- ##### `portSsmPath`<sup>Required</sup> <a name="portSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.portSsmPath"></a>
2836
+ ##### `portSsmPath`<sup>Required</sup> <a name="portSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.portSsmPath"></a>
2779
2837
 
2780
2838
  ```typescript
2781
2839
  public readonly portSsmPath: string;
@@ -2787,7 +2845,7 @@ The Secure Systems Manager parameter containing the port number of the database
2787
2845
 
2788
2846
  ---
2789
2847
 
2790
- ##### `usernameSsmPath`<sup>Required</sup> <a name="usernameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.usernameSsmPath"></a>
2848
+ ##### `usernameSsmPath`<sup>Required</sup> <a name="usernameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.usernameSsmPath"></a>
2791
2849
 
2792
2850
  ```typescript
2793
2851
  public readonly usernameSsmPath: string;
@@ -98,5 +98,5 @@ class AmplifyDynamoDbTableWrapper {
98
98
  }
99
99
  exports.AmplifyDynamoDbTableWrapper = AmplifyDynamoDbTableWrapper;
100
100
  _a = JSII_RTTI_SYMBOL_1;
101
- AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.5.7-implicit-fields.0" };
101
+ AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.6.0-secrets-manager.0" };
102
102
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1keW5hbW9kYi10YWJsZS13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwQztBQUcxQyxNQUFNLG9DQUFvQyxHQUFHLDhCQUE4QixDQUFDO0FBZ0M1RTs7O0dBR0c7QUFDSCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFGVyxPQUFPLHVCQUFQLE9BQU8sUUFFbEI7QUEyQ0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsMkJBQTJCO0lBQ3RDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsWUFBWSx5QkFBVyxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssb0NBQW9DLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQTZCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDaEQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLG9DQUFvQyxFQUFFO1lBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLG9DQUFvQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzNIO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXLENBQUMsV0FBd0I7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUIsQ0FBQyx1QkFBZ0Q7UUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksMEJBQTBCLENBQUMsMEJBQW1DO1FBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsa0NBQWtDLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxxQkFBcUIsQ0FBQyxxQkFBNEM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNENBQTRDLENBQUMsU0FBaUIsRUFBRSxxQkFBNEM7UUFDMUcsTUFBTSxJQUFJLEdBQTJDLE1BQU0sQ0FBQyxPQUFPLENBQ2hFLElBQUksQ0FBQyxRQUFnQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsc0JBQXNCLElBQUksRUFBRSxDQUM5RSxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ILElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQy9FO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CLENBQUMsbUJBQXdDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQixDQUFDLGdCQUFrQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSx5QkFBeUIsQ0FBQyx5QkFBa0M7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7O0FBbkZILGtFQW9GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQmlsbGluZ01vZGUsIFN0cmVhbVZpZXdUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcblxuY29uc3QgQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUnO1xuXG4vKipcbiAqIFNoYXBlIGZvciBUVEwgY29uZmlnLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIEJvb2xlYW4gZGV0ZXJtaW5pbmcgaWYgdGhlIHR0bCBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBuYW1lIHRvIGFwcGx5IHRvIHRoZSB0dGwgc3BlYy5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBjb25maWcgaW4gRERCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBUaGUgcmVhZCBjYXBhY2l0eSB1bml0cyBvbiB0aGUgdGFibGUgb3IgaW5kZXguXG4gICAqL1xuICByZWFkb25seSByZWFkQ2FwYWNpdHlVbml0czogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd3JpdGUgY2FwYWNpdHkgdW5pdHMgb24gdGhlIHRhYmxlIG9yIGluZGV4LlxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogU2VydmVyIFNpZGUgRW5jcnlwdGlvbiBUeXBlIFZhbHVlc1xuICogLSBgS01TYCAtIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLTVMuIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBLTVMgKEFXUyBLTVMgY2hhcmdlcyBhcHBseSkuXG4gKi9cbmV4cG9ydCBlbnVtIFNTRVR5cGUge1xuICBLTVMgPSAnS01TJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTRVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBpcyBkb25lIHVzaW5nIGFuIEFXUyBtYW5hZ2VkIGtleSBvciBhbiBBV1Mgb3duZWQga2V5LlxuICAgKiBJZiBlbmFibGVkICh0cnVlKSwgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlIGlzIHNldCB0byBgS01TYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKCBBV1MgS01TIGNoYXJnZXMgYXBwbHkpLlxuICAgKiBJZiBkaXNhYmxlZCAoZmFsc2UpIG9yIG5vdCBzcGVjaWZpZWQsIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgc2V0IHRvIEFXUyBvd25lZCBrZXkuXG4gICAqL1xuICByZWFkb25seSBzc2VFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIEtNUyBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIEFXUyBLTVMgZW5jcnlwdGlvbi5cbiAgICogVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZVxuICAgKiB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYWxpYXMvYXdzL2R5bmFtb2RiYCAuXG4gICAqL1xuICByZWFkb25seSBrbXNNYXN0ZXJLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlLiBUaGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXM6XG4gICAqIGBLTVNgIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlLlxuICAgKiAgIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBBV1MgS01TICggQVdTIEtNUyBjaGFyZ2VzIGFwcGx5KS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZVR5cGU/OiBTU0VUeXBlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIER5bmFtb0RCIFN0cmVhbXMgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSBpbiBEeW5hbW9EQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFdoZW4gYW4gaXRlbSBpbiB0aGUgdGFibGUgaXMgbW9kaWZpZWQsIGBTdHJlYW1WaWV3VHlwZWAgZGV0ZXJtaW5lcyB3aGF0IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbSBmb3IgdGhpcyB0YWJsZS5cbiAgICogVmFsaWQgdmFsdWVzIGZvciBgU3RyZWFtVmlld1R5cGVgIGFyZTpcbiAgICogLSBgS0VZU19PTkxZYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE5FV19JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE9MRF9JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgTkVXX0FORF9PTERfSU1BR0VTYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtVmlld1R5cGU6IFN0cmVhbVZpZXdUeXBlO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgY2xhc3MgYXJvdW5kIEN1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUgY3VzdG9tIHJlc291cmNlLCB0byBzaW1wbGlmeVxuICogdGhlIG92ZXJyaWRlIGV4cGVyaWVuY2UgYSBiaXQuIFRoaXMgaXMgTk9UIGEgY29uc3RydWN0LCBqdXN0IGFuIGVhc2llciB3YXkgdG8gYWNjZXNzXG4gKiB0aGUgZ2VuZXJhdGVkIGNvbnN0cnVjdC5cbiAqIFRoaXMgaXMgYSB3cmFwcGVyIGludGVuZGVkIHRvIG1pbWljIHRoZSBgYXdzX2Nka19saWIuYXdzX2R5bmFtb2RiLlRhYmxlYCBmdW5jdGlvbmFsaXR5IG1vcmUtb3ItbGVzcy5cbiAqIE5vdGFibGUgZGlmZmVyZW5jZXMgaXMgdGhlIGFkZGl0aW9uIG9mIFRLVEsgcHJvcGVydGllcywgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCB0aGV5J3JlIGNvbnN0cnVjdG9yIHByb3BzXG4gKiBpbiB0aGUgQ0RLIGNvbnN0cnVjdCwgYXMgd2VsbCBhcyB0aGUgcmVtb3ZhbCBvZiBhbGwgZnJvbSosIGdyYW50KiwgYW5kIG1ldHJpYyogbWV0aG9kcyBpbXBsZW1lbnRlZCBieSBUYWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBhbmQgcGVyZm9ybSB0eXBlIG5hcnJvd2luZyBpZiBhIGdpdmVuIGlucHV0IGFwcGVhcnMgdG8gYmUgY2FwYWJsZSBvZlxuICAgKiBAcGFyYW0geCB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcmVzb3VyY2UgaXMgYW4gdW5kZXJseWluZyBhbXBsaWZ5IGR5bmFtb2RiIHRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgc3RhdGljIGlzQW1wbGlmeUR5bmFtb0RiVGFibGVSZXNvdXJjZSh4OiBhbnkpOiB4IGlzIENmblJlc291cmNlIHtcbiAgICByZXR1cm4geCBpbnN0YW5jZW9mIENmblJlc291cmNlICYmIHguY2ZuUmVzb3VyY2VUeXBlID09PSBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSB3cmFwcGVyIGdpdmVuIGFuIHVuZGVybHlpbmcgQ2ZuUmVzb3VyY2UgdGhhdCBpcyBhbiBpbnN0YW5jZSBvZiBDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlLlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgdGhlIENmbiByZXNvdXJjZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJlc291cmNlKSB7XG4gICAgaWYgKHJlc291cmNlLmNmblJlc291cmNlVHlwZSAhPT0gQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgQ2ZuUmVzb3VyY2Ugd2l0aCB0eXBlICR7QU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFfSBjYW4gYmUgdXNlZCBpbiBBbXBsaWZ5RHluYW1vRGJUYWJsZWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGhvdyB5b3UgYXJlIGNoYXJnZWQgZm9yIHJlYWQgYW5kIHdyaXRlIHRocm91Z2hwdXQgYW5kIGhvdyB5b3UgbWFuYWdlIGNhcGFjaXR5LlxuICAgKi9cbiAgc2V0IGJpbGxpbmdNb2RlKGJpbGxpbmdNb2RlOiBCaWxsaW5nTW9kZSkge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnYmlsbGluZ01vZGUnLCBiaWxsaW5nTW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgVFRMIGF0dHJpYnV0ZS5cbiAgICovXG4gIHNldCB0aW1lVG9MaXZlQXR0cmlidXRlKHRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uOiBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgndGltZVRvTGl2ZVNwZWNpZmljYXRpb24nLCB0aW1lVG9MaXZlU3BlY2lmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBwb2ludC1pbi10aW1lIHJlY292ZXJ5IGlzIGVuYWJsZWQuXG4gICAqL1xuICBzZXQgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQocG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3BvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uJywgeyBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgZm9yIHRoZSBiYXNlIHRhYmxlLlxuICAgKi9cbiAgc2V0IHByb3Zpc2lvbmVkVGhyb3VnaHB1dChwcm92aXNpb25lZFRocm91Z2hwdXQ6IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCkge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgncHJvdmlzaW9uZWRUaHJvdWdocHV0JywgcHJvdmlzaW9uZWRUaHJvdWdocHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHByb3Zpc2lvbmVkVGhyb3VnaHRwdXQgZm9yIGEgc3BlY2lmaWVkIEdTSSBieSBuYW1lLlxuICAgKiBAcGFyYW0gaW5kZXhOYW1lIHRoZSBpbmRleCB0byBzcGVjaWZ5IGEgcHJvdmlzaW9uZWRUaHJvdWdocHV0IGNvbmZpZyBmb3JcbiAgICogQHBhcmFtIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCB0aGUgY29uZmlnIHRvIHNldFxuICAgKi9cbiAgc2V0R2xvYmFsU2Vjb25kYXJ5SW5kZXhQcm92aXNpb25lZFRocm91Z2hwdXQoaW5kZXhOYW1lOiBzdHJpbmcsIHByb3Zpc2lvbmVkVGhyb3VnaHB1dDogUHJvdmlzaW9uZWRUaHJvdWdocHV0KTogdm9pZCB7XG4gICAgY29uc3QgZ3NpczogQXJyYXk8W3N0cmluZywgeyBpbmRleE5hbWU6IHN0cmluZyB9XT4gPSBPYmplY3QuZW50cmllcyhcbiAgICAgICh0aGlzLnJlc291cmNlIGFzIGFueSkucmF3T3ZlcnJpZGVzPy5Qcm9wZXJ0aWVzPy5nbG9iYWxTZWNvbmRhcnlJbmRleGVzID8/IHt9LFxuICAgICk7XG4gICAgY29uc3QgZm91bmRHc2lzID0gZ3Npcy5maWx0ZXIoKFtfLCBnc2lDb25maWddKSA9PiBpbmRleE5hbWUgPT09IGdzaUNvbmZpZy5pbmRleE5hbWUpLm1hcCgoW2dzaUluZGV4XSkgPT4gZ3NpSW5kZXgpO1xuICAgIGlmIChmb3VuZEdzaXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEluZGV4IHdpdGggbmFtZSAke2luZGV4TmFtZX0gbm90IGZvdW5kIGluIHRhYmxlIGRlZmluaXRpb25gKTtcbiAgICB9XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKGBnbG9iYWxTZWNvbmRhcnlJbmRleGVzLiR7Zm91bmRHc2lzWzBdfS5wcm92aXNpb25lZFRocm91Z2hwdXRgLCBwcm92aXNpb25lZFRocm91Z2hwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGRiIHN0cmVhbSBzcGVjaWZpY2F0aW9uIG9uIHRoZSB0YWJsZS5cbiAgICovXG4gIHNldCBzdHJlYW1TcGVjaWZpY2F0aW9uKHN0cmVhbVNwZWNpZmljYXRpb246IFN0cmVhbVNwZWNpZmljYXRpb24pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3N0cmVhbVNwZWNpZmljYXRpb24nLCBzdHJlYW1TcGVjaWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRkYiBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHNwZWNpZmljYXRpb24gb24gdGhlIHRhYmxlLlxuICAgKi9cbiAgc2V0IHNzZVNwZWNpZmljYXRpb24oc3NlU3BlY2lmaWNhdGlvbjogU1NFU3BlY2lmaWNhdGlvbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnc3NlU3BlY2lmaWNhdGlvbicsIHNzZVNwZWNpZmljYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0YWJsZSBkZWxldGlvbiBwcm90ZWN0aW9uLlxuICAgKi9cbiAgc2V0IGRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQoZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZCcsIGRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQpO1xuICB9XG59XG4iXX0=
@@ -259,7 +259,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
259
259
  }
260
260
  exports.AmplifyGraphqlApi = AmplifyGraphqlApi;
261
261
  _a = JSII_RTTI_SYMBOL_1;
262
- AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.5.7-implicit-fields.0" };
262
+ AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.6.0-secrets-manager.0" };
263
263
  /**
264
264
  * Given the provided scope, walk the node tree, and throw an exception if any other AmplifyGraphqlApi constructs
265
265
  * are found in the stack.
@@ -101,5 +101,5 @@ class AmplifyGraphqlDefinition {
101
101
  }
102
102
  exports.AmplifyGraphqlDefinition = AmplifyGraphqlDefinition;
103
103
  _a = JSII_RTTI_SYMBOL_1;
104
- AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.5.7-implicit-fields.0" };
104
+ AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.6.0-secrets-manager.0" };
105
105
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBQ3JELG9GQUFzRTtBQUV0RSx5Q0FBMkQ7QUFFM0Qsc0VBSXVDO0FBRTFCLFFBQUEsa0NBQWtDLEdBQTRCO0lBQ3pFLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLGlCQUFpQixFQUFFLFNBQVM7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFjLEVBQ2QscUJBQThDLDBDQUFrQztRQUVoRixJQUFBLCtDQUEwQixFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsT0FBTztZQUNMLE1BQU07WUFDTixhQUFhLEVBQUUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLG9CQUFvQixFQUFFLElBQUEsd0NBQTZCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1lBQy9FLDZCQUE2QixFQUFFLElBQUEsMkRBQXNDLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1NBQ2xHLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksd0JBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUs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LEVBQUUsRUFBRSxDQUFDO1lBQ3JHLDZCQUE2QjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7QUFwR0gsNERBcUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgU2NoZW1hRmlsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IGlzU3FsU3RyYXRlZ3kgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzIH0gZnJvbSAnLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IH0gZnJvbSAnLi9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzJztcbmltcG9ydCB7XG4gIGNvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLFxuICBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyxcbiAgdmFsaWRhdGVEYXRhU291cmNlU3RyYXRlZ3ksXG59IGZyb20gJy4vaW50ZXJuYWwvZGF0YS1zb3VyY2UtY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0ge1xuICBkYlR5cGU6ICdEWU5BTU9EQicsXG4gIHByb3Zpc2lvblN0cmF0ZWd5OiAnREVGQVVMVCcsXG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gb2JqZWN0cyBnaXZlbiB2YXJpb3VzIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBQcm9kdWNlIGEgc2NoZW1hIGRlZmluaXRpb24gZnJvbSBhIHN0cmluZyBpbnB1dC5cbiAgICogQHBhcmFtIHNjaGVtYSB0aGUgZ3JhcGhxbCBpbnB1dCBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gZGF0YVNvdXJjZVN0cmF0ZWd5IHRoZSBwcm92aXNpb25pbmcgZGVmaW5pdGlvbiBmb3IgZGF0YXNvdXJjZXMgdGhhdCByZXNvbHZlIGBAbW9kZWxgcyBhbmQgY3VzdG9tIFNRTCBzdGF0ZW1lbnRzIGluIHRoaXMgc2NoZW1hLlxuICAgKiBUaGUgRHluYW1vREIgZnJvbSBDbG91ZEZvcm1hdGlvbiB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICogQHJldHVybnMgYSBmdWxseSBmb3JtZWQgYW1wbGlmeSBncmFwaHFsIGRlZmluaXRpb25cbiAgICovXG4gIHN0YXRpYyBmcm9tU3RyaW5nKFxuICAgIHNjaGVtYTogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2VTdHJhdGVneTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgPSBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZLFxuICApOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICB2YWxpZGF0ZURhdGFTb3VyY2VTdHJhdGVneShkYXRhU291cmNlU3RyYXRlZ3kpO1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IHt9LFxuICAgICAgZGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KSxcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzOiBjb25zdHJ1Y3RDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYSwgYmluZGluZyB0aGVtIHRvIGEgRHluYW1vREIgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBmaWxlUGF0aHMgb25lIG9yIG1vcmUgcGF0aHMgdG8gdGhlIGdyYXBocWwgZmlsZXMgdG8gcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvbiwgd2hvc2UgbW9kZWxzIHdpbGwgYmUgcmVzb2x2ZWQgYnkgRHluYW1vREIgdGFibGVzIGNyZWF0ZWQgZHVyaW5nIGRlcGxveW1lbnQuXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzKC4uLmZpbGVQYXRoczogc3RyaW5nW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsZVBhdGhzKSkge1xuICAgICAgZmlsZVBhdGhzID0gW2ZpbGVQYXRoc107XG4gICAgfVxuICAgIGNvbnN0IHNjaGVtYSA9IGZpbGVQYXRocy5tYXAoKGZpbGVQYXRoKSA9PiBuZXcgU2NoZW1hRmlsZSh7IGZpbGVQYXRoIH0pLmRlZmluaXRpb24pLmpvaW4ob3MuRU9MKTtcbiAgICByZXR1cm4gQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uLmZyb21TdHJpbmcoc2NoZW1hLCBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYVxuICAgKiBAcGFyYW0gZmlsZVBhdGhzIG9uZSBvciBtb3JlIHBhdGhzIHRvIHRoZSBncmFwaHFsIGZpbGVzIHRvIHByb2Nlc3NcbiAgICogQHBhcmFtIGRhdGFTb3VyY2VTdHJhdGVneSB0aGUgcHJvdmlzaW9uaW5nIGRlZmluaXRpb24gZm9yIGRhdGFzb3VyY2VzIHRoYXQgcmVzb2x2ZSBgQG1vZGVsYHMgaW4gdGhpcyBzY2hlbWEuIFRoZSBEeW5hbW9EQiBmcm9tXG4gICAqIENsb3VkRm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvblxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlc0FuZFN0cmF0ZWd5KFxuICAgIGZpbGVQYXRoczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1ksXG4gICk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpKSB7XG4gICAgICBmaWxlUGF0aHMgPSBbZmlsZVBhdGhzXTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZW1hID0gZmlsZVBhdGhzLm1hcCgoZmlsZVBhdGgpID0+IG5ldyBTY2hlbWFGaWxlKHsgZmlsZVBhdGggfSkuZGVmaW5pdGlvbikuam9pbihvcy5FT0wpO1xuICAgIHJldHVybiBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24uZnJvbVN0cmluZyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZXMgbXVsdGlwbGUgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbnMgaW50byBhIHNpbmdsZSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0gZGVmaW5pdGlvbnMgdGhlIGRlZmluaXRpb25zIHRvIGNvbWJpbmVcbiAgICovXG4gIHN0YXRpYyBjb21iaW5lKGRlZmluaXRpb25zOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkZWZpbml0aW9ucyBvZiBhbXBsaWZ5IEdyYXBoUUwgY2Fubm90IGJlIGVtcHR5LicpO1xuICAgIH1cbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZGVmaW5pdGlvbnNbMF07XG4gICAgfVxuXG4gICAgLy8gQSBzdHJhdGVneSB3aWxsIGJlIHByZXNlbnQgbXVsdGlwbGUgdGltZXMgaW4gYSBnaXZlbiBkZWZpbml0aW9uOiBvbmNlIHBlciBtb2RlbC4gV2UnbGwgY3JlYXRlIGEgdW5pcXVlIGxpc3QgcGVyIGRlZmluaXRpb24gdG8gZW5zdXJlXG4gICAgLy8gbm8gcmV1c2UgYWNyb3NzIGRlZmluaXRpb25zLlxuICAgIGxldCBjb21iaW5lZFN0cmF0ZWd5TmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBkZWZpbml0aW9uIG9mIGRlZmluaXRpb25zKSB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uU3RyYXRlZ3lOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiBPYmplY3QudmFsdWVzKGRlZmluaXRpb24uZGF0YVNvdXJjZVN0cmF0ZWdpZXMpKSB7XG4gICAgICAgIGlmICghaXNTcWxTdHJhdGVneShzdHJhdGVneSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJhdGVneU5hbWUgPSBzdHJhdGVneS5uYW1lO1xuICAgICAgICBpZiAoY29tYmluZWRTdHJhdGVneU5hbWVzLmluY2x1ZGVzKHN0cmF0ZWd5TmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlIFNRTC1iYXNlZCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSAnJHtzdHJhdGVneU5hbWV9JyB3YXMgZm91bmQgaW4gbXVsdGlwbGUgZGVmaW5pdGlvbnMsIGJ1dCBhIHN0cmF0ZWd5IG5hbWUgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICBcInNoYXJlZCBiZXR3ZWVuIGRlZmluaXRpb25zLiBUbyBzcGVjaWZ5IGEgU1FMLWJhc2VkIEFQSSB3aXRoIHNjaGVtYXMgYWNyb3NzIG11bHRpcGxlIGZpbGVzLCB1c2UgJ2Zyb21GaWxlc0FuZFN0cmF0ZWd5J1wiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZGVmaW5pdGlvblN0cmF0ZWd5TmFtZXMuYWRkKHN0cmF0ZWd5TmFtZSk7XG4gICAgICB9XG4gICAgICBjb21iaW5lZFN0cmF0ZWd5TmFtZXMgPSBbLi4uY29tYmluZWRTdHJhdGVneU5hbWVzLCAuLi5kZWZpbml0aW9uU3RyYXRlZ3lOYW1lc107XG4gICAgfVxuXG4gICAgY29uc3QgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSBkZWZpbml0aW9ucy5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXIpID0+IFsuLi5hY2MsIC4uLihjdXIuY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPz8gW10pXSxcbiAgICAgIFtdIGFzIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneVtdLFxuICAgICk7XG5cbiAgICBjb25zdCBtZXJnZWRTY2hlbWEgPSBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyhkZWZpbml0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBtZXJnZWRTY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IGRlZmluaXRpb25zLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyLnJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnMgfSksIHt9KSxcbiAgICAgIGRhdGFTb3VyY2VTdHJhdGVnaWVzOiBkZWZpbml0aW9ucy5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoeyAuLi5hY2MsIC4uLmN1ci5kYXRhU291cmNlU3RyYXRlZ2llcyB9KSwge30pLFxuICAgICAgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateDataSourceStrategy = exports.schemaByMergingDefinitions = exports.getDataSourceStrategiesProvider = exports.constructCustomSqlDataSourceStrategies = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
6
+ const graphql_transformer_interfaces_1 = require("@aws-amplify/graphql-transformer-interfaces");
7
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
8
  /**
7
9
  * Creates an interface flavor of customSqlDataSourceStrategies from a factory method's schema and data source. Internally, this function
8
10
  * scans the fields of `Query` and `Mutation` looking for fields annotated with the `@sql` directive and designates the specified
@@ -148,13 +150,44 @@ const validateDataSourceStrategy = (strategy) => {
148
150
  return;
149
151
  }
150
152
  const dbConnectionConfig = strategy.dbConnectionConfig;
151
- const invalidSSMPaths = Object.values(dbConnectionConfig).filter((value) => typeof value === 'string' && !isValidSSMPath(value));
152
- if (invalidSSMPaths.length > 0) {
153
- throw new Error(`Invalid data source strategy "${strategy.name}". Following SSM paths must start with '/' in dbConnectionConfig: ${invalidSSMPaths.join(', ')}.`);
153
+ if ((0, graphql_transformer_interfaces_1.isSqlModelDataSourceSsmDbConnectionConfig)(dbConnectionConfig)) {
154
+ const invalidSSMPaths = Object.values(dbConnectionConfig).filter((value) => typeof value === 'string' && !isValidSSMPath(value));
155
+ if (invalidSSMPaths.length > 0) {
156
+ throw new Error(`Invalid data source strategy "${strategy.name}". Following SSM paths must start with '/' in dbConnectionConfig: ${invalidSSMPaths.join(', ')}.`);
157
+ }
158
+ }
159
+ else if ((0, graphql_transformer_interfaces_1.isSqlModelDataSourceSecretsManagerDbConnectionConfig)(dbConnectionConfig)) {
160
+ if (!aws_cdk_lib_1.Token.isUnresolved(dbConnectionConfig.secretArn)) {
161
+ try {
162
+ const arnComponents = aws_cdk_lib_1.Arn.split(dbConnectionConfig.secretArn, aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME);
163
+ if (arnComponents.service !== 'secretsmanager' || arnComponents.resource !== 'secret') {
164
+ // error message does not matter because it inside try/catch
165
+ throw new Error();
166
+ }
167
+ }
168
+ catch {
169
+ throw new Error(`Invalid data source strategy "${strategy.name}". The value of secretArn is not a valid Secrets Manager ARN.`);
170
+ }
171
+ }
172
+ if (dbConnectionConfig.keyArn && !aws_cdk_lib_1.Token.isUnresolved(dbConnectionConfig.keyArn)) {
173
+ try {
174
+ const arnComponents = aws_cdk_lib_1.Arn.split(dbConnectionConfig.keyArn, aws_cdk_lib_1.ArnFormat.SLASH_RESOURCE_NAME);
175
+ if (arnComponents.service !== 'kms' || arnComponents.resource !== 'key') {
176
+ // error message does not matter because it inside try/catch
177
+ throw new Error();
178
+ }
179
+ }
180
+ catch {
181
+ throw new Error(`Invalid data source strategy "${strategy.name}". The value of keyArn is not a valid KMS ARN.`);
182
+ }
183
+ }
184
+ }
185
+ else {
186
+ throw new Error(`Invalid data source strategy "${strategy.name}". dbConnectionConfig does not include SSM paths or Secret ARN.`);
154
187
  }
155
188
  };
156
189
  exports.validateDataSourceStrategy = validateDataSourceStrategy;
157
190
  const isValidSSMPath = (path) => {
158
191
  return path.startsWith('/');
159
192
  };
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBbUk7QUFDbkksb0ZBTStDO0FBUS9DOzs7Ozs7O0dBT0c7QUFDSSxNQUFNLHNDQUFzQyxHQUFHLENBQ3BELE1BQWMsRUFDZCxrQkFBb0QsRUFDWixFQUFFO0lBQzFDLElBQUksQ0FBQyxJQUFBLHdDQUFhLEVBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUN0QyxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsc0NBQVcsQ0FBQyxDQUFDO0lBQzdELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHlDQUFjLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQy9CLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLDZCQUE2QixHQUEyQyxFQUFFLENBQUM7SUFFakYsSUFBSSxTQUFTLEVBQUU7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFBLGlEQUFzQixFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQzFCLDZCQUE2QixDQUFDLElBQUksQ0FBQztnQkFDakMsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQzNCLFFBQVEsRUFBRSxrQkFBa0I7YUFDN0IsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUVELElBQUksWUFBWSxFQUFFO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUEsaURBQXNCLEVBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDMUIsNkJBQTZCLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDM0IsUUFBUSxFQUFFLGtCQUFrQjthQUM3QixDQUFDLENBQUM7U0FDSjtLQUNGO0lBRUQsT0FBTyw2QkFBNkIsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUF6Q1csUUFBQSxzQ0FBc0MsMENBeUNqRDtBQUVGOzs7R0FHRztBQUNJLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxVQUFxQyxFQUFnQyxFQUFFO0lBQ3JILE1BQU0sUUFBUSxHQUFpQztRQUM3Qyx3SUFBd0k7UUFDeEksa0NBQWtDO1FBQ2xDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxvQkFBb0I7UUFDckQsZ0NBQWdDLEVBQUUsRUFBRTtLQUNyQyxDQUFDO0lBRUYsOEdBQThHO0lBQzlHLG1DQUFtQztJQUNuQyxNQUFNLG1CQUFtQixHQUEyQixFQUFFLENBQUM7SUFFdkQsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsNkJBQTZCLElBQUksRUFBRSxDQUFDO0lBRTlFLHlJQUF5STtJQUN6SSw4Q0FBOEM7SUFDOUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDN0MsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFO1lBQzVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsUUFBUSxDQUFDLGdDQUFpQyxDQUFDLElBQUksQ0FBQztZQUM5QyxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7WUFDOUIsU0FBUyxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQ2hDLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtZQUM5QixtQkFBbUI7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUE5QlcsUUFBQSwrQkFBK0IsbUNBOEIxQztBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLDBCQUEwQixHQUFHLENBQUMsV0FBd0MsRUFBVSxFQUFFO0lBQzdGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkMsMElBQTBJO0lBQzFJLDJCQUEyQjtJQUMzQixNQUFNLDJCQUEyQixHQU03QixFQUFFLENBQUM7SUFFUCxtREFBbUQ7SUFDbkQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLEVBQVEsRUFBRTtRQUNsRSxNQUFNLE1BQU0sR0FBRywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU87U0FDUjtRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQUU7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FDYixjQUFjLFFBQVEsV0FBVyxTQUFTLDZGQUE2RixDQUN4SSxDQUFDO1NBQ0g7SUFDSCxDQUFDLENBQUM7SUFFRiwyREFBMkQ7SUFDM0QsMkNBQTJDO0lBQzNDLG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsK0NBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNwRSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDMUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ3RDLElBQUksRUFBRSxHQUFHO2dCQUNULDJIQUEySDtnQkFDM0gsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7YUFDaEMsQ0FBQztZQUNGLE9BQU87U0FDUjtRQUVELENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCwyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFILENBQUMsQ0FBQyxDQUFDO0lBRUgsd0VBQXdFO0lBQ3hFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztTQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNuQixNQUFNLGNBQWMsR0FBRztZQUNyQixHQUFHLEdBQUcsQ0FBQyxJQUFJO1lBQ1gsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1NBQ25CLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxFQUFFLEVBQXNCLENBQUMsQ0FBQztJQUU3QixrREFBa0Q7SUFDbEQsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFBLCtDQUFvQixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFakcsaUlBQWlJO0lBQ2pJLG9GQUFvRjtJQUNwRixNQUFNLFNBQVMsR0FBRztRQUNoQixHQUFHLFlBQVk7UUFDZixXQUFXLEVBQUUsQ0FBQyxHQUFHLG1CQUFtQixFQUFFLEdBQUcsbUJBQW1CLENBQUM7S0FDOUQsQ0FBQztJQUVGLE1BQU0sb0JBQW9CLEdBQUcsSUFBQSxlQUFLLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDLENBQUM7QUF4RVcsUUFBQSwwQkFBMEIsOEJBd0VyQztBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLDBCQUEwQixHQUFHLENBQUMsUUFBMEMsRUFBRSxFQUFFO0lBQ3ZGLElBQUksQ0FBQyxJQUFBLHdDQUFhLEVBQUMsUUFBUSxDQUFDLEVBQUU7UUFDNUIsT0FBTztLQUNSO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUM7SUFDdkQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakksSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUM5QixNQUFNLElBQUksS0FBSyxDQUNiLGlDQUNFLFFBQVEsQ0FBQyxJQUNYLHFFQUFxRSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ25HLENBQUM7S0FDSDtBQUNILENBQUMsQ0FBQztBQWRXLFFBQUEsMEJBQTBCLDhCQWNyQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFXLEVBQUU7SUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmluaXRpb25Ob2RlLCBGaWVsZERlZmluaXRpb25Ob2RlLCBJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbk5vZGUsIE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZSwgcGFyc2UsIHByaW50IH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQge1xuICBpc0J1aWx0SW5HcmFwaHFsTm9kZSxcbiAgaXNTcWxTdHJhdGVneSxcbiAgaXNRdWVyeU5vZGUsXG4gIGlzTXV0YXRpb25Ob2RlLFxuICBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSBhcyBDb25zdHJ1Y3RDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksXG4gIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IGFzIENvbnN0cnVjdE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxufSBmcm9tICcuLi9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBpbnRlcmZhY2UgZmxhdm9yIG9mIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzIGZyb20gYSBmYWN0b3J5IG1ldGhvZCdzIHNjaGVtYSBhbmQgZGF0YSBzb3VyY2UuIEludGVybmFsbHksIHRoaXMgZnVuY3Rpb25cbiAqIHNjYW5zIHRoZSBmaWVsZHMgb2YgYFF1ZXJ5YCBhbmQgYE11dGF0aW9uYCBsb29raW5nIGZvciBmaWVsZHMgYW5ub3RhdGVkIHdpdGggdGhlIGBAc3FsYCBkaXJlY3RpdmUgYW5kIGRlc2lnbmF0ZXMgdGhlIHNwZWNpZmllZFxuICogZGF0YVNvdXJjZVN0cmF0ZWd5IHRvIGZ1bGZpbGwgdGhvc2UgY3VzdG9tIHF1ZXJpZXMuXG4gKlxuICogTm90ZSB0aGF0IHdlIGRvIG5vdCBzY2FuIGZvciBgU3Vic2NyaXB0aW9uYCBmaWVsZHM6IGBAc3FsYCBkaXJlY3RpdmVzIGFyZSBub3QgYWxsb3dlZCBvbiB0aG9zZSwgYW5kIGl0IHdvdWxkbid0IG1ha2Ugc2Vuc2UgdG8gZG8gc29cbiAqIGFueXdheSwgc2luY2Ugc3Vic2NyaXB0aW9ucyBhcmUgcHJvY2Vzc2VkIGZyb20gYW4gaW5jb21pbmcgTXV0YXRpb24sIG5vdCBhcyB0aGUgcmVzdWx0IG9mIGEgZGlyZWN0IGRhdGFzb3VyY2UgYWNjZXNzLlxuICovXG5leHBvcnQgY29uc3QgY29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSAoXG4gIHNjaGVtYTogc3RyaW5nLFxuICBkYXRhU291cmNlU3RyYXRlZ3k6IENvbnN0cnVjdE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxuKTogQ29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPT4ge1xuICBpZiAoIWlzU3FsU3RyYXRlZ3koZGF0YVNvdXJjZVN0cmF0ZWd5KSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG5cbiAgY29uc3QgcXVlcnlOb2RlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbmQoaXNRdWVyeU5vZGUpO1xuICBjb25zdCBtdXRhdGlvbk5vZGUgPSBwYXJzZWRTY2hlbWEuZGVmaW5pdGlvbnMuZmluZChpc011dGF0aW9uTm9kZSk7XG4gIGlmICghcXVlcnlOb2RlICYmICFtdXRhdGlvbk5vZGUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llczogQ29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPSBbXTtcblxuICBpZiAocXVlcnlOb2RlKSB7XG4gICAgY29uc3QgZmllbGRzID0gZmllbGRzV2l0aFNxbERpcmVjdGl2ZShxdWVyeU5vZGUpO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcy5wdXNoKHtcbiAgICAgICAgdHlwZU5hbWU6ICdRdWVyeScsXG4gICAgICAgIGZpZWxkTmFtZTogZmllbGQubmFtZS52YWx1ZSxcbiAgICAgICAgc3RyYXRlZ3k6IGRhdGFTb3VyY2VTdHJhdGVneSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtdXRhdGlvbk5vZGUpIHtcbiAgICBjb25zdCBmaWVsZHMgPSBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlKG11dGF0aW9uTm9kZSk7XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLnB1c2goe1xuICAgICAgICB0eXBlTmFtZTogJ011dGF0aW9uJyxcbiAgICAgICAgZmllbGROYW1lOiBmaWVsZC5uYW1lLnZhbHVlLFxuICAgICAgICBzdHJhdGVneTogZGF0YVNvdXJjZVN0cmF0ZWd5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzO1xufTtcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgZGF0YSBzb3VyY2UgcHJvdmlkZXIgZnJvbSB0aGUgZGVmaW5pdGlvbi4gVGhpcyBqdW1wcyB0aHJvdWdoIHNvbWUgaG9vcHMgdG8gYXZvaWQgY2hhbmdpbmcgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIElmIHdlIGRlY2lkZVxuICogdG8gY2hhbmdlIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNpbXBsaWZ5IHRoZSBzdHJ1Y3R1cmUsIHRoZW4gdGhpcyBwcm9jZXNzIGdldHMgYSBsb3Qgc2ltcGxlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgPSAoZGVmaW5pdGlvbjogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbik6IERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgPT4ge1xuICBjb25zdCBwcm92aWRlcjogRGF0YVNvdXJjZVN0cmF0ZWdpZXNQcm92aWRlciA9IHtcbiAgICAvLyBXZSBjYW4gZGlyZWN0bHkgdXNlIHRoZSBpbnRlcmZhY2Ugc3RyYXRlZ2llcywgZXZlbiB0aG91Z2ggdGhlIFNRTCBzdHJhdGVnaWVzIGhhdmUgdGhlIGN1c3RvbVNxbFN0YXRlbWVudHMgZmllbGQgdGhhdCBpcyB1bnVzZWQgYnkgdGhlXG4gICAgLy8gdHJhbnNmb3JtZXIgZmxhdm9yIG9mIHRoaXMgdHlwZVxuICAgIGRhdGFTb3VyY2VTdHJhdGVnaWVzOiBkZWZpbml0aW9uLmRhdGFTb3VyY2VTdHJhdGVnaWVzLFxuICAgIHNxbERpcmVjdGl2ZURhdGFTb3VyY2VTdHJhdGVnaWVzOiBbXSxcbiAgfTtcblxuICAvLyBXZSdsbCBjb2xsZWN0IGFsbCB0aGUgY3VzdG9tIFNRTCBzdGF0ZW1lbnRzIGZyb20gdGhlIGRlZmluaXRpb24gaW50byBhIHNpbmdsZSBtYXAsIGFuZCB1c2UgdGhhdCB0byBtYWtlIG91clxuICAvLyBTcWxEaXJlY3RpdmVEYXRhU291cmNlU3RyYXRlZ2llc1xuICBjb25zdCBjdXN0b21TcWxTdGF0ZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgY29uc3QgY29uc3RydWN0U3FsU3RyYXRlZ2llcyA9IGRlZmluaXRpb24uY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPz8gW107XG5cbiAgLy8gTm90ZSB0aGF0IHdlJ3JlIHJlbHlpbmcgb24gdGhlIGBjdXN0b21TcWxTdGF0ZW1lbnRzYCBvYmplY3QgcmVmZXJlbmNlIHRvIHN0YXkgdGhlIHNhbWUgdGhyb3VnaG91dCB0aGlzIGxvb3AuIERvbid0IHJlYXNzaWduIGl0LCBvciB0aGVcbiAgLy8gY29sbGVjdGVkIHNxbERpcmVjdGl2ZVN0cmF0ZWdpZXMgd2lsbCBicmVha1xuICBjb25zdHJ1Y3RTcWxTdHJhdGVnaWVzLmZvckVhY2goKHNxbFN0cmF0ZWd5KSA9PiB7XG4gICAgaWYgKHNxbFN0cmF0ZWd5LnN0cmF0ZWd5LmN1c3RvbVNxbFN0YXRlbWVudHMpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oY3VzdG9tU3FsU3RhdGVtZW50cywgc3FsU3RyYXRlZ3kuc3RyYXRlZ3kuY3VzdG9tU3FsU3RhdGVtZW50cyk7XG4gICAgfVxuXG4gICAgcHJvdmlkZXIuc3FsRGlyZWN0aXZlRGF0YVNvdXJjZVN0cmF0ZWdpZXMhLnB1c2goe1xuICAgICAgdHlwZU5hbWU6IHNxbFN0cmF0ZWd5LnR5cGVOYW1lLFxuICAgICAgZmllbGROYW1lOiBzcWxTdHJhdGVneS5maWVsZE5hbWUsXG4gICAgICBzdHJhdGVneTogc3FsU3RyYXRlZ3kuc3RyYXRlZ3ksXG4gICAgICBjdXN0b21TcWxTdGF0ZW1lbnRzLFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gcHJvdmlkZXI7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgc2NoZW1hIGJ5IG1lcmdpbmcgdGhlIGluZGl2aWR1YWwgc2NoZW1hcyBjb250YWluZWQgaW4gdGhlIGRlZmluaXRpb25zLCBjb21iaW5pbmcgZmllbGRzIG9mIHRoZSBRdWVyeSBhbmQgTXV0YXRpb24gdHlwZXMgaW5cbiAqIGluZGl2aWR1YWwgZGVmaW5pdGlvbnMgaW50byBhIHNpbmdsZSBjb21iaW5lZCBkZWZpbml0aW9uLiBBZGRpbmcgZGlyZWN0aXZlcyB0byBgUXVlcnlgIGFuZCBgTXV0YXRpb25gIHR5cGVzIHBhcnRpY2lwYXRpbmcgaW4gYVxuICogY29tYmluYXRpb24gaXMgbm90IHN1cHBvcnRlZCAodGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGV0aGVyIHRob3NlIGRpcmVjdGl2ZXMgYXJlIG1pZ3JhdGVkKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNjaGVtYUJ5TWVyZ2luZ0RlZmluaXRpb25zID0gKGRlZmluaXRpb25zOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uW10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzY2hlbWEgPSBkZWZpbml0aW9ucy5tYXAoKGRlZikgPT4gZGVmLnNjaGVtYSkuam9pbignXFxuJyk7XG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG5cbiAgLy8gV2Ugc3RvcmUgdGhlIFF1ZXJ5ICYgTXV0YXRpb24gZGVmaW5pdGlvbnMgc2VwYXJhdGVseS4gU2luY2UgdGhlIGludGVyZmFjZXMgYXJlIHJlYWRvbmx5LCB3ZSdsbCBoYXZlIHRvIHJlLWNvbXBvc2UgdGhlIHR5cGVzIGFmdGVyIHdlJ3ZlXG4gIC8vIGNvbGxlY3RlZCBhbGwgdGhlIGZpZWxkc1xuICBjb25zdCBxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnM6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgbm9kZTogT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlIHwgSW50ZXJmYWNlVHlwZURlZmluaXRpb25Ob2RlO1xuICAgICAgZmllbGRzOiBGaWVsZERlZmluaXRpb25Ob2RlW107XG4gICAgfVxuICA+ID0ge307XG5cbiAgLy8gVGhyb3dzIGlmIHRoZSBmaWVsZCBoYXMgYWxyZWFkeSBiZWVuIGVuY291bnRlcmVkXG4gIGNvbnN0IHZhbGlkYXRlRmllbGQgPSAodHlwZU5hbWU6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBmaWVsZHMgPSBxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdPy5maWVsZHM7XG4gICAgaWYgKCFmaWVsZHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZS52YWx1ZSA9PT0gZmllbGROYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIGN1c3RvbSAke3R5cGVOYW1lfSBmaWVsZCAnJHtmaWVsZE5hbWV9JyB3YXMgZm91bmQgaW4gbXVsdGlwbGUgZGVmaW5pdGlvbnMsIGJ1dCBhIGZpZWxkIG5hbWUgY2Fubm90IGJlIHNoYXJlZCBiZXR3ZWVuIGRlZmluaXRpb25zLmAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvLyBUcmFuc2Zvcm0gdGhlIHNjaGVtYSBieSByZWR1Y2luZyBNdXRhdGlvbiAmIFF1ZXJ5IHR5cGVzOlxuICAvLyAtIENvbGxlY3QgTXV0YXRpb24gYW5kIFF1ZXJ5IGRlZmluaXRpb25zXG4gIC8vIC0gQWx0ZXIgdGhlIHBhcnNlZCBzY2hlbWEgYnkgZmlsdGVyaW5nIG91dCBNdXRhdGlvbiAmIFF1ZXJ5IHR5cGVzXG4gIC8vIC0gQWRkIHRoZSBjb21iaW5lZCBNdXRhdGlvbiAmIFF1ZXJ5IGRlZmluaXRpb25zIHRvIHRoZSBmaWx0ZXJlZCBzY2hlbWFcbiAgcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbHRlcihpc0J1aWx0SW5HcmFwaHFsTm9kZSkuZm9yRWFjaCgoZGVmKSA9PiB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBkZWYubmFtZS52YWx1ZTtcbiAgICBpZiAoIXF1ZXJ5QW5kTXV0YXRpb25EZWZpbml0aW9uc1t0eXBlTmFtZV0pIHtcbiAgICAgIHF1ZXJ5QW5kTXV0YXRpb25EZWZpbml0aW9uc1t0eXBlTmFtZV0gPSB7XG4gICAgICAgIG5vZGU6IGRlZixcbiAgICAgICAgLy8gYE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZS5maWVsZHNgIGlzIGEgUmVhZG9ubHlBcnJheTsgc28gd2UgaGF2ZSB0byBjcmVhdGUgYSBuZXcgbXV0YWJsZSBhcnJheSB0byBjb2xsZWN0IGFsbCB0aGUgZmllbGRzXG4gICAgICAgIGZpZWxkczogWy4uLihkZWYuZmllbGRzID8/IFtdKV0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIChkZWYuZmllbGRzID8/IFtdKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgdmFsaWRhdGVGaWVsZCh0eXBlTmFtZSwgZmllbGQubmFtZS52YWx1ZSk7XG4gICAgfSk7XG5cbiAgICBxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdLmZpZWxkcyA9IFsuLi5xdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdLmZpZWxkcywgLi4uKGRlZi5maWVsZHMgPz8gW10pXTtcbiAgfSk7XG5cbiAgLy8gR2F0aGVyIHRoZSBjb2xsZWN0ZWQgUXVlcnkgJiBNdXRhdGlvbiBmaWVsZHMgaW50byA8PTIgbmV3IGRlZmluaXRpb25zXG4gIGNvbnN0IGNvbWJpbmVkRGVmaW5pdGlvbnMgPSBPYmplY3QudmFsdWVzKHF1ZXJ5QW5kTXV0YXRpb25EZWZpbml0aW9ucylcbiAgICAuc29ydCgoYSwgYikgPT4gYS5ub2RlLm5hbWUudmFsdWUubG9jYWxlQ29tcGFyZShiLm5vZGUubmFtZS52YWx1ZSkpXG4gICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb25Ob2RlID0ge1xuICAgICAgICAuLi5jdXIubm9kZSxcbiAgICAgICAgZmllbGRzOiBjdXIuZmllbGRzLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBbLi4uYWNjLCBkZWZpbml0aW9uTm9kZV07XG4gICAgfSwgW10gYXMgRGVmaW5pdGlvbk5vZGVbXSk7XG5cbiAgLy8gRmlsdGVyIG91dCB0aGUgb2xkIFF1ZXJ5ICYgTXV0YXRpb24gZGVmaW5pdGlvbnNcbiAgY29uc3QgZmlsdGVyZWREZWZpbml0aW9ucyA9IHBhcnNlZFNjaGVtYS5kZWZpbml0aW9ucy5maWx0ZXIoKGRlZikgPT4gIWlzQnVpbHRJbkdyYXBocWxOb2RlKGRlZikpO1xuXG4gIC8vIENvbXBvc2UgdGhlIG5ldyBzY2hlbWEgYnkgYXBwZW5kaW5nIHRoZSBjb2xsZWN0ZWQgZGVmaW5pdGlvbnMgdG8gdGhlIGZpbHRlcmVkIGRlZmluaXRpb25zLiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgcXVlcnkgd2lsbCBiZVxuICAvLyByZXdyaXR0ZW4gc3VjaCB0aGF0IHRoZSBNdXRhdGlvbiBhbmQgUXVlcnkgdHlwZXMgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIHNjaGVtYS5cbiAgY29uc3QgbmV3U2NoZW1hID0ge1xuICAgIC4uLnBhcnNlZFNjaGVtYSxcbiAgICBkZWZpbml0aW9uczogWy4uLmZpbHRlcmVkRGVmaW5pdGlvbnMsIC4uLmNvbWJpbmVkRGVmaW5pdGlvbnNdLFxuICB9O1xuXG4gIGNvbnN0IGNvbWJpbmVkU2NoZW1hU3RyaW5nID0gcHJpbnQobmV3U2NoZW1hKTtcbiAgcmV0dXJuIGNvbWJpbmVkU2NoZW1hU3RyaW5nO1xufTtcblxuLypcbiAqIFZhbGlkYXRlcyB0aGUgdXNlciBpbnB1dCBmb3IgdGhlIGRhdGFTb3VyY2VTdHJhdGVneS4gVGhpcyBpcyBhIG5vLW9wIGZvciBEeW5hbW9EQiBzdHJhdGVnaWVzIGZvciBub3cuXG4gKiBAcGFyYW0gc3RyYXRlZ3kgdXNlciBwcm92aWRlZCBtb2RlbCBkYXRhIHNvdXJjZSBzdHJhdGVneVxuICogQHJldHVybnMgdmFsaWRhdGVzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHN0cmF0ZWd5IGlzIGludmFsaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRGF0YVNvdXJjZVN0cmF0ZWd5ID0gKHN0cmF0ZWd5OiBDb25zdHJ1Y3RNb2RlbERhdGFTb3VyY2VTdHJhdGVneSkgPT4ge1xuICBpZiAoIWlzU3FsU3RyYXRlZ3koc3RyYXRlZ3kpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGJDb25uZWN0aW9uQ29uZmlnID0gc3RyYXRlZ3kuZGJDb25uZWN0aW9uQ29uZmlnO1xuICBjb25zdCBpbnZhbGlkU1NNUGF0aHMgPSBPYmplY3QudmFsdWVzKGRiQ29ubmVjdGlvbkNvbmZpZykuZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNWYWxpZFNTTVBhdGgodmFsdWUpKTtcbiAgaWYgKGludmFsaWRTU01QYXRocy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgZGF0YSBzb3VyY2Ugc3RyYXRlZ3kgXCIke1xuICAgICAgICBzdHJhdGVneS5uYW1lXG4gICAgICB9XCIuIEZvbGxvd2luZyBTU00gcGF0aHMgbXVzdCBzdGFydCB3aXRoICcvJyBpbiBkYkNvbm5lY3Rpb25Db25maWc6ICR7aW52YWxpZFNTTVBhdGhzLmpvaW4oJywgJyl9LmAsXG4gICAgKTtcbiAgfVxufTtcblxuY29uc3QgaXNWYWxpZFNTTVBhdGggPSAocGF0aDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKTtcbn07XG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBbUk7QUFDbkksb0ZBTStDO0FBQy9DLGdHQUlxRDtBQUNyRCw2Q0FBb0Q7QUFPcEQ7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sc0NBQXNDLEdBQUcsQ0FDcEQsTUFBYyxFQUNkLGtCQUFvRCxFQUNaLEVBQUU7SUFDMUMsSUFBSSxDQUFDLElBQUEsd0NBQWEsRUFBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLGVBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztJQUVuQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxzQ0FBVyxDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMseUNBQWMsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDL0IsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUVELE1BQU0sNkJBQTZCLEdBQTJDLEVBQUUsQ0FBQztJQUVqRixJQUFJLFNBQVMsRUFBRTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUEsaURBQXNCLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDMUIsNkJBQTZCLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxRQUFRLEVBQUUsT0FBTztnQkFDakIsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDM0IsUUFBUSxFQUFFLGtCQUFrQjthQUM3QixDQUFDLENBQUM7U0FDSjtLQUNGO0lBRUQsSUFBSSxZQUFZLEVBQUU7UUFDaEIs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QUNGO1NBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxRQUFRLENBQUMsSUFBSSxpRUFBaUUsQ0FBQyxDQUFDO0tBQ2xJO0FBQ0gsQ0FBQyxDQUFDO0FBMUNXLFFBQUEsMEJBQTBCLDhCQTBDckM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBVyxFQUFFO0lBQy9DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZpbml0aW9uTm9kZSwgRmllbGREZWZpbml0aW9uTm9kZSwgSW50ZXJmYWNlVHlwZURlZmluaXRpb25Ob2RlLCBPYmplY3RUeXBlRGVmaW5pdGlvbk5vZGUsIHBhcnNlLCBwcmludCB9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0IHtcbiAgaXNCdWlsdEluR3JhcGhxbE5vZGUsXG4gIGlzU3FsU3RyYXRlZ3ksXG4gIGlzUXVlcnlOb2RlLFxuICBpc011dGF0aW9uTm9kZSxcbiAgZmllbGRzV2l0aFNxbERpcmVjdGl2ZSxcbn0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItY29yZSc7XG5pbXBvcnQge1xuICBEYXRhU291cmNlU3RyYXRlZ2llc1Byb3ZpZGVyLFxuICBpc1NxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvbkNvbmZpZyxcbiAgaXNTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZyxcbn0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUb2tlbiwgQXJuLCBBcm5Gb3JtYXQgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3kgYXMgQ29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5LFxuICBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSBhcyBDb25zdHJ1Y3RNb2RlbERhdGFTb3VyY2VTdHJhdGVneSxcbn0gZnJvbSAnLi4vbW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneS10eXBlcyc7XG5pbXBvcnQgeyBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW50ZXJmYWNlIGZsYXZvciBvZiBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyBmcm9tIGEgZmFjdG9yeSBtZXRob2QncyBzY2hlbWEgYW5kIGRhdGEgc291cmNlLiBJbnRlcm5hbGx5LCB0aGlzIGZ1bmN0aW9uXG4gKiBzY2FucyB0aGUgZmllbGRzIG9mIGBRdWVyeWAgYW5kIGBNdXRhdGlvbmAgbG9va2luZyBmb3IgZmllbGRzIGFubm90YXRlZCB3aXRoIHRoZSBgQHNxbGAgZGlyZWN0aXZlIGFuZCBkZXNpZ25hdGVzIHRoZSBzcGVjaWZpZWRcbiAqIGRhdGFTb3VyY2VTdHJhdGVneSB0byBmdWxmaWxsIHRob3NlIGN1c3RvbSBxdWVyaWVzLlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3Qgc2NhbiBmb3IgYFN1YnNjcmlwdGlvbmAgZmllbGRzOiBgQHNxbGAgZGlyZWN0aXZlcyBhcmUgbm90IGFsbG93ZWQgb24gdGhvc2UsIGFuZCBpdCB3b3VsZG4ndCBtYWtlIHNlbnNlIHRvIGRvIHNvXG4gKiBhbnl3YXksIHNpbmNlIHN1YnNjcmlwdGlvbnMgYXJlIHByb2Nlc3NlZCBmcm9tIGFuIGluY29taW5nIE11dGF0aW9uLCBub3QgYXMgdGhlIHJlc3VsdCBvZiBhIGRpcmVjdCBkYXRhc291cmNlIGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzID0gKFxuICBzY2hlbWE6IHN0cmluZyxcbiAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBDb25zdHJ1Y3RNb2RlbERhdGFTb3VyY2VTdHJhdGVneSxcbik6IENvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneVtdID0+IHtcbiAgaWYgKCFpc1NxbFN0cmF0ZWd5KGRhdGFTb3VyY2VTdHJhdGVneSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwYXJzZWRTY2hlbWEgPSBwYXJzZShzY2hlbWEpO1xuXG4gIGNvbnN0IHF1ZXJ5Tm9kZSA9IHBhcnNlZFNjaGVtYS5kZWZpbml0aW9ucy5maW5kKGlzUXVlcnlOb2RlKTtcbiAgY29uc3QgbXV0YXRpb25Ob2RlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbmQoaXNNdXRhdGlvbk5vZGUpO1xuICBpZiAoIXF1ZXJ5Tm9kZSAmJiAhbXV0YXRpb25Ob2RlKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXM6IENvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneVtdID0gW107XG5cbiAgaWYgKHF1ZXJ5Tm9kZSkge1xuICAgIGNvbnN0IGZpZWxkcyA9IGZpZWxkc1dpdGhTcWxEaXJlY3RpdmUocXVlcnlOb2RlKTtcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMucHVzaCh7XG4gICAgICAgIHR5cGVOYW1lOiAnUXVlcnknLFxuICAgICAgICBmaWVsZE5hbWU6IGZpZWxkLm5hbWUudmFsdWUsXG4gICAgICAgIHN0cmF0ZWd5OiBkYXRhU291cmNlU3RyYXRlZ3ksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpZiAobXV0YXRpb25Ob2RlKSB7XG4gICAgY29uc3QgZmllbGRzID0gZmllbGRzV2l0aFNxbERpcmVjdGl2ZShtdXRhdGlvbk5vZGUpO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcy5wdXNoKHtcbiAgICAgICAgdHlwZU5hbWU6ICdNdXRhdGlvbicsXG4gICAgICAgIGZpZWxkTmFtZTogZmllbGQubmFtZS52YWx1ZSxcbiAgICAgICAgc3RyYXRlZ3k6IGRhdGFTb3VyY2VTdHJhdGVneSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcztcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGRhdGEgc291cmNlIHByb3ZpZGVyIGZyb20gdGhlIGRlZmluaXRpb24uIFRoaXMganVtcHMgdGhyb3VnaCBzb21lIGhvb3BzIHRvIGF2b2lkIGNoYW5naW5nIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBJZiB3ZSBkZWNpZGVcbiAqIHRvIGNoYW5nZSB0aGUgcHVibGljIGludGVyZmFjZSB0byBzaW1wbGlmeSB0aGUgc3RydWN0dXJlLCB0aGVuIHRoaXMgcHJvY2VzcyBnZXRzIGEgbG90IHNpbXBsZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREYXRhU291cmNlU3RyYXRlZ2llc1Byb3ZpZGVyID0gKGRlZmluaXRpb246IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24pOiBEYXRhU291cmNlU3RyYXRlZ2llc1Byb3ZpZGVyID0+IHtcbiAgY29uc3QgcHJvdmlkZXI6IERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgPSB7XG4gICAgLy8gV2UgY2FuIGRpcmVjdGx5IHVzZSB0aGUgaW50ZXJmYWNlIHN0cmF0ZWdpZXMsIGV2ZW4gdGhvdWdoIHRoZSBTUUwgc3RyYXRlZ2llcyBoYXZlIHRoZSBjdXN0b21TcWxTdGF0ZW1lbnRzIGZpZWxkIHRoYXQgaXMgdW51c2VkIGJ5IHRoZVxuICAgIC8vIHRyYW5zZm9ybWVyIGZsYXZvciBvZiB0aGlzIHR5cGVcbiAgICBkYXRhU291cmNlU3RyYXRlZ2llczogZGVmaW5pdGlvbi5kYXRhU291cmNlU3RyYXRlZ2llcyxcbiAgICBzcWxEaXJlY3RpdmVEYXRhU291cmNlU3RyYXRlZ2llczogW10sXG4gIH07XG5cbiAgLy8gV2UnbGwgY29sbGVjdCBhbGwgdGhlIGN1c3RvbSBTUUwgc3RhdGVtZW50cyBmcm9tIHRoZSBkZWZpbml0aW9uIGludG8gYSBzaW5nbGUgbWFwLCBhbmQgdXNlIHRoYXQgdG8gbWFrZSBvdXJcbiAgLy8gU3FsRGlyZWN0aXZlRGF0YVNvdXJjZVN0cmF0ZWdpZXNcbiAgY29uc3QgY3VzdG9tU3FsU3RhdGVtZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGNvbnN0IGNvbnN0cnVjdFNxbFN0cmF0ZWdpZXMgPSBkZWZpbml0aW9uLmN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzID8/IFtdO1xuXG4gIC8vIE5vdGUgdGhhdCB3ZSdyZSByZWx5aW5nIG9uIHRoZSBgY3VzdG9tU3FsU3RhdGVtZW50c2Agb2JqZWN0IHJlZmVyZW5jZSB0byBzdGF5IHRoZSBzYW1lIHRocm91Z2hvdXQgdGhpcyBsb29wLiBEb24ndCByZWFzc2lnbiBpdCwgb3IgdGhlXG4gIC8vIGNvbGxlY3RlZCBzcWxEaXJlY3RpdmVTdHJhdGVnaWVzIHdpbGwgYnJlYWtcbiAgY29uc3RydWN0U3FsU3RyYXRlZ2llcy5mb3JFYWNoKChzcWxTdHJhdGVneSkgPT4ge1xuICAgIGlmIChzcWxTdHJhdGVneS5zdHJhdGVneS5jdXN0b21TcWxTdGF0ZW1lbnRzKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGN1c3RvbVNxbFN0YXRlbWVudHMsIHNxbFN0cmF0ZWd5LnN0cmF0ZWd5LmN1c3RvbVNxbFN0YXRlbWVudHMpO1xuICAgIH1cblxuICAgIHByb3ZpZGVyLnNxbERpcmVjdGl2ZURhdGFTb3VyY2VTdHJhdGVnaWVzIS5wdXNoKHtcbiAgICAgIHR5cGVOYW1lOiBzcWxTdHJhdGVneS50eXBlTmFtZSxcbiAgICAgIGZpZWxkTmFtZTogc3FsU3RyYXRlZ3kuZmllbGROYW1lLFxuICAgICAgc3RyYXRlZ3k6IHNxbFN0cmF0ZWd5LnN0cmF0ZWd5LFxuICAgICAgY3VzdG9tU3FsU3RhdGVtZW50cyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHByb3ZpZGVyO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHNjaGVtYSBieSBtZXJnaW5nIHRoZSBpbmRpdmlkdWFsIHNjaGVtYXMgY29udGFpbmVkIGluIHRoZSBkZWZpbml0aW9ucywgY29tYmluaW5nIGZpZWxkcyBvZiB0aGUgUXVlcnkgYW5kIE11dGF0aW9uIHR5cGVzIGluXG4gKiBpbmRpdmlkdWFsIGRlZmluaXRpb25zIGludG8gYSBzaW5nbGUgY29tYmluZWQgZGVmaW5pdGlvbi4gQWRkaW5nIGRpcmVjdGl2ZXMgdG8gYFF1ZXJ5YCBhbmQgYE11dGF0aW9uYCB0eXBlcyBwYXJ0aWNpcGF0aW5nIGluIGFcbiAqIGNvbWJpbmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgKHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQgd2hldGhlciB0aG9zZSBkaXJlY3RpdmVzIGFyZSBtaWdyYXRlZCkuXG4gKi9cbmV4cG9ydCBjb25zdCBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyA9IChkZWZpbml0aW9uczogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbltdKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2NoZW1hID0gZGVmaW5pdGlvbnMubWFwKChkZWYpID0+IGRlZi5zY2hlbWEpLmpvaW4oJ1xcbicpO1xuICBjb25zdCBwYXJzZWRTY2hlbWEgPSBwYXJzZShzY2hlbWEpO1xuXG4gIC8vIFdlIHN0b3JlIHRoZSBRdWVyeSAmIE11dGF0aW9uIGRlZmluaXRpb25zIHNlcGFyYXRlbHkuIFNpbmNlIHRoZSBpbnRlcmZhY2VzIGFyZSByZWFkb25seSwgd2UnbGwgaGF2ZSB0byByZS1jb21wb3NlIHRoZSB0eXBlcyBhZnRlciB3ZSd2ZVxuICAvLyBjb2xsZWN0ZWQgYWxsIHRoZSBmaWVsZHNcbiAgY29uc3QgcXVlcnlBbmRNdXRhdGlvbkRlZmluaXRpb25zOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIG5vZGU6IE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZSB8IEludGVyZmFjZVR5cGVEZWZpbml0aW9uTm9kZTtcbiAgICAgIGZpZWxkczogRmllbGREZWZpbml0aW9uTm9kZVtdO1xuICAgIH1cbiAgPiA9IHt9O1xuXG4gIC8vIFRocm93cyBpZiB0aGUgZmllbGQgaGFzIGFscmVhZHkgYmVlbiBlbmNvdW50ZXJlZFxuICBjb25zdCB2YWxpZGF0ZUZpZWxkID0gKHR5cGVOYW1lOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRzID0gcXVlcnlBbmRNdXRhdGlvbkRlZmluaXRpb25zW3R5cGVOYW1lXT8uZmllbGRzO1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChmaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkLm5hbWUudmFsdWUgPT09IGZpZWxkTmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBjdXN0b20gJHt0eXBlTmFtZX0gZmllbGQgJyR7ZmllbGROYW1lfScgd2FzIGZvdW5kIGluIG11bHRpcGxlIGRlZmluaXRpb25zLCBidXQgYSBmaWVsZCBuYW1lIGNhbm5vdCBiZSBzaGFyZWQgYmV0d2VlbiBkZWZpbml0aW9ucy5gLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gVHJhbnNmb3JtIHRoZSBzY2hlbWEgYnkgcmVkdWNpbmcgTXV0YXRpb24gJiBRdWVyeSB0eXBlczpcbiAgLy8gLSBDb2xsZWN0IE11dGF0aW9uIGFuZCBRdWVyeSBkZWZpbml0aW9uc1xuICAvLyAtIEFsdGVyIHRoZSBwYXJzZWQgc2NoZW1hIGJ5IGZpbHRlcmluZyBvdXQgTXV0YXRpb24gJiBRdWVyeSB0eXBlc1xuICAvLyAtIEFkZCB0aGUgY29tYmluZWQgTXV0YXRpb24gJiBRdWVyeSBkZWZpbml0aW9ucyB0byB0aGUgZmlsdGVyZWQgc2NoZW1hXG4gIHBhcnNlZFNjaGVtYS5kZWZpbml0aW9ucy5maWx0ZXIoaXNCdWlsdEluR3JhcGhxbE5vZGUpLmZvckVhY2goKGRlZikgPT4ge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZGVmLm5hbWUudmFsdWU7XG4gICAgaWYgKCFxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdKSB7XG4gICAgICBxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdID0ge1xuICAgICAgICBub2RlOiBkZWYsXG4gICAgICAgIC8vIGBPYmplY3RUeXBlRGVmaW5pdGlvbk5vZGUuZmllbGRzYCBpcyBhIFJlYWRvbmx5QXJyYXk7IHNvIHdlIGhhdmUgdG8gY3JlYXRlIGEgbmV3IG11dGFibGUgYXJyYXkgdG8gY29sbGVjdCBhbGwgdGhlIGZpZWxkc1xuICAgICAgICBmaWVsZHM6IFsuLi4oZGVmLmZpZWxkcyA/PyBbXSldLFxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAoZGVmLmZpZWxkcyA/PyBbXSkuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIHZhbGlkYXRlRmllbGQodHlwZU5hbWUsIGZpZWxkLm5hbWUudmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcXVlcnlBbmRNdXRhdGlvbkRlZmluaXRpb25zW3R5cGVOYW1lXS5maWVsZHMgPSBbLi4ucXVlcnlBbmRNdXRhdGlvbkRlZmluaXRpb25zW3R5cGVOYW1lXS5maWVsZHMsIC4uLihkZWYuZmllbGRzID8/IFtdKV07XG4gIH0pO1xuXG4gIC8vIEdhdGhlciB0aGUgY29sbGVjdGVkIFF1ZXJ5ICYgTXV0YXRpb24gZmllbGRzIGludG8gPD0yIG5ldyBkZWZpbml0aW9uc1xuICBjb25zdCBjb21iaW5lZERlZmluaXRpb25zID0gT2JqZWN0LnZhbHVlcyhxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnMpXG4gICAgLnNvcnQoKGEsIGIpID0+IGEubm9kZS5uYW1lLnZhbHVlLmxvY2FsZUNvbXBhcmUoYi5ub2RlLm5hbWUudmFsdWUpKVxuICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uTm9kZSA9IHtcbiAgICAgICAgLi4uY3VyLm5vZGUsXG4gICAgICAgIGZpZWxkczogY3VyLmZpZWxkcyxcbiAgICAgIH07XG4gICAgICByZXR1cm4gWy4uLmFjYywgZGVmaW5pdGlvbk5vZGVdO1xuICAgIH0sIFtdIGFzIERlZmluaXRpb25Ob2RlW10pO1xuXG4gIC8vIEZpbHRlciBvdXQgdGhlIG9sZCBRdWVyeSAmIE11dGF0aW9uIGRlZmluaXRpb25zXG4gIGNvbnN0IGZpbHRlcmVkRGVmaW5pdGlvbnMgPSBwYXJzZWRTY2hlbWEuZGVmaW5pdGlvbnMuZmlsdGVyKChkZWYpID0+ICFpc0J1aWx0SW5HcmFwaHFsTm9kZShkZWYpKTtcblxuICAvLyBDb21wb3NlIHRoZSBuZXcgc2NoZW1hIGJ5IGFwcGVuZGluZyB0aGUgY29sbGVjdGVkIGRlZmluaXRpb25zIHRvIHRoZSBmaWx0ZXJlZCBkZWZpbml0aW9ucy4gVGhpcyBtZWFucyB0aGF0IGV2ZXJ5IHF1ZXJ5IHdpbGwgYmVcbiAgLy8gcmV3cml0dGVuIHN1Y2ggdGhhdCB0aGUgTXV0YXRpb24gYW5kIFF1ZXJ5IHR5cGVzIGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBzY2hlbWEuXG4gIGNvbnN0IG5ld1NjaGVtYSA9IHtcbiAgICAuLi5wYXJzZWRTY2hlbWEsXG4gICAgZGVmaW5pdGlvbnM6IFsuLi5maWx0ZXJlZERlZmluaXRpb25zLCAuLi5jb21iaW5lZERlZmluaXRpb25zXSxcbiAgfTtcblxuICBjb25zdCBjb21iaW5lZFNjaGVtYVN0cmluZyA9IHByaW50KG5ld1NjaGVtYSk7XG4gIHJldHVybiBjb21iaW5lZFNjaGVtYVN0cmluZztcbn07XG5cbi8qXG4gKiBWYWxpZGF0ZXMgdGhlIHVzZXIgaW5wdXQgZm9yIHRoZSBkYXRhU291cmNlU3RyYXRlZ3kuIFRoaXMgaXMgYSBuby1vcCBmb3IgRHluYW1vREIgc3RyYXRlZ2llcyBmb3Igbm93LlxuICogQHBhcmFtIHN0cmF0ZWd5IHVzZXIgcHJvdmlkZWQgbW9kZWwgZGF0YSBzb3VyY2Ugc3RyYXRlZ3lcbiAqIEByZXR1cm5zIHZhbGlkYXRlcyBhbmQgdGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdHJhdGVneSBpcyBpbnZhbGlkXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZURhdGFTb3VyY2VTdHJhdGVneSA9IChzdHJhdGVneTogQ29uc3RydWN0TW9kZWxEYXRhU291cmNlU3RyYXRlZ3kpOiB2b2lkID0+IHtcbiAgaWYgKCFpc1NxbFN0cmF0ZWd5KHN0cmF0ZWd5KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGRiQ29ubmVjdGlvbkNvbmZpZyA9IHN0cmF0ZWd5LmRiQ29ubmVjdGlvbkNvbmZpZztcbiAgaWYgKGlzU3FsTW9kZWxEYXRhU291cmNlU3NtRGJDb25uZWN0aW9uQ29uZmlnKGRiQ29ubmVjdGlvbkNvbmZpZykpIHtcbiAgICBjb25zdCBpbnZhbGlkU1NNUGF0aHMgPSBPYmplY3QudmFsdWVzKGRiQ29ubmVjdGlvbkNvbmZpZykuZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNWYWxpZFNTTVBhdGgodmFsdWUpKTtcbiAgICBpZiAoaW52YWxpZFNTTVBhdGhzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgZGF0YSBzb3VyY2Ugc3RyYXRlZ3kgXCIke1xuICAgICAgICAgIHN0cmF0ZWd5Lm5hbWVcbiAgICAgICAgfVwiLiBGb2xsb3dpbmcgU1NNIHBhdGhzIG11c3Qgc3RhcnQgd2l0aCAnLycgaW4gZGJDb25uZWN0aW9uQ29uZmlnOiAke2ludmFsaWRTU01QYXRocy5qb2luKCcsICcpfS5gLFxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZyhkYkNvbm5lY3Rpb25Db25maWcpKSB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoZGJDb25uZWN0aW9uQ29uZmlnLnNlY3JldEFybikpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGFybkNvbXBvbmVudHMgPSBBcm4uc3BsaXQoZGJDb25uZWN0aW9uQ29uZmlnLnNlY3JldEFybiwgQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUpO1xuICAgICAgICBpZiAoYXJuQ29tcG9uZW50cy5zZXJ2aWNlICE9PSAnc2VjcmV0c21hbmFnZXInIHx8IGFybkNvbXBvbmVudHMucmVzb3VyY2UgIT09ICdzZWNyZXQnKSB7XG4gICAgICAgICAgLy8gZXJyb3IgbWVzc2FnZSBkb2VzIG5vdCBtYXR0ZXIgYmVjYXVzZSBpdCBpbnNpZGUgdHJ5L2NhdGNoXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YSBzb3VyY2Ugc3RyYXRlZ3kgXCIke3N0cmF0ZWd5Lm5hbWV9XCIuIFRoZSB2YWx1ZSBvZiBzZWNyZXRBcm4gaXMgbm90IGEgdmFsaWQgU2VjcmV0cyBNYW5hZ2VyIEFSTi5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGJDb25uZWN0aW9uQ29uZmlnLmtleUFybiAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKGRiQ29ubmVjdGlvbkNvbmZpZy5rZXlBcm4pKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBhcm5Db21wb25lbnRzID0gQXJuLnNwbGl0KGRiQ29ubmVjdGlvbkNvbmZpZy5rZXlBcm4sIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKTtcbiAgICAgICAgaWYgKGFybkNvbXBvbmVudHMuc2VydmljZSAhPT0gJ2ttcycgfHwgYXJuQ29tcG9uZW50cy5yZXNvdXJjZSAhPT0gJ2tleScpIHtcbiAgICAgICAgICAvLyBlcnJvciBtZXNzYWdlIGRvZXMgbm90IG1hdHRlciBiZWNhdXNlIGl0IGluc2lkZSB0cnkvY2F0Y2hcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRhIHNvdXJjZSBzdHJhdGVneSBcIiR7c3RyYXRlZ3kubmFtZX1cIi4gVGhlIHZhbHVlIG9mIGtleUFybiBpcyBub3QgYSB2YWxpZCBLTVMgQVJOLmApO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YSBzb3VyY2Ugc3RyYXRlZ3kgXCIke3N0cmF0ZWd5Lm5hbWV9XCIuIGRiQ29ubmVjdGlvbkNvbmZpZyBkb2VzIG5vdCBpbmNsdWRlIFNTTSBwYXRocyBvciBTZWNyZXQgQVJOLmApO1xuICB9XG59O1xuXG5jb25zdCBpc1ZhbGlkU1NNUGF0aCA9IChwYXRoOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIHBhdGguc3RhcnRzV2l0aCgnLycpO1xufTtcbiJdfQ==
@@ -88,12 +88,36 @@ export interface SubnetAvailabilityZone {
88
88
  /** The availability zone of the subnet. */
89
89
  readonly availabilityZone: string;
90
90
  }
91
+ /**
92
+ * The credentials the lambda data source will use to connect to the database.
93
+ *
94
+ * @experimental
95
+ */
96
+ export type SqlModelDataSourceDbConnectionConfig = SqlModelDataSourceSecretsManagerDbConnectionConfig | SqlModelDataSourceSsmDbConnectionConfig;
97
+ /**
98
+ * The credentials stored in Secrets Manager that the lambda data source will use to connect to the database.
99
+ *
100
+ * The managed secret should be in the same region as the lambda.
101
+ * @experimental
102
+ */
103
+ export interface SqlModelDataSourceSecretsManagerDbConnectionConfig {
104
+ /** The ARN of the managed secret with username, password, and hostname to use when connecting to the database. **/
105
+ readonly secretArn: string;
106
+ /** The ARN of the customer managed encryption key for the secret. If not supplied, the secret is expected to be encrypted with the default AWS-managed key. **/
107
+ readonly keyArn?: string;
108
+ /** The port number of the database proxy, cluster, or instance. */
109
+ readonly port: number;
110
+ /** The database name. */
111
+ readonly databaseName: string;
112
+ /** The hostame of the database. */
113
+ readonly hostname: string;
114
+ }
91
115
  /**
92
116
  * The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
93
117
  *
94
118
  * These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
95
119
  */
96
- export interface SqlModelDataSourceDbConnectionConfig {
120
+ export interface SqlModelDataSourceSsmDbConnectionConfig {
97
121
  /** The Secure Systems Manager parameter containing the hostname of the database. For RDS-based SQL data sources, this can be the hostname
98
122
  * of a database proxy, cluster, or instance.
99
123
  */
@@ -7,4 +7,4 @@
7
7
  // amplify-graphql-transformer-interfaces/src/model-datasource (the internal implementation)
8
8
  // #########################################################################################################################################
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0SUFBNEk7QUFDNUksNElBQTRJO0FBQzVJLDhEQUE4RDtBQUM5RCxFQUFFO0FBQ0YsNkdBQTZHO0FBQzdHLDRGQUE0RjtBQUM1Riw0SUFBNEkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gVGhlc2UgYXJlIHRoZSBwdWJsaWMtZmFjaW5nIHR5cGVzIHVzZWQgYnkgY3VzdG9tZXJzIHRvIGRlZmluZSB0aGVpciBMMyBDREsgY29uc3RydWN0LiBNYW55IG9mIHRoZXNlIGhhdmUgY29ycmVzcG9uZGluZyBkZWZpbml0aW9ucyBpbiB0aGVcbi8vIHRyYW5zZm9ybWVyLWludGVyZmFjZXMgcGFja2FnZSB0byBkZWZpbmUgaW50ZXJuYWwgYmVoYXZpb3IuXG4vL1xuLy8gSWYgeW91IGNoYW5nZSB0eXBlcyBpbiB0aGlzIGZpbGUgKHRoZSBjdXN0b21lci1mYWNpbmcgaW50ZXJmYWNlKSwgYmUgc3VyZSB0byBtYWtlIGNvcnJlc3BvbmRpbmcgY2hhbmdlcyB0b1xuLy8gYW1wbGlmeS1ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMvc3JjL21vZGVsLWRhdGFzb3VyY2UgKHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbilcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbi8qKlxuICogQWxsIGtub3duIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWdpZXMuIENvbmNyZXRlIHN0cmF0ZWdpZXMgdmFyeSB3aWRlbHkgaW4gdGhlaXIgcmVxdWlyZW1lbnRzIGFuZCBpbXBsZW1lbnRhdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID1cbiAgfCBEZWZhdWx0RHluYW1vRGJNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICB8IEFtcGxpZnlEeW5hbW9EYk1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5XG4gIHwgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k7XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBkYXRhYmFzZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgbW9kZWxzLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneURiVHlwZSA9ICdEWU5BTU9EQicgfCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZTtcblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIFNRTCBkYXRhYmFzZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgbW9kZWxzLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZSA9ICdNWVNRTCcgfCAnUE9TVEdSRVMnO1xuXG4vKipcbiAqIFVzZSBkZWZhdWx0IENsb3VkRm9ybWF0aW9uIHR5cGUgJ0FXUzo6RHluYW1vREI6OlRhYmxlJyB0byBwcm92aXNpb24gdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdER5bmFtb0RiTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICByZWFkb25seSBkYlR5cGU6ICdEWU5BTU9EQic7XG4gIHJlYWRvbmx5IHByb3Zpc2lvblN0cmF0ZWd5OiAnREVGQVVMVCc7XG59XG5cbi8qKlxuICogVXNlIGN1c3RvbSByZXNvdXJjZSB0eXBlICdDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlJyB0byBwcm92aXNpb24gdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1wbGlmeUR5bmFtb0RiTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICByZWFkb25seSBkYlR5cGU6ICdEWU5BTU9EQic7XG4gIHJlYWRvbmx5IHByb3Zpc2lvblN0cmF0ZWd5OiAnQU1QTElGWV9UQUJMRSc7XG59XG5cbi8qKlxuICogQSBzdHJhdGVneSB0aGF0IGNyZWF0ZXMgYSBMYW1iZGEgdG8gY29ubmVjdCB0byBhIHByZS1leGlzdGluZyBTUUwgdGFibGUgdG8gcmVzb2x2ZSBtb2RlbCBkYXRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdHJhdGVneS4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gbmFtZSB0aGUgQXBwU3luYyBEYXRhU291cmNlIGl0c2VsZiwgcGx1cyBhbnkgYXNzb2NpYXRlZCByZXNvdXJjZXMgbGlrZSByZXNvbHZlciBMYW1iZGFzLlxuICAgKiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIGFsbCBzY2hlbWEgZGVmaW5pdGlvbnMgaW4gYSBHcmFwaFFMIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIFNRTCBkYXRhYmFzZSB1c2VkIHRvIHByb2Nlc3MgbW9kZWwgb3BlcmF0aW9ucyBmb3IgdGhpcyBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJUeXBlOiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZTtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSB3aWxsIHVzZSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS5cbiAgICovXG4gIHJlYWRvbmx5IGRiQ29ubmVjdGlvbkNvbmZpZzogU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgVlBDIGludG8gd2hpY2ggdG8gaW5zdGFsbCB0aGUgTGFtYmRhLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ29uZmlndXJhdGlvbj86IFZwY0NvbmZpZztcblxuICAvKipcbiAgICogQ3VzdG9tIFNRTCBzdGF0ZW1lbnRzLiBUaGUga2V5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgYHJlZmVyZW5jZXNgIGF0dHJpYnV0ZSBvZiB0aGUgYEBzcWxgIGRpcmVjdGl2ZSBpbiB0aGUgYHNjaGVtYWA7IHRoZSB2YWx1ZSBpcyB0aGUgU1FMXG4gICAqIHRvIGJlIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tU3FsU3RhdGVtZW50cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgb2YgdGhlIExhbWJkYS5cbiAgICovXG4gIHJlYWRvbmx5IHNxbExhbWJkYVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc/OiBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgdGhlIFZQQyBpbiB3aGljaCB0byBpbnN0YWxsIGEgTGFtYmRhIHRvIHJlc29sdmUgcXVlcmllcyBhZ2FpbnN0IGEgU1FMLWJhc2VkIGRhdGEgc291cmNlLiBUaGUgU1FMIExhbWJkYSB3aWxsIGJlIGRlcGxveWVkXG4gKiBpbnRvIHRoZSBzcGVjaWZpZWQgVlBDLCBzdWJuZXRzLCBhbmQgc2VjdXJpdHkgZ3JvdXBzLiBUaGUgc3BlY2lmaWVkIHN1Ym5ldHMgYW5kIHNlY3VyaXR5IGdyb3VwcyBtdXN0IGJlIGluIHRoZSBzYW1lIFZQQy4gVGhlIFZQQyBtdXN0XG4gKiBoYXZlIGF0IGxlYXN0IG9uZSBzdWJuZXQuIFRoZSBjb25zdHJ1Y3Qgd2lsbCBhbHNvIGNyZWF0ZSBWUEMgc2VydmljZSBlbmRwb2ludHMgaW4gdGhlIHNwZWNpZmllZCBzdWJuZXRzLCBhcyB3ZWxsIGFzIGluYm91bmQgc2VjdXJpdHlcbiAqIHJ1bGVzLCB0byBhbGxvdyB0cmFmZmljIG9uIHBvcnQgNDQzIHdpdGhpbiBlYWNoIHNlY3VyaXR5IGdyb3VwLiBUaGlzIGFsbG93cyB0aGUgTGFtYmRhIHRvIHJlYWQgZGF0YWJhc2UgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBmcm9tXG4gKiBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4gIC8qKiBUaGUgVlBDIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbi4gKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKiogVGhlIHNlY3VyaXR5IGdyb3VwcyB0byBpbnN0YWxsIHRoZSBMYW1iZGEgZGF0YSBzb3VyY2UgaW4uICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKiBUaGUgc3VibmV0cyB0byBpbnN0YWxsIHRoZSBMYW1iZGEgZGF0YSBzb3VyY2UgaW4sIG9uZSBwZXIgYXZhaWxhYmlsaXR5IHpvbmUuICovXG4gIHJlYWRvbmx5IHN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVDb25maWc6IFN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVbXTtcbn1cblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IG9mIHRoZSBMYW1iZGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyB7XG4gIC8qKiBUaGUgYW1vdW50IG9mIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IHRvIGFsbG9jYXRlLiAqKi9cbiAgcmVhZG9ubHkgcHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9uczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFN1Ym5ldCBjb25maWd1cmF0aW9uIGZvciBWUEMgZW5kcG9pbnRzIHVzZWQgYnkgYSBMYW1iZGEgcmVzb2x2ZXIgZm9yIGEgU1FMLWJhc2VkIGRhdGEgc291cmNlLiBBbHRob3VnaCBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgbXVsdGlwbGVcbiAqIHN1Ym5ldHMgaW4gYSBzaW5nbGUgYXZhaWxhYmlsaXR5IHpvbmUsIFZQQyBzZXJ2aWNlIGVuZHBvaW50cyBtYXkgb25seSBiZSBkZXBsb3llZCB0byBhIHNpbmdsZSBzdWJuZXQgaW4gYSBnaXZlbiBhdmFpbGFiaWxpdHkgem9uZS4gVGhpc1xuICogc3RydWN0dXJlIGVuc3VyZXMgdGhhdCB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFuZCBWUEMgc2VydmljZSBlbmRwb2ludHMgYXJlIG11dHVhbGx5IGNvbnNpc3RlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0QXZhaWxhYmlsaXR5Wm9uZSB7XG4gIC8qKiBUaGUgc3VibmV0IElEIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbi4gKi9cbiAgcmVhZG9ubHkgc3VibmV0SWQ6IHN0cmluZztcblxuICAvKiogVGhlIGF2YWlsYWJpbGl0eSB6b25lIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgcGF0aHMgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSB3aWxsIHVzZSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS5cbiAqXG4gKiBUaGVzZSBwYXJhbWV0ZXJzIGFyZSByZXRyaWV2ZWQgZnJvbSBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyIGluIHRoZSBzYW1lIHJlZ2lvbiBhcyB0aGUgTGFtYmRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyB7XG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgaG9zdG5hbWUgb2YgdGhlIGRhdGFiYXNlLiBGb3IgUkRTLWJhc2VkIFNRTCBkYXRhIHNvdXJjZXMsIHRoaXMgY2FuIGJlIHRoZSBob3N0bmFtZVxuICAgKiBvZiBhIGRhdGFiYXNlIHByb3h5LCBjbHVzdGVyLCBvciBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RuYW1lU3NtUGF0aDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgcG9ydCBudW1iZXIgb2YgdGhlIGRhdGFiYXNlIHByb3h5LCBjbHVzdGVyLCBvciBpbnN0YW5jZS4gKi9cbiAgcmVhZG9ubHkgcG9ydFNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIHVzZXJuYW1lIHRvIHVzZSB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLiAqL1xuICByZWFkb25seSB1c2VybmFtZVNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIHRvIHVzZSB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLiAqL1xuICByZWFkb25seSBwYXNzd29yZFNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIGRhdGFiYXNlIG5hbWUuICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZVNzbVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgaW5wdXQgdHlwZSBmb3IgZGVmaW5pbmcgYSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB1c2VkIHRvIHJlc29sdmUgYSBmaWVsZCBhbm5vdGF0ZWQgd2l0aCBhIGBAc3FsYCBkaXJlY3RpdmUuIEFsdGhvdWdoIHRoaXMgaXMgYVxuICogcHVibGljIHR5cGUsIHlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdG8gdXNlIHRoaXMuIFRoZSBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gZmFjdG9yeSBtZXRob2RzIChlLmcuLCBgZnJvbVN0cmluZ2AsXG4gKiBgZnJvbUZpbGVzQW5kU3RyYXRlZ3lgKSB3aWxsIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0IHRoaXMgc3RydWN0dXJlIGZvciB5b3UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgLyoqIFRoZSBidWlsdC1pbiB0eXBlIChlaXRoZXIgXCJRdWVyeVwiIG9yIFwiTXV0YXRpb25cIikgd2l0aCB3aGljaCB0aGUgY3VzdG9tIFNRTCBpcyBhc3NvY2lhdGVkICovXG4gIHJlYWRvbmx5IHR5cGVOYW1lOiAnUXVlcnknIHwgJ011dGF0aW9uJztcblxuICAvKiogVGhlIGZpZWxkIG5hbWUgd2l0aCB3aGljaCB0aGUgY3VzdG9tIFNRTCBpcyBhc3NvY2lhdGVkICovXG4gIHJlYWRvbmx5IGZpZWxkTmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgc3RyYXRlZ3kgdXNlZCB0byBjcmVhdGUgdGhlIGRhdGFzb3VyY2UgdGhhdCB3aWxsIHJlc29sdmUgdGhlIGN1c3RvbSBTUUwgc3RhdGVtZW50LiAqL1xuICByZWFkb25seSBzdHJhdGVneTogU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k7XG59XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0SUFBNEk7QUFDNUksNElBQTRJO0FBQzVJLDhEQUE4RDtBQUM5RCxFQUFFO0FBQ0YsNkdBQTZHO0FBQzdHLDRGQUE0RjtBQUM1Riw0SUFBNEkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gVGhlc2UgYXJlIHRoZSBwdWJsaWMtZmFjaW5nIHR5cGVzIHVzZWQgYnkgY3VzdG9tZXJzIHRvIGRlZmluZSB0aGVpciBMMyBDREsgY29uc3RydWN0LiBNYW55IG9mIHRoZXNlIGhhdmUgY29ycmVzcG9uZGluZyBkZWZpbml0aW9ucyBpbiB0aGVcbi8vIHRyYW5zZm9ybWVyLWludGVyZmFjZXMgcGFja2FnZSB0byBkZWZpbmUgaW50ZXJuYWwgYmVoYXZpb3IuXG4vL1xuLy8gSWYgeW91IGNoYW5nZSB0eXBlcyBpbiB0aGlzIGZpbGUgKHRoZSBjdXN0b21lci1mYWNpbmcgaW50ZXJmYWNlKSwgYmUgc3VyZSB0byBtYWtlIGNvcnJlc3BvbmRpbmcgY2hhbmdlcyB0b1xuLy8gYW1wbGlmeS1ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMvc3JjL21vZGVsLWRhdGFzb3VyY2UgKHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbilcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbi8qKlxuICogQWxsIGtub3duIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWdpZXMuIENvbmNyZXRlIHN0cmF0ZWdpZXMgdmFyeSB3aWRlbHkgaW4gdGhlaXIgcmVxdWlyZW1lbnRzIGFuZCBpbXBsZW1lbnRhdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID1cbiAgfCBEZWZhdWx0RHluYW1vRGJNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICB8IEFtcGxpZnlEeW5hbW9EYk1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5XG4gIHwgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k7XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBkYXRhYmFzZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgbW9kZWxzLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneURiVHlwZSA9ICdEWU5BTU9EQicgfCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZTtcblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIFNRTCBkYXRhYmFzZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgbW9kZWxzLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZSA9ICdNWVNRTCcgfCAnUE9TVEdSRVMnO1xuXG4vKipcbiAqIFVzZSBkZWZhdWx0IENsb3VkRm9ybWF0aW9uIHR5cGUgJ0FXUzo6RHluYW1vREI6OlRhYmxlJyB0byBwcm92aXNpb24gdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdER5bmFtb0RiTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICByZWFkb25seSBkYlR5cGU6ICdEWU5BTU9EQic7XG4gIHJlYWRvbmx5IHByb3Zpc2lvblN0cmF0ZWd5OiAnREVGQVVMVCc7XG59XG5cbi8qKlxuICogVXNlIGN1c3RvbSByZXNvdXJjZSB0eXBlICdDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlJyB0byBwcm92aXNpb24gdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1wbGlmeUR5bmFtb0RiTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICByZWFkb25seSBkYlR5cGU6ICdEWU5BTU9EQic7XG4gIHJlYWRvbmx5IHByb3Zpc2lvblN0cmF0ZWd5OiAnQU1QTElGWV9UQUJMRSc7XG59XG5cbi8qKlxuICogQSBzdHJhdGVneSB0aGF0IGNyZWF0ZXMgYSBMYW1iZGEgdG8gY29ubmVjdCB0byBhIHByZS1leGlzdGluZyBTUUwgdGFibGUgdG8gcmVzb2x2ZSBtb2RlbCBkYXRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdHJhdGVneS4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gbmFtZSB0aGUgQXBwU3luYyBEYXRhU291cmNlIGl0c2VsZiwgcGx1cyBhbnkgYXNzb2NpYXRlZCByZXNvdXJjZXMgbGlrZSByZXNvbHZlciBMYW1iZGFzLlxuICAgKiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIGFsbCBzY2hlbWEgZGVmaW5pdGlvbnMgaW4gYSBHcmFwaFFMIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIFNRTCBkYXRhYmFzZSB1c2VkIHRvIHByb2Nlc3MgbW9kZWwgb3BlcmF0aW9ucyBmb3IgdGhpcyBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJUeXBlOiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZTtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSB3aWxsIHVzZSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS5cbiAgICovXG4gIHJlYWRvbmx5IGRiQ29ubmVjdGlvbkNvbmZpZzogU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgVlBDIGludG8gd2hpY2ggdG8gaW5zdGFsbCB0aGUgTGFtYmRhLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ29uZmlndXJhdGlvbj86IFZwY0NvbmZpZztcblxuICAvKipcbiAgICogQ3VzdG9tIFNRTCBzdGF0ZW1lbnRzLiBUaGUga2V5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgYHJlZmVyZW5jZXNgIGF0dHJpYnV0ZSBvZiB0aGUgYEBzcWxgIGRpcmVjdGl2ZSBpbiB0aGUgYHNjaGVtYWA7IHRoZSB2YWx1ZSBpcyB0aGUgU1FMXG4gICAqIHRvIGJlIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tU3FsU3RhdGVtZW50cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgb2YgdGhlIExhbWJkYS5cbiAgICovXG4gIHJlYWRvbmx5IHNxbExhbWJkYVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc/OiBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgdGhlIFZQQyBpbiB3aGljaCB0byBpbnN0YWxsIGEgTGFtYmRhIHRvIHJlc29sdmUgcXVlcmllcyBhZ2FpbnN0IGEgU1FMLWJhc2VkIGRhdGEgc291cmNlLiBUaGUgU1FMIExhbWJkYSB3aWxsIGJlIGRlcGxveWVkXG4gKiBpbnRvIHRoZSBzcGVjaWZpZWQgVlBDLCBzdWJuZXRzLCBhbmQgc2VjdXJpdHkgZ3JvdXBzLiBUaGUgc3BlY2lmaWVkIHN1Ym5ldHMgYW5kIHNlY3VyaXR5IGdyb3VwcyBtdXN0IGJlIGluIHRoZSBzYW1lIFZQQy4gVGhlIFZQQyBtdXN0XG4gKiBoYXZlIGF0IGxlYXN0IG9uZSBzdWJuZXQuIFRoZSBjb25zdHJ1Y3Qgd2lsbCBhbHNvIGNyZWF0ZSBWUEMgc2VydmljZSBlbmRwb2ludHMgaW4gdGhlIHNwZWNpZmllZCBzdWJuZXRzLCBhcyB3ZWxsIGFzIGluYm91bmQgc2VjdXJpdHlcbiAqIHJ1bGVzLCB0byBhbGxvdyB0cmFmZmljIG9uIHBvcnQgNDQzIHdpdGhpbiBlYWNoIHNlY3VyaXR5IGdyb3VwLiBUaGlzIGFsbG93cyB0aGUgTGFtYmRhIHRvIHJlYWQgZGF0YWJhc2UgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBmcm9tXG4gKiBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4gIC8qKiBUaGUgVlBDIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbi4gKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKiogVGhlIHNlY3VyaXR5IGdyb3VwcyB0byBpbnN0YWxsIHRoZSBMYW1iZGEgZGF0YSBzb3VyY2UgaW4uICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKiBUaGUgc3VibmV0cyB0byBpbnN0YWxsIHRoZSBMYW1iZGEgZGF0YSBzb3VyY2UgaW4sIG9uZSBwZXIgYXZhaWxhYmlsaXR5IHpvbmUuICovXG4gIHJlYWRvbmx5IHN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVDb25maWc6IFN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVbXTtcbn1cblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IG9mIHRoZSBMYW1iZGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyB7XG4gIC8qKiBUaGUgYW1vdW50IG9mIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IHRvIGFsbG9jYXRlLiAqKi9cbiAgcmVhZG9ubHkgcHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9uczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFN1Ym5ldCBjb25maWd1cmF0aW9uIGZvciBWUEMgZW5kcG9pbnRzIHVzZWQgYnkgYSBMYW1iZGEgcmVzb2x2ZXIgZm9yIGEgU1FMLWJhc2VkIGRhdGEgc291cmNlLiBBbHRob3VnaCBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgbXVsdGlwbGVcbiAqIHN1Ym5ldHMgaW4gYSBzaW5nbGUgYXZhaWxhYmlsaXR5IHpvbmUsIFZQQyBzZXJ2aWNlIGVuZHBvaW50cyBtYXkgb25seSBiZSBkZXBsb3llZCB0byBhIHNpbmdsZSBzdWJuZXQgaW4gYSBnaXZlbiBhdmFpbGFiaWxpdHkgem9uZS4gVGhpc1xuICogc3RydWN0dXJlIGVuc3VyZXMgdGhhdCB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFuZCBWUEMgc2VydmljZSBlbmRwb2ludHMgYXJlIG11dHVhbGx5IGNvbnNpc3RlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0QXZhaWxhYmlsaXR5Wm9uZSB7XG4gIC8qKiBUaGUgc3VibmV0IElEIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbi4gKi9cbiAgcmVhZG9ubHkgc3VibmV0SWQ6IHN0cmluZztcblxuICAvKiogVGhlIGF2YWlsYWJpbGl0eSB6b25lIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgY3JlZGVudGlhbHMgdGhlIGxhbWJkYSBkYXRhIHNvdXJjZSB3aWxsIHVzZSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS5cbiAqXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCB0eXBlIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyA9XG4gIHwgU3FsTW9kZWxEYXRhU291cmNlU2VjcmV0c01hbmFnZXJEYkNvbm5lY3Rpb25Db25maWdcbiAgfCBTcWxNb2RlbERhdGFTb3VyY2VTc21EYkNvbm5lY3Rpb25Db25maWc7XG5cbi8qKlxuICogVGhlIGNyZWRlbnRpYWxzIHN0b3JlZCBpbiBTZWNyZXRzIE1hbmFnZXIgdGhhdCB0aGUgbGFtYmRhIGRhdGEgc291cmNlIHdpbGwgdXNlIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLlxuICpcbiAqIFRoZSBtYW5hZ2VkIHNlY3JldCBzaG91bGQgYmUgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBsYW1iZGEuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3FsTW9kZWxEYXRhU291cmNlU2VjcmV0c01hbmFnZXJEYkNvbm5lY3Rpb25Db25maWcge1xuICAvKiogVGhlIEFSTiBvZiB0aGUgbWFuYWdlZCBzZWNyZXQgd2l0aCB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCBob3N0bmFtZSB0byB1c2Ugd2hlbiBjb25uZWN0aW5nIHRvIHRoZSBkYXRhYmFzZS4gKiovXG4gIHJlYWRvbmx5IHNlY3JldEFybjogc3RyaW5nO1xuXG4gIC8qKiBUaGUgQVJOIG9mIHRoZSBjdXN0b21lciBtYW5hZ2VkIGVuY3J5cHRpb24ga2V5IGZvciB0aGUgc2VjcmV0LiBJZiBub3Qgc3VwcGxpZWQsIHRoZSBzZWNyZXQgaXMgZXhwZWN0ZWQgdG8gYmUgZW5jcnlwdGVkIHdpdGggdGhlIGRlZmF1bHQgQVdTLW1hbmFnZWQga2V5LiAqKi9cbiAgcmVhZG9ubHkga2V5QXJuPzogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcG9ydCBudW1iZXIgb2YgdGhlIGRhdGFiYXNlIHByb3h5LCBjbHVzdGVyLCBvciBpbnN0YW5jZS4gKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKiBUaGUgZGF0YWJhc2UgbmFtZS4gKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBob3N0YW1lIG9mIHRoZSBkYXRhYmFzZS4gKi9cbiAgcmVhZG9ubHkgaG9zdG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgcGF0aHMgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSB3aWxsIHVzZSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS5cbiAqXG4gKiBUaGVzZSBwYXJhbWV0ZXJzIGFyZSByZXRyaWV2ZWQgZnJvbSBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyIGluIHRoZSBzYW1lIHJlZ2lvbiBhcyB0aGUgTGFtYmRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvbkNvbmZpZyB7XG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgaG9zdG5hbWUgb2YgdGhlIGRhdGFiYXNlLiBGb3IgUkRTLWJhc2VkIFNRTCBkYXRhIHNvdXJjZXMsIHRoaXMgY2FuIGJlIHRoZSBob3N0bmFtZVxuICAgKiBvZiBhIGRhdGFiYXNlIHByb3h5LCBjbHVzdGVyLCBvciBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RuYW1lU3NtUGF0aDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgcG9ydCBudW1iZXIgb2YgdGhlIGRhdGFiYXNlIHByb3h5LCBjbHVzdGVyLCBvciBpbnN0YW5jZS4gKi9cbiAgcmVhZG9ubHkgcG9ydFNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIHVzZXJuYW1lIHRvIHVzZSB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLiAqL1xuICByZWFkb25seSB1c2VybmFtZVNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIHRvIHVzZSB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLiAqL1xuICByZWFkb25seSBwYXNzd29yZFNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIGRhdGFiYXNlIG5hbWUuICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZVNzbVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgaW5wdXQgdHlwZSBmb3IgZGVmaW5pbmcgYSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB1c2VkIHRvIHJlc29sdmUgYSBmaWVsZCBhbm5vdGF0ZWQgd2l0aCBhIGBAc3FsYCBkaXJlY3RpdmUuIEFsdGhvdWdoIHRoaXMgaXMgYVxuICogcHVibGljIHR5cGUsIHlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdG8gdXNlIHRoaXMuIFRoZSBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gZmFjdG9yeSBtZXRob2RzIChlLmcuLCBgZnJvbVN0cmluZ2AsXG4gKiBgZnJvbUZpbGVzQW5kU3RyYXRlZ3lgKSB3aWxsIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0IHRoaXMgc3RydWN0dXJlIGZvciB5b3UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgLyoqIFRoZSBidWlsdC1pbiB0eXBlIChlaXRoZXIgXCJRdWVyeVwiIG9yIFwiTXV0YXRpb25cIikgd2l0aCB3aGljaCB0aGUgY3VzdG9tIFNRTCBpcyBhc3NvY2lhdGVkICovXG4gIHJlYWRvbmx5IHR5cGVOYW1lOiAnUXVlcnknIHwgJ011dGF0aW9uJztcblxuICAvKiogVGhlIGZpZWxkIG5hbWUgd2l0aCB3aGljaCB0aGUgY3VzdG9tIFNRTCBpcyBhc3NvY2lhdGVkICovXG4gIHJlYWRvbmx5IGZpZWxkTmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgc3RyYXRlZ3kgdXNlZCB0byBjcmVhdGUgdGhlIGRhdGFzb3VyY2UgdGhhdCB3aWxsIHJlc29sdmUgdGhlIGN1c3RvbSBTUUwgc3RhdGVtZW50LiAqL1xuICByZWFkb25seSBzdHJhdGVneTogU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { SQLLambdaModelDataSourceStrategy, SqlModelDataSourceDbConnectionConfig } from './model-datasource-strategy-types';
1
+ import { SQLLambdaModelDataSourceStrategy, SqlModelDataSourceDbConnectionConfig, SqlModelDataSourceSsmDbConnectionConfig, SqlModelDataSourceSecretsManagerDbConnectionConfig } from './model-datasource-strategy-types';
2
2
  /**
3
3
  * Type predicate that returns true if the object is a SQLLambdaModelDataSourceStrategy.
4
4
  * @param obj the object to inspect
@@ -11,6 +11,18 @@ export declare const isSQLLambdaModelDataSourceStrategy: (obj: any) => obj is SQ
11
11
  * @returns true if the object is shaped like a SqlModelDataSourceDbConnectionConfig
12
12
  */
13
13
  export declare const isSqlModelDataSourceDbConnectionConfig: (obj: any) => obj is SqlModelDataSourceDbConnectionConfig;
14
+ /**
15
+ * Type predicate that returns true if the object is a SqlModelDataSourceSsmDbConnectionConfig.
16
+ * @param obj the object to inspect
17
+ * @returns true if the object is shaped like a SqlModelDataSourceSsmDbConnectionConfig
18
+ */
19
+ export declare const isSqlModelDataSourceSsmDbConnectionConfig: (obj: any) => obj is SqlModelDataSourceSsmDbConnectionConfig;
20
+ /**
21
+ * Type predicate that returns true if the object is a SqlModelDataSourceSecretsManagerDbConnectionConfig.
22
+ * @param obj the object to inspect
23
+ * @returns true if the object is shaped like a SqlModelDataSourceSecretsManagerDbConnectionConfig
24
+ */
25
+ export declare const isSqlModelDataSourceSecretsManagerDbConnectionConfig: (obj: any) => obj is SqlModelDataSourceSecretsManagerDbConnectionConfig;
14
26
  /**
15
27
  * Class exposing utilities to produce SQLLambdaModelDataSourceStrategy objects given various inputs.
16
28
  */