@aws-amplify/graphql-api-construct 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/.jsii +155 -36
  2. package/API.md +12 -0
  3. package/CHANGELOG.md +6 -0
  4. package/lib/amplify-dynamodb-table-wrapper.js +2 -2
  5. package/lib/amplify-graphql-api.js +3 -3
  6. package/lib/amplify-graphql-definition.js +2 -2
  7. package/lib/internal/asset-provider.js +1 -1
  8. package/lib/internal/authorization-modes.js +1 -1
  9. package/lib/internal/conflict-resolution.js +1 -1
  10. package/lib/internal/construct-exports.js +1 -1
  11. package/lib/internal/construct-tree.js +1 -1
  12. package/lib/internal/data-source-config.js +1 -1
  13. package/lib/internal/model-type-name.js +1 -1
  14. package/lib/internal/user-defined-slots.js +1 -1
  15. package/lib/model-datasource-strategy-types.d.ts +36 -1
  16. package/lib/model-datasource-strategy-types.js +1 -1
  17. package/lib/sql-model-datasource-strategy.js +1 -1
  18. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +6 -0
  19. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.d.ts.map +1 -1
  20. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js +3 -1
  21. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js.map +1 -1
  22. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +11 -11
  23. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  24. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +6 -6
  25. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  26. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +5 -5
  27. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  28. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +5 -5
  29. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +6 -0
  30. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +6 -6
  31. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +6 -0
  32. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  33. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +9 -9
  34. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +10 -0
  35. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  36. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  37. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  38. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js +1 -1
  39. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  40. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +3 -2
  41. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  42. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +40 -18
  43. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  44. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  45. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +7 -1
  46. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  47. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +5 -5
  48. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  49. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  50. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +5 -5
  51. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  52. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +7 -7
  53. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  54. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  55. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +6 -6
  56. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
  57. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +6 -6
  58. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +4 -0
  59. package/node_modules/@aws-amplify/graphql-transformer/package.json +15 -15
  60. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +1 -1
  61. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +6 -0
  62. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts +1 -1
  63. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts.map +1 -1
  64. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js +6 -1
  65. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js.map +1 -1
  66. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +3 -3
  67. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +19 -0
  68. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -0
  69. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +9 -0
  70. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -1
  71. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +3 -1
  72. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -1
  73. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -2
  74. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +44 -1
  75. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  76. package/node_modules/graphql-transformer-common/package.json +1 -2
  77. package/package.json +18 -18
  78. package/src/amplify-graphql-api.ts +1 -1
  79. package/src/model-datasource-strategy-types.ts +41 -1
  80. package/node_modules/graphql-transformer-common/LICENSE +0 -201
package/.jsii CHANGED
@@ -8,21 +8,21 @@
8
8
  "bundled": {
9
9
  "@aws-amplify/backend-output-schemas": "^0.4.0",
10
10
  "@aws-amplify/backend-output-storage": "^0.2.2",
11
- "@aws-amplify/graphql-auth-transformer": "3.6.0",
12
- "@aws-amplify/graphql-default-value-transformer": "2.3.8",
11
+ "@aws-amplify/graphql-auth-transformer": "3.6.1",
12
+ "@aws-amplify/graphql-default-value-transformer": "2.3.9",
13
13
  "@aws-amplify/graphql-directives": "1.1.0",
14
- "@aws-amplify/graphql-function-transformer": "2.1.23",
15
- "@aws-amplify/graphql-http-transformer": "2.1.23",
16
- "@aws-amplify/graphql-index-transformer": "2.4.4",
17
- "@aws-amplify/graphql-maps-to-transformer": "3.4.18",
18
- "@aws-amplify/graphql-model-transformer": "2.10.2",
19
- "@aws-amplify/graphql-predictions-transformer": "2.1.23",
20
- "@aws-amplify/graphql-relational-transformer": "2.5.6",
21
- "@aws-amplify/graphql-searchable-transformer": "2.7.4",
22
- "@aws-amplify/graphql-sql-transformer": "0.3.4",
23
- "@aws-amplify/graphql-transformer": "1.6.0",
24
- "@aws-amplify/graphql-transformer-core": "2.9.0",
25
- "@aws-amplify/graphql-transformer-interfaces": "3.9.0",
14
+ "@aws-amplify/graphql-function-transformer": "2.1.24",
15
+ "@aws-amplify/graphql-http-transformer": "2.1.24",
16
+ "@aws-amplify/graphql-index-transformer": "2.4.5",
17
+ "@aws-amplify/graphql-maps-to-transformer": "3.4.19",
18
+ "@aws-amplify/graphql-model-transformer": "2.11.0",
19
+ "@aws-amplify/graphql-predictions-transformer": "2.1.24",
20
+ "@aws-amplify/graphql-relational-transformer": "2.5.7",
21
+ "@aws-amplify/graphql-searchable-transformer": "2.7.5",
22
+ "@aws-amplify/graphql-sql-transformer": "0.3.5",
23
+ "@aws-amplify/graphql-transformer": "1.6.1",
24
+ "@aws-amplify/graphql-transformer-core": "2.9.1",
25
+ "@aws-amplify/graphql-transformer-interfaces": "3.10.0",
26
26
  "@aws-amplify/platform-core": "^0.2.0",
27
27
  "@aws-amplify/plugin-types": "^0.4.1",
28
28
  "charenc": "^0.0.2",
@@ -3491,7 +3491,7 @@
3491
3491
  "stability": "stable"
3492
3492
  },
3493
3493
  "homepage": "https://github.com/aws-amplify/amplify-category-api.git",
3494
- "jsiiVersion": "5.2.14 (build 3ac02dc)",
3494
+ "jsiiVersion": "5.4.23 (build 4babcb9)",
3495
3495
  "keywords": [
3496
3496
  "awscdk",
3497
3497
  "aws-cdk",
@@ -5793,7 +5793,7 @@
5793
5793
  "kind": "interface",
5794
5794
  "locationInModule": {
5795
5795
  "filename": "src/model-datasource-strategy-types.ts",
5796
- "line": 195
5796
+ "line": 235
5797
5797
  },
5798
5798
  "name": "CustomSqlDataSourceStrategy",
5799
5799
  "properties": [
@@ -5806,7 +5806,7 @@
5806
5806
  "immutable": true,
5807
5807
  "locationInModule": {
5808
5808
  "filename": "src/model-datasource-strategy-types.ts",
5809
- "line": 200
5809
+ "line": 240
5810
5810
  },
5811
5811
  "name": "fieldName",
5812
5812
  "type": {
@@ -5822,7 +5822,7 @@
5822
5822
  "immutable": true,
5823
5823
  "locationInModule": {
5824
5824
  "filename": "src/model-datasource-strategy-types.ts",
5825
- "line": 203
5825
+ "line": 243
5826
5826
  },
5827
5827
  "name": "strategy",
5828
5828
  "type": {
@@ -5838,7 +5838,7 @@
5838
5838
  "immutable": true,
5839
5839
  "locationInModule": {
5840
5840
  "filename": "src/model-datasource-strategy-types.ts",
5841
- "line": 197
5841
+ "line": 237
5842
5842
  },
5843
5843
  "name": "typeName",
5844
5844
  "type": {
@@ -7522,7 +7522,7 @@
7522
7522
  "kind": "interface",
7523
7523
  "locationInModule": {
7524
7524
  "filename": "src/model-datasource-strategy-types.ts",
7525
- "line": 149
7525
+ "line": 176
7526
7526
  },
7527
7527
  "name": "SqlModelDataSourceSecretsManagerDbConnectionConfig",
7528
7528
  "properties": [
@@ -7535,7 +7535,7 @@
7535
7535
  "immutable": true,
7536
7536
  "locationInModule": {
7537
7537
  "filename": "src/model-datasource-strategy-types.ts",
7538
- "line": 160
7538
+ "line": 190
7539
7539
  },
7540
7540
  "name": "databaseName",
7541
7541
  "type": {
@@ -7551,7 +7551,7 @@
7551
7551
  "immutable": true,
7552
7552
  "locationInModule": {
7553
7553
  "filename": "src/model-datasource-strategy-types.ts",
7554
- "line": 163
7554
+ "line": 193
7555
7555
  },
7556
7556
  "name": "hostname",
7557
7557
  "type": {
@@ -7567,7 +7567,7 @@
7567
7567
  "immutable": true,
7568
7568
  "locationInModule": {
7569
7569
  "filename": "src/model-datasource-strategy-types.ts",
7570
- "line": 157
7570
+ "line": 187
7571
7571
  },
7572
7572
  "name": "port",
7573
7573
  "type": {
@@ -7584,7 +7584,7 @@
7584
7584
  "immutable": true,
7585
7585
  "locationInModule": {
7586
7586
  "filename": "src/model-datasource-strategy-types.ts",
7587
- "line": 151
7587
+ "line": 178
7588
7588
  },
7589
7589
  "name": "secretArn",
7590
7590
  "type": {
@@ -7594,20 +7594,37 @@
7594
7594
  {
7595
7595
  "abstract": true,
7596
7596
  "docs": {
7597
- "remarks": "If not supplied, the secret is expected to be encrypted with the default AWS-managed key. *",
7597
+ "remarks": "If not supplied, the secret is expected to be encrypted with the default\nAWS-managed key.",
7598
7598
  "stability": "experimental",
7599
7599
  "summary": "The ARN of the customer managed encryption key for the secret."
7600
7600
  },
7601
7601
  "immutable": true,
7602
7602
  "locationInModule": {
7603
7603
  "filename": "src/model-datasource-strategy-types.ts",
7604
- "line": 154
7604
+ "line": 184
7605
7605
  },
7606
7606
  "name": "keyArn",
7607
7607
  "optional": true,
7608
7608
  "type": {
7609
7609
  "primitive": "string"
7610
7610
  }
7611
+ },
7612
+ {
7613
+ "abstract": true,
7614
+ "docs": {
7615
+ "stability": "experimental",
7616
+ "summary": "An optional configuration for a custom SSL certificate authority to use when connecting to the database."
7617
+ },
7618
+ "immutable": true,
7619
+ "locationInModule": {
7620
+ "filename": "src/model-datasource-strategy-types.ts",
7621
+ "line": 198
7622
+ },
7623
+ "name": "sslCertConfig",
7624
+ "optional": true,
7625
+ "type": {
7626
+ "fqn": "@aws-amplify/graphql-api-construct.SslCertConfig"
7627
+ }
7611
7628
  }
7612
7629
  ],
7613
7630
  "symbolId": "src/model-datasource-strategy-types:SqlModelDataSourceSecretsManagerDbConnectionConfig"
@@ -7624,7 +7641,7 @@
7624
7641
  "kind": "interface",
7625
7642
  "locationInModule": {
7626
7643
  "filename": "src/model-datasource-strategy-types.ts",
7627
- "line": 171
7644
+ "line": 206
7628
7645
  },
7629
7646
  "name": "SqlModelDataSourceSsmDbConnectionConfig",
7630
7647
  "properties": [
@@ -7637,7 +7654,7 @@
7637
7654
  "immutable": true,
7638
7655
  "locationInModule": {
7639
7656
  "filename": "src/model-datasource-strategy-types.ts",
7640
- "line": 187
7657
+ "line": 222
7641
7658
  },
7642
7659
  "name": "databaseNameSsmPath",
7643
7660
  "type": {
@@ -7654,7 +7671,7 @@
7654
7671
  "immutable": true,
7655
7672
  "locationInModule": {
7656
7673
  "filename": "src/model-datasource-strategy-types.ts",
7657
- "line": 175
7674
+ "line": 210
7658
7675
  },
7659
7676
  "name": "hostnameSsmPath",
7660
7677
  "type": {
@@ -7670,7 +7687,7 @@
7670
7687
  "immutable": true,
7671
7688
  "locationInModule": {
7672
7689
  "filename": "src/model-datasource-strategy-types.ts",
7673
- "line": 184
7690
+ "line": 219
7674
7691
  },
7675
7692
  "name": "passwordSsmPath",
7676
7693
  "type": {
@@ -7686,7 +7703,7 @@
7686
7703
  "immutable": true,
7687
7704
  "locationInModule": {
7688
7705
  "filename": "src/model-datasource-strategy-types.ts",
7689
- "line": 178
7706
+ "line": 213
7690
7707
  },
7691
7708
  "name": "portSsmPath",
7692
7709
  "type": {
@@ -7702,12 +7719,29 @@
7702
7719
  "immutable": true,
7703
7720
  "locationInModule": {
7704
7721
  "filename": "src/model-datasource-strategy-types.ts",
7705
- "line": 181
7722
+ "line": 216
7706
7723
  },
7707
7724
  "name": "usernameSsmPath",
7708
7725
  "type": {
7709
7726
  "primitive": "string"
7710
7727
  }
7728
+ },
7729
+ {
7730
+ "abstract": true,
7731
+ "docs": {
7732
+ "stability": "stable",
7733
+ "summary": "An optional configuration for a custom SSL certificate authority to use when connecting to the database."
7734
+ },
7735
+ "immutable": true,
7736
+ "locationInModule": {
7737
+ "filename": "src/model-datasource-strategy-types.ts",
7738
+ "line": 227
7739
+ },
7740
+ "name": "sslCertConfig",
7741
+ "optional": true,
7742
+ "type": {
7743
+ "fqn": "@aws-amplify/graphql-api-construct.SslCertConfig"
7744
+ }
7711
7745
  }
7712
7746
  ],
7713
7747
  "symbolId": "src/model-datasource-strategy-types:SqlModelDataSourceSsmDbConnectionConfig"
@@ -7723,7 +7757,7 @@
7723
7757
  "kind": "interface",
7724
7758
  "locationInModule": {
7725
7759
  "filename": "src/model-datasource-strategy-types.ts",
7726
- "line": 133
7760
+ "line": 155
7727
7761
  },
7728
7762
  "name": "SqlModelDataSourceSsmDbConnectionStringConfig",
7729
7763
  "properties": [
@@ -7737,7 +7771,7 @@
7737
7771
  "immutable": true,
7738
7772
  "locationInModule": {
7739
7773
  "filename": "src/model-datasource-strategy-types.ts",
7740
- "line": 140
7774
+ "line": 162
7741
7775
  },
7742
7776
  "name": "connectionUriSsmPath",
7743
7777
  "type": {
@@ -7757,10 +7791,95 @@
7757
7791
  ]
7758
7792
  }
7759
7793
  }
7794
+ },
7795
+ {
7796
+ "abstract": true,
7797
+ "docs": {
7798
+ "stability": "experimental",
7799
+ "summary": "An optional configuration for a custom SSL certificate authority to use when connecting to the database."
7800
+ },
7801
+ "immutable": true,
7802
+ "locationInModule": {
7803
+ "filename": "src/model-datasource-strategy-types.ts",
7804
+ "line": 167
7805
+ },
7806
+ "name": "sslCertConfig",
7807
+ "optional": true,
7808
+ "type": {
7809
+ "fqn": "@aws-amplify/graphql-api-construct.SslCertConfig"
7810
+ }
7760
7811
  }
7761
7812
  ],
7762
7813
  "symbolId": "src/model-datasource-strategy-types:SqlModelDataSourceSsmDbConnectionStringConfig"
7763
7814
  },
7815
+ "@aws-amplify/graphql-api-construct.SslCertConfig": {
7816
+ "assembly": "@aws-amplify/graphql-api-construct",
7817
+ "datatype": true,
7818
+ "docs": {
7819
+ "remarks": "Although we can't declare it in the actual interface definition because it results in invalid C#, each conforming type\nmust have a `configType: string` field to allow for discriminated union behavior.",
7820
+ "stability": "stable",
7821
+ "summary": "Marker interface."
7822
+ },
7823
+ "fqn": "@aws-amplify/graphql-api-construct.SslCertConfig",
7824
+ "kind": "interface",
7825
+ "locationInModule": {
7826
+ "filename": "src/model-datasource-strategy-types.ts",
7827
+ "line": 134
7828
+ },
7829
+ "name": "SslCertConfig",
7830
+ "symbolId": "src/model-datasource-strategy-types:SslCertConfig"
7831
+ },
7832
+ "@aws-amplify/graphql-api-construct.SslCertSsmPathConfig": {
7833
+ "assembly": "@aws-amplify/graphql-api-construct",
7834
+ "datatype": true,
7835
+ "docs": {
7836
+ "stability": "stable"
7837
+ },
7838
+ "fqn": "@aws-amplify/graphql-api-construct.SslCertSsmPathConfig",
7839
+ "interfaces": [
7840
+ "@aws-amplify/graphql-api-construct.SslCertConfig"
7841
+ ],
7842
+ "kind": "interface",
7843
+ "locationInModule": {
7844
+ "filename": "src/model-datasource-strategy-types.ts",
7845
+ "line": 136
7846
+ },
7847
+ "name": "SslCertSsmPathConfig",
7848
+ "properties": [
7849
+ {
7850
+ "abstract": true,
7851
+ "docs": {
7852
+ "remarks": "Amplify resolves the trust store to use as follows:\n- If the `ssmPath` parameter is provided, use it.\n - If the parameter is a single string, use it.\n - If the parameter is an array, iterate over them in order\n - In either case, if the parameter is provided but the certificate content isn't retrievable, fails with an error.\n- If the database host is an RDS cluster, instance, or proxy (in other words, if the database host ends with \"rds.amazonaws.com\"), use\n an RDS-specific trust store vended by AWS. See\n https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions\n- Otherwise, use the trust store vended with the NodeJS runtime version that the SQL lambda is running on",
7853
+ "stability": "stable",
7854
+ "summary": "The SSM path to a custom SSL certificate to use instead of the default."
7855
+ },
7856
+ "immutable": true,
7857
+ "locationInModule": {
7858
+ "filename": "src/model-datasource-strategy-types.ts",
7859
+ "line": 148
7860
+ },
7861
+ "name": "ssmPath",
7862
+ "type": {
7863
+ "union": {
7864
+ "types": [
7865
+ {
7866
+ "primitive": "string"
7867
+ },
7868
+ {
7869
+ "collection": {
7870
+ "elementtype": {
7871
+ "primitive": "string"
7872
+ },
7873
+ "kind": "array"
7874
+ }
7875
+ }
7876
+ ]
7877
+ }
7878
+ }
7879
+ }
7880
+ ],
7881
+ "symbolId": "src/model-datasource-strategy-types:SslCertSsmPathConfig"
7882
+ },
7764
7883
  "@aws-amplify/graphql-api-construct.StreamSpecification": {
7765
7884
  "assembly": "@aws-amplify/graphql-api-construct",
7766
7885
  "datatype": true,
@@ -8332,6 +8451,6 @@
8332
8451
  "symbolId": "src/model-datasource-strategy-types:VpcConfig"
8333
8452
  }
8334
8453
  },
8335
- "version": "1.10.0",
8336
- "fingerprint": "o4tuhZEVpagClyZJElgzg5L9Y4HDD4DHkimZ0+XiTi0="
8454
+ "version": "1.11.0",
8455
+ "fingerprint": "tdLbK47hwwSpFLcGZe8jPKGtQzuOdHhqFzZc+du3Olc="
8337
8456
  }
package/API.md CHANGED
@@ -371,6 +371,7 @@ export interface SqlModelDataSourceSecretsManagerDbConnectionConfig {
371
371
  readonly keyArn?: string;
372
372
  readonly port: number;
373
373
  readonly secretArn: string;
374
+ readonly sslCertConfig?: SslCertConfig;
374
375
  }
375
376
 
376
377
  // @public
@@ -379,12 +380,14 @@ export interface SqlModelDataSourceSsmDbConnectionConfig {
379
380
  readonly hostnameSsmPath: string;
380
381
  readonly passwordSsmPath: string;
381
382
  readonly portSsmPath: string;
383
+ readonly sslCertConfig?: SslCertConfig;
382
384
  readonly usernameSsmPath: string;
383
385
  }
384
386
 
385
387
  // @public
386
388
  export interface SqlModelDataSourceSsmDbConnectionStringConfig {
387
389
  readonly connectionUriSsmPath: string | string[];
390
+ readonly sslCertConfig?: SslCertConfig;
388
391
  }
389
392
 
390
393
  // @public
@@ -400,6 +403,15 @@ export enum SSEType {
400
403
  KMS = "KMS"
401
404
  }
402
405
 
406
+ // @public
407
+ export interface SslCertConfig {
408
+ }
409
+
410
+ // @public (undocumented)
411
+ export interface SslCertSsmPathConfig extends SslCertConfig {
412
+ readonly ssmPath: string | string[];
413
+ }
414
+
403
415
  // @public
404
416
  export interface StreamSpecification {
405
417
  readonly streamViewType: StreamViewType;
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
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.11.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.10.0...@aws-amplify/graphql-api-construct@1.11.0) (2024-07-01)
7
+
8
+ ### Features
9
+
10
+ - support custom SSL certs in SQL lambda handler ([#2631](https://github.com/aws-amplify/amplify-category-api/issues/2631)) ([f444517](https://github.com/aws-amplify/amplify-category-api/commit/f444517f2deebdb16dcc16257ed083ead4af9c9b))
11
+
6
12
  # [1.10.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.9.5...@aws-amplify/graphql-api-construct@1.10.0) (2024-06-25)
7
13
 
8
14
  ### Features
@@ -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.10.0" };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1keW5hbW9kYi10YWJsZS13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF5RDtBQUd6RCxNQUFNLG9DQUFvQyxHQUFHLDhCQUE4QixDQUFDO0FBZ0M1RTs7O0dBR0c7QUFDSCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFGVyxPQUFPLHVCQUFQLE9BQU8sUUFFbEI7QUEyQ0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsMkJBQTJCO0lBQ3RDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsWUFBWSx5QkFBVyxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssb0NBQW9DLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQTZCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDaEQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLG9DQUFvQyxFQUFFO1lBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLG9DQUFvQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzNIO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLE1BQXFCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXLENBQUMsV0FBd0I7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUIsQ0FBQyx1QkFBZ0Q7UUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksMEJBQTBCLENBQUMsMEJBQW1DO1FBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsa0NBQWtDLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxxQkFBcUIsQ0FBQyxxQkFBNEM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNENBQTRDLENBQUMsU0FBaUIsRUFBRSxxQkFBNEM7UUFDMUcsTUFBTSxJQUFJLEdBQTJDLE1BQU0sQ0FBQyxPQUFPLENBQ2hFLElBQUksQ0FBQyxRQUFnQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsc0JBQXNCLElBQUksRUFBRSxDQUM5RSxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ILElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQy9FO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CLENBQUMsbUJBQXdDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQixDQUFDLGdCQUFrQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSx5QkFBeUIsQ0FBQyx5QkFBa0M7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7O0FBM0ZILGtFQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQmlsbGluZ01vZGUsIFN0cmVhbVZpZXdUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcblxuY29uc3QgQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUnO1xuXG4vKipcbiAqIFNoYXBlIGZvciBUVEwgY29uZmlnLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIEJvb2xlYW4gZGV0ZXJtaW5pbmcgaWYgdGhlIHR0bCBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBuYW1lIHRvIGFwcGx5IHRvIHRoZSB0dGwgc3BlYy5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBjb25maWcgaW4gRERCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBUaGUgcmVhZCBjYXBhY2l0eSB1bml0cyBvbiB0aGUgdGFibGUgb3IgaW5kZXguXG4gICAqL1xuICByZWFkb25seSByZWFkQ2FwYWNpdHlVbml0czogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd3JpdGUgY2FwYWNpdHkgdW5pdHMgb24gdGhlIHRhYmxlIG9yIGluZGV4LlxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogU2VydmVyIFNpZGUgRW5jcnlwdGlvbiBUeXBlIFZhbHVlc1xuICogLSBgS01TYCAtIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLTVMuIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBLTVMgKEFXUyBLTVMgY2hhcmdlcyBhcHBseSkuXG4gKi9cbmV4cG9ydCBlbnVtIFNTRVR5cGUge1xuICBLTVMgPSAnS01TJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTRVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBpcyBkb25lIHVzaW5nIGFuIEFXUyBtYW5hZ2VkIGtleSBvciBhbiBBV1Mgb3duZWQga2V5LlxuICAgKiBJZiBlbmFibGVkICh0cnVlKSwgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlIGlzIHNldCB0byBgS01TYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKCBBV1MgS01TIGNoYXJnZXMgYXBwbHkpLlxuICAgKiBJZiBkaXNhYmxlZCAoZmFsc2UpIG9yIG5vdCBzcGVjaWZpZWQsIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgc2V0IHRvIEFXUyBvd25lZCBrZXkuXG4gICAqL1xuICByZWFkb25seSBzc2VFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIEtNUyBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIEFXUyBLTVMgZW5jcnlwdGlvbi5cbiAgICogVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZVxuICAgKiB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYWxpYXMvYXdzL2R5bmFtb2RiYCAuXG4gICAqL1xuICByZWFkb25seSBrbXNNYXN0ZXJLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlLiBUaGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXM6XG4gICAqIGBLTVNgIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlLlxuICAgKiAgIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBBV1MgS01TICggQVdTIEtNUyBjaGFyZ2VzIGFwcGx5KS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZVR5cGU/OiBTU0VUeXBlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIER5bmFtb0RCIFN0cmVhbXMgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSBpbiBEeW5hbW9EQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFdoZW4gYW4gaXRlbSBpbiB0aGUgdGFibGUgaXMgbW9kaWZpZWQsIGBTdHJlYW1WaWV3VHlwZWAgZGV0ZXJtaW5lcyB3aGF0IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbSBmb3IgdGhpcyB0YWJsZS5cbiAgICogVmFsaWQgdmFsdWVzIGZvciBgU3RyZWFtVmlld1R5cGVgIGFyZTpcbiAgICogLSBgS0VZU19PTkxZYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE5FV19JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE9MRF9JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgTkVXX0FORF9PTERfSU1BR0VTYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtVmlld1R5cGU6IFN0cmVhbVZpZXdUeXBlO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgY2xhc3MgYXJvdW5kIEN1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUgY3VzdG9tIHJlc291cmNlLCB0byBzaW1wbGlmeVxuICogdGhlIG92ZXJyaWRlIGV4cGVyaWVuY2UgYSBiaXQuIFRoaXMgaXMgTk9UIGEgY29uc3RydWN0LCBqdXN0IGFuIGVhc2llciB3YXkgdG8gYWNjZXNzXG4gKiB0aGUgZ2VuZXJhdGVkIGNvbnN0cnVjdC5cbiAqIFRoaXMgaXMgYSB3cmFwcGVyIGludGVuZGVkIHRvIG1pbWljIHRoZSBgYXdzX2Nka19saWIuYXdzX2R5bmFtb2RiLlRhYmxlYCBmdW5jdGlvbmFsaXR5IG1vcmUtb3ItbGVzcy5cbiAqIE5vdGFibGUgZGlmZmVyZW5jZXMgaXMgdGhlIGFkZGl0aW9uIG9mIFRLVEsgcHJvcGVydGllcywgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCB0aGV5J3JlIGNvbnN0cnVjdG9yIHByb3BzXG4gKiBpbiB0aGUgQ0RLIGNvbnN0cnVjdCwgYXMgd2VsbCBhcyB0aGUgcmVtb3ZhbCBvZiBhbGwgZnJvbSosIGdyYW50KiwgYW5kIG1ldHJpYyogbWV0aG9kcyBpbXBsZW1lbnRlZCBieSBUYWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBhbmQgcGVyZm9ybSB0eXBlIG5hcnJvd2luZyBpZiBhIGdpdmVuIGlucHV0IGFwcGVhcnMgdG8gYmUgY2FwYWJsZSBvZlxuICAgKiBAcGFyYW0geCB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcmVzb3VyY2UgaXMgYW4gdW5kZXJseWluZyBhbXBsaWZ5IGR5bmFtb2RiIHRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgc3RhdGljIGlzQW1wbGlmeUR5bmFtb0RiVGFibGVSZXNvdXJjZSh4OiBhbnkpOiB4IGlzIENmblJlc291cmNlIHtcbiAgICByZXR1cm4geCBpbnN0YW5jZW9mIENmblJlc291cmNlICYmIHguY2ZuUmVzb3VyY2VUeXBlID09PSBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSB3cmFwcGVyIGdpdmVuIGFuIHVuZGVybHlpbmcgQ2ZuUmVzb3VyY2UgdGhhdCBpcyBhbiBpbnN0YW5jZSBvZiBDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlLlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgdGhlIENmbiByZXNvdXJjZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJlc291cmNlKSB7XG4gICAgaWYgKHJlc291cmNlLmNmblJlc291cmNlVHlwZSAhPT0gQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgQ2ZuUmVzb3VyY2Ugd2l0aCB0eXBlICR7QU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFfSBjYW4gYmUgdXNlZCBpbiBBbXBsaWZ5RHluYW1vRGJUYWJsZWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlbGV0aW9uIHBvbGljeSBvZiB0aGUgcmVzb3VyY2UgYmFzZWQgb24gdGhlIHJlbW92YWwgcG9saWN5IHNwZWNpZmllZC5cbiAgICogQHBhcmFtIHBvbGljeSByZW1vdmFsIHBvbGljeSB0byBzZXRcbiAgICovXG4gIGFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3k6IFJlbW92YWxQb2xpY3kpOiB2b2lkIHtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgaG93IHlvdSBhcmUgY2hhcmdlZCBmb3IgcmVhZCBhbmQgd3JpdGUgdGhyb3VnaHB1dCBhbmQgaG93IHlvdSBtYW5hZ2UgY2FwYWNpdHkuXG4gICAqL1xuICBzZXQgYmlsbGluZ01vZGUoYmlsbGluZ01vZGU6IEJpbGxpbmdNb2RlKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdiaWxsaW5nTW9kZScsIGJpbGxpbmdNb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiBUVEwgYXR0cmlidXRlLlxuICAgKi9cbiAgc2V0IHRpbWVUb0xpdmVBdHRyaWJ1dGUodGltZVRvTGl2ZVNwZWNpZmljYXRpb246IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCd0aW1lVG9MaXZlU3BlY2lmaWNhdGlvbicsIHRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgaXMgZW5hYmxlZC5cbiAgICovXG4gIHNldCBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZChwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgncG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24nLCB7IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBmb3IgdGhlIGJhc2UgdGFibGUuXG4gICAqL1xuICBzZXQgcHJvdmlzaW9uZWRUaHJvdWdocHV0KHByb3Zpc2lvbmVkVGhyb3VnaHB1dDogUHJvdmlzaW9uZWRUaHJvdWdocHV0KSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdwcm92aXNpb25lZFRocm91Z2hwdXQnLCBwcm92aXNpb25lZFRocm91Z2hwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcHJvdmlzaW9uZWRUaHJvdWdodHB1dCBmb3IgYSBzcGVjaWZpZWQgR1NJIGJ5IG5hbWUuXG4gICAqIEBwYXJhbSBpbmRleE5hbWUgdGhlIGluZGV4IHRvIHNwZWNpZnkgYSBwcm92aXNpb25lZFRocm91Z2hwdXQgY29uZmlnIGZvclxuICAgKiBAcGFyYW0gcHJvdmlzaW9uZWRUaHJvdWdocHV0IHRoZSBjb25maWcgdG8gc2V0XG4gICAqL1xuICBzZXRHbG9iYWxTZWNvbmRhcnlJbmRleFByb3Zpc2lvbmVkVGhyb3VnaHB1dChpbmRleE5hbWU6IHN0cmluZywgcHJvdmlzaW9uZWRUaHJvdWdocHV0OiBQcm92aXNpb25lZFRocm91Z2hwdXQpOiB2b2lkIHtcbiAgICBjb25zdCBnc2lzOiBBcnJheTxbc3RyaW5nLCB7IGluZGV4TmFtZTogc3RyaW5nIH1dPiA9IE9iamVjdC5lbnRyaWVzKFxuICAgICAgKHRoaXMucmVzb3VyY2UgYXMgYW55KS5yYXdPdmVycmlkZXM/LlByb3BlcnRpZXM/Lmdsb2JhbFNlY29uZGFyeUluZGV4ZXMgPz8ge30sXG4gICAgKTtcbiAgICBjb25zdCBmb3VuZEdzaXMgPSBnc2lzLmZpbHRlcigoW18sIGdzaUNvbmZpZ10pID0+IGluZGV4TmFtZSA9PT0gZ3NpQ29uZmlnLmluZGV4TmFtZSkubWFwKChbZ3NpSW5kZXhdKSA9PiBnc2lJbmRleCk7XG4gICAgaWYgKGZvdW5kR3Npcy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5kZXggd2l0aCBuYW1lICR7aW5kZXhOYW1lfSBub3QgZm91bmQgaW4gdGFibGUgZGVmaW5pdGlvbmApO1xuICAgIH1cbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoYGdsb2JhbFNlY29uZGFyeUluZGV4ZXMuJHtmb3VuZEdzaXNbMF19LnByb3Zpc2lvbmVkVGhyb3VnaHB1dGAsIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZGIgc3RyZWFtIHNwZWNpZmljYXRpb24gb24gdGhlIHRhYmxlLlxuICAgKi9cbiAgc2V0IHN0cmVhbVNwZWNpZmljYXRpb24oc3RyZWFtU3BlY2lmaWNhdGlvbjogU3RyZWFtU3BlY2lmaWNhdGlvbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnc3RyZWFtU3BlY2lmaWNhdGlvbicsIHN0cmVhbVNwZWNpZmljYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGRiIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbiBvbiB0aGUgdGFibGUuXG4gICAqL1xuICBzZXQgc3NlU3BlY2lmaWNhdGlvbihzc2VTcGVjaWZpY2F0aW9uOiBTU0VTcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdzc2VTcGVjaWZpY2F0aW9uJywgc3NlU3BlY2lmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRhYmxlIGRlbGV0aW9uIHByb3RlY3Rpb24uXG4gICAqL1xuICBzZXQgZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZChkZWxldGlvblByb3RlY3Rpb25FbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdkZWxldGlvblByb3RlY3Rpb25FbmFibGVkJywgZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ==
108
+ AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.11.0" };
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1keW5hbW9kYi10YWJsZS13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF5RDtBQUd6RCxNQUFNLG9DQUFvQyxHQUFHLDhCQUE4QixDQUFDO0FBZ0M1RTs7O0dBR0c7QUFDSCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFGVyxPQUFPLHVCQUFQLE9BQU8sUUFFbEI7QUEyQ0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsMkJBQTJCO0lBQ3RDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsWUFBWSx5QkFBVyxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssb0NBQW9DLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQTZCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDaEQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLG9DQUFvQyxFQUFFLENBQUM7WUFDdEUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsb0NBQW9DLHNDQUFzQyxDQUFDLENBQUM7UUFDNUgsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsQ0FBQyxNQUFxQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksV0FBVyxDQUFDLFdBQXdCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CLENBQUMsdUJBQWdEO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLDBCQUEwQixDQUFDLDBCQUFtQztRQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtDQUFrQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUkscUJBQXFCLENBQUMscUJBQTRDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDRDQUE0QyxDQUFDLFNBQWlCLEVBQUUscUJBQTRDO1FBQzFHLE1BQU0sSUFBSSxHQUEyQyxNQUFNLENBQUMsT0FBTyxDQUNoRSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixJQUFJLEVBQUUsQ0FDOUUsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuSCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQixTQUFTLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDM0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBd0M7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZ0JBQWdCLENBQUMsZ0JBQWtDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLHlCQUF5QixDQUFDLHlCQUFrQztRQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLDJCQUEyQixFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDNUYsQ0FBQzs7QUEzRkgsa0VBNEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUmVzb3VyY2UsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCaWxsaW5nTW9kZSwgU3RyZWFtVmlld1R5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuXG5jb25zdCBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEUgPSAnQ3VzdG9tOjpBbXBsaWZ5RHluYW1vREJUYWJsZSc7XG5cbi8qKlxuICogU2hhcGUgZm9yIFRUTCBjb25maWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGltZVRvTGl2ZVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogQm9vbGVhbiBkZXRlcm1pbmluZyBpZiB0aGUgdHRsIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXR0cmlidXRlIG5hbWUgdG8gYXBwbHkgdG8gdGhlIHR0bCBzcGVjLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciBwcm92aXNpb25lZCB0aHJvdWdocHV0IGNvbmZpZyBpbiBEREIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRUaHJvdWdocHV0IHtcbiAgLyoqXG4gICAqIFRoZSByZWFkIGNhcGFjaXR5IHVuaXRzIG9uIHRoZSB0YWJsZSBvciBpbmRleC5cbiAgICovXG4gIHJlYWRvbmx5IHJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB3cml0ZSBjYXBhY2l0eSB1bml0cyBvbiB0aGUgdGFibGUgb3IgaW5kZXguXG4gICAqL1xuICByZWFkb25seSB3cml0ZUNhcGFjaXR5VW5pdHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTZXJ2ZXIgU2lkZSBFbmNyeXB0aW9uIFR5cGUgVmFsdWVzXG4gKiAtIGBLTVNgIC0gU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgQVdTIEtNUy4gVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEtNUyAoQVdTIEtNUyBjaGFyZ2VzIGFwcGx5KS5cbiAqL1xuZXhwb3J0IGVudW0gU1NFVHlwZSB7XG4gIEtNUyA9ICdLTVMnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1NFU3BlY2lmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGlzIGRvbmUgdXNpbmcgYW4gQVdTIG1hbmFnZWQga2V5IG9yIGFuIEFXUyBvd25lZCBrZXkuXG4gICAqIElmIGVuYWJsZWQgKHRydWUpLCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHR5cGUgaXMgc2V0IHRvIGBLTVNgIGFuZCBhbiBBV1MgbWFuYWdlZCBrZXkgaXMgdXNlZCAoIEFXUyBLTVMgY2hhcmdlcyBhcHBseSkuXG4gICAqIElmIGRpc2FibGVkIChmYWxzZSkgb3Igbm90IHNwZWNpZmllZCwgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBpcyBzZXQgdG8gQVdTIG93bmVkIGtleS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZUVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgS01TIGtleSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgQVdTIEtNUyBlbmNyeXB0aW9uLlxuICAgKiBUbyBzcGVjaWZ5IGEga2V5LCB1c2UgaXRzIGtleSBJRCwgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTiksIGFsaWFzIG5hbWUsIG9yIGFsaWFzIEFSTi4gTm90ZSB0aGF0IHlvdSBzaG91bGQgb25seSBwcm92aWRlXG4gICAqIHRoaXMgcGFyYW1ldGVyIGlmIHRoZSBrZXkgaXMgZGlmZmVyZW50IGZyb20gdGhlIGRlZmF1bHQgRHluYW1vREIga2V5IGBhbGlhcy9hd3MvZHluYW1vZGJgIC5cbiAgICovXG4gIHJlYWRvbmx5IGttc01hc3RlcktleUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHR5cGUuIFRoZSBvbmx5IHN1cHBvcnRlZCB2YWx1ZSBpczpcbiAgICogYEtNU2AgU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgQVdTIEtleSBNYW5hZ2VtZW50IFNlcnZpY2UuXG4gICAqICAgVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEFXUyBLTVMgKCBBV1MgS01TIGNoYXJnZXMgYXBwbHkpLlxuICAgKi9cbiAgcmVhZG9ubHkgc3NlVHlwZT86IFNTRVR5cGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgRHluYW1vREIgU3RyZWFtcyBjb25maWd1cmF0aW9uIGZvciBhIHRhYmxlIGluIER5bmFtb0RCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgYFN0cmVhbVZpZXdUeXBlYCBkZXRlcm1pbmVzIHdoYXQgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtIGZvciB0aGlzIHRhYmxlLlxuICAgKiBWYWxpZCB2YWx1ZXMgZm9yIGBTdHJlYW1WaWV3VHlwZWAgYXJlOlxuICAgKiAtIGBLRVlTX09OTFlgIC0gT25seSB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgdGhlIG1vZGlmaWVkIGl0ZW0gYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgTkVXX0lNQUdFYCAtIFRoZSBlbnRpcmUgaXRlbSwgYXMgaXQgYXBwZWFycyBhZnRlciBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgT0xEX0lNQUdFYCAtIFRoZSBlbnRpcmUgaXRlbSwgYXMgaXQgYXBwZWFyZWQgYmVmb3JlIGl0IHdhcyBtb2RpZmllZCwgaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKiAtIGBORVdfQU5EX09MRF9JTUFHRVNgIC0gQm90aCB0aGUgbmV3IGFuZCB0aGUgb2xkIGl0ZW0gaW1hZ2VzIG9mIHRoZSBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqL1xuICByZWFkb25seSBzdHJlYW1WaWV3VHlwZTogU3RyZWFtVmlld1R5cGU7XG59XG5cbi8qKlxuICogV3JhcHBlciBjbGFzcyBhcm91bmQgQ3VzdG9tOjpBbXBsaWZ5RHluYW1vREJUYWJsZSBjdXN0b20gcmVzb3VyY2UsIHRvIHNpbXBsaWZ5XG4gKiB0aGUgb3ZlcnJpZGUgZXhwZXJpZW5jZSBhIGJpdC4gVGhpcyBpcyBOT1QgYSBjb25zdHJ1Y3QsIGp1c3QgYW4gZWFzaWVyIHdheSB0byBhY2Nlc3NcbiAqIHRoZSBnZW5lcmF0ZWQgY29uc3RydWN0LlxuICogVGhpcyBpcyBhIHdyYXBwZXIgaW50ZW5kZWQgdG8gbWltaWMgdGhlIGBhd3NfY2RrX2xpYi5hd3NfZHluYW1vZGIuVGFibGVgIGZ1bmN0aW9uYWxpdHkgbW9yZS1vci1sZXNzLlxuICogTm90YWJsZSBkaWZmZXJlbmNlcyBpcyB0aGUgYWRkaXRpb24gb2YgVEtUSyBwcm9wZXJ0aWVzLCB0byBhY2NvdW50IGZvciB0aGUgZmFjdCB0aGF0IHRoZXkncmUgY29uc3RydWN0b3IgcHJvcHNcbiAqIGluIHRoZSBDREsgY29uc3RydWN0LCBhcyB3ZWxsIGFzIHRoZSByZW1vdmFsIG9mIGFsbCBmcm9tKiwgZ3JhbnQqLCBhbmQgbWV0cmljKiBtZXRob2RzIGltcGxlbWVudGVkIGJ5IFRhYmxlLlxuICovXG5leHBvcnQgY2xhc3MgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyIHtcbiAgLyoqXG4gICAqIFJldHVybiB0cnVlIGFuZCBwZXJmb3JtIHR5cGUgbmFycm93aW5nIGlmIGEgZ2l2ZW4gaW5wdXQgYXBwZWFycyB0byBiZSBjYXBhYmxlIG9mXG4gICAqIEBwYXJhbSB4IHRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSByZXNvdXJjZSBpcyBhbiB1bmRlcmx5aW5nIGFtcGxpZnkgZHluYW1vZGIgdGFibGUgcmVzb3VyY2UuXG4gICAqL1xuICBzdGF0aWMgaXNBbXBsaWZ5RHluYW1vRGJUYWJsZVJlc291cmNlKHg6IGFueSk6IHggaXMgQ2ZuUmVzb3VyY2Uge1xuICAgIHJldHVybiB4IGluc3RhbmNlb2YgQ2ZuUmVzb3VyY2UgJiYgeC5jZm5SZXNvdXJjZVR5cGUgPT09IEFNUExJRllfRFlOQU1PREJfVEFCTEVfUkVTT1VSQ0VfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHdyYXBwZXIgZ2l2ZW4gYW4gdW5kZXJseWluZyBDZm5SZXNvdXJjZSB0aGF0IGlzIGFuIGluc3RhbmNlIG9mIEN1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUuXG4gICAqIEBwYXJhbSByZXNvdXJjZSB0aGUgQ2ZuIHJlc291cmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogQ2ZuUmVzb3VyY2UpIHtcbiAgICBpZiAocmVzb3VyY2UuY2ZuUmVzb3VyY2VUeXBlICE9PSBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT25seSBDZm5SZXNvdXJjZSB3aXRoIHR5cGUgJHtBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEV9IGNhbiBiZSB1c2VkIGluIEFtcGxpZnlEeW5hbW9EYlRhYmxlYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVsZXRpb24gcG9saWN5IG9mIHRoZSByZXNvdXJjZSBiYXNlZCBvbiB0aGUgcmVtb3ZhbCBwb2xpY3kgc3BlY2lmaWVkLlxuICAgKiBAcGFyYW0gcG9saWN5IHJlbW92YWwgcG9saWN5IHRvIHNldFxuICAgKi9cbiAgYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeTogUmVtb3ZhbFBvbGljeSk6IHZvaWQge1xuICAgIHRoaXMucmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmeSBob3cgeW91IGFyZSBjaGFyZ2VkIGZvciByZWFkIGFuZCB3cml0ZSB0aHJvdWdocHV0IGFuZCBob3cgeW91IG1hbmFnZSBjYXBhY2l0eS5cbiAgICovXG4gIHNldCBiaWxsaW5nTW9kZShiaWxsaW5nTW9kZTogQmlsbGluZ01vZGUpIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ2JpbGxpbmdNb2RlJywgYmlsbGluZ01vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIFRUTCBhdHRyaWJ1dGUuXG4gICAqL1xuICBzZXQgdGltZVRvTGl2ZUF0dHJpYnV0ZSh0aW1lVG9MaXZlU3BlY2lmaWNhdGlvbjogVGltZVRvTGl2ZVNwZWNpZmljYXRpb24pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3RpbWVUb0xpdmVTcGVjaWZpY2F0aW9uJywgdGltZVRvTGl2ZVNwZWNpZmljYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcG9pbnQtaW4tdGltZSByZWNvdmVyeSBpcyBlbmFibGVkLlxuICAgKi9cbiAgc2V0IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkKHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbicsIHsgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IGZvciB0aGUgYmFzZSB0YWJsZS5cbiAgICovXG4gIHNldCBwcm92aXNpb25lZFRocm91Z2hwdXQocHJvdmlzaW9uZWRUaHJvdWdocHV0OiBQcm92aXNpb25lZFRocm91Z2hwdXQpIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3Byb3Zpc2lvbmVkVGhyb3VnaHB1dCcsIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwcm92aXNpb25lZFRocm91Z2h0cHV0IGZvciBhIHNwZWNpZmllZCBHU0kgYnkgbmFtZS5cbiAgICogQHBhcmFtIGluZGV4TmFtZSB0aGUgaW5kZXggdG8gc3BlY2lmeSBhIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCBjb25maWcgZm9yXG4gICAqIEBwYXJhbSBwcm92aXNpb25lZFRocm91Z2hwdXQgdGhlIGNvbmZpZyB0byBzZXRcbiAgICovXG4gIHNldEdsb2JhbFNlY29uZGFyeUluZGV4UHJvdmlzaW9uZWRUaHJvdWdocHV0KGluZGV4TmFtZTogc3RyaW5nLCBwcm92aXNpb25lZFRocm91Z2hwdXQ6IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCk6IHZvaWQge1xuICAgIGNvbnN0IGdzaXM6IEFycmF5PFtzdHJpbmcsIHsgaW5kZXhOYW1lOiBzdHJpbmcgfV0+ID0gT2JqZWN0LmVudHJpZXMoXG4gICAgICAodGhpcy5yZXNvdXJjZSBhcyBhbnkpLnJhd092ZXJyaWRlcz8uUHJvcGVydGllcz8uZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyA/PyB7fSxcbiAgICApO1xuICAgIGNvbnN0IGZvdW5kR3NpcyA9IGdzaXMuZmlsdGVyKChbXywgZ3NpQ29uZmlnXSkgPT4gaW5kZXhOYW1lID09PSBnc2lDb25maWcuaW5kZXhOYW1lKS5tYXAoKFtnc2lJbmRleF0pID0+IGdzaUluZGV4KTtcbiAgICBpZiAoZm91bmRHc2lzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbmRleCB3aXRoIG5hbWUgJHtpbmRleE5hbWV9IG5vdCBmb3VuZCBpbiB0YWJsZSBkZWZpbml0aW9uYCk7XG4gICAgfVxuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZShgZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcy4ke2ZvdW5kR3Npc1swXX0ucHJvdmlzaW9uZWRUaHJvdWdocHV0YCwgcHJvdmlzaW9uZWRUaHJvdWdocHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRkYiBzdHJlYW0gc3BlY2lmaWNhdGlvbiBvbiB0aGUgdGFibGUuXG4gICAqL1xuICBzZXQgc3RyZWFtU3BlY2lmaWNhdGlvbihzdHJlYW1TcGVjaWZpY2F0aW9uOiBTdHJlYW1TcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdzdHJlYW1TcGVjaWZpY2F0aW9uJywgc3RyZWFtU3BlY2lmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZGIgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIG9uIHRoZSB0YWJsZS5cbiAgICovXG4gIHNldCBzc2VTcGVjaWZpY2F0aW9uKHNzZVNwZWNpZmljYXRpb246IFNTRVNwZWNpZmljYXRpb24pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3NzZVNwZWNpZmljYXRpb24nLCBzc2VTcGVjaWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGFibGUgZGVsZXRpb24gcHJvdGVjdGlvbi5cbiAgICovXG4gIHNldCBkZWxldGlvblByb3RlY3Rpb25FbmFibGVkKGRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ2RlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQnLCBkZWxldGlvblByb3RlY3Rpb25FbmFibGVkKTtcbiAgfVxufVxuIl19