@rio-cloud/cdk-v2-constructs 4.33.5 → 4.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -11652,7 +11652,7 @@
11652
11652
  "kind": "interface",
11653
11653
  "locationInModule": {
11654
11654
  "filename": "src/datadogv2/datadog-monitor.ts",
11655
- "line": 125
11655
+ "line": 137
11656
11656
  },
11657
11657
  "name": "CfnDatadogMonitorOptions",
11658
11658
  "namespace": "datadogv2",
@@ -11666,7 +11666,7 @@
11666
11666
  "immutable": true,
11667
11667
  "locationInModule": {
11668
11668
  "filename": "src/datadogv2/datadog-monitor.ts",
11669
- "line": 130
11669
+ "line": 142
11670
11670
  },
11671
11671
  "name": "enableLogsSample",
11672
11672
  "optional": true,
@@ -11674,6 +11674,24 @@
11674
11674
  "primitive": "boolean"
11675
11675
  }
11676
11676
  },
11677
+ {
11678
+ "abstract": true,
11679
+ "docs": {
11680
+ "remarks": "This is only used by CI Test and Pipeline monitors.",
11681
+ "stability": "stable",
11682
+ "summary": "Whether or not to send a list of samples when the monitor triggers."
11683
+ },
11684
+ "immutable": true,
11685
+ "locationInModule": {
11686
+ "filename": "src/datadogv2/datadog-monitor.ts",
11687
+ "line": 149
11688
+ },
11689
+ "name": "enableSamples",
11690
+ "optional": true,
11691
+ "type": {
11692
+ "primitive": "boolean"
11693
+ }
11694
+ },
11677
11695
  {
11678
11696
  "abstract": true,
11679
11697
  "docs": {
@@ -11683,7 +11701,7 @@
11683
11701
  "immutable": true,
11684
11702
  "locationInModule": {
11685
11703
  "filename": "src/datadogv2/datadog-monitor.ts",
11686
- "line": 135
11704
+ "line": 154
11687
11705
  },
11688
11706
  "name": "escalationMessage",
11689
11707
  "optional": true,
@@ -11700,7 +11718,7 @@
11700
11718
  "immutable": true,
11701
11719
  "locationInModule": {
11702
11720
  "filename": "src/datadogv2/datadog-monitor.ts",
11703
- "line": 141
11721
+ "line": 160
11704
11722
  },
11705
11723
  "name": "evaluationDelay",
11706
11724
  "optional": true,
@@ -11708,6 +11726,24 @@
11708
11726
  "primitive": "number"
11709
11727
  }
11710
11728
  },
11729
+ {
11730
+ "abstract": true,
11731
+ "docs": {
11732
+ "remarks": "The minimum value is one hour, and the maximum value is 72 hours.\nExample values are: \"60m\", \"1h\", and \"2d\".\nThis option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.",
11733
+ "stability": "stable",
11734
+ "summary": "The time span after which groups with missing data are dropped from the monitor state."
11735
+ },
11736
+ "immutable": true,
11737
+ "locationInModule": {
11738
+ "filename": "src/datadogv2/datadog-monitor.ts",
11739
+ "line": 169
11740
+ },
11741
+ "name": "groupRetentionDuration",
11742
+ "optional": true,
11743
+ "type": {
11744
+ "primitive": "string"
11745
+ }
11746
+ },
11711
11747
  {
11712
11748
  "abstract": true,
11713
11749
  "docs": {
@@ -11718,7 +11754,7 @@
11718
11754
  "immutable": true,
11719
11755
  "locationInModule": {
11720
11756
  "filename": "src/datadogv2/datadog-monitor.ts",
11721
- "line": 148
11757
+ "line": 176
11722
11758
  },
11723
11759
  "name": "includeTags",
11724
11760
  "optional": true,
@@ -11735,7 +11771,7 @@
11735
11771
  "immutable": true,
11736
11772
  "locationInModule": {
11737
11773
  "filename": "src/datadogv2/datadog-monitor.ts",
11738
- "line": 153
11774
+ "line": 181
11739
11775
  },
11740
11776
  "name": "locked",
11741
11777
  "optional": true,
@@ -11752,7 +11788,7 @@
11752
11788
  "immutable": true,
11753
11789
  "locationInModule": {
11754
11790
  "filename": "src/datadogv2/datadog-monitor.ts",
11755
- "line": 221
11791
+ "line": 275
11756
11792
  },
11757
11793
  "name": "minFailureDuration",
11758
11794
  "optional": true,
@@ -11769,7 +11805,7 @@
11769
11805
  "immutable": true,
11770
11806
  "locationInModule": {
11771
11807
  "filename": "src/datadogv2/datadog-monitor.ts",
11772
- "line": 158
11808
+ "line": 186
11773
11809
  },
11774
11810
  "name": "minLocationFailed",
11775
11811
  "optional": true,
@@ -11787,7 +11823,7 @@
11787
11823
  "immutable": true,
11788
11824
  "locationInModule": {
11789
11825
  "filename": "src/datadogv2/datadog-monitor.ts",
11790
- "line": 228
11826
+ "line": 282
11791
11827
  },
11792
11828
  "name": "monitorNotificationPresetName",
11793
11829
  "optional": true,
@@ -11805,7 +11841,7 @@
11805
11841
  "immutable": true,
11806
11842
  "locationInModule": {
11807
11843
  "filename": "src/datadogv2/datadog-monitor.ts",
11808
- "line": 233
11844
+ "line": 287
11809
11845
  },
11810
11846
  "name": "newGroupDelay",
11811
11847
  "optional": true,
@@ -11822,7 +11858,7 @@
11822
11858
  "immutable": true,
11823
11859
  "locationInModule": {
11824
11860
  "filename": "src/datadogv2/datadog-monitor.ts",
11825
- "line": 163
11861
+ "line": 191
11826
11862
  },
11827
11863
  "name": "newHostDelay",
11828
11864
  "optional": true,
@@ -11839,7 +11875,7 @@
11839
11875
  "immutable": true,
11840
11876
  "locationInModule": {
11841
11877
  "filename": "src/datadogv2/datadog-monitor.ts",
11842
- "line": 168
11878
+ "line": 196
11843
11879
  },
11844
11880
  "name": "noDataTimeframe",
11845
11881
  "optional": true,
@@ -11856,7 +11892,7 @@
11856
11892
  "immutable": true,
11857
11893
  "locationInModule": {
11858
11894
  "filename": "src/datadogv2/datadog-monitor.ts",
11859
- "line": 173
11895
+ "line": 201
11860
11896
  },
11861
11897
  "name": "notifyAudit",
11862
11898
  "optional": true,
@@ -11864,6 +11900,29 @@
11864
11900
  "primitive": "boolean"
11865
11901
  }
11866
11902
  },
11903
+ {
11904
+ "abstract": true,
11905
+ "docs": {
11906
+ "remarks": "Only available for monitors with groupings.\nFor instance, a monitor grouped by `cluster`, `namespace`, and `pod` can be configured to only notify on each new `cluster` violating the alert conditions by setting `notify_by` to `[\"cluster\"]`.\nTags mentioned in `notify_by` must be a subset of the grouping tags in the query.\nFor example, a query grouped by `cluster` and `namespace` cannot notify on `region`.\nSetting `notify_by` to `[*]` configures the monitor to notify as a simple-alert.",
11907
+ "stability": "stable",
11908
+ "summary": "Controls what granularity a monitor alerts on."
11909
+ },
11910
+ "immutable": true,
11911
+ "locationInModule": {
11912
+ "filename": "src/datadogv2/datadog-monitor.ts",
11913
+ "line": 212
11914
+ },
11915
+ "name": "notifyBy",
11916
+ "optional": true,
11917
+ "type": {
11918
+ "collection": {
11919
+ "elementtype": {
11920
+ "primitive": "string"
11921
+ },
11922
+ "kind": "array"
11923
+ }
11924
+ }
11925
+ },
11867
11926
  {
11868
11927
  "abstract": true,
11869
11928
  "docs": {
@@ -11874,7 +11933,7 @@
11874
11933
  "immutable": true,
11875
11934
  "locationInModule": {
11876
11935
  "filename": "src/datadogv2/datadog-monitor.ts",
11877
- "line": 180
11936
+ "line": 219
11878
11937
  },
11879
11938
  "name": "notifyNoData",
11880
11939
  "optional": true,
@@ -11882,6 +11941,24 @@
11882
11941
  "primitive": "boolean"
11883
11942
  }
11884
11943
  },
11944
+ {
11945
+ "abstract": true,
11946
+ "docs": {
11947
+ "remarks": "The default option results in different behavior depending on the monitor query type.\nFor monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions.\nFor monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status.\nThis option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.",
11948
+ "stability": "stable",
11949
+ "summary": "Controls how groups or monitors are treated if an evaluation does not return any data points."
11950
+ },
11951
+ "immutable": true,
11952
+ "locationInModule": {
11953
+ "filename": "src/datadogv2/datadog-monitor.ts",
11954
+ "line": 229
11955
+ },
11956
+ "name": "onMissingData",
11957
+ "optional": true,
11958
+ "type": {
11959
+ "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData"
11960
+ }
11961
+ },
11885
11962
  {
11886
11963
  "abstract": true,
11887
11964
  "docs": {
@@ -11891,7 +11968,7 @@
11891
11968
  "immutable": true,
11892
11969
  "locationInModule": {
11893
11970
  "filename": "src/datadogv2/datadog-monitor.ts",
11894
- "line": 185
11971
+ "line": 234
11895
11972
  },
11896
11973
  "name": "renotifyInterval",
11897
11974
  "optional": true,
@@ -11908,7 +11985,7 @@
11908
11985
  "immutable": true,
11909
11986
  "locationInModule": {
11910
11987
  "filename": "src/datadogv2/datadog-monitor.ts",
11911
- "line": 211
11988
+ "line": 265
11912
11989
  },
11913
11990
  "name": "renotifyOccurrences",
11914
11991
  "optional": true,
@@ -11925,7 +12002,7 @@
11925
12002
  "immutable": true,
11926
12003
  "locationInModule": {
11927
12004
  "filename": "src/datadogv2/datadog-monitor.ts",
11928
- "line": 216
12005
+ "line": 270
11929
12006
  },
11930
12007
  "name": "renotifyStatuses",
11931
12008
  "optional": true,
@@ -11948,7 +12025,7 @@
11948
12025
  "immutable": true,
11949
12026
  "locationInModule": {
11950
12027
  "filename": "src/datadogv2/datadog-monitor.ts",
11951
- "line": 192
12028
+ "line": 241
11952
12029
  },
11953
12030
  "name": "requireFullWindow",
11954
12031
  "optional": true,
@@ -11956,6 +12033,23 @@
11956
12033
  "primitive": "boolean"
11957
12034
  }
11958
12035
  },
12036
+ {
12037
+ "abstract": true,
12038
+ "docs": {
12039
+ "stability": "stable",
12040
+ "summary": "Configuration options for scheduling."
12041
+ },
12042
+ "immutable": true,
12043
+ "locationInModule": {
12044
+ "filename": "src/datadogv2/datadog-monitor.ts",
12045
+ "line": 246
12046
+ },
12047
+ "name": "schedulingOptions",
12048
+ "optional": true,
12049
+ "type": {
12050
+ "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions"
12051
+ }
12052
+ },
11959
12053
  {
11960
12054
  "abstract": true,
11961
12055
  "docs": {
@@ -11965,7 +12059,7 @@
11965
12059
  "immutable": true,
11966
12060
  "locationInModule": {
11967
12061
  "filename": "src/datadogv2/datadog-monitor.ts",
11968
- "line": 197
12062
+ "line": 251
11969
12063
  },
11970
12064
  "name": "syntheticsCheckID",
11971
12065
  "optional": true,
@@ -11981,7 +12075,7 @@
11981
12075
  "immutable": true,
11982
12076
  "locationInModule": {
11983
12077
  "filename": "src/datadogv2/datadog-monitor.ts",
11984
- "line": 199
12078
+ "line": 253
11985
12079
  },
11986
12080
  "name": "thresholds",
11987
12081
  "optional": true,
@@ -11997,7 +12091,7 @@
11997
12091
  "immutable": true,
11998
12092
  "locationInModule": {
11999
12093
  "filename": "src/datadogv2/datadog-monitor.ts",
12000
- "line": 201
12094
+ "line": 255
12001
12095
  },
12002
12096
  "name": "thresholdWindows",
12003
12097
  "optional": true,
@@ -12014,7 +12108,7 @@
12014
12108
  "immutable": true,
12015
12109
  "locationInModule": {
12016
12110
  "filename": "src/datadogv2/datadog-monitor.ts",
12017
- "line": 206
12111
+ "line": 260
12018
12112
  },
12019
12113
  "name": "timeoutH",
12020
12114
  "optional": true,
@@ -12031,7 +12125,7 @@
12031
12125
  "immutable": true,
12032
12126
  "locationInModule": {
12033
12127
  "filename": "src/datadogv2/datadog-monitor.ts",
12034
- "line": 238
12128
+ "line": 292
12035
12129
  },
12036
12130
  "name": "variables",
12037
12131
  "optional": true,
@@ -12057,7 +12151,7 @@
12057
12151
  "kind": "interface",
12058
12152
  "locationInModule": {
12059
12153
  "filename": "src/datadogv2/datadog-monitor.ts",
12060
- "line": 269
12154
+ "line": 323
12061
12155
  },
12062
12156
  "name": "CfnDatadogMonitorThresholdWindows",
12063
12157
  "namespace": "datadogv2",
@@ -12071,7 +12165,7 @@
12071
12165
  "immutable": true,
12072
12166
  "locationInModule": {
12073
12167
  "filename": "src/datadogv2/datadog-monitor.ts",
12074
- "line": 279
12168
+ "line": 333
12075
12169
  },
12076
12170
  "name": "recoveryWindow",
12077
12171
  "optional": true,
@@ -12088,7 +12182,7 @@
12088
12182
  "immutable": true,
12089
12183
  "locationInModule": {
12090
12184
  "filename": "src/datadogv2/datadog-monitor.ts",
12091
- "line": 274
12185
+ "line": 328
12092
12186
  },
12093
12187
  "name": "triggerWindow",
12094
12188
  "optional": true,
@@ -12109,7 +12203,7 @@
12109
12203
  "kind": "interface",
12110
12204
  "locationInModule": {
12111
12205
  "filename": "src/datadogv2/datadog-monitor.ts",
12112
- "line": 241
12206
+ "line": 295
12113
12207
  },
12114
12208
  "name": "CfnDatadogMonitorThresholds",
12115
12209
  "namespace": "datadogv2",
@@ -12123,7 +12217,7 @@
12123
12217
  "immutable": true,
12124
12218
  "locationInModule": {
12125
12219
  "filename": "src/datadogv2/datadog-monitor.ts",
12126
- "line": 246
12220
+ "line": 300
12127
12221
  },
12128
12222
  "name": "critical",
12129
12223
  "optional": true,
@@ -12140,7 +12234,7 @@
12140
12234
  "immutable": true,
12141
12235
  "locationInModule": {
12142
12236
  "filename": "src/datadogv2/datadog-monitor.ts",
12143
- "line": 251
12237
+ "line": 305
12144
12238
  },
12145
12239
  "name": "criticalRecovery",
12146
12240
  "optional": true,
@@ -12157,7 +12251,7 @@
12157
12251
  "immutable": true,
12158
12252
  "locationInModule": {
12159
12253
  "filename": "src/datadogv2/datadog-monitor.ts",
12160
- "line": 256
12254
+ "line": 310
12161
12255
  },
12162
12256
  "name": "ok",
12163
12257
  "optional": true,
@@ -12174,7 +12268,7 @@
12174
12268
  "immutable": true,
12175
12269
  "locationInModule": {
12176
12270
  "filename": "src/datadogv2/datadog-monitor.ts",
12177
- "line": 261
12271
+ "line": 315
12178
12272
  },
12179
12273
  "name": "warning",
12180
12274
  "optional": true,
@@ -12191,7 +12285,7 @@
12191
12285
  "immutable": true,
12192
12286
  "locationInModule": {
12193
12287
  "filename": "src/datadogv2/datadog-monitor.ts",
12194
- "line": 266
12288
+ "line": 320
12195
12289
  },
12196
12290
  "name": "warningRecovery",
12197
12291
  "optional": true,
@@ -12587,7 +12681,7 @@
12587
12681
  },
12588
12682
  "locationInModule": {
12589
12683
  "filename": "src/datadogv2/datadog-monitor.ts",
12590
- "line": 300
12684
+ "line": 387
12591
12685
  },
12592
12686
  "parameters": [
12593
12687
  {
@@ -12613,7 +12707,7 @@
12613
12707
  "kind": "class",
12614
12708
  "locationInModule": {
12615
12709
  "filename": "src/datadogv2/datadog-monitor.ts",
12616
- "line": 289
12710
+ "line": 376
12617
12711
  },
12618
12712
  "name": "DatadogMonitor",
12619
12713
  "namespace": "datadogv2",
@@ -12627,7 +12721,7 @@
12627
12721
  "immutable": true,
12628
12722
  "locationInModule": {
12629
12723
  "filename": "src/datadogv2/datadog-monitor.ts",
12630
- "line": 293
12724
+ "line": 380
12631
12725
  },
12632
12726
  "name": "DEFAULT_PRIORITY",
12633
12727
  "static": true,
@@ -12644,7 +12738,7 @@
12644
12738
  "immutable": true,
12645
12739
  "locationInModule": {
12646
12740
  "filename": "src/datadogv2/datadog-monitor.ts",
12647
- "line": 353
12741
+ "line": 440
12648
12742
  },
12649
12743
  "name": "monitorId",
12650
12744
  "type": {
@@ -12658,7 +12752,7 @@
12658
12752
  "immutable": true,
12659
12753
  "locationInModule": {
12660
12754
  "filename": "src/datadogv2/datadog-monitor.ts",
12661
- "line": 295
12755
+ "line": 382
12662
12756
  },
12663
12757
  "name": "name",
12664
12758
  "type": {
@@ -12672,7 +12766,7 @@
12672
12766
  "immutable": true,
12673
12767
  "locationInModule": {
12674
12768
  "filename": "src/datadogv2/datadog-monitor.ts",
12675
- "line": 296
12769
+ "line": 383
12676
12770
  },
12677
12771
  "name": "priority",
12678
12772
  "type": {
@@ -13122,6 +13216,156 @@
13122
13216
  "namespace": "datadogv2",
13123
13217
  "symbolId": "src/datadogv2/datadog-monitor:MonitorNotificationPreset"
13124
13218
  },
13219
+ "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData": {
13220
+ "assembly": "@rio-cloud/cdk-v2-constructs",
13221
+ "docs": {
13222
+ "see": "https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json",
13223
+ "stability": "stable",
13224
+ "summary": "Options for onMissingData supported by Datadog."
13225
+ },
13226
+ "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData",
13227
+ "kind": "enum",
13228
+ "locationInModule": {
13229
+ "filename": "src/datadogv2/datadog-monitor.ts",
13230
+ "line": 125
13231
+ },
13232
+ "members": [
13233
+ {
13234
+ "docs": {
13235
+ "stability": "stable"
13236
+ },
13237
+ "name": "DEFAULT"
13238
+ },
13239
+ {
13240
+ "docs": {
13241
+ "stability": "stable"
13242
+ },
13243
+ "name": "SHOW_NO_DATA"
13244
+ },
13245
+ {
13246
+ "docs": {
13247
+ "stability": "stable"
13248
+ },
13249
+ "name": "SHOW_AND_NOTIFY_NO_DATA"
13250
+ },
13251
+ {
13252
+ "docs": {
13253
+ "stability": "stable"
13254
+ },
13255
+ "name": "RESOLVE"
13256
+ }
13257
+ ],
13258
+ "name": "MonitorOnMissingData",
13259
+ "namespace": "datadogv2",
13260
+ "symbolId": "src/datadogv2/datadog-monitor:MonitorOnMissingData"
13261
+ },
13262
+ "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions": {
13263
+ "assembly": "@rio-cloud/cdk-v2-constructs",
13264
+ "datatype": true,
13265
+ "docs": {
13266
+ "stability": "stable",
13267
+ "summary": "Configuration options for scheduling."
13268
+ },
13269
+ "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions",
13270
+ "kind": "interface",
13271
+ "locationInModule": {
13272
+ "filename": "src/datadogv2/datadog-monitor.ts",
13273
+ "line": 339
13274
+ },
13275
+ "name": "MonitorSchedulingOptions",
13276
+ "namespace": "datadogv2",
13277
+ "properties": [
13278
+ {
13279
+ "abstract": true,
13280
+ "docs": {
13281
+ "stability": "stable"
13282
+ },
13283
+ "immutable": true,
13284
+ "locationInModule": {
13285
+ "filename": "src/datadogv2/datadog-monitor.ts",
13286
+ "line": 340
13287
+ },
13288
+ "name": "evaluationWindow",
13289
+ "optional": true,
13290
+ "type": {
13291
+ "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow"
13292
+ }
13293
+ }
13294
+ ],
13295
+ "symbolId": "src/datadogv2/datadog-monitor:MonitorSchedulingOptions"
13296
+ },
13297
+ "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow": {
13298
+ "assembly": "@rio-cloud/cdk-v2-constructs",
13299
+ "datatype": true,
13300
+ "docs": {
13301
+ "remarks": "If `hour_starts` is set, no other fields may be set.\nOtherwise, `day_starts` and `month_starts` must be set together.",
13302
+ "stability": "stable",
13303
+ "summary": "Configuration options for the evaluation window."
13304
+ },
13305
+ "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow",
13306
+ "kind": "interface",
13307
+ "locationInModule": {
13308
+ "filename": "src/datadogv2/datadog-monitor.ts",
13309
+ "line": 349
13310
+ },
13311
+ "name": "MonitorSchedulingOptionsEvaluationWindow",
13312
+ "namespace": "datadogv2",
13313
+ "properties": [
13314
+ {
13315
+ "abstract": true,
13316
+ "docs": {
13317
+ "remarks": "Must be defined in UTC time in `HH:mm` format.",
13318
+ "stability": "stable",
13319
+ "summary": "The time of the day at which a one day cumulative evaluation window starts."
13320
+ },
13321
+ "immutable": true,
13322
+ "locationInModule": {
13323
+ "filename": "src/datadogv2/datadog-monitor.ts",
13324
+ "line": 356
13325
+ },
13326
+ "name": "dayStarts",
13327
+ "optional": true,
13328
+ "type": {
13329
+ "primitive": "string"
13330
+ }
13331
+ },
13332
+ {
13333
+ "abstract": true,
13334
+ "docs": {
13335
+ "stability": "stable",
13336
+ "summary": "The minute of the hour at which a one hour cumulative evaluation window starts."
13337
+ },
13338
+ "immutable": true,
13339
+ "locationInModule": {
13340
+ "filename": "src/datadogv2/datadog-monitor.ts",
13341
+ "line": 366
13342
+ },
13343
+ "name": "hourStarts",
13344
+ "optional": true,
13345
+ "type": {
13346
+ "primitive": "number"
13347
+ }
13348
+ },
13349
+ {
13350
+ "abstract": true,
13351
+ "docs": {
13352
+ "stability": "stable",
13353
+ "summary": "The day of the month at which a one month cumulative evaluation window starts."
13354
+ },
13355
+ "immutable": true,
13356
+ "locationInModule": {
13357
+ "filename": "src/datadogv2/datadog-monitor.ts",
13358
+ "line": 361
13359
+ },
13360
+ "name": "monthStarts",
13361
+ "optional": true,
13362
+ "type": {
13363
+ "primitive": "number"
13364
+ }
13365
+ }
13366
+ ],
13367
+ "symbolId": "src/datadogv2/datadog-monitor:MonitorSchedulingOptionsEvaluationWindow"
13368
+ },
13125
13369
  "@rio-cloud/cdk-v2-constructs.datadogv2.NoNotification": {
13126
13370
  "assembly": "@rio-cloud/cdk-v2-constructs",
13127
13371
  "docs": {
@@ -15842,5 +16086,5 @@
15842
16086
  }
15843
16087
  },
15844
16088
  "version": "0.0.0",
15845
- "fingerprint": "70LvXJLOYza4edFMgTMby4XdszbhVdPZbcsTqf4VOOE="
16089
+ "fingerprint": "Re4Rh5OaECAVHg+YwBb9vxvtbwPbyaHdmY3zpCyc++4="
15846
16090
  }
package/API.md CHANGED
@@ -6311,8 +6311,10 @@ const cfnDatadogMonitorOptions: datadogv2.CfnDatadogMonitorOptions = { ... }
6311
6311
  | **Name** | **Type** | **Description** |
6312
6312
  | --- | --- | --- |
6313
6313
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.enableLogsSample">enableLogsSample</a></code> | <code>boolean</code> | Whether or not to include a sample of the logs. |
6314
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.enableSamples">enableSamples</a></code> | <code>boolean</code> | Whether or not to send a list of samples when the monitor triggers. |
6314
6315
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.escalationMessage">escalationMessage</a></code> | <code>string</code> | Message to include with a re-notification when renotify_interval is set. |
6315
6316
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.evaluationDelay">evaluationDelay</a></code> | <code>number</code> | Time in seconds to delay evaluation. |
6317
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.groupRetentionDuration">groupRetentionDuration</a></code> | <code>string</code> | The time span after which groups with missing data are dropped from the monitor state. |
6316
6318
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.includeTags">includeTags</a></code> | <code>boolean</code> | Whether or not to include triggering tags into notification title'. |
6317
6319
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.locked">locked</a></code> | <code>boolean</code> | Whether or not changes to this monitor should be restricted to the creator or admins. |
6318
6320
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.minFailureDuration">minFailureDuration</a></code> | <code>number</code> | How long the test should be in failure before alerting (integer, number of seconds, max 7200). |
@@ -6322,11 +6324,14 @@ const cfnDatadogMonitorOptions: datadogv2.CfnDatadogMonitorOptions = { ... }
6322
6324
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.newHostDelay">newHostDelay</a></code> | <code>number</code> | Time in seconds to allow a host to start reporting data before starting the evaluation of monitor results. |
6323
6325
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.noDataTimeframe">noDataTimeframe</a></code> | <code>number</code> | Number of minutes data stopped reporting before notifying. |
6324
6326
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.notifyAudit">notifyAudit</a></code> | <code>boolean</code> | Whether or not to notify tagged users when changes are made to the monitor. |
6327
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.notifyBy">notifyBy</a></code> | <code>string[]</code> | Controls what granularity a monitor alerts on. |
6325
6328
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.notifyNoData">notifyNoData</a></code> | <code>boolean</code> | Whether or not to notify when data stops reporting. |
6329
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.onMissingData">onMissingData</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData</code> | Controls how groups or monitors are treated if an evaluation does not return any data points. |
6326
6330
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.renotifyInterval">renotifyInterval</a></code> | <code>number</code> | Number of minutes after the last notification before the monitor re-notifies on the current status. |
6327
6331
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.renotifyOccurrences">renotifyOccurrences</a></code> | <code>number</code> | The number of times re-notification messages should be sent on the current status at the provided re-notification interval. |
6328
6332
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.renotifyStatuses">renotifyStatuses</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.RenotifyStatuses[]</code> | The types of monitor statuses for which re-notification messages are sent. |
6329
6333
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.requireFullWindow">requireFullWindow</a></code> | <code>boolean</code> | Whether or not the monitor requires a full window of data before it is evaluated. |
6334
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.schedulingOptions">schedulingOptions</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions</code> | Configuration options for scheduling. |
6330
6335
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.syntheticsCheckID">syntheticsCheckID</a></code> | <code>number</code> | ID of the corresponding synthetics check. |
6331
6336
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.thresholds">thresholds</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorThresholds</code> | *No description.* |
6332
6337
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.thresholdWindows">thresholdWindows</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorThresholdWindows</code> | *No description.* |
@@ -6347,6 +6352,20 @@ Whether or not to include a sample of the logs.
6347
6352
 
6348
6353
  ---
6349
6354
 
6355
+ ##### `enableSamples`<sup>Optional</sup> <a name="enableSamples" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.enableSamples"></a>
6356
+
6357
+ ```typescript
6358
+ public readonly enableSamples: boolean;
6359
+ ```
6360
+
6361
+ - *Type:* boolean
6362
+
6363
+ Whether or not to send a list of samples when the monitor triggers.
6364
+
6365
+ This is only used by CI Test and Pipeline monitors.
6366
+
6367
+ ---
6368
+
6350
6369
  ##### `escalationMessage`<sup>Optional</sup> <a name="escalationMessage" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.escalationMessage"></a>
6351
6370
 
6352
6371
  ```typescript
@@ -6371,6 +6390,22 @@ Time in seconds to delay evaluation.
6371
6390
 
6372
6391
  ---
6373
6392
 
6393
+ ##### `groupRetentionDuration`<sup>Optional</sup> <a name="groupRetentionDuration" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.groupRetentionDuration"></a>
6394
+
6395
+ ```typescript
6396
+ public readonly groupRetentionDuration: string;
6397
+ ```
6398
+
6399
+ - *Type:* string
6400
+
6401
+ The time span after which groups with missing data are dropped from the monitor state.
6402
+
6403
+ The minimum value is one hour, and the maximum value is 72 hours.
6404
+ Example values are: "60m", "1h", and "2d".
6405
+ This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.
6406
+
6407
+ ---
6408
+
6374
6409
  ##### `includeTags`<sup>Optional</sup> <a name="includeTags" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.includeTags"></a>
6375
6410
 
6376
6411
  ```typescript
@@ -6483,6 +6518,24 @@ Whether or not to notify tagged users when changes are made to the monitor.
6483
6518
 
6484
6519
  ---
6485
6520
 
6521
+ ##### `notifyBy`<sup>Optional</sup> <a name="notifyBy" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.notifyBy"></a>
6522
+
6523
+ ```typescript
6524
+ public readonly notifyBy: string[];
6525
+ ```
6526
+
6527
+ - *Type:* string[]
6528
+
6529
+ Controls what granularity a monitor alerts on.
6530
+
6531
+ Only available for monitors with groupings.
6532
+ For instance, a monitor grouped by `cluster`, `namespace`, and `pod` can be configured to only notify on each new `cluster` violating the alert conditions by setting `notify_by` to `["cluster"]`.
6533
+ Tags mentioned in `notify_by` must be a subset of the grouping tags in the query.
6534
+ For example, a query grouped by `cluster` and `namespace` cannot notify on `region`.
6535
+ Setting `notify_by` to `[*]` configures the monitor to notify as a simple-alert.
6536
+
6537
+ ---
6538
+
6486
6539
  ##### `notifyNoData`<sup>Optional</sup> <a name="notifyNoData" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.notifyNoData"></a>
6487
6540
 
6488
6541
  ```typescript
@@ -6496,6 +6549,23 @@ Whether or not to notify when data stops reporting.
6496
6549
 
6497
6550
  ---
6498
6551
 
6552
+ ##### `onMissingData`<sup>Optional</sup> <a name="onMissingData" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.onMissingData"></a>
6553
+
6554
+ ```typescript
6555
+ public readonly onMissingData: MonitorOnMissingData;
6556
+ ```
6557
+
6558
+ - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData
6559
+
6560
+ Controls how groups or monitors are treated if an evaluation does not return any data points.
6561
+
6562
+ The default option results in different behavior depending on the monitor query type.
6563
+ For monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions.
6564
+ For monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status.
6565
+ This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.
6566
+
6567
+ ---
6568
+
6499
6569
  ##### `renotifyInterval`<sup>Optional</sup> <a name="renotifyInterval" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.renotifyInterval"></a>
6500
6570
 
6501
6571
  ```typescript
@@ -6545,6 +6615,18 @@ Whether or not the monitor requires a full window of data before it is evaluated
6545
6615
 
6546
6616
  ---
6547
6617
 
6618
+ ##### `schedulingOptions`<sup>Optional</sup> <a name="schedulingOptions" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.schedulingOptions"></a>
6619
+
6620
+ ```typescript
6621
+ public readonly schedulingOptions: MonitorSchedulingOptions;
6622
+ ```
6623
+
6624
+ - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions
6625
+
6626
+ Configuration options for scheduling.
6627
+
6628
+ ---
6629
+
6548
6630
  ##### `syntheticsCheckID`<sup>Optional</sup> <a name="syntheticsCheckID" id="@rio-cloud/cdk-v2-constructs.datadogv2.CfnDatadogMonitorOptions.property.syntheticsCheckID"></a>
6549
6631
 
6550
6632
  ```typescript
@@ -10553,6 +10635,99 @@ Sets how this alarm is to handle missing data points.
10553
10635
 
10554
10636
  ---
10555
10637
 
10638
+ ### MonitorSchedulingOptions <a name="MonitorSchedulingOptions" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions"></a>
10639
+
10640
+ Configuration options for scheduling.
10641
+
10642
+ #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions.Initializer"></a>
10643
+
10644
+ ```typescript
10645
+ import { datadogv2 } from '@rio-cloud/cdk-v2-constructs'
10646
+
10647
+ const monitorSchedulingOptions: datadogv2.MonitorSchedulingOptions = { ... }
10648
+ ```
10649
+
10650
+ #### Properties <a name="Properties" id="Properties"></a>
10651
+
10652
+ | **Name** | **Type** | **Description** |
10653
+ | --- | --- | --- |
10654
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions.property.evaluationWindow">evaluationWindow</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow</code> | *No description.* |
10655
+
10656
+ ---
10657
+
10658
+ ##### `evaluationWindow`<sup>Optional</sup> <a name="evaluationWindow" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptions.property.evaluationWindow"></a>
10659
+
10660
+ ```typescript
10661
+ public readonly evaluationWindow: MonitorSchedulingOptionsEvaluationWindow;
10662
+ ```
10663
+
10664
+ - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow
10665
+
10666
+ ---
10667
+
10668
+ ### MonitorSchedulingOptionsEvaluationWindow <a name="MonitorSchedulingOptionsEvaluationWindow" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow"></a>
10669
+
10670
+ Configuration options for the evaluation window.
10671
+
10672
+ If `hour_starts` is set, no other fields may be set.
10673
+ Otherwise, `day_starts` and `month_starts` must be set together.
10674
+
10675
+ #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow.Initializer"></a>
10676
+
10677
+ ```typescript
10678
+ import { datadogv2 } from '@rio-cloud/cdk-v2-constructs'
10679
+
10680
+ const monitorSchedulingOptionsEvaluationWindow: datadogv2.MonitorSchedulingOptionsEvaluationWindow = { ... }
10681
+ ```
10682
+
10683
+ #### Properties <a name="Properties" id="Properties"></a>
10684
+
10685
+ | **Name** | **Type** | **Description** |
10686
+ | --- | --- | --- |
10687
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow.property.dayStarts">dayStarts</a></code> | <code>string</code> | The time of the day at which a one day cumulative evaluation window starts. |
10688
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow.property.hourStarts">hourStarts</a></code> | <code>number</code> | The minute of the hour at which a one hour cumulative evaluation window starts. |
10689
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow.property.monthStarts">monthStarts</a></code> | <code>number</code> | The day of the month at which a one month cumulative evaluation window starts. |
10690
+
10691
+ ---
10692
+
10693
+ ##### `dayStarts`<sup>Optional</sup> <a name="dayStarts" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow.property.dayStarts"></a>
10694
+
10695
+ ```typescript
10696
+ public readonly dayStarts: string;
10697
+ ```
10698
+
10699
+ - *Type:* string
10700
+
10701
+ The time of the day at which a one day cumulative evaluation window starts.
10702
+
10703
+ Must be defined in UTC time in `HH:mm` format.
10704
+
10705
+ ---
10706
+
10707
+ ##### `hourStarts`<sup>Optional</sup> <a name="hourStarts" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow.property.hourStarts"></a>
10708
+
10709
+ ```typescript
10710
+ public readonly hourStarts: number;
10711
+ ```
10712
+
10713
+ - *Type:* number
10714
+
10715
+ The minute of the hour at which a one hour cumulative evaluation window starts.
10716
+
10717
+ ---
10718
+
10719
+ ##### `monthStarts`<sup>Optional</sup> <a name="monthStarts" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorSchedulingOptionsEvaluationWindow.property.monthStarts"></a>
10720
+
10721
+ ```typescript
10722
+ public readonly monthStarts: number;
10723
+ ```
10724
+
10725
+ - *Type:* number
10726
+
10727
+ The day of the month at which a one month cumulative evaluation window starts.
10728
+
10729
+ ---
10730
+
10556
10731
  ### OverrideAlarmThresholdProps <a name="OverrideAlarmThresholdProps" id="@rio-cloud/cdk-v2-constructs.OverrideAlarmThresholdProps"></a>
10557
10732
 
10558
10733
  #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.OverrideAlarmThresholdProps.Initializer"></a>
@@ -15805,6 +15980,43 @@ Well known notification presets supported by Datadog.
15805
15980
  ---
15806
15981
 
15807
15982
 
15983
+ ### MonitorOnMissingData <a name="MonitorOnMissingData" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData"></a>
15984
+
15985
+ Options for onMissingData supported by Datadog.
15986
+
15987
+ > [https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json](https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json)
15988
+
15989
+ #### Members <a name="Members" id="Members"></a>
15990
+
15991
+ | **Name** | **Description** |
15992
+ | --- | --- |
15993
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.DEFAULT">DEFAULT</a></code> | *No description.* |
15994
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.SHOW_NO_DATA">SHOW_NO_DATA</a></code> | *No description.* |
15995
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.SHOW_AND_NOTIFY_NO_DATA">SHOW_AND_NOTIFY_NO_DATA</a></code> | *No description.* |
15996
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.RESOLVE">RESOLVE</a></code> | *No description.* |
15997
+
15998
+ ---
15999
+
16000
+ ##### `DEFAULT` <a name="DEFAULT" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.DEFAULT"></a>
16001
+
16002
+ ---
16003
+
16004
+
16005
+ ##### `SHOW_NO_DATA` <a name="SHOW_NO_DATA" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.SHOW_NO_DATA"></a>
16006
+
16007
+ ---
16008
+
16009
+
16010
+ ##### `SHOW_AND_NOTIFY_NO_DATA` <a name="SHOW_AND_NOTIFY_NO_DATA" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.SHOW_AND_NOTIFY_NO_DATA"></a>
16011
+
16012
+ ---
16013
+
16014
+
16015
+ ##### `RESOLVE` <a name="RESOLVE" id="@rio-cloud/cdk-v2-constructs.datadogv2.MonitorOnMissingData.RESOLVE"></a>
16016
+
16017
+ ---
16018
+
16019
+
15808
16020
  ### MonitorType <a name="MonitorType" id="@rio-cloud/cdk-v2-constructs.MonitorType"></a>
15809
16021
 
15810
16022
  #### Members <a name="Members" id="Members"></a>
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [4.34.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.33.5&sourceBranch=refs%2Ftags%2Fv4.34.0) (2024-05-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * **datadog:** add support for all Datadog monitor options ([3582468](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/3582468227763acfe2be63a459e9d598a6c3bc8f))
11
+
5
12
  ## [4.33.5](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.33.4&sourceBranch=refs%2Ftags%2Fv4.33.5) (2024-05-21)
6
13
 
7
14
 
@@ -101,6 +101,17 @@ export declare enum MonitorNotificationPreset {
101
101
  HIDE_HANDLES = "hide_handles",
102
102
  HIDE_ALL = "hide_all"
103
103
  }
104
+ /**
105
+ * Options for onMissingData supported by Datadog.
106
+ *
107
+ * @see https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json
108
+ */
109
+ export declare enum MonitorOnMissingData {
110
+ DEFAULT = "default",
111
+ SHOW_NO_DATA = "show_no_data",
112
+ SHOW_AND_NOTIFY_NO_DATA = "show_and_notify_no_data",
113
+ RESOLVE = "resolve"
114
+ }
104
115
  /**
105
116
  * Options to override for Datadog monitors in case more specific settings are required.
106
117
  *
@@ -111,6 +122,12 @@ export interface CfnDatadogMonitorOptions {
111
122
  * Whether or not to include a sample of the logs
112
123
  */
113
124
  readonly enableLogsSample?: boolean;
125
+ /**
126
+ * Whether or not to send a list of samples when the monitor triggers.
127
+ *
128
+ * This is only used by CI Test and Pipeline monitors.
129
+ */
130
+ readonly enableSamples?: boolean;
114
131
  /**
115
132
  * Message to include with a re-notification when renotify_interval is set
116
133
  */
@@ -120,6 +137,14 @@ export interface CfnDatadogMonitorOptions {
120
137
  *
121
138
  */
122
139
  readonly evaluationDelay?: number;
140
+ /**
141
+ * The time span after which groups with missing data are dropped from the monitor state.
142
+ *
143
+ * The minimum value is one hour, and the maximum value is 72 hours.
144
+ * Example values are: "60m", "1h", and "2d".
145
+ * This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.
146
+ */
147
+ readonly groupRetentionDuration?: string;
123
148
  /**
124
149
  * Whether or not to include triggering tags into notification title'
125
150
  *
@@ -146,12 +171,31 @@ export interface CfnDatadogMonitorOptions {
146
171
  * Whether or not to notify tagged users when changes are made to the monitor
147
172
  */
148
173
  readonly notifyAudit?: boolean;
174
+ /**
175
+ * Controls what granularity a monitor alerts on.
176
+ *
177
+ * Only available for monitors with groupings.
178
+ * For instance, a monitor grouped by `cluster`, `namespace`, and `pod` can be configured to only notify on each new `cluster` violating the alert conditions by setting `notify_by` to `["cluster"]`.
179
+ * Tags mentioned in `notify_by` must be a subset of the grouping tags in the query.
180
+ * For example, a query grouped by `cluster` and `namespace` cannot notify on `region`.
181
+ * Setting `notify_by` to `[*]` configures the monitor to notify as a simple-alert.
182
+ */
183
+ readonly notifyBy?: string[];
149
184
  /**
150
185
  * Whether or not to notify when data stops reporting
151
186
  *
152
187
  * @defaultValue false
153
188
  */
154
189
  readonly notifyNoData?: boolean;
190
+ /**
191
+ * Controls how groups or monitors are treated if an evaluation does not return any data points.
192
+ *
193
+ * The default option results in different behavior depending on the monitor query type.
194
+ * For monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions.
195
+ * For monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status.
196
+ * This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.
197
+ */
198
+ readonly onMissingData?: MonitorOnMissingData;
155
199
  /**
156
200
  * Number of minutes after the last notification before the monitor re-notifies on the current status
157
201
  */
@@ -162,6 +206,10 @@ export interface CfnDatadogMonitorOptions {
162
206
  * @defaultValue false
163
207
  */
164
208
  readonly requireFullWindow?: boolean;
209
+ /**
210
+ * Configuration options for scheduling
211
+ */
212
+ readonly schedulingOptions?: MonitorSchedulingOptions;
165
213
  /**
166
214
  * ID of the corresponding synthetics check
167
215
  */
@@ -201,19 +249,19 @@ export interface CfnDatadogMonitorOptions {
201
249
  }
202
250
  export interface CfnDatadogMonitorThresholds {
203
251
  /**
204
- *Threshold value for triggering an alert
252
+ * Threshold value for triggering an alert
205
253
  */
206
254
  readonly critical?: number;
207
255
  /**
208
- *Threshold value for recovering from an alert state
256
+ * Threshold value for recovering from an alert state
209
257
  */
210
258
  readonly criticalRecovery?: number;
211
259
  /**
212
- *Threshold value for recovering from an alert state
260
+ * Threshold value for recovering from an alert state
213
261
  */
214
262
  readonly ok?: number;
215
263
  /**
216
- *Threshold value for triggering a warning
264
+ * Threshold value for triggering a warning
217
265
  */
218
266
  readonly warning?: number;
219
267
  /**
@@ -231,6 +279,34 @@ export interface CfnDatadogMonitorThresholdWindows {
231
279
  */
232
280
  readonly recoveryWindow?: string;
233
281
  }
282
+ /**
283
+ * Configuration options for scheduling
284
+ */
285
+ export interface MonitorSchedulingOptions {
286
+ readonly evaluationWindow?: MonitorSchedulingOptionsEvaluationWindow;
287
+ }
288
+ /**
289
+ * Configuration options for the evaluation window.
290
+ *
291
+ * If `hour_starts` is set, no other fields may be set.
292
+ * Otherwise, `day_starts` and `month_starts` must be set together.
293
+ */
294
+ export interface MonitorSchedulingOptionsEvaluationWindow {
295
+ /**
296
+ * The time of the day at which a one day cumulative evaluation window starts.
297
+ *
298
+ * Must be defined in UTC time in `HH:mm` format.
299
+ */
300
+ readonly dayStarts?: string;
301
+ /**
302
+ * The day of the month at which a one month cumulative evaluation window starts
303
+ */
304
+ readonly monthStarts?: number;
305
+ /**
306
+ * The minute of the hour at which a one hour cumulative evaluation window starts
307
+ */
308
+ readonly hourStarts?: number;
309
+ }
234
310
  /**
235
311
  * Wrapper around Datadog's CloudFormation `Datadog::Monitors::Monitor` with some RIO defaults applied.
236
312
  *
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DatadogMonitor = exports.MonitorNotificationPreset = exports.RenotifyStatuses = exports.DatadogMonitorQueryAlertType = void 0;
4
+ exports.DatadogMonitor = exports.MonitorOnMissingData = exports.MonitorNotificationPreset = exports.RenotifyStatuses = exports.DatadogMonitorQueryAlertType = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const cdk = require("aws-cdk-lib");
7
7
  const constructs_1 = require("constructs");
@@ -54,6 +54,18 @@ var MonitorNotificationPreset;
54
54
  MonitorNotificationPreset["HIDE_HANDLES"] = "hide_handles";
55
55
  MonitorNotificationPreset["HIDE_ALL"] = "hide_all";
56
56
  })(MonitorNotificationPreset || (exports.MonitorNotificationPreset = MonitorNotificationPreset = {}));
57
+ /**
58
+ * Options for onMissingData supported by Datadog.
59
+ *
60
+ * @see https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json
61
+ */
62
+ var MonitorOnMissingData;
63
+ (function (MonitorOnMissingData) {
64
+ MonitorOnMissingData["DEFAULT"] = "default";
65
+ MonitorOnMissingData["SHOW_NO_DATA"] = "show_no_data";
66
+ MonitorOnMissingData["SHOW_AND_NOTIFY_NO_DATA"] = "show_and_notify_no_data";
67
+ MonitorOnMissingData["RESOLVE"] = "resolve";
68
+ })(MonitorOnMissingData || (exports.MonitorOnMissingData = MonitorOnMissingData = {}));
57
69
  /**
58
70
  * Wrapper around Datadog's CloudFormation `Datadog::Monitors::Monitor` with some RIO defaults applied.
59
71
  *
@@ -125,17 +137,21 @@ DatadogMonitor.DEFAULT_PRIORITY = 4;
125
137
  function mapMonitorOptions(source) {
126
138
  return {
127
139
  EnableLogsSample: source?.enableLogsSample,
140
+ EnableSamples: source?.enableSamples,
128
141
  EscalationMessage: source?.escalationMessage,
129
142
  EvaluationDelay: source?.evaluationDelay,
143
+ GroupRetentionDuration: source?.groupRetentionDuration,
130
144
  IncludeTags: source?.includeTags ?? true,
131
145
  Locked: source?.locked,
132
146
  MinLocationFailed: source?.minLocationFailed,
133
147
  NewHostDelay: source?.newHostDelay,
134
148
  NoDataTimeframe: source?.noDataTimeframe,
135
149
  NotifyAudit: source?.notifyAudit,
150
+ NotifyBy: source?.notifyBy,
136
151
  NotifyNoData: source?.notifyNoData ?? false,
137
152
  RenotifyInterval: source?.renotifyInterval,
138
153
  RequireFullWindow: source?.requireFullWindow ?? false,
154
+ SchedulingOptions: mapSchedulingOptionsProperties(source?.schedulingOptions),
139
155
  SyntheticsCheckID: source?.syntheticsCheckID,
140
156
  Thresholds: mapThresholdsProperties(source?.thresholds),
141
157
  ThresholdWindows: mapThresholdWindowsProperties(source?.thresholdWindows),
@@ -146,9 +162,22 @@ function mapMonitorOptions(source) {
146
162
  MinFailureDuration: source?.minFailureDuration,
147
163
  NewGroupDelay: source?.newGroupDelay,
148
164
  Variables: source?.variables,
165
+ OnMissingData: source?.onMissingData,
149
166
  };
150
167
  }
151
168
  ;
169
+ function mapSchedulingOptionsProperties(source) {
170
+ return source ? {
171
+ EvaluationWindow: mapSchedulingOptionsEvaluationWindowProperties(source.evaluationWindow),
172
+ } : undefined;
173
+ }
174
+ function mapSchedulingOptionsEvaluationWindowProperties(source) {
175
+ return source ? {
176
+ DayStarts: source.dayStarts,
177
+ MonthStarts: source.monthStarts,
178
+ HourStarts: source.hourStarts,
179
+ } : undefined;
180
+ }
152
181
  function mapThresholdsProperties(source) {
153
182
  return source ? {
154
183
  Critical: source.critical,
@@ -164,4 +193,4 @@ function mapThresholdWindowsProperties(source) {
164
193
  RecoveryWindow: source.recoveryWindow,
165
194
  } : undefined;
166
195
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLGlFQUFpRjtBQUNqRiwwREFBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQW9LRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQVczQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFFdkIsTUFBTSxRQUFRLEdBQUcsaUNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxNQUFNLGNBQWMsR0FBRyxpQ0FBYyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLGlDQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSwrQ0FBd0IsRUFBRSxDQUFDO1FBRTlGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLDRCQUE0QixDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25NLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLEdBQUcsS0FBSyxDQUFDLGVBQWU7U0FDekIsQ0FBQztRQUVGLElBQUksa0JBQWtCLElBQUksZUFBZSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDdkUsZUFBZSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7WUFDdEMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxXQUFXLENBQUMsWUFBWSxDQUN0Qix5REFBeUQsRUFBRSw2QkFBNkIsRUFDeEYsMk1BQTJNLENBQzVNLENBQUM7U0FDSDtRQUVELHlJQUF5STtRQUN6SSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ2xELElBQUksRUFBRSw0QkFBNEI7WUFDbEMsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNsQixJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDbEUsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUMxRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7Z0JBQzNDLElBQUksRUFBRTtvQkFDSixHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7b0JBQzFCLGNBQWMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUMxQyxnQkFBZ0IsV0FBVyxDQUFDLFdBQVcsRUFBRTtvQkFDekMsV0FBVyxLQUFLLENBQUMsV0FBVyxFQUFFO29CQUM5QixRQUFRLFFBQVEsQ0FBQyxXQUFXLEVBQUU7b0JBQzlCLG1CQUFtQixjQUFjLENBQUMsV0FBVyxFQUFFO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gscUdBQXFHO1FBQ3JHLGtFQUFrRTtRQUNsRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQXFEO1FBQzlFLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNyRixDQUFDOztBQXhFSCx3Q0EwRUM7OztBQXpFQzs7R0FFRztBQUNhLCtCQUFnQixHQUFHLENBQUMsQ0FBQztBQXdFdkMsU0FBUyxpQkFBaUIsQ0FBQyxNQUE0QztJQUNyRSxPQUFPO1FBQ0wsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGdCQUFnQjtRQUMxQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCO1FBQzVDLGVBQWUsRUFBRSxNQUFNLEVBQUUsZUFBZTtRQUN4QyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsSUFBSSxJQUFJO1FBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTTtRQUN0QixpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCO1FBQzVDLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWTtRQUNsQyxlQUFlLEVBQUUsTUFBTSxFQUFFLGVBQWU7UUFDeEMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXO1FBQ2hDLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxJQUFJLEtBQUs7UUFDM0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGdCQUFnQjtRQUMxQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLElBQUksS0FBSztRQUNyRCxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCO1FBQzVDLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO1FBQ3ZELGdCQUFnQixFQUFFLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztRQUN6RSw2QkFBNkIsRUFBRSxNQUFNLEVBQUUsNkJBQTZCO1FBQ3BFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUTtRQUMxQixtQkFBbUIsRUFBRSxNQUFNLEVBQUUsbUJBQW1CO1FBQ2hELGdCQUFnQixFQUFFLE1BQU0sRUFBRSxnQkFBZ0I7UUFDMUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGtCQUFrQjtRQUM5QyxhQUFhLEVBQUUsTUFBTSxFQUFFLGFBQWE7UUFDcEMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBQUEsQ0FBQztBQUdGLFNBQVMsdUJBQXVCLENBQUMsTUFBK0M7SUFDOUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7UUFDekMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ2IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtLQUN4QyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQUMsTUFBcUQ7SUFDMUYsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2QsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1FBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYztLQUN0QyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4vZGF0YWRvZy1ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcblxuLyoqXG4gKiBXZWxsIGtub3duIG1vbml0b3IgdHlwZXMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAqL1xuZXhwb3J0IGVudW0gRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSB7XG4gIEFVRElUX0FMRVJUID0gJ2F1ZGl0IGFsZXJ0JyxcbiAgQ09NUE9TSVRFID0gJ2NvbXBvc2l0ZScsXG4gIEVWRU5UX0FMRVJUID0gJ2V2ZW50IGFsZXJ0JyxcbiAgRVZFTlRfVl8yX0FMRVJUID0gJ2V2ZW50LXYyIGFsZXJ0JyxcbiAgTE9HX0FMRVJUID0gJ2xvZyBhbGVydCcsXG4gIE1FVFJJQ19BTEVSVCA9ICdtZXRyaWMgYWxlcnQnLFxuICBQUk9DRVNTX0FMRVJUID0gJ3Byb2Nlc3MgYWxlcnQnLFxuICBRVUVSWV9BTEVSVCA9ICdxdWVyeSBhbGVydCcsXG4gIFNFUlZJQ0VfQ0hFQ0sgPSAnc2VydmljZSBjaGVjaycsXG4gIFNZTlRIRVRJQ1NfQUxFUlQgPSAnc3ludGhldGljcyBhbGVydCcsXG4gIFRSQUNFX0FOQUxZVElDU19BTEVSVCA9ICd0cmFjZS1hbmFseXRpY3MgYWxlcnQnLFxuICBTTE9fQUxFUlQgPSAnc2xvIGFsZXJ0JyxcbiAgUlVNX0FMRVJUID0gJ3J1bSBhbGVydCcsXG4gIENJX1BJUEVMSU5FU19BTEVSVCA9ICdjaS1waXBlbGluZXMgYWxlcnQnLFxuICBFUlJPUl9UUkFDS0lOR19BTEVSVCA9ICdlcnJvci10cmFja2luZyBhbGVydCcsXG4gIENJX1RFU1RTX0FMRVJUID0gJ2NpLXRlc3RzIGFsZXJ0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIHtAbGluayBEYXRhZG9nTW9uaXRvcn1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nTW9uaXRvclByb3BzIHtcblxuICAvKipcbiAgICogQSBuYW1lIHN1ZmZpeCB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvcnMgbmFtZS5cbiAgICpcbiAgICogVGhlIG1vbml0b3IgbmFtZSBpcyBjb25jYXRlbmF0ZWQgZm9ybSBgPFRlYW1OYW1lPiA8c2VydmljZU5hbWUgcHJvcGVydHk+IDxuYW1lIHByb3BlcnR5PmBcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIG1vbml0b3IgYmVsb25ncy5cbiAgICpcbiAgICogVXNlZCB0byBnZW5lcmF0ZSB0aGUgbW9uaXRvciBuYW1lIGFzIHdlbGwgYSBhcHBseSB0aGUgYHNlcnZpY2VgIHRhZy5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb25pdG9ycyB0eXBlXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvdHlwZXMvXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZTtcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHNlYXJjaCBxdWVyeVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI2RlZmluZS10aGUtc2VhcmNoLXF1ZXJ5XG4gICAqL1xuICByZWFkb25seSBxdWVyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBwYXR0ZXJuIGZvciB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI21lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVG8gZXhwbGljaXRseSBkaXNhYmxlIG5vdGlmaWNhdGlvbnMgdXNlIHtAbGluayBOb05vdGlmaWNhdGlvbn0uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbn1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9ub3RpZnlcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbj86IElOb3RpZmljYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhbGVydCBwcmlvcml0eSBvZiB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIDRcbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpYyBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG1vbml0b3Igb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbk92ZXJyaWRlcz86IENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucztcblxuICAvKipcbiAgICogVGFncyB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvciBpbiBhZGRpdGlvbiB0byB0aGUgUklPIGRlZmF1bHQgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFUYWdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogV2VsbCBrbm93biByZW5vdGlmaWNhdGlvbiBzZXR0aW5ncyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeS8jcmVub3RpZnlcbiAqL1xuZXhwb3J0IGVudW0gUmVub3RpZnlTdGF0dXNlcyB7XG4gIEFMRVJUID0gJ2FsZXJ0JyxcbiAgTk9fREFUQSA9ICdubyBkYXRhJyxcbiAgV0FSTiA9ICd3YXJuJ1xufVxuXG4vKipcbiAqIFdlbGwga25vd24gbm90aWZpY2F0aW9uIHByZXNldHMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvblxuICovXG5leHBvcnQgZW51bSBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0IHtcbiAgU0hPV19BTEwgPSAnc2hvd19hbGwnLFxuICBISURFX1FVRVJZID0gJ2hpZGVfcXVlcnknLFxuICBISURFX0hBTkRMRVMgPSAnaGlkZV9oYW5kbGVzJyxcbiAgSElERV9BTEwgPSAnaGlkZV9hbGwnLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gb3ZlcnJpZGUgZm9yIERhdGFkb2cgbW9uaXRvcnMgaW4gY2FzZSBtb3JlIHNwZWNpZmljIHNldHRpbmdzIGFyZSByZXF1aXJlZC5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb259XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zIHtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIHNhbXBsZSBvZiB0aGUgbG9nc1xuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9nc1NhbXBsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgdG8gaW5jbHVkZSB3aXRoIGEgcmUtbm90aWZpY2F0aW9uIHdoZW4gcmVub3RpZnlfaW50ZXJ2YWwgaXMgc2V0XG4gICAqL1xuICByZWFkb25seSBlc2NhbGF0aW9uTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGRlbGF5IGV2YWx1YXRpb25cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25EZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0cmlnZ2VyaW5nIHRhZ3MgaW50byBub3RpZmljYXRpb24gdGl0bGUnXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVRhZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBjaGFuZ2VzIHRvIHRoaXMgbW9uaXRvciBzaG91bGQgYmUgcmVzdHJpY3RlZCB0byB0aGUgY3JlYXRvciBvciBhZG1pbnNcbiAgICovXG4gIHJlYWRvbmx5IGxvY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBsb2NhdGlvbnMgYWxsb3dlZCB0byBmYWlsIGJlZm9yZSB0cmlnZ2VyaW5nIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSBtaW5Mb2NhdGlvbkZhaWxlZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGFsbG93IGEgaG9zdCB0byBzdGFydCByZXBvcnRpbmcgZGF0YSBiZWZvcmUgc3RhcnRpbmcgdGhlIGV2YWx1YXRpb24gb2YgbW9uaXRvciByZXN1bHRzXG4gICAqL1xuICByZWFkb25seSBuZXdIb3N0RGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtaW51dGVzIGRhdGEgc3RvcHBlZCByZXBvcnRpbmcgYmVmb3JlIG5vdGlmeWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgbm9EYXRhVGltZWZyYW1lPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgdGFnZ2VkIHVzZXJzIHdoZW4gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgbW9uaXRvclxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5QXVkaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgd2hlbiBkYXRhIHN0b3BzIHJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlOb0RhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBhZnRlciB0aGUgbGFzdCBub3RpZmljYXRpb24gYmVmb3JlIHRoZSBtb25pdG9yIHJlLW5vdGlmaWVzIG9uIHRoZSBjdXJyZW50IHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1vbml0b3IgcmVxdWlyZXMgYSBmdWxsIHdpbmRvdyBvZiBkYXRhIGJlZm9yZSBpdCBpcyBldmFsdWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZUZ1bGxXaW5kb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgY29ycmVzcG9uZGluZyBzeW50aGV0aWNzIGNoZWNrXG4gICAqL1xuICByZWFkb25seSBzeW50aGV0aWNzQ2hlY2tJRD86IG51bWJlcjtcblxuICByZWFkb25seSB0aHJlc2hvbGRzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZFdpbmRvd3M/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3M7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBob3VycyBvZiB0aGUgbW9uaXRvciBub3QgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIGl0IGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRIPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzaG91bGQgYmUgc2VudCBvbiB0aGUgY3VycmVudCBzdGF0dXMgYXQgdGhlIHByb3ZpZGVkIHJlLW5vdGlmaWNhdGlvbiBpbnRlcnZhbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5T2NjdXJyZW5jZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlcyBvZiBtb25pdG9yIHN0YXR1c2VzIGZvciB3aGljaCByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgYXJlIHNlbnQuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeVN0YXR1c2VzPzogUmVub3RpZnlTdGF0dXNlc1tdO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyB0aGUgdGVzdCBzaG91bGQgYmUgaW4gZmFpbHVyZSBiZWZvcmUgYWxlcnRpbmcgKGludGVnZXIsIG51bWJlciBvZiBzZWNvbmRzLCBtYXggNzIwMCkuXG4gICAqL1xuICByZWFkb25seSBtaW5GYWlsdXJlRHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoaWNoIGluZm9ybWF0aW9uIHNob3VsZCBiZSBhZGRlZC9sZXR0IG91dCBmcm9tIHRoZSBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQuU0hPV19BTEx9XG4gICAqL1xuICByZWFkb25seSBtb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZT86IE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQ7XG5cbiAgLyoqXG4gICAqIFRpbWUgKGluIHNlY29uZHMpIHRvIHNraXAgZXZhbHVhdGlvbnMgZm9yIG5ldyBncm91cHMuIEZvciBleGFtcGxlLCB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgaG9zdHMgd2hpbGUgdGhleSBpbml0aWFsaXplLiBNdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIGludGVnZXIuXG4gICAqL1xuICByZWFkb25seSBuZXdHcm91cERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIG1vbml0b3IgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBvYmplY3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMge1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhbiBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsUmVjb3Zlcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IG9rPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhIHdhcm5pbmdcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGEgd2FybmluZyBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZ1JlY292ZXJ5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cyB7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgbWV0cmljIG11c3QgYmUgYW5vbWFsb3VzIGJlZm9yZSB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhbiBhbm9tYWxvdXMgbWV0cmljIG11c3QgYmUgbm9ybWFsIGJlZm9yZSByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3JgIHdpdGggc29tZSBSSU8gZGVmYXVsdHMgYXBwbGllZC5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdHkgb2YgYSBtb25pdG9yXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9QUklPUklUWSA9IDQ7XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcjogY2RrLkNmblJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPyBwcm9wcy5ub3RpZmljYXRpb24gOiBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCk7XG5cbiAgICBjb25zdCBpc0F3c01ldHJpa01vbml0b3IgPSAocHJvcHMubW9uaXRvclR5cGUgPT09IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuTUVUUklDX0FMRVJUIHx8IHByb3BzLm1vbml0b3JUeXBlID09PSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJUKSAmJiBwcm9wcy5xdWVyeS5pbmRleE9mKCdhd3MuJykgPiAtMTtcbiAgICBjb25zdCBvcHRpb25PdmVycmlkZXMgPSB7XG4gICAgICAuLi5wcm9wcy5vcHRpb25PdmVycmlkZXMsXG4gICAgfTtcblxuICAgIGlmIChpc0F3c01ldHJpa01vbml0b3IgJiYgb3B0aW9uT3ZlcnJpZGVzLmV2YWx1YXRpb25EZWxheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcHRpb25PdmVycmlkZXMuZXZhbHVhdGlvbkRlbGF5ID0gOTAwO1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBjZGsuQW5ub3RhdGlvbnMub2YoY2RrLlN0YWNrLm9mKHRoaXMpKTtcbiAgICAgIGFubm90YXRpb25zLmFkZFdhcm5pbmdWMihcbiAgICAgICAgYEByaW8tY2xvdWQvY2RrLXYyLWNvbnN0cnVjdHMvZGF0YWRvZ3YyL0RhdGFkb2dNb25pdG9yLyR7aWR9L0Nsb3VkTWV0cmljRXZhbHVhdGlvbkRlbGF5YCxcbiAgICAgICAgJ1xcbiDinYwgWW91ciBtb25pdG9yIGlzIGFsZXJ0aW5nIG9uIENsb3VkIE1ldHJpY3MgYnV0IHlvdSBoYXZlblxcJ3Qgc2V0IGFuIFxcJ29wdGlvbk92ZXJyaWRlcy5ldmFsdWF0aW9uRGVsYXlcXCcuXFxuIOKchSBJdFxcJ3MgYXV0b21hdGljYWxseSBzZXQgdG8gMTUgbWludXRlcywgYnV0IHBsZWFzZSBwcm92aWRlIGEgc3VpdGFibGUgdmFsdWUgb24geW91ciBvd24uXFxuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb25cbiAgICB0aGlzLm1vbml0b3IgPSBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsICdNb25pdG9yJywge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVHlwZTogcHJvcHMubW9uaXRvclR5cGUsXG4gICAgICAgIFF1ZXJ5OiBwcm9wcy5xdWVyeSxcbiAgICAgICAgTmFtZTogYCR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9ICR7cHJvcHMuc2VydmljZU5hbWV9ICR7cHJvcHMubmFtZX1gLFxuICAgICAgICBNZXNzYWdlOiB0aGlzLmNvbmNhdGVuYXRlTWVzc2FnZSh7IG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsIG5vdGlmaWNhdGlvbiB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKG9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIFRhZ3M6IFtcbiAgICAgICAgICAuLi4ocHJvcHMuZXh0cmFUYWdzID8/IFtdKSxcbiAgICAgICAgICBgYWNjb3VudF9pZDoke2Nkay5TdGFjay5vZih0aGlzKS5hY2NvdW50fWAsXG4gICAgICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHNlcnZpY2U6JHtwcm9wcy5zZXJ2aWNlTmFtZX1gLFxuICAgICAgICAgIGB0ZWFtOiR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0YWluIHRoZSBtb25pdG9yX2lkIGFzIHVzZWQgaW4gRGF0YWRvZ1xuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vYXBpL2xhdGVzdC9tb25pdG9ycy8jZ2V0LWEtbW9uaXRvcnMtZGV0YWlsc1xuICAgKlxuICAgKiBUaGlzIGFsbG93cyByZWZlcmVuY2luZyB0aGlzIG1vbml0b3IgaW4gb3RoZXIgY29uc3RydWN0cy9yZXNvdXJjZXMgKGUuZy4gU0xPcylcbiAgICovXG4gIGdldCBtb25pdG9ySWQoKSB7XG4gICAgLy8gcmV0dXJuIFJlZiBhcyBpdCByZXR1cm5zIHRoZSBJZCBhcyBzdHJpbmcgaW5zdGVhZCBvZiB0aGUgR2V0QXR0KElkKSB3aWhjaCByZXR1cm5zIHRoZSBpZCBhcyBudW1iZXJcbiAgICAvLyBodHRwczovL215LXJpby5zbGFjay5jb20vYXJjaGl2ZXMvQzAzNFdBRzNRVUEvcDE3MDg0MTk4NzEzOTg5NDlcbiAgICByZXR1cm4gY2RrLkZuLnJlZih0aGlzLm1vbml0b3IubG9naWNhbElkKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVNZXNzYWdlKHByb3BzOiB7bWVzc2FnZTogc3RyaW5nOyBub3RpZmljYXRpb246IElOb3RpZmljYXRpb259KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gbWFwTW9uaXRvck9wdGlvbnMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHtcbiAgICBFbmFibGVMb2dzU2FtcGxlOiBzb3VyY2U/LmVuYWJsZUxvZ3NTYW1wbGUsXG4gICAgRXNjYWxhdGlvbk1lc3NhZ2U6IHNvdXJjZT8uZXNjYWxhdGlvbk1lc3NhZ2UsXG4gICAgRXZhbHVhdGlvbkRlbGF5OiBzb3VyY2U/LmV2YWx1YXRpb25EZWxheSxcbiAgICBJbmNsdWRlVGFnczogc291cmNlPy5pbmNsdWRlVGFncyA/PyB0cnVlLFxuICAgIExvY2tlZDogc291cmNlPy5sb2NrZWQsXG4gICAgTWluTG9jYXRpb25GYWlsZWQ6IHNvdXJjZT8ubWluTG9jYXRpb25GYWlsZWQsXG4gICAgTmV3SG9zdERlbGF5OiBzb3VyY2U/Lm5ld0hvc3REZWxheSxcbiAgICBOb0RhdGFUaW1lZnJhbWU6IHNvdXJjZT8ubm9EYXRhVGltZWZyYW1lLFxuICAgIE5vdGlmeUF1ZGl0OiBzb3VyY2U/Lm5vdGlmeUF1ZGl0LFxuICAgIE5vdGlmeU5vRGF0YTogc291cmNlPy5ub3RpZnlOb0RhdGEgPz8gZmFsc2UsXG4gICAgUmVub3RpZnlJbnRlcnZhbDogc291cmNlPy5yZW5vdGlmeUludGVydmFsLFxuICAgIFJlcXVpcmVGdWxsV2luZG93OiBzb3VyY2U/LnJlcXVpcmVGdWxsV2luZG93ID8/IGZhbHNlLFxuICAgIFN5bnRoZXRpY3NDaGVja0lEOiBzb3VyY2U/LnN5bnRoZXRpY3NDaGVja0lELFxuICAgIFRocmVzaG9sZHM6IG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZT8udGhyZXNob2xkcyksXG4gICAgVGhyZXNob2xkV2luZG93czogbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlPy50aHJlc2hvbGRXaW5kb3dzKSxcbiAgICBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZTogc291cmNlPy5tb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZSxcbiAgICBUaW1lb3V0SDogc291cmNlPy50aW1lb3V0SCxcbiAgICBSZW5vdGlmeU9jY3VycmVuY2VzOiBzb3VyY2U/LnJlbm90aWZ5T2NjdXJyZW5jZXMsXG4gICAgUmVub3RpZnlTdGF0dXNlczogc291cmNlPy5yZW5vdGlmeVN0YXR1c2VzLFxuICAgIE1pbkZhaWx1cmVEdXJhdGlvbjogc291cmNlPy5taW5GYWlsdXJlRHVyYXRpb24sXG4gICAgTmV3R3JvdXBEZWxheTogc291cmNlPy5uZXdHcm91cERlbGF5LFxuICAgIFZhcmlhYmxlczogc291cmNlPy52YXJpYWJsZXMsXG4gIH07XG59O1xuXG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgQ3JpdGljYWw6IHNvdXJjZS5jcml0aWNhbCxcbiAgICBDcml0aWNhbFJlY292ZXJ5OiBzb3VyY2UuY3JpdGljYWxSZWNvdmVyeSxcbiAgICBPSzogc291cmNlLm9rLFxuICAgIFdhcm5pbmc6IHNvdXJjZS53YXJuaW5nLFxuICAgIFdhcm5pbmdSZWNvdmVyeTogc291cmNlLndhcm5pbmdSZWNvdmVyeSxcbiAgfSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3MgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHNvdXJjZSA/IHtcbiAgICBUcmlnZ2VyV2luZG93OiBzb3VyY2UudHJpZ2dlcldpbmRvdyxcbiAgICBSZWNvdmVyeVdpbmRvdzogc291cmNlLnJlY292ZXJ5V2luZG93LFxuICB9IDogdW5kZWZpbmVkO1xufVxuIl19
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLGlFQUFpRjtBQUNqRiwwREFBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLG9CQUtY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QUErQztJQUM5RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtRQUN6QyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO0tBQ3hDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FBQyxNQUFxRDtJQUMxRixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDZCxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7UUFDbkMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO0tBQ3RDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uLCBJTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9kYXRhZG9nLW5vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vKipcbiAqIFdlbGwga25vd24gbW9uaXRvciB0eXBlcyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL3R5cGVzL1xuICovXG5leHBvcnQgZW51bSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlIHtcbiAgQVVESVRfQUxFUlQgPSAnYXVkaXQgYWxlcnQnLFxuICBDT01QT1NJVEUgPSAnY29tcG9zaXRlJyxcbiAgRVZFTlRfQUxFUlQgPSAnZXZlbnQgYWxlcnQnLFxuICBFVkVOVF9WXzJfQUxFUlQgPSAnZXZlbnQtdjIgYWxlcnQnLFxuICBMT0dfQUxFUlQgPSAnbG9nIGFsZXJ0JyxcbiAgTUVUUklDX0FMRVJUID0gJ21ldHJpYyBhbGVydCcsXG4gIFBST0NFU1NfQUxFUlQgPSAncHJvY2VzcyBhbGVydCcsXG4gIFFVRVJZX0FMRVJUID0gJ3F1ZXJ5IGFsZXJ0JyxcbiAgU0VSVklDRV9DSEVDSyA9ICdzZXJ2aWNlIGNoZWNrJyxcbiAgU1lOVEhFVElDU19BTEVSVCA9ICdzeW50aGV0aWNzIGFsZXJ0JyxcbiAgVFJBQ0VfQU5BTFlUSUNTX0FMRVJUID0gJ3RyYWNlLWFuYWx5dGljcyBhbGVydCcsXG4gIFNMT19BTEVSVCA9ICdzbG8gYWxlcnQnLFxuICBSVU1fQUxFUlQgPSAncnVtIGFsZXJ0JyxcbiAgQ0lfUElQRUxJTkVTX0FMRVJUID0gJ2NpLXBpcGVsaW5lcyBhbGVydCcsXG4gIEVSUk9SX1RSQUNLSU5HX0FMRVJUID0gJ2Vycm9yLXRyYWNraW5nIGFsZXJ0JyxcbiAgQ0lfVEVTVFNfQUxFUlQgPSAnY2ktdGVzdHMgYWxlcnQnLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2Yge0BsaW5rIERhdGFkb2dNb25pdG9yfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dNb25pdG9yUHJvcHMge1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgc3VmZml4IHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9ycyBuYW1lLlxuICAgKlxuICAgKiBUaGUgbW9uaXRvciBuYW1lIGlzIGNvbmNhdGVuYXRlZCBmb3JtIGA8VGVhbU5hbWU+IDxzZXJ2aWNlTmFtZSBwcm9wZXJ0eT4gPG5hbWUgcHJvcGVydHk+YFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSB0byB3aGljaCB0aGUgbW9uaXRvciBiZWxvbmdzLlxuICAgKlxuICAgKiBVc2VkIHRvIGdlbmVyYXRlIHRoZSBtb25pdG9yIG5hbWUgYXMgd2VsbCBhIGFwcGx5IHRoZSBgc2VydmljZWAgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHR5cGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcnMgc2VhcmNoIHF1ZXJ5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jZGVmaW5lLXRoZS1zZWFyY2gtcXVlcnlcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHBhdHRlcm4gZm9yIHRoZSBtb25pdG9yXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jbWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyBleHBsaWNpdGx5IGRpc2FibGUgbm90aWZpY2F0aW9ucyB1c2Uge0BsaW5rIE5vTm90aWZpY2F0aW9ufS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9ufVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uPzogSU5vdGlmaWNhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGFsZXJ0IHByaW9yaXR5IG9mIHRoZSBtb25pdG9yXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgNFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmljIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbW9uaXRvciBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9uT3ZlcnJpZGVzPzogQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9yIGluIGFkZGl0aW9uIHRvIHRoZSBSSU8gZGVmYXVsdCB0YWdzXG4gICAqL1xuICByZWFkb25seSBleHRyYVRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBXZWxsIGtub3duIHJlbm90aWZpY2F0aW9uIHNldHRpbmdzIHN1cHBvcnRlZCBieSBEYXRhZG9nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvbm90aWZ5LyNyZW5vdGlmeVxuICovXG5leHBvcnQgZW51bSBSZW5vdGlmeVN0YXR1c2VzIHtcbiAgQUxFUlQgPSAnYWxlcnQnLFxuICBOT19EQVRBID0gJ25vIGRhdGEnLFxuICBXQVJOID0gJ3dhcm4nXG59XG5cbi8qKlxuICogV2VsbCBrbm93biBub3RpZmljYXRpb24gcHJlc2V0cyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gKi9cbmV4cG9ydCBlbnVtIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQge1xuICBTSE9XX0FMTCA9ICdzaG93X2FsbCcsXG4gIEhJREVfUVVFUlkgPSAnaGlkZV9xdWVyeScsXG4gIEhJREVfSEFORExFUyA9ICdoaWRlX2hhbmRsZXMnLFxuICBISURFX0FMTCA9ICdoaWRlX2FsbCcsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igb25NaXNzaW5nRGF0YSBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqIFxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvblxuICovXG5leHBvcnQgZW51bSBNb25pdG9yT25NaXNzaW5nRGF0YSB7XG4gIERFRkFVTFQgPSAnZGVmYXVsdCcsXG4gIFNIT1dfTk9fREFUQSA9ICdzaG93X25vX2RhdGEnLFxuICBTSE9XX0FORF9OT1RJRllfTk9fREFUQSA9ICdzaG93X2FuZF9ub3RpZnlfbm9fZGF0YScsXG4gIFJFU09MVkUgPSAncmVzb2x2ZScsXG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBvdmVycmlkZSBmb3IgRGF0YWRvZyBtb25pdG9ycyBpbiBjYXNlIG1vcmUgc3BlY2lmaWMgc2V0dGluZ3MgYXJlIHJlcXVpcmVkLlxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvbn1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgc2FtcGxlIG9mIHRoZSBsb2dzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dzU2FtcGxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2VuZCBhIGxpc3Qgb2Ygc2FtcGxlcyB3aGVuIHRoZSBtb25pdG9yIHRyaWdnZXJzLlxuICAgKiBcbiAgICogVGhpcyBpcyBvbmx5IHVzZWQgYnkgQ0kgVGVzdCBhbmQgUGlwZWxpbmUgbW9uaXRvcnMuXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTYW1wbGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWVzc2FnZSB0byBpbmNsdWRlIHdpdGggYSByZS1ub3RpZmljYXRpb24gd2hlbiByZW5vdGlmeV9pbnRlcnZhbCBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGVzY2FsYXRpb25NZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaW1lIGluIHNlY29uZHMgdG8gZGVsYXkgZXZhbHVhdGlvblxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvbkRlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBzcGFuIGFmdGVyIHdoaWNoIGdyb3VwcyB3aXRoIG1pc3NpbmcgZGF0YSBhcmUgZHJvcHBlZCBmcm9tIHRoZSBtb25pdG9yIHN0YXRlLlxuICAgKiBcbiAgICogVGhlIG1pbmltdW0gdmFsdWUgaXMgb25lIGhvdXIsIGFuZCB0aGUgbWF4aW11bSB2YWx1ZSBpcyA3MiBob3Vycy5cbiAgICogRXhhbXBsZSB2YWx1ZXMgYXJlOiBcIjYwbVwiLCBcIjFoXCIsIGFuZCBcIjJkXCIuXG4gICAqIFRoaXMgb3B0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBBUE0gVHJhY2UgQW5hbHl0aWNzLCBBdWRpdCBUcmFpbCwgQ0ksIEVycm9yIFRyYWNraW5nLCBFdmVudCwgTG9ncywgYW5kIFJVTSBtb25pdG9ycy5cbiAgICovXG4gIHJlYWRvbmx5IGdyb3VwUmV0ZW50aW9uRHVyYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdHJpZ2dlcmluZyB0YWdzIGludG8gbm90aWZpY2F0aW9uIHRpdGxlJ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVUYWdzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgY2hhbmdlcyB0byB0aGlzIG1vbml0b3Igc2hvdWxkIGJlIHJlc3RyaWN0ZWQgdG8gdGhlIGNyZWF0b3Igb3IgYWRtaW5zXG4gICAqL1xuICByZWFkb25seSBsb2NrZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbG9jYXRpb25zIGFsbG93ZWQgdG8gZmFpbCBiZWZvcmUgdHJpZ2dlcmluZyBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgbWluTG9jYXRpb25GYWlsZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRpbWUgaW4gc2Vjb25kcyB0byBhbGxvdyBhIGhvc3QgdG8gc3RhcnQgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIHN0YXJ0aW5nIHRoZSBldmFsdWF0aW9uIG9mIG1vbml0b3IgcmVzdWx0c1xuICAgKi9cbiAgcmVhZG9ubHkgbmV3SG9zdERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBkYXRhIHN0b3BwZWQgcmVwb3J0aW5nIGJlZm9yZSBub3RpZnlpbmdcbiAgICovXG4gIHJlYWRvbmx5IG5vRGF0YVRpbWVmcmFtZT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gbm90aWZ5IHRhZ2dlZCB1c2VycyB3aGVuIGNoYW5nZXMgYXJlIG1hZGUgdG8gdGhlIG1vbml0b3JcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmeUF1ZGl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udHJvbHMgd2hhdCBncmFudWxhcml0eSBhIG1vbml0b3IgYWxlcnRzIG9uLlxuICAgKiBcbiAgICogT25seSBhdmFpbGFibGUgZm9yIG1vbml0b3JzIHdpdGggZ3JvdXBpbmdzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGEgbW9uaXRvciBncm91cGVkIGJ5IGBjbHVzdGVyYCwgYG5hbWVzcGFjZWAsIGFuZCBgcG9kYCBjYW4gYmUgY29uZmlndXJlZCB0byBvbmx5IG5vdGlmeSBvbiBlYWNoIG5ldyBgY2x1c3RlcmAgdmlvbGF0aW5nIHRoZSBhbGVydCBjb25kaXRpb25zIGJ5IHNldHRpbmcgYG5vdGlmeV9ieWAgdG8gYFtcImNsdXN0ZXJcIl1gLlxuICAgKiBUYWdzIG1lbnRpb25lZCBpbiBgbm90aWZ5X2J5YCBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSBncm91cGluZyB0YWdzIGluIHRoZSBxdWVyeS5cbiAgICogRm9yIGV4YW1wbGUsIGEgcXVlcnkgZ3JvdXBlZCBieSBgY2x1c3RlcmAgYW5kIGBuYW1lc3BhY2VgIGNhbm5vdCBub3RpZnkgb24gYHJlZ2lvbmAuXG4gICAqIFNldHRpbmcgYG5vdGlmeV9ieWAgdG8gYFsqXWAgY29uZmlndXJlcyB0aGUgbW9uaXRvciB0byBub3RpZnkgYXMgYSBzaW1wbGUtYWxlcnQuXG4gICAqL1xuICByZWFkb25seSBub3RpZnlCeT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgd2hlbiBkYXRhIHN0b3BzIHJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlOb0RhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBob3cgZ3JvdXBzIG9yIG1vbml0b3JzIGFyZSB0cmVhdGVkIGlmIGFuIGV2YWx1YXRpb24gZG9lcyBub3QgcmV0dXJuIGFueSBkYXRhIHBvaW50cy5cbiAgICogXG4gICAqIFRoZSBkZWZhdWx0IG9wdGlvbiByZXN1bHRzIGluIGRpZmZlcmVudCBiZWhhdmlvciBkZXBlbmRpbmcgb24gdGhlIG1vbml0b3IgcXVlcnkgdHlwZS5cbiAgICogRm9yIG1vbml0b3JzIHVzaW5nIENvdW50IHF1ZXJpZXMsIGFuIGVtcHR5IG1vbml0b3IgZXZhbHVhdGlvbiBpcyB0cmVhdGVkIGFzIDAgYW5kIGlzIGNvbXBhcmVkIHRvIHRoZSB0aHJlc2hvbGQgY29uZGl0aW9ucy5cbiAgICogRm9yIG1vbml0b3JzIHVzaW5nIGFueSBxdWVyeSB0eXBlIG90aGVyIHRoYW4gQ291bnQsIGZvciBleGFtcGxlIEdhdWdlLCBNZWFzdXJlLCBvciBSYXRlLCB0aGUgbW9uaXRvciBzaG93cyB0aGUgbGFzdCBrbm93biBzdGF0dXMuXG4gICAqIFRoaXMgb3B0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBBUE0gVHJhY2UgQW5hbHl0aWNzLCBBdWRpdCBUcmFpbCwgQ0ksIEVycm9yIFRyYWNraW5nLCBFdmVudCwgTG9ncywgYW5kIFJVTSBtb25pdG9ycy5cbiAgICovXG4gIHJlYWRvbmx5IG9uTWlzc2luZ0RhdGE/OiBNb25pdG9yT25NaXNzaW5nRGF0YTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbnV0ZXMgYWZ0ZXIgdGhlIGxhc3Qgbm90aWZpY2F0aW9uIGJlZm9yZSB0aGUgbW9uaXRvciByZS1ub3RpZmllcyBvbiB0aGUgY3VycmVudCBzdGF0dXNcbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5SW50ZXJ2YWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBtb25pdG9yIHJlcXVpcmVzIGEgZnVsbCB3aW5kb3cgb2YgZGF0YSBiZWZvcmUgaXQgaXMgZXZhbHVhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVGdWxsV2luZG93PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBzY2hlZHVsaW5nXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsaW5nT3B0aW9ucz86IE1vbml0b3JTY2hlZHVsaW5nT3B0aW9ucztcblxuICAvKipcbiAgICogSUQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc3ludGhldGljcyBjaGVja1xuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhldGljc0NoZWNrSUQ/OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgdGhyZXNob2xkcz86IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkcztcblxuICByZWFkb25seSB0aHJlc2hvbGRXaW5kb3dzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgaG91cnMgb2YgdGhlIG1vbml0b3Igbm90IHJlcG9ydGluZyBkYXRhIGJlZm9yZSBpdCBhdXRvbWF0aWNhbGx5IHJlc29sdmVzXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aW1lcyByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgc2hvdWxkIGJlIHNlbnQgb24gdGhlIGN1cnJlbnQgc3RhdHVzIGF0IHRoZSBwcm92aWRlZCByZS1ub3RpZmljYXRpb24gaW50ZXJ2YWwuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeU9jY3VycmVuY2VzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZXMgb2YgbW9uaXRvciBzdGF0dXNlcyBmb3Igd2hpY2ggcmUtbm90aWZpY2F0aW9uIG1lc3NhZ2VzIGFyZSBzZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlTdGF0dXNlcz86IFJlbm90aWZ5U3RhdHVzZXNbXTtcblxuICAvKipcbiAgICogSG93IGxvbmcgdGhlIHRlc3Qgc2hvdWxkIGJlIGluIGZhaWx1cmUgYmVmb3JlIGFsZXJ0aW5nIChpbnRlZ2VyLCBudW1iZXIgb2Ygc2Vjb25kcywgbWF4IDcyMDApLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluRmFpbHVyZUR1cmF0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgYWRkZWQvbGV0dCBvdXQgZnJvbSB0aGUgbm90aWZpY2F0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0LlNIT1dfQUxMfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvck5vdGlmaWNhdGlvblByZXNldE5hbWU/OiBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0O1xuXG4gIC8qKlxuICAgKiBUaW1lIChpbiBzZWNvbmRzKSB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgZ3JvdXBzLiBGb3IgZXhhbXBsZSwgdGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gc2tpcCBldmFsdWF0aW9ucyBmb3IgbmV3IGhvc3RzIHdoaWxlIHRoZXkgaW5pdGlhbGl6ZS4gTXVzdCBiZSBhIG5vbiBuZWdhdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV3R3JvdXBEZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogTGlzdCBvZiByZXF1ZXN0cyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBtb25pdG9yIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogb2JqZWN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsUmVjb3Zlcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBvaz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciB0cmlnZ2VyaW5nIGEgd2FybmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYSB3YXJuaW5nIHN0YXRlXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5nUmVjb3Zlcnk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzIHtcblxuICAvKipcbiAgICogSG93IGxvbmcgYSBtZXRyaWMgbXVzdCBiZSBhbm9tYWxvdXMgYmVmb3JlIHRyaWdnZXJpbmcgYW4gYWxlcnRcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXJXaW5kb3c/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGFuIGFub21hbG91cyBtZXRyaWMgbXVzdCBiZSBub3JtYWwgYmVmb3JlIHJlY292ZXJpbmcgZnJvbSBhbiBhbGVydCBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3ZlcnlXaW5kb3c/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBzY2hlZHVsaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvclNjaGVkdWxpbmdPcHRpb25zIHtcbiAgcmVhZG9ubHkgZXZhbHVhdGlvbldpbmRvdz86IE1vbml0b3JTY2hlZHVsaW5nT3B0aW9uc0V2YWx1YXRpb25XaW5kb3c7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZXZhbHVhdGlvbiB3aW5kb3cuXG4gKiBcbiAqIElmIGBob3VyX3N0YXJ0c2AgaXMgc2V0LCBubyBvdGhlciBmaWVsZHMgbWF5IGJlIHNldC5cbiAqIE90aGVyd2lzZSwgYGRheV9zdGFydHNgIGFuZCBgbW9udGhfc3RhcnRzYCBtdXN0IGJlIHNldCB0b2dldGhlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93IHtcblxuICAvKipcbiAgICogVGhlIHRpbWUgb2YgdGhlIGRheSBhdCB3aGljaCBhIG9uZSBkYXkgY3VtdWxhdGl2ZSBldmFsdWF0aW9uIHdpbmRvdyBzdGFydHMuXG4gICAqIFxuICAgKiBNdXN0IGJlIGRlZmluZWQgaW4gVVRDIHRpbWUgaW4gYEhIOm1tYCBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBkYXlTdGFydHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXkgb2YgdGhlIG1vbnRoIGF0IHdoaWNoIGEgb25lIG1vbnRoIGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzXG4gICAqL1xuICByZWFkb25seSBtb250aFN0YXJ0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciBhdCB3aGljaCBhIG9uZSBob3VyIGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzXG4gICAqL1xuICByZWFkb25seSBob3VyU3RhcnRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3JgIHdpdGggc29tZSBSSU8gZGVmYXVsdHMgYXBwbGllZC5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdHkgb2YgYSBtb25pdG9yXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9QUklPUklUWSA9IDQ7XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcjogY2RrLkNmblJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPyBwcm9wcy5ub3RpZmljYXRpb24gOiBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCk7XG5cbiAgICBjb25zdCBpc0F3c01ldHJpa01vbml0b3IgPSAocHJvcHMubW9uaXRvclR5cGUgPT09IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuTUVUUklDX0FMRVJUIHx8IHByb3BzLm1vbml0b3JUeXBlID09PSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJUKSAmJiBwcm9wcy5xdWVyeS5pbmRleE9mKCdhd3MuJykgPiAtMTtcbiAgICBjb25zdCBvcHRpb25PdmVycmlkZXMgPSB7XG4gICAgICAuLi5wcm9wcy5vcHRpb25PdmVycmlkZXMsXG4gICAgfTtcblxuICAgIGlmIChpc0F3c01ldHJpa01vbml0b3IgJiYgb3B0aW9uT3ZlcnJpZGVzLmV2YWx1YXRpb25EZWxheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcHRpb25PdmVycmlkZXMuZXZhbHVhdGlvbkRlbGF5ID0gOTAwO1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBjZGsuQW5ub3RhdGlvbnMub2YoY2RrLlN0YWNrLm9mKHRoaXMpKTtcbiAgICAgIGFubm90YXRpb25zLmFkZFdhcm5pbmdWMihcbiAgICAgICAgYEByaW8tY2xvdWQvY2RrLXYyLWNvbnN0cnVjdHMvZGF0YWRvZ3YyL0RhdGFkb2dNb25pdG9yLyR7aWR9L0Nsb3VkTWV0cmljRXZhbHVhdGlvbkRlbGF5YCxcbiAgICAgICAgJ1xcbiDinYwgWW91ciBtb25pdG9yIGlzIGFsZXJ0aW5nIG9uIENsb3VkIE1ldHJpY3MgYnV0IHlvdSBoYXZlblxcJ3Qgc2V0IGFuIFxcJ29wdGlvbk92ZXJyaWRlcy5ldmFsdWF0aW9uRGVsYXlcXCcuXFxuIOKchSBJdFxcJ3MgYXV0b21hdGljYWxseSBzZXQgdG8gMTUgbWludXRlcywgYnV0IHBsZWFzZSBwcm92aWRlIGEgc3VpdGFibGUgdmFsdWUgb24geW91ciBvd24uXFxuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb25cbiAgICB0aGlzLm1vbml0b3IgPSBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsICdNb25pdG9yJywge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVHlwZTogcHJvcHMubW9uaXRvclR5cGUsXG4gICAgICAgIFF1ZXJ5OiBwcm9wcy5xdWVyeSxcbiAgICAgICAgTmFtZTogYCR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9ICR7cHJvcHMuc2VydmljZU5hbWV9ICR7cHJvcHMubmFtZX1gLFxuICAgICAgICBNZXNzYWdlOiB0aGlzLmNvbmNhdGVuYXRlTWVzc2FnZSh7IG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsIG5vdGlmaWNhdGlvbiB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKG9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIFRhZ3M6IFtcbiAgICAgICAgICAuLi4ocHJvcHMuZXh0cmFUYWdzID8/IFtdKSxcbiAgICAgICAgICBgYWNjb3VudF9pZDoke2Nkay5TdGFjay5vZih0aGlzKS5hY2NvdW50fWAsXG4gICAgICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHNlcnZpY2U6JHtwcm9wcy5zZXJ2aWNlTmFtZX1gLFxuICAgICAgICAgIGB0ZWFtOiR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0YWluIHRoZSBtb25pdG9yX2lkIGFzIHVzZWQgaW4gRGF0YWRvZ1xuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vYXBpL2xhdGVzdC9tb25pdG9ycy8jZ2V0LWEtbW9uaXRvcnMtZGV0YWlsc1xuICAgKlxuICAgKiBUaGlzIGFsbG93cyByZWZlcmVuY2luZyB0aGlzIG1vbml0b3IgaW4gb3RoZXIgY29uc3RydWN0cy9yZXNvdXJjZXMgKGUuZy4gU0xPcylcbiAgICovXG4gIGdldCBtb25pdG9ySWQoKSB7XG4gICAgLy8gcmV0dXJuIFJlZiBhcyBpdCByZXR1cm5zIHRoZSBJZCBhcyBzdHJpbmcgaW5zdGVhZCBvZiB0aGUgR2V0QXR0KElkKSB3aWhjaCByZXR1cm5zIHRoZSBpZCBhcyBudW1iZXJcbiAgICAvLyBodHRwczovL215LXJpby5zbGFjay5jb20vYXJjaGl2ZXMvQzAzNFdBRzNRVUEvcDE3MDg0MTk4NzEzOTg5NDlcbiAgICByZXR1cm4gY2RrLkZuLnJlZih0aGlzLm1vbml0b3IubG9naWNhbElkKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVNZXNzYWdlKHByb3BzOiB7bWVzc2FnZTogc3RyaW5nOyBub3RpZmljYXRpb246IElOb3RpZmljYXRpb259KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gbWFwTW9uaXRvck9wdGlvbnMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHtcbiAgICBFbmFibGVMb2dzU2FtcGxlOiBzb3VyY2U/LmVuYWJsZUxvZ3NTYW1wbGUsXG4gICAgRW5hYmxlU2FtcGxlczogc291cmNlPy5lbmFibGVTYW1wbGVzLFxuICAgIEVzY2FsYXRpb25NZXNzYWdlOiBzb3VyY2U/LmVzY2FsYXRpb25NZXNzYWdlLFxuICAgIEV2YWx1YXRpb25EZWxheTogc291cmNlPy5ldmFsdWF0aW9uRGVsYXksXG4gICAgR3JvdXBSZXRlbnRpb25EdXJhdGlvbjogc291cmNlPy5ncm91cFJldGVudGlvbkR1cmF0aW9uLFxuICAgIEluY2x1ZGVUYWdzOiBzb3VyY2U/LmluY2x1ZGVUYWdzID8/IHRydWUsXG4gICAgTG9ja2VkOiBzb3VyY2U/LmxvY2tlZCxcbiAgICBNaW5Mb2NhdGlvbkZhaWxlZDogc291cmNlPy5taW5Mb2NhdGlvbkZhaWxlZCxcbiAgICBOZXdIb3N0RGVsYXk6IHNvdXJjZT8ubmV3SG9zdERlbGF5LFxuICAgIE5vRGF0YVRpbWVmcmFtZTogc291cmNlPy5ub0RhdGFUaW1lZnJhbWUsXG4gICAgTm90aWZ5QXVkaXQ6IHNvdXJjZT8ubm90aWZ5QXVkaXQsXG4gICAgTm90aWZ5Qnk6IHNvdXJjZT8ubm90aWZ5QnksXG4gICAgTm90aWZ5Tm9EYXRhOiBzb3VyY2U/Lm5vdGlmeU5vRGF0YSA/PyBmYWxzZSxcbiAgICBSZW5vdGlmeUludGVydmFsOiBzb3VyY2U/LnJlbm90aWZ5SW50ZXJ2YWwsXG4gICAgUmVxdWlyZUZ1bGxXaW5kb3c6IHNvdXJjZT8ucmVxdWlyZUZ1bGxXaW5kb3cgPz8gZmFsc2UsXG4gICAgU2NoZWR1bGluZ09wdGlvbnM6IG1hcFNjaGVkdWxpbmdPcHRpb25zUHJvcGVydGllcyhzb3VyY2U/LnNjaGVkdWxpbmdPcHRpb25zKSxcbiAgICBTeW50aGV0aWNzQ2hlY2tJRDogc291cmNlPy5zeW50aGV0aWNzQ2hlY2tJRCxcbiAgICBUaHJlc2hvbGRzOiBtYXBUaHJlc2hvbGRzUHJvcGVydGllcyhzb3VyY2U/LnRocmVzaG9sZHMpLFxuICAgIFRocmVzaG9sZFdpbmRvd3M6IG1hcFRocmVzaG9sZFdpbmRvd3NQcm9wZXJ0aWVzKHNvdXJjZT8udGhyZXNob2xkV2luZG93cyksXG4gICAgTW9uaXRvck5vdGlmaWNhdGlvblByZXNldE5hbWU6IHNvdXJjZT8ubW9uaXRvck5vdGlmaWNhdGlvblByZXNldE5hbWUsXG4gICAgVGltZW91dEg6IHNvdXJjZT8udGltZW91dEgsXG4gICAgUmVub3RpZnlPY2N1cnJlbmNlczogc291cmNlPy5yZW5vdGlmeU9jY3VycmVuY2VzLFxuICAgIFJlbm90aWZ5U3RhdHVzZXM6IHNvdXJjZT8ucmVub3RpZnlTdGF0dXNlcyxcbiAgICBNaW5GYWlsdXJlRHVyYXRpb246IHNvdXJjZT8ubWluRmFpbHVyZUR1cmF0aW9uLFxuICAgIE5ld0dyb3VwRGVsYXk6IHNvdXJjZT8ubmV3R3JvdXBEZWxheSxcbiAgICBWYXJpYWJsZXM6IHNvdXJjZT8udmFyaWFibGVzLFxuICAgIE9uTWlzc2luZ0RhdGE6IHNvdXJjZT8ub25NaXNzaW5nRGF0YSxcbiAgfTtcbn07XG5cbmZ1bmN0aW9uIG1hcFNjaGVkdWxpbmdPcHRpb25zUHJvcGVydGllcyhzb3VyY2U6IE1vbml0b3JTY2hlZHVsaW5nT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlID8ge1xuICAgIEV2YWx1YXRpb25XaW5kb3c6IG1hcFNjaGVkdWxpbmdPcHRpb25zRXZhbHVhdGlvbldpbmRvd1Byb3BlcnRpZXMoc291cmNlLmV2YWx1YXRpb25XaW5kb3cpLFxuICB9IDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYXBTY2hlZHVsaW5nT3B0aW9uc0V2YWx1YXRpb25XaW5kb3dQcm9wZXJ0aWVzKHNvdXJjZTogTW9uaXRvclNjaGVkdWxpbmdPcHRpb25zRXZhbHVhdGlvbldpbmRvdyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlID8ge1xuICAgIERheVN0YXJ0czogc291cmNlLmRheVN0YXJ0cyxcbiAgICBNb250aFN0YXJ0czogc291cmNlLm1vbnRoU3RhcnRzLFxuICAgIEhvdXJTdGFydHM6IHNvdXJjZS5ob3VyU3RhcnRzLFxuICB9IDogdW5kZWZpbmVkO1xufSBcblxuZnVuY3Rpb24gbWFwVGhyZXNob2xkc1Byb3BlcnRpZXMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHNvdXJjZSA/IHtcbiAgICBDcml0aWNhbDogc291cmNlLmNyaXRpY2FsLFxuICAgIENyaXRpY2FsUmVjb3Zlcnk6IHNvdXJjZS5jcml0aWNhbFJlY292ZXJ5LFxuICAgIE9LOiBzb3VyY2Uub2ssXG4gICAgV2FybmluZzogc291cmNlLndhcm5pbmcsXG4gICAgV2FybmluZ1JlY292ZXJ5OiBzb3VyY2Uud2FybmluZ1JlY292ZXJ5LFxuICB9IDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYXBUaHJlc2hvbGRXaW5kb3dzUHJvcGVydGllcyhzb3VyY2U6IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlID8ge1xuICAgIFRyaWdnZXJXaW5kb3c6IHNvdXJjZS50cmlnZ2VyV2luZG93LFxuICAgIFJlY292ZXJ5V2luZG93OiBzb3VyY2UucmVjb3ZlcnlXaW5kb3csXG4gIH0gOiB1bmRlZmluZWQ7XG59XG4iXX0=
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "main": "lib/index.js",
17
17
  "license": "Apache-2.0",
18
- "version": "4.33.5",
18
+ "version": "4.34.0",
19
19
  "types": "lib/index.d.ts",
20
20
  "stability": "stable",
21
21
  "exports": {
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.33.5"
2
+ "version": "4.34.0"
3
3
  }