@rio-cloud/cdk-v2-constructs 6.12.1 → 6.12.3

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.
Files changed (148) hide show
  1. package/.jsii +327 -16
  2. package/docs/API.md +242 -4
  3. package/docs/changelog.md +9 -0
  4. package/lib/datadogv2/datadog-lambda-instrumentation.js +3 -4
  5. package/lib/datadogv2/datadog-shared-secrets.d.ts +19 -2
  6. package/lib/datadogv2/datadog-shared-secrets.js +60 -1
  7. package/lib/datadogv2/secret-locator-custom-resource/on-create.cjs +117 -109
  8. package/lib/datadogv2/secret-locator-custom-resource/on-create.js +6 -2
  9. package/lib/fargate/codedeploy-custom-resources/create-deployment-is-complete.cjs +79 -75
  10. package/lib/fargate/codedeploy-custom-resources/create-deployment-on-create.cjs +79 -75
  11. package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.cjs +309 -83
  12. package/node_modules/@aws-sdk/client-cloudformation/package.json +14 -14
  13. package/node_modules/@aws-sdk/client-codedeploy/package.json +14 -14
  14. package/node_modules/@aws-sdk/client-ecs/README.md +25 -1
  15. package/node_modules/@aws-sdk/client-ecs/dist-cjs/index.js +255 -11
  16. package/node_modules/@aws-sdk/client-ecs/dist-es/ECS.js +6 -0
  17. package/node_modules/@aws-sdk/client-ecs/dist-es/commands/DescribeServiceDeploymentsCommand.js +22 -0
  18. package/node_modules/@aws-sdk/client-ecs/dist-es/commands/DescribeServiceRevisionsCommand.js +22 -0
  19. package/node_modules/@aws-sdk/client-ecs/dist-es/commands/ListServiceDeploymentsCommand.js +22 -0
  20. package/node_modules/@aws-sdk/client-ecs/dist-es/commands/index.js +3 -0
  21. package/node_modules/@aws-sdk/client-ecs/dist-es/models/models_0.js +17 -24
  22. package/node_modules/@aws-sdk/client-ecs/dist-es/models/models_1.js +25 -1
  23. package/node_modules/@aws-sdk/client-ecs/dist-es/protocols/Aws_json1_1.js +178 -1
  24. package/node_modules/@aws-sdk/client-ecs/dist-types/ECS.d.ts +21 -0
  25. package/node_modules/@aws-sdk/client-ecs/dist-types/ECSClient.d.ts +5 -2
  26. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/CreateCapacityProviderCommand.d.ts +1 -1
  27. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/CreateClusterCommand.d.ts +2 -2
  28. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/CreateServiceCommand.d.ts +6 -6
  29. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/CreateTaskSetCommand.d.ts +1 -1
  30. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeleteAccountSettingCommand.d.ts +1 -1
  31. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeleteCapacityProviderCommand.d.ts +1 -1
  32. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeleteClusterCommand.d.ts +1 -1
  33. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeleteServiceCommand.d.ts +3 -3
  34. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeleteTaskDefinitionsCommand.d.ts +1 -1
  35. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeleteTaskSetCommand.d.ts +1 -1
  36. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeregisterContainerInstanceCommand.d.ts +1 -1
  37. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DeregisterTaskDefinitionCommand.d.ts +1 -1
  38. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeCapacityProvidersCommand.d.ts +1 -1
  39. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeClustersCommand.d.ts +1 -1
  40. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeContainerInstancesCommand.d.ts +1 -1
  41. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeServiceDeploymentsCommand.d.ts +177 -0
  42. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeServiceRevisionsCommand.d.ts +243 -0
  43. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeServicesCommand.d.ts +3 -3
  44. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeTaskDefinitionCommand.d.ts +1 -1
  45. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeTaskSetsCommand.d.ts +1 -1
  46. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DescribeTasksCommand.d.ts +1 -1
  47. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/DiscoverPollEndpointCommand.d.ts +1 -1
  48. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ExecuteCommandCommand.d.ts +1 -1
  49. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/GetTaskProtectionCommand.d.ts +1 -1
  50. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListAccountSettingsCommand.d.ts +1 -1
  51. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListClustersCommand.d.ts +1 -1
  52. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListContainerInstancesCommand.d.ts +1 -1
  53. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListServiceDeploymentsCommand.d.ts +130 -0
  54. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListServicesByNamespaceCommand.d.ts +1 -1
  55. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListServicesCommand.d.ts +1 -1
  56. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListTagsForResourceCommand.d.ts +1 -1
  57. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListTaskDefinitionFamiliesCommand.d.ts +1 -1
  58. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListTaskDefinitionsCommand.d.ts +1 -1
  59. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/ListTasksCommand.d.ts +1 -1
  60. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/PutAccountSettingCommand.d.ts +1 -1
  61. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/PutAccountSettingDefaultCommand.d.ts +1 -1
  62. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/PutClusterCapacityProvidersCommand.d.ts +1 -1
  63. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/RegisterContainerInstanceCommand.d.ts +1 -1
  64. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/RegisterTaskDefinitionCommand.d.ts +1 -1
  65. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/RunTaskCommand.d.ts +2 -2
  66. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/StartTaskCommand.d.ts +2 -2
  67. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/StopTaskCommand.d.ts +1 -1
  68. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/SubmitAttachmentStateChangesCommand.d.ts +1 -1
  69. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/SubmitContainerStateChangeCommand.d.ts +1 -1
  70. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/SubmitTaskStateChangeCommand.d.ts +1 -1
  71. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/TagResourceCommand.d.ts +1 -1
  72. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UntagResourceCommand.d.ts +1 -1
  73. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateCapacityProviderCommand.d.ts +1 -1
  74. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateClusterCommand.d.ts +2 -2
  75. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateClusterSettingsCommand.d.ts +2 -2
  76. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateContainerAgentCommand.d.ts +2 -2
  77. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateContainerInstancesStateCommand.d.ts +2 -2
  78. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateServiceCommand.d.ts +6 -6
  79. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateServicePrimaryTaskSetCommand.d.ts +2 -2
  80. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateTaskProtectionCommand.d.ts +2 -2
  81. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/UpdateTaskSetCommand.d.ts +2 -3
  82. package/node_modules/@aws-sdk/client-ecs/dist-types/commands/index.d.ts +3 -0
  83. package/node_modules/@aws-sdk/client-ecs/dist-types/models/models_0.d.ts +3026 -2918
  84. package/node_modules/@aws-sdk/client-ecs/dist-types/models/models_1.d.ts +517 -1
  85. package/node_modules/@aws-sdk/client-ecs/dist-types/protocols/Aws_json1_1.d.ts +27 -0
  86. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/ECS.d.ts +51 -0
  87. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/ECSClient.d.ts +18 -0
  88. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/DescribeServiceDeploymentsCommand.d.ts +51 -0
  89. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/DescribeServiceRevisionsCommand.d.ts +51 -0
  90. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/ListServiceDeploymentsCommand.d.ts +51 -0
  91. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateClusterCommand.d.ts +1 -1
  92. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateClusterSettingsCommand.d.ts +1 -1
  93. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateContainerAgentCommand.d.ts +1 -1
  94. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateContainerInstancesStateCommand.d.ts +1 -1
  95. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateServiceCommand.d.ts +1 -1
  96. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateServicePrimaryTaskSetCommand.d.ts +1 -1
  97. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateTaskProtectionCommand.d.ts +1 -1
  98. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/UpdateTaskSetCommand.d.ts +4 -2
  99. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/commands/index.d.ts +3 -0
  100. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/models/models_0.d.ts +126 -95
  101. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/models/models_1.d.ts +119 -1
  102. package/node_modules/@aws-sdk/client-ecs/dist-types/ts3.4/protocols/Aws_json1_1.d.ts +36 -0
  103. package/node_modules/@aws-sdk/client-ecs/package.json +14 -14
  104. package/node_modules/@aws-sdk/client-organizations/package.json +14 -14
  105. package/node_modules/@aws-sdk/client-secrets-manager/package.json +14 -14
  106. package/node_modules/@aws-sdk/client-ssm/package.json +14 -14
  107. package/node_modules/@aws-sdk/client-sso/package.json +11 -11
  108. package/node_modules/@aws-sdk/client-sso-oidc/package.json +13 -13
  109. package/node_modules/@aws-sdk/client-sts/package.json +15 -15
  110. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +9 -5
  111. package/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js +5 -3
  112. package/node_modules/@aws-sdk/core/dist-types/submodules/client/emitWarningIfUnsupportedVersion.d.ts +3 -0
  113. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/emitWarningIfUnsupportedVersion.d.ts +3 -0
  114. package/node_modules/@aws-sdk/core/package.json +6 -4
  115. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -4
  116. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -4
  117. package/node_modules/@aws-sdk/credential-provider-ini/package.json +11 -10
  118. package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -10
  119. package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -4
  120. package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -6
  121. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +6 -5
  122. package/node_modules/@aws-sdk/middleware-host-header/package.json +6 -4
  123. package/node_modules/@aws-sdk/middleware-logger/package.json +6 -4
  124. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +6 -4
  125. package/node_modules/@aws-sdk/middleware-user-agent/package.json +9 -7
  126. package/node_modules/@aws-sdk/region-config-resolver/package.json +4 -3
  127. package/node_modules/@aws-sdk/token-providers/package.json +5 -4
  128. package/node_modules/@aws-sdk/types/package.json +1 -1
  129. package/node_modules/@aws-sdk/util-endpoints/package.json +6 -4
  130. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +4 -3
  131. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -4
  132. package/node_modules/@smithy/protocol-http/package.json +2 -2
  133. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  134. package/node_modules/@smithy/signature-v4/package.json +4 -4
  135. package/node_modules/@smithy/types/dist-cjs/feature-ids.js +1 -0
  136. package/node_modules/@smithy/types/dist-es/feature-ids.js +1 -0
  137. package/node_modules/@smithy/types/dist-es/index.js +1 -0
  138. package/node_modules/@smithy/types/dist-types/feature-ids.d.ts +16 -0
  139. package/node_modules/@smithy/types/dist-types/index.d.ts +1 -0
  140. package/node_modules/@smithy/types/dist-types/middleware.d.ts +30 -6
  141. package/node_modules/@smithy/types/dist-types/ts3.4/feature-ids.d.ts +16 -0
  142. package/node_modules/@smithy/types/dist-types/ts3.4/index.d.ts +1 -0
  143. package/node_modules/@smithy/types/dist-types/ts3.4/middleware.d.ts +26 -2
  144. package/node_modules/@smithy/types/package.json +1 -1
  145. package/node_modules/@smithy/util-middleware/package.json +2 -2
  146. package/node_modules/@smithy/util-retry/package.json +3 -3
  147. package/package.json +13 -11
  148. package/version.json +1 -1
package/docs/API.md CHANGED
@@ -1983,6 +1983,8 @@ Default priority of a monitor.
1983
1983
 
1984
1984
  ### DatadogSharedSecret <a name="DatadogSharedSecret" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret"></a>
1985
1985
 
1986
+ - *Implements:* aws-cdk-lib.aws_secretsmanager.ISecret
1987
+
1986
1988
  A custom resource that resolves the secret ARN based on the organization ID.
1987
1989
 
1988
1990
  #### Methods <a name="Methods" id="Methods"></a>
@@ -1990,6 +1992,14 @@ A custom resource that resolves the secret ARN based on the organization ID.
1990
1992
  | **Name** | **Description** |
1991
1993
  | --- | --- |
1992
1994
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.toString">toString</a></code> | Returns a string representation of this construct. |
1995
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addRotationSchedule">addRotationSchedule</a></code> | Adds a rotation schedule to the secret. |
1996
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the IAM resource policy associated with this secret. |
1997
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
1998
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.attach">attach</a></code> | Attach a target to this secret. |
1999
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.denyAccountRootDelete">denyAccountRootDelete</a></code> | Denies the `DeleteSecret` action to all principals within the current account. |
2000
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantRead">grantRead</a></code> | Grants reading the secret value to some role. |
2001
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantWrite">grantWrite</a></code> | Grants writing and updating the secret value to some role. |
2002
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.secretValueFromJson">secretValueFromJson</a></code> | Interpret the secret as a JSON object and return a field's value from it as a `SecretValue`. |
1993
2003
 
1994
2004
  ---
1995
2005
 
@@ -2001,6 +2011,136 @@ public toString(): string
2001
2011
 
2002
2012
  Returns a string representation of this construct.
2003
2013
 
2014
+ ##### `addRotationSchedule` <a name="addRotationSchedule" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addRotationSchedule"></a>
2015
+
2016
+ ```typescript
2017
+ public addRotationSchedule(_id: string, _options: RotationScheduleOptions): RotationSchedule
2018
+ ```
2019
+
2020
+ Adds a rotation schedule to the secret.
2021
+
2022
+ ###### `_id`<sup>Required</sup> <a name="_id" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addRotationSchedule.parameter._id"></a>
2023
+
2024
+ - *Type:* string
2025
+
2026
+ ---
2027
+
2028
+ ###### `_options`<sup>Required</sup> <a name="_options" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addRotationSchedule.parameter._options"></a>
2029
+
2030
+ - *Type:* aws-cdk-lib.aws_secretsmanager.RotationScheduleOptions
2031
+
2032
+ ---
2033
+
2034
+ ##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addToResourcePolicy"></a>
2035
+
2036
+ ```typescript
2037
+ public addToResourcePolicy(_statement: PolicyStatement): AddToResourcePolicyResult
2038
+ ```
2039
+
2040
+ Adds a statement to the IAM resource policy associated with this secret.
2041
+
2042
+ If this secret was created in this stack, a resource policy will be
2043
+ automatically created upon the first call to `addToResourcePolicy`. If
2044
+ the secret is imported, then this is a no-op.
2045
+
2046
+ ###### `_statement`<sup>Required</sup> <a name="_statement" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addToResourcePolicy.parameter._statement"></a>
2047
+
2048
+ - *Type:* aws-cdk-lib.aws_iam.PolicyStatement
2049
+
2050
+ ---
2051
+
2052
+ ##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.applyRemovalPolicy"></a>
2053
+
2054
+ ```typescript
2055
+ public applyRemovalPolicy(_policy: RemovalPolicy): void
2056
+ ```
2057
+
2058
+ Apply the given removal policy to this resource.
2059
+
2060
+ The Removal Policy controls what happens to this resource when it stops
2061
+ being managed by CloudFormation, either because you've removed it from the
2062
+ CDK application or because you've made a change that requires the resource
2063
+ to be replaced.
2064
+
2065
+ The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
2066
+ account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
2067
+
2068
+ ###### `_policy`<sup>Required</sup> <a name="_policy" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.applyRemovalPolicy.parameter._policy"></a>
2069
+
2070
+ - *Type:* aws-cdk-lib.RemovalPolicy
2071
+
2072
+ ---
2073
+
2074
+ ##### `attach` <a name="attach" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.attach"></a>
2075
+
2076
+ ```typescript
2077
+ public attach(_target: ISecretAttachmentTarget): ISecret
2078
+ ```
2079
+
2080
+ Attach a target to this secret.
2081
+
2082
+ ###### `_target`<sup>Required</sup> <a name="_target" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.attach.parameter._target"></a>
2083
+
2084
+ - *Type:* aws-cdk-lib.aws_secretsmanager.ISecretAttachmentTarget
2085
+
2086
+ ---
2087
+
2088
+ ##### `denyAccountRootDelete` <a name="denyAccountRootDelete" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.denyAccountRootDelete"></a>
2089
+
2090
+ ```typescript
2091
+ public denyAccountRootDelete(): void
2092
+ ```
2093
+
2094
+ Denies the `DeleteSecret` action to all principals within the current account.
2095
+
2096
+ ##### `grantRead` <a name="grantRead" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantRead"></a>
2097
+
2098
+ ```typescript
2099
+ public grantRead(grantee: IGrantable, versionStages?: string[]): Grant
2100
+ ```
2101
+
2102
+ Grants reading the secret value to some role.
2103
+
2104
+ ###### `grantee`<sup>Required</sup> <a name="grantee" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantRead.parameter.grantee"></a>
2105
+
2106
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
2107
+
2108
+ ---
2109
+
2110
+ ###### `versionStages`<sup>Optional</sup> <a name="versionStages" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantRead.parameter.versionStages"></a>
2111
+
2112
+ - *Type:* string[]
2113
+
2114
+ ---
2115
+
2116
+ ##### `grantWrite` <a name="grantWrite" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantWrite"></a>
2117
+
2118
+ ```typescript
2119
+ public grantWrite(_grantee: IGrantable): Grant
2120
+ ```
2121
+
2122
+ Grants writing and updating the secret value to some role.
2123
+
2124
+ ###### `_grantee`<sup>Required</sup> <a name="_grantee" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantWrite.parameter._grantee"></a>
2125
+
2126
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
2127
+
2128
+ ---
2129
+
2130
+ ##### `secretValueFromJson` <a name="secretValueFromJson" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.secretValueFromJson"></a>
2131
+
2132
+ ```typescript
2133
+ public secretValueFromJson(key: string): SecretValue
2134
+ ```
2135
+
2136
+ Interpret the secret as a JSON object and return a field's value from it as a `SecretValue`.
2137
+
2138
+ ###### `key`<sup>Required</sup> <a name="key" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.secretValueFromJson.parameter.key"></a>
2139
+
2140
+ - *Type:* string
2141
+
2142
+ ---
2143
+
2004
2144
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
2005
2145
 
2006
2146
  | **Name** | **Description** |
@@ -2092,7 +2232,13 @@ This static function resolves to the json credentials secret that contains ['Api
2092
2232
  | **Name** | **Type** | **Description** |
2093
2233
  | --- | --- | --- |
2094
2234
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
2095
- | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secret">secret</a></code> | <code>aws-cdk-lib.aws_secretsmanager.ISecret</code> | *No description.* |
2235
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.env">env</a></code> | <code>aws-cdk-lib.ResourceEnvironment</code> | The environment this resource belongs to. |
2236
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretArn">secretArn</a></code> | <code>string</code> | The ARN of the secret in AWS Secrets Manager. |
2237
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretName">secretName</a></code> | <code>string</code> | The name of the secret. |
2238
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretValue">secretValue</a></code> | <code>aws-cdk-lib.SecretValue</code> | Retrieve the value of the stored secret as a `SecretValue`. |
2239
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
2240
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.encryptionKey">encryptionKey</a></code> | <code>aws-cdk-lib.aws_kms.IKey</code> | The customer-managed encryption key that is used to encrypt this secret, if any. |
2241
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretFullArn">secretFullArn</a></code> | <code>string</code> | The full ARN of the secret in AWS Secrets Manager, which is the ARN including the Secrets Manager-supplied 6-character suffix. |
2096
2242
 
2097
2243
  ---
2098
2244
 
@@ -2108,13 +2254,105 @@ The tree node.
2108
2254
 
2109
2255
  ---
2110
2256
 
2111
- ##### `secret`<sup>Required</sup> <a name="secret" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secret"></a>
2257
+ ##### `env`<sup>Required</sup> <a name="env" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.env"></a>
2112
2258
 
2113
2259
  ```typescript
2114
- public readonly secret: ISecret;
2260
+ public readonly env: ResourceEnvironment;
2115
2261
  ```
2116
2262
 
2117
- - *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
2263
+ - *Type:* aws-cdk-lib.ResourceEnvironment
2264
+
2265
+ The environment this resource belongs to.
2266
+
2267
+ For resources that are created and managed by the CDK
2268
+ (generally, those created by creating new class instances like Role, Bucket, etc.),
2269
+ this is always the same as the environment of the stack they belong to;
2270
+ however, for imported resources
2271
+ (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
2272
+ that might be different than the stack they were imported into.
2273
+
2274
+ ---
2275
+
2276
+ ##### `secretArn`<sup>Required</sup> <a name="secretArn" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretArn"></a>
2277
+
2278
+ ```typescript
2279
+ public readonly secretArn: string;
2280
+ ```
2281
+
2282
+ - *Type:* string
2283
+
2284
+ The ARN of the secret in AWS Secrets Manager.
2285
+
2286
+ Will return the full ARN if available, otherwise a partial arn.
2287
+ For secrets imported by the deprecated `fromSecretName`, it will return the `secretName`.
2288
+
2289
+ ---
2290
+
2291
+ ##### `secretName`<sup>Required</sup> <a name="secretName" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretName"></a>
2292
+
2293
+ ```typescript
2294
+ public readonly secretName: string;
2295
+ ```
2296
+
2297
+ - *Type:* string
2298
+
2299
+ The name of the secret.
2300
+
2301
+ For "owned" secrets, this will be the full resource name (secret name + suffix), unless the
2302
+ '@aws-cdk/aws-secretsmanager:parseOwnedSecretName' feature flag is set.
2303
+
2304
+ ---
2305
+
2306
+ ##### `secretValue`<sup>Required</sup> <a name="secretValue" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretValue"></a>
2307
+
2308
+ ```typescript
2309
+ public readonly secretValue: SecretValue;
2310
+ ```
2311
+
2312
+ - *Type:* aws-cdk-lib.SecretValue
2313
+
2314
+ Retrieve the value of the stored secret as a `SecretValue`.
2315
+
2316
+ ---
2317
+
2318
+ ##### `stack`<sup>Required</sup> <a name="stack" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.stack"></a>
2319
+
2320
+ ```typescript
2321
+ public readonly stack: Stack;
2322
+ ```
2323
+
2324
+ - *Type:* aws-cdk-lib.Stack
2325
+
2326
+ The stack in which this resource is defined.
2327
+
2328
+ ---
2329
+
2330
+ ##### `encryptionKey`<sup>Optional</sup> <a name="encryptionKey" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.encryptionKey"></a>
2331
+
2332
+ ```typescript
2333
+ public readonly encryptionKey: IKey;
2334
+ ```
2335
+
2336
+ - *Type:* aws-cdk-lib.aws_kms.IKey
2337
+
2338
+ The customer-managed encryption key that is used to encrypt this secret, if any.
2339
+
2340
+ When not specified, the default
2341
+ KMS key for the account and region is being used.
2342
+
2343
+ ---
2344
+
2345
+ ##### `secretFullArn`<sup>Optional</sup> <a name="secretFullArn" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretFullArn"></a>
2346
+
2347
+ ```typescript
2348
+ public readonly secretFullArn: string;
2349
+ ```
2350
+
2351
+ - *Type:* string
2352
+
2353
+ The full ARN of the secret in AWS Secrets Manager, which is the ARN including the Secrets Manager-supplied 6-character suffix.
2354
+
2355
+ This is equal to `secretArn` in most cases, but is undefined when a full ARN is not available (e.g., secrets imported by name).
2118
2356
 
2119
2357
  ---
2120
2358
 
package/docs/changelog.md CHANGED
@@ -2,6 +2,15 @@
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
+ ## [6.12.3](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv6.12.2&sourceBranch=refs%2Ftags%2Fv6.12.3) (2024-11-05)
6
+
7
+ ## [6.12.2](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv6.12.1&sourceBranch=refs%2Ftags%2Fv6.12.2) (2024-11-04)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * dependencies updated by renovate ([533396a](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/533396aa1fcc89f0a46099f90c20b2957b266ee4))
13
+
5
14
  ## [6.12.1](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv6.12.0&sourceBranch=refs%2Ftags%2Fv6.12.1) (2024-10-29)
6
15
 
7
16
  ## [6.12.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv6.12.0-beta.0&sourceBranch=refs%2Ftags%2Fv6.12.0) (2024-10-22)
@@ -25,10 +25,9 @@ const datadog_shared_secrets_1 = require("./datadog-shared-secrets");
25
25
  class DatadogLambdaInstrumentation extends constructs_1.Construct {
26
26
  constructor(scope, id, props) {
27
27
  super(scope, id);
28
- const resolvedDatadogApiKey = datadog_shared_secrets_1.DatadogSharedSecret.apiKeySecret(this, 'DatadogApiKeySecret');
29
- this.datadogSecret = resolvedDatadogApiKey.secret;
28
+ this.datadogSecret = datadog_shared_secrets_1.DatadogSharedSecret.apiKeySecret(this, 'DatadogApiKeySecret');
30
29
  const resolvedDatadogSecret = datadog_shared_secrets_1.DatadogSharedSecret.credentialsSecret(this, 'DatadogCredentialsSecret');
31
- this.site = resolvedDatadogSecret.secret.secretValueFromJson('Site').unsafeUnwrap();
30
+ this.site = resolvedDatadogSecret.secretValueFromJson('Site').unsafeUnwrap();
32
31
  const finalProps = {
33
32
  env: 'prod',
34
33
  apiKeySecretArn: this.datadogSecret.secretArn,
@@ -74,4 +73,4 @@ const getSourceCodeIntegrationDefault = (node) => {
74
73
  const isDisabled = value === 'false' || value === false;
75
74
  return !isDisabled;
76
75
  };
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1sYW1iZGEtaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLWxhbWJkYS1pbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSwyQ0FBNkM7QUFDN0MsNkRBQTZEO0FBQzdELGdEQUFnRDtBQUNoRCxxRUFBK0Q7QUFvRC9EOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBYSw0QkFBNkIsU0FBUSxzQkFBUztJQUt6RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdDO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxxQkFBcUIsR0FBRyw0Q0FBbUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFFbEQsTUFBTSxxQkFBcUIsR0FBRyw0Q0FBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwRixNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLEVBQUUsTUFBTTtZQUNYLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLG9CQUFvQixFQUFFLEtBQUs7WUFDM0Isc0JBQXNCLEVBQUUsS0FBSztZQUM3QixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsZUFBZSxFQUFFLEtBQUs7WUFDdEIscUJBQXFCLEVBQUUsK0JBQStCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNqRSxHQUFHLEtBQUs7U0FDVCxDQUFDO1FBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixFQUFFLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixJQUFJLEtBQUssQ0FBQztJQUNyRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsZUFBb0MsRUFBRSxTQUFxQjtRQUM1RSxLQUFLLE1BQU0sY0FBYyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzdDLGNBQWMsQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsZUFBb0MsRUFBRSxZQUFxQixFQUFFLFVBQW1CO1FBQ25HLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBQ0QsZ0NBQWdDLENBQUMsU0FBMkI7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDOztBQWhESCxvRUFpREM7OztBQUVEOzs7R0FHRztBQUNILE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxJQUFVLEVBQVcsRUFBRTtJQUM5RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFFN0YsTUFBTSxVQUFVLEdBQUcsS0FBSyxLQUFLLE9BQU8sSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDO0lBRXhELE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzZWNyZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tICdjb25zdHJ1Y3RzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCAqIGFzIGRkIGZyb20gJ2RhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjInO1xuaW1wb3J0IHsgRGF0YWRvZ1NoYXJlZFNlY3JldCB9IGZyb20gJy4vZGF0YWRvZy1zaGFyZWQtc2VjcmV0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBEYXRhZG9nTGFtYmRhSW5zdHJ1bWVudGF0aW9uIGNvbnN0cnVjdC5cbiAqIENvcGllZCBvdmVyIGZyb20gb3JpZ2luYWwgRGF0YWRvZyBjb25zdHJ1Y3QuXG4gKiBUaGlzIGludGVyZmFjZSBpcyBpbnRlbnRpb25hbGx5IG5vdCBleHRlbmRpbmcgdGhlIG9yaWdpbmFsIERhdGFkb2dQcm9wcywgc28gdGhhdCB0aGUgZGVwZW5kZW5jeSBuZWVkcyB0byBiZSBidW5kbGVkIGFzIHdlbGwuXG4gKlxuICogQHNlZSBkZC5EYXRhZG9nUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nTGFtYmRhSW5zdHJ1bWVudGF0aW9uUHJvcHMge1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGVuaGFuY2VkIG1ldHJpY3MgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICovXG4gIHJlYWRvbmx5IGVuYWJsZUVuaGFuY2VkTWV0cmljcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5vZGVMYXllclZlcnNpb24/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGV4dGVuc2lvbkxheWVyVmVyc2lvbj86IG51bWJlcjtcbiAgcmVhZG9ubHkgYWRkTGF5ZXJzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZm9yd2FyZGVyQXJuPzogc3RyaW5nO1xuICByZWFkb25seSBmbHVzaE1ldHJpY3NUb0xvZ3M/OiBib29sZWFuO1xuICByZWFkb25seSBzaXRlPzogc3RyaW5nO1xuICByZWFkb25seSBhcGlLZXk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaUtleVNlY3JldEFybj86IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpS2V5U2VjcmV0Pzogc2VjcmV0cy5JU2VjcmV0O1xuICByZWFkb25seSBhcGlLbXNLZXk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZURhdGFkb2dUcmFjaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlRGF0YWRvZ0FTTT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZU1lcmdlWHJheVRyYWNlcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluamVjdExvZ0NvbnRleHQ/OiBib29sZWFuO1xuICByZWFkb25seSBsb2dMZXZlbD86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlRGF0YWRvZ0xvZ3M/OiBib29sZWFuO1xuICByZWFkb25seSBjYXB0dXJlTGFtYmRhUGF5bG9hZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVudj86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgdGFncz86IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRlRm9yd2FyZGVyUGVybWlzc2lvbnM/OiBib29sZWFuO1xuICByZWFkb25seSBzb3VyY2VDb2RlSW50ZWdyYXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVDb2xkU3RhcnRUcmFjaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbWluQ29sZFN0YXJ0VHJhY2VEdXJhdGlvbj86IG51bWJlcjtcbiAgcmVhZG9ubHkgY29sZFN0YXJ0VHJhY2VTa2lwTGlicz86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlUHJvZmlsaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5jb2RlQXV0aG9yaXplckNvbnRleHQ/OiBib29sZWFuO1xuICByZWFkb25seSBkZWNvZGVBdXRob3JpemVyQ29udGV4dD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFwbUZsdXNoRGVhZGxpbmU/OiBzdHJpbmcgfCBudW1iZXI7XG4gIHJlYWRvbmx5IHJlZGlyZWN0SGFuZGxlcj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGdyYW50U2VjcmV0UmVhZEFjY2Vzcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZUxheWVyc0Zyb21BY2NvdW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgY29uc3RydWN0IGZvciBEYXRhZG9nJ3MgTGFtYmRhIGluc3RydW1lbnRhdGlvbi5cbiAqIFRoaXMgY29uc3RydWN0IHdpbGwgY3JlYXRlIGEgRGF0YWRvZyBjb25zdHJ1Y3Qgd2l0aCB0aGUgcHJvdmlkZWQgcHJvcHMgYW5kIGFkZCB0aGUgTGFtYmRhIGZ1bmN0aW9ucyB0byBpdC5cbiAqIFBlciBkZWZhdWx0LCBpdCB3aWxsIGRpc2FibGUgYWxsIGFkZGl0aW9uYWwgZmVhdHVyZXMsIHRoYXQgY2F1c2UgRGF0YWRvZyBjaGFyZ2luZyBmb3IgU2VydmVybGVzcyBGdW5jdGlvbnMgZmVhdHVyZXMuXG4gKiBTbyBqdXN0IGNoYW5nZSBpdCwgaWYgeW91IG5lZWQgdGhlIGFkdmFuY2VkIGZlYXR1cmVzLlxuICpcbiAqIEFkZGl0aW9uYWxseSwgc29tZSBkZWZhdWx0cyBmcm9tIHRoZSBkYXRhZG9nLWludGVncmF0aW9uIGFjY291bnQgbW9kdWxlIGFyZSBhcHBsaWVkOlxuICogLSB0aGUgc2VjcmV0IGZvciB0aGUgQVBJIGtleSBpcyByZWFkIGZyb20gdGhlIHNlY3JldCBtYW5hZ2VyIGAvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwaS1rZXlgXG4gKiAtIHRoZSBzaXRlIGlzIHJlYWQgZnJvbSB0aGUgcGFyYW1ldGVyIHN0b3JlIGAvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL3NpdGVgXG4gKlxuICogVG8gdXNlIGl0LCBpbnN0YWxsIERhdGFkb2cgQ0RLIENvbnN0cnVjdHMgcGFja2FnZTpcbiAqIGBgYGJhc2hcbiAqIG5wbSBpIC1EIGRhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjJcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ0xhbWJkYUluc3RydW1lbnRhdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgZGVsZWdhdGU6IGRkLkRhdGFkb2c7XG4gIHByaXZhdGUgZGF0YWRvZ1NlY3JldDogc2VjcmV0cy5JU2VjcmV0O1xuICBwcml2YXRlIHNpdGU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbmhhbmNlZE1ldHJpY3NFbmFibGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ0xhbWJkYUluc3RydW1lbnRhdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlc29sdmVkRGF0YWRvZ0FwaUtleSA9IERhdGFkb2dTaGFyZWRTZWNyZXQuYXBpS2V5U2VjcmV0KHRoaXMsICdEYXRhZG9nQXBpS2V5U2VjcmV0Jyk7XG4gICAgdGhpcy5kYXRhZG9nU2VjcmV0ID0gcmVzb2x2ZWREYXRhZG9nQXBpS2V5LnNlY3JldDtcblxuICAgIGNvbnN0IHJlc29sdmVkRGF0YWRvZ1NlY3JldCA9IERhdGFkb2dTaGFyZWRTZWNyZXQuY3JlZGVudGlhbHNTZWNyZXQodGhpcywgJ0RhdGFkb2dDcmVkZW50aWFsc1NlY3JldCcpO1xuICAgIHRoaXMuc2l0ZSA9IHJlc29sdmVkRGF0YWRvZ1NlY3JldC5zZWNyZXQuc2VjcmV0VmFsdWVGcm9tSnNvbignU2l0ZScpLnVuc2FmZVVud3JhcCgpO1xuXG4gICAgY29uc3QgZmluYWxQcm9wcyA9IHtcbiAgICAgIGVudjogJ3Byb2QnLFxuICAgICAgYXBpS2V5U2VjcmV0QXJuOiB0aGlzLmRhdGFkb2dTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgc2l0ZTogdGhpcy5zaXRlLFxuICAgICAgZW5hYmxlRGF0YWRvZ0xvZ3M6IHRydWUsXG4gICAgICBpbmplY3RMb2dDb250ZXh0OiB0cnVlLFxuICAgICAgZW5hYmxlRGF0YWRvZ1RyYWNpbmc6IGZhbHNlLFxuICAgICAgZW5hYmxlQ29sZFN0YXJ0VHJhY2luZzogZmFsc2UsXG4gICAgICBlbmFibGVEYXRhZG9nQVNNOiBmYWxzZSxcbiAgICAgIGVuYWJsZU1lcmdlWHJheVRyYWNlczogZmFsc2UsXG4gICAgICBlbmFibGVQcm9maWxpbmc6IGZhbHNlLFxuICAgICAgc291cmNlQ29kZUludGVncmF0aW9uOiBnZXRTb3VyY2VDb2RlSW50ZWdyYXRpb25EZWZhdWx0KHRoaXMubm9kZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICB9O1xuXG4gICAgZGQudmFsaWRhdGVQcm9wcyhmaW5hbFByb3BzKTtcbiAgICBkZC5jaGVja0Zvck11bHRpcGxlQXBpS2V5cyhmaW5hbFByb3BzKTtcblxuICAgIHRoaXMuZGVsZWdhdGUgPSBuZXcgZGQuRGF0YWRvZyh0aGlzLCAnRGF0YWRvZycsIGZpbmFsUHJvcHMpO1xuICAgIHRoaXMuZW5oYW5jZWRNZXRyaWNzRW5hYmxlZCA9IHByb3BzLmVuYWJsZUVuaGFuY2VkTWV0cmljcyA/PyBmYWxzZTtcbiAgfVxuXG4gIGFkZExhbWJkYUZ1bmN0aW9ucyhsYW1iZGFGdW5jdGlvbnM6IGRkLkxhbWJkYUZ1bmN0aW9uW10sIGNvbnN0cnVjdD86IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbGFtYmRhRnVuY3Rpb24gb2YgbGFtYmRhRnVuY3Rpb25zKSB7XG4gICAgICB0aGlzLmRhdGFkb2dTZWNyZXQuZ3JhbnRSZWFkKGxhbWJkYUZ1bmN0aW9uKTtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uLmFkZEVudmlyb25tZW50KCdERF9FTkhBTkNFRF9NRVRSSUNTJywgYCR7dGhpcy5lbmhhbmNlZE1ldHJpY3NFbmFibGVkfWApO1xuICAgIH1cbiAgICB0aGlzLmRlbGVnYXRlLmFkZExhbWJkYUZ1bmN0aW9ucyhsYW1iZGFGdW5jdGlvbnMsIGNvbnN0cnVjdCk7XG4gIH1cbiAgYWRkR2l0Q29tbWl0TWV0YWRhdGEobGFtYmRhRnVuY3Rpb25zOiBkZC5MYW1iZGFGdW5jdGlvbltdLCBnaXRDb21taXRTaGE/OiBzdHJpbmcsIGdpdFJlcG9Vcmw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGVnYXRlLmFkZEdpdENvbW1pdE1ldGFkYXRhKGxhbWJkYUZ1bmN0aW9ucywgZ2l0Q29tbWl0U2hhLCBnaXRSZXBvVXJsKTtcbiAgfVxuICBhZGRGb3J3YXJkZXJUb05vbkxhbWJkYUxvZ0dyb3Vwcyhsb2dHcm91cHM6IGxvZ3MuSUxvZ0dyb3VwW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGVnYXRlLmFkZEZvcndhcmRlclRvTm9uTGFtYmRhTG9nR3JvdXBzKGxvZ0dyb3Vwcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBub2RlIHRvIGNoZWNrIGZvciB0aGUgY29udGV4dCB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBhcyBhIGRlZmF1bHQgaWYgbm90IGRpc2FibGVkIHZpYSBjb250ZXh0XG4gKi9cbmNvbnN0IGdldFNvdXJjZUNvZGVJbnRlZ3JhdGlvbkRlZmF1bHQgPSAobm9kZTogTm9kZSk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB2YWx1ZSA9IG5vZGUudHJ5R2V0Q29udGV4dCgnQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0czplbmFibGVTb3VyY2VDb2RlSW50ZWdyYXRpb24nKTtcblxuICBjb25zdCBpc0Rpc2FibGVkID0gdmFsdWUgPT09ICdmYWxzZScgfHwgdmFsdWUgPT09IGZhbHNlO1xuXG4gIHJldHVybiAhaXNEaXNhYmxlZDtcbn07XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1sYW1iZGEtaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLWxhbWJkYS1pbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSwyQ0FBNkM7QUFDN0MsNkRBQTZEO0FBQzdELGdEQUFnRDtBQUNoRCxxRUFBK0Q7QUFvRC9EOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBYSw0QkFBNkIsU0FBUSxzQkFBUztJQUt6RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdDO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLGFBQWEsR0FBRyw0Q0FBbUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFbkYsTUFBTSxxQkFBcUIsR0FBRyw0Q0FBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdFLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxNQUFNO1lBQ1gsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztZQUM3QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIscUJBQXFCLEVBQUUsS0FBSztZQUM1QixlQUFlLEVBQUUsS0FBSztZQUN0QixxQkFBcUIsRUFBRSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2pFLEdBQUcsS0FBSztTQUNULENBQUM7UUFFRixFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMscUJBQXFCLElBQUksS0FBSyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxlQUFvQyxFQUFFLFNBQXFCO1FBQzVFLEtBQUssTUFBTSxjQUFjLElBQUksZUFBZSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDN0MsY0FBYyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxlQUFvQyxFQUFFLFlBQXFCLEVBQUUsVUFBbUI7UUFDbkcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxnQ0FBZ0MsQ0FBQyxTQUEyQjtRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVELENBQUM7O0FBL0NILG9FQWdEQzs7O0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLElBQVUsRUFBVyxFQUFFO0lBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUU3RixNQUFNLFVBQVUsR0FBRyxLQUFLLEtBQUssT0FBTyxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUM7SUFFeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUNyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHNlY3JldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB7IENvbnN0cnVjdCwgTm9kZSB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0ICogYXMgZGQgZnJvbSAnZGF0YWRvZy1jZGstY29uc3RydWN0cy12Mic7XG5pbXBvcnQgeyBEYXRhZG9nU2hhcmVkU2VjcmV0IH0gZnJvbSAnLi9kYXRhZG9nLXNoYXJlZC1zZWNyZXRzJztcblxuLyoqXG4gKiBQcm9wcyBmb3IgdGhlIERhdGFkb2dMYW1iZGFJbnN0cnVtZW50YXRpb24gY29uc3RydWN0LlxuICogQ29waWVkIG92ZXIgZnJvbSBvcmlnaW5hbCBEYXRhZG9nIGNvbnN0cnVjdC5cbiAqIFRoaXMgaW50ZXJmYWNlIGlzIGludGVudGlvbmFsbHkgbm90IGV4dGVuZGluZyB0aGUgb3JpZ2luYWwgRGF0YWRvZ1Byb3BzLCBzbyB0aGF0IHRoZSBkZXBlbmRlbmN5IG5lZWRzIHRvIGJlIGJ1bmRsZWQgYXMgd2VsbC5cbiAqXG4gKiBAc2VlIGRkLkRhdGFkb2dQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dMYW1iZGFJbnN0cnVtZW50YXRpb25Qcm9wcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgZW5oYW5jZWQgbWV0cmljcyBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRW5oYW5jZWRNZXRyaWNzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbm9kZUxheWVyVmVyc2lvbj86IG51bWJlcjtcbiAgcmVhZG9ubHkgZXh0ZW5zaW9uTGF5ZXJWZXJzaW9uPzogbnVtYmVyO1xuICByZWFkb25seSBhZGRMYXllcnM/OiBib29sZWFuO1xuICByZWFkb25seSBmb3J3YXJkZXJBcm4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZsdXNoTWV0cmljc1RvTG9ncz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNpdGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaUtleT86IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpS2V5U2VjcmV0QXJuPzogc3RyaW5nO1xuICByZWFkb25seSBhcGlLZXlTZWNyZXQ/OiBzZWNyZXRzLklTZWNyZXQ7XG4gIHJlYWRvbmx5IGFwaUttc0tleT86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlRGF0YWRvZ1RyYWNpbmc/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVEYXRhZG9nQVNNPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlTWVyZ2VYcmF5VHJhY2VzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaW5qZWN0TG9nQ29udGV4dD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogc3RyaW5nO1xuICByZWFkb25seSBlbmFibGVEYXRhZG9nTG9ncz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGNhcHR1cmVMYW1iZGFQYXlsb2FkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW52Pzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVGb3J3YXJkZXJQZXJtaXNzaW9ucz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNvdXJjZUNvZGVJbnRlZ3JhdGlvbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZUNvbGRTdGFydFRyYWNpbmc/OiBib29sZWFuO1xuICByZWFkb25seSBtaW5Db2xkU3RhcnRUcmFjZUR1cmF0aW9uPzogbnVtYmVyO1xuICByZWFkb25seSBjb2xkU3RhcnRUcmFjZVNraXBMaWJzPzogc3RyaW5nO1xuICByZWFkb25seSBlbmFibGVQcm9maWxpbmc/OiBib29sZWFuO1xuICByZWFkb25seSBlbmNvZGVBdXRob3JpemVyQ29udGV4dD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRlY29kZUF1dGhvcml6ZXJDb250ZXh0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYXBtRmx1c2hEZWFkbGluZT86IHN0cmluZyB8IG51bWJlcjtcbiAgcmVhZG9ubHkgcmVkaXJlY3RIYW5kbGVyPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZ3JhbnRTZWNyZXRSZWFkQWNjZXNzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTGF5ZXJzRnJvbUFjY291bnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JhcHBlciBjb25zdHJ1Y3QgZm9yIERhdGFkb2cncyBMYW1iZGEgaW5zdHJ1bWVudGF0aW9uLlxuICogVGhpcyBjb25zdHJ1Y3Qgd2lsbCBjcmVhdGUgYSBEYXRhZG9nIGNvbnN0cnVjdCB3aXRoIHRoZSBwcm92aWRlZCBwcm9wcyBhbmQgYWRkIHRoZSBMYW1iZGEgZnVuY3Rpb25zIHRvIGl0LlxuICogUGVyIGRlZmF1bHQsIGl0IHdpbGwgZGlzYWJsZSBhbGwgYWRkaXRpb25hbCBmZWF0dXJlcywgdGhhdCBjYXVzZSBEYXRhZG9nIGNoYXJnaW5nIGZvciBTZXJ2ZXJsZXNzIEZ1bmN0aW9ucyBmZWF0dXJlcy5cbiAqIFNvIGp1c3QgY2hhbmdlIGl0LCBpZiB5b3UgbmVlZCB0aGUgYWR2YW5jZWQgZmVhdHVyZXMuXG4gKlxuICogQWRkaXRpb25hbGx5LCBzb21lIGRlZmF1bHRzIGZyb20gdGhlIGRhdGFkb2ctaW50ZWdyYXRpb24gYWNjb3VudCBtb2R1bGUgYXJlIGFwcGxpZWQ6XG4gKiAtIHRoZSBzZWNyZXQgZm9yIHRoZSBBUEkga2V5IGlzIHJlYWQgZnJvbSB0aGUgc2VjcmV0IG1hbmFnZXIgYC9yaW8vY29uZmlnL2RhdGFkb2ctaW50ZWdyYXRpb24vYXBpLWtleWBcbiAqIC0gdGhlIHNpdGUgaXMgcmVhZCBmcm9tIHRoZSBwYXJhbWV0ZXIgc3RvcmUgYC9yaW8vY29uZmlnL2RhdGFkb2ctaW50ZWdyYXRpb24vc2l0ZWBcbiAqXG4gKiBUbyB1c2UgaXQsIGluc3RhbGwgRGF0YWRvZyBDREsgQ29uc3RydWN0cyBwYWNrYWdlOlxuICogYGBgYmFzaFxuICogbnBtIGkgLUQgZGF0YWRvZy1jZGstY29uc3RydWN0cy12MlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZG9nTGFtYmRhSW5zdHJ1bWVudGF0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSBkZWxlZ2F0ZTogZGQuRGF0YWRvZztcbiAgcHJpdmF0ZSBkYXRhZG9nU2VjcmV0OiBEYXRhZG9nU2hhcmVkU2VjcmV0O1xuICBwcml2YXRlIHNpdGU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbmhhbmNlZE1ldHJpY3NFbmFibGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ0xhbWJkYUluc3RydW1lbnRhdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZGF0YWRvZ1NlY3JldCA9IERhdGFkb2dTaGFyZWRTZWNyZXQuYXBpS2V5U2VjcmV0KHRoaXMsICdEYXRhZG9nQXBpS2V5U2VjcmV0Jyk7XG5cbiAgICBjb25zdCByZXNvbHZlZERhdGFkb2dTZWNyZXQgPSBEYXRhZG9nU2hhcmVkU2VjcmV0LmNyZWRlbnRpYWxzU2VjcmV0KHRoaXMsICdEYXRhZG9nQ3JlZGVudGlhbHNTZWNyZXQnKTtcbiAgICB0aGlzLnNpdGUgPSByZXNvbHZlZERhdGFkb2dTZWNyZXQuc2VjcmV0VmFsdWVGcm9tSnNvbignU2l0ZScpLnVuc2FmZVVud3JhcCgpO1xuXG4gICAgY29uc3QgZmluYWxQcm9wcyA9IHtcbiAgICAgIGVudjogJ3Byb2QnLFxuICAgICAgYXBpS2V5U2VjcmV0QXJuOiB0aGlzLmRhdGFkb2dTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgc2l0ZTogdGhpcy5zaXRlLFxuICAgICAgZW5hYmxlRGF0YWRvZ0xvZ3M6IHRydWUsXG4gICAgICBpbmplY3RMb2dDb250ZXh0OiB0cnVlLFxuICAgICAgZW5hYmxlRGF0YWRvZ1RyYWNpbmc6IGZhbHNlLFxuICAgICAgZW5hYmxlQ29sZFN0YXJ0VHJhY2luZzogZmFsc2UsXG4gICAgICBlbmFibGVEYXRhZG9nQVNNOiBmYWxzZSxcbiAgICAgIGVuYWJsZU1lcmdlWHJheVRyYWNlczogZmFsc2UsXG4gICAgICBlbmFibGVQcm9maWxpbmc6IGZhbHNlLFxuICAgICAgc291cmNlQ29kZUludGVncmF0aW9uOiBnZXRTb3VyY2VDb2RlSW50ZWdyYXRpb25EZWZhdWx0KHRoaXMubm9kZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICB9O1xuXG4gICAgZGQudmFsaWRhdGVQcm9wcyhmaW5hbFByb3BzKTtcbiAgICBkZC5jaGVja0Zvck11bHRpcGxlQXBpS2V5cyhmaW5hbFByb3BzKTtcblxuICAgIHRoaXMuZGVsZWdhdGUgPSBuZXcgZGQuRGF0YWRvZyh0aGlzLCAnRGF0YWRvZycsIGZpbmFsUHJvcHMpO1xuICAgIHRoaXMuZW5oYW5jZWRNZXRyaWNzRW5hYmxlZCA9IHByb3BzLmVuYWJsZUVuaGFuY2VkTWV0cmljcyA/PyBmYWxzZTtcbiAgfVxuXG4gIGFkZExhbWJkYUZ1bmN0aW9ucyhsYW1iZGFGdW5jdGlvbnM6IGRkLkxhbWJkYUZ1bmN0aW9uW10sIGNvbnN0cnVjdD86IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbGFtYmRhRnVuY3Rpb24gb2YgbGFtYmRhRnVuY3Rpb25zKSB7XG4gICAgICB0aGlzLmRhdGFkb2dTZWNyZXQuZ3JhbnRSZWFkKGxhbWJkYUZ1bmN0aW9uKTtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uLmFkZEVudmlyb25tZW50KCdERF9FTkhBTkNFRF9NRVRSSUNTJywgYCR7dGhpcy5lbmhhbmNlZE1ldHJpY3NFbmFibGVkfWApO1xuICAgIH1cbiAgICB0aGlzLmRlbGVnYXRlLmFkZExhbWJkYUZ1bmN0aW9ucyhsYW1iZGFGdW5jdGlvbnMsIGNvbnN0cnVjdCk7XG4gIH1cbiAgYWRkR2l0Q29tbWl0TWV0YWRhdGEobGFtYmRhRnVuY3Rpb25zOiBkZC5MYW1iZGFGdW5jdGlvbltdLCBnaXRDb21taXRTaGE/OiBzdHJpbmcsIGdpdFJlcG9Vcmw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGVnYXRlLmFkZEdpdENvbW1pdE1ldGFkYXRhKGxhbWJkYUZ1bmN0aW9ucywgZ2l0Q29tbWl0U2hhLCBnaXRSZXBvVXJsKTtcbiAgfVxuICBhZGRGb3J3YXJkZXJUb05vbkxhbWJkYUxvZ0dyb3Vwcyhsb2dHcm91cHM6IGxvZ3MuSUxvZ0dyb3VwW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGVnYXRlLmFkZEZvcndhcmRlclRvTm9uTGFtYmRhTG9nR3JvdXBzKGxvZ0dyb3Vwcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBub2RlIHRvIGNoZWNrIGZvciB0aGUgY29udGV4dCB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBhcyBhIGRlZmF1bHQgaWYgbm90IGRpc2FibGVkIHZpYSBjb250ZXh0XG4gKi9cbmNvbnN0IGdldFNvdXJjZUNvZGVJbnRlZ3JhdGlvbkRlZmF1bHQgPSAobm9kZTogTm9kZSk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB2YWx1ZSA9IG5vZGUudHJ5R2V0Q29udGV4dCgnQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0czplbmFibGVTb3VyY2VDb2RlSW50ZWdyYXRpb24nKTtcblxuICBjb25zdCBpc0Rpc2FibGVkID0gdmFsdWUgPT09ICdmYWxzZScgfHwgdmFsdWUgPT09IGZhbHNlO1xuXG4gIHJldHVybiAhaXNEaXNhYmxlZDtcbn07XG4iXX0=
@@ -1,9 +1,11 @@
1
+ import * as cdk from 'aws-cdk-lib';
2
+ import * as iam from 'aws-cdk-lib/aws-iam';
1
3
  import * as sec from 'aws-cdk-lib/aws-secretsmanager';
2
4
  import * as constructs from 'constructs';
3
5
  /**
4
6
  * A custom resource that resolves the secret ARN based on the organization ID.
5
7
  */
6
- export declare class DatadogSharedSecret extends constructs.Construct {
8
+ export declare class DatadogSharedSecret extends constructs.Construct implements sec.ISecret {
7
9
  /**
8
10
  * This static function resolves to the plain api-key secret, that can be used for the log forwarder or the Lambda instrumentation.
9
11
  */
@@ -13,7 +15,22 @@ export declare class DatadogSharedSecret extends constructs.Construct {
13
15
  */
14
16
  static credentialsSecret(scope: constructs.Construct, id: string): DatadogSharedSecret;
15
17
  private static setupCustomResource;
16
- readonly secret: sec.ISecret;
18
+ private secret;
17
19
  private customResource;
18
20
  private constructor();
21
+ get stack(): cdk.Stack;
22
+ get env(): cdk.ResourceEnvironment;
23
+ get encryptionKey(): cdk.aws_kms.IKey | undefined;
24
+ get secretArn(): string;
25
+ get secretFullArn(): string | undefined;
26
+ get secretName(): string;
27
+ get secretValue(): cdk.SecretValue;
28
+ secretValueFromJson(key: string): cdk.SecretValue;
29
+ grantRead(grantee: iam.IGrantable, versionStages?: string[]): iam.Grant;
30
+ grantWrite(_grantee: iam.IGrantable): iam.Grant;
31
+ addRotationSchedule(_id: string, _options: sec.RotationScheduleOptions): sec.RotationSchedule;
32
+ addToResourcePolicy(_statement: iam.PolicyStatement): iam.AddToResourcePolicyResult;
33
+ denyAccountRootDelete(): void;
34
+ attach(_target: sec.ISecretAttachmentTarget): sec.ISecret;
35
+ applyRemovalPolicy(_policy: cdk.RemovalPolicy): void;
19
36
  }
@@ -45,6 +45,7 @@ class DatadogSharedSecret extends constructs.Construct {
45
45
  logGroup: new logs.LogGroup(stack, 'DatadogSharedSecretHandlerLogGroup', {
46
46
  retention: logs.RetentionDays.ONE_WEEK,
47
47
  }),
48
+ timeout: cdk.Duration.minutes(6),
48
49
  environment: {
49
50
  SHARED_LATAM_SECRET_ARN_PREFIX: SHARED_LATAM_SECRET_ARN_PREFIX,
50
51
  SHARED_EU_SECRET_ARN_PREFIX: SHARED_EU_SECRET_ARN_PREFIX,
@@ -79,8 +80,66 @@ class DatadogSharedSecret extends constructs.Construct {
79
80
  });
80
81
  this.secret = sec.Secret.fromSecretCompleteArn(this, 'Resource', secretLocator.getAtt('SecretArn').toString());
81
82
  }
83
+ get stack() {
84
+ return this.secret.stack;
85
+ }
86
+ get env() {
87
+ return this.secret.env;
88
+ }
89
+ get encryptionKey() {
90
+ return undefined;
91
+ }
92
+ get secretArn() {
93
+ return this.secret.secretArn;
94
+ }
95
+ ;
96
+ get secretFullArn() {
97
+ return this.secret.secretFullArn;
98
+ }
99
+ get secretName() {
100
+ return this.secret.secretName;
101
+ }
102
+ get secretValue() {
103
+ return this.secret.secretValue;
104
+ }
105
+ secretValueFromJson(key) {
106
+ return this.secret.secretValueFromJson(key);
107
+ }
108
+ grantRead(grantee, versionStages) {
109
+ const result = grantee.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({
110
+ actions: ['kms:Decrypt'],
111
+ resources: [`arn:aws:kms:eu-west-1:${DEVELOPER_TOOLS_ACCOUNT_ID}:key/*`],
112
+ conditions: {
113
+ 'ForAnyValue:StringLike': {
114
+ 'kms:ResourceAliases': 'alias/datadog-integration-shared-credentials-key',
115
+ },
116
+ },
117
+ }));
118
+ if (!result.statementAdded) {
119
+ cdk.Annotations.of(this).addWarning('Could not add statement to the principal policy.');
120
+ }
121
+ return this.secret.grantRead(grantee, versionStages);
122
+ }
123
+ grantWrite(_grantee) {
124
+ throw new Error('Method not allowed.');
125
+ }
126
+ addRotationSchedule(_id, _options) {
127
+ throw new Error('Method not allowed.');
128
+ }
129
+ addToResourcePolicy(_statement) {
130
+ throw new Error('Method not allowed.');
131
+ }
132
+ denyAccountRootDelete() {
133
+ throw new Error('Method not allowed.');
134
+ }
135
+ attach(_target) {
136
+ throw new Error('Method not allowed.');
137
+ }
138
+ applyRemovalPolicy(_policy) {
139
+ throw new Error('Method not allowed.');
140
+ }
82
141
  }
83
142
  exports.DatadogSharedSecret = DatadogSharedSecret;
84
143
  _a = JSII_RTTI_SYMBOL_1;
85
144
  DatadogSharedSecret[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret", version: "0.0.0" };
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhZG9ndjIvZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QixtQ0FBbUM7QUFFbkMsc0RBQXNEO0FBQ3RELDJDQUEyQztBQUMzQyxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLHNEQUFzRDtBQUN0RCxtREFBbUQ7QUFDbkQseUNBQXlDO0FBR3pDLE1BQU0sc0JBQXNCLEdBQVcsY0FBYyxDQUFDO0FBQ3RELE1BQU0seUJBQXlCLEdBQVcsY0FBYyxDQUFDO0FBRXpELE1BQU0sMEJBQTBCLEdBQVcsY0FBYyxDQUFDO0FBRTFELE1BQU0sOEJBQThCLEdBQUcsb0NBQW9DLDBCQUEwQixvQ0FBb0MsQ0FBQztBQUMxSSxNQUFNLDJCQUEyQixHQUFHLG9DQUFvQywwQkFBMEIsaUNBQWlDLENBQUM7QUFFcEksTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBRTNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUEyQixFQUFFLEVBQVU7UUFDekQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUEyQixFQUFFLEVBQVU7UUFDOUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBZ0I7UUFDakQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFFO1lBQ2hGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsQ0FBQyxFQUFFO2dCQUNsRixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQzVCLENBQUM7WUFDRixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUN4QyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxvQ0FBb0MsRUFBRTtnQkFDdkUsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTthQUN2QyxDQUFDO1lBQ0YsV0FBVyxFQUFFO2dCQUNYLDhCQUE4QixFQUFFLDhCQUE4QjtnQkFDOUQsMkJBQTJCLEVBQUUsMkJBQTJCO2dCQUN4RCx5QkFBeUIsRUFBRSx5QkFBeUI7Z0JBQ3BELHNCQUFzQixFQUFFLHNCQUFzQjthQUMvQztTQUNGLENBQUMsQ0FBQztRQUVILG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BJLG1CQUFtQixDQUFDLGVBQWUsQ0FDakMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDO1lBQzFDLFNBQVMsRUFBRSxDQUFDLG9DQUFvQywwQkFBMEIsV0FBVyxDQUFDO1NBQ3ZGLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtZQUN6QyxjQUFjLEVBQUUsbUJBQW1CO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFNRCxZQUFvQixLQUE0QixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUN2RixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBZ0IsQ0FBQztRQUN6RSxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUN4RSxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZO1lBQzlDLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUM3QjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqSCxDQUFDOztBQXZFSCxrREF5RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcblxuLy8gaW1wb3J0ICogYXMgY3IgZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHNlYyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0ICogYXMgY3IgZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5cbmNvbnN0IEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IHN0cmluZyA9ICdvLXI1amZsN21icjknO1xuY29uc3QgTEFUQU1fTEFORElOR19aT05FX09SR19JRDogc3RyaW5nID0gJ28tNWoxMnV0NTI0dyc7XG5cbmNvbnN0IERFVkVMT1BFUl9UT09MU19BQ0NPVU5UX0lEOiBzdHJpbmcgPSAnNTc3MTQ2ODk3Nzg1JztcblxuY29uc3QgU0hBUkVEX0xBVEFNX1NFQ1JFVF9BUk5fUFJFRklYID0gYGFybjphd3M6c2VjcmV0c21hbmFnZXI6ZXUtd2VzdC0xOiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OnNlY3JldDovZGF0YWRvZy1pbnRlZ3JhdGlvbi9sYXRhbWA7XG5jb25zdCBTSEFSRURfRVVfU0VDUkVUX0FSTl9QUkVGSVggPSBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpldS13ZXN0LTE6JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0Oi9kYXRhZG9nLWludGVncmF0aW9uL2V1YDtcblxuY29uc3QgUkVTT1VSQ0VfSUQgPSAnX19PcmdDcmVkZW50aWFsc1NlY3JldF9fJztcblxuLyoqXG4gKiBBIGN1c3RvbSByZXNvdXJjZSB0aGF0IHJlc29sdmVzIHRoZSBzZWNyZXQgQVJOIGJhc2VkIG9uIHRoZSBvcmdhbml6YXRpb24gSUQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZG9nU2hhcmVkU2VjcmV0IGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBUaGlzIHN0YXRpYyBmdW5jdGlvbiByZXNvbHZlcyB0byB0aGUgcGxhaW4gYXBpLWtleSBzZWNyZXQsIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSBsb2cgZm9yd2FyZGVyIG9yIHRoZSBMYW1iZGEgaW5zdHJ1bWVudGF0aW9uLlxuICAgKi9cbiAgc3RhdGljIGFwaUtleVNlY3JldChzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IERhdGFkb2dTaGFyZWRTZWNyZXQoc2NvcGUsIGlkLCB7IHNlY3JldE5hbWU6ICdzaGFyZWQtYXBpLWtleScgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBzdGF0aWMgZnVuY3Rpb24gcmVzb2x2ZXMgdG8gdGhlIGpzb24gY3JlZGVudGlhbHMgc2VjcmV0IHRoYXQgY29udGFpbnMgWydBcGlLZXknLCAnQXBwbGljYXRpb25LZXknLCAnU2l0ZSddLlxuICAgKi9cbiAgc3RhdGljIGNyZWRlbnRpYWxzU2VjcmV0KHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgRGF0YWRvZ1NoYXJlZFNlY3JldChzY29wZSwgaWQsIHsgc2VjcmV0TmFtZTogJ3NoYXJlZC1jcmVkZW50aWFscycgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzZXR1cEN1c3RvbVJlc291cmNlKHN0YWNrOiBjZGsuU3RhY2spOiBjci5Qcm92aWRlciB7XG4gICAgY29uc3Qgc2VjcmV0TG9jYXRvckxhbWJkYSA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdSZXNvbHZlU2VjcmV0QXJuSGFuZGxlcicsIHtcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2VjcmV0LWxvY2F0b3ItY3VzdG9tLXJlc291cmNlJyksIHtcbiAgICAgICAgZXhjbHVkZTogWycqLmpzJywgJyouZC50cyddLFxuICAgICAgfSksXG4gICAgICBoYW5kbGVyOiAnb24tY3JlYXRlLmhhbmRsZXInLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgbG9nR3JvdXA6IG5ldyBsb2dzLkxvZ0dyb3VwKHN0YWNrLCAnRGF0YWRvZ1NoYXJlZFNlY3JldEhhbmRsZXJMb2dHcm91cCcsIHtcbiAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB9KSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFNIQVJFRF9MQVRBTV9TRUNSRVRfQVJOX1BSRUZJWDogU0hBUkVEX0xBVEFNX1NFQ1JFVF9BUk5fUFJFRklYLFxuICAgICAgICBTSEFSRURfRVVfU0VDUkVUX0FSTl9QUkVGSVg6IFNIQVJFRF9FVV9TRUNSRVRfQVJOX1BSRUZJWCxcbiAgICAgICAgTEFUQU1fTEFORElOR19aT05FX09SR19JRDogTEFUQU1fTEFORElOR19aT05FX09SR19JRCxcbiAgICAgICAgRVVfTEFORElOR19aT05FX09SR19JRDogRVVfTEFORElOR19aT05FX09SR19JRCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBzZWNyZXRMb2NhdG9yTGFtYmRhLmFkZFRvUm9sZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7IGFjdGlvbnM6IFsnb3JnYW5pemF0aW9uczpEZXNjcmliZU9yZ2FuaXphdGlvbiddLCByZXNvdXJjZXM6IFsnKiddIH0pKTtcbiAgICBzZWNyZXRMb2NhdG9yTGFtYmRhLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydzZWNyZXRzbWFuYWdlcjpEZXNjcmliZVNlY3JldCddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpldS13ZXN0LTE6JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0OipgXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IGNyLlByb3ZpZGVyKHN0YWNrLCBSRVNPVVJDRV9JRCwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IHNlY3JldExvY2F0b3JMYW1iZGEsXG4gICAgfSk7XG4gIH1cblxuICByZWFkb25seSBzZWNyZXQ6IHNlYy5JU2VjcmV0O1xuXG4gIHByaXZhdGUgY3VzdG9tUmVzb3VyY2U6IGNyLlByb3ZpZGVyO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuSUNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IHtzZWNyZXROYW1lOiBzdHJpbmd9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIGlmICghc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoUkVTT1VSQ0VfSUQpKSB7XG4gICAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gRGF0YWRvZ1NoYXJlZFNlY3JldC5zZXR1cEN1c3RvbVJlc291cmNlKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IHN0YWNrLm5vZGUuZmluZENoaWxkKFJFU09VUkNFX0lEKSBhcyBjci5Qcm92aWRlcjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWNyZXRMb2NhdG9yID0gbmV3IGNkay5DdXN0b21SZXNvdXJjZSh0aGlzLCAnRGF0YWRvZ1NoYXJlZFNlY3JldCcsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5jdXN0b21SZXNvdXJjZS5zZXJ2aWNlVG9rZW4sXG4gICAgICBwYXNjYWxDYXNlUHJvcGVydGllczogdHJ1ZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgc2VjcmV0TmFtZTogcHJvcHMuc2VjcmV0TmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnNlY3JldCA9IHNlYy5TZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsICdSZXNvdXJjZScsIHNlY3JldExvY2F0b3IuZ2V0QXR0KCdTZWNyZXRBcm4nKS50b1N0cmluZygpKTtcbiAgfVxuXG59XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhZG9ndjIvZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QixtQ0FBbUM7QUFFbkMsc0RBQXNEO0FBQ3RELDJDQUEyQztBQUMzQyxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLHNEQUFzRDtBQUN0RCxtREFBbUQ7QUFDbkQseUNBQXlDO0FBR3pDLE1BQU0sc0JBQXNCLEdBQVcsY0FBYyxDQUFDO0FBQ3RELE1BQU0seUJBQXlCLEdBQVcsY0FBYyxDQUFDO0FBRXpELE1BQU0sMEJBQTBCLEdBQVcsY0FBYyxDQUFDO0FBRTFELE1BQU0sOEJBQThCLEdBQUcsb0NBQW9DLDBCQUEwQixvQ0FBb0MsQ0FBQztBQUMxSSxNQUFNLDJCQUEyQixHQUFHLG9DQUFvQywwQkFBMEIsaUNBQWlDLENBQUM7QUFFcEksTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBRTNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUEyQixFQUFFLEVBQVU7UUFDekQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUEyQixFQUFFLEVBQVU7UUFDOUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBZ0I7UUFDakQsTUFBTSxtQkFBbUIsR0FB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QyxTQUFTLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxVQUFVLENBQUMsUUFBd0I7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFXLEVBQUUsUUFBcUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUErQjtRQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFvQztRQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQTBCO1FBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN6QyxDQUFDOztBQS9JSCxrREFpSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcblxuLy8gaW1wb3J0ICogYXMgY3IgZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHNlYyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0ICogYXMgY3IgZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5cbmNvbnN0IEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IHN0cmluZyA9ICdvLXI1amZsN21icjknO1xuY29uc3QgTEFUQU1fTEFORElOR19aT05FX09SR19JRDogc3RyaW5nID0gJ28tNWoxMnV0NTI0dyc7XG5cbmNvbnN0IERFVkVMT1BFUl9UT09MU19BQ0NPVU5UX0lEOiBzdHJpbmcgPSAnNTc3MTQ2ODk3Nzg1JztcblxuY29uc3QgU0hBUkVEX0xBVEFNX1NFQ1JFVF9BUk5fUFJFRklYID0gYGFybjphd3M6c2VjcmV0c21hbmFnZXI6ZXUtd2VzdC0xOiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OnNlY3JldDovZGF0YWRvZy1pbnRlZ3JhdGlvbi9sYXRhbWA7XG5jb25zdCBTSEFSRURfRVVfU0VDUkVUX0FSTl9QUkVGSVggPSBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpldS13ZXN0LTE6JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0Oi9kYXRhZG9nLWludGVncmF0aW9uL2V1YDtcblxuY29uc3QgUkVTT1VSQ0VfSUQgPSAnX19PcmdDcmVkZW50aWFsc1NlY3JldF9fJztcblxuLyoqXG4gKiBBIGN1c3RvbSByZXNvdXJjZSB0aGF0IHJlc29sdmVzIHRoZSBzZWNyZXQgQVJOIGJhc2VkIG9uIHRoZSBvcmdhbml6YXRpb24gSUQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZG9nU2hhcmVkU2VjcmV0IGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3QgaW1wbGVtZW50cyBzZWMuSVNlY3JldCB7XG5cbiAgLyoqXG4gICAqIFRoaXMgc3RhdGljIGZ1bmN0aW9uIHJlc29sdmVzIHRvIHRoZSBwbGFpbiBhcGkta2V5IHNlY3JldCwgdGhhdCBjYW4gYmUgdXNlZCBmb3IgdGhlIGxvZyBmb3J3YXJkZXIgb3IgdGhlIExhbWJkYSBpbnN0cnVtZW50YXRpb24uXG4gICAqL1xuICBzdGF0aWMgYXBpS2V5U2VjcmV0KHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgRGF0YWRvZ1NoYXJlZFNlY3JldChzY29wZSwgaWQsIHsgc2VjcmV0TmFtZTogJ3NoYXJlZC1hcGkta2V5JyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHN0YXRpYyBmdW5jdGlvbiByZXNvbHZlcyB0byB0aGUganNvbiBjcmVkZW50aWFscyBzZWNyZXQgdGhhdCBjb250YWlucyBbJ0FwaUtleScsICdBcHBsaWNhdGlvbktleScsICdTaXRlJ10uXG4gICAqL1xuICBzdGF0aWMgY3JlZGVudGlhbHNTZWNyZXQoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRhZG9nU2hhcmVkU2VjcmV0KHNjb3BlLCBpZCwgeyBzZWNyZXROYW1lOiAnc2hhcmVkLWNyZWRlbnRpYWxzJyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNldHVwQ3VzdG9tUmVzb3VyY2Uoc3RhY2s6IGNkay5TdGFjayk6IGNyLlByb3ZpZGVyIHtcbiAgICBjb25zdCBzZWNyZXRMb2NhdG9yTGFtYmRhID0gbmV3IGxhbWJkYS5GdW5jdGlvbihzdGFjaywgJ1Jlc29sdmVTZWNyZXRBcm5IYW5kbGVyJywge1xuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdzZWNyZXQtbG9jYXRvci1jdXN0b20tcmVzb3VyY2UnKSwge1xuICAgICAgICBleGNsdWRlOiBbJyouanMnLCAnKi5kLnRzJ10sXG4gICAgICB9KSxcbiAgICAgIGhhbmRsZXI6ICdvbi1jcmVhdGUuaGFuZGxlcicsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMjBfWCxcbiAgICAgIGFyY2hpdGVjdHVyZTogbGFtYmRhLkFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICBsb2dHcm91cDogbmV3IGxvZ3MuTG9nR3JvdXAoc3RhY2ssICdEYXRhZG9nU2hhcmVkU2VjcmV0SGFuZGxlckxvZ0dyb3VwJywge1xuICAgICAgICByZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIH0pLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNiksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBTSEFSRURfTEFUQU1fU0VDUkVUX0FSTl9QUkVGSVg6IFNIQVJFRF9MQVRBTV9TRUNSRVRfQVJOX1BSRUZJWCxcbiAgICAgICAgU0hBUkVEX0VVX1NFQ1JFVF9BUk5fUFJFRklYOiBTSEFSRURfRVVfU0VDUkVUX0FSTl9QUkVGSVgsXG4gICAgICAgIExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQsXG4gICAgICAgIEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgc2VjcmV0TG9jYXRvckxhbWJkYS5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoeyBhY3Rpb25zOiBbJ29yZ2FuaXphdGlvbnM6RGVzY3JpYmVPcmdhbml6YXRpb24nXSwgcmVzb3VyY2VzOiBbJyonXSB9KSk7XG4gICAgc2VjcmV0TG9jYXRvckxhbWJkYS5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnc2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXQnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c2VjcmV0c21hbmFnZXI6ZXUtd2VzdC0xOiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OnNlY3JldDoqYF0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBjci5Qcm92aWRlcihzdGFjaywgUkVTT1VSQ0VfSUQsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBzZWNyZXRMb2NhdG9yTGFtYmRhLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWNyZXQ6IHNlYy5JU2VjcmV0O1xuICBwcml2YXRlIGN1c3RvbVJlc291cmNlOiBjci5Qcm92aWRlcjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLklDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiB7c2VjcmV0TmFtZTogc3RyaW5nfSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZih0aGlzKTtcbiAgICBpZiAoIXN0YWNrLm5vZGUudHJ5RmluZENoaWxkKFJFU09VUkNFX0lEKSkge1xuICAgICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IERhdGFkb2dTaGFyZWRTZWNyZXQuc2V0dXBDdXN0b21SZXNvdXJjZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VzdG9tUmVzb3VyY2UgPSBzdGFjay5ub2RlLmZpbmRDaGlsZChSRVNPVVJDRV9JRCkgYXMgY3IuUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjcmV0TG9jYXRvciA9IG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0RhdGFkb2dTaGFyZWRTZWNyZXQnLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuY3VzdG9tUmVzb3VyY2Uuc2VydmljZVRva2VuLFxuICAgICAgcGFzY2FsQ2FzZVByb3BlcnRpZXM6IHRydWUsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHNlY3JldE5hbWU6IHByb3BzLnNlY3JldE5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWNyZXQgPSBzZWMuU2VjcmV0LmZyb21TZWNyZXRDb21wbGV0ZUFybih0aGlzLCAnUmVzb3VyY2UnLCBzZWNyZXRMb2NhdG9yLmdldEF0dCgnU2VjcmV0QXJuJykudG9TdHJpbmcoKSk7XG4gIH1cblxuICBnZXQgc3RhY2soKTogY2RrLlN0YWNrIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc3RhY2s7XG4gIH1cblxuICBnZXQgZW52KCk6IGNkay5SZXNvdXJjZUVudmlyb25tZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuZW52O1xuICB9XG5cbiAgZ2V0IGVuY3J5cHRpb25LZXkoKSA6IGNkay5hd3Nfa21zLklLZXkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgc2VjcmV0QXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldEFybjtcbiAgfTtcblxuICBnZXQgc2VjcmV0RnVsbEFybigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXRGdWxsQXJuO1xuICB9XG5cbiAgZ2V0IHNlY3JldE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0TmFtZTtcbiAgfVxuXG4gIGdldCBzZWNyZXRWYWx1ZSgpOiBjZGsuU2VjcmV0VmFsdWUge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXRWYWx1ZTtcbiAgfVxuXG4gIHNlY3JldFZhbHVlRnJvbUpzb24oa2V5OiBzdHJpbmcpOiBjZGsuU2VjcmV0VmFsdWUge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXRWYWx1ZUZyb21Kc29uKGtleSk7XG4gIH1cblxuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIHZlcnNpb25TdGFnZXM/OiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ3JhbnRlZS5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbJ2ttczpEZWNyeXB0J10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czprbXM6ZXUtd2VzdC0xOiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OmtleS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICdGb3JBbnlWYWx1ZTpTdHJpbmdMaWtlJzoge1xuICAgICAgICAgICdrbXM6UmVzb3VyY2VBbGlhc2VzJzogJ2FsaWFzL2RhdGFkb2ctaW50ZWdyYXRpb24tc2hhcmVkLWNyZWRlbnRpYWxzLWtleScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pKTtcbiAgICBpZiAoIXJlc3VsdC5zdGF0ZW1lbnRBZGRlZCkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ0NvdWxkIG5vdCBhZGQgc3RhdGVtZW50IHRvIHRoZSBwcmluY2lwYWwgcG9saWN5LicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuZ3JhbnRSZWFkKGdyYW50ZWUsIHZlcnNpb25TdGFnZXMpO1xuICB9XG5cbiAgZ3JhbnRXcml0ZShfZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgYWRkUm90YXRpb25TY2hlZHVsZShfaWQ6IHN0cmluZywgX29wdGlvbnM6IHNlYy5Sb3RhdGlvblNjaGVkdWxlT3B0aW9ucyk6IHNlYy5Sb3RhdGlvblNjaGVkdWxlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGFkZFRvUmVzb3VyY2VQb2xpY3koX3N0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGRlbnlBY2NvdW50Um9vdERlbGV0ZSgpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGF0dGFjaChfdGFyZ2V0OiBzZWMuSVNlY3JldEF0dGFjaG1lbnRUYXJnZXQpOiBzZWMuSVNlY3JldCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGFsbG93ZWQuJyk7XG4gIH1cblxuICBhcHBseVJlbW92YWxQb2xpY3koX3BvbGljeTogY2RrLlJlbW92YWxQb2xpY3kpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG59XG4iXX0=