@rio-cloud/cdk-v2-constructs 4.32.0 → 4.33.1

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
@@ -3668,7 +3668,7 @@
3668
3668
  },
3669
3669
  "name": "@rio-cloud/cdk-v2-constructs",
3670
3670
  "readme": {
3671
- "markdown": "# RIO CDK Constructs\n\nThis package contains CDK2 constructs for RIO teams.\n\n> NPM: `@rio-cloud/cdk-v2-constructs`\n\n## Bootstrapping of CDK project\n\n```\n$ npx cdk init --language typescript\n```\n\n## Installation\n\n```\n$ npm install --save @rio-cloud/cdk-v2-constructs\n```\n\n## See also\n\n * [How to contribut](./CONTRIBUTION.md)\n * [Changelog](./CHANGELOG.md)\n * [brief API desciption](./API.md)\n\n## Internal documentation for library devs\n[Documentation](./developers-readme.md)\n\n## FAQ's\n- How can I udpate the thresholds of monitors created by watchful?\n\n There is an `overrideAlarmThreshold` method which can be used to override the default watchful thresholds. Please make aure to use the method before the `watchscope` function.\n Eg -\n ```\n ...\n const dw = new Watchful(stack, 'Watchful', {});\n dw.overrideAlarmThreshold({\n monitoredResourceScope: lambdaA,\n monitorType: MonitorType.ERRORS,\n threshold: 5,\n });\n dw.watchScope(stack);\n ```"
3671
+ "markdown": "# RIO CDK Constructs\n\nThis package contains CDK2 constructs for RIO teams.\n\n> NPM: `@rio-cloud/cdk-v2-constructs`\n\n## Bootstrapping of CDK project\n\n```\n$ npx cdk init --language typescript\n```\n\n## Installation\n\n```\n$ npm install --save @rio-cloud/cdk-v2-constructs\n```\n\n## See also\n\n * [How to contribute](./CONTRIBUTION.md)\n * [Changelog](./CHANGELOG.md)\n * [brief API description](./API.md)\n\n## Internal documentation for library devs\n[Documentation](./developers-readme.md)\n\n## FAQ's\n- How can I update the thresholds of monitors created by watchful?\n\n There is an `overrideAlarmThreshold` method which can be used to override the default watchful thresholds. Please make aure to use the method before the `watchscope` function.\n Eg -\n ```\n ...\n const dw = new Watchful(stack, 'Watchful', {});\n dw.overrideAlarmThreshold({\n monitoredResourceScope: lambdaA,\n monitorType: MonitorType.ERRORS,\n threshold: 5,\n });\n dw.watchScope(stack);\n ```"
3672
3672
  },
3673
3673
  "repository": {
3674
3674
  "type": "git",
@@ -4318,9 +4318,9 @@
4318
4318
  "assembly": "@rio-cloud/cdk-v2-constructs",
4319
4319
  "base": "constructs.Construct",
4320
4320
  "docs": {
4321
- "remarks": "The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,\nout of memory, failed health checks.\n\nThe monitor will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog for\nbetter analyses and trigger an alert.\n\nMore details on the AWS ECS events can be found here:\n{@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}\n\nThis monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate\nto bigger issues, like a service being that requires more resources.",
4321
+ "remarks": "The construct creates monitoring for detecting ECS containers that were stopped abruptly by AWS for reasons such as,\nout of memory, or failed health checks.\n\nThis monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate\nto bigger issues, like a service that requires more resources to run properly.\n\nThe construct will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog,\nallowing better analyses since AWS keeps the stopped task details for only one hour and will be used to create a\nmonitor.\n\nContributions are more than welcome, please get in touch with Team Outbound to ensure compatibility.\n\nThis construct was based on an AWS blog post about ECS anomaly detection, see here:\n{@link https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-anomaly-detection-using-amazon-eventbridge/}.\n\nMore details on the AWS ECS events can be found here:\n{@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}.",
4322
4322
  "stability": "stable",
4323
- "summary": "# WARNING: This construct is still on beta phase."
4323
+ "summary": "# WARNING: This construct is still in the beta phase."
4324
4324
  },
4325
4325
  "fqn": "@rio-cloud/cdk-v2-constructs.AwsEcsAbruptlyStoppedMonitor",
4326
4326
  "initializer": {
@@ -4329,7 +4329,7 @@
4329
4329
  },
4330
4330
  "locationInModule": {
4331
4331
  "filename": "src/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.ts",
4332
- "line": 31
4332
+ "line": 61
4333
4333
  },
4334
4334
  "parameters": [
4335
4335
  {
@@ -4355,7 +4355,7 @@
4355
4355
  "kind": "class",
4356
4356
  "locationInModule": {
4357
4357
  "filename": "src/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.ts",
4358
- "line": 30
4358
+ "line": 60
4359
4359
  },
4360
4360
  "name": "AwsEcsAbruptlyStoppedMonitor",
4361
4361
  "symbolId": "src/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor:AwsEcsAbruptlyStoppedMonitor"
@@ -5814,29 +5814,34 @@
5814
5814
  {
5815
5815
  "abstract": true,
5816
5816
  "docs": {
5817
- "stability": "stable"
5817
+ "remarks": "Used to generate the monitor name as well a apply the `service` tag.",
5818
+ "stability": "stable",
5819
+ "summary": "The name of the service to which the monitor belongs."
5818
5820
  },
5819
5821
  "immutable": true,
5820
5822
  "locationInModule": {
5821
5823
  "filename": "src/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.ts",
5822
- "line": 7
5824
+ "line": 12
5823
5825
  },
5824
- "name": "notification",
5826
+ "name": "serviceName",
5825
5827
  "type": {
5826
- "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.INotification"
5828
+ "primitive": "string"
5827
5829
  }
5828
5830
  },
5829
5831
  {
5830
5832
  "abstract": true,
5831
5833
  "docs": {
5832
- "stability": "stable"
5834
+ "remarks": "If no cluster is provided, the monitor will consume ECS events for all clusters within the account.",
5835
+ "stability": "stable",
5836
+ "summary": "ARN of the cluster that should be monitored, consuming only ECS events belonging to the cluster."
5833
5837
  },
5834
5838
  "immutable": true,
5835
5839
  "locationInModule": {
5836
5840
  "filename": "src/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.ts",
5837
- "line": 6
5841
+ "line": 36
5838
5842
  },
5839
- "name": "serviceName",
5843
+ "name": "clusterArn",
5844
+ "optional": true,
5840
5845
  "type": {
5841
5846
  "primitive": "string"
5842
5847
  }
@@ -5844,19 +5849,38 @@
5844
5849
  {
5845
5850
  "abstract": true,
5846
5851
  "docs": {
5847
- "remarks": "If no cluster is provided, all ECS will be part of the monitor.",
5852
+ "default": "{@link DefaultSlackNotification }",
5853
+ "see": "https://docs.datadoghq.com/monitors/notify",
5848
5854
  "stability": "stable",
5849
- "summary": "ARN of the cluster that should be monitored."
5855
+ "summary": "To explicitly disable notifications use {@link NoNotification }."
5850
5856
  },
5851
5857
  "immutable": true,
5852
5858
  "locationInModule": {
5853
5859
  "filename": "src/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.ts",
5854
- "line": 12
5860
+ "line": 22
5855
5861
  },
5856
- "name": "clusterArn",
5862
+ "name": "notification",
5857
5863
  "optional": true,
5858
5864
  "type": {
5859
- "primitive": "string"
5865
+ "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.INotification"
5866
+ }
5867
+ },
5868
+ {
5869
+ "abstract": true,
5870
+ "docs": {
5871
+ "default": "{@link DatadogMonitor.DEFAULT_PRIORITY }",
5872
+ "stability": "stable",
5873
+ "summary": "The alert priority of the monitor."
5874
+ },
5875
+ "immutable": true,
5876
+ "locationInModule": {
5877
+ "filename": "src/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.ts",
5878
+ "line": 30
5879
+ },
5880
+ "name": "priority",
5881
+ "optional": true,
5882
+ "type": {
5883
+ "primitive": "number"
5860
5884
  }
5861
5885
  }
5862
5886
  ],
@@ -6287,7 +6311,7 @@
6287
6311
  "kind": "class",
6288
6312
  "locationInModule": {
6289
6313
  "filename": "src/kafka/kafka-event-spec.ts",
6290
- "line": 52
6314
+ "line": 53
6291
6315
  },
6292
6316
  "methods": [
6293
6317
  {
@@ -6298,7 +6322,7 @@
6298
6322
  },
6299
6323
  "locationInModule": {
6300
6324
  "filename": "src/kafka/kafka-event-spec.ts",
6301
- "line": 59
6325
+ "line": 60
6302
6326
  },
6303
6327
  "name": "fromYamlFile",
6304
6328
  "parameters": [
@@ -6328,7 +6352,7 @@
6328
6352
  },
6329
6353
  "locationInModule": {
6330
6354
  "filename": "src/kafka/kafka-event-spec.ts",
6331
- "line": 69
6355
+ "line": 70
6332
6356
  },
6333
6357
  "name": "fromYamlString",
6334
6358
  "parameters": [
@@ -6356,7 +6380,7 @@
6356
6380
  },
6357
6381
  "locationInModule": {
6358
6382
  "filename": "src/kafka/kafka-event-spec.ts",
6359
- "line": 107
6383
+ "line": 108
6360
6384
  },
6361
6385
  "name": "toSnsMessage",
6362
6386
  "returns": {
@@ -6375,7 +6399,7 @@
6375
6399
  "immutable": true,
6376
6400
  "locationInModule": {
6377
6401
  "filename": "src/kafka/kafka-event-spec.ts",
6378
- "line": 98
6402
+ "line": 99
6379
6403
  },
6380
6404
  "name": "eventName",
6381
6405
  "type": {
@@ -7450,6 +7474,22 @@
7450
7474
  "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
7451
7475
  }
7452
7476
  },
7477
+ {
7478
+ "abstract": true,
7479
+ "docs": {
7480
+ "stability": "stable",
7481
+ "summary": "priority."
7482
+ },
7483
+ "immutable": true,
7484
+ "locationInModule": {
7485
+ "filename": "src/watchful/metric-alarm.ts",
7486
+ "line": 38
7487
+ },
7488
+ "name": "priority",
7489
+ "type": {
7490
+ "primitive": "number"
7491
+ }
7492
+ },
7453
7493
  {
7454
7494
  "abstract": true,
7455
7495
  "docs": {
@@ -10939,7 +10979,7 @@
10939
10979
  },
10940
10980
  "locationInModule": {
10941
10981
  "filename": "src/watchful/watchful.ts",
10942
- "line": 317
10982
+ "line": 318
10943
10983
  },
10944
10984
  "name": "createLogAlarm",
10945
10985
  "overrides": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
@@ -10971,7 +11011,7 @@
10971
11011
  },
10972
11012
  "locationInModule": {
10973
11013
  "filename": "src/watchful/watchful.ts",
10974
- "line": 341
11014
+ "line": 342
10975
11015
  },
10976
11016
  "name": "watchScope",
10977
11017
  "parameters": [
@@ -14562,7 +14602,7 @@
14562
14602
  "kind": "class",
14563
14603
  "locationInModule": {
14564
14604
  "filename": "src/kafka/kafka-event-spec.ts",
14565
- "line": 52
14605
+ "line": 53
14566
14606
  },
14567
14607
  "methods": [
14568
14608
  {
@@ -14573,7 +14613,7 @@
14573
14613
  },
14574
14614
  "locationInModule": {
14575
14615
  "filename": "src/kafka/kafka-event-spec.ts",
14576
- "line": 59
14616
+ "line": 60
14577
14617
  },
14578
14618
  "name": "fromYamlFile",
14579
14619
  "parameters": [
@@ -14603,7 +14643,7 @@
14603
14643
  },
14604
14644
  "locationInModule": {
14605
14645
  "filename": "src/kafka/kafka-event-spec.ts",
14606
- "line": 69
14646
+ "line": 70
14607
14647
  },
14608
14648
  "name": "fromYamlString",
14609
14649
  "parameters": [
@@ -14631,7 +14671,7 @@
14631
14671
  },
14632
14672
  "locationInModule": {
14633
14673
  "filename": "src/kafka/kafka-event-spec.ts",
14634
- "line": 107
14674
+ "line": 108
14635
14675
  },
14636
14676
  "name": "toSnsMessage",
14637
14677
  "returns": {
@@ -14651,7 +14691,7 @@
14651
14691
  "immutable": true,
14652
14692
  "locationInModule": {
14653
14693
  "filename": "src/kafka/kafka-event-spec.ts",
14654
- "line": 98
14694
+ "line": 99
14655
14695
  },
14656
14696
  "name": "eventName",
14657
14697
  "type": {
@@ -15426,6 +15466,118 @@
15426
15466
  ],
15427
15467
  "symbolId": "src/kafka/rio-kafka-event-source:RioKafkaEventSourceProps"
15428
15468
  },
15469
+ "@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps": {
15470
+ "assembly": "@rio-cloud/cdk-v2-constructs",
15471
+ "datatype": true,
15472
+ "docs": {
15473
+ "stability": "stable",
15474
+ "summary": "Log error monitor props."
15475
+ },
15476
+ "fqn": "@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps",
15477
+ "kind": "interface",
15478
+ "locationInModule": {
15479
+ "filename": "src/watchfulv2/watchful.ts",
15480
+ "line": 11
15481
+ },
15482
+ "name": "LogErrorMonitorProps",
15483
+ "namespace": "watchfulv2",
15484
+ "properties": [
15485
+ {
15486
+ "abstract": true,
15487
+ "docs": {
15488
+ "default": "{@link false }",
15489
+ "remarks": "This property has been deprecated. The propery has been instead nested into logErrorMonitorConfig.\nThe functionality remains unchanged",
15490
+ "stability": "stable",
15491
+ "summary": "Enable error log monitors creating cases in Datadog."
15492
+ },
15493
+ "immutable": true,
15494
+ "locationInModule": {
15495
+ "filename": "src/watchfulv2/watchful.ts",
15496
+ "line": 31
15497
+ },
15498
+ "name": "createCasesFromErrorLogMonitors",
15499
+ "optional": true,
15500
+ "type": {
15501
+ "primitive": "boolean"
15502
+ }
15503
+ },
15504
+ {
15505
+ "abstract": true,
15506
+ "docs": {
15507
+ "default": "false",
15508
+ "remarks": "This option also sets the renotify interval to 2 hours",
15509
+ "stability": "stable",
15510
+ "summary": "Configure if monitor needs to be resolved manually every time."
15511
+ },
15512
+ "immutable": true,
15513
+ "locationInModule": {
15514
+ "filename": "src/watchfulv2/watchful.ts",
15515
+ "line": 16
15516
+ },
15517
+ "name": "disableAutoClose",
15518
+ "optional": true,
15519
+ "type": {
15520
+ "primitive": "boolean"
15521
+ }
15522
+ },
15523
+ {
15524
+ "abstract": true,
15525
+ "docs": {
15526
+ "default": "3",
15527
+ "stability": "stable",
15528
+ "summary": "Set the priority of the log error monitor."
15529
+ },
15530
+ "immutable": true,
15531
+ "locationInModule": {
15532
+ "filename": "src/watchfulv2/watchful.ts",
15533
+ "line": 22
15534
+ },
15535
+ "name": "priority",
15536
+ "optional": true,
15537
+ "type": {
15538
+ "primitive": "number"
15539
+ }
15540
+ }
15541
+ ],
15542
+ "symbolId": "src/watchfulv2/watchful:LogErrorMonitorProps"
15543
+ },
15544
+ "@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps": {
15545
+ "assembly": "@rio-cloud/cdk-v2-constructs",
15546
+ "datatype": true,
15547
+ "docs": {
15548
+ "stability": "stable",
15549
+ "summary": "Query error monitor props."
15550
+ },
15551
+ "fqn": "@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps",
15552
+ "kind": "interface",
15553
+ "locationInModule": {
15554
+ "filename": "src/watchfulv2/watchful.ts",
15555
+ "line": 37
15556
+ },
15557
+ "name": "QueryErrorMonitorProps",
15558
+ "namespace": "watchfulv2",
15559
+ "properties": [
15560
+ {
15561
+ "abstract": true,
15562
+ "docs": {
15563
+ "default": "3",
15564
+ "stability": "stable",
15565
+ "summary": "Set the priority of the log error monitor."
15566
+ },
15567
+ "immutable": true,
15568
+ "locationInModule": {
15569
+ "filename": "src/watchfulv2/watchful.ts",
15570
+ "line": 42
15571
+ },
15572
+ "name": "priority",
15573
+ "optional": true,
15574
+ "type": {
15575
+ "primitive": "number"
15576
+ }
15577
+ }
15578
+ ],
15579
+ "symbolId": "src/watchfulv2/watchful:QueryErrorMonitorProps"
15580
+ },
15429
15581
  "@rio-cloud/cdk-v2-constructs.watchfulv2.Watchful": {
15430
15582
  "assembly": "@rio-cloud/cdk-v2-constructs",
15431
15583
  "base": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
@@ -15441,7 +15593,7 @@
15441
15593
  },
15442
15594
  "locationInModule": {
15443
15595
  "filename": "src/watchfulv2/watchful.ts",
15444
- "line": 51
15596
+ "line": 102
15445
15597
  },
15446
15598
  "parameters": [
15447
15599
  {
@@ -15468,7 +15620,7 @@
15468
15620
  "kind": "class",
15469
15621
  "locationInModule": {
15470
15622
  "filename": "src/watchfulv2/watchful.ts",
15471
- "line": 46
15623
+ "line": 95
15472
15624
  },
15473
15625
  "methods": [
15474
15626
  {
@@ -15478,7 +15630,7 @@
15478
15630
  },
15479
15631
  "locationInModule": {
15480
15632
  "filename": "src/watchfulv2/watchful.ts",
15481
- "line": 64
15633
+ "line": 126
15482
15634
  },
15483
15635
  "name": "createAlarm",
15484
15636
  "overrides": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
@@ -15513,7 +15665,7 @@
15513
15665
  },
15514
15666
  "locationInModule": {
15515
15667
  "filename": "src/watchfulv2/watchful.ts",
15516
- "line": 83
15668
+ "line": 146
15517
15669
  },
15518
15670
  "name": "createLogAlarm",
15519
15671
  "overrides": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
@@ -15545,7 +15697,7 @@
15545
15697
  },
15546
15698
  "locationInModule": {
15547
15699
  "filename": "src/watchfulv2/watchful.ts",
15548
- "line": 108
15700
+ "line": 172
15549
15701
  },
15550
15702
  "name": "watchScope",
15551
15703
  "parameters": [
@@ -15573,7 +15725,7 @@
15573
15725
  "kind": "interface",
15574
15726
  "locationInModule": {
15575
15727
  "filename": "src/watchfulv2/watchful.ts",
15576
- "line": 11
15728
+ "line": 48
15577
15729
  },
15578
15730
  "name": "WatchfulProps",
15579
15731
  "namespace": "watchfulv2",
@@ -15582,13 +15734,14 @@
15582
15734
  "abstract": true,
15583
15735
  "docs": {
15584
15736
  "default": "{@link false }",
15585
- "stability": "stable",
15737
+ "deprecated": "This property has been deprecated. The propery has been instead nested into logErrorMonitorConfig. The functionality remains unchanged.",
15738
+ "stability": "deprecated",
15586
15739
  "summary": "Enable error log monitors creating cases in Datadog."
15587
15740
  },
15588
15741
  "immutable": true,
15589
15742
  "locationInModule": {
15590
15743
  "filename": "src/watchfulv2/watchful.ts",
15591
- "line": 31
15744
+ "line": 69
15592
15745
  },
15593
15746
  "name": "createCasesFromErrorLogMonitors",
15594
15747
  "optional": true,
@@ -15596,6 +15749,23 @@
15596
15749
  "primitive": "boolean"
15597
15750
  }
15598
15751
  },
15752
+ {
15753
+ "abstract": true,
15754
+ "docs": {
15755
+ "stability": "stable",
15756
+ "summary": "Configure log error monitor properties."
15757
+ },
15758
+ "immutable": true,
15759
+ "locationInModule": {
15760
+ "filename": "src/watchfulv2/watchful.ts",
15761
+ "line": 74
15762
+ },
15763
+ "name": "logErrorMonitorConfig",
15764
+ "optional": true,
15765
+ "type": {
15766
+ "fqn": "@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps"
15767
+ }
15768
+ },
15599
15769
  {
15600
15770
  "abstract": true,
15601
15771
  "docs": {
@@ -15606,7 +15776,7 @@
15606
15776
  "immutable": true,
15607
15777
  "locationInModule": {
15608
15778
  "filename": "src/watchfulv2/watchful.ts",
15609
- "line": 24
15779
+ "line": 61
15610
15780
  },
15611
15781
  "name": "notification",
15612
15782
  "optional": true,
@@ -15614,6 +15784,24 @@
15614
15784
  "fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.INotification"
15615
15785
  }
15616
15786
  },
15787
+ {
15788
+ "abstract": true,
15789
+ "docs": {
15790
+ "remarks": "All monitors created by watchful except for Log error monitor.\nConfigure property *logErrorMonitor* for Log error monitor.",
15791
+ "stability": "stable",
15792
+ "summary": "Configure query alert monitors."
15793
+ },
15794
+ "immutable": true,
15795
+ "locationInModule": {
15796
+ "filename": "src/watchfulv2/watchful.ts",
15797
+ "line": 80
15798
+ },
15799
+ "name": "queryErrorMonitorConfig",
15800
+ "optional": true,
15801
+ "type": {
15802
+ "fqn": "@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps"
15803
+ }
15804
+ },
15617
15805
  {
15618
15806
  "abstract": true,
15619
15807
  "docs": {
@@ -15624,7 +15812,7 @@
15624
15812
  "immutable": true,
15625
15813
  "locationInModule": {
15626
15814
  "filename": "src/watchfulv2/watchful.ts",
15627
- "line": 17
15815
+ "line": 54
15628
15816
  },
15629
15817
  "name": "serviceName",
15630
15818
  "optional": true,
@@ -15637,5 +15825,5 @@
15637
15825
  }
15638
15826
  },
15639
15827
  "version": "0.0.0",
15640
- "fingerprint": "H/ufZLVs0o4ILXI9qFPav7e6z2J6iAMeRxWCe3ORKn4="
15828
+ "fingerprint": "014ybqZVCozAMQGNRvRgvDPo+YwtzYvNzLwLVL8klzA="
15641
15829
  }