@aws-amplify/graphql-api-construct 1.6.0 → 1.7.0-cors-rule.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. package/.jsii +145 -34
  2. package/API.md +13 -1
  3. package/CHANGELOG.md +7 -0
  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/codegen-assets.js +14 -1
  9. package/lib/internal/data-source-config.js +37 -4
  10. package/lib/model-datasource-strategy-types.d.ts +25 -1
  11. package/lib/model-datasource-strategy-types.js +1 -1
  12. package/lib/sql-model-datasource-strategy.d.ts +13 -1
  13. package/lib/sql-model-datasource-strategy.js +26 -4
  14. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
  15. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +11 -11
  16. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  17. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +6 -6
  18. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  19. package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +201 -0
  20. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -5
  21. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  22. package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +201 -0
  23. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -5
  24. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
  25. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +6 -6
  26. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
  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 +9 -9
  29. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +6 -0
  30. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  31. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  32. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  33. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +5 -1
  34. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  35. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +71 -26
  36. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  37. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  38. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +21 -7
  39. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  40. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +5 -5
  41. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  42. package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +201 -0
  43. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  44. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -5
  45. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  46. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts +12 -0
  47. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts.map +1 -0
  48. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js +34 -0
  49. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js.map +1 -0
  50. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts +12 -0
  51. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts.map +1 -0
  52. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js +27 -0
  53. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js.map +1 -0
  54. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts +5 -0
  55. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts.map +1 -0
  56. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js +16 -0
  57. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js.map +1 -0
  58. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.d.ts +11 -0
  59. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.d.ts.map +1 -0
  60. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.js +3 -0
  61. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.js.map +1 -0
  62. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
  63. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +9 -40
  64. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
  65. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
  66. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +12 -35
  67. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
  68. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
  69. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +8 -27
  70. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
  71. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts +12 -0
  72. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts.map +1 -0
  73. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.js +32 -0
  74. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.js.map +1 -0
  75. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.d.ts +12 -0
  76. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.d.ts.map +1 -0
  77. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js +27 -0
  78. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js.map +1 -0
  79. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.d.ts +5 -0
  80. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.d.ts.map +1 -0
  81. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js +16 -0
  82. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js.map +1 -0
  83. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts +12 -0
  84. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts.map +1 -0
  85. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.js +31 -0
  86. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.js.map +1 -0
  87. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.d.ts +12 -0
  88. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.d.ts.map +1 -0
  89. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js +27 -0
  90. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js.map +1 -0
  91. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.d.ts +5 -0
  92. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.d.ts.map +1 -0
  93. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js +16 -0
  94. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js.map +1 -0
  95. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +7 -7
  96. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  97. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  98. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +6 -6
  99. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
  100. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +6 -6
  101. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +6 -0
  102. package/node_modules/@aws-amplify/graphql-transformer/package.json +16 -16
  103. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +3 -0
  104. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -0
  105. package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
  106. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +1 -1
  107. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
  108. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +3 -2
  109. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
  110. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts +1 -0
  111. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts.map +1 -1
  112. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js +8 -1
  113. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js.map +1 -1
  114. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -3
  115. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +27 -1
  116. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -0
  117. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +201 -0
  118. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +12 -1
  119. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -1
  120. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +22 -0
  121. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -1
  122. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -2
  123. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +76 -1
  124. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  125. package/package.json +17 -17
  126. package/src/internal/codegen-assets.ts +15 -2
  127. package/src/internal/data-source-config.ts +42 -9
  128. package/src/model-datasource-strategy-types.ts +33 -1
  129. package/src/sql-model-datasource-strategy.ts +32 -1
package/API.md CHANGED
@@ -348,7 +348,19 @@ export class SQLLambdaModelDataSourceStrategyFactory {
348
348
  }
349
349
 
350
350
  // @public
351
- export interface SqlModelDataSourceDbConnectionConfig {
351
+ export type SqlModelDataSourceDbConnectionConfig = SqlModelDataSourceSecretsManagerDbConnectionConfig | SqlModelDataSourceSsmDbConnectionConfig;
352
+
353
+ // @public
354
+ export interface SqlModelDataSourceSecretsManagerDbConnectionConfig {
355
+ readonly databaseName: string;
356
+ readonly hostname: string;
357
+ readonly keyArn?: string;
358
+ readonly port: number;
359
+ readonly secretArn: string;
360
+ }
361
+
362
+ // @public
363
+ export interface SqlModelDataSourceSsmDbConnectionConfig {
352
364
  readonly databaseNameSsmPath: string;
353
365
  readonly hostnameSsmPath: string;
354
366
  readonly passwordSsmPath: string;
package/CHANGELOG.md CHANGED
@@ -3,6 +3,13 @@
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.7.0-cors-rule.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.6.0...@aws-amplify/graphql-api-construct@1.7.0-cors-rule.0) (2024-03-20)
7
+
8
+ ### Features
9
+
10
+ - add secrets manager as credential store for sql lambda ([#2289](https://github.com/aws-amplify/amplify-category-api/issues/2289)) ([affdb98](https://github.com/aws-amplify/amplify-category-api/commit/affdb988b499591c3a96608f772b637ddd8c3a0c))
11
+ - **api:** enable cors on codegen asset bucket ([5513930](https://github.com/aws-amplify/amplify-category-api/commit/55139304e590357863393f3c8e1cec1989c4940d))
12
+
6
13
  # [1.6.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.5.7...@aws-amplify/graphql-api-construct@1.6.0) (2024-03-13)
7
14
 
8
15
  ### Features
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;
@@ -105,5 +105,5 @@ class AmplifyDynamoDbTableWrapper {
105
105
  }
106
106
  exports.AmplifyDynamoDbTableWrapper = AmplifyDynamoDbTableWrapper;
107
107
  _a = JSII_RTTI_SYMBOL_1;
108
- AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.6.0" };
108
+ AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.7.0-cors-rule.0" };
109
109
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1keW5hbW9kYi10YWJsZS13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF5RDtBQUd6RCxNQUFNLG9DQUFvQyxHQUFHLDhCQUE4QixDQUFDO0FBZ0M1RTs7O0dBR0c7QUFDSCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFGVyxPQUFPLHVCQUFQLE9BQU8sUUFFbEI7QUEyQ0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsMkJBQTJCO0lBQ3RDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsWUFBWSx5QkFBVyxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssb0NBQW9DLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQTZCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDaEQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLG9DQUFvQyxFQUFFO1lBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLG9DQUFvQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzNIO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLE1BQXFCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXLENBQUMsV0FBd0I7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUIsQ0FBQyx1QkFBZ0Q7UUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksMEJBQTBCLENBQUMsMEJBQW1DO1FBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsa0NBQWtDLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxxQkFBcUIsQ0FBQyxxQkFBNEM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNENBQTRDLENBQUMsU0FBaUIsRUFBRSxxQkFBNEM7UUFDMUcsTUFBTSxJQUFJLEdBQTJDLE1BQU0sQ0FBQyxPQUFPLENBQ2hFLElBQUksQ0FBQyxRQUFnQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsc0JBQXNCLElBQUksRUFBRSxDQUM5RSxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ILElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQy9FO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CLENBQUMsbUJBQXdDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQixDQUFDLGdCQUFrQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSx5QkFBeUIsQ0FBQyx5QkFBa0M7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7O0FBM0ZILGtFQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQmlsbGluZ01vZGUsIFN0cmVhbVZpZXdUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcblxuY29uc3QgQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUnO1xuXG4vKipcbiAqIFNoYXBlIGZvciBUVEwgY29uZmlnLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIEJvb2xlYW4gZGV0ZXJtaW5pbmcgaWYgdGhlIHR0bCBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBuYW1lIHRvIGFwcGx5IHRvIHRoZSB0dGwgc3BlYy5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBjb25maWcgaW4gRERCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBUaGUgcmVhZCBjYXBhY2l0eSB1bml0cyBvbiB0aGUgdGFibGUgb3IgaW5kZXguXG4gICAqL1xuICByZWFkb25seSByZWFkQ2FwYWNpdHlVbml0czogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd3JpdGUgY2FwYWNpdHkgdW5pdHMgb24gdGhlIHRhYmxlIG9yIGluZGV4LlxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogU2VydmVyIFNpZGUgRW5jcnlwdGlvbiBUeXBlIFZhbHVlc1xuICogLSBgS01TYCAtIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLTVMuIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBLTVMgKEFXUyBLTVMgY2hhcmdlcyBhcHBseSkuXG4gKi9cbmV4cG9ydCBlbnVtIFNTRVR5cGUge1xuICBLTVMgPSAnS01TJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTRVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBpcyBkb25lIHVzaW5nIGFuIEFXUyBtYW5hZ2VkIGtleSBvciBhbiBBV1Mgb3duZWQga2V5LlxuICAgKiBJZiBlbmFibGVkICh0cnVlKSwgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlIGlzIHNldCB0byBgS01TYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKCBBV1MgS01TIGNoYXJnZXMgYXBwbHkpLlxuICAgKiBJZiBkaXNhYmxlZCAoZmFsc2UpIG9yIG5vdCBzcGVjaWZpZWQsIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgc2V0IHRvIEFXUyBvd25lZCBrZXkuXG4gICAqL1xuICByZWFkb25seSBzc2VFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIEtNUyBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIEFXUyBLTVMgZW5jcnlwdGlvbi5cbiAgICogVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZVxuICAgKiB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYWxpYXMvYXdzL2R5bmFtb2RiYCAuXG4gICAqL1xuICByZWFkb25seSBrbXNNYXN0ZXJLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlLiBUaGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXM6XG4gICAqIGBLTVNgIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlLlxuICAgKiAgIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBBV1MgS01TICggQVdTIEtNUyBjaGFyZ2VzIGFwcGx5KS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZVR5cGU/OiBTU0VUeXBlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIER5bmFtb0RCIFN0cmVhbXMgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSBpbiBEeW5hbW9EQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFdoZW4gYW4gaXRlbSBpbiB0aGUgdGFibGUgaXMgbW9kaWZpZWQsIGBTdHJlYW1WaWV3VHlwZWAgZGV0ZXJtaW5lcyB3aGF0IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbSBmb3IgdGhpcyB0YWJsZS5cbiAgICogVmFsaWQgdmFsdWVzIGZvciBgU3RyZWFtVmlld1R5cGVgIGFyZTpcbiAgICogLSBgS0VZU19PTkxZYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE5FV19JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE9MRF9JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgTkVXX0FORF9PTERfSU1BR0VTYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtVmlld1R5cGU6IFN0cmVhbVZpZXdUeXBlO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgY2xhc3MgYXJvdW5kIEN1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUgY3VzdG9tIHJlc291cmNlLCB0byBzaW1wbGlmeVxuICogdGhlIG92ZXJyaWRlIGV4cGVyaWVuY2UgYSBiaXQuIFRoaXMgaXMgTk9UIGEgY29uc3RydWN0LCBqdXN0IGFuIGVhc2llciB3YXkgdG8gYWNjZXNzXG4gKiB0aGUgZ2VuZXJhdGVkIGNvbnN0cnVjdC5cbiAqIFRoaXMgaXMgYSB3cmFwcGVyIGludGVuZGVkIHRvIG1pbWljIHRoZSBgYXdzX2Nka19saWIuYXdzX2R5bmFtb2RiLlRhYmxlYCBmdW5jdGlvbmFsaXR5IG1vcmUtb3ItbGVzcy5cbiAqIE5vdGFibGUgZGlmZmVyZW5jZXMgaXMgdGhlIGFkZGl0aW9uIG9mIFRLVEsgcHJvcGVydGllcywgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCB0aGV5J3JlIGNvbnN0cnVjdG9yIHByb3BzXG4gKiBpbiB0aGUgQ0RLIGNvbnN0cnVjdCwgYXMgd2VsbCBhcyB0aGUgcmVtb3ZhbCBvZiBhbGwgZnJvbSosIGdyYW50KiwgYW5kIG1ldHJpYyogbWV0aG9kcyBpbXBsZW1lbnRlZCBieSBUYWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBhbmQgcGVyZm9ybSB0eXBlIG5hcnJvd2luZyBpZiBhIGdpdmVuIGlucHV0IGFwcGVhcnMgdG8gYmUgY2FwYWJsZSBvZlxuICAgKiBAcGFyYW0geCB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcmVzb3VyY2UgaXMgYW4gdW5kZXJseWluZyBhbXBsaWZ5IGR5bmFtb2RiIHRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgc3RhdGljIGlzQW1wbGlmeUR5bmFtb0RiVGFibGVSZXNvdXJjZSh4OiBhbnkpOiB4IGlzIENmblJlc291cmNlIHtcbiAgICByZXR1cm4geCBpbnN0YW5jZW9mIENmblJlc291cmNlICYmIHguY2ZuUmVzb3VyY2VUeXBlID09PSBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSB3cmFwcGVyIGdpdmVuIGFuIHVuZGVybHlpbmcgQ2ZuUmVzb3VyY2UgdGhhdCBpcyBhbiBpbnN0YW5jZSBvZiBDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlLlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgdGhlIENmbiByZXNvdXJjZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJlc291cmNlKSB7XG4gICAgaWYgKHJlc291cmNlLmNmblJlc291cmNlVHlwZSAhPT0gQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgQ2ZuUmVzb3VyY2Ugd2l0aCB0eXBlICR7QU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFfSBjYW4gYmUgdXNlZCBpbiBBbXBsaWZ5RHluYW1vRGJUYWJsZWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlbGV0aW9uIHBvbGljeSBvZiB0aGUgcmVzb3VyY2UgYmFzZWQgb24gdGhlIHJlbW92YWwgcG9saWN5IHNwZWNpZmllZC5cbiAgICogQHBhcmFtIHBvbGljeSByZW1vdmFsIHBvbGljeSB0byBzZXRcbiAgICovXG4gIGFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3k6IFJlbW92YWxQb2xpY3kpOiB2b2lkIHtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgaG93IHlvdSBhcmUgY2hhcmdlZCBmb3IgcmVhZCBhbmQgd3JpdGUgdGhyb3VnaHB1dCBhbmQgaG93IHlvdSBtYW5hZ2UgY2FwYWNpdHkuXG4gICAqL1xuICBzZXQgYmlsbGluZ01vZGUoYmlsbGluZ01vZGU6IEJpbGxpbmdNb2RlKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdiaWxsaW5nTW9kZScsIGJpbGxpbmdNb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiBUVEwgYXR0cmlidXRlLlxuICAgKi9cbiAgc2V0IHRpbWVUb0xpdmVBdHRyaWJ1dGUodGltZVRvTGl2ZVNwZWNpZmljYXRpb246IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCd0aW1lVG9MaXZlU3BlY2lmaWNhdGlvbicsIHRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgaXMgZW5hYmxlZC5cbiAgICovXG4gIHNldCBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZChwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgncG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24nLCB7IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBmb3IgdGhlIGJhc2UgdGFibGUuXG4gICAqL1xuICBzZXQgcHJvdmlzaW9uZWRUaHJvdWdocHV0KHByb3Zpc2lvbmVkVGhyb3VnaHB1dDogUHJvdmlzaW9uZWRUaHJvdWdocHV0KSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdwcm92aXNpb25lZFRocm91Z2hwdXQnLCBwcm92aXNpb25lZFRocm91Z2hwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcHJvdmlzaW9uZWRUaHJvdWdodHB1dCBmb3IgYSBzcGVjaWZpZWQgR1NJIGJ5IG5hbWUuXG4gICAqIEBwYXJhbSBpbmRleE5hbWUgdGhlIGluZGV4IHRvIHNwZWNpZnkgYSBwcm92aXNpb25lZFRocm91Z2hwdXQgY29uZmlnIGZvclxuICAgKiBAcGFyYW0gcHJvdmlzaW9uZWRUaHJvdWdocHV0IHRoZSBjb25maWcgdG8gc2V0XG4gICAqL1xuICBzZXRHbG9iYWxTZWNvbmRhcnlJbmRleFByb3Zpc2lvbmVkVGhyb3VnaHB1dChpbmRleE5hbWU6IHN0cmluZywgcHJvdmlzaW9uZWRUaHJvdWdocHV0OiBQcm92aXNpb25lZFRocm91Z2hwdXQpOiB2b2lkIHtcbiAgICBjb25zdCBnc2lzOiBBcnJheTxbc3RyaW5nLCB7IGluZGV4TmFtZTogc3RyaW5nIH1dPiA9IE9iamVjdC5lbnRyaWVzKFxuICAgICAgKHRoaXMucmVzb3VyY2UgYXMgYW55KS5yYXdPdmVycmlkZXM/LlByb3BlcnRpZXM/Lmdsb2JhbFNlY29uZGFyeUluZGV4ZXMgPz8ge30sXG4gICAgKTtcbiAgICBjb25zdCBmb3VuZEdzaXMgPSBnc2lzLmZpbHRlcigoW18sIGdzaUNvbmZpZ10pID0+IGluZGV4TmFtZSA9PT0gZ3NpQ29uZmlnLmluZGV4TmFtZSkubWFwKChbZ3NpSW5kZXhdKSA9PiBnc2lJbmRleCk7XG4gICAgaWYgKGZvdW5kR3Npcy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5kZXggd2l0aCBuYW1lICR7aW5kZXhOYW1lfSBub3QgZm91bmQgaW4gdGFibGUgZGVmaW5pdGlvbmApO1xuICAgIH1cbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoYGdsb2JhbFNlY29uZGFyeUluZGV4ZXMuJHtmb3VuZEdzaXNbMF19LnByb3Zpc2lvbmVkVGhyb3VnaHB1dGAsIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZGIgc3RyZWFtIHNwZWNpZmljYXRpb24gb24gdGhlIHRhYmxlLlxuICAgKi9cbiAgc2V0IHN0cmVhbVNwZWNpZmljYXRpb24oc3RyZWFtU3BlY2lmaWNhdGlvbjogU3RyZWFtU3BlY2lmaWNhdGlvbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnc3RyZWFtU3BlY2lmaWNhdGlvbicsIHN0cmVhbVNwZWNpZmljYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGRiIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbiBvbiB0aGUgdGFibGUuXG4gICAqL1xuICBzZXQgc3NlU3BlY2lmaWNhdGlvbihzc2VTcGVjaWZpY2F0aW9uOiBTU0VTcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdzc2VTcGVjaWZpY2F0aW9uJywgc3NlU3BlY2lmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRhYmxlIGRlbGV0aW9uIHByb3RlY3Rpb24uXG4gICAqL1xuICBzZXQgZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZChkZWxldGlvblByb3RlY3Rpb25FbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdkZWxldGlvblByb3RlY3Rpb25FbmFibGVkJywgZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ==
@@ -262,7 +262,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
262
262
  }
263
263
  exports.AmplifyGraphqlApi = AmplifyGraphqlApi;
264
264
  _a = JSII_RTTI_SYMBOL_1;
265
- AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.6.0" };
265
+ AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.7.0-cors-rule.0" };
266
266
  /**
267
267
  * Given the provided scope, walk the node tree, and throw an exception if any other AmplifyGraphqlApi constructs
268
268
  * 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.6.0" };
104
+ AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.7.0-cors-rule.0" };
105
105
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBQ3JELG9GQUFzRTtBQUV0RSx5Q0FBMkQ7QUFFM0Qsc0VBSXVDO0FBRTFCLFFBQUEsa0NBQWtDLEdBQTRCO0lBQ3pFLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLGlCQUFpQixFQUFFLFNBQVM7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFjLEVBQ2QscUJBQThDLDBDQUFrQztRQUVoRixJQUFBLCtDQUEwQixFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsT0FBTztZQUNMLE1BQU07WUFDTixhQUFhLEVBQUUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLG9CQUFvQixFQUFFLElBQUEsd0NBQTZCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1lBQy9FLDZCQUE2QixFQUFFLElBQUEsMkRBQXNDLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1NBQ2xHLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksd0JBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUs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LEVBQUUsRUFBRSxDQUFDO1lBQ3JHLDZCQUE2QjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7QUFwR0gsNERBcUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgU2NoZW1hRmlsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IGlzU3FsU3RyYXRlZ3kgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzIH0gZnJvbSAnLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IH0gZnJvbSAnLi9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzJztcbmltcG9ydCB7XG4gIGNvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLFxuICBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyxcbiAgdmFsaWRhdGVEYXRhU291cmNlU3RyYXRlZ3ksXG59IGZyb20gJy4vaW50ZXJuYWwvZGF0YS1zb3VyY2UtY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0ge1xuICBkYlR5cGU6ICdEWU5BTU9EQicsXG4gIHByb3Zpc2lvblN0cmF0ZWd5OiAnREVGQVVMVCcsXG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gb2JqZWN0cyBnaXZlbiB2YXJpb3VzIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBQcm9kdWNlIGEgc2NoZW1hIGRlZmluaXRpb24gZnJvbSBhIHN0cmluZyBpbnB1dC5cbiAgICogQHBhcmFtIHNjaGVtYSB0aGUgZ3JhcGhxbCBpbnB1dCBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gZGF0YVNvdXJjZVN0cmF0ZWd5IHRoZSBwcm92aXNpb25pbmcgZGVmaW5pdGlvbiBmb3IgZGF0YXNvdXJjZXMgdGhhdCByZXNvbHZlIGBAbW9kZWxgcyBhbmQgY3VzdG9tIFNRTCBzdGF0ZW1lbnRzIGluIHRoaXMgc2NoZW1hLlxuICAgKiBUaGUgRHluYW1vREIgZnJvbSBDbG91ZEZvcm1hdGlvbiB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICogQHJldHVybnMgYSBmdWxseSBmb3JtZWQgYW1wbGlmeSBncmFwaHFsIGRlZmluaXRpb25cbiAgICovXG4gIHN0YXRpYyBmcm9tU3RyaW5nKFxuICAgIHNjaGVtYTogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2VTdHJhdGVneTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgPSBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZLFxuICApOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICB2YWxpZGF0ZURhdGFTb3VyY2VTdHJhdGVneShkYXRhU291cmNlU3RyYXRlZ3kpO1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IHt9LFxuICAgICAgZGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KSxcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzOiBjb25zdHJ1Y3RDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYSwgYmluZGluZyB0aGVtIHRvIGEgRHluYW1vREIgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBmaWxlUGF0aHMgb25lIG9yIG1vcmUgcGF0aHMgdG8gdGhlIGdyYXBocWwgZmlsZXMgdG8gcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvbiwgd2hvc2UgbW9kZWxzIHdpbGwgYmUgcmVzb2x2ZWQgYnkgRHluYW1vREIgdGFibGVzIGNyZWF0ZWQgZHVyaW5nIGRlcGxveW1lbnQuXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzKC4uLmZpbGVQYXRoczogc3RyaW5nW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsZVBhdGhzKSkge1xuICAgICAgZmlsZVBhdGhzID0gW2ZpbGVQYXRoc107XG4gICAgfVxuICAgIGNvbnN0IHNjaGVtYSA9IGZpbGVQYXRocy5tYXAoKGZpbGVQYXRoKSA9PiBuZXcgU2NoZW1hRmlsZSh7IGZpbGVQYXRoIH0pLmRlZmluaXRpb24pLmpvaW4ob3MuRU9MKTtcbiAgICByZXR1cm4gQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uLmZyb21TdHJpbmcoc2NoZW1hLCBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYVxuICAgKiBAcGFyYW0gZmlsZVBhdGhzIG9uZSBvciBtb3JlIHBhdGhzIHRvIHRoZSBncmFwaHFsIGZpbGVzIHRvIHByb2Nlc3NcbiAgICogQHBhcmFtIGRhdGFTb3VyY2VTdHJhdGVneSB0aGUgcHJvdmlzaW9uaW5nIGRlZmluaXRpb24gZm9yIGRhdGFzb3VyY2VzIHRoYXQgcmVzb2x2ZSBgQG1vZGVsYHMgaW4gdGhpcyBzY2hlbWEuIFRoZSBEeW5hbW9EQiBmcm9tXG4gICAqIENsb3VkRm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvblxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlc0FuZFN0cmF0ZWd5KFxuICAgIGZpbGVQYXRoczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1ksXG4gICk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpKSB7XG4gICAgICBmaWxlUGF0aHMgPSBbZmlsZVBhdGhzXTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZW1hID0gZmlsZVBhdGhzLm1hcCgoZmlsZVBhdGgpID0+IG5ldyBTY2hlbWFGaWxlKHsgZmlsZVBhdGggfSkuZGVmaW5pdGlvbikuam9pbihvcy5FT0wpO1xuICAgIHJldHVybiBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24uZnJvbVN0cmluZyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZXMgbXVsdGlwbGUgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbnMgaW50byBhIHNpbmdsZSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0gZGVmaW5pdGlvbnMgdGhlIGRlZmluaXRpb25zIHRvIGNvbWJpbmVcbiAgICovXG4gIHN0YXRpYyBjb21iaW5lKGRlZmluaXRpb25zOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkZWZpbml0aW9ucyBvZiBhbXBsaWZ5IEdyYXBoUUwgY2Fubm90IGJlIGVtcHR5LicpO1xuICAgIH1cbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZGVmaW5pdGlvbnNbMF07XG4gICAgfVxuXG4gICAgLy8gQSBzdHJhdGVneSB3aWxsIGJlIHByZXNlbnQgbXVsdGlwbGUgdGltZXMgaW4gYSBnaXZlbiBkZWZpbml0aW9uOiBvbmNlIHBlciBtb2RlbC4gV2UnbGwgY3JlYXRlIGEgdW5pcXVlIGxpc3QgcGVyIGRlZmluaXRpb24gdG8gZW5zdXJlXG4gICAgLy8gbm8gcmV1c2UgYWNyb3NzIGRlZmluaXRpb25zLlxuICAgIGxldCBjb21iaW5lZFN0cmF0ZWd5TmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBkZWZpbml0aW9uIG9mIGRlZmluaXRpb25zKSB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uU3RyYXRlZ3lOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiBPYmplY3QudmFsdWVzKGRlZmluaXRpb24uZGF0YVNvdXJjZVN0cmF0ZWdpZXMpKSB7XG4gICAgICAgIGlmICghaXNTcWxTdHJhdGVneShzdHJhdGVneSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJhdGVneU5hbWUgPSBzdHJhdGVneS5uYW1lO1xuICAgICAgICBpZiAoY29tYmluZWRTdHJhdGVneU5hbWVzLmluY2x1ZGVzKHN0cmF0ZWd5TmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlIFNRTC1iYXNlZCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSAnJHtzdHJhdGVneU5hbWV9JyB3YXMgZm91bmQgaW4gbXVsdGlwbGUgZGVmaW5pdGlvbnMsIGJ1dCBhIHN0cmF0ZWd5IG5hbWUgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICBcInNoYXJlZCBiZXR3ZWVuIGRlZmluaXRpb25zLiBUbyBzcGVjaWZ5IGEgU1FMLWJhc2VkIEFQSSB3aXRoIHNjaGVtYXMgYWNyb3NzIG11bHRpcGxlIGZpbGVzLCB1c2UgJ2Zyb21GaWxlc0FuZFN0cmF0ZWd5J1wiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZGVmaW5pdGlvblN0cmF0ZWd5TmFtZXMuYWRkKHN0cmF0ZWd5TmFtZSk7XG4gICAgICB9XG4gICAgICBjb21iaW5lZFN0cmF0ZWd5TmFtZXMgPSBbLi4uY29tYmluZWRTdHJhdGVneU5hbWVzLCAuLi5kZWZpbml0aW9uU3RyYXRlZ3lOYW1lc107XG4gICAgfVxuXG4gICAgY29uc3QgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSBkZWZpbml0aW9ucy5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXIpID0+IFsuLi5hY2MsIC4uLihjdXIuY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPz8gW10pXSxcbiAgICAgIFtdIGFzIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneVtdLFxuICAgICk7XG5cbiAgICBjb25zdCBtZXJnZWRTY2hlbWEgPSBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyhkZWZpbml0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBtZXJnZWRTY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IGRlZmluaXRpb25zLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyLnJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnMgfSksIHt9KSxcbiAgICAgIGRhdGFTb3VyY2VTdHJhdGVnaWVzOiBkZWZpbml0aW9ucy5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoeyAuLi5hY2MsIC4uLmN1ci5kYXRhU291cmNlU3RyYXRlZ2llcyB9KSwge30pLFxuICAgICAgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -6,6 +6,11 @@ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
6
6
  const aws_s3_deployment_1 = require("aws-cdk-lib/aws-s3-deployment");
7
7
  const constructs_1 = require("constructs");
8
8
  const MODEL_SCHEMA_KEY = 'model-schema.graphql';
9
+ const CONSOLE_SERVICE_ENDPOINT = aws_cdk_lib_1.Fn.join('', [
10
+ 'https://',
11
+ aws_cdk_lib_1.Fn.ref('AWS::Region'),
12
+ '.console.aws.amazon.com/amplify',
13
+ ]);
9
14
  /**
10
15
  * Construct an S3 URI string for a given bucket and key.
11
16
  * @param bucket the bucket to embed in the uri string
@@ -23,6 +28,14 @@ class CodegenAssets extends constructs_1.Construct {
23
28
  const bucket = new aws_s3_1.Bucket(this, `${id}Bucket`, {
24
29
  removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
25
30
  autoDeleteObjects: true,
31
+ // Enabling CORS to allow console to access the codegen assets.
32
+ cors: [
33
+ {
34
+ allowedMethods: [aws_s3_1.HttpMethods.GET, aws_s3_1.HttpMethods.HEAD],
35
+ allowedHeaders: ['*'],
36
+ allowedOrigins: [CONSOLE_SERVICE_ENDPOINT],
37
+ },
38
+ ],
26
39
  });
27
40
  const deployment = new aws_s3_deployment_1.BucketDeployment(this, `${id}Deployment`, {
28
41
  destinationBucket: bucket,
@@ -37,4 +50,4 @@ class CodegenAssets extends constructs_1.Construct {
37
50
  }
38
51
  }
39
52
  exports.CodegenAssets = CodegenAssets;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29kZWdlbi1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBQzVDLCtDQUFxRDtBQUNyRCxxRUFBeUU7QUFDekUsMkNBQXVDO0FBTXZDLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUM7QUFFaEQ7Ozs7O0dBS0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBZSxFQUFFLEdBQVcsRUFBVSxFQUFFLENBQUMsUUFBUSxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBRTdHOzs7R0FHRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBRzFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUM3QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtZQUMvRCxpQkFBaUIsRUFBRSxNQUFNO1lBQ3pCLE9BQU8sRUFBRSxDQUFDLDBCQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRCxpR0FBaUc7WUFDakcsNEdBQTRHO1lBQzVHLDRIQUE0SDtZQUM1SCx5SEFBeUg7WUFDekgsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRixDQUFDO0NBQ0Y7QUF2QkQsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1Y2tldCwgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBCdWNrZXREZXBsb3ltZW50LCBTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IHR5cGUgQ29kZWdlbkFzc2V0c1Byb3BzID0ge1xuICBtb2RlbFNjaGVtYTogc3RyaW5nO1xufTtcblxuY29uc3QgTU9ERUxfU0NIRU1BX0tFWSA9ICdtb2RlbC1zY2hlbWEuZ3JhcGhxbCc7XG5cbi8qKlxuICogQ29uc3RydWN0IGFuIFMzIFVSSSBzdHJpbmcgZm9yIGEgZ2l2ZW4gYnVja2V0IGFuZCBrZXkuXG4gKiBAcGFyYW0gYnVja2V0IHRoZSBidWNrZXQgdG8gZW1iZWQgaW4gdGhlIHVyaSBzdHJpbmdcbiAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byBlbWJlZCBpbiB0aGUgdXJpIHN0cmluZ1xuICogQHJldHVybnMgdGhlIHVyaSBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gKi9cbmNvbnN0IGdldFMzVXJpRm9yQnVja2V0QW5kS2V5ID0gKGJ1Y2tldDogSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4gYHMzOi8vJHtidWNrZXQuYnVja2V0TmFtZX0vJHtrZXl9YDtcblxuLyoqXG4gKiBDb25zdHJ1Y3Qgd2hpY2ggY3JlYXRlcyBhIGJ1Y2tldCwgYW5kIHVwbG9hZHMgZmlsZSBhc3NldHMgcmVxdWlyZWQgZm9yIGNvZGVnZW4gdG8gcnVuLlxuICogUG9pbnRlcnMgdG8gdGhlc2UgcmVzb3VyY2VzIGFyZSBwZXJzaXN0ZWQgaW4gdGhlIHN0YWNrIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlZ2VuQXNzZXRzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIG1vZGVsU2NoZW1hUzNVcmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZWdlbkFzc2V0c1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgYCR7aWR9QnVja2V0YCwge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZXBsb3ltZW50ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgYCR7aWR9RGVwbG95bWVudGAsIHtcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiBidWNrZXQsXG4gICAgICBzb3VyY2VzOiBbU291cmNlLmRhdGEoTU9ERUxfU0NIRU1BX0tFWSwgcHJvcHMubW9kZWxTY2hlbWEpXSxcbiAgICAgIC8vIEJ1Y2tldCBkZXBsb3ltZW50IHVzZXMgYSBMYW1iZGEgdGhhdCBydW5zIEFXUyBTMyBDTEkgdG8gdHJhbnNmZXIgYXNzZXRzIHRvIGRlc3RpbmF0aW9uIGJ1Y2tldC5cbiAgICAgIC8vIFRoYXQgTGFtYmRhIHJlcXVpcmVzIGhpZ2hlciBtZW1vcnkgc2V0dGluZyB0byBydW4gZmFzdCBldmVuIHdoZW4gcHJvY2Vzc2luZyBzbWFsbCBhc3NldHMgKGxlc3MgdGhhbiAxa0IpLlxuICAgICAgLy8gVGhpcyBzZXR0aW5nIGhhcyBiZWVuIGVzdGFibGlzaGVkIGV4cGVyaW1lbnRhbGx5LiBCZW5jaG1hcmsgY2FuIGJlIGZvdW5kIGluIHB1bGwgcmVxdWVzdCBkZXNjcmlwdGlvbiB0aGF0IGVzdGFibGlzaGVkIGl0LlxuICAgICAgLy8gVGhlIHZhbHVlIGhhcyBiZWVuIGNob3NlbiB0byBwcmVmZXIgdGhlIGxvd2VzdCBjb3N0IChydW4gdGltZSAqIG1lbW9yeSBkZW1hbmQpIHdoaWxlIHByb3ZpZGluZyByZWFzb25hYmxlIHBlcmZvcm1hbmNlLlxuICAgICAgbWVtb3J5TGltaXQ6IDE1MzYsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1vZGVsU2NoZW1hUzNVcmkgPSBnZXRTM1VyaUZvckJ1Y2tldEFuZEtleShkZXBsb3ltZW50LmRlcGxveWVkQnVja2V0LCBNT0RFTF9TQ0hFTUFfS0VZKTtcbiAgfVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29kZWdlbi1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdEO0FBQ2hELCtDQUFrRTtBQUNsRSxxRUFBeUU7QUFDekUsMkNBQXVDO0FBTXZDLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUM7QUFDaEQsTUFBTSx3QkFBd0IsR0FBRyxnQkFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7SUFDM0MsVUFBVTtJQUNWLGdCQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUNyQixpQ0FBaUM7Q0FDbEMsQ0FBQyxDQUFDO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBZSxFQUFFLEdBQVcsRUFBVSxFQUFFLENBQUMsUUFBUSxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBRTdHOzs7R0FHRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBRzFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUM3QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsK0RBQStEO1lBQy9ELElBQUksRUFBRTtnQkFDSjtvQkFDRSxjQUFjLEVBQUUsQ0FBQyxvQkFBVyxDQUFDLEdBQUcsRUFBRSxvQkFBVyxDQUFDLElBQUksQ0FBQztvQkFDbkQsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDO29CQUNyQixjQUFjLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDM0M7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksb0NBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7WUFDL0QsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixPQUFPLEVBQUUsQ0FBQywwQkFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0QsaUdBQWlHO1lBQ2pHLDRHQUE0RztZQUM1Ryw0SEFBNEg7WUFDNUgseUhBQXlIO1lBQ3pILFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDL0YsQ0FBQztDQUNGO0FBL0JELHNDQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3ksIEZuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQnVja2V0LCBIdHRwTWV0aG9kcywgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBCdWNrZXREZXBsb3ltZW50LCBTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IHR5cGUgQ29kZWdlbkFzc2V0c1Byb3BzID0ge1xuICBtb2RlbFNjaGVtYTogc3RyaW5nO1xufTtcblxuY29uc3QgTU9ERUxfU0NIRU1BX0tFWSA9ICdtb2RlbC1zY2hlbWEuZ3JhcGhxbCc7XG5jb25zdCBDT05TT0xFX1NFUlZJQ0VfRU5EUE9JTlQgPSBGbi5qb2luKCcnLCBbXG4gICdodHRwczovLycsXG4gIEZuLnJlZignQVdTOjpSZWdpb24nKSxcbiAgJy5jb25zb2xlLmF3cy5hbWF6b24uY29tL2FtcGxpZnknLFxuXSk7XG5cbi8qKlxuICogQ29uc3RydWN0IGFuIFMzIFVSSSBzdHJpbmcgZm9yIGEgZ2l2ZW4gYnVja2V0IGFuZCBrZXkuXG4gKiBAcGFyYW0gYnVja2V0IHRoZSBidWNrZXQgdG8gZW1iZWQgaW4gdGhlIHVyaSBzdHJpbmdcbiAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byBlbWJlZCBpbiB0aGUgdXJpIHN0cmluZ1xuICogQHJldHVybnMgdGhlIHVyaSBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gKi9cbmNvbnN0IGdldFMzVXJpRm9yQnVja2V0QW5kS2V5ID0gKGJ1Y2tldDogSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4gYHMzOi8vJHtidWNrZXQuYnVja2V0TmFtZX0vJHtrZXl9YDtcblxuLyoqXG4gKiBDb25zdHJ1Y3Qgd2hpY2ggY3JlYXRlcyBhIGJ1Y2tldCwgYW5kIHVwbG9hZHMgZmlsZSBhc3NldHMgcmVxdWlyZWQgZm9yIGNvZGVnZW4gdG8gcnVuLlxuICogUG9pbnRlcnMgdG8gdGhlc2UgcmVzb3VyY2VzIGFyZSBwZXJzaXN0ZWQgaW4gdGhlIHN0YWNrIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlZ2VuQXNzZXRzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIG1vZGVsU2NoZW1hUzNVcmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZWdlbkFzc2V0c1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgYCR7aWR9QnVja2V0YCwge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICAvLyBFbmFibGluZyBDT1JTIHRvIGFsbG93IGNvbnNvbGUgdG8gYWNjZXNzIHRoZSBjb2RlZ2VuIGFzc2V0cy5cbiAgICAgIGNvcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFsbG93ZWRNZXRob2RzOiBbSHR0cE1ldGhvZHMuR0VULCBIdHRwTWV0aG9kcy5IRUFEXSxcbiAgICAgICAgICBhbGxvd2VkSGVhZGVyczogWycqJ10sXG4gICAgICAgICAgYWxsb3dlZE9yaWdpbnM6IFtDT05TT0xFX1NFUlZJQ0VfRU5EUE9JTlRdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlcGxveW1lbnQgPSBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgJHtpZH1EZXBsb3ltZW50YCwge1xuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IGJ1Y2tldCxcbiAgICAgIHNvdXJjZXM6IFtTb3VyY2UuZGF0YShNT0RFTF9TQ0hFTUFfS0VZLCBwcm9wcy5tb2RlbFNjaGVtYSldLFxuICAgICAgLy8gQnVja2V0IGRlcGxveW1lbnQgdXNlcyBhIExhbWJkYSB0aGF0IHJ1bnMgQVdTIFMzIENMSSB0byB0cmFuc2ZlciBhc3NldHMgdG8gZGVzdGluYXRpb24gYnVja2V0LlxuICAgICAgLy8gVGhhdCBMYW1iZGEgcmVxdWlyZXMgaGlnaGVyIG1lbW9yeSBzZXR0aW5nIHRvIHJ1biBmYXN0IGV2ZW4gd2hlbiBwcm9jZXNzaW5nIHNtYWxsIGFzc2V0cyAobGVzcyB0aGFuIDFrQikuXG4gICAgICAvLyBUaGlzIHNldHRpbmcgaGFzIGJlZW4gZXN0YWJsaXNoZWQgZXhwZXJpbWVudGFsbHkuIEJlbmNobWFyayBjYW4gYmUgZm91bmQgaW4gcHVsbCByZXF1ZXN0IGRlc2NyaXB0aW9uIHRoYXQgZXN0YWJsaXNoZWQgaXQuXG4gICAgICAvLyBUaGUgdmFsdWUgaGFzIGJlZW4gY2hvc2VuIHRvIHByZWZlciB0aGUgbG93ZXN0IGNvc3QgKHJ1biB0aW1lICogbWVtb3J5IGRlbWFuZCkgd2hpbGUgcHJvdmlkaW5nIHJlYXNvbmFibGUgcGVyZm9ybWFuY2UuXG4gICAgICBtZW1vcnlMaW1pdDogMTUzNixcbiAgICB9KTtcblxuICAgIHRoaXMubW9kZWxTY2hlbWFTM1VyaSA9IGdldFMzVXJpRm9yQnVja2V0QW5kS2V5KGRlcGxveW1lbnQuZGVwbG95ZWRCdWNrZXQsIE1PREVMX1NDSEVNQV9LRVkpO1xuICB9XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBbUk7QUFDbkksb0ZBTStDO0FBUS9DOzs7Ozs7O0dBT0c7QUFDSSxNQUFNLHNDQUFzQyxHQUFHLENBQ3BELE1BQWMsRUFDZCxrQkFBb0QsRUFDWixFQUFFO0lBQzFDLElBQUksQ0FBQyxJQUFBLHdDQUFhLEVBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUN0QyxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsc0NBQVcsQ0FBQyxDQUFDO0lBQzdELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHlDQUFjLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQy9CLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLDZCQUE2QixHQUEyQyxFQUFFLENBQUM7SUFFakYsSUFBSSxTQUFTLEVBQUU7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFBLGlEQUFzQixFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQzFCLDZCQUE2QixDQUFDLElBQUksQ0FBQztnQkFDakMsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQzNCLFFBQVEsRUFBRSxrQkFBa0I7YUFDN0IsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUVELElBQUksWUFBWSxFQUFFO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUEsaURBQXNC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Q0FBQztBQWRXLFFBQUEsMEJBQTBCLDhCQWNyQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFXLEVBQUU7SUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmluaXRpb25Ob2RlLCBGaWVsZERlZmluaXRpb25Ob2RlLCBJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbk5vZGUsIE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZSwgcGFyc2UsIHByaW50IH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQge1xuICBpc0J1aWx0SW5HcmFwaHFsTm9kZSxcbiAgaXNTcWxTdHJhdGVneSxcbiAgaXNRdWVyeU5vZGUsXG4gIGlzTXV0YXRpb25Ob2RlLFxuICBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSBhcyBDb25zdHJ1Y3RDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksXG4gIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IGFzIENvbnN0cnVjdE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxufSBmcm9tICcuLi9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBpbnRlcmZhY2UgZmxhdm9yIG9mIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzIGZyb20gYSBmYWN0b3J5IG1ldGhvZCdzIHNjaGVtYSBhbmQgZGF0YSBzb3VyY2UuIEludGVybmFsbHksIHRoaXMgZnVuY3Rpb25cbiAqIHNjYW5zIHRoZSBmaWVsZHMgb2YgYFF1ZXJ5YCBhbmQgYE11dGF0aW9uYCBsb29raW5nIGZvciBmaWVsZHMgYW5ub3RhdGVkIHdpdGggdGhlIGBAc3FsYCBkaXJlY3RpdmUgYW5kIGRlc2lnbmF0ZXMgdGhlIHNwZWNpZmllZFxuICogZGF0YVNvdXJjZVN0cmF0ZWd5IHRvIGZ1bGZpbGwgdGhvc2UgY3VzdG9tIHF1ZXJpZXMuXG4gKlxuICogTm90ZSB0aGF0IHdlIGRvIG5vdCBzY2FuIGZvciBgU3Vic2NyaXB0aW9uYCBmaWVsZHM6IGBAc3FsYCBkaXJlY3RpdmVzIGFyZSBub3QgYWxsb3dlZCBvbiB0aG9zZSwgYW5kIGl0IHdvdWxkbid0IG1ha2Ugc2Vuc2UgdG8gZG8gc29cbiAqIGFueXdheSwgc2luY2Ugc3Vic2NyaXB0aW9ucyBhcmUgcHJvY2Vzc2VkIGZyb20gYW4gaW5jb21pbmcgTXV0YXRpb24sIG5vdCBhcyB0aGUgcmVzdWx0IG9mIGEgZGlyZWN0IGRhdGFzb3VyY2UgYWNjZXNzLlxuICovXG5leHBvcnQgY29uc3QgY29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSAoXG4gIHNjaGVtYTogc3RyaW5nLFxuICBkYXRhU291cmNlU3RyYXRlZ3k6IENvbnN0cnVjdE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxuKTogQ29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPT4ge1xuICBpZiAoIWlzU3FsU3RyYXRlZ3koZGF0YVNvdXJjZVN0cmF0ZWd5KSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG5cbiAgY29uc3QgcXVlcnlOb2RlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbmQoaXNRdWVyeU5vZGUpO1xuICBjb25zdCBtdXRhdGlvbk5vZGUgPSBwYXJzZWRTY2hlbWEuZGVmaW5pdGlvbnMuZmluZChpc011dGF0aW9uTm9kZSk7XG4gIGlmICghcXVlcnlOb2RlICYmICFtdXRhdGlvbk5vZGUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llczogQ29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPSBbXTtcblxuICBpZiAocXVlcnlOb2RlKSB7XG4gICAgY29uc3QgZmllbGRzID0gZmllbGRzV2l0aFNxbERpcmVjdGl2ZShxdWVyeU5vZGUpO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcy5wdXNoKHtcbiAgICAgICAgdHlwZU5hbWU6ICdRdWVyeScsXG4gICAgICAgIGZpZWxkTmFtZTogZmllbGQubmFtZS52YWx1ZSxcbiAgICAgICAgc3RyYXRlZ3k6IGRhdGFTb3VyY2VTdHJhdGVneSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtdXRhdGlvbk5vZGUpIHtcbiAgICBjb25zdCBmaWVsZHMgPSBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlKG11dGF0aW9uTm9kZSk7XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLnB1c2goe1xuICAgICAgICB0eXBlTmFtZTogJ011dGF0aW9uJyxcbiAgICAgICAgZmllbGROYW1lOiBmaWVsZC5uYW1lLnZhbHVlLFxuICAgICAgICBzdHJhdGVneTogZGF0YVNvdXJjZVN0cmF0ZWd5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzO1xufTtcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgZGF0YSBzb3VyY2UgcHJvdmlkZXIgZnJvbSB0aGUgZGVmaW5pdGlvbi4gVGhpcyBqdW1wcyB0aHJvdWdoIHNvbWUgaG9vcHMgdG8gYXZvaWQgY2hhbmdpbmcgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIElmIHdlIGRlY2lkZVxuICogdG8gY2hhbmdlIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNpbXBsaWZ5IHRoZSBzdHJ1Y3R1cmUsIHRoZW4gdGhpcyBwcm9jZXNzIGdldHMgYSBsb3Qgc2ltcGxlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgPSAoZGVmaW5pdGlvbjogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbik6IERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgPT4ge1xuICBjb25zdCBwcm92aWRlcjogRGF0YVNvdXJjZVN0cmF0ZWdpZXNQcm92aWRlciA9IHtcbiAgICAvLyBXZSBjYW4gZGlyZWN0bHkgdXNlIHRoZSBpbnRlcmZhY2Ugc3RyYXRlZ2llcywgZXZlbiB0aG91Z2ggdGhlIFNRTCBzdHJhdGVnaWVzIGhhdmUgdGhlIGN1c3RvbVNxbFN0YXRlbWVudHMgZmllbGQgdGhhdCBpcyB1bnVzZWQgYnkgdGhlXG4gICAgLy8gdHJhbnNmb3JtZXIgZmxhdm9yIG9mIHRoaXMgdHlwZVxuICAgIGRhdGFTb3VyY2VTdHJhdGVnaWVzOiBkZWZpbml0aW9uLmRhdGFTb3VyY2VTdHJhdGVnaWVzLFxuICAgIHNxbERpcmVjdGl2ZURhdGFTb3VyY2VTdHJhdGVnaWVzOiBbXSxcbiAgfTtcblxuICAvLyBXZSdsbCBjb2xsZWN0IGFsbCB0aGUgY3VzdG9tIFNRTCBzdGF0ZW1lbnRzIGZyb20gdGhlIGRlZmluaXRpb24gaW50byBhIHNpbmdsZSBtYXAsIGFuZCB1c2UgdGhhdCB0byBtYWtlIG91clxuICAvLyBTcWxEaXJlY3RpdmVEYXRhU291cmNlU3RyYXRlZ2llc1xuICBjb25zdCBjdXN0b21TcWxTdGF0ZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+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
  */