@microsoft/terraform-cdk-constructs 0.0.3-pre.6
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/.devcontainer/devcontainer.json +62 -0
- package/.jsii +17693 -0
- package/API.md +17465 -0
- package/CODE_OF_CONDUCT.md +9 -0
- package/CONTRIBUTING.md +85 -0
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/SECURITY.md +41 -0
- package/SUPPORT.md +25 -0
- package/cdktf.json +11 -0
- package/cdktf.out/manifest.json +13 -0
- package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +111 -0
- package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +588 -0
- package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +245 -0
- package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +179 -0
- package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +236 -0
- package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +436 -0
- package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +152 -0
- package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +209 -0
- package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +439 -0
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +283 -0
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +261 -0
- package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +309 -0
- package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +161 -0
- package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +271 -0
- package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +122 -0
- package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +88 -0
- package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +339 -0
- package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +264 -0
- package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +261 -0
- package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +280 -0
- package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +167 -0
- package/docs/design_guide.md +309 -0
- package/docs/testing.md +347 -0
- package/go.mod +73 -0
- package/go.sum +1006 -0
- package/help +51 -0
- package/jest.config.js.old +187 -0
- package/lib/azure-actiongroup/index.d.ts +1 -0
- package/lib/azure-actiongroup/index.js +18 -0
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +10 -0
- package/lib/azure-actiongroup/lib/actiongroup.js +46 -0
- package/lib/azure-actiongroup/lib/index.d.ts +1 -0
- package/lib/azure-actiongroup/lib/index.js +18 -0
- package/lib/azure-actiongroup/model/action-group-props.d.ts +47 -0
- package/lib/azure-actiongroup/model/action-group-props.js +3 -0
- package/lib/azure-actiongroup/model/arm-role-receiver-props.d.ts +20 -0
- package/lib/azure-actiongroup/model/arm-role-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/azure-app-push-receiver-props.d.ts +14 -0
- package/lib/azure-actiongroup/model/azure-app-push-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/email-receiver-props.d.ts +19 -0
- package/lib/azure-actiongroup/model/email-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/eventhub-receiver-props.d.ts +23 -0
- package/lib/azure-actiongroup/model/eventhub-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/function.d.ts +40 -0
- package/lib/azure-actiongroup/model/function.js +118 -0
- package/lib/azure-actiongroup/model/index.d.ts +10 -0
- package/lib/azure-actiongroup/model/index.js +27 -0
- package/lib/azure-actiongroup/model/logic-app-receiver-props.d.ts +23 -0
- package/lib/azure-actiongroup/model/logic-app-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/sms-receiver-props.d.ts +18 -0
- package/lib/azure-actiongroup/model/sms-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/voice-receiver-props.d.ts +18 -0
- package/lib/azure-actiongroup/model/voice-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/webhook-receiver-props.d.ts +18 -0
- package/lib/azure-actiongroup/model/webhook-receiver-props.js +3 -0
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.d.ts +1 -0
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +294 -0
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +5 -0
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +66 -0
- package/lib/azure-applicationgateway/index.d.ts +1 -0
- package/lib/azure-applicationgateway/index.js +18 -0
- package/lib/azure-applicationgateway/lib/gateway.d.ts +172 -0
- package/lib/azure-applicationgateway/lib/gateway.js +123 -0
- package/lib/azure-applicationgateway/lib/index.d.ts +1 -0
- package/lib/azure-applicationgateway/lib/index.js +18 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.d.ts +1 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +106 -0
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +5 -0
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +267 -0
- package/lib/azure-applicationinsights/index.d.ts +1 -0
- package/lib/azure-applicationinsights/index.js +18 -0
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +60 -0
- package/lib/azure-applicationinsights/lib/appinsights.js +85 -0
- package/lib/azure-applicationinsights/lib/index.d.ts +1 -0
- package/lib/azure-applicationinsights/lib/index.js +18 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.d.ts +1 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +55 -0
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +5 -0
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +87 -0
- package/lib/azure-containerregistry/index.d.ts +1 -0
- package/lib/azure-containerregistry/index.js +18 -0
- package/lib/azure-containerregistry/lib/index.d.ts +1 -0
- package/lib/azure-containerregistry/lib/index.js +18 -0
- package/lib/azure-containerregistry/lib/registry.d.ts +41 -0
- package/lib/azure-containerregistry/lib/registry.js +47 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.d.ts +1 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +50 -0
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +5 -0
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +57 -0
- package/lib/azure-datalake/index.d.ts +1 -0
- package/lib/azure-datalake/index.js +18 -0
- package/lib/azure-datalake/lib/datalake.d.ts +14 -0
- package/lib/azure-datalake/lib/datalake.js +42 -0
- package/lib/azure-datalake/lib/filesystem.d.ts +19 -0
- package/lib/azure-datalake/lib/filesystem.js +32 -0
- package/lib/azure-datalake/lib/index.d.ts +3 -0
- package/lib/azure-datalake/lib/index.js +20 -0
- package/lib/azure-datalake/lib/path.d.ts +12 -0
- package/lib/azure-datalake/lib/path.js +14 -0
- package/lib/azure-eventhub/index.d.ts +1 -0
- package/lib/azure-eventhub/index.js +18 -0
- package/lib/azure-eventhub/lib/authorization.d.ts +28 -0
- package/lib/azure-eventhub/lib/authorization.js +54 -0
- package/lib/azure-eventhub/lib/cluster.d.ts +27 -0
- package/lib/azure-eventhub/lib/cluster.js +35 -0
- package/lib/azure-eventhub/lib/consumer.d.ts +26 -0
- package/lib/azure-eventhub/lib/consumer.js +31 -0
- package/lib/azure-eventhub/lib/index.d.ts +6 -0
- package/lib/azure-eventhub/lib/index.js +23 -0
- package/lib/azure-eventhub/lib/instance.d.ts +46 -0
- package/lib/azure-eventhub/lib/instance.js +66 -0
- package/lib/azure-eventhub/lib/kusto-connection.d.ts +68 -0
- package/lib/azure-eventhub/lib/kusto-connection.js +35 -0
- package/lib/azure-eventhub/lib/namespace.d.ts +77 -0
- package/lib/azure-eventhub/lib/namespace.js +58 -0
- package/lib/azure-eventhub/test/AzureEventhub.spec.d.ts +1 -0
- package/lib/azure-eventhub/test/AzureEventhub.spec.js +56 -0
- package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +5 -0
- package/lib/azure-eventhub/test/ExampleAzureEventhub.js +72 -0
- package/lib/azure-functionapp/index.d.ts +1 -0
- package/lib/azure-functionapp/index.js +18 -0
- package/lib/azure-functionapp/lib/functionapplinux.d.ts +211 -0
- package/lib/azure-functionapp/lib/functionapplinux.js +141 -0
- package/lib/azure-functionapp/lib/index.d.ts +1 -0
- package/lib/azure-functionapp/lib/index.js +18 -0
- package/lib/azure-functionapp/serviceplanskus.d.ts +70 -0
- package/lib/azure-functionapp/serviceplanskus.js +81 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.d.ts +1 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +48 -0
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +5 -0
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +123 -0
- package/lib/azure-keyvault/index.d.ts +1 -0
- package/lib/azure-keyvault/index.js +18 -0
- package/lib/azure-keyvault/lib/certificate.d.ts +39 -0
- package/lib/azure-keyvault/lib/certificate.js +94 -0
- package/lib/azure-keyvault/lib/index.d.ts +5 -0
- package/lib/azure-keyvault/lib/index.js +22 -0
- package/lib/azure-keyvault/lib/key.d.ts +36 -0
- package/lib/azure-keyvault/lib/key.js +33 -0
- package/lib/azure-keyvault/lib/policy.d.ts +46 -0
- package/lib/azure-keyvault/lib/policy.js +26 -0
- package/lib/azure-keyvault/lib/secret.d.ts +39 -0
- package/lib/azure-keyvault/lib/secret.js +33 -0
- package/lib/azure-keyvault/lib/vault.d.ts +94 -0
- package/lib/azure-keyvault/lib/vault.js +208 -0
- package/lib/azure-keyvault/test/AzureKeyVault.spec.d.ts +1 -0
- package/lib/azure-keyvault/test/AzureKeyVault.spec.js +63 -0
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +5 -0
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +112 -0
- package/lib/azure-kubernetes/index.d.ts +1 -0
- package/lib/azure-kubernetes/index.js +18 -0
- package/lib/azure-kubernetes/lib/cluster.d.ts +72 -0
- package/lib/azure-kubernetes/lib/cluster.js +42 -0
- package/lib/azure-kubernetes/lib/index.d.ts +1 -0
- package/lib/azure-kubernetes/lib/index.js +18 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.d.ts +1 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +56 -0
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +5 -0
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +65 -0
- package/lib/azure-kusto/index.d.ts +1 -0
- package/lib/azure-kusto/index.js +18 -0
- package/lib/azure-kusto/lib/cluster.d.ts +83 -0
- package/lib/azure-kusto/lib/cluster.js +85 -0
- package/lib/azure-kusto/lib/compute-specification.d.ts +71 -0
- package/lib/azure-kusto/lib/compute-specification.js +651 -0
- package/lib/azure-kusto/lib/database.d.ts +59 -0
- package/lib/azure-kusto/lib/database.js +77 -0
- package/lib/azure-kusto/lib/index.d.ts +3 -0
- package/lib/azure-kusto/lib/index.js +20 -0
- package/lib/azure-kusto/test/AzureKusto.spec.d.ts +1 -0
- package/lib/azure-kusto/test/AzureKusto.spec.js +50 -0
- package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +5 -0
- package/lib/azure-kusto/test/ExampleAzureKusto.js +71 -0
- package/lib/azure-loganalytics/index.d.ts +1 -0
- package/lib/azure-loganalytics/index.js +18 -0
- package/lib/azure-loganalytics/lib/index.d.ts +1 -0
- package/lib/azure-loganalytics/lib/index.js +18 -0
- package/lib/azure-loganalytics/lib/workspace.d.ts +116 -0
- package/lib/azure-loganalytics/lib/workspace.js +79 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.d.ts +1 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +50 -0
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +5 -0
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +115 -0
- package/lib/azure-metricalert/index.d.ts +2 -0
- package/lib/azure-metricalert/index.js +19 -0
- package/lib/azure-metricalert/lib/index.d.ts +1 -0
- package/lib/azure-metricalert/lib/index.js +18 -0
- package/lib/azure-metricalert/lib/metric-alert.d.ts +17 -0
- package/lib/azure-metricalert/lib/metric-alert.js +89 -0
- package/lib/azure-metricalert/model/action-props.d.ts +11 -0
- package/lib/azure-metricalert/model/action-props.js +3 -0
- package/lib/azure-metricalert/model/criteria-base-props.d.ts +38 -0
- package/lib/azure-metricalert/model/criteria-base-props.js +3 -0
- package/lib/azure-metricalert/model/criteria-dimension-props.d.ts +21 -0
- package/lib/azure-metricalert/model/criteria-dimension-props.js +3 -0
- package/lib/azure-metricalert/model/criteria-props.d.ts +12 -0
- package/lib/azure-metricalert/model/criteria-props.js +3 -0
- package/lib/azure-metricalert/model/dynamic-criteria-props.d.ts +29 -0
- package/lib/azure-metricalert/model/dynamic-criteria-props.js +3 -0
- package/lib/azure-metricalert/model/function.d.ts +28 -0
- package/lib/azure-metricalert/model/function.js +78 -0
- package/lib/azure-metricalert/model/index.d.ts +7 -0
- package/lib/azure-metricalert/model/index.js +24 -0
- package/lib/azure-metricalert/model/metric-alert-props.d.ts +86 -0
- package/lib/azure-metricalert/model/metric-alert-props.js +3 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.d.ts +1 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +63 -0
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +5 -0
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +81 -0
- package/lib/azure-networksecuritygroup/index.d.ts +1 -0
- package/lib/azure-networksecuritygroup/index.js +18 -0
- package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -0
- package/lib/azure-networksecuritygroup/lib/index.js +19 -0
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.d.ts +77 -0
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +608 -0
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +98 -0
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +82 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.d.ts +1 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +54 -0
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +5 -0
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +97 -0
- package/lib/azure-queryrulealert/index.d.ts +1 -0
- package/lib/azure-queryrulealert/index.js +18 -0
- package/lib/azure-queryrulealert/lib/index.d.ts +1 -0
- package/lib/azure-queryrulealert/lib/index.js +18 -0
- package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +144 -0
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +174 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.d.ts +1 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +67 -0
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +5 -0
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +67 -0
- package/lib/azure-resourcegroup/index.d.ts +1 -0
- package/lib/azure-resourcegroup/index.js +18 -0
- package/lib/azure-resourcegroup/lib/index.d.ts +1 -0
- package/lib/azure-resourcegroup/lib/index.js +18 -0
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +38 -0
- package/lib/azure-resourcegroup/lib/resource-group.js +49 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.d.ts +1 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +41 -0
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +5 -0
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +29 -0
- package/lib/azure-storageaccount/index.d.ts +1 -0
- package/lib/azure-storageaccount/index.js +18 -0
- package/lib/azure-storageaccount/lib/account.d.ts +205 -0
- package/lib/azure-storageaccount/lib/account.js +198 -0
- package/lib/azure-storageaccount/lib/container.d.ts +40 -0
- package/lib/azure-storageaccount/lib/container.js +85 -0
- package/lib/azure-storageaccount/lib/fileshare.d.ts +69 -0
- package/lib/azure-storageaccount/lib/fileshare.js +90 -0
- package/lib/azure-storageaccount/lib/index.d.ts +5 -0
- package/lib/azure-storageaccount/lib/index.js +22 -0
- package/lib/azure-storageaccount/lib/queue.d.ts +6 -0
- package/lib/azure-storageaccount/lib/queue.js +23 -0
- package/lib/azure-storageaccount/lib/table.d.ts +6 -0
- package/lib/azure-storageaccount/lib/table.js +23 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.d.ts +1 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +45 -0
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +5 -0
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +102 -0
- package/lib/azure-virtualmachine/index.d.ts +1 -0
- package/lib/azure-virtualmachine/index.js +18 -0
- package/lib/azure-virtualmachine/lib/image-references.d.ts +22 -0
- package/lib/azure-virtualmachine/lib/image-references.js +128 -0
- package/lib/azure-virtualmachine/lib/index.d.ts +2 -0
- package/lib/azure-virtualmachine/lib/index.js +19 -0
- package/lib/azure-virtualmachine/lib/vm.d.ts +205 -0
- package/lib/azure-virtualmachine/lib/vm.js +207 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +48 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +50 -0
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +5 -0
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +106 -0
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +5 -0
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +102 -0
- package/lib/azure-virtualmachinescaleset/index.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/index.js +18 -0
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +234 -0
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +174 -0
- package/lib/azure-virtualmachinescaleset/lib/index.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/lib/index.js +18 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +48 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +50 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +5 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +107 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +5 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +103 -0
- package/lib/azure-virtualnetwork/index.d.ts +1 -0
- package/lib/azure-virtualnetwork/index.js +18 -0
- package/lib/azure-virtualnetwork/lib/index.d.ts +2 -0
- package/lib/azure-virtualnetwork/lib/index.js +19 -0
- package/lib/azure-virtualnetwork/lib/network.d.ts +61 -0
- package/lib/azure-virtualnetwork/lib/network.js +60 -0
- package/lib/azure-virtualnetwork/lib/peering.d.ts +51 -0
- package/lib/azure-virtualnetwork/lib/peering.js +32 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.d.ts +1 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +48 -0
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +5 -0
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +88 -0
- package/lib/core-azure/index.d.ts +1 -0
- package/lib/core-azure/index.js +18 -0
- package/lib/core-azure/lib/diagsettings.d.ts +52 -0
- package/lib/core-azure/lib/diagsettings.js +46 -0
- package/lib/core-azure/lib/index.d.ts +3 -0
- package/lib/core-azure/lib/index.js +20 -0
- package/lib/core-azure/lib/rbac.d.ts +32 -0
- package/lib/core-azure/lib/rbac.js +30 -0
- package/lib/core-azure/lib/resource.d.ts +17 -0
- package/lib/core-azure/lib/resource.js +74 -0
- package/lib/core-azure/test/AzureResource.spec.d.ts +1 -0
- package/lib/core-azure/test/AzureResource.spec.js +19 -0
- package/lib/core-azure/test/ExampleAzureResource.d.ts +5 -0
- package/lib/core-azure/test/ExampleAzureResource.js +67 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +22 -0
- package/lib/testing/index.d.ts +6 -0
- package/lib/testing/index.js +18 -0
- package/lib/util/azureTenantIdHelpers.d.ts +2 -0
- package/lib/util/azureTenantIdHelpers.js +34 -0
- package/lib/util/randomName.d.ts +1 -0
- package/lib/util/randomName.js +13 -0
- package/node_modules/moment/CHANGELOG.md +996 -0
- package/node_modules/moment/LICENSE +22 -0
- package/node_modules/moment/README.md +55 -0
- package/node_modules/moment/dist/locale/af.js +71 -0
- package/node_modules/moment/dist/locale/ar-dz.js +156 -0
- package/node_modules/moment/dist/locale/ar-kw.js +55 -0
- package/node_modules/moment/dist/locale/ar-ly.js +171 -0
- package/node_modules/moment/dist/locale/ar-ma.js +56 -0
- package/node_modules/moment/dist/locale/ar-ps.js +112 -0
- package/node_modules/moment/dist/locale/ar-sa.js +105 -0
- package/node_modules/moment/dist/locale/ar-tn.js +55 -0
- package/node_modules/moment/dist/locale/ar.js +189 -0
- package/node_modules/moment/dist/locale/az.js +102 -0
- package/node_modules/moment/dist/locale/be.js +142 -0
- package/node_modules/moment/dist/locale/bg.js +87 -0
- package/node_modules/moment/dist/locale/bm.js +52 -0
- package/node_modules/moment/dist/locale/bn-bd.js +129 -0
- package/node_modules/moment/dist/locale/bn.js +119 -0
- package/node_modules/moment/dist/locale/bo.js +124 -0
- package/node_modules/moment/dist/locale/br.js +168 -0
- package/node_modules/moment/dist/locale/bs.js +160 -0
- package/node_modules/moment/dist/locale/ca.js +100 -0
- package/node_modules/moment/dist/locale/cs.js +181 -0
- package/node_modules/moment/dist/locale/cv.js +63 -0
- package/node_modules/moment/dist/locale/cy.js +98 -0
- package/node_modules/moment/dist/locale/da.js +53 -0
- package/node_modules/moment/dist/locale/de-at.js +79 -0
- package/node_modules/moment/dist/locale/de-ch.js +78 -0
- package/node_modules/moment/dist/locale/de.js +78 -0
- package/node_modules/moment/dist/locale/dv.js +90 -0
- package/node_modules/moment/dist/locale/el.js +106 -0
- package/node_modules/moment/dist/locale/en-au.js +68 -0
- package/node_modules/moment/dist/locale/en-ca.js +64 -0
- package/node_modules/moment/dist/locale/en-gb.js +68 -0
- package/node_modules/moment/dist/locale/en-ie.js +68 -0
- package/node_modules/moment/dist/locale/en-il.js +64 -0
- package/node_modules/moment/dist/locale/en-in.js +68 -0
- package/node_modules/moment/dist/locale/en-nz.js +68 -0
- package/node_modules/moment/dist/locale/en-sg.js +68 -0
- package/node_modules/moment/dist/locale/eo.js +68 -0
- package/node_modules/moment/dist/locale/es-do.js +108 -0
- package/node_modules/moment/dist/locale/es-mx.js +110 -0
- package/node_modules/moment/dist/locale/es-us.js +110 -0
- package/node_modules/moment/dist/locale/es.js +110 -0
- package/node_modules/moment/dist/locale/et.js +78 -0
- package/node_modules/moment/dist/locale/eu.js +65 -0
- package/node_modules/moment/dist/locale/fa.js +113 -0
- package/node_modules/moment/dist/locale/fi.js +124 -0
- package/node_modules/moment/dist/locale/fil.js +58 -0
- package/node_modules/moment/dist/locale/fo.js +57 -0
- package/node_modules/moment/dist/locale/fr-ca.js +70 -0
- package/node_modules/moment/dist/locale/fr-ch.js +74 -0
- package/node_modules/moment/dist/locale/fr.js +108 -0
- package/node_modules/moment/dist/locale/fy.js +75 -0
- package/node_modules/moment/dist/locale/ga.js +95 -0
- package/node_modules/moment/dist/locale/gd.js +95 -0
- package/node_modules/moment/dist/locale/gl.js +75 -0
- package/node_modules/moment/dist/locale/gom-deva.js +126 -0
- package/node_modules/moment/dist/locale/gom-latn.js +124 -0
- package/node_modules/moment/dist/locale/gu.js +122 -0
- package/node_modules/moment/dist/locale/he.js +94 -0
- package/node_modules/moment/dist/locale/hi.js +168 -0
- package/node_modules/moment/dist/locale/hr.js +156 -0
- package/node_modules/moment/dist/locale/hu.js +118 -0
- package/node_modules/moment/dist/locale/hy-am.js +94 -0
- package/node_modules/moment/dist/locale/id.js +76 -0
- package/node_modules/moment/dist/locale/is.js +140 -0
- package/node_modules/moment/dist/locale/it-ch.js +64 -0
- package/node_modules/moment/dist/locale/it.js +106 -0
- package/node_modules/moment/dist/locale/ja.js +148 -0
- package/node_modules/moment/dist/locale/jv.js +76 -0
- package/node_modules/moment/dist/locale/ka.js +92 -0
- package/node_modules/moment/dist/locale/kk.js +82 -0
- package/node_modules/moment/dist/locale/km.js +103 -0
- package/node_modules/moment/dist/locale/kn.js +124 -0
- package/node_modules/moment/dist/locale/ko.js +75 -0
- package/node_modules/moment/dist/locale/ku-kmr.js +121 -0
- package/node_modules/moment/dist/locale/ku.js +118 -0
- package/node_modules/moment/dist/locale/ky.js +84 -0
- package/node_modules/moment/dist/locale/lb.js +137 -0
- package/node_modules/moment/dist/locale/lo.js +66 -0
- package/node_modules/moment/dist/locale/lt.js +125 -0
- package/node_modules/moment/dist/locale/lv.js +94 -0
- package/node_modules/moment/dist/locale/me.js +117 -0
- package/node_modules/moment/dist/locale/mi.js +60 -0
- package/node_modules/moment/dist/locale/mk.js +85 -0
- package/node_modules/moment/dist/locale/ml.js +82 -0
- package/node_modules/moment/dist/locale/mn.js +100 -0
- package/node_modules/moment/dist/locale/mr.js +203 -0
- package/node_modules/moment/dist/locale/ms-my.js +76 -0
- package/node_modules/moment/dist/locale/ms.js +75 -0
- package/node_modules/moment/dist/locale/mt.js +56 -0
- package/node_modules/moment/dist/locale/my.js +91 -0
- package/node_modules/moment/dist/locale/nb.js +60 -0
- package/node_modules/moment/dist/locale/ne.js +121 -0
- package/node_modules/moment/dist/locale/nl-be.js +102 -0
- package/node_modules/moment/dist/locale/nl.js +104 -0
- package/node_modules/moment/dist/locale/nn.js +59 -0
- package/node_modules/moment/dist/locale/oc-lnc.js +85 -0
- package/node_modules/moment/dist/locale/pa-in.js +122 -0
- package/node_modules/moment/dist/locale/pl.js +140 -0
- package/node_modules/moment/dist/locale/pt-br.js +58 -0
- package/node_modules/moment/dist/locale/pt.js +63 -0
- package/node_modules/moment/dist/locale/ro.js +76 -0
- package/node_modules/moment/dist/locale/ru.js +213 -0
- package/node_modules/moment/dist/locale/sd.js +81 -0
- package/node_modules/moment/dist/locale/se.js +57 -0
- package/node_modules/moment/dist/locale/si.js +69 -0
- package/node_modules/moment/dist/locale/sk.js +145 -0
- package/node_modules/moment/dist/locale/sl.js +171 -0
- package/node_modules/moment/dist/locale/sq.js +65 -0
- package/node_modules/moment/dist/locale/sr-cyrl.js +127 -0
- package/node_modules/moment/dist/locale/sr.js +129 -0
- package/node_modules/moment/dist/locale/ss.js +84 -0
- package/node_modules/moment/dist/locale/sv.js +68 -0
- package/node_modules/moment/dist/locale/sw.js +55 -0
- package/node_modules/moment/dist/locale/ta.js +131 -0
- package/node_modules/moment/dist/locale/te.js +88 -0
- package/node_modules/moment/dist/locale/tet.js +68 -0
- package/node_modules/moment/dist/locale/tg.js +117 -0
- package/node_modules/moment/dist/locale/th.js +65 -0
- package/node_modules/moment/dist/locale/tk.js +91 -0
- package/node_modules/moment/dist/locale/tl-ph.js +57 -0
- package/node_modules/moment/dist/locale/tlh.js +124 -0
- package/node_modules/moment/dist/locale/tr.js +106 -0
- package/node_modules/moment/dist/locale/tzl.js +89 -0
- package/node_modules/moment/dist/locale/tzm-latn.js +54 -0
- package/node_modules/moment/dist/locale/tzm.js +54 -0
- package/node_modules/moment/dist/locale/ug-cn.js +111 -0
- package/node_modules/moment/dist/locale/uk.js +167 -0
- package/node_modules/moment/dist/locale/ur.js +82 -0
- package/node_modules/moment/dist/locale/uz-latn.js +54 -0
- package/node_modules/moment/dist/locale/uz.js +51 -0
- package/node_modules/moment/dist/locale/vi.js +80 -0
- package/node_modules/moment/dist/locale/x-pseudo.js +73 -0
- package/node_modules/moment/dist/locale/yo.js +53 -0
- package/node_modules/moment/dist/locale/zh-cn.js +120 -0
- package/node_modules/moment/dist/locale/zh-hk.js +101 -0
- package/node_modules/moment/dist/locale/zh-mo.js +100 -0
- package/node_modules/moment/dist/locale/zh-tw.js +99 -0
- package/node_modules/moment/dist/moment.js +5680 -0
- package/node_modules/moment/ender.js +1 -0
- package/node_modules/moment/locale/af.js +82 -0
- package/node_modules/moment/locale/ar-dz.js +167 -0
- package/node_modules/moment/locale/ar-kw.js +66 -0
- package/node_modules/moment/locale/ar-ly.js +182 -0
- package/node_modules/moment/locale/ar-ma.js +67 -0
- package/node_modules/moment/locale/ar-ps.js +123 -0
- package/node_modules/moment/locale/ar-sa.js +116 -0
- package/node_modules/moment/locale/ar-tn.js +66 -0
- package/node_modules/moment/locale/ar.js +200 -0
- package/node_modules/moment/locale/az.js +113 -0
- package/node_modules/moment/locale/be.js +153 -0
- package/node_modules/moment/locale/bg.js +98 -0
- package/node_modules/moment/locale/bm.js +62 -0
- package/node_modules/moment/locale/bn-bd.js +140 -0
- package/node_modules/moment/locale/bn.js +130 -0
- package/node_modules/moment/locale/bo.js +135 -0
- package/node_modules/moment/locale/br.js +179 -0
- package/node_modules/moment/locale/bs.js +171 -0
- package/node_modules/moment/locale/ca.js +111 -0
- package/node_modules/moment/locale/cs.js +192 -0
- package/node_modules/moment/locale/cv.js +74 -0
- package/node_modules/moment/locale/cy.js +109 -0
- package/node_modules/moment/locale/da.js +64 -0
- package/node_modules/moment/locale/de-at.js +90 -0
- package/node_modules/moment/locale/de-ch.js +87 -0
- package/node_modules/moment/locale/de.js +89 -0
- package/node_modules/moment/locale/dv.js +101 -0
- package/node_modules/moment/locale/el.js +117 -0
- package/node_modules/moment/locale/en-au.js +79 -0
- package/node_modules/moment/locale/en-ca.js +75 -0
- package/node_modules/moment/locale/en-gb.js +79 -0
- package/node_modules/moment/locale/en-ie.js +79 -0
- package/node_modules/moment/locale/en-il.js +75 -0
- package/node_modules/moment/locale/en-in.js +79 -0
- package/node_modules/moment/locale/en-nz.js +79 -0
- package/node_modules/moment/locale/en-sg.js +79 -0
- package/node_modules/moment/locale/eo.js +79 -0
- package/node_modules/moment/locale/es-do.js +119 -0
- package/node_modules/moment/locale/es-mx.js +121 -0
- package/node_modules/moment/locale/es-us.js +121 -0
- package/node_modules/moment/locale/es.js +121 -0
- package/node_modules/moment/locale/et.js +89 -0
- package/node_modules/moment/locale/eu.js +76 -0
- package/node_modules/moment/locale/fa.js +124 -0
- package/node_modules/moment/locale/fi.js +135 -0
- package/node_modules/moment/locale/fil.js +69 -0
- package/node_modules/moment/locale/fo.js +68 -0
- package/node_modules/moment/locale/fr-ca.js +81 -0
- package/node_modules/moment/locale/fr-ch.js +85 -0
- package/node_modules/moment/locale/fr.js +119 -0
- package/node_modules/moment/locale/fy.js +86 -0
- package/node_modules/moment/locale/ga.js +106 -0
- package/node_modules/moment/locale/gd.js +106 -0
- package/node_modules/moment/locale/gl.js +86 -0
- package/node_modules/moment/locale/gom-deva.js +137 -0
- package/node_modules/moment/locale/gom-latn.js +135 -0
- package/node_modules/moment/locale/gu.js +133 -0
- package/node_modules/moment/locale/he.js +105 -0
- package/node_modules/moment/locale/hi.js +179 -0
- package/node_modules/moment/locale/hr.js +167 -0
- package/node_modules/moment/locale/hu.js +129 -0
- package/node_modules/moment/locale/hy-am.js +105 -0
- package/node_modules/moment/locale/id.js +87 -0
- package/node_modules/moment/locale/is.js +151 -0
- package/node_modules/moment/locale/it-ch.js +75 -0
- package/node_modules/moment/locale/it.js +117 -0
- package/node_modules/moment/locale/ja.js +159 -0
- package/node_modules/moment/locale/jv.js +87 -0
- package/node_modules/moment/locale/ka.js +103 -0
- package/node_modules/moment/locale/kk.js +93 -0
- package/node_modules/moment/locale/km.js +114 -0
- package/node_modules/moment/locale/kn.js +135 -0
- package/node_modules/moment/locale/ko.js +86 -0
- package/node_modules/moment/locale/ku-kmr.js +125 -0
- package/node_modules/moment/locale/ku.js +129 -0
- package/node_modules/moment/locale/ky.js +95 -0
- package/node_modules/moment/locale/lb.js +148 -0
- package/node_modules/moment/locale/lo.js +77 -0
- package/node_modules/moment/locale/lt.js +136 -0
- package/node_modules/moment/locale/lv.js +105 -0
- package/node_modules/moment/locale/me.js +128 -0
- package/node_modules/moment/locale/mi.js +71 -0
- package/node_modules/moment/locale/mk.js +97 -0
- package/node_modules/moment/locale/ml.js +93 -0
- package/node_modules/moment/locale/mn.js +111 -0
- package/node_modules/moment/locale/mr.js +214 -0
- package/node_modules/moment/locale/ms-my.js +87 -0
- package/node_modules/moment/locale/ms.js +86 -0
- package/node_modules/moment/locale/mt.js +67 -0
- package/node_modules/moment/locale/my.js +102 -0
- package/node_modules/moment/locale/nb.js +71 -0
- package/node_modules/moment/locale/ne.js +132 -0
- package/node_modules/moment/locale/nl-be.js +113 -0
- package/node_modules/moment/locale/nl.js +115 -0
- package/node_modules/moment/locale/nn.js +70 -0
- package/node_modules/moment/locale/oc-lnc.js +96 -0
- package/node_modules/moment/locale/pa-in.js +133 -0
- package/node_modules/moment/locale/pl.js +151 -0
- package/node_modules/moment/locale/pt-br.js +69 -0
- package/node_modules/moment/locale/pt.js +74 -0
- package/node_modules/moment/locale/ro.js +87 -0
- package/node_modules/moment/locale/ru.js +224 -0
- package/node_modules/moment/locale/sd.js +92 -0
- package/node_modules/moment/locale/se.js +68 -0
- package/node_modules/moment/locale/si.js +80 -0
- package/node_modules/moment/locale/sk.js +156 -0
- package/node_modules/moment/locale/sl.js +182 -0
- package/node_modules/moment/locale/sq.js +76 -0
- package/node_modules/moment/locale/sr-cyrl.js +138 -0
- package/node_modules/moment/locale/sr.js +140 -0
- package/node_modules/moment/locale/ss.js +95 -0
- package/node_modules/moment/locale/sv.js +79 -0
- package/node_modules/moment/locale/sw.js +66 -0
- package/node_modules/moment/locale/ta.js +142 -0
- package/node_modules/moment/locale/te.js +99 -0
- package/node_modules/moment/locale/tet.js +79 -0
- package/node_modules/moment/locale/tg.js +128 -0
- package/node_modules/moment/locale/th.js +76 -0
- package/node_modules/moment/locale/tk.js +102 -0
- package/node_modules/moment/locale/tl-ph.js +68 -0
- package/node_modules/moment/locale/tlh.js +135 -0
- package/node_modules/moment/locale/tr.js +117 -0
- package/node_modules/moment/locale/tzl.js +100 -0
- package/node_modules/moment/locale/tzm-latn.js +65 -0
- package/node_modules/moment/locale/tzm.js +65 -0
- package/node_modules/moment/locale/ug-cn.js +122 -0
- package/node_modules/moment/locale/uk.js +178 -0
- package/node_modules/moment/locale/ur.js +93 -0
- package/node_modules/moment/locale/uz-latn.js +65 -0
- package/node_modules/moment/locale/uz.js +62 -0
- package/node_modules/moment/locale/vi.js +91 -0
- package/node_modules/moment/locale/x-pseudo.js +84 -0
- package/node_modules/moment/locale/yo.js +64 -0
- package/node_modules/moment/locale/zh-cn.js +131 -0
- package/node_modules/moment/locale/zh-hk.js +112 -0
- package/node_modules/moment/locale/zh-mo.js +111 -0
- package/node_modules/moment/locale/zh-tw.js +110 -0
- package/node_modules/moment/min/locales.js +12800 -0
- package/node_modules/moment/min/locales.min.js +2 -0
- package/node_modules/moment/min/locales.min.js.map +1 -0
- package/node_modules/moment/min/moment-with-locales.js +18472 -0
- package/node_modules/moment/min/moment-with-locales.min.js +2 -0
- package/node_modules/moment/min/moment-with-locales.min.js.map +1 -0
- package/node_modules/moment/min/moment.min.js +2 -0
- package/node_modules/moment/min/moment.min.js.map +1 -0
- package/node_modules/moment/moment.d.ts +796 -0
- package/node_modules/moment/moment.js +5688 -0
- package/node_modules/moment/package.js +11 -0
- package/node_modules/moment/package.json +116 -0
- package/node_modules/moment/src/lib/create/check-overflow.js +57 -0
- package/node_modules/moment/src/lib/create/date-from-array.js +35 -0
- package/node_modules/moment/src/lib/create/from-anything.js +117 -0
- package/node_modules/moment/src/lib/create/from-array.js +187 -0
- package/node_modules/moment/src/lib/create/from-object.js +20 -0
- package/node_modules/moment/src/lib/create/from-string-and-array.js +67 -0
- package/node_modules/moment/src/lib/create/from-string-and-format.js +135 -0
- package/node_modules/moment/src/lib/create/from-string.js +258 -0
- package/node_modules/moment/src/lib/create/local.js +5 -0
- package/node_modules/moment/src/lib/create/parsing-flags.js +28 -0
- package/node_modules/moment/src/lib/create/utc.js +5 -0
- package/node_modules/moment/src/lib/create/valid.js +51 -0
- package/node_modules/moment/src/lib/duration/abs.js +18 -0
- package/node_modules/moment/src/lib/duration/add-subtract.js +21 -0
- package/node_modules/moment/src/lib/duration/as.js +76 -0
- package/node_modules/moment/src/lib/duration/bubble.js +68 -0
- package/node_modules/moment/src/lib/duration/clone.js +5 -0
- package/node_modules/moment/src/lib/duration/constructor.js +42 -0
- package/node_modules/moment/src/lib/duration/create.js +133 -0
- package/node_modules/moment/src/lib/duration/duration.js +16 -0
- package/node_modules/moment/src/lib/duration/get.js +27 -0
- package/node_modules/moment/src/lib/duration/humanize.js +114 -0
- package/node_modules/moment/src/lib/duration/iso-string.js +68 -0
- package/node_modules/moment/src/lib/duration/prototype.js +78 -0
- package/node_modules/moment/src/lib/duration/valid.js +55 -0
- package/node_modules/moment/src/lib/format/format.js +104 -0
- package/node_modules/moment/src/lib/locale/base-config.js +41 -0
- package/node_modules/moment/src/lib/locale/calendar.js +15 -0
- package/node_modules/moment/src/lib/locale/constructor.js +5 -0
- package/node_modules/moment/src/lib/locale/en.js +39 -0
- package/node_modules/moment/src/lib/locale/formats.js +36 -0
- package/node_modules/moment/src/lib/locale/invalid.js +5 -0
- package/node_modules/moment/src/lib/locale/lists.js +93 -0
- package/node_modules/moment/src/lib/locale/locale.js +45 -0
- package/node_modules/moment/src/lib/locale/locales.js +249 -0
- package/node_modules/moment/src/lib/locale/ordinal.js +8 -0
- package/node_modules/moment/src/lib/locale/pre-post-format.js +3 -0
- package/node_modules/moment/src/lib/locale/prototype.js +88 -0
- package/node_modules/moment/src/lib/locale/relative.js +32 -0
- package/node_modules/moment/src/lib/locale/set.js +56 -0
- package/node_modules/moment/src/lib/moment/add-subtract.js +61 -0
- package/node_modules/moment/src/lib/moment/calendar.js +53 -0
- package/node_modules/moment/src/lib/moment/clone.js +5 -0
- package/node_modules/moment/src/lib/moment/compare.js +72 -0
- package/node_modules/moment/src/lib/moment/constructor.js +80 -0
- package/node_modules/moment/src/lib/moment/creation-data.js +9 -0
- package/node_modules/moment/src/lib/moment/diff.js +79 -0
- package/node_modules/moment/src/lib/moment/format.js +78 -0
- package/node_modules/moment/src/lib/moment/from.js +20 -0
- package/node_modules/moment/src/lib/moment/get-set.js +117 -0
- package/node_modules/moment/src/lib/moment/locale.js +34 -0
- package/node_modules/moment/src/lib/moment/min-max.js +62 -0
- package/node_modules/moment/src/lib/moment/moment.js +28 -0
- package/node_modules/moment/src/lib/moment/now.js +3 -0
- package/node_modules/moment/src/lib/moment/prototype.js +197 -0
- package/node_modules/moment/src/lib/moment/start-end-of.js +164 -0
- package/node_modules/moment/src/lib/moment/to-type.js +42 -0
- package/node_modules/moment/src/lib/moment/to.js +20 -0
- package/node_modules/moment/src/lib/moment/valid.js +15 -0
- package/node_modules/moment/src/lib/parse/regex.js +84 -0
- package/node_modules/moment/src/lib/parse/token.js +36 -0
- package/node_modules/moment/src/lib/units/aliases.js +75 -0
- package/node_modules/moment/src/lib/units/constants.js +9 -0
- package/node_modules/moment/src/lib/units/day-of-month.js +35 -0
- package/node_modules/moment/src/lib/units/day-of-week.js +432 -0
- package/node_modules/moment/src/lib/units/day-of-year.js +28 -0
- package/node_modules/moment/src/lib/units/era.js +293 -0
- package/node_modules/moment/src/lib/units/hour.js +152 -0
- package/node_modules/moment/src/lib/units/millisecond.js +66 -0
- package/node_modules/moment/src/lib/units/minute.js +24 -0
- package/node_modules/moment/src/lib/units/month.js +340 -0
- package/node_modules/moment/src/lib/units/offset.js +249 -0
- package/node_modules/moment/src/lib/units/priorities.js +34 -0
- package/node_modules/moment/src/lib/units/quarter.js +24 -0
- package/node_modules/moment/src/lib/units/second.js +24 -0
- package/node_modules/moment/src/lib/units/timestamp.js +20 -0
- package/node_modules/moment/src/lib/units/timezone.js +16 -0
- package/node_modules/moment/src/lib/units/units.js +20 -0
- package/node_modules/moment/src/lib/units/week-calendar-utils.js +66 -0
- package/node_modules/moment/src/lib/units/week-year.js +128 -0
- package/node_modules/moment/src/lib/units/week.js +62 -0
- package/node_modules/moment/src/lib/units/year.js +75 -0
- package/node_modules/moment/src/lib/utils/abs-ceil.js +7 -0
- package/node_modules/moment/src/lib/utils/abs-floor.js +8 -0
- package/node_modules/moment/src/lib/utils/abs-round.js +7 -0
- package/node_modules/moment/src/lib/utils/compare-arrays.js +18 -0
- package/node_modules/moment/src/lib/utils/defaults.js +10 -0
- package/node_modules/moment/src/lib/utils/deprecate.js +69 -0
- package/node_modules/moment/src/lib/utils/extend.js +19 -0
- package/node_modules/moment/src/lib/utils/has-own-prop.js +3 -0
- package/node_modules/moment/src/lib/utils/hooks.js +13 -0
- package/node_modules/moment/src/lib/utils/index-of.js +18 -0
- package/node_modules/moment/src/lib/utils/is-array.js +6 -0
- package/node_modules/moment/src/lib/utils/is-calendar-spec.js +25 -0
- package/node_modules/moment/src/lib/utils/is-date.js +6 -0
- package/node_modules/moment/src/lib/utils/is-function.js +6 -0
- package/node_modules/moment/src/lib/utils/is-leap-year.js +3 -0
- package/node_modules/moment/src/lib/utils/is-moment-input.js +75 -0
- package/node_modules/moment/src/lib/utils/is-number.js +6 -0
- package/node_modules/moment/src/lib/utils/is-object-empty.js +15 -0
- package/node_modules/moment/src/lib/utils/is-object.js +8 -0
- package/node_modules/moment/src/lib/utils/is-string.js +3 -0
- package/node_modules/moment/src/lib/utils/is-undefined.js +3 -0
- package/node_modules/moment/src/lib/utils/keys.js +20 -0
- package/node_modules/moment/src/lib/utils/map.js +9 -0
- package/node_modules/moment/src/lib/utils/mod.js +3 -0
- package/node_modules/moment/src/lib/utils/some.js +20 -0
- package/node_modules/moment/src/lib/utils/to-int.js +12 -0
- package/node_modules/moment/src/lib/utils/zero-fill.js +10 -0
- package/node_modules/moment/src/locale/af.js +71 -0
- package/node_modules/moment/src/locale/ar-dz.js +156 -0
- package/node_modules/moment/src/locale/ar-kw.js +55 -0
- package/node_modules/moment/src/locale/ar-ly.js +171 -0
- package/node_modules/moment/src/locale/ar-ma.js +56 -0
- package/node_modules/moment/src/locale/ar-ps.js +112 -0
- package/node_modules/moment/src/locale/ar-sa.js +105 -0
- package/node_modules/moment/src/locale/ar-tn.js +55 -0
- package/node_modules/moment/src/locale/ar.js +189 -0
- package/node_modules/moment/src/locale/az.js +102 -0
- package/node_modules/moment/src/locale/be.js +142 -0
- package/node_modules/moment/src/locale/bg.js +87 -0
- package/node_modules/moment/src/locale/bm.js +52 -0
- package/node_modules/moment/src/locale/bn-bd.js +129 -0
- package/node_modules/moment/src/locale/bn.js +119 -0
- package/node_modules/moment/src/locale/bo.js +124 -0
- package/node_modules/moment/src/locale/br.js +168 -0
- package/node_modules/moment/src/locale/bs.js +160 -0
- package/node_modules/moment/src/locale/ca.js +100 -0
- package/node_modules/moment/src/locale/cs.js +181 -0
- package/node_modules/moment/src/locale/cv.js +63 -0
- package/node_modules/moment/src/locale/cy.js +98 -0
- package/node_modules/moment/src/locale/da.js +53 -0
- package/node_modules/moment/src/locale/de-at.js +79 -0
- package/node_modules/moment/src/locale/de-ch.js +78 -0
- package/node_modules/moment/src/locale/de.js +78 -0
- package/node_modules/moment/src/locale/dv.js +90 -0
- package/node_modules/moment/src/locale/el.js +106 -0
- package/node_modules/moment/src/locale/en-au.js +68 -0
- package/node_modules/moment/src/locale/en-ca.js +64 -0
- package/node_modules/moment/src/locale/en-gb.js +68 -0
- package/node_modules/moment/src/locale/en-ie.js +68 -0
- package/node_modules/moment/src/locale/en-il.js +64 -0
- package/node_modules/moment/src/locale/en-in.js +68 -0
- package/node_modules/moment/src/locale/en-nz.js +68 -0
- package/node_modules/moment/src/locale/en-sg.js +68 -0
- package/node_modules/moment/src/locale/eo.js +68 -0
- package/node_modules/moment/src/locale/es-do.js +108 -0
- package/node_modules/moment/src/locale/es-mx.js +110 -0
- package/node_modules/moment/src/locale/es-us.js +110 -0
- package/node_modules/moment/src/locale/es.js +110 -0
- package/node_modules/moment/src/locale/et.js +78 -0
- package/node_modules/moment/src/locale/eu.js +65 -0
- package/node_modules/moment/src/locale/fa.js +113 -0
- package/node_modules/moment/src/locale/fi.js +124 -0
- package/node_modules/moment/src/locale/fil.js +58 -0
- package/node_modules/moment/src/locale/fo.js +57 -0
- package/node_modules/moment/src/locale/fr-ca.js +70 -0
- package/node_modules/moment/src/locale/fr-ch.js +74 -0
- package/node_modules/moment/src/locale/fr.js +108 -0
- package/node_modules/moment/src/locale/fy.js +75 -0
- package/node_modules/moment/src/locale/ga.js +95 -0
- package/node_modules/moment/src/locale/gd.js +95 -0
- package/node_modules/moment/src/locale/gl.js +75 -0
- package/node_modules/moment/src/locale/gom-deva.js +126 -0
- package/node_modules/moment/src/locale/gom-latn.js +124 -0
- package/node_modules/moment/src/locale/gu.js +122 -0
- package/node_modules/moment/src/locale/he.js +94 -0
- package/node_modules/moment/src/locale/hi.js +168 -0
- package/node_modules/moment/src/locale/hr.js +156 -0
- package/node_modules/moment/src/locale/hu.js +118 -0
- package/node_modules/moment/src/locale/hy-am.js +94 -0
- package/node_modules/moment/src/locale/id.js +76 -0
- package/node_modules/moment/src/locale/is.js +140 -0
- package/node_modules/moment/src/locale/it-ch.js +64 -0
- package/node_modules/moment/src/locale/it.js +106 -0
- package/node_modules/moment/src/locale/ja.js +148 -0
- package/node_modules/moment/src/locale/jv.js +76 -0
- package/node_modules/moment/src/locale/ka.js +92 -0
- package/node_modules/moment/src/locale/kk.js +82 -0
- package/node_modules/moment/src/locale/km.js +103 -0
- package/node_modules/moment/src/locale/kn.js +124 -0
- package/node_modules/moment/src/locale/ko.js +75 -0
- package/node_modules/moment/src/locale/ku-kmr.js +121 -0
- package/node_modules/moment/src/locale/ku.js +118 -0
- package/node_modules/moment/src/locale/ky.js +84 -0
- package/node_modules/moment/src/locale/lb.js +137 -0
- package/node_modules/moment/src/locale/lo.js +66 -0
- package/node_modules/moment/src/locale/lt.js +125 -0
- package/node_modules/moment/src/locale/lv.js +94 -0
- package/node_modules/moment/src/locale/me.js +117 -0
- package/node_modules/moment/src/locale/mi.js +60 -0
- package/node_modules/moment/src/locale/mk.js +85 -0
- package/node_modules/moment/src/locale/ml.js +82 -0
- package/node_modules/moment/src/locale/mn.js +100 -0
- package/node_modules/moment/src/locale/mr.js +203 -0
- package/node_modules/moment/src/locale/ms-my.js +76 -0
- package/node_modules/moment/src/locale/ms.js +75 -0
- package/node_modules/moment/src/locale/mt.js +56 -0
- package/node_modules/moment/src/locale/my.js +91 -0
- package/node_modules/moment/src/locale/nb.js +60 -0
- package/node_modules/moment/src/locale/ne.js +121 -0
- package/node_modules/moment/src/locale/nl-be.js +102 -0
- package/node_modules/moment/src/locale/nl.js +104 -0
- package/node_modules/moment/src/locale/nn.js +59 -0
- package/node_modules/moment/src/locale/oc-lnc.js +85 -0
- package/node_modules/moment/src/locale/pa-in.js +122 -0
- package/node_modules/moment/src/locale/pl.js +140 -0
- package/node_modules/moment/src/locale/pt-br.js +58 -0
- package/node_modules/moment/src/locale/pt.js +63 -0
- package/node_modules/moment/src/locale/ro.js +76 -0
- package/node_modules/moment/src/locale/ru.js +213 -0
- package/node_modules/moment/src/locale/sd.js +81 -0
- package/node_modules/moment/src/locale/se.js +57 -0
- package/node_modules/moment/src/locale/si.js +69 -0
- package/node_modules/moment/src/locale/sk.js +145 -0
- package/node_modules/moment/src/locale/sl.js +171 -0
- package/node_modules/moment/src/locale/sq.js +65 -0
- package/node_modules/moment/src/locale/sr-cyrl.js +127 -0
- package/node_modules/moment/src/locale/sr.js +129 -0
- package/node_modules/moment/src/locale/ss.js +84 -0
- package/node_modules/moment/src/locale/sv.js +68 -0
- package/node_modules/moment/src/locale/sw.js +55 -0
- package/node_modules/moment/src/locale/ta.js +131 -0
- package/node_modules/moment/src/locale/te.js +88 -0
- package/node_modules/moment/src/locale/tet.js +68 -0
- package/node_modules/moment/src/locale/tg.js +117 -0
- package/node_modules/moment/src/locale/th.js +65 -0
- package/node_modules/moment/src/locale/tk.js +91 -0
- package/node_modules/moment/src/locale/tl-ph.js +57 -0
- package/node_modules/moment/src/locale/tlh.js +124 -0
- package/node_modules/moment/src/locale/tr.js +106 -0
- package/node_modules/moment/src/locale/tzl.js +89 -0
- package/node_modules/moment/src/locale/tzm-latn.js +54 -0
- package/node_modules/moment/src/locale/tzm.js +54 -0
- package/node_modules/moment/src/locale/ug-cn.js +111 -0
- package/node_modules/moment/src/locale/uk.js +167 -0
- package/node_modules/moment/src/locale/ur.js +82 -0
- package/node_modules/moment/src/locale/uz-latn.js +54 -0
- package/node_modules/moment/src/locale/uz.js +51 -0
- package/node_modules/moment/src/locale/vi.js +80 -0
- package/node_modules/moment/src/locale/x-pseudo.js +73 -0
- package/node_modules/moment/src/locale/yo.js +53 -0
- package/node_modules/moment/src/locale/zh-cn.js +120 -0
- package/node_modules/moment/src/locale/zh-hk.js +101 -0
- package/node_modules/moment/src/locale/zh-mo.js +100 -0
- package/node_modules/moment/src/locale/zh-tw.js +99 -0
- package/node_modules/moment/src/moment.js +93 -0
- package/node_modules/moment/ts3.1-typings/moment.d.ts +785 -0
- package/node_modules/nanoid/LICENSE +20 -0
- package/node_modules/nanoid/README.md +38 -0
- package/node_modules/nanoid/async/index.browser.js +33 -0
- package/node_modules/nanoid/async/index.d.ts +56 -0
- package/node_modules/nanoid/async/index.js +34 -0
- package/node_modules/nanoid/async/index.native.js +25 -0
- package/node_modules/nanoid/bin/nanoid.js +46 -0
- package/node_modules/nanoid/index.browser.js +33 -0
- package/node_modules/nanoid/index.d.ts +91 -0
- package/node_modules/nanoid/index.js +45 -0
- package/node_modules/nanoid/nanoid.js +1 -0
- package/node_modules/nanoid/non-secure/index.d.ts +33 -0
- package/node_modules/nanoid/non-secure/index.js +20 -0
- package/node_modules/nanoid/package.json +46 -0
- package/node_modules/nanoid/url-alphabet/index.js +2 -0
- package/node_modules/ts-md5/LICENSE +21 -0
- package/node_modules/ts-md5/README.md +101 -0
- package/node_modules/ts-md5/dist/cjs/index.d.ts +3 -0
- package/node_modules/ts-md5/dist/cjs/index.js +10 -0
- package/node_modules/ts-md5/dist/cjs/index.js.map +1 -0
- package/node_modules/ts-md5/dist/cjs/md5.d.ts +70 -0
- package/node_modules/ts-md5/dist/cjs/md5.js +429 -0
- package/node_modules/ts-md5/dist/cjs/md5.js.map +1 -0
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.d.ts +25 -0
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js +96 -0
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.d.ts +22 -0
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.js +69 -0
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/index.d.ts +3 -0
- package/node_modules/ts-md5/dist/esm/index.js +4 -0
- package/node_modules/ts-md5/dist/esm/index.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/md5.d.ts +70 -0
- package/node_modules/ts-md5/dist/esm/md5.js +421 -0
- package/node_modules/ts-md5/dist/esm/md5.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.d.ts +25 -0
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.js +89 -0
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/parallel_hasher.d.ts +22 -0
- package/node_modules/ts-md5/dist/esm/parallel_hasher.js +64 -0
- package/node_modules/ts-md5/dist/esm/parallel_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/md5.js +429 -0
- package/node_modules/ts-md5/dist/md5_worker.js +523 -0
- package/node_modules/ts-md5/package.json +82 -0
- package/node_modules/ts-md5/src/index.ts +4 -0
- package/node_modules/ts-md5/src/md5.ts +473 -0
- package/node_modules/ts-md5/src/md5_file_hasher.ts +110 -0
- package/node_modules/ts-md5/src/parallel_hasher.ts +90 -0
- package/node_modules/ts-md5/src/worker.js +20 -0
- package/package.json +159 -0
- package/scripts/generate-index.js +52 -0
- package/setup.js +2 -0
- package/tfsec.json +4 -0
- package/util/compute.go +106 -0
- package/util/terraform.go +213 -0
- package/util/util.go +100 -0
package/package.json
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@microsoft/terraform-cdk-constructs",
|
|
3
|
+
"description": "A collection of CDK modules for provisioning and managing Terraform resources efficiently.",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/azure/terraform-cdk-modules.git"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "npx projen build",
|
|
10
|
+
"bump": "npx projen bump",
|
|
11
|
+
"clobber": "npx projen clobber",
|
|
12
|
+
"compat": "npx projen compat",
|
|
13
|
+
"compile": "npx projen compile",
|
|
14
|
+
"default": "npx projen default",
|
|
15
|
+
"docgen": "npx projen docgen",
|
|
16
|
+
"eject": "npx projen eject",
|
|
17
|
+
"eslint": "npx projen eslint",
|
|
18
|
+
"package": "npx projen package",
|
|
19
|
+
"package-all": "npx projen package-all",
|
|
20
|
+
"package:js": "npx projen package:js",
|
|
21
|
+
"post-compile": "npx projen post-compile",
|
|
22
|
+
"post-upgrade": "npx projen post-upgrade",
|
|
23
|
+
"pre-compile": "npx projen pre-compile",
|
|
24
|
+
"release": "npx projen release",
|
|
25
|
+
"test": "npx projen test",
|
|
26
|
+
"test:update": "npx projen test:update",
|
|
27
|
+
"test:watch": "npx projen test:watch",
|
|
28
|
+
"unbump": "npx projen unbump",
|
|
29
|
+
"upgrade": "npx projen upgrade",
|
|
30
|
+
"watch": "npx projen watch",
|
|
31
|
+
"projen": "npx projen",
|
|
32
|
+
"generate-index": "node ./scripts/generate-index.js"
|
|
33
|
+
},
|
|
34
|
+
"author": {
|
|
35
|
+
"name": "Microsoft",
|
|
36
|
+
"url": "https://microsoft.com",
|
|
37
|
+
"organization": false
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@cdktf/provider-azurerm": "9.0.8",
|
|
41
|
+
"@types/jest": "^29.5.11",
|
|
42
|
+
"@types/moment": "^2.13.0",
|
|
43
|
+
"@types/node": "^20",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^6",
|
|
45
|
+
"@typescript-eslint/parser": "^6",
|
|
46
|
+
"cdktf": "0.17.3",
|
|
47
|
+
"constructs": "10.1.106",
|
|
48
|
+
"eslint": "^8",
|
|
49
|
+
"eslint-config-prettier": "^9.1.0",
|
|
50
|
+
"eslint-import-resolver-typescript": "^3.6.1",
|
|
51
|
+
"eslint-plugin-import": "^2.29.1",
|
|
52
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
53
|
+
"jest": "^29.7.0",
|
|
54
|
+
"jest-junit": "^15",
|
|
55
|
+
"jsii": "~5.2.0",
|
|
56
|
+
"jsii-diff": "^1.94.0",
|
|
57
|
+
"jsii-docgen": "^10.3.9",
|
|
58
|
+
"jsii-pacmak": "^1.94.0",
|
|
59
|
+
"jsii-rosetta": "~5.2.0",
|
|
60
|
+
"prettier": "^3.2.4",
|
|
61
|
+
"projen": "^0.79.1",
|
|
62
|
+
"standard-version": "^9",
|
|
63
|
+
"ts-jest": "^29.1.1",
|
|
64
|
+
"ts-node": "^10.9.2",
|
|
65
|
+
"typescript": "~5.2.0"
|
|
66
|
+
},
|
|
67
|
+
"peerDependencies": {
|
|
68
|
+
"@cdktf/provider-azurerm": "9.0.8",
|
|
69
|
+
"cdktf": "0.17.3",
|
|
70
|
+
"constructs": "^10.1.106"
|
|
71
|
+
},
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"@cdktf/provider-azurerm": "9.0.8",
|
|
74
|
+
"cdktf": "0.17.3",
|
|
75
|
+
"moment": "^2.30.1",
|
|
76
|
+
"nanoid": "^4.0.2",
|
|
77
|
+
"ts-md5": "^1.3.1"
|
|
78
|
+
},
|
|
79
|
+
"bundledDependencies": [
|
|
80
|
+
"moment",
|
|
81
|
+
"nanoid",
|
|
82
|
+
"ts-md5"
|
|
83
|
+
],
|
|
84
|
+
"keywords": [
|
|
85
|
+
"azure",
|
|
86
|
+
"cdk",
|
|
87
|
+
"cdktf",
|
|
88
|
+
"cloud",
|
|
89
|
+
"devops",
|
|
90
|
+
"infrastructure",
|
|
91
|
+
"terraform"
|
|
92
|
+
],
|
|
93
|
+
"engines": {
|
|
94
|
+
"node": ">= 20.10.0"
|
|
95
|
+
},
|
|
96
|
+
"main": "lib/index.js",
|
|
97
|
+
"license": "UNLICENSED",
|
|
98
|
+
"publishConfig": {
|
|
99
|
+
"access": "public"
|
|
100
|
+
},
|
|
101
|
+
"version": "0.0.3-pre.6",
|
|
102
|
+
"jest": {
|
|
103
|
+
"testMatch": [
|
|
104
|
+
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
|
|
105
|
+
"<rootDir>/(|src)/**/*(*.)@(spec|test).ts?(x)"
|
|
106
|
+
],
|
|
107
|
+
"clearMocks": true,
|
|
108
|
+
"collectCoverage": true,
|
|
109
|
+
"coverageReporters": [
|
|
110
|
+
"json",
|
|
111
|
+
"lcov",
|
|
112
|
+
"clover",
|
|
113
|
+
"cobertura",
|
|
114
|
+
"text"
|
|
115
|
+
],
|
|
116
|
+
"coverageDirectory": "coverage",
|
|
117
|
+
"coveragePathIgnorePatterns": [
|
|
118
|
+
"/node_modules/"
|
|
119
|
+
],
|
|
120
|
+
"testPathIgnorePatterns": [
|
|
121
|
+
"/node_modules/"
|
|
122
|
+
],
|
|
123
|
+
"watchPathIgnorePatterns": [
|
|
124
|
+
"/node_modules/"
|
|
125
|
+
],
|
|
126
|
+
"reporters": [
|
|
127
|
+
"default",
|
|
128
|
+
[
|
|
129
|
+
"jest-junit",
|
|
130
|
+
{
|
|
131
|
+
"outputDirectory": "test-reports"
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
],
|
|
135
|
+
"transform": {
|
|
136
|
+
"^.+\\.tsx?$": [
|
|
137
|
+
"ts-jest",
|
|
138
|
+
{
|
|
139
|
+
"tsconfig": "tsconfig.dev.json"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"setupFilesAfterEnv": [
|
|
144
|
+
"<rootDir>/setup.js"
|
|
145
|
+
],
|
|
146
|
+
"globals": {}
|
|
147
|
+
},
|
|
148
|
+
"types": "lib/index.d.ts",
|
|
149
|
+
"stability": "stable",
|
|
150
|
+
"jsii": {
|
|
151
|
+
"outdir": "dist",
|
|
152
|
+
"targets": {},
|
|
153
|
+
"tsc": {
|
|
154
|
+
"outDir": "lib",
|
|
155
|
+
"rootDir": "src"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
159
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
const baseDir = './src';
|
|
5
|
+
const excludeDirs = ['test', 'module', 'util', 'testing']; // Add any directories you want to exclude
|
|
6
|
+
|
|
7
|
+
function generateLibIndex(libDir) {
|
|
8
|
+
const files = fs.readdirSync(libDir, { withFileTypes: true });
|
|
9
|
+
const exports = files
|
|
10
|
+
.filter(file => file.isFile() && file.name.endsWith('.ts') && file.name !== 'index.ts')
|
|
11
|
+
.map(file => `export * from './${path.basename(file.name, '.ts')}';\n`)
|
|
12
|
+
.join('');
|
|
13
|
+
|
|
14
|
+
fs.writeFileSync(path.join(libDir, 'index.ts'), exports);
|
|
15
|
+
console.log(`index.ts generated in ${libDir}`);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function generateModuleIndex(moduleDir) {
|
|
19
|
+
const libDir = path.join(moduleDir, 'lib');
|
|
20
|
+
if (fs.existsSync(libDir) && fs.statSync(libDir).isDirectory()) {
|
|
21
|
+
generateLibIndex(libDir);
|
|
22
|
+
const exportStatement = `export * from './lib';\n`;
|
|
23
|
+
fs.writeFileSync(path.join(moduleDir, 'index.ts'), exportStatement);
|
|
24
|
+
console.log(`index.ts generated in ${moduleDir}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function findSubdirectories(dir, dirList = []) {
|
|
29
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
30
|
+
entries.forEach(entry => {
|
|
31
|
+
if (entry.isDirectory() && !excludeDirs.includes(entry.name)) {
|
|
32
|
+
dirList.push(path.join(dir, entry.name));
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return dirList;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function generateIndex() {
|
|
39
|
+
const subdirectories = findSubdirectories(baseDir);
|
|
40
|
+
const exports = subdirectories.map(dir => {
|
|
41
|
+
const dirName = path.basename(dir).replace(/-/g, '_');
|
|
42
|
+
const relativePath = path.relative(baseDir, dir);
|
|
43
|
+
return `export * as ${dirName} from './${relativePath}';\n`;
|
|
44
|
+
}).join('');
|
|
45
|
+
|
|
46
|
+
fs.writeFileSync(path.join(baseDir, 'index.ts'), exports);
|
|
47
|
+
console.log('index.ts generated in src');
|
|
48
|
+
|
|
49
|
+
subdirectories.forEach(generateModuleIndex);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
generateIndex();
|
package/setup.js
ADDED
package/tfsec.json
ADDED
package/util/compute.go
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
package util
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
6
|
+
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07-01/compute"
|
|
7
|
+
|
|
8
|
+
"github.com/gruntwork-io/terratest/modules/azure"
|
|
9
|
+
"github.com/gruntwork-io/terratest/modules/testing"
|
|
10
|
+
"github.com/stretchr/testify/require"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
// GetVirtualMachineScaleSetClient is a helper function that will setup an Azure Virtual Machine Scale Set client on your behalf.
|
|
14
|
+
func GetVirtualMachineScaleSetClient(t testing.TestingT, subscriptionID string) *compute.VirtualMachineScaleSetsClient {
|
|
15
|
+
vmssClient, err := GetVirtualMachineScaleSetClientE(subscriptionID)
|
|
16
|
+
require.NoError(t, err)
|
|
17
|
+
return vmssClient
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// GetVirtualMachineScaleSetClientE is a helper function that will setup an Azure Virtual Machine Scale Set client on your behalf.
|
|
21
|
+
func GetVirtualMachineScaleSetClientE(subscriptionID string) (*compute.VirtualMachineScaleSetsClient, error) {
|
|
22
|
+
// Create a VMSS client
|
|
23
|
+
vmssClient := compute.NewVirtualMachineScaleSetsClient(subscriptionID)
|
|
24
|
+
|
|
25
|
+
// Create an authorizer
|
|
26
|
+
authorizer, err := azure.NewAuthorizer()
|
|
27
|
+
if err != nil {
|
|
28
|
+
return nil, err
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Attach authorizer to the client
|
|
32
|
+
vmssClient.Authorizer = *authorizer
|
|
33
|
+
return &vmssClient, nil
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// VirtualMachineScaleSetExists indicates whether the specified Azure Virtual Machine Scale Set exists.
|
|
37
|
+
// This function would fail the test if there is an error.
|
|
38
|
+
func VirtualMachineScaleSetExists(t testing.TestingT, vmssName string, resGroupName string, subscriptionID string) bool {
|
|
39
|
+
exists, err := VirtualMachineScaleSetExistsE(vmssName, resGroupName, subscriptionID)
|
|
40
|
+
require.NoError(t, err)
|
|
41
|
+
return exists
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// VirtualMachineScaleSetExistsE indicates whether the specified Azure Virtual Machine Scale Set exists.
|
|
45
|
+
func VirtualMachineScaleSetExistsE(vmssName string, resGroupName string, subscriptionID string) (bool, error) {
|
|
46
|
+
// Get VMSS client
|
|
47
|
+
client, err := GetVirtualMachineScaleSetClientE(subscriptionID)
|
|
48
|
+
if err != nil {
|
|
49
|
+
return false, err
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Get the VMSS
|
|
53
|
+
_, err = client.Get(context.Background(), resGroupName, vmssName)
|
|
54
|
+
if err != nil {
|
|
55
|
+
if azure.ResourceNotFoundErrorExists(err) {
|
|
56
|
+
return false, nil
|
|
57
|
+
}
|
|
58
|
+
return false, err
|
|
59
|
+
}
|
|
60
|
+
return true, nil
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// GetVirtualMachineScaleSet gets a Virtual Machine Scale Set in the specified Azure Resource Group.
|
|
64
|
+
// This function would fail the test if there is an error.
|
|
65
|
+
func GetVirtualMachineScaleSet(t testing.TestingT, vmssName string, resGroupName string, subscriptionID string) *compute.VirtualMachineScaleSet {
|
|
66
|
+
vmss, err := GetVirtualMachineScaleSetE(vmssName, resGroupName, subscriptionID)
|
|
67
|
+
require.NoError(t, err)
|
|
68
|
+
return vmss
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// GetVirtualMachineScaleSetE gets a Virtual Machine Scale Set in the specified Azure Resource Group.
|
|
72
|
+
func GetVirtualMachineScaleSetE(vmssName string, resGroupName string, subscriptionID string) (*compute.VirtualMachineScaleSet, error) {
|
|
73
|
+
// Get the VMSS client reference
|
|
74
|
+
client, err := GetVirtualMachineScaleSetClientE(subscriptionID)
|
|
75
|
+
if err != nil {
|
|
76
|
+
return nil, err
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Get the VMSS object
|
|
80
|
+
vmss, err := client.Get(context.Background(), resGroupName, vmssName)
|
|
81
|
+
if err != nil {
|
|
82
|
+
return nil, err
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return &vmss, nil
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// GetSkuOfVirtualMachineScaleSet gets the SKU of the specified Azure Virtual Machine Scale Set.
|
|
89
|
+
// This function would fail the test if there is an error.
|
|
90
|
+
func GetSkuOfVirtualMachineScaleSet(t testing.TestingT, vmssName string, resGroupName string, subscriptionID string) *compute.Sku {
|
|
91
|
+
sku, err := GetSkuOfVirtualMachineScaleSetE(vmssName, resGroupName, subscriptionID)
|
|
92
|
+
require.NoError(t, err)
|
|
93
|
+
|
|
94
|
+
return sku
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// GetSkuOfVirtualMachineScaleSetE gets the SKU of the specified Azure Virtual Machine Scale Set.
|
|
98
|
+
func GetSkuOfVirtualMachineScaleSetE(vmssName string, resGroupName string, subscriptionID string) (*compute.Sku, error) {
|
|
99
|
+
// Get VMSS Object
|
|
100
|
+
vmss, err := GetVirtualMachineScaleSetE(vmssName, resGroupName, subscriptionID)
|
|
101
|
+
if err != nil {
|
|
102
|
+
return nil, err
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return vmss.Sku, nil
|
|
106
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
package util
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"fmt"
|
|
5
|
+
"os"
|
|
6
|
+
"path"
|
|
7
|
+
"strings"
|
|
8
|
+
|
|
9
|
+
"github.com/gruntwork-io/terratest/modules/terraform"
|
|
10
|
+
"github.com/gruntwork-io/terratest/modules/testing"
|
|
11
|
+
"github.com/stretchr/testify/require"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
// CdkTFInvalidBinary occurs when a cdktf function is called and the TerraformBinary is
|
|
15
|
+
// set to a value other than cdktf
|
|
16
|
+
type CdkTFInvalidBinary string
|
|
17
|
+
|
|
18
|
+
func (err CdkTFInvalidBinary) Error() string {
|
|
19
|
+
return fmt.Sprintf("cdktf must be set as TerraformBinary to use this function. [ TerraformBinary : %s ]", string(err))
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
func CdkTFSynth(t testing.TestingT, options *terraform.Options, exampleFile string) (string, error) {
|
|
23
|
+
if options.TerraformBinary != "cdktf" {
|
|
24
|
+
t.Errorf("Invalid Terraform Binary")
|
|
25
|
+
return "Failure", CdkTFInvalidBinary(options.TerraformBinary)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Get the directory of the example_file
|
|
29
|
+
dir := path.Dir(exampleFile)
|
|
30
|
+
|
|
31
|
+
// Replace the filename with "tempstacks"
|
|
32
|
+
tempstackfolder := path.Join(dir, ".tempstacks")
|
|
33
|
+
|
|
34
|
+
// RunTerraformCommandE doesn't actually raise any errors. It returns them.
|
|
35
|
+
result, err := terraform.RunTerraformCommandE(t, options, terraform.FormatArgs(options, "synth", "--app", "npx ts-node"+" "+exampleFile, "--output", tempstackfolder)...)
|
|
36
|
+
if err != nil {
|
|
37
|
+
t.Errorf("%s", err.Error())
|
|
38
|
+
}
|
|
39
|
+
return result, err
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
func CdkTFOutput(t testing.TestingT, options *terraform.Options, variableName string) string {
|
|
43
|
+
options.TerraformBinary = "terraform"
|
|
44
|
+
|
|
45
|
+
// Clone options with deep copy
|
|
46
|
+
tfoutputOptions, err := options.Clone()
|
|
47
|
+
if err != nil {
|
|
48
|
+
return fmt.Sprintf("%s", err)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// List all directories inside stacksFolder
|
|
52
|
+
stackDirs, err := os.ReadDir(".tempstacks/stacks")
|
|
53
|
+
|
|
54
|
+
if err != nil {
|
|
55
|
+
return fmt.Sprintf("%s", err)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Iterate through each directory inside the "stacks" folder and run terraform.Output
|
|
59
|
+
for _, stackDir := range stackDirs {
|
|
60
|
+
if stackDir.IsDir() {
|
|
61
|
+
currentDir := path.Join(".tempstacks/stacks", stackDir.Name())
|
|
62
|
+
tfoutputOptions.TerraformDir = currentDir
|
|
63
|
+
|
|
64
|
+
outputValue := terraform.Output(t, tfoutputOptions, variableName)
|
|
65
|
+
if outputValue != "" {
|
|
66
|
+
return outputValue
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// If no value is found after iterating through all directories
|
|
72
|
+
return ""
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
func CdkTFApplyAll(t testing.TestingT, options *terraform.Options, exampleFile string) (string, error) {
|
|
76
|
+
|
|
77
|
+
options.TerraformBinary = "cdktf"
|
|
78
|
+
|
|
79
|
+
// Get the directory of the example_file
|
|
80
|
+
dir := path.Dir(exampleFile)
|
|
81
|
+
|
|
82
|
+
// Replace the filename with "tempstacks"
|
|
83
|
+
tempstackfolder := path.Join(dir, ".tempstacks")
|
|
84
|
+
|
|
85
|
+
// If Vars is present, convert it to Args and remove it from the struct
|
|
86
|
+
var args []string
|
|
87
|
+
var varsArgs []string
|
|
88
|
+
if options.Vars != nil {
|
|
89
|
+
varsArgs = FormatTerraformVarsAsArgs(options.Vars)
|
|
90
|
+
options.Vars = nil
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Format the remaining options into arguments
|
|
94
|
+
args = append(args, terraform.FormatArgs(options, "deploy", "*", "--auto-approve", "--app", "npx ts-node"+" "+exampleFile, "--output", tempstackfolder)...)
|
|
95
|
+
|
|
96
|
+
// If Vars was present, append its arguments to the end
|
|
97
|
+
if varsArgs != nil {
|
|
98
|
+
args = append(args, varsArgs...)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// RunTerraformCommandE doesn't actually raise any errors. It returns them.
|
|
102
|
+
result, err := terraform.RunTerraformCommandE(t, options, args...)
|
|
103
|
+
|
|
104
|
+
if err != nil {
|
|
105
|
+
t.Errorf("%s", err.Error())
|
|
106
|
+
}
|
|
107
|
+
return result, err
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
func CdkTFDestroyAll(t testing.TestingT, options *terraform.Options, exampleFile string) (string, error) {
|
|
111
|
+
|
|
112
|
+
options.TerraformBinary = "cdktf"
|
|
113
|
+
|
|
114
|
+
// Get the directory of the example_file
|
|
115
|
+
dir := path.Dir(exampleFile)
|
|
116
|
+
|
|
117
|
+
// Replace the filename with "tempstacks"
|
|
118
|
+
tempstackfolder := path.Join(dir, ".tempstacks")
|
|
119
|
+
|
|
120
|
+
cmdoutput := fmt.Sprintf("--output %s", tempstackfolder)
|
|
121
|
+
|
|
122
|
+
// RunTerraformCommandE doesn't actually raise any errors. It returns them.
|
|
123
|
+
result, err := terraform.RunTerraformCommandE(t, options, terraform.FormatArgs(options, "destroy", "*", "--skip-synth", "--auto-approve", "--app", "npx ts-node"+" "+exampleFile, cmdoutput)...)
|
|
124
|
+
if err != nil {
|
|
125
|
+
t.Errorf("%s", err.Error())
|
|
126
|
+
}
|
|
127
|
+
return result, err
|
|
128
|
+
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
func CdkTFApplyAllAndIdempotent(t testing.TestingT, options *terraform.Options, exampleFile string) (string, error) {
|
|
132
|
+
options.TerraformBinary = "cdktf"
|
|
133
|
+
|
|
134
|
+
// Clone options with deep copy
|
|
135
|
+
tfplanOptions, err := options.Clone()
|
|
136
|
+
if err != nil {
|
|
137
|
+
return "", err
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
out, err := CdkTFApplyAll(t, options, exampleFile)
|
|
141
|
+
if err != nil {
|
|
142
|
+
return out, err
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
nonIdempotentStacks, err := CheckStacksIdempotency(t, tfplanOptions, ".tempstacks/stacks")
|
|
146
|
+
if err != nil {
|
|
147
|
+
return out, err
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if len(nonIdempotentStacks) > 0 {
|
|
151
|
+
stacksStr := strings.Join(nonIdempotentStacks, ", ")
|
|
152
|
+
err = fmt.Errorf("terraform configuration not idempotent for stacks: %s", stacksStr)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
require.NoError(t, err)
|
|
156
|
+
|
|
157
|
+
return out, err
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
func CheckStacksIdempotency(t testing.TestingT, options *terraform.Options, tempstackfolder string) ([]string, error) {
|
|
161
|
+
options.TerraformBinary = "terraform"
|
|
162
|
+
|
|
163
|
+
// List all directories under .tempstacks/stacks
|
|
164
|
+
stackFolders, err := os.ReadDir(tempstackfolder)
|
|
165
|
+
if err != nil {
|
|
166
|
+
return nil, err
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
nonIdempotentStacks := []string{} // Slice to store stack directories with non-zero planexitcode
|
|
170
|
+
|
|
171
|
+
for _, stackFolder := range stackFolders {
|
|
172
|
+
if stackFolder.IsDir() {
|
|
173
|
+
stackPath := path.Join(tempstackfolder, stackFolder.Name())
|
|
174
|
+
options.TerraformDir = stackPath
|
|
175
|
+
|
|
176
|
+
exitCode := terraform.PlanExitCode(t, options)
|
|
177
|
+
|
|
178
|
+
// First, check the exit code.
|
|
179
|
+
if exitCode != 0 {
|
|
180
|
+
fmt.Printf("terraform plan exit code: %d\n", exitCode)
|
|
181
|
+
nonIdempotentStacks = append(nonIdempotentStacks, stackFolder.Name())
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Then, handle any other errors from the PlanExitCodeE function.
|
|
185
|
+
if err != nil {
|
|
186
|
+
t.Errorf("%s", err.Error())
|
|
187
|
+
require.NoError(t, err) // This will fail the test immediately if there's an error.
|
|
188
|
+
return nil, err
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return nonIdempotentStacks, nil
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
func formatTerraformArgs(vars map[string]interface{}, prefix string, useSpaceAsSeparator bool) []string {
|
|
197
|
+
var args []string
|
|
198
|
+
|
|
199
|
+
for key, value := range vars {
|
|
200
|
+
argValue := fmt.Sprintf("%s=%s", key, value)
|
|
201
|
+
if useSpaceAsSeparator {
|
|
202
|
+
args = append(args, prefix, argValue)
|
|
203
|
+
} else {
|
|
204
|
+
args = append(args, fmt.Sprintf("%s=%s", prefix, argValue))
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return args
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
func FormatTerraformVarsAsArgs(vars map[string]interface{}) []string {
|
|
212
|
+
return formatTerraformArgs(vars, "--var", true)
|
|
213
|
+
}
|
package/util/util.go
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
package util
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"encoding/json"
|
|
5
|
+
"math/rand"
|
|
6
|
+
"os"
|
|
7
|
+
"os/exec"
|
|
8
|
+
"strings"
|
|
9
|
+
"time"
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
func GetSubscriptionID() string {
|
|
13
|
+
subscriptionID := os.Getenv("ARM_SUBSCRIPTION_ID")
|
|
14
|
+
|
|
15
|
+
if subscriptionID == "" {
|
|
16
|
+
out, err := exec.Command("az", "account", "show", "--query", "id", "-o", "tsv").Output()
|
|
17
|
+
if err != nil {
|
|
18
|
+
return "" // or handle error appropriately
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
subscriptionID = strings.TrimSpace(string(out))
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return subscriptionID
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
func ReadFile(filePath string) ([]byte, error) {
|
|
28
|
+
return os.ReadFile(filePath)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
func UnmarshalJSON(data []byte) (map[string]interface{}, error) {
|
|
32
|
+
var jsonData map[string]interface{}
|
|
33
|
+
err := json.Unmarshal(data, &jsonData)
|
|
34
|
+
return jsonData, err
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
func RandomizeResourceNames(resourceData map[string]interface{}, resourceName string) {
|
|
38
|
+
if specificResourceData, ok := resourceData[resourceName].(map[string]interface{}); ok {
|
|
39
|
+
for _, v := range specificResourceData {
|
|
40
|
+
if specificResource, ok := v.(map[string]interface{}); ok {
|
|
41
|
+
if _, ok := specificResource["name"]; ok {
|
|
42
|
+
specificResource["name"] = randomString(10)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
func MarshalJSON(jsonData map[string]interface{}) ([]byte, error) {
|
|
50
|
+
return json.Marshal(jsonData)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
func WriteFile(filePath string, jsonDataBytes []byte) error {
|
|
54
|
+
return os.WriteFile(filePath, jsonDataBytes, os.ModePerm)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
func RandomizeUniqueResources(filePath string) error {
|
|
58
|
+
data, err := ReadFile(filePath)
|
|
59
|
+
if err != nil {
|
|
60
|
+
return err
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
jsonData, err := UnmarshalJSON(data)
|
|
64
|
+
if err != nil {
|
|
65
|
+
return err
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if resourceData, ok := jsonData["resource"].(map[string]interface{}); ok {
|
|
69
|
+
RandomizeResourceNames(resourceData, "azurerm_storage_account")
|
|
70
|
+
RandomizeResourceNames(resourceData, "azurerm_resource_group")
|
|
71
|
+
RandomizeResourceNames(resourceData, "azurerm_eventhub_namespace")
|
|
72
|
+
RandomizeResourceNames(resourceData, "azurerm_key_vault")
|
|
73
|
+
RandomizeResourceNames(resourceData, "azurerm_container_registry")
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
jsonDataBytes, err := MarshalJSON(jsonData)
|
|
77
|
+
if err != nil {
|
|
78
|
+
return err
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
err = WriteFile(filePath, jsonDataBytes)
|
|
82
|
+
if err != nil {
|
|
83
|
+
return err
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return nil
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Generate a random string of the specified length
|
|
90
|
+
const allowedChars = "abcdefghijklmnopqrstuvwxyz0123456789"
|
|
91
|
+
|
|
92
|
+
func randomString(length int) string {
|
|
93
|
+
rand.Seed(time.Now().UnixNano())
|
|
94
|
+
chars := []rune(allowedChars)
|
|
95
|
+
result := make([]rune, length)
|
|
96
|
+
for i := range result {
|
|
97
|
+
result[i] = chars[rand.Intn(len(chars))]
|
|
98
|
+
}
|
|
99
|
+
return string(result)
|
|
100
|
+
}
|