@rio-cloud/cdk-v2-constructs 7.13.12-alpha.1 → 7.14.0-alpha.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 +268 -3
- package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test-custom-resource/handler.cjs +16 -24
- package/lib/datadogv2/datadog-slo.d.ts +71 -0
- package/lib/datadogv2/datadog-slo.js +118 -0
- package/lib/datadogv2/index.d.ts +1 -0
- package/lib/datadogv2/index.js +2 -1
- package/lib/datadogv2/secret-locator-custom-resource/on-create.cjs +21 -29
- package/lib/datadogv2/service-catalog-custom-resource/on-create.cjs +16 -24
- package/lib/fargate/codedeploy-custom-resources/create-deployment-is-complete.cjs +16 -24
- package/lib/fargate/codedeploy-custom-resources/create-deployment-on-create.cjs +16 -24
- package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.cjs +11 -19
- package/node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/client-cloudformation/package.json +5 -5
- package/node_modules/@aws-sdk/client-codedeploy/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/client-codedeploy/package.json +5 -5
- package/node_modules/@aws-sdk/client-ecs/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/client-organizations/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/client-organizations/package.json +5 -5
- package/node_modules/@aws-sdk/client-secrets-manager/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/client-secrets-manager/package.json +5 -5
- package/node_modules/@aws-sdk/client-ssm/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/client-ssm/package.json +5 -5
- package/node_modules/@aws-sdk/core/dist-cjs/index.js +7 -15
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +7 -15
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +2 -8
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +5 -7
- package/node_modules/@aws-sdk/core/package.json +1 -1
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
- package/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
- package/node_modules/@smithy/abort-controller/package.json +2 -2
- package/node_modules/@smithy/config-resolver/package.json +6 -6
- package/node_modules/@smithy/core/package.json +11 -11
- package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
- package/node_modules/@smithy/fetch-http-handler/package.json +6 -6
- package/node_modules/@smithy/hash-node/package.json +4 -4
- package/node_modules/@smithy/invalid-dependency/package.json +2 -2
- package/node_modules/@smithy/is-array-buffer/package.json +2 -2
- package/node_modules/@smithy/middleware-content-length/package.json +3 -3
- package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
- package/node_modules/@smithy/middleware-retry/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@smithy/middleware-retry/package.json +9 -9
- package/node_modules/@smithy/middleware-serde/package.json +3 -3
- package/node_modules/@smithy/middleware-stack/package.json +2 -2
- package/node_modules/@smithy/node-config-provider/package.json +4 -4
- package/node_modules/@smithy/node-http-handler/package.json +5 -5
- package/node_modules/@smithy/property-provider/package.json +2 -2
- package/node_modules/@smithy/protocol-http/package.json +2 -2
- package/node_modules/@smithy/querystring-builder/package.json +3 -3
- package/node_modules/@smithy/querystring-parser/package.json +2 -2
- package/node_modules/@smithy/service-error-classification/package.json +2 -2
- package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
- package/node_modules/@smithy/signature-v4/package.json +8 -8
- package/node_modules/@smithy/smithy-client/package.json +7 -7
- package/node_modules/@smithy/url-parser/package.json +3 -3
- package/node_modules/@smithy/util-base64/package.json +4 -4
- package/node_modules/@smithy/util-body-length-browser/package.json +2 -2
- package/node_modules/@smithy/util-body-length-node/package.json +2 -2
- package/node_modules/@smithy/util-buffer-from/package.json +3 -3
- package/node_modules/@smithy/util-config-provider/package.json +2 -2
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
- package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
- package/node_modules/@smithy/util-endpoints/package.json +3 -3
- package/node_modules/@smithy/util-hex-encoding/package.json +2 -2
- package/node_modules/@smithy/util-middleware/package.json +2 -2
- package/node_modules/@smithy/util-stream/package.json +8 -8
- package/node_modules/@smithy/util-uri-escape/package.json +2 -2
- package/node_modules/@smithy/util-utf8/package.json +3 -3
- package/node_modules/@smithy/util-waiter/package.json +3 -3
- package/node_modules/@smithy/uuid/package.json +2 -2
- package/package.json +5 -5
- package/version.json +1 -1
package/.jsii
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@pepperize/cdk-autoscaling-gitlab-runner": "^0.2.624",
|
|
25
25
|
"aws-cdk-lib": "^2.241.0",
|
|
26
|
-
"constructs": "^10.5.
|
|
26
|
+
"constructs": "^10.5.1"
|
|
27
27
|
},
|
|
28
28
|
"dependencyClosure": {
|
|
29
29
|
"@aws-cdk/asset-awscli-v1": {
|
|
@@ -8672,7 +8672,7 @@
|
|
|
8672
8672
|
"stability": "stable"
|
|
8673
8673
|
},
|
|
8674
8674
|
"homepage": "https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/",
|
|
8675
|
-
"jsiiVersion": "5.
|
|
8675
|
+
"jsiiVersion": "5.9.31 (build 550e607)",
|
|
8676
8676
|
"keywords": [
|
|
8677
8677
|
"cdk"
|
|
8678
8678
|
],
|
|
@@ -23622,6 +23622,271 @@
|
|
|
23622
23622
|
],
|
|
23623
23623
|
"symbolId": "src/datadogv2/datadog-shared-secrets:DatadogSharedSecret"
|
|
23624
23624
|
},
|
|
23625
|
+
"@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSlo": {
|
|
23626
|
+
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
23627
|
+
"base": "constructs.Construct",
|
|
23628
|
+
"docs": {
|
|
23629
|
+
"remarks": "Currently only SLOs of Type Monitor are implemented.",
|
|
23630
|
+
"stability": "stable",
|
|
23631
|
+
"summary": "Wrapper around Datadog's CloudFormation `Datadog::SLOs::SLO` with some RIO defaults applied."
|
|
23632
|
+
},
|
|
23633
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSlo",
|
|
23634
|
+
"initializer": {
|
|
23635
|
+
"docs": {
|
|
23636
|
+
"stability": "stable"
|
|
23637
|
+
},
|
|
23638
|
+
"locationInModule": {
|
|
23639
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23640
|
+
"line": 100
|
|
23641
|
+
},
|
|
23642
|
+
"parameters": [
|
|
23643
|
+
{
|
|
23644
|
+
"name": "scope",
|
|
23645
|
+
"type": {
|
|
23646
|
+
"fqn": "constructs.Construct"
|
|
23647
|
+
}
|
|
23648
|
+
},
|
|
23649
|
+
{
|
|
23650
|
+
"name": "id",
|
|
23651
|
+
"type": {
|
|
23652
|
+
"primitive": "string"
|
|
23653
|
+
}
|
|
23654
|
+
},
|
|
23655
|
+
{
|
|
23656
|
+
"name": "props",
|
|
23657
|
+
"type": {
|
|
23658
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSloProps"
|
|
23659
|
+
}
|
|
23660
|
+
}
|
|
23661
|
+
]
|
|
23662
|
+
},
|
|
23663
|
+
"kind": "class",
|
|
23664
|
+
"locationInModule": {
|
|
23665
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23666
|
+
"line": 97
|
|
23667
|
+
},
|
|
23668
|
+
"name": "DatadogSlo",
|
|
23669
|
+
"namespace": "datadogv2",
|
|
23670
|
+
"properties": [
|
|
23671
|
+
{
|
|
23672
|
+
"docs": {
|
|
23673
|
+
"stability": "stable"
|
|
23674
|
+
},
|
|
23675
|
+
"immutable": true,
|
|
23676
|
+
"locationInModule": {
|
|
23677
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23678
|
+
"line": 147
|
|
23679
|
+
},
|
|
23680
|
+
"name": "sloId",
|
|
23681
|
+
"type": {
|
|
23682
|
+
"primitive": "string"
|
|
23683
|
+
}
|
|
23684
|
+
}
|
|
23685
|
+
],
|
|
23686
|
+
"symbolId": "src/datadogv2/datadog-slo:DatadogSlo"
|
|
23687
|
+
},
|
|
23688
|
+
"@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSloProps": {
|
|
23689
|
+
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
23690
|
+
"datatype": true,
|
|
23691
|
+
"docs": {
|
|
23692
|
+
"stability": "stable",
|
|
23693
|
+
"summary": "Properties of {@link DatadogSlo}."
|
|
23694
|
+
},
|
|
23695
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSloProps",
|
|
23696
|
+
"kind": "interface",
|
|
23697
|
+
"locationInModule": {
|
|
23698
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23699
|
+
"line": 13
|
|
23700
|
+
},
|
|
23701
|
+
"name": "DatadogSloProps",
|
|
23702
|
+
"namespace": "datadogv2",
|
|
23703
|
+
"properties": [
|
|
23704
|
+
{
|
|
23705
|
+
"abstract": true,
|
|
23706
|
+
"docs": {
|
|
23707
|
+
"stability": "stable",
|
|
23708
|
+
"summary": "The criticality level for the SLO as defined at [Capabilities - RIO Tech Platform Docs - MAN Confluence PRD](https://confluence.collaboration-man.com/x/nLUSEw)."
|
|
23709
|
+
},
|
|
23710
|
+
"immutable": true,
|
|
23711
|
+
"locationInModule": {
|
|
23712
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23713
|
+
"line": 35
|
|
23714
|
+
},
|
|
23715
|
+
"name": "criticality",
|
|
23716
|
+
"type": {
|
|
23717
|
+
"primitive": "string"
|
|
23718
|
+
}
|
|
23719
|
+
},
|
|
23720
|
+
{
|
|
23721
|
+
"abstract": true,
|
|
23722
|
+
"docs": {
|
|
23723
|
+
"remarks": "Each entry must be a numeric string (for example \"1234567\").",
|
|
23724
|
+
"stability": "stable",
|
|
23725
|
+
"summary": "The Datadog monitor IDs used to calculate the SLO."
|
|
23726
|
+
},
|
|
23727
|
+
"immutable": true,
|
|
23728
|
+
"locationInModule": {
|
|
23729
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23730
|
+
"line": 25
|
|
23731
|
+
},
|
|
23732
|
+
"name": "monitorsIds",
|
|
23733
|
+
"type": {
|
|
23734
|
+
"collection": {
|
|
23735
|
+
"elementtype": {
|
|
23736
|
+
"primitive": "string"
|
|
23737
|
+
},
|
|
23738
|
+
"kind": "array"
|
|
23739
|
+
}
|
|
23740
|
+
}
|
|
23741
|
+
},
|
|
23742
|
+
{
|
|
23743
|
+
"abstract": true,
|
|
23744
|
+
"docs": {
|
|
23745
|
+
"stability": "stable",
|
|
23746
|
+
"summary": "The name of the SLO in Datadog."
|
|
23747
|
+
},
|
|
23748
|
+
"immutable": true,
|
|
23749
|
+
"locationInModule": {
|
|
23750
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23751
|
+
"line": 18
|
|
23752
|
+
},
|
|
23753
|
+
"name": "name",
|
|
23754
|
+
"type": {
|
|
23755
|
+
"primitive": "string"
|
|
23756
|
+
}
|
|
23757
|
+
},
|
|
23758
|
+
{
|
|
23759
|
+
"abstract": true,
|
|
23760
|
+
"docs": {
|
|
23761
|
+
"remarks": "Only \"monitor\" is supported for now.\nStill this property is required to make future extensions more seamless.",
|
|
23762
|
+
"stability": "stable",
|
|
23763
|
+
"summary": "The SLO type."
|
|
23764
|
+
},
|
|
23765
|
+
"immutable": true,
|
|
23766
|
+
"locationInModule": {
|
|
23767
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23768
|
+
"line": 48
|
|
23769
|
+
},
|
|
23770
|
+
"name": "sloType",
|
|
23771
|
+
"type": {
|
|
23772
|
+
"primitive": "string"
|
|
23773
|
+
}
|
|
23774
|
+
},
|
|
23775
|
+
{
|
|
23776
|
+
"abstract": true,
|
|
23777
|
+
"docs": {
|
|
23778
|
+
"remarks": "This is used for filtering SLOs in dashboards.",
|
|
23779
|
+
"stability": "stable",
|
|
23780
|
+
"summary": "The product stream that this SLO belongs to."
|
|
23781
|
+
},
|
|
23782
|
+
"immutable": true,
|
|
23783
|
+
"locationInModule": {
|
|
23784
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23785
|
+
"line": 30
|
|
23786
|
+
},
|
|
23787
|
+
"name": "stream",
|
|
23788
|
+
"type": {
|
|
23789
|
+
"primitive": "string"
|
|
23790
|
+
}
|
|
23791
|
+
},
|
|
23792
|
+
{
|
|
23793
|
+
"abstract": true,
|
|
23794
|
+
"docs": {
|
|
23795
|
+
"remarks": "Unless you have a specific use case it is recommended to use defaultThresholds(...).",
|
|
23796
|
+
"stability": "stable",
|
|
23797
|
+
"summary": "Threshold definitions applied to the SLO."
|
|
23798
|
+
},
|
|
23799
|
+
"immutable": true,
|
|
23800
|
+
"locationInModule": {
|
|
23801
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23802
|
+
"line": 42
|
|
23803
|
+
},
|
|
23804
|
+
"name": "thresholds",
|
|
23805
|
+
"type": {
|
|
23806
|
+
"collection": {
|
|
23807
|
+
"elementtype": {
|
|
23808
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSloThreshold"
|
|
23809
|
+
},
|
|
23810
|
+
"kind": "array"
|
|
23811
|
+
}
|
|
23812
|
+
}
|
|
23813
|
+
},
|
|
23814
|
+
{
|
|
23815
|
+
"abstract": true,
|
|
23816
|
+
"docs": {
|
|
23817
|
+
"remarks": "Each entry must follow the \"key:value\" format.",
|
|
23818
|
+
"stability": "stable",
|
|
23819
|
+
"summary": "Additional tags to apply to the SLO."
|
|
23820
|
+
},
|
|
23821
|
+
"immutable": true,
|
|
23822
|
+
"locationInModule": {
|
|
23823
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23824
|
+
"line": 55
|
|
23825
|
+
},
|
|
23826
|
+
"name": "extraTags",
|
|
23827
|
+
"optional": true,
|
|
23828
|
+
"type": {
|
|
23829
|
+
"collection": {
|
|
23830
|
+
"elementtype": {
|
|
23831
|
+
"primitive": "string"
|
|
23832
|
+
},
|
|
23833
|
+
"kind": "array"
|
|
23834
|
+
}
|
|
23835
|
+
}
|
|
23836
|
+
}
|
|
23837
|
+
],
|
|
23838
|
+
"symbolId": "src/datadogv2/datadog-slo:DatadogSloProps"
|
|
23839
|
+
},
|
|
23840
|
+
"@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSloThreshold": {
|
|
23841
|
+
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
23842
|
+
"datatype": true,
|
|
23843
|
+
"docs": {
|
|
23844
|
+
"stability": "stable"
|
|
23845
|
+
},
|
|
23846
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSloThreshold",
|
|
23847
|
+
"kind": "interface",
|
|
23848
|
+
"locationInModule": {
|
|
23849
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23850
|
+
"line": 58
|
|
23851
|
+
},
|
|
23852
|
+
"name": "DatadogSloThreshold",
|
|
23853
|
+
"namespace": "datadogv2",
|
|
23854
|
+
"properties": [
|
|
23855
|
+
{
|
|
23856
|
+
"abstract": true,
|
|
23857
|
+
"docs": {
|
|
23858
|
+
"stability": "stable",
|
|
23859
|
+
"summary": "The target percentage for the SLO (for example 99.5)."
|
|
23860
|
+
},
|
|
23861
|
+
"immutable": true,
|
|
23862
|
+
"locationInModule": {
|
|
23863
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23864
|
+
"line": 63
|
|
23865
|
+
},
|
|
23866
|
+
"name": "targetPercentage",
|
|
23867
|
+
"type": {
|
|
23868
|
+
"primitive": "number"
|
|
23869
|
+
}
|
|
23870
|
+
},
|
|
23871
|
+
{
|
|
23872
|
+
"abstract": true,
|
|
23873
|
+
"docs": {
|
|
23874
|
+
"stability": "stable",
|
|
23875
|
+
"summary": "The timeframe for the target (for example \"7d\", \"30d\", \"90d\")."
|
|
23876
|
+
},
|
|
23877
|
+
"immutable": true,
|
|
23878
|
+
"locationInModule": {
|
|
23879
|
+
"filename": "src/datadogv2/datadog-slo.ts",
|
|
23880
|
+
"line": 68
|
|
23881
|
+
},
|
|
23882
|
+
"name": "timeframe",
|
|
23883
|
+
"type": {
|
|
23884
|
+
"primitive": "string"
|
|
23885
|
+
}
|
|
23886
|
+
}
|
|
23887
|
+
],
|
|
23888
|
+
"symbolId": "src/datadogv2/datadog-slo:DatadogSloThreshold"
|
|
23889
|
+
},
|
|
23625
23890
|
"@rio-cloud/cdk-v2-constructs.datadogv2.DefaultSlackNotification": {
|
|
23626
23891
|
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
23627
23892
|
"docs": {
|
|
@@ -27528,5 +27793,5 @@
|
|
|
27528
27793
|
}
|
|
27529
27794
|
},
|
|
27530
27795
|
"version": "0.0.0",
|
|
27531
|
-
"fingerprint": "
|
|
27796
|
+
"fingerprint": "KOBrD6MG1FTa5/Mcw2GQt+DYEYv9cb94xntV51wt0H8="
|
|
27532
27797
|
}
|
|
@@ -10855,22 +10855,16 @@ var init_JsonShapeDeserializer = __esm({
|
|
|
10855
10855
|
if (Array.isArray(value) && ns.isListSchema()) {
|
|
10856
10856
|
const listMember = ns.getValueSchema();
|
|
10857
10857
|
const out = [];
|
|
10858
|
-
const sparse = !!ns.getMergedTraits().sparse;
|
|
10859
10858
|
for (const item of value) {
|
|
10860
|
-
|
|
10861
|
-
out.push(this._read(listMember, item));
|
|
10862
|
-
}
|
|
10859
|
+
out.push(this._read(listMember, item));
|
|
10863
10860
|
}
|
|
10864
10861
|
return out;
|
|
10865
10862
|
}
|
|
10866
10863
|
if (ns.isMapSchema()) {
|
|
10867
10864
|
const mapMember = ns.getValueSchema();
|
|
10868
10865
|
const out = {};
|
|
10869
|
-
const sparse = !!ns.getMergedTraits().sparse;
|
|
10870
10866
|
for (const [_k, _v] of Object.entries(value)) {
|
|
10871
|
-
|
|
10872
|
-
out[_k] = this._read(mapMember, _v);
|
|
10873
|
-
}
|
|
10867
|
+
out[_k] = this._read(mapMember, _v);
|
|
10874
10868
|
}
|
|
10875
10869
|
return out;
|
|
10876
10870
|
}
|
|
@@ -12529,18 +12523,18 @@ var init_XmlShapeDeserializer = __esm({
|
|
|
12529
12523
|
return value;
|
|
12530
12524
|
}
|
|
12531
12525
|
if (typeof value === "object") {
|
|
12532
|
-
const sparse = !!traits.sparse;
|
|
12533
12526
|
const flat = !!traits.xmlFlattened;
|
|
12534
12527
|
if (ns.isListSchema()) {
|
|
12535
12528
|
const listValue = ns.getValueSchema();
|
|
12536
12529
|
const buffer2 = [];
|
|
12537
12530
|
const sourceKey = listValue.getMergedTraits().xmlName ?? "member";
|
|
12538
12531
|
const source = flat ? value : (value[0] ?? value)[sourceKey];
|
|
12532
|
+
if (source == null) {
|
|
12533
|
+
return buffer2;
|
|
12534
|
+
}
|
|
12539
12535
|
const sourceArray = Array.isArray(source) ? source : [source];
|
|
12540
12536
|
for (const v5 of sourceArray) {
|
|
12541
|
-
|
|
12542
|
-
buffer2.push(this.readSchema(listValue, v5));
|
|
12543
|
-
}
|
|
12537
|
+
buffer2.push(this.readSchema(listValue, v5));
|
|
12544
12538
|
}
|
|
12545
12539
|
return buffer2;
|
|
12546
12540
|
}
|
|
@@ -12559,9 +12553,7 @@ var init_XmlShapeDeserializer = __esm({
|
|
|
12559
12553
|
for (const entry of entries) {
|
|
12560
12554
|
const key = entry[keyProperty];
|
|
12561
12555
|
const value2 = entry[valueProperty];
|
|
12562
|
-
|
|
12563
|
-
buffer[key] = this.readSchema(memberNs, value2);
|
|
12564
|
-
}
|
|
12556
|
+
buffer[key] = this.readSchema(memberNs, value2);
|
|
12565
12557
|
}
|
|
12566
12558
|
return buffer;
|
|
12567
12559
|
}
|
|
@@ -15318,7 +15310,7 @@ var require_package = __commonJS({
|
|
|
15318
15310
|
module2.exports = {
|
|
15319
15311
|
name: "@aws-sdk/client-secrets-manager",
|
|
15320
15312
|
description: "AWS SDK for JavaScript Secrets Manager Client for Node.js, Browser and React Native",
|
|
15321
|
-
version: "3.
|
|
15313
|
+
version: "3.1002.0",
|
|
15322
15314
|
scripts: {
|
|
15323
15315
|
build: "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
15324
15316
|
"build:cjs": "node ../../scripts/compilation/inline client-secrets-manager",
|
|
@@ -15342,17 +15334,17 @@ var require_package = __commonJS({
|
|
|
15342
15334
|
dependencies: {
|
|
15343
15335
|
"@aws-crypto/sha256-browser": "5.2.0",
|
|
15344
15336
|
"@aws-crypto/sha256-js": "5.2.0",
|
|
15345
|
-
"@aws-sdk/core": "^3.973.
|
|
15346
|
-
"@aws-sdk/credential-provider-node": "^3.972.
|
|
15337
|
+
"@aws-sdk/core": "^3.973.17",
|
|
15338
|
+
"@aws-sdk/credential-provider-node": "^3.972.16",
|
|
15347
15339
|
"@aws-sdk/middleware-host-header": "^3.972.6",
|
|
15348
15340
|
"@aws-sdk/middleware-logger": "^3.972.6",
|
|
15349
15341
|
"@aws-sdk/middleware-recursion-detection": "^3.972.6",
|
|
15350
|
-
"@aws-sdk/middleware-user-agent": "^3.972.
|
|
15342
|
+
"@aws-sdk/middleware-user-agent": "^3.972.17",
|
|
15351
15343
|
"@aws-sdk/region-config-resolver": "^3.972.6",
|
|
15352
15344
|
"@aws-sdk/types": "^3.973.4",
|
|
15353
15345
|
"@aws-sdk/util-endpoints": "^3.996.3",
|
|
15354
15346
|
"@aws-sdk/util-user-agent-browser": "^3.972.6",
|
|
15355
|
-
"@aws-sdk/util-user-agent-node": "^3.973.
|
|
15347
|
+
"@aws-sdk/util-user-agent-node": "^3.973.2",
|
|
15356
15348
|
"@smithy/config-resolver": "^4.4.9",
|
|
15357
15349
|
"@smithy/core": "^3.23.7",
|
|
15358
15350
|
"@smithy/fetch-http-handler": "^5.3.12",
|
|
@@ -16099,7 +16091,7 @@ var init_package = __esm({
|
|
|
16099
16091
|
"node_modules/@aws-sdk/nested-clients/package.json"() {
|
|
16100
16092
|
package_default = {
|
|
16101
16093
|
name: "@aws-sdk/nested-clients",
|
|
16102
|
-
version: "3.996.
|
|
16094
|
+
version: "3.996.5",
|
|
16103
16095
|
description: "Nested clients for AWS SDK packages.",
|
|
16104
16096
|
main: "./dist-cjs/index.js",
|
|
16105
16097
|
module: "./dist-es/index.js",
|
|
@@ -16128,16 +16120,16 @@ var init_package = __esm({
|
|
|
16128
16120
|
dependencies: {
|
|
16129
16121
|
"@aws-crypto/sha256-browser": "5.2.0",
|
|
16130
16122
|
"@aws-crypto/sha256-js": "5.2.0",
|
|
16131
|
-
"@aws-sdk/core": "^3.973.
|
|
16123
|
+
"@aws-sdk/core": "^3.973.17",
|
|
16132
16124
|
"@aws-sdk/middleware-host-header": "^3.972.6",
|
|
16133
16125
|
"@aws-sdk/middleware-logger": "^3.972.6",
|
|
16134
16126
|
"@aws-sdk/middleware-recursion-detection": "^3.972.6",
|
|
16135
|
-
"@aws-sdk/middleware-user-agent": "^3.972.
|
|
16127
|
+
"@aws-sdk/middleware-user-agent": "^3.972.17",
|
|
16136
16128
|
"@aws-sdk/region-config-resolver": "^3.972.6",
|
|
16137
16129
|
"@aws-sdk/types": "^3.973.4",
|
|
16138
16130
|
"@aws-sdk/util-endpoints": "^3.996.3",
|
|
16139
16131
|
"@aws-sdk/util-user-agent-browser": "^3.972.6",
|
|
16140
|
-
"@aws-sdk/util-user-agent-node": "^3.973.
|
|
16132
|
+
"@aws-sdk/util-user-agent-node": "^3.973.2",
|
|
16141
16133
|
"@smithy/config-resolver": "^4.4.9",
|
|
16142
16134
|
"@smithy/core": "^3.23.7",
|
|
16143
16135
|
"@smithy/fetch-http-handler": "^5.3.12",
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
/**
|
|
3
|
+
* SLO criticality levels used to select default threshold targets.
|
|
4
|
+
*/
|
|
5
|
+
export type CriticalityLevel = 'high' | 'medium' | 'low';
|
|
6
|
+
/**
|
|
7
|
+
* Properties of {@link DatadogSlo}
|
|
8
|
+
*/
|
|
9
|
+
export interface DatadogSloProps {
|
|
10
|
+
/**
|
|
11
|
+
* The name of the SLO in Datadog.
|
|
12
|
+
*/
|
|
13
|
+
readonly name: string;
|
|
14
|
+
/**
|
|
15
|
+
* The Datadog monitor IDs used to calculate the SLO.
|
|
16
|
+
*
|
|
17
|
+
* Each entry must be a numeric string (for example "1234567").
|
|
18
|
+
*/
|
|
19
|
+
readonly monitorsIds: string[];
|
|
20
|
+
/**
|
|
21
|
+
* The product stream that this SLO belongs to. This is used for filtering SLOs in dashboards.
|
|
22
|
+
*/
|
|
23
|
+
readonly stream: 'platform' | 'shipper' | 'transport';
|
|
24
|
+
/**
|
|
25
|
+
* The criticality level for the SLO as defined at [Capabilities - RIO Tech Platform Docs - MAN Confluence PRD](https://confluence.collaboration-man.com/x/nLUSEw).
|
|
26
|
+
*/
|
|
27
|
+
readonly criticality: CriticalityLevel;
|
|
28
|
+
/**
|
|
29
|
+
* Threshold definitions applied to the SLO.
|
|
30
|
+
*
|
|
31
|
+
* Unless you have a specific use case it is recommended to use defaultThresholds(...).
|
|
32
|
+
*/
|
|
33
|
+
readonly thresholds: DatadogSloThreshold[];
|
|
34
|
+
/**
|
|
35
|
+
* The SLO type. Only "monitor" is supported for now.
|
|
36
|
+
* Still this property is required to make future extensions more seamless.
|
|
37
|
+
*/
|
|
38
|
+
readonly sloType: 'monitor';
|
|
39
|
+
/**
|
|
40
|
+
* Additional tags to apply to the SLO.
|
|
41
|
+
*
|
|
42
|
+
* Each entry must follow the "key:value" format.
|
|
43
|
+
*/
|
|
44
|
+
readonly extraTags?: string[];
|
|
45
|
+
}
|
|
46
|
+
export interface DatadogSloThreshold {
|
|
47
|
+
/**
|
|
48
|
+
* The target percentage for the SLO (for example 99.5).
|
|
49
|
+
*/
|
|
50
|
+
readonly targetPercentage: number;
|
|
51
|
+
/**
|
|
52
|
+
* The timeframe for the target (for example "7d", "30d", "90d").
|
|
53
|
+
*/
|
|
54
|
+
readonly timeframe: DatadogSloTimeframe;
|
|
55
|
+
}
|
|
56
|
+
export declare const DATADOG_SLO_TIMEFRAMES: readonly ["7d", "30d", "90d"];
|
|
57
|
+
export type DatadogSloTimeframe = typeof DATADOG_SLO_TIMEFRAMES[number];
|
|
58
|
+
/**
|
|
59
|
+
* Generate default SLO thresholds for a given criticality level.
|
|
60
|
+
*/
|
|
61
|
+
export declare function defaultThresholds(level: CriticalityLevel): DatadogSloThreshold[];
|
|
62
|
+
/**
|
|
63
|
+
* Wrapper around Datadog's CloudFormation `Datadog::SLOs::SLO` with some RIO defaults applied.
|
|
64
|
+
*
|
|
65
|
+
* Currently only SLOs of Type Monitor are implemented.
|
|
66
|
+
*/
|
|
67
|
+
export declare class DatadogSlo extends Construct {
|
|
68
|
+
private readonly slo;
|
|
69
|
+
constructor(scope: Construct, id: string, props: DatadogSloProps);
|
|
70
|
+
get sloId(): string;
|
|
71
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DatadogSlo = exports.DATADOG_SLO_TIMEFRAMES = void 0;
|
|
5
|
+
exports.defaultThresholds = defaultThresholds;
|
|
6
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
7
|
+
const cdk = require("aws-cdk-lib");
|
|
8
|
+
const constructs_1 = require("constructs");
|
|
9
|
+
const rio_landing_zone_1 = require("../rio-landing-zone");
|
|
10
|
+
exports.DATADOG_SLO_TIMEFRAMES = ['7d', '30d', '90d'];
|
|
11
|
+
/**
|
|
12
|
+
* Generate default SLO thresholds for a given criticality level.
|
|
13
|
+
*/
|
|
14
|
+
function defaultThresholds(level) {
|
|
15
|
+
// [Capabilities - RIO Tech Platform Docs - MAN Confluence PRD](https://confluence.collaboration-man.com/x/nLUSEw)
|
|
16
|
+
const targets = {
|
|
17
|
+
high: 99.5,
|
|
18
|
+
medium: 98,
|
|
19
|
+
low: 95,
|
|
20
|
+
};
|
|
21
|
+
return exports.DATADOG_SLO_TIMEFRAMES.map((timeframe) => ({
|
|
22
|
+
targetPercentage: targets[level],
|
|
23
|
+
timeframe: timeframe,
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Wrapper around Datadog's CloudFormation `Datadog::SLOs::SLO` with some RIO defaults applied.
|
|
28
|
+
*
|
|
29
|
+
* Currently only SLOs of Type Monitor are implemented.
|
|
30
|
+
*/
|
|
31
|
+
class DatadogSlo extends constructs_1.Construct {
|
|
32
|
+
constructor(scope, id, props) {
|
|
33
|
+
super(scope, id);
|
|
34
|
+
validateName(props.name);
|
|
35
|
+
validateStream(props.stream);
|
|
36
|
+
validateMonitorsIds(props.monitorsIds);
|
|
37
|
+
validateThresholds(props.thresholds);
|
|
38
|
+
validateType(props.sloType);
|
|
39
|
+
validateCustomTags(props.extraTags);
|
|
40
|
+
if (!matchesDefaultThresholdsForCriticality(props.criticality, props.thresholds)) {
|
|
41
|
+
cdk.Annotations.of(this).addWarning('DatadogSlo thresholds do not match the defaults for the specified criticality level.');
|
|
42
|
+
}
|
|
43
|
+
const teamName = rio_landing_zone_1.RioLandingZone.getTeamNameParameter(this);
|
|
44
|
+
const teamIdentifier = rio_landing_zone_1.RioLandingZone.getTeamIdentifierParameter(this);
|
|
45
|
+
const accountName = rio_landing_zone_1.RioLandingZone.getAccountNameParameter(this);
|
|
46
|
+
// Cloudformation expects uppercase property keys
|
|
47
|
+
const thresholdsForCfn = props.thresholds.map(({ targetPercentage, timeframe }) => ({
|
|
48
|
+
Target: targetPercentage,
|
|
49
|
+
Timeframe: timeframe,
|
|
50
|
+
}));
|
|
51
|
+
// https://github.com/DataDog/datadog-cloudformation-resources/tree/master/datadog-slos-slo-handler
|
|
52
|
+
this.slo = new cdk.CfnResource(this, 'SLO', {
|
|
53
|
+
type: 'Datadog::SLOs::SLO',
|
|
54
|
+
properties: {
|
|
55
|
+
Name: props.name,
|
|
56
|
+
Type: props.sloType,
|
|
57
|
+
MonitorIds: props.monitorsIds,
|
|
58
|
+
Thresholds: thresholdsForCfn,
|
|
59
|
+
Tags: [
|
|
60
|
+
...(props.extraTags ?? []),
|
|
61
|
+
`criticality:${props.criticality}`,
|
|
62
|
+
`stream:${props.stream}`,
|
|
63
|
+
`account_id:${cdk.Stack.of(this).account}`,
|
|
64
|
+
`account_name:${accountName.stringValue}`,
|
|
65
|
+
`team:${teamName.stringValue}`,
|
|
66
|
+
`team_identifier:${teamIdentifier.stringValue}`,
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
get sloId() {
|
|
72
|
+
return cdk.Fn.ref(this.slo.logicalId);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.DatadogSlo = DatadogSlo;
|
|
76
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
77
|
+
DatadogSlo[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSlo", version: "0.0.0" };
|
|
78
|
+
function validateName(name) {
|
|
79
|
+
if (!name.trim()) {
|
|
80
|
+
throw new Error('DatadogSlo name must be non-empty.');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function validateStream(stream) {
|
|
84
|
+
if (!stream.trim()) {
|
|
85
|
+
throw new Error('DatadogSlo stream must be non-empty.');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function validateMonitorsIds(monitorsIds) {
|
|
89
|
+
if (monitorsIds.length === 0) {
|
|
90
|
+
throw new Error('DatadogSlo monitorsIds must include at least one monitor ID.');
|
|
91
|
+
}
|
|
92
|
+
if (monitorsIds.some((id) => !/^\d+$/.test(id))) {
|
|
93
|
+
throw new Error('DatadogSlo monitorsIds must contain only numeric values.');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function validateThresholds(thresholds) {
|
|
97
|
+
if (thresholds.length === 0) {
|
|
98
|
+
throw new Error('DatadogSlo thresholds must include at least one threshold.');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function validateType(type) {
|
|
102
|
+
if (type !== undefined && type !== 'monitor') {
|
|
103
|
+
throw new Error('DatadogSlo type must be "monitor".');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function matchesDefaultThresholdsForCriticality(level, thresholds) {
|
|
107
|
+
const defaultValues = defaultThresholds(level);
|
|
108
|
+
return JSON.stringify(defaultValues) === JSON.stringify(thresholds);
|
|
109
|
+
}
|
|
110
|
+
function validateCustomTags(customTags) {
|
|
111
|
+
if (customTags?.some((tag) => !tag.trim())) {
|
|
112
|
+
throw new Error('DatadogSlo customTags must not contain empty values.');
|
|
113
|
+
}
|
|
114
|
+
if (customTags?.some((tag) => !/^[^:]+:.+$/.test(tag))) {
|
|
115
|
+
throw new Error('DatadogSlo customTags must follow the "key:value" format.');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zbG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWRvZ3YyL2RhdGFkb2ctc2xvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUE2RUEsOENBWUM7O0FBekZELG1DQUFtQztBQUNuQywyQ0FBdUM7QUFDdkMsMERBQXFEO0FBb0V4QyxRQUFBLHNCQUFzQixHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQVUsQ0FBQztBQUlwRTs7R0FFRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEtBQXVCO0lBQ3ZELGtIQUFrSDtJQUNsSCxNQUFNLE9BQU8sR0FBcUM7UUFDaEQsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLEdBQUcsRUFBRSxFQUFFO0tBQ1IsQ0FBQztJQUVGLE9BQU8sOEJBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDaEMsU0FBUyxFQUFFLFNBQVM7S0FDckIsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBR3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxT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RCxTQUFTLGtCQUFrQixDQUFDLFVBQWlDO0lBQzNELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFDaEYsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFnQjtJQUNwQyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUN4RCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsc0NBQXNDLENBQUMsS0FBdUIsRUFBRSxVQUFpQztJQUN4RyxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxVQUFxQjtJQUMvQyxJQUFJLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNELElBQUksVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDL0UsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vKipcbiAqIFNMTyBjcml0aWNhbGl0eSBsZXZlbHMgdXNlZCB0byBzZWxlY3QgZGVmYXVsdCB0aHJlc2hvbGQgdGFyZ2V0cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ3JpdGljYWxpdHlMZXZlbCA9ICdoaWdoJyB8ICdtZWRpdW0nIHwgJ2xvdyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiB7QGxpbmsgRGF0YWRvZ1Nsb31cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nU2xvUHJvcHMge1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgU0xPIGluIERhdGFkb2cuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBEYXRhZG9nIG1vbml0b3IgSURzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBTTE8uXG4gICAqXG4gICAqIEVhY2ggZW50cnkgbXVzdCBiZSBhIG51bWVyaWMgc3RyaW5nIChmb3IgZXhhbXBsZSBcIjEyMzQ1NjdcIikuXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yc0lkczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9kdWN0IHN0cmVhbSB0aGF0IHRoaXMgU0xPIGJlbG9uZ3MgdG8uIFRoaXMgaXMgdXNlZCBmb3IgZmlsdGVyaW5nIFNMT3MgaW4gZGFzaGJvYXJkcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0cmVhbTogJ3BsYXRmb3JtJyB8ICdzaGlwcGVyJyB8ICd0cmFuc3BvcnQnO1xuXG4gIC8qKlxuICAgKiBUaGUgY3JpdGljYWxpdHkgbGV2ZWwgZm9yIHRoZSBTTE8gYXMgZGVmaW5lZCBhdCBbQ2FwYWJpbGl0aWVzIC0gUklPIFRlY2ggUGxhdGZvcm0gRG9jcyAtIE1BTiBDb25mbHVlbmNlIFBSRF0oaHR0cHM6Ly9jb25mbHVlbmNlLmNvbGxhYm9yYXRpb24tbWFuLmNvbS94L25MVVNFdykuXG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbGl0eTogQ3JpdGljYWxpdHlMZXZlbDtcblxuICAvKipcbiAgICogVGhyZXNob2xkIGRlZmluaXRpb25zIGFwcGxpZWQgdG8gdGhlIFNMTy5cbiAgICpcbiAgICogVW5sZXNzIHlvdSBoYXZlIGEgc3BlY2lmaWMgdXNlIGNhc2UgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIGRlZmF1bHRUaHJlc2hvbGRzKC4uLikuXG4gICAqL1xuICByZWFkb25seSB0aHJlc2hvbGRzOiBEYXRhZG9nU2xvVGhyZXNob2xkW107XG5cbiAgLyoqXG4gICAqIFRoZSBTTE8gdHlwZS4gT25seSBcIm1vbml0b3JcIiBpcyBzdXBwb3J0ZWQgZm9yIG5vdy5cbiAgICogU3RpbGwgdGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB0byBtYWtlIGZ1dHVyZSBleHRlbnNpb25zIG1vcmUgc2VhbWxlc3MuXG4gICAqL1xuICByZWFkb25seSBzbG9UeXBlOiAnbW9uaXRvcic7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgdGFncyB0byBhcHBseSB0byB0aGUgU0xPLlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IG11c3QgZm9sbG93IHRoZSBcImtleTp2YWx1ZVwiIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhVGFncz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dTbG9UaHJlc2hvbGQge1xuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IHBlcmNlbnRhZ2UgZm9yIHRoZSBTTE8gKGZvciBleGFtcGxlIDk5LjUpLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0UGVyY2VudGFnZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZWZyYW1lIGZvciB0aGUgdGFyZ2V0IChmb3IgZXhhbXBsZSBcIjdkXCIsIFwiMzBkXCIsIFwiOTBkXCIpLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZWZyYW1lOiBEYXRhZG9nU2xvVGltZWZyYW1lO1xufVxuXG5leHBvcnQgY29uc3QgREFUQURPR19TTE9fVElNRUZSQU1FUyA9IFsnN2QnLCAnMzBkJywgJzkwZCddIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBEYXRhZG9nU2xvVGltZWZyYW1lID0gdHlwZW9mIERBVEFET0dfU0xPX1RJTUVGUkFNRVNbbnVtYmVyXTtcblxuLyoqXG4gKiBHZW5lcmF0ZSBkZWZhdWx0IFNMTyB0aHJlc2hvbGRzIGZvciBhIGdpdmVuIGNyaXRpY2FsaXR5IGxldmVsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFRocmVzaG9sZHMobGV2ZWw6IENyaXRpY2FsaXR5TGV2ZWwpOiBEYXRhZG9nU2xvVGhyZXNob2xkW10ge1xuICAvLyBbQ2FwYWJpbGl0aWVzIC0gUklPIFRlY2ggUGxhdGZvcm0gRG9jcyAtIE1BTiBDb25mbHVlbmNlIFBSRF0oaHR0cHM6Ly9jb25mbHVlbmNlLmNvbGxhYm9yYXRpb24tbWFuLmNvbS94L25MVVNFdylcbiAgY29uc3QgdGFyZ2V0czogUmVjb3JkPENyaXRpY2FsaXR5TGV2ZWwsIG51bWJlcj4gPSB7XG4gICAgaGlnaDogOTkuNSxcbiAgICBtZWRpdW06IDk4LFxuICAgIGxvdzogOTUsXG4gIH07XG5cbiAgcmV0dXJuIERBVEFET0dfU0xPX1RJTUVGUkFNRVMubWFwKCh0aW1lZnJhbWUpID0+ICh7XG4gICAgdGFyZ2V0UGVyY2VudGFnZTogdGFyZ2V0c1tsZXZlbF0sXG4gICAgdGltZWZyYW1lOiB0aW1lZnJhbWUsXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGFyb3VuZCBEYXRhZG9nJ3MgQ2xvdWRGb3JtYXRpb24gYERhdGFkb2c6OlNMT3M6OlNMT2Agd2l0aCBzb21lIFJJTyBkZWZhdWx0cyBhcHBsaWVkLlxuICpcbiAqIEN1cnJlbnRseSBvbmx5IFNMT3Mgb2YgVHlwZSBNb25pdG9yIGFyZSBpbXBsZW1lbnRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dTbG8gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHNsbzogY2RrLkNmblJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nU2xvUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdmFsaWRhdGVOYW1lKHByb3BzLm5hbWUpO1xuICAgIHZhbGlkYXRlU3RyZWFtKHByb3BzLnN0cmVhbSk7XG4gICAgdmFsaWRhdGVNb25pdG9yc0lkcyhwcm9wcy5tb25pdG9yc0lkcyk7XG4gICAgdmFsaWRhdGVUaHJlc2hvbGRzKHByb3BzLnRocmVzaG9sZHMpO1xuICAgIHZhbGlkYXRlVHlwZShwcm9wcy5zbG9UeXBlKTtcbiAgICB2YWxpZGF0ZUN1c3RvbVRhZ3MocHJvcHMuZXh0cmFUYWdzKTtcblxuICAgIGlmICghbWF0Y2hlc0RlZmF1bHRUaHJlc2hvbGRzRm9yQ3JpdGljYWxpdHkocHJvcHMuY3JpdGljYWxpdHksIHByb3BzLnRocmVzaG9sZHMpKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZyhcbiAgICAgICAgJ0RhdGFkb2dTbG8gdGhyZXNob2xkcyBkbyBub3QgbWF0Y2ggdGhlIGRlZmF1bHRzIGZvciB0aGUgc3BlY2lmaWVkIGNyaXRpY2FsaXR5IGxldmVsLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHRlYW1OYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbU5hbWVQYXJhbWV0ZXIodGhpcyk7XG4gICAgY29uc3QgdGVhbUlkZW50aWZpZXIgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtSWRlbnRpZmllclBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCBhY2NvdW50TmFtZSA9IFJpb0xhbmRpbmdab25lLmdldEFjY291bnROYW1lUGFyYW1ldGVyKHRoaXMpO1xuXG4gICAgLy8gQ2xvdWRmb3JtYXRpb24gZXhwZWN0cyB1cHBlcmNhc2UgcHJvcGVydHkga2V5c1xuICAgIGNvbnN0IHRocmVzaG9sZHNGb3JDZm4gPSBwcm9wcy50aHJlc2hvbGRzLm1hcCgoeyB0YXJnZXRQZXJjZW50YWdlLCB0aW1lZnJhbWUgfSkgPT4gKHtcbiAgICAgIFRhcmdldDogdGFyZ2V0UGVyY2VudGFnZSxcbiAgICAgIFRpbWVmcmFtZTogdGltZWZyYW1lLFxuICAgIH0pKTtcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL3RyZWUvbWFzdGVyL2RhdGFkb2ctc2xvcy1zbG8taGFuZGxlclxuICAgIHRoaXMuc2xvID0gbmV3IGNkay5DZm5SZXNvdXJjZSh0aGlzLCAnU0xPJywge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6OlNMT3M6OlNMTycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgIFR5cGU6IHByb3BzLnNsb1R5cGUsXG4gICAgICAgIE1vbml0b3JJZHM6IHByb3BzLm1vbml0b3JzSWRzLFxuICAgICAgICBUaHJlc2hvbGRzOiB0aHJlc2hvbGRzRm9yQ2ZuLFxuICAgICAgICBUYWdzOiBbXG4gICAgICAgICAgLi4uKHByb3BzLmV4dHJhVGFncyA/PyBbXSksXG4gICAgICAgICAgYGNyaXRpY2FsaXR5OiR7cHJvcHMuY3JpdGljYWxpdHl9YCxcbiAgICAgICAgICBgc3RyZWFtOiR7cHJvcHMuc3RyZWFtfWAsXG4gICAgICAgICAgYGFjY291bnRfaWQ6JHtjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudH1gLFxuICAgICAgICAgIGBhY2NvdW50X25hbWU6JHthY2NvdW50TmFtZS5zdHJpbmdWYWx1ZX1gLFxuICAgICAgICAgIGB0ZWFtOiR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXQgc2xvSWQoKSB7XG4gICAgcmV0dXJuIGNkay5Gbi5yZWYodGhpcy5zbG8ubG9naWNhbElkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZU5hbWUobmFtZTogc3RyaW5nKSB7XG4gIGlmICghbmFtZS50cmltKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFkb2dTbG8gbmFtZSBtdXN0IGJlIG5vbi1lbXB0eS4nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0cmVhbShzdHJlYW06IHN0cmluZykge1xuICBpZiAoIXN0cmVhbS50cmltKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFkb2dTbG8gc3RyZWFtIG11c3QgYmUgbm9uLWVtcHR5LicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlTW9uaXRvcnNJZHMobW9uaXRvcnNJZHM6IHN0cmluZ1tdKSB7XG4gIGlmIChtb25pdG9yc0lkcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFkb2dTbG8gbW9uaXRvcnNJZHMgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBtb25pdG9yIElELicpO1xuICB9XG4gIGlmIChtb25pdG9yc0lkcy5zb21lKChpZCkgPT4gIS9eXFxkKyQvLnRlc3QoaWQpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRGF0YWRvZ1NsbyBtb25pdG9yc0lkcyBtdXN0IGNvbnRhaW4gb25seSBudW1lcmljIHZhbHVlcy4nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVRocmVzaG9sZHModGhyZXNob2xkczogRGF0YWRvZ1Nsb1RocmVzaG9sZFtdKSB7XG4gIGlmICh0aHJlc2hvbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRGF0YWRvZ1NsbyB0aHJlc2hvbGRzIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgdGhyZXNob2xkLicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVHlwZSh0eXBlPzogJ21vbml0b3InKSB7XG4gIGlmICh0eXBlICE9PSB1bmRlZmluZWQgJiYgdHlwZSAhPT0gJ21vbml0b3InKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhZG9nU2xvIHR5cGUgbXVzdCBiZSBcIm1vbml0b3JcIi4nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaGVzRGVmYXVsdFRocmVzaG9sZHNGb3JDcml0aWNhbGl0eShsZXZlbDogQ3JpdGljYWxpdHlMZXZlbCwgdGhyZXNob2xkczogRGF0YWRvZ1Nsb1RocmVzaG9sZFtdKSB7XG4gIGNvbnN0IGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VGhyZXNob2xkcyhsZXZlbCk7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShkZWZhdWx0VmFsdWVzKSA9PT0gSlNPTi5zdHJpbmdpZnkodGhyZXNob2xkcyk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQ3VzdG9tVGFncyhjdXN0b21UYWdzPzogc3RyaW5nW10pIHtcbiAgaWYgKGN1c3RvbVRhZ3M/LnNvbWUoKHRhZykgPT4gIXRhZy50cmltKCkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhZG9nU2xvIGN1c3RvbVRhZ3MgbXVzdCBub3QgY29udGFpbiBlbXB0eSB2YWx1ZXMuJyk7XG4gIH1cbiAgaWYgKGN1c3RvbVRhZ3M/LnNvbWUoKHRhZykgPT4gIS9eW146XSs6LiskLy50ZXN0KHRhZykpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhZG9nU2xvIGN1c3RvbVRhZ3MgbXVzdCBmb2xsb3cgdGhlIFwia2V5OnZhbHVlXCIgZm9ybWF0LicpO1xuICB9XG59XG4iXX0=
|
package/lib/datadogv2/index.d.ts
CHANGED
package/lib/datadogv2/index.js
CHANGED
|
@@ -21,4 +21,5 @@ __exportStar(require("./datadog-notification"), exports);
|
|
|
21
21
|
__exportStar(require("./datadog-lambda-instrumentation"), exports);
|
|
22
22
|
__exportStar(require("./datadog-shared-secrets"), exports);
|
|
23
23
|
__exportStar(require("./datadog-service-catalog-entry"), exports);
|
|
24
|
-
|
|
24
|
+
__exportStar(require("./datadog-slo"), exports);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWRvZ3YyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsaUVBQStDO0FBQy9DLG9EQUFrQztBQUNsQyx5REFBdUM7QUFDdkMsbUVBQWlEO0FBQ2pELDJEQUF5QztBQUN6QyxrRUFBZ0Q7QUFDaEQsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhZG9nLWRhc2hib2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFkb2ctbG9nLWluZGV4LW1vbml0b3JpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhZG9nLW1vbml0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhZG9nLW5vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFkb2ctbGFtYmRhLWluc3RydW1lbnRhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFkb2ctc2hhcmVkLXNlY3JldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhZG9nLXNlcnZpY2UtY2F0YWxvZy1lbnRyeSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFkb2ctc2xvJztcbiJdfQ==
|