From 472b75067ad48ca537277fbba2f024272009a8d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 08:58:50 +0000 Subject: [PATCH 1/2] provider(deps): bump github.com/dynatrace-oss/terraform-provider-dynatrace Bumps the modules group in /provider with 1 update: [github.com/dynatrace-oss/terraform-provider-dynatrace](https://github.com/dynatrace-oss/terraform-provider-dynatrace). Updates `github.com/dynatrace-oss/terraform-provider-dynatrace` from 1.69.1 to 1.70.0 - [Release notes](https://github.com/dynatrace-oss/terraform-provider-dynatrace/releases) - [Changelog](https://github.com/dynatrace-oss/terraform-provider-dynatrace/blob/main/.goreleaser.yml) - [Commits](https://github.com/dynatrace-oss/terraform-provider-dynatrace/compare/v1.69.1...v1.70.0) --- updated-dependencies: - dependency-name: github.com/dynatrace-oss/terraform-provider-dynatrace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: modules ... Signed-off-by: dependabot[bot] --- provider/go.mod | 2 +- provider/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/provider/go.mod b/provider/go.mod index 1a3ddb0b..3fb93645 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -7,7 +7,7 @@ toolchain go1.23.2 replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10 require ( - github.com/dynatrace-oss/terraform-provider-dynatrace v1.69.1 + github.com/dynatrace-oss/terraform-provider-dynatrace v1.70.0 github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0 github.com/pulumi/pulumi/sdk/v3 v3.137.0 ) diff --git a/provider/go.sum b/provider/go.sum index 2b25f1e5..5f226b16 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1335,8 +1335,8 @@ github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cn github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/dynatrace-oss/terraform-provider-dynatrace v1.69.1 h1:TpbK/WaWaiQCbPKNqa2tnJzsRN7Sx6wGroV3lWxK4sA= -github.com/dynatrace-oss/terraform-provider-dynatrace v1.69.1/go.mod h1:xZtzuinFwp66xA4IliYJ6SFuxEBJPr95p3tGBOWtr/s= +github.com/dynatrace-oss/terraform-provider-dynatrace v1.70.0 h1:BmKTGpv2ruMK4lgMSqe2X8kyctZsBfQPxXBqGgFp/Hs= +github.com/dynatrace-oss/terraform-provider-dynatrace v1.70.0/go.mod h1:xZtzuinFwp66xA4IliYJ6SFuxEBJPr95p3tGBOWtr/s= github.com/dynatrace/dynatrace-configuration-as-code-core v0.7.0 h1:ITdHSNd3VCEF0NJqg5GKFstAqQWq0gG4Mcri8OPU9nM= github.com/dynatrace/dynatrace-configuration-as-code-core v0.7.0/go.mod h1:MASzWOV2hzoo8nbXuMcgMIB3XmGrcm16Fc0rakhwiTw= github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= From 03939744db20f7cc3a0fa8dd2f403b016ebe8481 Mon Sep 17 00:00:00 2001 From: Piers Karsenbarg Date: Sun, 17 Nov 2024 21:16:22 +0000 Subject: [PATCH 2/2] Updated upstream modules --- .../cmd/pulumi-resource-dynatrace/schema.json | 233 +++++++++++++- provider/resources.go | 8 + sdk/dotnet/CloudDevelopmentEnvironments.cs | 106 +++++++ sdk/dotnet/DirectShares.cs | 213 ++++++++++++- sdk/dotnet/Document.cs | 228 +++++++++++++- sdk/dotnet/GetIamPolicies.cs | 31 ++ .../Inputs/AutomationWorkflowTasksTaskArgs.cs | 6 + .../AutomationWorkflowTasksTaskGetArgs.cs | 6 + sdk/dotnet/K8sMonitoring.cs | 6 +- sdk/dotnet/KubernetesSpm.cs | 112 +++++++ sdk/dotnet/LogAgentFeatureFlags.cs | 112 +++++++ .../Outputs/AutomationWorkflowTasksTask.cs | 7 + sdk/dotnet/ProblemRecordPropagationRules.cs | 130 ++++++++ .../dynatrace/cloudDevelopmentEnvironments.go | 214 +++++++++++++ sdk/go/dynatrace/directShares.go | 151 ++++++++- sdk/go/dynatrace/document.go | 179 ++++++++++- sdk/go/dynatrace/getIamPolicies.go | 11 + sdk/go/dynatrace/init.go | 28 ++ sdk/go/dynatrace/k8sMonitoring.go | 25 +- sdk/go/dynatrace/kubernetesSpm.go | 233 ++++++++++++++ sdk/go/dynatrace/logAgentFeatureFlags.go | 233 ++++++++++++++ .../problemRecordPropagationRules.go | 254 +++++++++++++++ sdk/go/dynatrace/pulumiTypes.go | 9 + sdk/nodejs/cloudDevelopmentEnvironments.ts | 81 +++++ sdk/nodejs/directShares.ts | 137 +++++++- sdk/nodejs/document.ts | 147 ++++++++- sdk/nodejs/getIamPolicies.ts | 14 + sdk/nodejs/index.ts | 32 ++ sdk/nodejs/k8sMonitoring.ts | 13 +- sdk/nodejs/kubernetesSpm.ts | 98 ++++++ sdk/nodejs/logAgentFeatureFlags.ts | 98 ++++++ sdk/nodejs/problemRecordPropagationRules.ts | 118 +++++++ sdk/nodejs/tsconfig.json | 4 + sdk/nodejs/types/input.ts | 4 + sdk/nodejs/types/output.ts | 4 + sdk/python/pulumiverse_dynatrace/__init__.py | 36 +++ sdk/python/pulumiverse_dynatrace/_inputs.py | 20 ++ .../cloud_development_environments.py | 148 +++++++++ .../pulumiverse_dynatrace/direct_shares.py | 274 +++++++++++++++- sdk/python/pulumiverse_dynatrace/document.py | 296 +++++++++++++++++- .../pulumiverse_dynatrace/get_iam_policies.py | 22 +- .../pulumiverse_dynatrace/k8s_monitoring.py | 44 +-- .../pulumiverse_dynatrace/kubernetes_spm.py | 196 ++++++++++++ .../log_agent_feature_flags.py | 196 ++++++++++++ sdk/python/pulumiverse_dynatrace/outputs.py | 16 +- .../problem_record_propagation_rules.py | 245 +++++++++++++++ 46 files changed, 4701 insertions(+), 77 deletions(-) create mode 100644 sdk/dotnet/CloudDevelopmentEnvironments.cs create mode 100644 sdk/dotnet/KubernetesSpm.cs create mode 100644 sdk/dotnet/LogAgentFeatureFlags.cs create mode 100644 sdk/dotnet/ProblemRecordPropagationRules.cs create mode 100644 sdk/go/dynatrace/cloudDevelopmentEnvironments.go create mode 100644 sdk/go/dynatrace/kubernetesSpm.go create mode 100644 sdk/go/dynatrace/logAgentFeatureFlags.go create mode 100644 sdk/go/dynatrace/problemRecordPropagationRules.go create mode 100644 sdk/nodejs/cloudDevelopmentEnvironments.ts create mode 100644 sdk/nodejs/kubernetesSpm.ts create mode 100644 sdk/nodejs/logAgentFeatureFlags.ts create mode 100644 sdk/nodejs/problemRecordPropagationRules.ts create mode 100644 sdk/python/pulumiverse_dynatrace/cloud_development_environments.py create mode 100644 sdk/python/pulumiverse_dynatrace/kubernetes_spm.py create mode 100644 sdk/python/pulumiverse_dynatrace/log_agent_feature_flags.py create mode 100644 sdk/python/pulumiverse_dynatrace/problem_record_propagation_rules.py diff --git a/provider/cmd/pulumi-resource-dynatrace/schema.json b/provider/cmd/pulumi-resource-dynatrace/schema.json index 13e6764b..a2f105b4 100644 --- a/provider/cmd/pulumi-resource-dynatrace/schema.json +++ b/provider/cmd/pulumi-resource-dynatrace/schema.json @@ -1681,6 +1681,10 @@ "type": "string", "description": "Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800\n" }, + "waitBefore": { + "type": "string", + "description": "Specifies a default task wait before in seconds. 0 is used when not set\n" + }, "withItems": { "type": "string", "description": "Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}`\n" @@ -49271,6 +49275,54 @@ "type": "object" } }, + "dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments": { + "properties": { + "cloudDevelopmentEnvironments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`.\n", + "language": { + "csharp": { + "name": "Environments" + } + } + } + }, + "inputProperties": { + "cloudDevelopmentEnvironments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`.\n", + "language": { + "csharp": { + "name": "Environments" + } + } + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering CloudDevelopmentEnvironments resources.\n", + "properties": { + "cloudDevelopmentEnvironments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`.\n", + "language": { + "csharp": { + "name": "Environments" + } + } + } + }, + "type": "object" + } + }, "dynatrace:index/cloudFoundry:CloudFoundry": { "properties": { "activeGateGroup": { @@ -52268,7 +52320,7 @@ } }, "dynatrace:index/directShares:DirectShares": { - "description": "\u003e **Dynatrace SaaS only**\n\n\u003e To utilize this resource, please define the environment variables `DT_CLIENT_ID`, `DT_CLIENT_SECRET`, `DT_ACCOUNT_ID` with an OAuth client including the following permissions: **Read direct-shares** (`document:direct-shares:read`), **Write direct-shares** (`document:direct-shares:write`), and **Delete direct-shares** (`document:direct-shares:delete`).\n\n\u003e This resource is currently not covered by the export utility.\n\n## Dynatrace Documentation\n\n- Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service\n\n## Resource Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dynatrace from \"@pulumiverse/dynatrace\";\n\nconst _this = new dynatrace.DirectShares(\"this\", {\n access: \"read-write\",\n documentId: \"441564f0-23c9-40ef-b344-18c02c23d712\",\n recipients: {\n recipients: [\n {\n id: \"441664f0-23c9-40ef-b344-18c02c23d787\",\n type: \"user\",\n },\n {\n id: \"441664f0-23c9-40ef-b344-18c02c23d788\",\n type: \"group\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_dynatrace as dynatrace\n\nthis = dynatrace.DirectShares(\"this\",\n access=\"read-write\",\n document_id=\"441564f0-23c9-40ef-b344-18c02c23d712\",\n recipients={\n \"recipients\": [\n {\n \"id\": \"441664f0-23c9-40ef-b344-18c02c23d787\",\n \"type\": \"user\",\n },\n {\n \"id\": \"441664f0-23c9-40ef-b344-18c02c23d788\",\n \"type\": \"group\",\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Dynatrace = Pulumiverse.Dynatrace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @this = new Dynatrace.DirectShares(\"this\", new()\n {\n Access = \"read-write\",\n DocumentId = \"441564f0-23c9-40ef-b344-18c02c23d712\",\n Recipients = new Dynatrace.Inputs.DirectSharesRecipientsArgs\n {\n Recipients = new[]\n {\n new Dynatrace.Inputs.DirectSharesRecipientsRecipientArgs\n {\n Id = \"441664f0-23c9-40ef-b344-18c02c23d787\",\n Type = \"user\",\n },\n new Dynatrace.Inputs.DirectSharesRecipientsRecipientArgs\n {\n Id = \"441664f0-23c9-40ef-b344-18c02c23d788\",\n Type = \"group\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynatrace.NewDirectShares(ctx, \"this\", \u0026dynatrace.DirectSharesArgs{\n\t\t\tAccess: pulumi.String(\"read-write\"),\n\t\t\tDocumentId: pulumi.String(\"441564f0-23c9-40ef-b344-18c02c23d712\"),\n\t\t\tRecipients: \u0026dynatrace.DirectSharesRecipientsArgs{\n\t\t\t\tRecipients: dynatrace.DirectSharesRecipientsRecipientArray{\n\t\t\t\t\t\u0026dynatrace.DirectSharesRecipientsRecipientArgs{\n\t\t\t\t\t\tId: pulumi.String(\"441664f0-23c9-40ef-b344-18c02c23d787\"),\n\t\t\t\t\t\tType: pulumi.String(\"user\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026dynatrace.DirectSharesRecipientsRecipientArgs{\n\t\t\t\t\t\tId: pulumi.String(\"441664f0-23c9-40ef-b344-18c02c23d788\"),\n\t\t\t\t\t\tType: pulumi.String(\"group\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dynatrace.DirectShares;\nimport com.pulumi.dynatrace.DirectSharesArgs;\nimport com.pulumi.dynatrace.inputs.DirectSharesRecipientsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var this_ = new DirectShares(\"this\", DirectSharesArgs.builder()\n .access(\"read-write\")\n .documentId(\"441564f0-23c9-40ef-b344-18c02c23d712\")\n .recipients(DirectSharesRecipientsArgs.builder()\n .recipients( \n DirectSharesRecipientsRecipientArgs.builder()\n .id(\"441664f0-23c9-40ef-b344-18c02c23d787\")\n .type(\"user\")\n .build(),\n DirectSharesRecipientsRecipientArgs.builder()\n .id(\"441664f0-23c9-40ef-b344-18c02c23d788\")\n .type(\"group\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n this:\n type: dynatrace:DirectShares\n properties:\n access: read-write\n documentId: 441564f0-23c9-40ef-b344-18c02c23d712\n recipients:\n recipients:\n - id: 441664f0-23c9-40ef-b344-18c02c23d787\n type: user\n - id: 441664f0-23c9-40ef-b344-18c02c23d788\n type: group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "\u003e **Dynatrace SaaS only**\n\n\u003e To utilize this resource, please define the environment variables `DT_CLIENT_ID`, `DT_CLIENT_SECRET`, `DT_ACCOUNT_ID` with an OAuth client including the following permissions: **Read direct-shares** (`document:direct-shares:read`), **Write direct-shares** (`document:direct-shares:write`), and **Delete direct-shares** (`document:direct-shares:delete`).\n\n\u003e This resource is currently not covered by the export utility.\n\n## Dynatrace Documentation\n\n- Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service\n\n## Resource Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dynatrace from \"@pulumiverse/dynatrace\";\n\nconst thisDocument = new dynatrace.Document(\"thisDocument\", {\n type: \"dashboard\",\n content: JSON.stringify({\n version: 13,\n variables: [],\n tiles: {\n \"0\": {\n type: \"markdown\",\n title: \"\",\n content: \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n },\n \"1\": {\n type: \"data\",\n title: \"\",\n query: \"timeseries avg(dt.host.cpu.user)\",\n queryConfig: {\n additionalFilters: {},\n version: \"4.3.1\",\n datatype: \"metrics\",\n metricKey: \"dt.host.cpu.user\",\n aggregation: \"avg\",\n by: [],\n },\n subType: \"dql-builder-metrics\",\n visualization: \"lineChart\",\n visualizationSettings: {\n thresholds: [],\n chartSettings: {\n gapPolicy: \"connect\",\n circleChartSettings: {\n groupingThresholdType: \"relative\",\n groupingThresholdValue: 0,\n valueType: \"relative\",\n },\n categoryOverrides: {},\n fieldMapping: {\n timestamp: \"timeframe\",\n leftAxisValues: [\"avg(dt.host.cpu.user)\"],\n leftAxisDimensions: [],\n fields: [],\n values: [],\n },\n },\n singleValue: {\n showLabel: true,\n label: \"\",\n prefixIcon: \"\",\n autoscale: true,\n alignment: \"center\",\n colorThresholdTarget: \"value\",\n },\n table: {\n rowDensity: \"condensed\",\n enableSparklines: false,\n hiddenColumns: [],\n lineWrapIds: [],\n columnWidths: {},\n },\n },\n },\n \"2\": {\n type: \"data\",\n title: \"\",\n query: \"timeseries avg(dt.host.memory.used)\",\n queryConfig: {\n additionalFilters: {},\n version: \"4.3.1\",\n datatype: \"metrics\",\n metricKey: \"dt.host.memory.used\",\n aggregation: \"avg\",\n by: [],\n },\n subType: \"dql-builder-metrics\",\n visualization: \"lineChart\",\n visualizationSettings: {\n thresholds: [],\n chartSettings: {\n gapPolicy: \"connect\",\n circleChartSettings: {\n groupingThresholdType: \"relative\",\n groupingThresholdValue: 0,\n valueType: \"relative\",\n },\n categoryOverrides: {},\n fieldMapping: {\n timestamp: \"timeframe\",\n leftAxisValues: [\"avg(dt.host.memory.used)\"],\n leftAxisDimensions: [],\n fields: [],\n values: [],\n },\n categoricalBarChartSettings: {},\n },\n singleValue: {\n showLabel: true,\n label: \"\",\n prefixIcon: \"\",\n autoscale: true,\n alignment: \"center\",\n colorThresholdTarget: \"value\",\n },\n table: {\n rowDensity: \"condensed\",\n enableSparklines: false,\n hiddenColumns: [],\n lineWrapIds: [],\n columnWidths: {},\n },\n },\n },\n },\n layouts: {\n \"0\": {\n x: 0,\n y: 0,\n w: 24,\n h: 14,\n },\n \"1\": {\n x: 0,\n y: 14,\n w: 9,\n h: 6,\n },\n \"2\": {\n x: 15,\n y: 14,\n w: 9,\n h: 6,\n },\n },\n }),\n});\nconst thisDirectShares = new dynatrace.DirectShares(\"thisDirectShares\", {\n documentId: thisDocument.id,\n access: \"read-write\",\n recipients: {\n recipients: [\n {\n id: \"441664f0-23c9-40ef-b344-18c02c23d787\",\n type: \"user\",\n },\n {\n id: \"441664f0-23c9-40ef-b344-18c02c23d788\",\n type: \"group\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_dynatrace as dynatrace\n\nthis_document = dynatrace.Document(\"thisDocument\",\n type=\"dashboard\",\n content=json.dumps({\n \"version\": 13,\n \"variables\": [],\n \"tiles\": {\n \"0\": {\n \"type\": \"markdown\",\n \"title\": \"\",\n \"content\": \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n },\n \"1\": {\n \"type\": \"data\",\n \"title\": \"\",\n \"query\": \"timeseries avg(dt.host.cpu.user)\",\n \"queryConfig\": {\n \"additionalFilters\": {},\n \"version\": \"4.3.1\",\n \"datatype\": \"metrics\",\n \"metricKey\": \"dt.host.cpu.user\",\n \"aggregation\": \"avg\",\n \"by\": [],\n },\n \"subType\": \"dql-builder-metrics\",\n \"visualization\": \"lineChart\",\n \"visualizationSettings\": {\n \"thresholds\": [],\n \"chartSettings\": {\n \"gapPolicy\": \"connect\",\n \"circleChartSettings\": {\n \"groupingThresholdType\": \"relative\",\n \"groupingThresholdValue\": 0,\n \"valueType\": \"relative\",\n },\n \"categoryOverrides\": {},\n \"fieldMapping\": {\n \"timestamp\": \"timeframe\",\n \"leftAxisValues\": [\"avg(dt.host.cpu.user)\"],\n \"leftAxisDimensions\": [],\n \"fields\": [],\n \"values\": [],\n },\n },\n \"singleValue\": {\n \"showLabel\": True,\n \"label\": \"\",\n \"prefixIcon\": \"\",\n \"autoscale\": True,\n \"alignment\": \"center\",\n \"colorThresholdTarget\": \"value\",\n },\n \"table\": {\n \"rowDensity\": \"condensed\",\n \"enableSparklines\": False,\n \"hiddenColumns\": [],\n \"lineWrapIds\": [],\n \"columnWidths\": {},\n },\n },\n },\n \"2\": {\n \"type\": \"data\",\n \"title\": \"\",\n \"query\": \"timeseries avg(dt.host.memory.used)\",\n \"queryConfig\": {\n \"additionalFilters\": {},\n \"version\": \"4.3.1\",\n \"datatype\": \"metrics\",\n \"metricKey\": \"dt.host.memory.used\",\n \"aggregation\": \"avg\",\n \"by\": [],\n },\n \"subType\": \"dql-builder-metrics\",\n \"visualization\": \"lineChart\",\n \"visualizationSettings\": {\n \"thresholds\": [],\n \"chartSettings\": {\n \"gapPolicy\": \"connect\",\n \"circleChartSettings\": {\n \"groupingThresholdType\": \"relative\",\n \"groupingThresholdValue\": 0,\n \"valueType\": \"relative\",\n },\n \"categoryOverrides\": {},\n \"fieldMapping\": {\n \"timestamp\": \"timeframe\",\n \"leftAxisValues\": [\"avg(dt.host.memory.used)\"],\n \"leftAxisDimensions\": [],\n \"fields\": [],\n \"values\": [],\n },\n \"categoricalBarChartSettings\": {},\n },\n \"singleValue\": {\n \"showLabel\": True,\n \"label\": \"\",\n \"prefixIcon\": \"\",\n \"autoscale\": True,\n \"alignment\": \"center\",\n \"colorThresholdTarget\": \"value\",\n },\n \"table\": {\n \"rowDensity\": \"condensed\",\n \"enableSparklines\": False,\n \"hiddenColumns\": [],\n \"lineWrapIds\": [],\n \"columnWidths\": {},\n },\n },\n },\n },\n \"layouts\": {\n \"0\": {\n \"x\": 0,\n \"y\": 0,\n \"w\": 24,\n \"h\": 14,\n },\n \"1\": {\n \"x\": 0,\n \"y\": 14,\n \"w\": 9,\n \"h\": 6,\n },\n \"2\": {\n \"x\": 15,\n \"y\": 14,\n \"w\": 9,\n \"h\": 6,\n },\n },\n }))\nthis_direct_shares = dynatrace.DirectShares(\"thisDirectShares\",\n document_id=this_document.id,\n access=\"read-write\",\n recipients={\n \"recipients\": [\n {\n \"id\": \"441664f0-23c9-40ef-b344-18c02c23d787\",\n \"type\": \"user\",\n },\n {\n \"id\": \"441664f0-23c9-40ef-b344-18c02c23d788\",\n \"type\": \"group\",\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Dynatrace = Pulumiverse.Dynatrace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var thisDocument = new Dynatrace.Document(\"thisDocument\", new()\n {\n Type = \"dashboard\",\n Content = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"version\"] = 13,\n [\"variables\"] = new[]\n {\n },\n [\"tiles\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"0\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"markdown\",\n [\"title\"] = \"\",\n [\"content\"] = \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n },\n [\"1\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"data\",\n [\"title\"] = \"\",\n [\"query\"] = \"timeseries avg(dt.host.cpu.user)\",\n [\"queryConfig\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"additionalFilters\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"version\"] = \"4.3.1\",\n [\"datatype\"] = \"metrics\",\n [\"metricKey\"] = \"dt.host.cpu.user\",\n [\"aggregation\"] = \"avg\",\n [\"by\"] = new[]\n {\n },\n },\n [\"subType\"] = \"dql-builder-metrics\",\n [\"visualization\"] = \"lineChart\",\n [\"visualizationSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"thresholds\"] = new[]\n {\n },\n [\"chartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"gapPolicy\"] = \"connect\",\n [\"circleChartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"groupingThresholdType\"] = \"relative\",\n [\"groupingThresholdValue\"] = 0,\n [\"valueType\"] = \"relative\",\n },\n [\"categoryOverrides\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"fieldMapping\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"timestamp\"] = \"timeframe\",\n [\"leftAxisValues\"] = new[]\n {\n \"avg(dt.host.cpu.user)\",\n },\n [\"leftAxisDimensions\"] = new[]\n {\n },\n [\"fields\"] = new[]\n {\n },\n [\"values\"] = new[]\n {\n },\n },\n },\n [\"singleValue\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"showLabel\"] = true,\n [\"label\"] = \"\",\n [\"prefixIcon\"] = \"\",\n [\"autoscale\"] = true,\n [\"alignment\"] = \"center\",\n [\"colorThresholdTarget\"] = \"value\",\n },\n [\"table\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"rowDensity\"] = \"condensed\",\n [\"enableSparklines\"] = false,\n [\"hiddenColumns\"] = new[]\n {\n },\n [\"lineWrapIds\"] = new[]\n {\n },\n [\"columnWidths\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n [\"2\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"data\",\n [\"title\"] = \"\",\n [\"query\"] = \"timeseries avg(dt.host.memory.used)\",\n [\"queryConfig\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"additionalFilters\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"version\"] = \"4.3.1\",\n [\"datatype\"] = \"metrics\",\n [\"metricKey\"] = \"dt.host.memory.used\",\n [\"aggregation\"] = \"avg\",\n [\"by\"] = new[]\n {\n },\n },\n [\"subType\"] = \"dql-builder-metrics\",\n [\"visualization\"] = \"lineChart\",\n [\"visualizationSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"thresholds\"] = new[]\n {\n },\n [\"chartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"gapPolicy\"] = \"connect\",\n [\"circleChartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"groupingThresholdType\"] = \"relative\",\n [\"groupingThresholdValue\"] = 0,\n [\"valueType\"] = \"relative\",\n },\n [\"categoryOverrides\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"fieldMapping\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"timestamp\"] = \"timeframe\",\n [\"leftAxisValues\"] = new[]\n {\n \"avg(dt.host.memory.used)\",\n },\n [\"leftAxisDimensions\"] = new[]\n {\n },\n [\"fields\"] = new[]\n {\n },\n [\"values\"] = new[]\n {\n },\n },\n [\"categoricalBarChartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n [\"singleValue\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"showLabel\"] = true,\n [\"label\"] = \"\",\n [\"prefixIcon\"] = \"\",\n [\"autoscale\"] = true,\n [\"alignment\"] = \"center\",\n [\"colorThresholdTarget\"] = \"value\",\n },\n [\"table\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"rowDensity\"] = \"condensed\",\n [\"enableSparklines\"] = false,\n [\"hiddenColumns\"] = new[]\n {\n },\n [\"lineWrapIds\"] = new[]\n {\n },\n [\"columnWidths\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n },\n [\"layouts\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"0\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"x\"] = 0,\n [\"y\"] = 0,\n [\"w\"] = 24,\n [\"h\"] = 14,\n },\n [\"1\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"x\"] = 0,\n [\"y\"] = 14,\n [\"w\"] = 9,\n [\"h\"] = 6,\n },\n [\"2\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"x\"] = 15,\n [\"y\"] = 14,\n [\"w\"] = 9,\n [\"h\"] = 6,\n },\n },\n }),\n });\n\n var thisDirectShares = new Dynatrace.DirectShares(\"thisDirectShares\", new()\n {\n DocumentId = thisDocument.Id,\n Access = \"read-write\",\n Recipients = new Dynatrace.Inputs.DirectSharesRecipientsArgs\n {\n Recipients = new[]\n {\n new Dynatrace.Inputs.DirectSharesRecipientsRecipientArgs\n {\n Id = \"441664f0-23c9-40ef-b344-18c02c23d787\",\n Type = \"user\",\n },\n new Dynatrace.Inputs.DirectSharesRecipientsRecipientArgs\n {\n Id = \"441664f0-23c9-40ef-b344-18c02c23d788\",\n Type = \"group\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"version\": 13,\n\t\t\t\"variables\": []interface{}{},\n\t\t\t\"tiles\": map[string]interface{}{\n\t\t\t\t\"0\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"markdown\",\n\t\t\t\t\t\"title\": \"\",\n\t\t\t\t\t\"content\": \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n\t\t\t\t},\n\t\t\t\t\"1\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"data\",\n\t\t\t\t\t\"title\": \"\",\n\t\t\t\t\t\"query\": \"timeseries avg(dt.host.cpu.user)\",\n\t\t\t\t\t\"queryConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"additionalFilters\": map[string]interface{}{},\n\t\t\t\t\t\t\"version\": \"4.3.1\",\n\t\t\t\t\t\t\"datatype\": \"metrics\",\n\t\t\t\t\t\t\"metricKey\": \"dt.host.cpu.user\",\n\t\t\t\t\t\t\"aggregation\": \"avg\",\n\t\t\t\t\t\t\"by\": []interface{}{},\n\t\t\t\t\t},\n\t\t\t\t\t\"subType\": \"dql-builder-metrics\",\n\t\t\t\t\t\"visualization\": \"lineChart\",\n\t\t\t\t\t\"visualizationSettings\": map[string]interface{}{\n\t\t\t\t\t\t\"thresholds\": []interface{}{},\n\t\t\t\t\t\t\"chartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\"gapPolicy\": \"connect\",\n\t\t\t\t\t\t\t\"circleChartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"groupingThresholdType\": \"relative\",\n\t\t\t\t\t\t\t\t\"groupingThresholdValue\": 0,\n\t\t\t\t\t\t\t\t\"valueType\": \"relative\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"categoryOverrides\": map[string]interface{}{},\n\t\t\t\t\t\t\t\"fieldMapping\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"timestamp\": \"timeframe\",\n\t\t\t\t\t\t\t\t\"leftAxisValues\": []string{\n\t\t\t\t\t\t\t\t\t\"avg(dt.host.cpu.user)\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"leftAxisDimensions\": []interface{}{},\n\t\t\t\t\t\t\t\t\"fields\": []interface{}{},\n\t\t\t\t\t\t\t\t\"values\": []interface{}{},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"singleValue\": map[string]interface{}{\n\t\t\t\t\t\t\t\"showLabel\": true,\n\t\t\t\t\t\t\t\"label\": \"\",\n\t\t\t\t\t\t\t\"prefixIcon\": \"\",\n\t\t\t\t\t\t\t\"autoscale\": true,\n\t\t\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\t\t\"colorThresholdTarget\": \"value\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"table\": map[string]interface{}{\n\t\t\t\t\t\t\t\"rowDensity\": \"condensed\",\n\t\t\t\t\t\t\t\"enableSparklines\": false,\n\t\t\t\t\t\t\t\"hiddenColumns\": []interface{}{},\n\t\t\t\t\t\t\t\"lineWrapIds\": []interface{}{},\n\t\t\t\t\t\t\t\"columnWidths\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"2\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"data\",\n\t\t\t\t\t\"title\": \"\",\n\t\t\t\t\t\"query\": \"timeseries avg(dt.host.memory.used)\",\n\t\t\t\t\t\"queryConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"additionalFilters\": map[string]interface{}{},\n\t\t\t\t\t\t\"version\": \"4.3.1\",\n\t\t\t\t\t\t\"datatype\": \"metrics\",\n\t\t\t\t\t\t\"metricKey\": \"dt.host.memory.used\",\n\t\t\t\t\t\t\"aggregation\": \"avg\",\n\t\t\t\t\t\t\"by\": []interface{}{},\n\t\t\t\t\t},\n\t\t\t\t\t\"subType\": \"dql-builder-metrics\",\n\t\t\t\t\t\"visualization\": \"lineChart\",\n\t\t\t\t\t\"visualizationSettings\": map[string]interface{}{\n\t\t\t\t\t\t\"thresholds\": []interface{}{},\n\t\t\t\t\t\t\"chartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\"gapPolicy\": \"connect\",\n\t\t\t\t\t\t\t\"circleChartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"groupingThresholdType\": \"relative\",\n\t\t\t\t\t\t\t\t\"groupingThresholdValue\": 0,\n\t\t\t\t\t\t\t\t\"valueType\": \"relative\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"categoryOverrides\": map[string]interface{}{},\n\t\t\t\t\t\t\t\"fieldMapping\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"timestamp\": \"timeframe\",\n\t\t\t\t\t\t\t\t\"leftAxisValues\": []string{\n\t\t\t\t\t\t\t\t\t\"avg(dt.host.memory.used)\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"leftAxisDimensions\": []interface{}{},\n\t\t\t\t\t\t\t\t\"fields\": []interface{}{},\n\t\t\t\t\t\t\t\t\"values\": []interface{}{},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"categoricalBarChartSettings\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"singleValue\": map[string]interface{}{\n\t\t\t\t\t\t\t\"showLabel\": true,\n\t\t\t\t\t\t\t\"label\": \"\",\n\t\t\t\t\t\t\t\"prefixIcon\": \"\",\n\t\t\t\t\t\t\t\"autoscale\": true,\n\t\t\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\t\t\"colorThresholdTarget\": \"value\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"table\": map[string]interface{}{\n\t\t\t\t\t\t\t\"rowDensity\": \"condensed\",\n\t\t\t\t\t\t\t\"enableSparklines\": false,\n\t\t\t\t\t\t\t\"hiddenColumns\": []interface{}{},\n\t\t\t\t\t\t\t\"lineWrapIds\": []interface{}{},\n\t\t\t\t\t\t\t\"columnWidths\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"layouts\": map[string]interface{}{\n\t\t\t\t\"0\": map[string]interface{}{\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": 0,\n\t\t\t\t\t\"w\": 24,\n\t\t\t\t\t\"h\": 14,\n\t\t\t\t},\n\t\t\t\t\"1\": map[string]interface{}{\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": 14,\n\t\t\t\t\t\"w\": 9,\n\t\t\t\t\t\"h\": 6,\n\t\t\t\t},\n\t\t\t\t\"2\": map[string]interface{}{\n\t\t\t\t\t\"x\": 15,\n\t\t\t\t\t\"y\": 14,\n\t\t\t\t\t\"w\": 9,\n\t\t\t\t\t\"h\": 6,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tthisDocument, err := dynatrace.NewDocument(ctx, \"thisDocument\", \u0026dynatrace.DocumentArgs{\n\t\t\tType: pulumi.String(\"dashboard\"),\n\t\t\tContent: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dynatrace.NewDirectShares(ctx, \"thisDirectShares\", \u0026dynatrace.DirectSharesArgs{\n\t\t\tDocumentId: thisDocument.ID(),\n\t\t\tAccess: pulumi.String(\"read-write\"),\n\t\t\tRecipients: \u0026dynatrace.DirectSharesRecipientsArgs{\n\t\t\t\tRecipients: dynatrace.DirectSharesRecipientsRecipientArray{\n\t\t\t\t\t\u0026dynatrace.DirectSharesRecipientsRecipientArgs{\n\t\t\t\t\t\tId: pulumi.String(\"441664f0-23c9-40ef-b344-18c02c23d787\"),\n\t\t\t\t\t\tType: pulumi.String(\"user\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026dynatrace.DirectSharesRecipientsRecipientArgs{\n\t\t\t\t\t\tId: pulumi.String(\"441664f0-23c9-40ef-b344-18c02c23d788\"),\n\t\t\t\t\t\tType: pulumi.String(\"group\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dynatrace.Document;\nimport com.pulumi.dynatrace.DocumentArgs;\nimport com.pulumi.dynatrace.DirectShares;\nimport com.pulumi.dynatrace.DirectSharesArgs;\nimport com.pulumi.dynatrace.inputs.DirectSharesRecipientsArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var thisDocument = new Document(\"thisDocument\", DocumentArgs.builder()\n .type(\"dashboard\")\n .content(serializeJson(\n jsonObject(\n jsonProperty(\"version\", 13),\n jsonProperty(\"variables\", jsonArray(\n )),\n jsonProperty(\"tiles\", jsonObject(\n jsonProperty(\"0\", jsonObject(\n jsonProperty(\"type\", \"markdown\"),\n jsonProperty(\"title\", \"\"),\n jsonProperty(\"content\", \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\")\n )),\n jsonProperty(\"1\", jsonObject(\n jsonProperty(\"type\", \"data\"),\n jsonProperty(\"title\", \"\"),\n jsonProperty(\"query\", \"timeseries avg(dt.host.cpu.user)\"),\n jsonProperty(\"queryConfig\", jsonObject(\n jsonProperty(\"additionalFilters\", jsonObject(\n\n )),\n jsonProperty(\"version\", \"4.3.1\"),\n jsonProperty(\"datatype\", \"metrics\"),\n jsonProperty(\"metricKey\", \"dt.host.cpu.user\"),\n jsonProperty(\"aggregation\", \"avg\"),\n jsonProperty(\"by\", jsonArray(\n ))\n )),\n jsonProperty(\"subType\", \"dql-builder-metrics\"),\n jsonProperty(\"visualization\", \"lineChart\"),\n jsonProperty(\"visualizationSettings\", jsonObject(\n jsonProperty(\"thresholds\", jsonArray(\n )),\n jsonProperty(\"chartSettings\", jsonObject(\n jsonProperty(\"gapPolicy\", \"connect\"),\n jsonProperty(\"circleChartSettings\", jsonObject(\n jsonProperty(\"groupingThresholdType\", \"relative\"),\n jsonProperty(\"groupingThresholdValue\", 0),\n jsonProperty(\"valueType\", \"relative\")\n )),\n jsonProperty(\"categoryOverrides\", jsonObject(\n\n )),\n jsonProperty(\"fieldMapping\", jsonObject(\n jsonProperty(\"timestamp\", \"timeframe\"),\n jsonProperty(\"leftAxisValues\", jsonArray(\"avg(dt.host.cpu.user)\")),\n jsonProperty(\"leftAxisDimensions\", jsonArray(\n )),\n jsonProperty(\"fields\", jsonArray(\n )),\n jsonProperty(\"values\", jsonArray(\n ))\n ))\n )),\n jsonProperty(\"singleValue\", jsonObject(\n jsonProperty(\"showLabel\", true),\n jsonProperty(\"label\", \"\"),\n jsonProperty(\"prefixIcon\", \"\"),\n jsonProperty(\"autoscale\", true),\n jsonProperty(\"alignment\", \"center\"),\n jsonProperty(\"colorThresholdTarget\", \"value\")\n )),\n jsonProperty(\"table\", jsonObject(\n jsonProperty(\"rowDensity\", \"condensed\"),\n jsonProperty(\"enableSparklines\", false),\n jsonProperty(\"hiddenColumns\", jsonArray(\n )),\n jsonProperty(\"lineWrapIds\", jsonArray(\n )),\n jsonProperty(\"columnWidths\", jsonObject(\n\n ))\n ))\n ))\n )),\n jsonProperty(\"2\", jsonObject(\n jsonProperty(\"type\", \"data\"),\n jsonProperty(\"title\", \"\"),\n jsonProperty(\"query\", \"timeseries avg(dt.host.memory.used)\"),\n jsonProperty(\"queryConfig\", jsonObject(\n jsonProperty(\"additionalFilters\", jsonObject(\n\n )),\n jsonProperty(\"version\", \"4.3.1\"),\n jsonProperty(\"datatype\", \"metrics\"),\n jsonProperty(\"metricKey\", \"dt.host.memory.used\"),\n jsonProperty(\"aggregation\", \"avg\"),\n jsonProperty(\"by\", jsonArray(\n ))\n )),\n jsonProperty(\"subType\", \"dql-builder-metrics\"),\n jsonProperty(\"visualization\", \"lineChart\"),\n jsonProperty(\"visualizationSettings\", jsonObject(\n jsonProperty(\"thresholds\", jsonArray(\n )),\n jsonProperty(\"chartSettings\", jsonObject(\n jsonProperty(\"gapPolicy\", \"connect\"),\n jsonProperty(\"circleChartSettings\", jsonObject(\n jsonProperty(\"groupingThresholdType\", \"relative\"),\n jsonProperty(\"groupingThresholdValue\", 0),\n jsonProperty(\"valueType\", \"relative\")\n )),\n jsonProperty(\"categoryOverrides\", jsonObject(\n\n )),\n jsonProperty(\"fieldMapping\", jsonObject(\n jsonProperty(\"timestamp\", \"timeframe\"),\n jsonProperty(\"leftAxisValues\", jsonArray(\"avg(dt.host.memory.used)\")),\n jsonProperty(\"leftAxisDimensions\", jsonArray(\n )),\n jsonProperty(\"fields\", jsonArray(\n )),\n jsonProperty(\"values\", jsonArray(\n ))\n )),\n jsonProperty(\"categoricalBarChartSettings\", jsonObject(\n\n ))\n )),\n jsonProperty(\"singleValue\", jsonObject(\n jsonProperty(\"showLabel\", true),\n jsonProperty(\"label\", \"\"),\n jsonProperty(\"prefixIcon\", \"\"),\n jsonProperty(\"autoscale\", true),\n jsonProperty(\"alignment\", \"center\"),\n jsonProperty(\"colorThresholdTarget\", \"value\")\n )),\n jsonProperty(\"table\", jsonObject(\n jsonProperty(\"rowDensity\", \"condensed\"),\n jsonProperty(\"enableSparklines\", false),\n jsonProperty(\"hiddenColumns\", jsonArray(\n )),\n jsonProperty(\"lineWrapIds\", jsonArray(\n )),\n jsonProperty(\"columnWidths\", jsonObject(\n\n ))\n ))\n ))\n ))\n )),\n jsonProperty(\"layouts\", jsonObject(\n jsonProperty(\"0\", jsonObject(\n jsonProperty(\"x\", 0),\n jsonProperty(\"y\", 0),\n jsonProperty(\"w\", 24),\n jsonProperty(\"h\", 14)\n )),\n jsonProperty(\"1\", jsonObject(\n jsonProperty(\"x\", 0),\n jsonProperty(\"y\", 14),\n jsonProperty(\"w\", 9),\n jsonProperty(\"h\", 6)\n )),\n jsonProperty(\"2\", jsonObject(\n jsonProperty(\"x\", 15),\n jsonProperty(\"y\", 14),\n jsonProperty(\"w\", 9),\n jsonProperty(\"h\", 6)\n ))\n ))\n )))\n .build());\n\n var thisDirectShares = new DirectShares(\"thisDirectShares\", DirectSharesArgs.builder()\n .documentId(thisDocument.id())\n .access(\"read-write\")\n .recipients(DirectSharesRecipientsArgs.builder()\n .recipients( \n DirectSharesRecipientsRecipientArgs.builder()\n .id(\"441664f0-23c9-40ef-b344-18c02c23d787\")\n .type(\"user\")\n .build(),\n DirectSharesRecipientsRecipientArgs.builder()\n .id(\"441664f0-23c9-40ef-b344-18c02c23d788\")\n .type(\"group\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n thisDirectShares:\n type: dynatrace:DirectShares\n properties:\n documentId: ${thisDocument.id}\n access: read-write\n recipients:\n recipients:\n - id: 441664f0-23c9-40ef-b344-18c02c23d787\n type: user\n - id: 441664f0-23c9-40ef-b344-18c02c23d788\n type: group\n thisDocument:\n type: dynatrace:Document\n properties:\n type: dashboard\n content:\n fn::toJSON:\n version: 13\n variables: []\n tiles:\n '0':\n type: markdown\n title:\n content: '![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)'\n '1':\n type: data\n title:\n query: timeseries avg(dt.host.cpu.user)\n queryConfig:\n additionalFilters: {}\n version: 4.3.1\n datatype: metrics\n metricKey: dt.host.cpu.user\n aggregation: avg\n by: []\n subType: dql-builder-metrics\n visualization: lineChart\n visualizationSettings:\n thresholds: []\n chartSettings:\n gapPolicy: connect\n circleChartSettings:\n groupingThresholdType: relative\n groupingThresholdValue: 0\n valueType: relative\n categoryOverrides: {}\n fieldMapping:\n timestamp: timeframe\n leftAxisValues:\n - avg(dt.host.cpu.user)\n leftAxisDimensions: []\n fields: []\n values: []\n singleValue:\n showLabel: true\n label:\n prefixIcon:\n autoscale: true\n alignment: center\n colorThresholdTarget: value\n table:\n rowDensity: condensed\n enableSparklines: false\n hiddenColumns: []\n lineWrapIds: []\n columnWidths: {}\n '2':\n type: data\n title:\n query: timeseries avg(dt.host.memory.used)\n queryConfig:\n additionalFilters: {}\n version: 4.3.1\n datatype: metrics\n metricKey: dt.host.memory.used\n aggregation: avg\n by: []\n subType: dql-builder-metrics\n visualization: lineChart\n visualizationSettings:\n thresholds: []\n chartSettings:\n gapPolicy: connect\n circleChartSettings:\n groupingThresholdType: relative\n groupingThresholdValue: 0\n valueType: relative\n categoryOverrides: {}\n fieldMapping:\n timestamp: timeframe\n leftAxisValues:\n - avg(dt.host.memory.used)\n leftAxisDimensions: []\n fields: []\n values: []\n categoricalBarChartSettings: {}\n singleValue:\n showLabel: true\n label:\n prefixIcon:\n autoscale: true\n alignment: center\n colorThresholdTarget: value\n table:\n rowDensity: condensed\n enableSparklines: false\n hiddenColumns: []\n lineWrapIds: []\n columnWidths: {}\n layouts:\n '0':\n x: 0\n y: 0\n w: 24\n h: 14\n '1':\n x: 0\n y: 14\n w: 9\n h: 6\n '2':\n x: 15\n y: 14\n w: 9\n h: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "access": { "type": "string", @@ -53138,7 +53190,7 @@ } }, "dynatrace:index/document:Document": { - "description": "\u003e **Dynatrace SaaS only**\n\n\u003e To utilize this resource, please define the environment variables `DT_CLIENT_ID`, `DT_CLIENT_SECRET`, `DT_ACCOUNT_ID` with an OAuth client including the following permissions: **Create and edit documents** (`document:documents:write`), **View documents** (`document:documents:read`) and **Delete documents** (`document:documents:delete`).\n\n\u003e This resource is excluded by default in the export utility, please explicitly specify the resource to retrieve existing configuration.\n\n## Dynatrace Documentation\n\n- Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service\n\n", + "description": "\u003e **Dynatrace SaaS only**\n\n\u003e To utilize this resource, please define the environment variables `DT_CLIENT_ID`, `DT_CLIENT_SECRET`, `DT_ACCOUNT_ID` with an OAuth client including the following permissions: **Create and edit documents** (`document:documents:write`), **View documents** (`document:documents:read`) and **Delete documents** (`document:documents:delete`).\n\n\u003e This resource is excluded by default in the export utility, please explicitly specify the resource to retrieve existing configuration.\n\n## Dynatrace Documentation\n\n- Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service\n\n## Resource Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dynatrace from \"@pulumiverse/dynatrace\";\n\nconst _this = new dynatrace.Document(\"this\", {\n type: \"dashboard\",\n content: JSON.stringify({\n version: 13,\n variables: [],\n tiles: {\n \"0\": {\n type: \"markdown\",\n title: \"\",\n content: \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n },\n \"1\": {\n type: \"data\",\n title: \"\",\n query: \"timeseries avg(dt.host.cpu.user)\",\n queryConfig: {\n additionalFilters: {},\n version: \"4.3.1\",\n datatype: \"metrics\",\n metricKey: \"dt.host.cpu.user\",\n aggregation: \"avg\",\n by: [],\n },\n subType: \"dql-builder-metrics\",\n visualization: \"lineChart\",\n visualizationSettings: {\n thresholds: [],\n chartSettings: {\n gapPolicy: \"connect\",\n circleChartSettings: {\n groupingThresholdType: \"relative\",\n groupingThresholdValue: 0,\n valueType: \"relative\",\n },\n categoryOverrides: {},\n fieldMapping: {\n timestamp: \"timeframe\",\n leftAxisValues: [\"avg(dt.host.cpu.user)\"],\n leftAxisDimensions: [],\n fields: [],\n values: [],\n },\n },\n singleValue: {\n showLabel: true,\n label: \"\",\n prefixIcon: \"\",\n autoscale: true,\n alignment: \"center\",\n colorThresholdTarget: \"value\",\n },\n table: {\n rowDensity: \"condensed\",\n enableSparklines: false,\n hiddenColumns: [],\n lineWrapIds: [],\n columnWidths: {},\n },\n },\n },\n \"2\": {\n type: \"data\",\n title: \"\",\n query: \"timeseries avg(dt.host.memory.used)\",\n queryConfig: {\n additionalFilters: {},\n version: \"4.3.1\",\n datatype: \"metrics\",\n metricKey: \"dt.host.memory.used\",\n aggregation: \"avg\",\n by: [],\n },\n subType: \"dql-builder-metrics\",\n visualization: \"lineChart\",\n visualizationSettings: {\n thresholds: [],\n chartSettings: {\n gapPolicy: \"connect\",\n circleChartSettings: {\n groupingThresholdType: \"relative\",\n groupingThresholdValue: 0,\n valueType: \"relative\",\n },\n categoryOverrides: {},\n fieldMapping: {\n timestamp: \"timeframe\",\n leftAxisValues: [\"avg(dt.host.memory.used)\"],\n leftAxisDimensions: [],\n fields: [],\n values: [],\n },\n categoricalBarChartSettings: {},\n },\n singleValue: {\n showLabel: true,\n label: \"\",\n prefixIcon: \"\",\n autoscale: true,\n alignment: \"center\",\n colorThresholdTarget: \"value\",\n },\n table: {\n rowDensity: \"condensed\",\n enableSparklines: false,\n hiddenColumns: [],\n lineWrapIds: [],\n columnWidths: {},\n },\n },\n },\n },\n layouts: {\n \"0\": {\n x: 0,\n y: 0,\n w: 24,\n h: 14,\n },\n \"1\": {\n x: 0,\n y: 14,\n w: 9,\n h: 6,\n },\n \"2\": {\n x: 15,\n y: 14,\n w: 9,\n h: 6,\n },\n },\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_dynatrace as dynatrace\n\nthis = dynatrace.Document(\"this\",\n type=\"dashboard\",\n content=json.dumps({\n \"version\": 13,\n \"variables\": [],\n \"tiles\": {\n \"0\": {\n \"type\": \"markdown\",\n \"title\": \"\",\n \"content\": \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n },\n \"1\": {\n \"type\": \"data\",\n \"title\": \"\",\n \"query\": \"timeseries avg(dt.host.cpu.user)\",\n \"queryConfig\": {\n \"additionalFilters\": {},\n \"version\": \"4.3.1\",\n \"datatype\": \"metrics\",\n \"metricKey\": \"dt.host.cpu.user\",\n \"aggregation\": \"avg\",\n \"by\": [],\n },\n \"subType\": \"dql-builder-metrics\",\n \"visualization\": \"lineChart\",\n \"visualizationSettings\": {\n \"thresholds\": [],\n \"chartSettings\": {\n \"gapPolicy\": \"connect\",\n \"circleChartSettings\": {\n \"groupingThresholdType\": \"relative\",\n \"groupingThresholdValue\": 0,\n \"valueType\": \"relative\",\n },\n \"categoryOverrides\": {},\n \"fieldMapping\": {\n \"timestamp\": \"timeframe\",\n \"leftAxisValues\": [\"avg(dt.host.cpu.user)\"],\n \"leftAxisDimensions\": [],\n \"fields\": [],\n \"values\": [],\n },\n },\n \"singleValue\": {\n \"showLabel\": True,\n \"label\": \"\",\n \"prefixIcon\": \"\",\n \"autoscale\": True,\n \"alignment\": \"center\",\n \"colorThresholdTarget\": \"value\",\n },\n \"table\": {\n \"rowDensity\": \"condensed\",\n \"enableSparklines\": False,\n \"hiddenColumns\": [],\n \"lineWrapIds\": [],\n \"columnWidths\": {},\n },\n },\n },\n \"2\": {\n \"type\": \"data\",\n \"title\": \"\",\n \"query\": \"timeseries avg(dt.host.memory.used)\",\n \"queryConfig\": {\n \"additionalFilters\": {},\n \"version\": \"4.3.1\",\n \"datatype\": \"metrics\",\n \"metricKey\": \"dt.host.memory.used\",\n \"aggregation\": \"avg\",\n \"by\": [],\n },\n \"subType\": \"dql-builder-metrics\",\n \"visualization\": \"lineChart\",\n \"visualizationSettings\": {\n \"thresholds\": [],\n \"chartSettings\": {\n \"gapPolicy\": \"connect\",\n \"circleChartSettings\": {\n \"groupingThresholdType\": \"relative\",\n \"groupingThresholdValue\": 0,\n \"valueType\": \"relative\",\n },\n \"categoryOverrides\": {},\n \"fieldMapping\": {\n \"timestamp\": \"timeframe\",\n \"leftAxisValues\": [\"avg(dt.host.memory.used)\"],\n \"leftAxisDimensions\": [],\n \"fields\": [],\n \"values\": [],\n },\n \"categoricalBarChartSettings\": {},\n },\n \"singleValue\": {\n \"showLabel\": True,\n \"label\": \"\",\n \"prefixIcon\": \"\",\n \"autoscale\": True,\n \"alignment\": \"center\",\n \"colorThresholdTarget\": \"value\",\n },\n \"table\": {\n \"rowDensity\": \"condensed\",\n \"enableSparklines\": False,\n \"hiddenColumns\": [],\n \"lineWrapIds\": [],\n \"columnWidths\": {},\n },\n },\n },\n },\n \"layouts\": {\n \"0\": {\n \"x\": 0,\n \"y\": 0,\n \"w\": 24,\n \"h\": 14,\n },\n \"1\": {\n \"x\": 0,\n \"y\": 14,\n \"w\": 9,\n \"h\": 6,\n },\n \"2\": {\n \"x\": 15,\n \"y\": 14,\n \"w\": 9,\n \"h\": 6,\n },\n },\n }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Dynatrace = Pulumiverse.Dynatrace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @this = new Dynatrace.Document(\"this\", new()\n {\n Type = \"dashboard\",\n Content = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"version\"] = 13,\n [\"variables\"] = new[]\n {\n },\n [\"tiles\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"0\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"markdown\",\n [\"title\"] = \"\",\n [\"content\"] = \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n },\n [\"1\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"data\",\n [\"title\"] = \"\",\n [\"query\"] = \"timeseries avg(dt.host.cpu.user)\",\n [\"queryConfig\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"additionalFilters\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"version\"] = \"4.3.1\",\n [\"datatype\"] = \"metrics\",\n [\"metricKey\"] = \"dt.host.cpu.user\",\n [\"aggregation\"] = \"avg\",\n [\"by\"] = new[]\n {\n },\n },\n [\"subType\"] = \"dql-builder-metrics\",\n [\"visualization\"] = \"lineChart\",\n [\"visualizationSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"thresholds\"] = new[]\n {\n },\n [\"chartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"gapPolicy\"] = \"connect\",\n [\"circleChartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"groupingThresholdType\"] = \"relative\",\n [\"groupingThresholdValue\"] = 0,\n [\"valueType\"] = \"relative\",\n },\n [\"categoryOverrides\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"fieldMapping\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"timestamp\"] = \"timeframe\",\n [\"leftAxisValues\"] = new[]\n {\n \"avg(dt.host.cpu.user)\",\n },\n [\"leftAxisDimensions\"] = new[]\n {\n },\n [\"fields\"] = new[]\n {\n },\n [\"values\"] = new[]\n {\n },\n },\n },\n [\"singleValue\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"showLabel\"] = true,\n [\"label\"] = \"\",\n [\"prefixIcon\"] = \"\",\n [\"autoscale\"] = true,\n [\"alignment\"] = \"center\",\n [\"colorThresholdTarget\"] = \"value\",\n },\n [\"table\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"rowDensity\"] = \"condensed\",\n [\"enableSparklines\"] = false,\n [\"hiddenColumns\"] = new[]\n {\n },\n [\"lineWrapIds\"] = new[]\n {\n },\n [\"columnWidths\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n [\"2\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"data\",\n [\"title\"] = \"\",\n [\"query\"] = \"timeseries avg(dt.host.memory.used)\",\n [\"queryConfig\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"additionalFilters\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"version\"] = \"4.3.1\",\n [\"datatype\"] = \"metrics\",\n [\"metricKey\"] = \"dt.host.memory.used\",\n [\"aggregation\"] = \"avg\",\n [\"by\"] = new[]\n {\n },\n },\n [\"subType\"] = \"dql-builder-metrics\",\n [\"visualization\"] = \"lineChart\",\n [\"visualizationSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"thresholds\"] = new[]\n {\n },\n [\"chartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"gapPolicy\"] = \"connect\",\n [\"circleChartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"groupingThresholdType\"] = \"relative\",\n [\"groupingThresholdValue\"] = 0,\n [\"valueType\"] = \"relative\",\n },\n [\"categoryOverrides\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n [\"fieldMapping\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"timestamp\"] = \"timeframe\",\n [\"leftAxisValues\"] = new[]\n {\n \"avg(dt.host.memory.used)\",\n },\n [\"leftAxisDimensions\"] = new[]\n {\n },\n [\"fields\"] = new[]\n {\n },\n [\"values\"] = new[]\n {\n },\n },\n [\"categoricalBarChartSettings\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n [\"singleValue\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"showLabel\"] = true,\n [\"label\"] = \"\",\n [\"prefixIcon\"] = \"\",\n [\"autoscale\"] = true,\n [\"alignment\"] = \"center\",\n [\"colorThresholdTarget\"] = \"value\",\n },\n [\"table\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"rowDensity\"] = \"condensed\",\n [\"enableSparklines\"] = false,\n [\"hiddenColumns\"] = new[]\n {\n },\n [\"lineWrapIds\"] = new[]\n {\n },\n [\"columnWidths\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n },\n [\"layouts\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"0\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"x\"] = 0,\n [\"y\"] = 0,\n [\"w\"] = 24,\n [\"h\"] = 14,\n },\n [\"1\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"x\"] = 0,\n [\"y\"] = 14,\n [\"w\"] = 9,\n [\"h\"] = 6,\n },\n [\"2\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"x\"] = 15,\n [\"y\"] = 14,\n [\"w\"] = 9,\n [\"h\"] = 6,\n },\n },\n }),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"version\": 13,\n\t\t\t\"variables\": []interface{}{},\n\t\t\t\"tiles\": map[string]interface{}{\n\t\t\t\t\"0\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"markdown\",\n\t\t\t\t\t\"title\": \"\",\n\t\t\t\t\t\"content\": \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\",\n\t\t\t\t},\n\t\t\t\t\"1\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"data\",\n\t\t\t\t\t\"title\": \"\",\n\t\t\t\t\t\"query\": \"timeseries avg(dt.host.cpu.user)\",\n\t\t\t\t\t\"queryConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"additionalFilters\": map[string]interface{}{},\n\t\t\t\t\t\t\"version\": \"4.3.1\",\n\t\t\t\t\t\t\"datatype\": \"metrics\",\n\t\t\t\t\t\t\"metricKey\": \"dt.host.cpu.user\",\n\t\t\t\t\t\t\"aggregation\": \"avg\",\n\t\t\t\t\t\t\"by\": []interface{}{},\n\t\t\t\t\t},\n\t\t\t\t\t\"subType\": \"dql-builder-metrics\",\n\t\t\t\t\t\"visualization\": \"lineChart\",\n\t\t\t\t\t\"visualizationSettings\": map[string]interface{}{\n\t\t\t\t\t\t\"thresholds\": []interface{}{},\n\t\t\t\t\t\t\"chartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\"gapPolicy\": \"connect\",\n\t\t\t\t\t\t\t\"circleChartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"groupingThresholdType\": \"relative\",\n\t\t\t\t\t\t\t\t\"groupingThresholdValue\": 0,\n\t\t\t\t\t\t\t\t\"valueType\": \"relative\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"categoryOverrides\": map[string]interface{}{},\n\t\t\t\t\t\t\t\"fieldMapping\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"timestamp\": \"timeframe\",\n\t\t\t\t\t\t\t\t\"leftAxisValues\": []string{\n\t\t\t\t\t\t\t\t\t\"avg(dt.host.cpu.user)\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"leftAxisDimensions\": []interface{}{},\n\t\t\t\t\t\t\t\t\"fields\": []interface{}{},\n\t\t\t\t\t\t\t\t\"values\": []interface{}{},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"singleValue\": map[string]interface{}{\n\t\t\t\t\t\t\t\"showLabel\": true,\n\t\t\t\t\t\t\t\"label\": \"\",\n\t\t\t\t\t\t\t\"prefixIcon\": \"\",\n\t\t\t\t\t\t\t\"autoscale\": true,\n\t\t\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\t\t\"colorThresholdTarget\": \"value\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"table\": map[string]interface{}{\n\t\t\t\t\t\t\t\"rowDensity\": \"condensed\",\n\t\t\t\t\t\t\t\"enableSparklines\": false,\n\t\t\t\t\t\t\t\"hiddenColumns\": []interface{}{},\n\t\t\t\t\t\t\t\"lineWrapIds\": []interface{}{},\n\t\t\t\t\t\t\t\"columnWidths\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"2\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"data\",\n\t\t\t\t\t\"title\": \"\",\n\t\t\t\t\t\"query\": \"timeseries avg(dt.host.memory.used)\",\n\t\t\t\t\t\"queryConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"additionalFilters\": map[string]interface{}{},\n\t\t\t\t\t\t\"version\": \"4.3.1\",\n\t\t\t\t\t\t\"datatype\": \"metrics\",\n\t\t\t\t\t\t\"metricKey\": \"dt.host.memory.used\",\n\t\t\t\t\t\t\"aggregation\": \"avg\",\n\t\t\t\t\t\t\"by\": []interface{}{},\n\t\t\t\t\t},\n\t\t\t\t\t\"subType\": \"dql-builder-metrics\",\n\t\t\t\t\t\"visualization\": \"lineChart\",\n\t\t\t\t\t\"visualizationSettings\": map[string]interface{}{\n\t\t\t\t\t\t\"thresholds\": []interface{}{},\n\t\t\t\t\t\t\"chartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\"gapPolicy\": \"connect\",\n\t\t\t\t\t\t\t\"circleChartSettings\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"groupingThresholdType\": \"relative\",\n\t\t\t\t\t\t\t\t\"groupingThresholdValue\": 0,\n\t\t\t\t\t\t\t\t\"valueType\": \"relative\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"categoryOverrides\": map[string]interface{}{},\n\t\t\t\t\t\t\t\"fieldMapping\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"timestamp\": \"timeframe\",\n\t\t\t\t\t\t\t\t\"leftAxisValues\": []string{\n\t\t\t\t\t\t\t\t\t\"avg(dt.host.memory.used)\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"leftAxisDimensions\": []interface{}{},\n\t\t\t\t\t\t\t\t\"fields\": []interface{}{},\n\t\t\t\t\t\t\t\t\"values\": []interface{}{},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"categoricalBarChartSettings\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"singleValue\": map[string]interface{}{\n\t\t\t\t\t\t\t\"showLabel\": true,\n\t\t\t\t\t\t\t\"label\": \"\",\n\t\t\t\t\t\t\t\"prefixIcon\": \"\",\n\t\t\t\t\t\t\t\"autoscale\": true,\n\t\t\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\t\t\"colorThresholdTarget\": \"value\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"table\": map[string]interface{}{\n\t\t\t\t\t\t\t\"rowDensity\": \"condensed\",\n\t\t\t\t\t\t\t\"enableSparklines\": false,\n\t\t\t\t\t\t\t\"hiddenColumns\": []interface{}{},\n\t\t\t\t\t\t\t\"lineWrapIds\": []interface{}{},\n\t\t\t\t\t\t\t\"columnWidths\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"layouts\": map[string]interface{}{\n\t\t\t\t\"0\": map[string]interface{}{\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": 0,\n\t\t\t\t\t\"w\": 24,\n\t\t\t\t\t\"h\": 14,\n\t\t\t\t},\n\t\t\t\t\"1\": map[string]interface{}{\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": 14,\n\t\t\t\t\t\"w\": 9,\n\t\t\t\t\t\"h\": 6,\n\t\t\t\t},\n\t\t\t\t\"2\": map[string]interface{}{\n\t\t\t\t\t\"x\": 15,\n\t\t\t\t\t\"y\": 14,\n\t\t\t\t\t\"w\": 9,\n\t\t\t\t\t\"h\": 6,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = dynatrace.NewDocument(ctx, \"this\", \u0026dynatrace.DocumentArgs{\n\t\t\tType: pulumi.String(\"dashboard\"),\n\t\t\tContent: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dynatrace.Document;\nimport com.pulumi.dynatrace.DocumentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var this_ = new Document(\"this\", DocumentArgs.builder()\n .type(\"dashboard\")\n .content(serializeJson(\n jsonObject(\n jsonProperty(\"version\", 13),\n jsonProperty(\"variables\", jsonArray(\n )),\n jsonProperty(\"tiles\", jsonObject(\n jsonProperty(\"0\", jsonObject(\n jsonProperty(\"type\", \"markdown\"),\n jsonProperty(\"title\", \"\"),\n jsonProperty(\"content\", \"![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)\")\n )),\n jsonProperty(\"1\", jsonObject(\n jsonProperty(\"type\", \"data\"),\n jsonProperty(\"title\", \"\"),\n jsonProperty(\"query\", \"timeseries avg(dt.host.cpu.user)\"),\n jsonProperty(\"queryConfig\", jsonObject(\n jsonProperty(\"additionalFilters\", jsonObject(\n\n )),\n jsonProperty(\"version\", \"4.3.1\"),\n jsonProperty(\"datatype\", \"metrics\"),\n jsonProperty(\"metricKey\", \"dt.host.cpu.user\"),\n jsonProperty(\"aggregation\", \"avg\"),\n jsonProperty(\"by\", jsonArray(\n ))\n )),\n jsonProperty(\"subType\", \"dql-builder-metrics\"),\n jsonProperty(\"visualization\", \"lineChart\"),\n jsonProperty(\"visualizationSettings\", jsonObject(\n jsonProperty(\"thresholds\", jsonArray(\n )),\n jsonProperty(\"chartSettings\", jsonObject(\n jsonProperty(\"gapPolicy\", \"connect\"),\n jsonProperty(\"circleChartSettings\", jsonObject(\n jsonProperty(\"groupingThresholdType\", \"relative\"),\n jsonProperty(\"groupingThresholdValue\", 0),\n jsonProperty(\"valueType\", \"relative\")\n )),\n jsonProperty(\"categoryOverrides\", jsonObject(\n\n )),\n jsonProperty(\"fieldMapping\", jsonObject(\n jsonProperty(\"timestamp\", \"timeframe\"),\n jsonProperty(\"leftAxisValues\", jsonArray(\"avg(dt.host.cpu.user)\")),\n jsonProperty(\"leftAxisDimensions\", jsonArray(\n )),\n jsonProperty(\"fields\", jsonArray(\n )),\n jsonProperty(\"values\", jsonArray(\n ))\n ))\n )),\n jsonProperty(\"singleValue\", jsonObject(\n jsonProperty(\"showLabel\", true),\n jsonProperty(\"label\", \"\"),\n jsonProperty(\"prefixIcon\", \"\"),\n jsonProperty(\"autoscale\", true),\n jsonProperty(\"alignment\", \"center\"),\n jsonProperty(\"colorThresholdTarget\", \"value\")\n )),\n jsonProperty(\"table\", jsonObject(\n jsonProperty(\"rowDensity\", \"condensed\"),\n jsonProperty(\"enableSparklines\", false),\n jsonProperty(\"hiddenColumns\", jsonArray(\n )),\n jsonProperty(\"lineWrapIds\", jsonArray(\n )),\n jsonProperty(\"columnWidths\", jsonObject(\n\n ))\n ))\n ))\n )),\n jsonProperty(\"2\", jsonObject(\n jsonProperty(\"type\", \"data\"),\n jsonProperty(\"title\", \"\"),\n jsonProperty(\"query\", \"timeseries avg(dt.host.memory.used)\"),\n jsonProperty(\"queryConfig\", jsonObject(\n jsonProperty(\"additionalFilters\", jsonObject(\n\n )),\n jsonProperty(\"version\", \"4.3.1\"),\n jsonProperty(\"datatype\", \"metrics\"),\n jsonProperty(\"metricKey\", \"dt.host.memory.used\"),\n jsonProperty(\"aggregation\", \"avg\"),\n jsonProperty(\"by\", jsonArray(\n ))\n )),\n jsonProperty(\"subType\", \"dql-builder-metrics\"),\n jsonProperty(\"visualization\", \"lineChart\"),\n jsonProperty(\"visualizationSettings\", jsonObject(\n jsonProperty(\"thresholds\", jsonArray(\n )),\n jsonProperty(\"chartSettings\", jsonObject(\n jsonProperty(\"gapPolicy\", \"connect\"),\n jsonProperty(\"circleChartSettings\", jsonObject(\n jsonProperty(\"groupingThresholdType\", \"relative\"),\n jsonProperty(\"groupingThresholdValue\", 0),\n jsonProperty(\"valueType\", \"relative\")\n )),\n jsonProperty(\"categoryOverrides\", jsonObject(\n\n )),\n jsonProperty(\"fieldMapping\", jsonObject(\n jsonProperty(\"timestamp\", \"timeframe\"),\n jsonProperty(\"leftAxisValues\", jsonArray(\"avg(dt.host.memory.used)\")),\n jsonProperty(\"leftAxisDimensions\", jsonArray(\n )),\n jsonProperty(\"fields\", jsonArray(\n )),\n jsonProperty(\"values\", jsonArray(\n ))\n )),\n jsonProperty(\"categoricalBarChartSettings\", jsonObject(\n\n ))\n )),\n jsonProperty(\"singleValue\", jsonObject(\n jsonProperty(\"showLabel\", true),\n jsonProperty(\"label\", \"\"),\n jsonProperty(\"prefixIcon\", \"\"),\n jsonProperty(\"autoscale\", true),\n jsonProperty(\"alignment\", \"center\"),\n jsonProperty(\"colorThresholdTarget\", \"value\")\n )),\n jsonProperty(\"table\", jsonObject(\n jsonProperty(\"rowDensity\", \"condensed\"),\n jsonProperty(\"enableSparklines\", false),\n jsonProperty(\"hiddenColumns\", jsonArray(\n )),\n jsonProperty(\"lineWrapIds\", jsonArray(\n )),\n jsonProperty(\"columnWidths\", jsonObject(\n\n ))\n ))\n ))\n ))\n )),\n jsonProperty(\"layouts\", jsonObject(\n jsonProperty(\"0\", jsonObject(\n jsonProperty(\"x\", 0),\n jsonProperty(\"y\", 0),\n jsonProperty(\"w\", 24),\n jsonProperty(\"h\", 14)\n )),\n jsonProperty(\"1\", jsonObject(\n jsonProperty(\"x\", 0),\n jsonProperty(\"y\", 14),\n jsonProperty(\"w\", 9),\n jsonProperty(\"h\", 6)\n )),\n jsonProperty(\"2\", jsonObject(\n jsonProperty(\"x\", 15),\n jsonProperty(\"y\", 14),\n jsonProperty(\"w\", 9),\n jsonProperty(\"h\", 6)\n ))\n ))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n this:\n type: dynatrace:Document\n properties:\n type: dashboard\n content:\n fn::toJSON:\n version: 13\n variables: []\n tiles:\n '0':\n type: markdown\n title:\n content: '![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)'\n '1':\n type: data\n title:\n query: timeseries avg(dt.host.cpu.user)\n queryConfig:\n additionalFilters: {}\n version: 4.3.1\n datatype: metrics\n metricKey: dt.host.cpu.user\n aggregation: avg\n by: []\n subType: dql-builder-metrics\n visualization: lineChart\n visualizationSettings:\n thresholds: []\n chartSettings:\n gapPolicy: connect\n circleChartSettings:\n groupingThresholdType: relative\n groupingThresholdValue: 0\n valueType: relative\n categoryOverrides: {}\n fieldMapping:\n timestamp: timeframe\n leftAxisValues:\n - avg(dt.host.cpu.user)\n leftAxisDimensions: []\n fields: []\n values: []\n singleValue:\n showLabel: true\n label:\n prefixIcon:\n autoscale: true\n alignment: center\n colorThresholdTarget: value\n table:\n rowDensity: condensed\n enableSparklines: false\n hiddenColumns: []\n lineWrapIds: []\n columnWidths: {}\n '2':\n type: data\n title:\n query: timeseries avg(dt.host.memory.used)\n queryConfig:\n additionalFilters: {}\n version: 4.3.1\n datatype: metrics\n metricKey: dt.host.memory.used\n aggregation: avg\n by: []\n subType: dql-builder-metrics\n visualization: lineChart\n visualizationSettings:\n thresholds: []\n chartSettings:\n gapPolicy: connect\n circleChartSettings:\n groupingThresholdType: relative\n groupingThresholdValue: 0\n valueType: relative\n categoryOverrides: {}\n fieldMapping:\n timestamp: timeframe\n leftAxisValues:\n - avg(dt.host.memory.used)\n leftAxisDimensions: []\n fields: []\n values: []\n categoricalBarChartSettings: {}\n singleValue:\n showLabel: true\n label:\n prefixIcon:\n autoscale: true\n alignment: center\n colorThresholdTarget: value\n table:\n rowDensity: condensed\n enableSparklines: false\n hiddenColumns: []\n lineWrapIds: []\n columnWidths: {}\n layouts:\n '0':\n x: 0\n y: 0\n w: 24\n h: 14\n '1':\n x: 0\n y: 14\n w: 9\n h: 6\n '2':\n x: 15\n y: 14\n w: 9\n h: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "actor": { "type": "string", @@ -53162,7 +53214,7 @@ }, "type": { "type": "string", - "description": "Type of the document. Possible Values are `dashboard` and `notebook`\n" + "description": "Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook`\n" }, "version": { "type": "integer", @@ -53200,7 +53252,7 @@ }, "type": { "type": "string", - "description": "Type of the document. Possible Values are `dashboard` and `notebook`\n" + "description": "Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook`\n" } }, "requiredInputs": [ @@ -53232,7 +53284,7 @@ }, "type": { "type": "string", - "description": "Type of the document. Possible Values are `dashboard` and `notebook`\n" + "description": "Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook`\n" }, "version": { "type": "integer", @@ -59318,7 +59370,8 @@ }, "pvcMonitoringEnabled": { "type": "boolean", - "description": "To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment.\n" + "description": "To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment.\n", + "deprecationMessage": "This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details." }, "scope": { "type": "string", @@ -59329,8 +59382,7 @@ "cloudApplicationPipelineEnabled", "eventProcessingActive", "openMetricsBuiltinEnabled", - "openMetricsPipelineEnabled", - "pvcMonitoringEnabled" + "openMetricsPipelineEnabled" ], "inputProperties": { "cloudApplicationPipelineEnabled": { @@ -59363,7 +59415,8 @@ }, "pvcMonitoringEnabled": { "type": "boolean", - "description": "To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment.\n" + "description": "To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment.\n", + "deprecationMessage": "This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details." }, "scope": { "type": "string", @@ -59375,8 +59428,7 @@ "cloudApplicationPipelineEnabled", "eventProcessingActive", "openMetricsBuiltinEnabled", - "openMetricsPipelineEnabled", - "pvcMonitoringEnabled" + "openMetricsPipelineEnabled" ], "stateInputs": { "description": "Input properties used for looking up and filtering K8sMonitoring resources.\n", @@ -59411,7 +59463,8 @@ }, "pvcMonitoringEnabled": { "type": "boolean", - "description": "To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment.\n" + "description": "To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment.\n", + "deprecationMessage": "This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details." }, "scope": { "type": "string", @@ -60379,6 +60432,48 @@ "type": "object" } }, + "dynatrace:index/kubernetesSpm:KubernetesSpm": { + "properties": { + "configurationDatasetPipelineEnabled": { + "type": "boolean", + "description": "Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components.\n" + }, + "scope": { + "type": "string", + "description": "The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment.\n" + } + }, + "required": [ + "configurationDatasetPipelineEnabled" + ], + "inputProperties": { + "configurationDatasetPipelineEnabled": { + "type": "boolean", + "description": "Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components.\n" + }, + "scope": { + "type": "string", + "description": "The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment.\n" + } + }, + "requiredInputs": [ + "configurationDatasetPipelineEnabled" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering KubernetesSpm resources.\n", + "properties": { + "configurationDatasetPipelineEnabled": { + "type": "boolean", + "description": "Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components.\n" + }, + "scope": { + "type": "string", + "description": "The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment.\n" + } + }, + "type": "object" + } + }, "dynatrace:index/limitOutboundConnections:LimitOutboundConnections": { "properties": { "allowedOutboundConnections": { @@ -60409,6 +60504,48 @@ "type": "object" } }, + "dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags": { + "properties": { + "newContainerLogDetector": { + "type": "boolean", + "description": "Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0).\n" + }, + "scope": { + "type": "string", + "description": "The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment.\n" + } + }, + "required": [ + "newContainerLogDetector" + ], + "inputProperties": { + "newContainerLogDetector": { + "type": "boolean", + "description": "Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0).\n" + }, + "scope": { + "type": "string", + "description": "The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment.\n" + } + }, + "requiredInputs": [ + "newContainerLogDetector" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering LogAgentFeatureFlags resources.\n", + "properties": { + "newContainerLogDetector": { + "type": "boolean", + "description": "Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0).\n" + }, + "scope": { + "type": "string", + "description": "The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment.\n" + } + }, + "type": "object" + } + }, "dynatrace:index/logBuckets:LogBuckets": { "properties": { "bucketName": { @@ -66683,6 +66820,64 @@ "type": "object" } }, + "dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules": { + "properties": { + "enabled": { + "type": "boolean", + "description": "This setting is enabled (`true`) or disabled (`false`)\n" + }, + "sourceAttributeKey": { + "type": "string", + "description": "Attribute key from the event that will be propagated.\n" + }, + "targetAttributeKey": { + "type": "string", + "description": "Attribute key under which the propagated event data will be stored on the problem.\n" + } + }, + "required": [ + "enabled", + "sourceAttributeKey", + "targetAttributeKey" + ], + "inputProperties": { + "enabled": { + "type": "boolean", + "description": "This setting is enabled (`true`) or disabled (`false`)\n" + }, + "sourceAttributeKey": { + "type": "string", + "description": "Attribute key from the event that will be propagated.\n" + }, + "targetAttributeKey": { + "type": "string", + "description": "Attribute key under which the propagated event data will be stored on the problem.\n" + } + }, + "requiredInputs": [ + "enabled", + "sourceAttributeKey", + "targetAttributeKey" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ProblemRecordPropagationRules resources.\n", + "properties": { + "enabled": { + "type": "boolean", + "description": "This setting is enabled (`true`) or disabled (`false`)\n" + }, + "sourceAttributeKey": { + "type": "string", + "description": "Attribute key from the event that will be propagated.\n" + }, + "targetAttributeKey": { + "type": "string", + "description": "Attribute key under which the propagated event data will be stored on the problem.\n" + } + }, + "type": "object" + } + }, "dynatrace:index/processAvailability:ProcessAvailability": { "properties": { "enabled": { @@ -75516,6 +75711,13 @@ "global": { "type": "boolean", "description": "If `true` the results will contain global policies\n" + }, + "groups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies\n" } }, "type": "object" @@ -75541,6 +75743,13 @@ "type": "boolean", "description": "If `true` the results will contain global policies\n" }, + "groups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies\n" + }, "id": { "type": "string", "description": "The provider-assigned unique ID for this managed resource.\n" diff --git a/provider/resources.go b/provider/resources.go index b00fa766..03e18474 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -167,6 +167,14 @@ func Provider() tfbridge.ProviderInfo { "dynatrace_cloudfoundry_credentials": {Tok: dynatraceResource(mainMod, "CloudfoundryCredentials")}, "dynatrace_cloud_foundry": {Tok: dynatraceResource(mainMod, "CloudFoundry")}, "dynatrace_cloudapp_workloaddetection": {Tok: dynatraceResource(mainMod, "CloudappWorkloaddetection")}, + "dynatrace_cloud_development_environments": { + Tok: tfbridge.MakeResource(mainPkg, mainMod, "CloudDevelopmentEnvironments"), + Fields: map[string]*tfbridge.SchemaInfo{ + "cloud_development_environments": { + CSharpName: "Environments", + }, + }, + }, "dynatrace_connectivity_alerts": { Tok: dynatraceResource(mainMod, "ConnectivityAlerts"), Fields: map[string]*tfbridge.SchemaInfo{"connectivity_alerts": {CSharpName: "EnableConnectivityAlerts"}}, diff --git a/sdk/dotnet/CloudDevelopmentEnvironments.cs b/sdk/dotnet/CloudDevelopmentEnvironments.cs new file mode 100644 index 00000000..371c2a57 --- /dev/null +++ b/sdk/dotnet/CloudDevelopmentEnvironments.cs @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Dynatrace +{ + [DynatraceResourceType("dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments")] + public partial class CloudDevelopmentEnvironments : global::Pulumi.CustomResource + { + /// + /// The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + /// + [Output("cloudDevelopmentEnvironments")] + public Output> Environments { get; private set; } = null!; + + + /// + /// Create a CloudDevelopmentEnvironments resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public CloudDevelopmentEnvironments(string name, CloudDevelopmentEnvironmentsArgs? args = null, CustomResourceOptions? options = null) + : base("dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments", name, args ?? new CloudDevelopmentEnvironmentsArgs(), MakeResourceOptions(options, "")) + { + } + + private CloudDevelopmentEnvironments(string name, Input id, CloudDevelopmentEnvironmentsState? state = null, CustomResourceOptions? options = null) + : base("dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing CloudDevelopmentEnvironments resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static CloudDevelopmentEnvironments Get(string name, Input id, CloudDevelopmentEnvironmentsState? state = null, CustomResourceOptions? options = null) + { + return new CloudDevelopmentEnvironments(name, id, state, options); + } + } + + public sealed class CloudDevelopmentEnvironmentsArgs : global::Pulumi.ResourceArgs + { + [Input("cloudDevelopmentEnvironments")] + private InputList? _cloudDevelopmentEnvironments; + + /// + /// The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + /// + public InputList Environments + { + get => _cloudDevelopmentEnvironments ?? (_cloudDevelopmentEnvironments = new InputList()); + set => _cloudDevelopmentEnvironments = value; + } + + public CloudDevelopmentEnvironmentsArgs() + { + } + public static new CloudDevelopmentEnvironmentsArgs Empty => new CloudDevelopmentEnvironmentsArgs(); + } + + public sealed class CloudDevelopmentEnvironmentsState : global::Pulumi.ResourceArgs + { + [Input("cloudDevelopmentEnvironments")] + private InputList? _cloudDevelopmentEnvironments; + + /// + /// The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + /// + public InputList Environments + { + get => _cloudDevelopmentEnvironments ?? (_cloudDevelopmentEnvironments = new InputList()); + set => _cloudDevelopmentEnvironments = value; + } + + public CloudDevelopmentEnvironmentsState() + { + } + public static new CloudDevelopmentEnvironmentsState Empty => new CloudDevelopmentEnvironmentsState(); + } +} diff --git a/sdk/dotnet/DirectShares.cs b/sdk/dotnet/DirectShares.cs index 0fd3cc46..0f126402 100644 --- a/sdk/dotnet/DirectShares.cs +++ b/sdk/dotnet/DirectShares.cs @@ -26,15 +26,224 @@ namespace Pulumiverse.Dynatrace /// ```csharp /// using System.Collections.Generic; /// using System.Linq; + /// using System.Text.Json; /// using Pulumi; /// using Dynatrace = Pulumiverse.Dynatrace; /// /// return await Deployment.RunAsync(() => /// { - /// var @this = new Dynatrace.DirectShares("this", new() + /// var thisDocument = new Dynatrace.Document("thisDocument", new() /// { + /// Type = "dashboard", + /// Content = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["version"] = 13, + /// ["variables"] = new[] + /// { + /// }, + /// ["tiles"] = new Dictionary<string, object?> + /// { + /// ["0"] = new Dictionary<string, object?> + /// { + /// ["type"] = "markdown", + /// ["title"] = "", + /// ["content"] = "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + /// }, + /// ["1"] = new Dictionary<string, object?> + /// { + /// ["type"] = "data", + /// ["title"] = "", + /// ["query"] = "timeseries avg(dt.host.cpu.user)", + /// ["queryConfig"] = new Dictionary<string, object?> + /// { + /// ["additionalFilters"] = new Dictionary<string, object?> + /// { + /// }, + /// ["version"] = "4.3.1", + /// ["datatype"] = "metrics", + /// ["metricKey"] = "dt.host.cpu.user", + /// ["aggregation"] = "avg", + /// ["by"] = new[] + /// { + /// }, + /// }, + /// ["subType"] = "dql-builder-metrics", + /// ["visualization"] = "lineChart", + /// ["visualizationSettings"] = new Dictionary<string, object?> + /// { + /// ["thresholds"] = new[] + /// { + /// }, + /// ["chartSettings"] = new Dictionary<string, object?> + /// { + /// ["gapPolicy"] = "connect", + /// ["circleChartSettings"] = new Dictionary<string, object?> + /// { + /// ["groupingThresholdType"] = "relative", + /// ["groupingThresholdValue"] = 0, + /// ["valueType"] = "relative", + /// }, + /// ["categoryOverrides"] = new Dictionary<string, object?> + /// { + /// }, + /// ["fieldMapping"] = new Dictionary<string, object?> + /// { + /// ["timestamp"] = "timeframe", + /// ["leftAxisValues"] = new[] + /// { + /// "avg(dt.host.cpu.user)", + /// }, + /// ["leftAxisDimensions"] = new[] + /// { + /// }, + /// ["fields"] = new[] + /// { + /// }, + /// ["values"] = new[] + /// { + /// }, + /// }, + /// }, + /// ["singleValue"] = new Dictionary<string, object?> + /// { + /// ["showLabel"] = true, + /// ["label"] = "", + /// ["prefixIcon"] = "", + /// ["autoscale"] = true, + /// ["alignment"] = "center", + /// ["colorThresholdTarget"] = "value", + /// }, + /// ["table"] = new Dictionary<string, object?> + /// { + /// ["rowDensity"] = "condensed", + /// ["enableSparklines"] = false, + /// ["hiddenColumns"] = new[] + /// { + /// }, + /// ["lineWrapIds"] = new[] + /// { + /// }, + /// ["columnWidths"] = new Dictionary<string, object?> + /// { + /// }, + /// }, + /// }, + /// }, + /// ["2"] = new Dictionary<string, object?> + /// { + /// ["type"] = "data", + /// ["title"] = "", + /// ["query"] = "timeseries avg(dt.host.memory.used)", + /// ["queryConfig"] = new Dictionary<string, object?> + /// { + /// ["additionalFilters"] = new Dictionary<string, object?> + /// { + /// }, + /// ["version"] = "4.3.1", + /// ["datatype"] = "metrics", + /// ["metricKey"] = "dt.host.memory.used", + /// ["aggregation"] = "avg", + /// ["by"] = new[] + /// { + /// }, + /// }, + /// ["subType"] = "dql-builder-metrics", + /// ["visualization"] = "lineChart", + /// ["visualizationSettings"] = new Dictionary<string, object?> + /// { + /// ["thresholds"] = new[] + /// { + /// }, + /// ["chartSettings"] = new Dictionary<string, object?> + /// { + /// ["gapPolicy"] = "connect", + /// ["circleChartSettings"] = new Dictionary<string, object?> + /// { + /// ["groupingThresholdType"] = "relative", + /// ["groupingThresholdValue"] = 0, + /// ["valueType"] = "relative", + /// }, + /// ["categoryOverrides"] = new Dictionary<string, object?> + /// { + /// }, + /// ["fieldMapping"] = new Dictionary<string, object?> + /// { + /// ["timestamp"] = "timeframe", + /// ["leftAxisValues"] = new[] + /// { + /// "avg(dt.host.memory.used)", + /// }, + /// ["leftAxisDimensions"] = new[] + /// { + /// }, + /// ["fields"] = new[] + /// { + /// }, + /// ["values"] = new[] + /// { + /// }, + /// }, + /// ["categoricalBarChartSettings"] = new Dictionary<string, object?> + /// { + /// }, + /// }, + /// ["singleValue"] = new Dictionary<string, object?> + /// { + /// ["showLabel"] = true, + /// ["label"] = "", + /// ["prefixIcon"] = "", + /// ["autoscale"] = true, + /// ["alignment"] = "center", + /// ["colorThresholdTarget"] = "value", + /// }, + /// ["table"] = new Dictionary<string, object?> + /// { + /// ["rowDensity"] = "condensed", + /// ["enableSparklines"] = false, + /// ["hiddenColumns"] = new[] + /// { + /// }, + /// ["lineWrapIds"] = new[] + /// { + /// }, + /// ["columnWidths"] = new Dictionary<string, object?> + /// { + /// }, + /// }, + /// }, + /// }, + /// }, + /// ["layouts"] = new Dictionary<string, object?> + /// { + /// ["0"] = new Dictionary<string, object?> + /// { + /// ["x"] = 0, + /// ["y"] = 0, + /// ["w"] = 24, + /// ["h"] = 14, + /// }, + /// ["1"] = new Dictionary<string, object?> + /// { + /// ["x"] = 0, + /// ["y"] = 14, + /// ["w"] = 9, + /// ["h"] = 6, + /// }, + /// ["2"] = new Dictionary<string, object?> + /// { + /// ["x"] = 15, + /// ["y"] = 14, + /// ["w"] = 9, + /// ["h"] = 6, + /// }, + /// }, + /// }), + /// }); + /// + /// var thisDirectShares = new Dynatrace.DirectShares("thisDirectShares", new() + /// { + /// DocumentId = thisDocument.Id, /// Access = "read-write", - /// DocumentId = "441564f0-23c9-40ef-b344-18c02c23d712", /// Recipients = new Dynatrace.Inputs.DirectSharesRecipientsArgs /// { /// Recipients = new[] diff --git a/sdk/dotnet/Document.cs b/sdk/dotnet/Document.cs index b6e98287..07bca556 100644 --- a/sdk/dotnet/Document.cs +++ b/sdk/dotnet/Document.cs @@ -20,6 +20,228 @@ namespace Pulumiverse.Dynatrace /// ## Dynatrace Documentation /// /// - Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service + /// + /// ## Resource Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Dynatrace = Pulumiverse.Dynatrace; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @this = new Dynatrace.Document("this", new() + /// { + /// Type = "dashboard", + /// Content = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["version"] = 13, + /// ["variables"] = new[] + /// { + /// }, + /// ["tiles"] = new Dictionary<string, object?> + /// { + /// ["0"] = new Dictionary<string, object?> + /// { + /// ["type"] = "markdown", + /// ["title"] = "", + /// ["content"] = "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + /// }, + /// ["1"] = new Dictionary<string, object?> + /// { + /// ["type"] = "data", + /// ["title"] = "", + /// ["query"] = "timeseries avg(dt.host.cpu.user)", + /// ["queryConfig"] = new Dictionary<string, object?> + /// { + /// ["additionalFilters"] = new Dictionary<string, object?> + /// { + /// }, + /// ["version"] = "4.3.1", + /// ["datatype"] = "metrics", + /// ["metricKey"] = "dt.host.cpu.user", + /// ["aggregation"] = "avg", + /// ["by"] = new[] + /// { + /// }, + /// }, + /// ["subType"] = "dql-builder-metrics", + /// ["visualization"] = "lineChart", + /// ["visualizationSettings"] = new Dictionary<string, object?> + /// { + /// ["thresholds"] = new[] + /// { + /// }, + /// ["chartSettings"] = new Dictionary<string, object?> + /// { + /// ["gapPolicy"] = "connect", + /// ["circleChartSettings"] = new Dictionary<string, object?> + /// { + /// ["groupingThresholdType"] = "relative", + /// ["groupingThresholdValue"] = 0, + /// ["valueType"] = "relative", + /// }, + /// ["categoryOverrides"] = new Dictionary<string, object?> + /// { + /// }, + /// ["fieldMapping"] = new Dictionary<string, object?> + /// { + /// ["timestamp"] = "timeframe", + /// ["leftAxisValues"] = new[] + /// { + /// "avg(dt.host.cpu.user)", + /// }, + /// ["leftAxisDimensions"] = new[] + /// { + /// }, + /// ["fields"] = new[] + /// { + /// }, + /// ["values"] = new[] + /// { + /// }, + /// }, + /// }, + /// ["singleValue"] = new Dictionary<string, object?> + /// { + /// ["showLabel"] = true, + /// ["label"] = "", + /// ["prefixIcon"] = "", + /// ["autoscale"] = true, + /// ["alignment"] = "center", + /// ["colorThresholdTarget"] = "value", + /// }, + /// ["table"] = new Dictionary<string, object?> + /// { + /// ["rowDensity"] = "condensed", + /// ["enableSparklines"] = false, + /// ["hiddenColumns"] = new[] + /// { + /// }, + /// ["lineWrapIds"] = new[] + /// { + /// }, + /// ["columnWidths"] = new Dictionary<string, object?> + /// { + /// }, + /// }, + /// }, + /// }, + /// ["2"] = new Dictionary<string, object?> + /// { + /// ["type"] = "data", + /// ["title"] = "", + /// ["query"] = "timeseries avg(dt.host.memory.used)", + /// ["queryConfig"] = new Dictionary<string, object?> + /// { + /// ["additionalFilters"] = new Dictionary<string, object?> + /// { + /// }, + /// ["version"] = "4.3.1", + /// ["datatype"] = "metrics", + /// ["metricKey"] = "dt.host.memory.used", + /// ["aggregation"] = "avg", + /// ["by"] = new[] + /// { + /// }, + /// }, + /// ["subType"] = "dql-builder-metrics", + /// ["visualization"] = "lineChart", + /// ["visualizationSettings"] = new Dictionary<string, object?> + /// { + /// ["thresholds"] = new[] + /// { + /// }, + /// ["chartSettings"] = new Dictionary<string, object?> + /// { + /// ["gapPolicy"] = "connect", + /// ["circleChartSettings"] = new Dictionary<string, object?> + /// { + /// ["groupingThresholdType"] = "relative", + /// ["groupingThresholdValue"] = 0, + /// ["valueType"] = "relative", + /// }, + /// ["categoryOverrides"] = new Dictionary<string, object?> + /// { + /// }, + /// ["fieldMapping"] = new Dictionary<string, object?> + /// { + /// ["timestamp"] = "timeframe", + /// ["leftAxisValues"] = new[] + /// { + /// "avg(dt.host.memory.used)", + /// }, + /// ["leftAxisDimensions"] = new[] + /// { + /// }, + /// ["fields"] = new[] + /// { + /// }, + /// ["values"] = new[] + /// { + /// }, + /// }, + /// ["categoricalBarChartSettings"] = new Dictionary<string, object?> + /// { + /// }, + /// }, + /// ["singleValue"] = new Dictionary<string, object?> + /// { + /// ["showLabel"] = true, + /// ["label"] = "", + /// ["prefixIcon"] = "", + /// ["autoscale"] = true, + /// ["alignment"] = "center", + /// ["colorThresholdTarget"] = "value", + /// }, + /// ["table"] = new Dictionary<string, object?> + /// { + /// ["rowDensity"] = "condensed", + /// ["enableSparklines"] = false, + /// ["hiddenColumns"] = new[] + /// { + /// }, + /// ["lineWrapIds"] = new[] + /// { + /// }, + /// ["columnWidths"] = new Dictionary<string, object?> + /// { + /// }, + /// }, + /// }, + /// }, + /// }, + /// ["layouts"] = new Dictionary<string, object?> + /// { + /// ["0"] = new Dictionary<string, object?> + /// { + /// ["x"] = 0, + /// ["y"] = 0, + /// ["w"] = 24, + /// ["h"] = 14, + /// }, + /// ["1"] = new Dictionary<string, object?> + /// { + /// ["x"] = 0, + /// ["y"] = 14, + /// ["w"] = 9, + /// ["h"] = 6, + /// }, + /// ["2"] = new Dictionary<string, object?> + /// { + /// ["x"] = 15, + /// ["y"] = 14, + /// ["w"] = 9, + /// ["h"] = 6, + /// }, + /// }, + /// }), + /// }); + /// + /// }); + /// ``` /// [DynatraceResourceType("dynatrace:index/document:Document")] public partial class Document : global::Pulumi.CustomResource @@ -55,7 +277,7 @@ public partial class Document : global::Pulumi.CustomResource public Output Private { get; private set; } = null!; /// - /// Type of the document. Possible Values are `dashboard` and `notebook` + /// Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` /// [Output("type")] public Output Type { get; private set; } = null!; @@ -144,7 +366,7 @@ public sealed class DocumentArgs : global::Pulumi.ResourceArgs public Input? Private { get; set; } /// - /// Type of the document. Possible Values are `dashboard` and `notebook` + /// Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` /// [Input("type", required: true)] public Input Type { get; set; } = null!; @@ -188,7 +410,7 @@ public sealed class DocumentState : global::Pulumi.ResourceArgs public Input? Private { get; set; } /// - /// Type of the document. Possible Values are `dashboard` and `notebook` + /// Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/GetIamPolicies.cs b/sdk/dotnet/GetIamPolicies.cs index e8f28f41..e4228673 100644 --- a/sdk/dotnet/GetIamPolicies.cs +++ b/sdk/dotnet/GetIamPolicies.cs @@ -296,6 +296,18 @@ public List Environments [Input("global")] public bool? Global { get; set; } + [Input("groups")] + private List? _groups; + + /// + /// The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + /// + public List Groups + { + get => _groups ?? (_groups = new List()); + set => _groups = value; + } + public GetIamPoliciesArgs() { } @@ -334,6 +346,18 @@ public InputList Environments [Input("global")] public Input? Global { get; set; } + [Input("groups")] + private InputList? _groups; + + /// + /// The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + /// + public InputList Groups + { + get => _groups ?? (_groups = new InputList()); + set => _groups = value; + } + public GetIamPoliciesInvokeArgs() { } @@ -357,6 +381,10 @@ public sealed class GetIamPoliciesResult /// public readonly bool? Global; /// + /// The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + /// + public readonly ImmutableArray Groups; + /// /// The provider-assigned unique ID for this managed resource. /// public readonly string Id; @@ -370,6 +398,8 @@ private GetIamPoliciesResult( bool? global, + ImmutableArray groups, + string id, ImmutableArray policies) @@ -377,6 +407,7 @@ private GetIamPoliciesResult( Accounts = accounts; Environments = environments; Global = global; + Groups = groups; Id = id; Policies = policies; } diff --git a/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskArgs.cs b/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskArgs.cs index 31167522..8331ab42 100644 --- a/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskArgs.cs +++ b/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskArgs.cs @@ -73,6 +73,12 @@ public sealed class AutomationWorkflowTasksTaskArgs : global::Pulumi.ResourceArg [Input("timeout")] public Input? Timeout { get; set; } + /// + /// Specifies a default task wait before in seconds. 0 is used when not set + /// + [Input("waitBefore")] + public Input? WaitBefore { get; set; } + /// /// Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` /// diff --git a/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskGetArgs.cs b/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskGetArgs.cs index 773113bf..e40f8f48 100644 --- a/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskGetArgs.cs +++ b/sdk/dotnet/Inputs/AutomationWorkflowTasksTaskGetArgs.cs @@ -73,6 +73,12 @@ public sealed class AutomationWorkflowTasksTaskGetArgs : global::Pulumi.Resource [Input("timeout")] public Input? Timeout { get; set; } + /// + /// Specifies a default task wait before in seconds. 0 is used when not set + /// + [Input("waitBefore")] + public Input? WaitBefore { get; set; } + /// /// Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` /// diff --git a/sdk/dotnet/K8sMonitoring.cs b/sdk/dotnet/K8sMonitoring.cs index 0ac660d8..5da33078 100644 --- a/sdk/dotnet/K8sMonitoring.cs +++ b/sdk/dotnet/K8sMonitoring.cs @@ -61,7 +61,7 @@ public partial class K8sMonitoring : global::Pulumi.CustomResource /// To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. /// [Output("pvcMonitoringEnabled")] - public Output PvcMonitoringEnabled { get; private set; } = null!; + public Output PvcMonitoringEnabled { get; private set; } = null!; /// /// The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. @@ -163,8 +163,8 @@ public sealed class K8sMonitoringArgs : global::Pulumi.ResourceArgs /// /// To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. /// - [Input("pvcMonitoringEnabled", required: true)] - public Input PvcMonitoringEnabled { get; set; } = null!; + [Input("pvcMonitoringEnabled")] + public Input? PvcMonitoringEnabled { get; set; } /// /// The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. diff --git a/sdk/dotnet/KubernetesSpm.cs b/sdk/dotnet/KubernetesSpm.cs new file mode 100644 index 00000000..9867aebd --- /dev/null +++ b/sdk/dotnet/KubernetesSpm.cs @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Dynatrace +{ + [DynatraceResourceType("dynatrace:index/kubernetesSpm:KubernetesSpm")] + public partial class KubernetesSpm : global::Pulumi.CustomResource + { + /// + /// Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + /// + [Output("configurationDatasetPipelineEnabled")] + public Output ConfigurationDatasetPipelineEnabled { get; private set; } = null!; + + /// + /// The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + /// + [Output("scope")] + public Output Scope { get; private set; } = null!; + + + /// + /// Create a KubernetesSpm resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public KubernetesSpm(string name, KubernetesSpmArgs args, CustomResourceOptions? options = null) + : base("dynatrace:index/kubernetesSpm:KubernetesSpm", name, args ?? new KubernetesSpmArgs(), MakeResourceOptions(options, "")) + { + } + + private KubernetesSpm(string name, Input id, KubernetesSpmState? state = null, CustomResourceOptions? options = null) + : base("dynatrace:index/kubernetesSpm:KubernetesSpm", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing KubernetesSpm resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static KubernetesSpm Get(string name, Input id, KubernetesSpmState? state = null, CustomResourceOptions? options = null) + { + return new KubernetesSpm(name, id, state, options); + } + } + + public sealed class KubernetesSpmArgs : global::Pulumi.ResourceArgs + { + /// + /// Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + /// + [Input("configurationDatasetPipelineEnabled", required: true)] + public Input ConfigurationDatasetPipelineEnabled { get; set; } = null!; + + /// + /// The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + /// + [Input("scope")] + public Input? Scope { get; set; } + + public KubernetesSpmArgs() + { + } + public static new KubernetesSpmArgs Empty => new KubernetesSpmArgs(); + } + + public sealed class KubernetesSpmState : global::Pulumi.ResourceArgs + { + /// + /// Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + /// + [Input("configurationDatasetPipelineEnabled")] + public Input? ConfigurationDatasetPipelineEnabled { get; set; } + + /// + /// The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + /// + [Input("scope")] + public Input? Scope { get; set; } + + public KubernetesSpmState() + { + } + public static new KubernetesSpmState Empty => new KubernetesSpmState(); + } +} diff --git a/sdk/dotnet/LogAgentFeatureFlags.cs b/sdk/dotnet/LogAgentFeatureFlags.cs new file mode 100644 index 00000000..7e8fe429 --- /dev/null +++ b/sdk/dotnet/LogAgentFeatureFlags.cs @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Dynatrace +{ + [DynatraceResourceType("dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags")] + public partial class LogAgentFeatureFlags : global::Pulumi.CustomResource + { + /// + /// Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + /// + [Output("newContainerLogDetector")] + public Output NewContainerLogDetector { get; private set; } = null!; + + /// + /// The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + /// + [Output("scope")] + public Output Scope { get; private set; } = null!; + + + /// + /// Create a LogAgentFeatureFlags resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public LogAgentFeatureFlags(string name, LogAgentFeatureFlagsArgs args, CustomResourceOptions? options = null) + : base("dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags", name, args ?? new LogAgentFeatureFlagsArgs(), MakeResourceOptions(options, "")) + { + } + + private LogAgentFeatureFlags(string name, Input id, LogAgentFeatureFlagsState? state = null, CustomResourceOptions? options = null) + : base("dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing LogAgentFeatureFlags resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static LogAgentFeatureFlags Get(string name, Input id, LogAgentFeatureFlagsState? state = null, CustomResourceOptions? options = null) + { + return new LogAgentFeatureFlags(name, id, state, options); + } + } + + public sealed class LogAgentFeatureFlagsArgs : global::Pulumi.ResourceArgs + { + /// + /// Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + /// + [Input("newContainerLogDetector", required: true)] + public Input NewContainerLogDetector { get; set; } = null!; + + /// + /// The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + /// + [Input("scope")] + public Input? Scope { get; set; } + + public LogAgentFeatureFlagsArgs() + { + } + public static new LogAgentFeatureFlagsArgs Empty => new LogAgentFeatureFlagsArgs(); + } + + public sealed class LogAgentFeatureFlagsState : global::Pulumi.ResourceArgs + { + /// + /// Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + /// + [Input("newContainerLogDetector")] + public Input? NewContainerLogDetector { get; set; } + + /// + /// The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + /// + [Input("scope")] + public Input? Scope { get; set; } + + public LogAgentFeatureFlagsState() + { + } + public static new LogAgentFeatureFlagsState Empty => new LogAgentFeatureFlagsState(); + } +} diff --git a/sdk/dotnet/Outputs/AutomationWorkflowTasksTask.cs b/sdk/dotnet/Outputs/AutomationWorkflowTasksTask.cs index 2499a1b3..8d7fe7cf 100644 --- a/sdk/dotnet/Outputs/AutomationWorkflowTasksTask.cs +++ b/sdk/dotnet/Outputs/AutomationWorkflowTasksTask.cs @@ -55,6 +55,10 @@ public sealed class AutomationWorkflowTasksTask /// public readonly string? Timeout; /// + /// Specifies a default task wait before in seconds. 0 is used when not set + /// + public readonly string? WaitBefore; + /// /// Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` /// public readonly string? WithItems; @@ -81,6 +85,8 @@ private AutomationWorkflowTasksTask( string? timeout, + string? waitBefore, + string? withItems) { Action = action; @@ -93,6 +99,7 @@ private AutomationWorkflowTasksTask( Position = position; Retry = retry; Timeout = timeout; + WaitBefore = waitBefore; WithItems = withItems; } } diff --git a/sdk/dotnet/ProblemRecordPropagationRules.cs b/sdk/dotnet/ProblemRecordPropagationRules.cs new file mode 100644 index 00000000..b17f0cbd --- /dev/null +++ b/sdk/dotnet/ProblemRecordPropagationRules.cs @@ -0,0 +1,130 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Dynatrace +{ + [DynatraceResourceType("dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules")] + public partial class ProblemRecordPropagationRules : global::Pulumi.CustomResource + { + /// + /// This setting is enabled (`true`) or disabled (`false`) + /// + [Output("enabled")] + public Output Enabled { get; private set; } = null!; + + /// + /// Attribute key from the event that will be propagated. + /// + [Output("sourceAttributeKey")] + public Output SourceAttributeKey { get; private set; } = null!; + + /// + /// Attribute key under which the propagated event data will be stored on the problem. + /// + [Output("targetAttributeKey")] + public Output TargetAttributeKey { get; private set; } = null!; + + + /// + /// Create a ProblemRecordPropagationRules resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ProblemRecordPropagationRules(string name, ProblemRecordPropagationRulesArgs args, CustomResourceOptions? options = null) + : base("dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules", name, args ?? new ProblemRecordPropagationRulesArgs(), MakeResourceOptions(options, "")) + { + } + + private ProblemRecordPropagationRules(string name, Input id, ProblemRecordPropagationRulesState? state = null, CustomResourceOptions? options = null) + : base("dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ProblemRecordPropagationRules resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ProblemRecordPropagationRules Get(string name, Input id, ProblemRecordPropagationRulesState? state = null, CustomResourceOptions? options = null) + { + return new ProblemRecordPropagationRules(name, id, state, options); + } + } + + public sealed class ProblemRecordPropagationRulesArgs : global::Pulumi.ResourceArgs + { + /// + /// This setting is enabled (`true`) or disabled (`false`) + /// + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + /// + /// Attribute key from the event that will be propagated. + /// + [Input("sourceAttributeKey", required: true)] + public Input SourceAttributeKey { get; set; } = null!; + + /// + /// Attribute key under which the propagated event data will be stored on the problem. + /// + [Input("targetAttributeKey", required: true)] + public Input TargetAttributeKey { get; set; } = null!; + + public ProblemRecordPropagationRulesArgs() + { + } + public static new ProblemRecordPropagationRulesArgs Empty => new ProblemRecordPropagationRulesArgs(); + } + + public sealed class ProblemRecordPropagationRulesState : global::Pulumi.ResourceArgs + { + /// + /// This setting is enabled (`true`) or disabled (`false`) + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Attribute key from the event that will be propagated. + /// + [Input("sourceAttributeKey")] + public Input? SourceAttributeKey { get; set; } + + /// + /// Attribute key under which the propagated event data will be stored on the problem. + /// + [Input("targetAttributeKey")] + public Input? TargetAttributeKey { get; set; } + + public ProblemRecordPropagationRulesState() + { + } + public static new ProblemRecordPropagationRulesState Empty => new ProblemRecordPropagationRulesState(); + } +} diff --git a/sdk/go/dynatrace/cloudDevelopmentEnvironments.go b/sdk/go/dynatrace/cloudDevelopmentEnvironments.go new file mode 100644 index 00000000..967da60d --- /dev/null +++ b/sdk/go/dynatrace/cloudDevelopmentEnvironments.go @@ -0,0 +1,214 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dynatrace + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace/internal" +) + +type CloudDevelopmentEnvironments struct { + pulumi.CustomResourceState + + // The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + CloudDevelopmentEnvironments pulumi.StringArrayOutput `pulumi:"cloudDevelopmentEnvironments"` +} + +// NewCloudDevelopmentEnvironments registers a new resource with the given unique name, arguments, and options. +func NewCloudDevelopmentEnvironments(ctx *pulumi.Context, + name string, args *CloudDevelopmentEnvironmentsArgs, opts ...pulumi.ResourceOption) (*CloudDevelopmentEnvironments, error) { + if args == nil { + args = &CloudDevelopmentEnvironmentsArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource CloudDevelopmentEnvironments + err := ctx.RegisterResource("dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCloudDevelopmentEnvironments gets an existing CloudDevelopmentEnvironments resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCloudDevelopmentEnvironments(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CloudDevelopmentEnvironmentsState, opts ...pulumi.ResourceOption) (*CloudDevelopmentEnvironments, error) { + var resource CloudDevelopmentEnvironments + err := ctx.ReadResource("dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CloudDevelopmentEnvironments resources. +type cloudDevelopmentEnvironmentsState struct { + // The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + CloudDevelopmentEnvironments []string `pulumi:"cloudDevelopmentEnvironments"` +} + +type CloudDevelopmentEnvironmentsState struct { + // The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + CloudDevelopmentEnvironments pulumi.StringArrayInput +} + +func (CloudDevelopmentEnvironmentsState) ElementType() reflect.Type { + return reflect.TypeOf((*cloudDevelopmentEnvironmentsState)(nil)).Elem() +} + +type cloudDevelopmentEnvironmentsArgs struct { + // The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + CloudDevelopmentEnvironments []string `pulumi:"cloudDevelopmentEnvironments"` +} + +// The set of arguments for constructing a CloudDevelopmentEnvironments resource. +type CloudDevelopmentEnvironmentsArgs struct { + // The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + CloudDevelopmentEnvironments pulumi.StringArrayInput +} + +func (CloudDevelopmentEnvironmentsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*cloudDevelopmentEnvironmentsArgs)(nil)).Elem() +} + +type CloudDevelopmentEnvironmentsInput interface { + pulumi.Input + + ToCloudDevelopmentEnvironmentsOutput() CloudDevelopmentEnvironmentsOutput + ToCloudDevelopmentEnvironmentsOutputWithContext(ctx context.Context) CloudDevelopmentEnvironmentsOutput +} + +func (*CloudDevelopmentEnvironments) ElementType() reflect.Type { + return reflect.TypeOf((**CloudDevelopmentEnvironments)(nil)).Elem() +} + +func (i *CloudDevelopmentEnvironments) ToCloudDevelopmentEnvironmentsOutput() CloudDevelopmentEnvironmentsOutput { + return i.ToCloudDevelopmentEnvironmentsOutputWithContext(context.Background()) +} + +func (i *CloudDevelopmentEnvironments) ToCloudDevelopmentEnvironmentsOutputWithContext(ctx context.Context) CloudDevelopmentEnvironmentsOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudDevelopmentEnvironmentsOutput) +} + +// CloudDevelopmentEnvironmentsArrayInput is an input type that accepts CloudDevelopmentEnvironmentsArray and CloudDevelopmentEnvironmentsArrayOutput values. +// You can construct a concrete instance of `CloudDevelopmentEnvironmentsArrayInput` via: +// +// CloudDevelopmentEnvironmentsArray{ CloudDevelopmentEnvironmentsArgs{...} } +type CloudDevelopmentEnvironmentsArrayInput interface { + pulumi.Input + + ToCloudDevelopmentEnvironmentsArrayOutput() CloudDevelopmentEnvironmentsArrayOutput + ToCloudDevelopmentEnvironmentsArrayOutputWithContext(context.Context) CloudDevelopmentEnvironmentsArrayOutput +} + +type CloudDevelopmentEnvironmentsArray []CloudDevelopmentEnvironmentsInput + +func (CloudDevelopmentEnvironmentsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CloudDevelopmentEnvironments)(nil)).Elem() +} + +func (i CloudDevelopmentEnvironmentsArray) ToCloudDevelopmentEnvironmentsArrayOutput() CloudDevelopmentEnvironmentsArrayOutput { + return i.ToCloudDevelopmentEnvironmentsArrayOutputWithContext(context.Background()) +} + +func (i CloudDevelopmentEnvironmentsArray) ToCloudDevelopmentEnvironmentsArrayOutputWithContext(ctx context.Context) CloudDevelopmentEnvironmentsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudDevelopmentEnvironmentsArrayOutput) +} + +// CloudDevelopmentEnvironmentsMapInput is an input type that accepts CloudDevelopmentEnvironmentsMap and CloudDevelopmentEnvironmentsMapOutput values. +// You can construct a concrete instance of `CloudDevelopmentEnvironmentsMapInput` via: +// +// CloudDevelopmentEnvironmentsMap{ "key": CloudDevelopmentEnvironmentsArgs{...} } +type CloudDevelopmentEnvironmentsMapInput interface { + pulumi.Input + + ToCloudDevelopmentEnvironmentsMapOutput() CloudDevelopmentEnvironmentsMapOutput + ToCloudDevelopmentEnvironmentsMapOutputWithContext(context.Context) CloudDevelopmentEnvironmentsMapOutput +} + +type CloudDevelopmentEnvironmentsMap map[string]CloudDevelopmentEnvironmentsInput + +func (CloudDevelopmentEnvironmentsMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CloudDevelopmentEnvironments)(nil)).Elem() +} + +func (i CloudDevelopmentEnvironmentsMap) ToCloudDevelopmentEnvironmentsMapOutput() CloudDevelopmentEnvironmentsMapOutput { + return i.ToCloudDevelopmentEnvironmentsMapOutputWithContext(context.Background()) +} + +func (i CloudDevelopmentEnvironmentsMap) ToCloudDevelopmentEnvironmentsMapOutputWithContext(ctx context.Context) CloudDevelopmentEnvironmentsMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudDevelopmentEnvironmentsMapOutput) +} + +type CloudDevelopmentEnvironmentsOutput struct{ *pulumi.OutputState } + +func (CloudDevelopmentEnvironmentsOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CloudDevelopmentEnvironments)(nil)).Elem() +} + +func (o CloudDevelopmentEnvironmentsOutput) ToCloudDevelopmentEnvironmentsOutput() CloudDevelopmentEnvironmentsOutput { + return o +} + +func (o CloudDevelopmentEnvironmentsOutput) ToCloudDevelopmentEnvironmentsOutputWithContext(ctx context.Context) CloudDevelopmentEnvironmentsOutput { + return o +} + +// The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. +func (o CloudDevelopmentEnvironmentsOutput) CloudDevelopmentEnvironments() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CloudDevelopmentEnvironments) pulumi.StringArrayOutput { return v.CloudDevelopmentEnvironments }).(pulumi.StringArrayOutput) +} + +type CloudDevelopmentEnvironmentsArrayOutput struct{ *pulumi.OutputState } + +func (CloudDevelopmentEnvironmentsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CloudDevelopmentEnvironments)(nil)).Elem() +} + +func (o CloudDevelopmentEnvironmentsArrayOutput) ToCloudDevelopmentEnvironmentsArrayOutput() CloudDevelopmentEnvironmentsArrayOutput { + return o +} + +func (o CloudDevelopmentEnvironmentsArrayOutput) ToCloudDevelopmentEnvironmentsArrayOutputWithContext(ctx context.Context) CloudDevelopmentEnvironmentsArrayOutput { + return o +} + +func (o CloudDevelopmentEnvironmentsArrayOutput) Index(i pulumi.IntInput) CloudDevelopmentEnvironmentsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CloudDevelopmentEnvironments { + return vs[0].([]*CloudDevelopmentEnvironments)[vs[1].(int)] + }).(CloudDevelopmentEnvironmentsOutput) +} + +type CloudDevelopmentEnvironmentsMapOutput struct{ *pulumi.OutputState } + +func (CloudDevelopmentEnvironmentsMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CloudDevelopmentEnvironments)(nil)).Elem() +} + +func (o CloudDevelopmentEnvironmentsMapOutput) ToCloudDevelopmentEnvironmentsMapOutput() CloudDevelopmentEnvironmentsMapOutput { + return o +} + +func (o CloudDevelopmentEnvironmentsMapOutput) ToCloudDevelopmentEnvironmentsMapOutputWithContext(ctx context.Context) CloudDevelopmentEnvironmentsMapOutput { + return o +} + +func (o CloudDevelopmentEnvironmentsMapOutput) MapIndex(k pulumi.StringInput) CloudDevelopmentEnvironmentsOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CloudDevelopmentEnvironments { + return vs[0].(map[string]*CloudDevelopmentEnvironments)[vs[1].(string)] + }).(CloudDevelopmentEnvironmentsOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CloudDevelopmentEnvironmentsInput)(nil)).Elem(), &CloudDevelopmentEnvironments{}) + pulumi.RegisterInputType(reflect.TypeOf((*CloudDevelopmentEnvironmentsArrayInput)(nil)).Elem(), CloudDevelopmentEnvironmentsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CloudDevelopmentEnvironmentsMapInput)(nil)).Elem(), CloudDevelopmentEnvironmentsMap{}) + pulumi.RegisterOutputType(CloudDevelopmentEnvironmentsOutput{}) + pulumi.RegisterOutputType(CloudDevelopmentEnvironmentsArrayOutput{}) + pulumi.RegisterOutputType(CloudDevelopmentEnvironmentsMapOutput{}) +} diff --git a/sdk/go/dynatrace/directShares.go b/sdk/go/dynatrace/directShares.go index d8aeb439..cf9c6fba 100644 --- a/sdk/go/dynatrace/directShares.go +++ b/sdk/go/dynatrace/directShares.go @@ -29,6 +29,8 @@ import ( // // import ( // +// "encoding/json" +// // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // "github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace" // @@ -36,9 +38,154 @@ import ( // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := dynatrace.NewDirectShares(ctx, "this", &dynatrace.DirectSharesArgs{ +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "version": 13, +// "variables": []interface{}{}, +// "tiles": map[string]interface{}{ +// "0": map[string]interface{}{ +// "type": "markdown", +// "title": "", +// "content": "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", +// }, +// "1": map[string]interface{}{ +// "type": "data", +// "title": "", +// "query": "timeseries avg(dt.host.cpu.user)", +// "queryConfig": map[string]interface{}{ +// "additionalFilters": map[string]interface{}{}, +// "version": "4.3.1", +// "datatype": "metrics", +// "metricKey": "dt.host.cpu.user", +// "aggregation": "avg", +// "by": []interface{}{}, +// }, +// "subType": "dql-builder-metrics", +// "visualization": "lineChart", +// "visualizationSettings": map[string]interface{}{ +// "thresholds": []interface{}{}, +// "chartSettings": map[string]interface{}{ +// "gapPolicy": "connect", +// "circleChartSettings": map[string]interface{}{ +// "groupingThresholdType": "relative", +// "groupingThresholdValue": 0, +// "valueType": "relative", +// }, +// "categoryOverrides": map[string]interface{}{}, +// "fieldMapping": map[string]interface{}{ +// "timestamp": "timeframe", +// "leftAxisValues": []string{ +// "avg(dt.host.cpu.user)", +// }, +// "leftAxisDimensions": []interface{}{}, +// "fields": []interface{}{}, +// "values": []interface{}{}, +// }, +// }, +// "singleValue": map[string]interface{}{ +// "showLabel": true, +// "label": "", +// "prefixIcon": "", +// "autoscale": true, +// "alignment": "center", +// "colorThresholdTarget": "value", +// }, +// "table": map[string]interface{}{ +// "rowDensity": "condensed", +// "enableSparklines": false, +// "hiddenColumns": []interface{}{}, +// "lineWrapIds": []interface{}{}, +// "columnWidths": map[string]interface{}{}, +// }, +// }, +// }, +// "2": map[string]interface{}{ +// "type": "data", +// "title": "", +// "query": "timeseries avg(dt.host.memory.used)", +// "queryConfig": map[string]interface{}{ +// "additionalFilters": map[string]interface{}{}, +// "version": "4.3.1", +// "datatype": "metrics", +// "metricKey": "dt.host.memory.used", +// "aggregation": "avg", +// "by": []interface{}{}, +// }, +// "subType": "dql-builder-metrics", +// "visualization": "lineChart", +// "visualizationSettings": map[string]interface{}{ +// "thresholds": []interface{}{}, +// "chartSettings": map[string]interface{}{ +// "gapPolicy": "connect", +// "circleChartSettings": map[string]interface{}{ +// "groupingThresholdType": "relative", +// "groupingThresholdValue": 0, +// "valueType": "relative", +// }, +// "categoryOverrides": map[string]interface{}{}, +// "fieldMapping": map[string]interface{}{ +// "timestamp": "timeframe", +// "leftAxisValues": []string{ +// "avg(dt.host.memory.used)", +// }, +// "leftAxisDimensions": []interface{}{}, +// "fields": []interface{}{}, +// "values": []interface{}{}, +// }, +// "categoricalBarChartSettings": map[string]interface{}{}, +// }, +// "singleValue": map[string]interface{}{ +// "showLabel": true, +// "label": "", +// "prefixIcon": "", +// "autoscale": true, +// "alignment": "center", +// "colorThresholdTarget": "value", +// }, +// "table": map[string]interface{}{ +// "rowDensity": "condensed", +// "enableSparklines": false, +// "hiddenColumns": []interface{}{}, +// "lineWrapIds": []interface{}{}, +// "columnWidths": map[string]interface{}{}, +// }, +// }, +// }, +// }, +// "layouts": map[string]interface{}{ +// "0": map[string]interface{}{ +// "x": 0, +// "y": 0, +// "w": 24, +// "h": 14, +// }, +// "1": map[string]interface{}{ +// "x": 0, +// "y": 14, +// "w": 9, +// "h": 6, +// }, +// "2": map[string]interface{}{ +// "x": 15, +// "y": 14, +// "w": 9, +// "h": 6, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// thisDocument, err := dynatrace.NewDocument(ctx, "thisDocument", &dynatrace.DocumentArgs{ +// Type: pulumi.String("dashboard"), +// Content: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// _, err = dynatrace.NewDirectShares(ctx, "thisDirectShares", &dynatrace.DirectSharesArgs{ +// DocumentId: thisDocument.ID(), // Access: pulumi.String("read-write"), -// DocumentId: pulumi.String("441564f0-23c9-40ef-b344-18c02c23d712"), // Recipients: &dynatrace.DirectSharesRecipientsArgs{ // Recipients: dynatrace.DirectSharesRecipientsRecipientArray{ // &dynatrace.DirectSharesRecipientsRecipientArgs{ diff --git a/sdk/go/dynatrace/document.go b/sdk/go/dynatrace/document.go index 3f1f8753..f00aaad9 100644 --- a/sdk/go/dynatrace/document.go +++ b/sdk/go/dynatrace/document.go @@ -21,6 +21,173 @@ import ( // ## Dynatrace Documentation // // - Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service +// +// ## Resource Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "version": 13, +// "variables": []interface{}{}, +// "tiles": map[string]interface{}{ +// "0": map[string]interface{}{ +// "type": "markdown", +// "title": "", +// "content": "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", +// }, +// "1": map[string]interface{}{ +// "type": "data", +// "title": "", +// "query": "timeseries avg(dt.host.cpu.user)", +// "queryConfig": map[string]interface{}{ +// "additionalFilters": map[string]interface{}{}, +// "version": "4.3.1", +// "datatype": "metrics", +// "metricKey": "dt.host.cpu.user", +// "aggregation": "avg", +// "by": []interface{}{}, +// }, +// "subType": "dql-builder-metrics", +// "visualization": "lineChart", +// "visualizationSettings": map[string]interface{}{ +// "thresholds": []interface{}{}, +// "chartSettings": map[string]interface{}{ +// "gapPolicy": "connect", +// "circleChartSettings": map[string]interface{}{ +// "groupingThresholdType": "relative", +// "groupingThresholdValue": 0, +// "valueType": "relative", +// }, +// "categoryOverrides": map[string]interface{}{}, +// "fieldMapping": map[string]interface{}{ +// "timestamp": "timeframe", +// "leftAxisValues": []string{ +// "avg(dt.host.cpu.user)", +// }, +// "leftAxisDimensions": []interface{}{}, +// "fields": []interface{}{}, +// "values": []interface{}{}, +// }, +// }, +// "singleValue": map[string]interface{}{ +// "showLabel": true, +// "label": "", +// "prefixIcon": "", +// "autoscale": true, +// "alignment": "center", +// "colorThresholdTarget": "value", +// }, +// "table": map[string]interface{}{ +// "rowDensity": "condensed", +// "enableSparklines": false, +// "hiddenColumns": []interface{}{}, +// "lineWrapIds": []interface{}{}, +// "columnWidths": map[string]interface{}{}, +// }, +// }, +// }, +// "2": map[string]interface{}{ +// "type": "data", +// "title": "", +// "query": "timeseries avg(dt.host.memory.used)", +// "queryConfig": map[string]interface{}{ +// "additionalFilters": map[string]interface{}{}, +// "version": "4.3.1", +// "datatype": "metrics", +// "metricKey": "dt.host.memory.used", +// "aggregation": "avg", +// "by": []interface{}{}, +// }, +// "subType": "dql-builder-metrics", +// "visualization": "lineChart", +// "visualizationSettings": map[string]interface{}{ +// "thresholds": []interface{}{}, +// "chartSettings": map[string]interface{}{ +// "gapPolicy": "connect", +// "circleChartSettings": map[string]interface{}{ +// "groupingThresholdType": "relative", +// "groupingThresholdValue": 0, +// "valueType": "relative", +// }, +// "categoryOverrides": map[string]interface{}{}, +// "fieldMapping": map[string]interface{}{ +// "timestamp": "timeframe", +// "leftAxisValues": []string{ +// "avg(dt.host.memory.used)", +// }, +// "leftAxisDimensions": []interface{}{}, +// "fields": []interface{}{}, +// "values": []interface{}{}, +// }, +// "categoricalBarChartSettings": map[string]interface{}{}, +// }, +// "singleValue": map[string]interface{}{ +// "showLabel": true, +// "label": "", +// "prefixIcon": "", +// "autoscale": true, +// "alignment": "center", +// "colorThresholdTarget": "value", +// }, +// "table": map[string]interface{}{ +// "rowDensity": "condensed", +// "enableSparklines": false, +// "hiddenColumns": []interface{}{}, +// "lineWrapIds": []interface{}{}, +// "columnWidths": map[string]interface{}{}, +// }, +// }, +// }, +// }, +// "layouts": map[string]interface{}{ +// "0": map[string]interface{}{ +// "x": 0, +// "y": 0, +// "w": 24, +// "h": 14, +// }, +// "1": map[string]interface{}{ +// "x": 0, +// "y": 14, +// "w": 9, +// "h": 6, +// }, +// "2": map[string]interface{}{ +// "x": 15, +// "y": 14, +// "w": 9, +// "h": 6, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = dynatrace.NewDocument(ctx, "this", &dynatrace.DocumentArgs{ +// Type: pulumi.String("dashboard"), +// Content: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type Document struct { pulumi.CustomResourceState @@ -34,7 +201,7 @@ type Document struct { Owner pulumi.StringOutput `pulumi:"owner"` // Specifies whether the document is private or readable by everybody Private pulumi.BoolPtrOutput `pulumi:"private"` - // Type of the document. Possible Values are `dashboard` and `notebook` + // Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` Type pulumi.StringOutput `pulumi:"type"` // The version of the document Version pulumi.IntOutput `pulumi:"version"` @@ -86,7 +253,7 @@ type documentState struct { Owner *string `pulumi:"owner"` // Specifies whether the document is private or readable by everybody Private *bool `pulumi:"private"` - // Type of the document. Possible Values are `dashboard` and `notebook` + // Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` Type *string `pulumi:"type"` // The version of the document Version *int `pulumi:"version"` @@ -103,7 +270,7 @@ type DocumentState struct { Owner pulumi.StringPtrInput // Specifies whether the document is private or readable by everybody Private pulumi.BoolPtrInput - // Type of the document. Possible Values are `dashboard` and `notebook` + // Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` Type pulumi.StringPtrInput // The version of the document Version pulumi.IntPtrInput @@ -124,7 +291,7 @@ type documentArgs struct { Owner *string `pulumi:"owner"` // Specifies whether the document is private or readable by everybody Private *bool `pulumi:"private"` - // Type of the document. Possible Values are `dashboard` and `notebook` + // Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` Type string `pulumi:"type"` } @@ -140,7 +307,7 @@ type DocumentArgs struct { Owner pulumi.StringPtrInput // Specifies whether the document is private or readable by everybody Private pulumi.BoolPtrInput - // Type of the document. Possible Values are `dashboard` and `notebook` + // Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` Type pulumi.StringInput } @@ -256,7 +423,7 @@ func (o DocumentOutput) Private() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Document) pulumi.BoolPtrOutput { return v.Private }).(pulumi.BoolPtrOutput) } -// Type of the document. Possible Values are `dashboard` and `notebook` +// Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` func (o DocumentOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *Document) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } diff --git a/sdk/go/dynatrace/getIamPolicies.go b/sdk/go/dynatrace/getIamPolicies.go index 9e4410bf..cbd79e2a 100644 --- a/sdk/go/dynatrace/getIamPolicies.go +++ b/sdk/go/dynatrace/getIamPolicies.go @@ -132,6 +132,8 @@ type GetIamPoliciesArgs struct { Environments []string `pulumi:"environments"` // If `true` the results will contain global policies Global *bool `pulumi:"global"` + // The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + Groups []string `pulumi:"groups"` } // A collection of values returned by getIamPolicies. @@ -142,6 +144,8 @@ type GetIamPoliciesResult struct { Environments []string `pulumi:"environments"` // If `true` the results will contain global policies Global *bool `pulumi:"global"` + // The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + Groups []string `pulumi:"groups"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` Policies []GetIamPoliciesPolicy `pulumi:"policies"` @@ -174,6 +178,8 @@ type GetIamPoliciesOutputArgs struct { Environments pulumi.StringArrayInput `pulumi:"environments"` // If `true` the results will contain global policies Global pulumi.BoolPtrInput `pulumi:"global"` + // The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + Groups pulumi.StringArrayInput `pulumi:"groups"` } func (GetIamPoliciesOutputArgs) ElementType() reflect.Type { @@ -210,6 +216,11 @@ func (o GetIamPoliciesResultOutput) Global() pulumi.BoolPtrOutput { return o.ApplyT(func(v GetIamPoliciesResult) *bool { return v.Global }).(pulumi.BoolPtrOutput) } +// The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies +func (o GetIamPoliciesResultOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetIamPoliciesResult) []string { return v.Groups }).(pulumi.StringArrayOutput) +} + // The provider-assigned unique ID for this managed resource. func (o GetIamPoliciesResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v GetIamPoliciesResult) string { return v.Id }).(pulumi.StringOutput) diff --git a/sdk/go/dynatrace/init.go b/sdk/go/dynatrace/init.go index 982c4136..7ce71275 100644 --- a/sdk/go/dynatrace/init.go +++ b/sdk/go/dynatrace/init.go @@ -129,6 +129,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &CalculatedSyntheticMetric{} case "dynatrace:index/calculatedWebMetric:CalculatedWebMetric": r = &CalculatedWebMetric{} + case "dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments": + r = &CloudDevelopmentEnvironments{} case "dynatrace:index/cloudFoundry:CloudFoundry": r = &CloudFoundry{} case "dynatrace:index/cloudappWorkloaddetection:CloudappWorkloaddetection": @@ -341,8 +343,12 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &KubernetesApp{} case "dynatrace:index/kubernetesEnrichment:KubernetesEnrichment": r = &KubernetesEnrichment{} + case "dynatrace:index/kubernetesSpm:KubernetesSpm": + r = &KubernetesSpm{} case "dynatrace:index/limitOutboundConnections:LimitOutboundConnections": r = &LimitOutboundConnections{} + case "dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags": + r = &LogAgentFeatureFlags{} case "dynatrace:index/logBuckets:LogBuckets": r = &LogBuckets{} case "dynatrace:index/logCustomAttribute:LogCustomAttribute": @@ -495,6 +501,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Policy{} case "dynatrace:index/policyBindings:PolicyBindings": r = &PolicyBindings{} + case "dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules": + r = &ProblemRecordPropagationRules{} case "dynatrace:index/processAvailability:ProcessAvailability": r = &ProcessAvailability{} case "dynatrace:index/processGroupDetection:ProcessGroupDetection": @@ -972,6 +980,11 @@ func init() { "index/calculatedWebMetric", &module{version}, ) + pulumi.RegisterResourceModule( + "dynatrace", + "index/cloudDevelopmentEnvironments", + &module{version}, + ) pulumi.RegisterResourceModule( "dynatrace", "index/cloudFoundry", @@ -1502,11 +1515,21 @@ func init() { "index/kubernetesEnrichment", &module{version}, ) + pulumi.RegisterResourceModule( + "dynatrace", + "index/kubernetesSpm", + &module{version}, + ) pulumi.RegisterResourceModule( "dynatrace", "index/limitOutboundConnections", &module{version}, ) + pulumi.RegisterResourceModule( + "dynatrace", + "index/logAgentFeatureFlags", + &module{version}, + ) pulumi.RegisterResourceModule( "dynatrace", "index/logBuckets", @@ -1887,6 +1910,11 @@ func init() { "index/policyBindings", &module{version}, ) + pulumi.RegisterResourceModule( + "dynatrace", + "index/problemRecordPropagationRules", + &module{version}, + ) pulumi.RegisterResourceModule( "dynatrace", "index/processAvailability", diff --git a/sdk/go/dynatrace/k8sMonitoring.go b/sdk/go/dynatrace/k8sMonitoring.go index 46f7e7eb..9cb7efbf 100644 --- a/sdk/go/dynatrace/k8sMonitoring.go +++ b/sdk/go/dynatrace/k8sMonitoring.go @@ -32,7 +32,9 @@ type K8sMonitoring struct { // For annotation guidance, see the [documentation](https://dt-url.net/g42i0ppw). OpenMetricsPipelineEnabled pulumi.BoolOutput `pulumi:"openMetricsPipelineEnabled"` // To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. - PvcMonitoringEnabled pulumi.BoolOutput `pulumi:"pvcMonitoringEnabled"` + // + // Deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. + PvcMonitoringEnabled pulumi.BoolPtrOutput `pulumi:"pvcMonitoringEnabled"` // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. Scope pulumi.StringPtrOutput `pulumi:"scope"` } @@ -56,9 +58,6 @@ func NewK8sMonitoring(ctx *pulumi.Context, if args.OpenMetricsPipelineEnabled == nil { return nil, errors.New("invalid value for required argument 'OpenMetricsPipelineEnabled'") } - if args.PvcMonitoringEnabled == nil { - return nil, errors.New("invalid value for required argument 'PvcMonitoringEnabled'") - } opts = internal.PkgResourceDefaultOpts(opts) var resource K8sMonitoring err := ctx.RegisterResource("dynatrace:index/k8sMonitoring:K8sMonitoring", name, args, &resource, opts...) @@ -99,6 +98,8 @@ type k8sMonitoringState struct { // For annotation guidance, see the [documentation](https://dt-url.net/g42i0ppw). OpenMetricsPipelineEnabled *bool `pulumi:"openMetricsPipelineEnabled"` // To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. + // + // Deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. PvcMonitoringEnabled *bool `pulumi:"pvcMonitoringEnabled"` // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. Scope *string `pulumi:"scope"` @@ -122,6 +123,8 @@ type K8sMonitoringState struct { // For annotation guidance, see the [documentation](https://dt-url.net/g42i0ppw). OpenMetricsPipelineEnabled pulumi.BoolPtrInput // To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. + // + // Deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. PvcMonitoringEnabled pulumi.BoolPtrInput // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. Scope pulumi.StringPtrInput @@ -149,7 +152,9 @@ type k8sMonitoringArgs struct { // For annotation guidance, see the [documentation](https://dt-url.net/g42i0ppw). OpenMetricsPipelineEnabled bool `pulumi:"openMetricsPipelineEnabled"` // To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. - PvcMonitoringEnabled bool `pulumi:"pvcMonitoringEnabled"` + // + // Deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. + PvcMonitoringEnabled *bool `pulumi:"pvcMonitoringEnabled"` // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. Scope *string `pulumi:"scope"` } @@ -173,7 +178,9 @@ type K8sMonitoringArgs struct { // For annotation guidance, see the [documentation](https://dt-url.net/g42i0ppw). OpenMetricsPipelineEnabled pulumi.BoolInput // To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. - PvcMonitoringEnabled pulumi.BoolInput + // + // Deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. + PvcMonitoringEnabled pulumi.BoolPtrInput // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. Scope pulumi.StringPtrInput } @@ -303,8 +310,10 @@ func (o K8sMonitoringOutput) OpenMetricsPipelineEnabled() pulumi.BoolOutput { } // To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. -func (o K8sMonitoringOutput) PvcMonitoringEnabled() pulumi.BoolOutput { - return o.ApplyT(func(v *K8sMonitoring) pulumi.BoolOutput { return v.PvcMonitoringEnabled }).(pulumi.BoolOutput) +// +// Deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. +func (o K8sMonitoringOutput) PvcMonitoringEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *K8sMonitoring) pulumi.BoolPtrOutput { return v.PvcMonitoringEnabled }).(pulumi.BoolPtrOutput) } // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. diff --git a/sdk/go/dynatrace/kubernetesSpm.go b/sdk/go/dynatrace/kubernetesSpm.go new file mode 100644 index 00000000..d6fe71d0 --- /dev/null +++ b/sdk/go/dynatrace/kubernetesSpm.go @@ -0,0 +1,233 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dynatrace + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace/internal" +) + +type KubernetesSpm struct { + pulumi.CustomResourceState + + // Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + ConfigurationDatasetPipelineEnabled pulumi.BoolOutput `pulumi:"configurationDatasetPipelineEnabled"` + // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + Scope pulumi.StringPtrOutput `pulumi:"scope"` +} + +// NewKubernetesSpm registers a new resource with the given unique name, arguments, and options. +func NewKubernetesSpm(ctx *pulumi.Context, + name string, args *KubernetesSpmArgs, opts ...pulumi.ResourceOption) (*KubernetesSpm, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ConfigurationDatasetPipelineEnabled == nil { + return nil, errors.New("invalid value for required argument 'ConfigurationDatasetPipelineEnabled'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource KubernetesSpm + err := ctx.RegisterResource("dynatrace:index/kubernetesSpm:KubernetesSpm", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetKubernetesSpm gets an existing KubernetesSpm resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetKubernetesSpm(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *KubernetesSpmState, opts ...pulumi.ResourceOption) (*KubernetesSpm, error) { + var resource KubernetesSpm + err := ctx.ReadResource("dynatrace:index/kubernetesSpm:KubernetesSpm", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering KubernetesSpm resources. +type kubernetesSpmState struct { + // Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + ConfigurationDatasetPipelineEnabled *bool `pulumi:"configurationDatasetPipelineEnabled"` + // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + Scope *string `pulumi:"scope"` +} + +type KubernetesSpmState struct { + // Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + ConfigurationDatasetPipelineEnabled pulumi.BoolPtrInput + // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + Scope pulumi.StringPtrInput +} + +func (KubernetesSpmState) ElementType() reflect.Type { + return reflect.TypeOf((*kubernetesSpmState)(nil)).Elem() +} + +type kubernetesSpmArgs struct { + // Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + ConfigurationDatasetPipelineEnabled bool `pulumi:"configurationDatasetPipelineEnabled"` + // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + Scope *string `pulumi:"scope"` +} + +// The set of arguments for constructing a KubernetesSpm resource. +type KubernetesSpmArgs struct { + // Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + ConfigurationDatasetPipelineEnabled pulumi.BoolInput + // The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + Scope pulumi.StringPtrInput +} + +func (KubernetesSpmArgs) ElementType() reflect.Type { + return reflect.TypeOf((*kubernetesSpmArgs)(nil)).Elem() +} + +type KubernetesSpmInput interface { + pulumi.Input + + ToKubernetesSpmOutput() KubernetesSpmOutput + ToKubernetesSpmOutputWithContext(ctx context.Context) KubernetesSpmOutput +} + +func (*KubernetesSpm) ElementType() reflect.Type { + return reflect.TypeOf((**KubernetesSpm)(nil)).Elem() +} + +func (i *KubernetesSpm) ToKubernetesSpmOutput() KubernetesSpmOutput { + return i.ToKubernetesSpmOutputWithContext(context.Background()) +} + +func (i *KubernetesSpm) ToKubernetesSpmOutputWithContext(ctx context.Context) KubernetesSpmOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubernetesSpmOutput) +} + +// KubernetesSpmArrayInput is an input type that accepts KubernetesSpmArray and KubernetesSpmArrayOutput values. +// You can construct a concrete instance of `KubernetesSpmArrayInput` via: +// +// KubernetesSpmArray{ KubernetesSpmArgs{...} } +type KubernetesSpmArrayInput interface { + pulumi.Input + + ToKubernetesSpmArrayOutput() KubernetesSpmArrayOutput + ToKubernetesSpmArrayOutputWithContext(context.Context) KubernetesSpmArrayOutput +} + +type KubernetesSpmArray []KubernetesSpmInput + +func (KubernetesSpmArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KubernetesSpm)(nil)).Elem() +} + +func (i KubernetesSpmArray) ToKubernetesSpmArrayOutput() KubernetesSpmArrayOutput { + return i.ToKubernetesSpmArrayOutputWithContext(context.Background()) +} + +func (i KubernetesSpmArray) ToKubernetesSpmArrayOutputWithContext(ctx context.Context) KubernetesSpmArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubernetesSpmArrayOutput) +} + +// KubernetesSpmMapInput is an input type that accepts KubernetesSpmMap and KubernetesSpmMapOutput values. +// You can construct a concrete instance of `KubernetesSpmMapInput` via: +// +// KubernetesSpmMap{ "key": KubernetesSpmArgs{...} } +type KubernetesSpmMapInput interface { + pulumi.Input + + ToKubernetesSpmMapOutput() KubernetesSpmMapOutput + ToKubernetesSpmMapOutputWithContext(context.Context) KubernetesSpmMapOutput +} + +type KubernetesSpmMap map[string]KubernetesSpmInput + +func (KubernetesSpmMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KubernetesSpm)(nil)).Elem() +} + +func (i KubernetesSpmMap) ToKubernetesSpmMapOutput() KubernetesSpmMapOutput { + return i.ToKubernetesSpmMapOutputWithContext(context.Background()) +} + +func (i KubernetesSpmMap) ToKubernetesSpmMapOutputWithContext(ctx context.Context) KubernetesSpmMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubernetesSpmMapOutput) +} + +type KubernetesSpmOutput struct{ *pulumi.OutputState } + +func (KubernetesSpmOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KubernetesSpm)(nil)).Elem() +} + +func (o KubernetesSpmOutput) ToKubernetesSpmOutput() KubernetesSpmOutput { + return o +} + +func (o KubernetesSpmOutput) ToKubernetesSpmOutputWithContext(ctx context.Context) KubernetesSpmOutput { + return o +} + +// Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. +func (o KubernetesSpmOutput) ConfigurationDatasetPipelineEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v *KubernetesSpm) pulumi.BoolOutput { return v.ConfigurationDatasetPipelineEnabled }).(pulumi.BoolOutput) +} + +// The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. +func (o KubernetesSpmOutput) Scope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubernetesSpm) pulumi.StringPtrOutput { return v.Scope }).(pulumi.StringPtrOutput) +} + +type KubernetesSpmArrayOutput struct{ *pulumi.OutputState } + +func (KubernetesSpmArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KubernetesSpm)(nil)).Elem() +} + +func (o KubernetesSpmArrayOutput) ToKubernetesSpmArrayOutput() KubernetesSpmArrayOutput { + return o +} + +func (o KubernetesSpmArrayOutput) ToKubernetesSpmArrayOutputWithContext(ctx context.Context) KubernetesSpmArrayOutput { + return o +} + +func (o KubernetesSpmArrayOutput) Index(i pulumi.IntInput) KubernetesSpmOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KubernetesSpm { + return vs[0].([]*KubernetesSpm)[vs[1].(int)] + }).(KubernetesSpmOutput) +} + +type KubernetesSpmMapOutput struct{ *pulumi.OutputState } + +func (KubernetesSpmMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KubernetesSpm)(nil)).Elem() +} + +func (o KubernetesSpmMapOutput) ToKubernetesSpmMapOutput() KubernetesSpmMapOutput { + return o +} + +func (o KubernetesSpmMapOutput) ToKubernetesSpmMapOutputWithContext(ctx context.Context) KubernetesSpmMapOutput { + return o +} + +func (o KubernetesSpmMapOutput) MapIndex(k pulumi.StringInput) KubernetesSpmOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KubernetesSpm { + return vs[0].(map[string]*KubernetesSpm)[vs[1].(string)] + }).(KubernetesSpmOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KubernetesSpmInput)(nil)).Elem(), &KubernetesSpm{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubernetesSpmArrayInput)(nil)).Elem(), KubernetesSpmArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubernetesSpmMapInput)(nil)).Elem(), KubernetesSpmMap{}) + pulumi.RegisterOutputType(KubernetesSpmOutput{}) + pulumi.RegisterOutputType(KubernetesSpmArrayOutput{}) + pulumi.RegisterOutputType(KubernetesSpmMapOutput{}) +} diff --git a/sdk/go/dynatrace/logAgentFeatureFlags.go b/sdk/go/dynatrace/logAgentFeatureFlags.go new file mode 100644 index 00000000..e16c23fc --- /dev/null +++ b/sdk/go/dynatrace/logAgentFeatureFlags.go @@ -0,0 +1,233 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dynatrace + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace/internal" +) + +type LogAgentFeatureFlags struct { + pulumi.CustomResourceState + + // Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + NewContainerLogDetector pulumi.BoolOutput `pulumi:"newContainerLogDetector"` + // The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + Scope pulumi.StringPtrOutput `pulumi:"scope"` +} + +// NewLogAgentFeatureFlags registers a new resource with the given unique name, arguments, and options. +func NewLogAgentFeatureFlags(ctx *pulumi.Context, + name string, args *LogAgentFeatureFlagsArgs, opts ...pulumi.ResourceOption) (*LogAgentFeatureFlags, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.NewContainerLogDetector == nil { + return nil, errors.New("invalid value for required argument 'NewContainerLogDetector'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogAgentFeatureFlags + err := ctx.RegisterResource("dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogAgentFeatureFlags gets an existing LogAgentFeatureFlags resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogAgentFeatureFlags(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogAgentFeatureFlagsState, opts ...pulumi.ResourceOption) (*LogAgentFeatureFlags, error) { + var resource LogAgentFeatureFlags + err := ctx.ReadResource("dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogAgentFeatureFlags resources. +type logAgentFeatureFlagsState struct { + // Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + NewContainerLogDetector *bool `pulumi:"newContainerLogDetector"` + // The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + Scope *string `pulumi:"scope"` +} + +type LogAgentFeatureFlagsState struct { + // Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + NewContainerLogDetector pulumi.BoolPtrInput + // The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + Scope pulumi.StringPtrInput +} + +func (LogAgentFeatureFlagsState) ElementType() reflect.Type { + return reflect.TypeOf((*logAgentFeatureFlagsState)(nil)).Elem() +} + +type logAgentFeatureFlagsArgs struct { + // Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + NewContainerLogDetector bool `pulumi:"newContainerLogDetector"` + // The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + Scope *string `pulumi:"scope"` +} + +// The set of arguments for constructing a LogAgentFeatureFlags resource. +type LogAgentFeatureFlagsArgs struct { + // Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + NewContainerLogDetector pulumi.BoolInput + // The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + Scope pulumi.StringPtrInput +} + +func (LogAgentFeatureFlagsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logAgentFeatureFlagsArgs)(nil)).Elem() +} + +type LogAgentFeatureFlagsInput interface { + pulumi.Input + + ToLogAgentFeatureFlagsOutput() LogAgentFeatureFlagsOutput + ToLogAgentFeatureFlagsOutputWithContext(ctx context.Context) LogAgentFeatureFlagsOutput +} + +func (*LogAgentFeatureFlags) ElementType() reflect.Type { + return reflect.TypeOf((**LogAgentFeatureFlags)(nil)).Elem() +} + +func (i *LogAgentFeatureFlags) ToLogAgentFeatureFlagsOutput() LogAgentFeatureFlagsOutput { + return i.ToLogAgentFeatureFlagsOutputWithContext(context.Background()) +} + +func (i *LogAgentFeatureFlags) ToLogAgentFeatureFlagsOutputWithContext(ctx context.Context) LogAgentFeatureFlagsOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogAgentFeatureFlagsOutput) +} + +// LogAgentFeatureFlagsArrayInput is an input type that accepts LogAgentFeatureFlagsArray and LogAgentFeatureFlagsArrayOutput values. +// You can construct a concrete instance of `LogAgentFeatureFlagsArrayInput` via: +// +// LogAgentFeatureFlagsArray{ LogAgentFeatureFlagsArgs{...} } +type LogAgentFeatureFlagsArrayInput interface { + pulumi.Input + + ToLogAgentFeatureFlagsArrayOutput() LogAgentFeatureFlagsArrayOutput + ToLogAgentFeatureFlagsArrayOutputWithContext(context.Context) LogAgentFeatureFlagsArrayOutput +} + +type LogAgentFeatureFlagsArray []LogAgentFeatureFlagsInput + +func (LogAgentFeatureFlagsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogAgentFeatureFlags)(nil)).Elem() +} + +func (i LogAgentFeatureFlagsArray) ToLogAgentFeatureFlagsArrayOutput() LogAgentFeatureFlagsArrayOutput { + return i.ToLogAgentFeatureFlagsArrayOutputWithContext(context.Background()) +} + +func (i LogAgentFeatureFlagsArray) ToLogAgentFeatureFlagsArrayOutputWithContext(ctx context.Context) LogAgentFeatureFlagsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogAgentFeatureFlagsArrayOutput) +} + +// LogAgentFeatureFlagsMapInput is an input type that accepts LogAgentFeatureFlagsMap and LogAgentFeatureFlagsMapOutput values. +// You can construct a concrete instance of `LogAgentFeatureFlagsMapInput` via: +// +// LogAgentFeatureFlagsMap{ "key": LogAgentFeatureFlagsArgs{...} } +type LogAgentFeatureFlagsMapInput interface { + pulumi.Input + + ToLogAgentFeatureFlagsMapOutput() LogAgentFeatureFlagsMapOutput + ToLogAgentFeatureFlagsMapOutputWithContext(context.Context) LogAgentFeatureFlagsMapOutput +} + +type LogAgentFeatureFlagsMap map[string]LogAgentFeatureFlagsInput + +func (LogAgentFeatureFlagsMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogAgentFeatureFlags)(nil)).Elem() +} + +func (i LogAgentFeatureFlagsMap) ToLogAgentFeatureFlagsMapOutput() LogAgentFeatureFlagsMapOutput { + return i.ToLogAgentFeatureFlagsMapOutputWithContext(context.Background()) +} + +func (i LogAgentFeatureFlagsMap) ToLogAgentFeatureFlagsMapOutputWithContext(ctx context.Context) LogAgentFeatureFlagsMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogAgentFeatureFlagsMapOutput) +} + +type LogAgentFeatureFlagsOutput struct{ *pulumi.OutputState } + +func (LogAgentFeatureFlagsOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogAgentFeatureFlags)(nil)).Elem() +} + +func (o LogAgentFeatureFlagsOutput) ToLogAgentFeatureFlagsOutput() LogAgentFeatureFlagsOutput { + return o +} + +func (o LogAgentFeatureFlagsOutput) ToLogAgentFeatureFlagsOutputWithContext(ctx context.Context) LogAgentFeatureFlagsOutput { + return o +} + +// Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). +func (o LogAgentFeatureFlagsOutput) NewContainerLogDetector() pulumi.BoolOutput { + return o.ApplyT(func(v *LogAgentFeatureFlags) pulumi.BoolOutput { return v.NewContainerLogDetector }).(pulumi.BoolOutput) +} + +// The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. +func (o LogAgentFeatureFlagsOutput) Scope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogAgentFeatureFlags) pulumi.StringPtrOutput { return v.Scope }).(pulumi.StringPtrOutput) +} + +type LogAgentFeatureFlagsArrayOutput struct{ *pulumi.OutputState } + +func (LogAgentFeatureFlagsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogAgentFeatureFlags)(nil)).Elem() +} + +func (o LogAgentFeatureFlagsArrayOutput) ToLogAgentFeatureFlagsArrayOutput() LogAgentFeatureFlagsArrayOutput { + return o +} + +func (o LogAgentFeatureFlagsArrayOutput) ToLogAgentFeatureFlagsArrayOutputWithContext(ctx context.Context) LogAgentFeatureFlagsArrayOutput { + return o +} + +func (o LogAgentFeatureFlagsArrayOutput) Index(i pulumi.IntInput) LogAgentFeatureFlagsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogAgentFeatureFlags { + return vs[0].([]*LogAgentFeatureFlags)[vs[1].(int)] + }).(LogAgentFeatureFlagsOutput) +} + +type LogAgentFeatureFlagsMapOutput struct{ *pulumi.OutputState } + +func (LogAgentFeatureFlagsMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogAgentFeatureFlags)(nil)).Elem() +} + +func (o LogAgentFeatureFlagsMapOutput) ToLogAgentFeatureFlagsMapOutput() LogAgentFeatureFlagsMapOutput { + return o +} + +func (o LogAgentFeatureFlagsMapOutput) ToLogAgentFeatureFlagsMapOutputWithContext(ctx context.Context) LogAgentFeatureFlagsMapOutput { + return o +} + +func (o LogAgentFeatureFlagsMapOutput) MapIndex(k pulumi.StringInput) LogAgentFeatureFlagsOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogAgentFeatureFlags { + return vs[0].(map[string]*LogAgentFeatureFlags)[vs[1].(string)] + }).(LogAgentFeatureFlagsOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogAgentFeatureFlagsInput)(nil)).Elem(), &LogAgentFeatureFlags{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogAgentFeatureFlagsArrayInput)(nil)).Elem(), LogAgentFeatureFlagsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogAgentFeatureFlagsMapInput)(nil)).Elem(), LogAgentFeatureFlagsMap{}) + pulumi.RegisterOutputType(LogAgentFeatureFlagsOutput{}) + pulumi.RegisterOutputType(LogAgentFeatureFlagsArrayOutput{}) + pulumi.RegisterOutputType(LogAgentFeatureFlagsMapOutput{}) +} diff --git a/sdk/go/dynatrace/problemRecordPropagationRules.go b/sdk/go/dynatrace/problemRecordPropagationRules.go new file mode 100644 index 00000000..48ff7d11 --- /dev/null +++ b/sdk/go/dynatrace/problemRecordPropagationRules.go @@ -0,0 +1,254 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dynatrace + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace/internal" +) + +type ProblemRecordPropagationRules struct { + pulumi.CustomResourceState + + // This setting is enabled (`true`) or disabled (`false`) + Enabled pulumi.BoolOutput `pulumi:"enabled"` + // Attribute key from the event that will be propagated. + SourceAttributeKey pulumi.StringOutput `pulumi:"sourceAttributeKey"` + // Attribute key under which the propagated event data will be stored on the problem. + TargetAttributeKey pulumi.StringOutput `pulumi:"targetAttributeKey"` +} + +// NewProblemRecordPropagationRules registers a new resource with the given unique name, arguments, and options. +func NewProblemRecordPropagationRules(ctx *pulumi.Context, + name string, args *ProblemRecordPropagationRulesArgs, opts ...pulumi.ResourceOption) (*ProblemRecordPropagationRules, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Enabled == nil { + return nil, errors.New("invalid value for required argument 'Enabled'") + } + if args.SourceAttributeKey == nil { + return nil, errors.New("invalid value for required argument 'SourceAttributeKey'") + } + if args.TargetAttributeKey == nil { + return nil, errors.New("invalid value for required argument 'TargetAttributeKey'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ProblemRecordPropagationRules + err := ctx.RegisterResource("dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetProblemRecordPropagationRules gets an existing ProblemRecordPropagationRules resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetProblemRecordPropagationRules(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ProblemRecordPropagationRulesState, opts ...pulumi.ResourceOption) (*ProblemRecordPropagationRules, error) { + var resource ProblemRecordPropagationRules + err := ctx.ReadResource("dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ProblemRecordPropagationRules resources. +type problemRecordPropagationRulesState struct { + // This setting is enabled (`true`) or disabled (`false`) + Enabled *bool `pulumi:"enabled"` + // Attribute key from the event that will be propagated. + SourceAttributeKey *string `pulumi:"sourceAttributeKey"` + // Attribute key under which the propagated event data will be stored on the problem. + TargetAttributeKey *string `pulumi:"targetAttributeKey"` +} + +type ProblemRecordPropagationRulesState struct { + // This setting is enabled (`true`) or disabled (`false`) + Enabled pulumi.BoolPtrInput + // Attribute key from the event that will be propagated. + SourceAttributeKey pulumi.StringPtrInput + // Attribute key under which the propagated event data will be stored on the problem. + TargetAttributeKey pulumi.StringPtrInput +} + +func (ProblemRecordPropagationRulesState) ElementType() reflect.Type { + return reflect.TypeOf((*problemRecordPropagationRulesState)(nil)).Elem() +} + +type problemRecordPropagationRulesArgs struct { + // This setting is enabled (`true`) or disabled (`false`) + Enabled bool `pulumi:"enabled"` + // Attribute key from the event that will be propagated. + SourceAttributeKey string `pulumi:"sourceAttributeKey"` + // Attribute key under which the propagated event data will be stored on the problem. + TargetAttributeKey string `pulumi:"targetAttributeKey"` +} + +// The set of arguments for constructing a ProblemRecordPropagationRules resource. +type ProblemRecordPropagationRulesArgs struct { + // This setting is enabled (`true`) or disabled (`false`) + Enabled pulumi.BoolInput + // Attribute key from the event that will be propagated. + SourceAttributeKey pulumi.StringInput + // Attribute key under which the propagated event data will be stored on the problem. + TargetAttributeKey pulumi.StringInput +} + +func (ProblemRecordPropagationRulesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*problemRecordPropagationRulesArgs)(nil)).Elem() +} + +type ProblemRecordPropagationRulesInput interface { + pulumi.Input + + ToProblemRecordPropagationRulesOutput() ProblemRecordPropagationRulesOutput + ToProblemRecordPropagationRulesOutputWithContext(ctx context.Context) ProblemRecordPropagationRulesOutput +} + +func (*ProblemRecordPropagationRules) ElementType() reflect.Type { + return reflect.TypeOf((**ProblemRecordPropagationRules)(nil)).Elem() +} + +func (i *ProblemRecordPropagationRules) ToProblemRecordPropagationRulesOutput() ProblemRecordPropagationRulesOutput { + return i.ToProblemRecordPropagationRulesOutputWithContext(context.Background()) +} + +func (i *ProblemRecordPropagationRules) ToProblemRecordPropagationRulesOutputWithContext(ctx context.Context) ProblemRecordPropagationRulesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProblemRecordPropagationRulesOutput) +} + +// ProblemRecordPropagationRulesArrayInput is an input type that accepts ProblemRecordPropagationRulesArray and ProblemRecordPropagationRulesArrayOutput values. +// You can construct a concrete instance of `ProblemRecordPropagationRulesArrayInput` via: +// +// ProblemRecordPropagationRulesArray{ ProblemRecordPropagationRulesArgs{...} } +type ProblemRecordPropagationRulesArrayInput interface { + pulumi.Input + + ToProblemRecordPropagationRulesArrayOutput() ProblemRecordPropagationRulesArrayOutput + ToProblemRecordPropagationRulesArrayOutputWithContext(context.Context) ProblemRecordPropagationRulesArrayOutput +} + +type ProblemRecordPropagationRulesArray []ProblemRecordPropagationRulesInput + +func (ProblemRecordPropagationRulesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ProblemRecordPropagationRules)(nil)).Elem() +} + +func (i ProblemRecordPropagationRulesArray) ToProblemRecordPropagationRulesArrayOutput() ProblemRecordPropagationRulesArrayOutput { + return i.ToProblemRecordPropagationRulesArrayOutputWithContext(context.Background()) +} + +func (i ProblemRecordPropagationRulesArray) ToProblemRecordPropagationRulesArrayOutputWithContext(ctx context.Context) ProblemRecordPropagationRulesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProblemRecordPropagationRulesArrayOutput) +} + +// ProblemRecordPropagationRulesMapInput is an input type that accepts ProblemRecordPropagationRulesMap and ProblemRecordPropagationRulesMapOutput values. +// You can construct a concrete instance of `ProblemRecordPropagationRulesMapInput` via: +// +// ProblemRecordPropagationRulesMap{ "key": ProblemRecordPropagationRulesArgs{...} } +type ProblemRecordPropagationRulesMapInput interface { + pulumi.Input + + ToProblemRecordPropagationRulesMapOutput() ProblemRecordPropagationRulesMapOutput + ToProblemRecordPropagationRulesMapOutputWithContext(context.Context) ProblemRecordPropagationRulesMapOutput +} + +type ProblemRecordPropagationRulesMap map[string]ProblemRecordPropagationRulesInput + +func (ProblemRecordPropagationRulesMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ProblemRecordPropagationRules)(nil)).Elem() +} + +func (i ProblemRecordPropagationRulesMap) ToProblemRecordPropagationRulesMapOutput() ProblemRecordPropagationRulesMapOutput { + return i.ToProblemRecordPropagationRulesMapOutputWithContext(context.Background()) +} + +func (i ProblemRecordPropagationRulesMap) ToProblemRecordPropagationRulesMapOutputWithContext(ctx context.Context) ProblemRecordPropagationRulesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProblemRecordPropagationRulesMapOutput) +} + +type ProblemRecordPropagationRulesOutput struct{ *pulumi.OutputState } + +func (ProblemRecordPropagationRulesOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProblemRecordPropagationRules)(nil)).Elem() +} + +func (o ProblemRecordPropagationRulesOutput) ToProblemRecordPropagationRulesOutput() ProblemRecordPropagationRulesOutput { + return o +} + +func (o ProblemRecordPropagationRulesOutput) ToProblemRecordPropagationRulesOutputWithContext(ctx context.Context) ProblemRecordPropagationRulesOutput { + return o +} + +// This setting is enabled (`true`) or disabled (`false`) +func (o ProblemRecordPropagationRulesOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v *ProblemRecordPropagationRules) pulumi.BoolOutput { return v.Enabled }).(pulumi.BoolOutput) +} + +// Attribute key from the event that will be propagated. +func (o ProblemRecordPropagationRulesOutput) SourceAttributeKey() pulumi.StringOutput { + return o.ApplyT(func(v *ProblemRecordPropagationRules) pulumi.StringOutput { return v.SourceAttributeKey }).(pulumi.StringOutput) +} + +// Attribute key under which the propagated event data will be stored on the problem. +func (o ProblemRecordPropagationRulesOutput) TargetAttributeKey() pulumi.StringOutput { + return o.ApplyT(func(v *ProblemRecordPropagationRules) pulumi.StringOutput { return v.TargetAttributeKey }).(pulumi.StringOutput) +} + +type ProblemRecordPropagationRulesArrayOutput struct{ *pulumi.OutputState } + +func (ProblemRecordPropagationRulesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ProblemRecordPropagationRules)(nil)).Elem() +} + +func (o ProblemRecordPropagationRulesArrayOutput) ToProblemRecordPropagationRulesArrayOutput() ProblemRecordPropagationRulesArrayOutput { + return o +} + +func (o ProblemRecordPropagationRulesArrayOutput) ToProblemRecordPropagationRulesArrayOutputWithContext(ctx context.Context) ProblemRecordPropagationRulesArrayOutput { + return o +} + +func (o ProblemRecordPropagationRulesArrayOutput) Index(i pulumi.IntInput) ProblemRecordPropagationRulesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ProblemRecordPropagationRules { + return vs[0].([]*ProblemRecordPropagationRules)[vs[1].(int)] + }).(ProblemRecordPropagationRulesOutput) +} + +type ProblemRecordPropagationRulesMapOutput struct{ *pulumi.OutputState } + +func (ProblemRecordPropagationRulesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ProblemRecordPropagationRules)(nil)).Elem() +} + +func (o ProblemRecordPropagationRulesMapOutput) ToProblemRecordPropagationRulesMapOutput() ProblemRecordPropagationRulesMapOutput { + return o +} + +func (o ProblemRecordPropagationRulesMapOutput) ToProblemRecordPropagationRulesMapOutputWithContext(ctx context.Context) ProblemRecordPropagationRulesMapOutput { + return o +} + +func (o ProblemRecordPropagationRulesMapOutput) MapIndex(k pulumi.StringInput) ProblemRecordPropagationRulesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ProblemRecordPropagationRules { + return vs[0].(map[string]*ProblemRecordPropagationRules)[vs[1].(string)] + }).(ProblemRecordPropagationRulesOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ProblemRecordPropagationRulesInput)(nil)).Elem(), &ProblemRecordPropagationRules{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProblemRecordPropagationRulesArrayInput)(nil)).Elem(), ProblemRecordPropagationRulesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProblemRecordPropagationRulesMapInput)(nil)).Elem(), ProblemRecordPropagationRulesMap{}) + pulumi.RegisterOutputType(ProblemRecordPropagationRulesOutput{}) + pulumi.RegisterOutputType(ProblemRecordPropagationRulesArrayOutput{}) + pulumi.RegisterOutputType(ProblemRecordPropagationRulesMapOutput{}) +} diff --git a/sdk/go/dynatrace/pulumiTypes.go b/sdk/go/dynatrace/pulumiTypes.go index 5d60a8a3..daa7fe0c 100644 --- a/sdk/go/dynatrace/pulumiTypes.go +++ b/sdk/go/dynatrace/pulumiTypes.go @@ -11720,6 +11720,8 @@ type AutomationWorkflowTasksTask struct { Retry *AutomationWorkflowTasksTaskRetry `pulumi:"retry"` // Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800 Timeout *string `pulumi:"timeout"` + // Specifies a default task wait before in seconds. 0 is used when not set + WaitBefore *string `pulumi:"waitBefore"` // Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` WithItems *string `pulumi:"withItems"` } @@ -11756,6 +11758,8 @@ type AutomationWorkflowTasksTaskArgs struct { Retry AutomationWorkflowTasksTaskRetryPtrInput `pulumi:"retry"` // Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800 Timeout pulumi.StringPtrInput `pulumi:"timeout"` + // Specifies a default task wait before in seconds. 0 is used when not set + WaitBefore pulumi.StringPtrInput `pulumi:"waitBefore"` // Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` WithItems pulumi.StringPtrInput `pulumi:"withItems"` } @@ -11861,6 +11865,11 @@ func (o AutomationWorkflowTasksTaskOutput) Timeout() pulumi.StringPtrOutput { return o.ApplyT(func(v AutomationWorkflowTasksTask) *string { return v.Timeout }).(pulumi.StringPtrOutput) } +// Specifies a default task wait before in seconds. 0 is used when not set +func (o AutomationWorkflowTasksTaskOutput) WaitBefore() pulumi.StringPtrOutput { + return o.ApplyT(func(v AutomationWorkflowTasksTask) *string { return v.WaitBefore }).(pulumi.StringPtrOutput) +} + // Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` func (o AutomationWorkflowTasksTaskOutput) WithItems() pulumi.StringPtrOutput { return o.ApplyT(func(v AutomationWorkflowTasksTask) *string { return v.WithItems }).(pulumi.StringPtrOutput) diff --git a/sdk/nodejs/cloudDevelopmentEnvironments.ts b/sdk/nodejs/cloudDevelopmentEnvironments.ts new file mode 100644 index 00000000..35846cd7 --- /dev/null +++ b/sdk/nodejs/cloudDevelopmentEnvironments.ts @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class CloudDevelopmentEnvironments extends pulumi.CustomResource { + /** + * Get an existing CloudDevelopmentEnvironments resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: CloudDevelopmentEnvironmentsState, opts?: pulumi.CustomResourceOptions): CloudDevelopmentEnvironments { + return new CloudDevelopmentEnvironments(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments'; + + /** + * Returns true if the given object is an instance of CloudDevelopmentEnvironments. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is CloudDevelopmentEnvironments { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CloudDevelopmentEnvironments.__pulumiType; + } + + /** + * The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + */ + public readonly cloudDevelopmentEnvironments!: pulumi.Output; + + /** + * Create a CloudDevelopmentEnvironments resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: CloudDevelopmentEnvironmentsArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CloudDevelopmentEnvironmentsArgs | CloudDevelopmentEnvironmentsState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CloudDevelopmentEnvironmentsState | undefined; + resourceInputs["cloudDevelopmentEnvironments"] = state ? state.cloudDevelopmentEnvironments : undefined; + } else { + const args = argsOrState as CloudDevelopmentEnvironmentsArgs | undefined; + resourceInputs["cloudDevelopmentEnvironments"] = args ? args.cloudDevelopmentEnvironments : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CloudDevelopmentEnvironments.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CloudDevelopmentEnvironments resources. + */ +export interface CloudDevelopmentEnvironmentsState { + /** + * The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + */ + cloudDevelopmentEnvironments?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a CloudDevelopmentEnvironments resource. + */ +export interface CloudDevelopmentEnvironmentsArgs { + /** + * The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + */ + cloudDevelopmentEnvironments?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/directShares.ts b/sdk/nodejs/directShares.ts index 112dfe87..3ef17dd9 100644 --- a/sdk/nodejs/directShares.ts +++ b/sdk/nodejs/directShares.ts @@ -23,9 +23,142 @@ import * as utilities from "./utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as dynatrace from "@pulumiverse/dynatrace"; * - * const _this = new dynatrace.DirectShares("this", { + * const thisDocument = new dynatrace.Document("thisDocument", { + * type: "dashboard", + * content: JSON.stringify({ + * version: 13, + * variables: [], + * tiles: { + * "0": { + * type: "markdown", + * title: "", + * content: "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + * }, + * "1": { + * type: "data", + * title: "", + * query: "timeseries avg(dt.host.cpu.user)", + * queryConfig: { + * additionalFilters: {}, + * version: "4.3.1", + * datatype: "metrics", + * metricKey: "dt.host.cpu.user", + * aggregation: "avg", + * by: [], + * }, + * subType: "dql-builder-metrics", + * visualization: "lineChart", + * visualizationSettings: { + * thresholds: [], + * chartSettings: { + * gapPolicy: "connect", + * circleChartSettings: { + * groupingThresholdType: "relative", + * groupingThresholdValue: 0, + * valueType: "relative", + * }, + * categoryOverrides: {}, + * fieldMapping: { + * timestamp: "timeframe", + * leftAxisValues: ["avg(dt.host.cpu.user)"], + * leftAxisDimensions: [], + * fields: [], + * values: [], + * }, + * }, + * singleValue: { + * showLabel: true, + * label: "", + * prefixIcon: "", + * autoscale: true, + * alignment: "center", + * colorThresholdTarget: "value", + * }, + * table: { + * rowDensity: "condensed", + * enableSparklines: false, + * hiddenColumns: [], + * lineWrapIds: [], + * columnWidths: {}, + * }, + * }, + * }, + * "2": { + * type: "data", + * title: "", + * query: "timeseries avg(dt.host.memory.used)", + * queryConfig: { + * additionalFilters: {}, + * version: "4.3.1", + * datatype: "metrics", + * metricKey: "dt.host.memory.used", + * aggregation: "avg", + * by: [], + * }, + * subType: "dql-builder-metrics", + * visualization: "lineChart", + * visualizationSettings: { + * thresholds: [], + * chartSettings: { + * gapPolicy: "connect", + * circleChartSettings: { + * groupingThresholdType: "relative", + * groupingThresholdValue: 0, + * valueType: "relative", + * }, + * categoryOverrides: {}, + * fieldMapping: { + * timestamp: "timeframe", + * leftAxisValues: ["avg(dt.host.memory.used)"], + * leftAxisDimensions: [], + * fields: [], + * values: [], + * }, + * categoricalBarChartSettings: {}, + * }, + * singleValue: { + * showLabel: true, + * label: "", + * prefixIcon: "", + * autoscale: true, + * alignment: "center", + * colorThresholdTarget: "value", + * }, + * table: { + * rowDensity: "condensed", + * enableSparklines: false, + * hiddenColumns: [], + * lineWrapIds: [], + * columnWidths: {}, + * }, + * }, + * }, + * }, + * layouts: { + * "0": { + * x: 0, + * y: 0, + * w: 24, + * h: 14, + * }, + * "1": { + * x: 0, + * y: 14, + * w: 9, + * h: 6, + * }, + * "2": { + * x: 15, + * y: 14, + * w: 9, + * h: 6, + * }, + * }, + * }), + * }); + * const thisDirectShares = new dynatrace.DirectShares("thisDirectShares", { + * documentId: thisDocument.id, * access: "read-write", - * documentId: "441564f0-23c9-40ef-b344-18c02c23d712", * recipients: { * recipients: [ * { diff --git a/sdk/nodejs/document.ts b/sdk/nodejs/document.ts index 0d36d24a..507f75dd 100644 --- a/sdk/nodejs/document.ts +++ b/sdk/nodejs/document.ts @@ -14,6 +14,147 @@ import * as utilities from "./utilities"; * ## Dynatrace Documentation * * - Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service + * + * ## Resource Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as dynatrace from "@pulumiverse/dynatrace"; + * + * const _this = new dynatrace.Document("this", { + * type: "dashboard", + * content: JSON.stringify({ + * version: 13, + * variables: [], + * tiles: { + * "0": { + * type: "markdown", + * title: "", + * content: "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + * }, + * "1": { + * type: "data", + * title: "", + * query: "timeseries avg(dt.host.cpu.user)", + * queryConfig: { + * additionalFilters: {}, + * version: "4.3.1", + * datatype: "metrics", + * metricKey: "dt.host.cpu.user", + * aggregation: "avg", + * by: [], + * }, + * subType: "dql-builder-metrics", + * visualization: "lineChart", + * visualizationSettings: { + * thresholds: [], + * chartSettings: { + * gapPolicy: "connect", + * circleChartSettings: { + * groupingThresholdType: "relative", + * groupingThresholdValue: 0, + * valueType: "relative", + * }, + * categoryOverrides: {}, + * fieldMapping: { + * timestamp: "timeframe", + * leftAxisValues: ["avg(dt.host.cpu.user)"], + * leftAxisDimensions: [], + * fields: [], + * values: [], + * }, + * }, + * singleValue: { + * showLabel: true, + * label: "", + * prefixIcon: "", + * autoscale: true, + * alignment: "center", + * colorThresholdTarget: "value", + * }, + * table: { + * rowDensity: "condensed", + * enableSparklines: false, + * hiddenColumns: [], + * lineWrapIds: [], + * columnWidths: {}, + * }, + * }, + * }, + * "2": { + * type: "data", + * title: "", + * query: "timeseries avg(dt.host.memory.used)", + * queryConfig: { + * additionalFilters: {}, + * version: "4.3.1", + * datatype: "metrics", + * metricKey: "dt.host.memory.used", + * aggregation: "avg", + * by: [], + * }, + * subType: "dql-builder-metrics", + * visualization: "lineChart", + * visualizationSettings: { + * thresholds: [], + * chartSettings: { + * gapPolicy: "connect", + * circleChartSettings: { + * groupingThresholdType: "relative", + * groupingThresholdValue: 0, + * valueType: "relative", + * }, + * categoryOverrides: {}, + * fieldMapping: { + * timestamp: "timeframe", + * leftAxisValues: ["avg(dt.host.memory.used)"], + * leftAxisDimensions: [], + * fields: [], + * values: [], + * }, + * categoricalBarChartSettings: {}, + * }, + * singleValue: { + * showLabel: true, + * label: "", + * prefixIcon: "", + * autoscale: true, + * alignment: "center", + * colorThresholdTarget: "value", + * }, + * table: { + * rowDensity: "condensed", + * enableSparklines: false, + * hiddenColumns: [], + * lineWrapIds: [], + * columnWidths: {}, + * }, + * }, + * }, + * }, + * layouts: { + * "0": { + * x: 0, + * y: 0, + * w: 24, + * h: 14, + * }, + * "1": { + * x: 0, + * y: 14, + * w: 9, + * h: 6, + * }, + * "2": { + * x: 15, + * y: 14, + * w: 9, + * h: 6, + * }, + * }, + * }), + * }); + * ``` */ export class Document extends pulumi.CustomResource { /** @@ -64,7 +205,7 @@ export class Document extends pulumi.CustomResource { */ public readonly private!: pulumi.Output; /** - * Type of the document. Possible Values are `dashboard` and `notebook` + * Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` */ public readonly type!: pulumi.Output; /** @@ -138,7 +279,7 @@ export interface DocumentState { */ private?: pulumi.Input; /** - * Type of the document. Possible Values are `dashboard` and `notebook` + * Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` */ type?: pulumi.Input; /** @@ -172,7 +313,7 @@ export interface DocumentArgs { */ private?: pulumi.Input; /** - * Type of the document. Possible Values are `dashboard` and `notebook` + * Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` */ type: pulumi.Input; } diff --git a/sdk/nodejs/getIamPolicies.ts b/sdk/nodejs/getIamPolicies.ts index e2d6b649..0d7711e4 100644 --- a/sdk/nodejs/getIamPolicies.ts +++ b/sdk/nodejs/getIamPolicies.ts @@ -63,6 +63,7 @@ export function getIamPolicies(args?: GetIamPoliciesArgs, opts?: pulumi.InvokeOp "accounts": args.accounts, "environments": args.environments, "global": args.global, + "groups": args.groups, }, opts); } @@ -82,6 +83,10 @@ export interface GetIamPoliciesArgs { * If `true` the results will contain global policies */ global?: boolean; + /** + * The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + */ + groups?: string[]; } /** @@ -100,6 +105,10 @@ export interface GetIamPoliciesResult { * If `true` the results will contain global policies */ readonly global?: boolean; + /** + * The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + */ + readonly groups?: string[]; /** * The provider-assigned unique ID for this managed resource. */ @@ -163,6 +172,7 @@ export function getIamPoliciesOutput(args?: GetIamPoliciesOutputArgs, opts?: pul "accounts": args.accounts, "environments": args.environments, "global": args.global, + "groups": args.groups, }, opts); } @@ -182,4 +192,8 @@ export interface GetIamPoliciesOutputArgs { * If `true` the results will contain global policies */ global?: pulumi.Input; + /** + * The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + */ + groups?: pulumi.Input[]>; } diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 03b42575..02b05dd1 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -275,6 +275,11 @@ export type CalculatedWebMetric = import("./calculatedWebMetric").CalculatedWebM export const CalculatedWebMetric: typeof import("./calculatedWebMetric").CalculatedWebMetric = null as any; utilities.lazyLoad(exports, ["CalculatedWebMetric"], () => require("./calculatedWebMetric")); +export { CloudDevelopmentEnvironmentsArgs, CloudDevelopmentEnvironmentsState } from "./cloudDevelopmentEnvironments"; +export type CloudDevelopmentEnvironments = import("./cloudDevelopmentEnvironments").CloudDevelopmentEnvironments; +export const CloudDevelopmentEnvironments: typeof import("./cloudDevelopmentEnvironments").CloudDevelopmentEnvironments = null as any; +utilities.lazyLoad(exports, ["CloudDevelopmentEnvironments"], () => require("./cloudDevelopmentEnvironments")); + export { CloudFoundryArgs, CloudFoundryState } from "./cloudFoundry"; export type CloudFoundry = import("./cloudFoundry").CloudFoundry; export const CloudFoundry: typeof import("./cloudFoundry").CloudFoundry = null as any; @@ -1035,11 +1040,21 @@ export type KubernetesEnrichment = import("./kubernetesEnrichment").KubernetesEn export const KubernetesEnrichment: typeof import("./kubernetesEnrichment").KubernetesEnrichment = null as any; utilities.lazyLoad(exports, ["KubernetesEnrichment"], () => require("./kubernetesEnrichment")); +export { KubernetesSpmArgs, KubernetesSpmState } from "./kubernetesSpm"; +export type KubernetesSpm = import("./kubernetesSpm").KubernetesSpm; +export const KubernetesSpm: typeof import("./kubernetesSpm").KubernetesSpm = null as any; +utilities.lazyLoad(exports, ["KubernetesSpm"], () => require("./kubernetesSpm")); + export { LimitOutboundConnectionsArgs, LimitOutboundConnectionsState } from "./limitOutboundConnections"; export type LimitOutboundConnections = import("./limitOutboundConnections").LimitOutboundConnections; export const LimitOutboundConnections: typeof import("./limitOutboundConnections").LimitOutboundConnections = null as any; utilities.lazyLoad(exports, ["LimitOutboundConnections"], () => require("./limitOutboundConnections")); +export { LogAgentFeatureFlagsArgs, LogAgentFeatureFlagsState } from "./logAgentFeatureFlags"; +export type LogAgentFeatureFlags = import("./logAgentFeatureFlags").LogAgentFeatureFlags; +export const LogAgentFeatureFlags: typeof import("./logAgentFeatureFlags").LogAgentFeatureFlags = null as any; +utilities.lazyLoad(exports, ["LogAgentFeatureFlags"], () => require("./logAgentFeatureFlags")); + export { LogBucketsArgs, LogBucketsState } from "./logBuckets"; export type LogBuckets = import("./logBuckets").LogBuckets; export const LogBuckets: typeof import("./logBuckets").LogBuckets = null as any; @@ -1420,6 +1435,11 @@ export type PolicyBindings = import("./policyBindings").PolicyBindings; export const PolicyBindings: typeof import("./policyBindings").PolicyBindings = null as any; utilities.lazyLoad(exports, ["PolicyBindings"], () => require("./policyBindings")); +export { ProblemRecordPropagationRulesArgs, ProblemRecordPropagationRulesState } from "./problemRecordPropagationRules"; +export type ProblemRecordPropagationRules = import("./problemRecordPropagationRules").ProblemRecordPropagationRules; +export const ProblemRecordPropagationRules: typeof import("./problemRecordPropagationRules").ProblemRecordPropagationRules = null as any; +utilities.lazyLoad(exports, ["ProblemRecordPropagationRules"], () => require("./problemRecordPropagationRules")); + export { ProcessAvailabilityArgs, ProcessAvailabilityState } from "./processAvailability"; export type ProcessAvailability = import("./processAvailability").ProcessAvailability; export const ProcessAvailability: typeof import("./processAvailability").ProcessAvailability = null as any; @@ -1987,6 +2007,8 @@ const _module = { return new CalculatedSyntheticMetric(name, undefined, { urn }) case "dynatrace:index/calculatedWebMetric:CalculatedWebMetric": return new CalculatedWebMetric(name, undefined, { urn }) + case "dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments": + return new CloudDevelopmentEnvironments(name, undefined, { urn }) case "dynatrace:index/cloudFoundry:CloudFoundry": return new CloudFoundry(name, undefined, { urn }) case "dynatrace:index/cloudappWorkloaddetection:CloudappWorkloaddetection": @@ -2199,8 +2221,12 @@ const _module = { return new KubernetesApp(name, undefined, { urn }) case "dynatrace:index/kubernetesEnrichment:KubernetesEnrichment": return new KubernetesEnrichment(name, undefined, { urn }) + case "dynatrace:index/kubernetesSpm:KubernetesSpm": + return new KubernetesSpm(name, undefined, { urn }) case "dynatrace:index/limitOutboundConnections:LimitOutboundConnections": return new LimitOutboundConnections(name, undefined, { urn }) + case "dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags": + return new LogAgentFeatureFlags(name, undefined, { urn }) case "dynatrace:index/logBuckets:LogBuckets": return new LogBuckets(name, undefined, { urn }) case "dynatrace:index/logCustomAttribute:LogCustomAttribute": @@ -2353,6 +2379,8 @@ const _module = { return new Policy(name, undefined, { urn }) case "dynatrace:index/policyBindings:PolicyBindings": return new PolicyBindings(name, undefined, { urn }) + case "dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules": + return new ProblemRecordPropagationRules(name, undefined, { urn }) case "dynatrace:index/processAvailability:ProcessAvailability": return new ProcessAvailability(name, undefined, { urn }) case "dynatrace:index/processGroupDetection:ProcessGroupDetection": @@ -2588,6 +2616,7 @@ pulumi.runtime.registerResourceModule("dynatrace", "index/calculatedMobileMetric pulumi.runtime.registerResourceModule("dynatrace", "index/calculatedServiceMetric", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/calculatedSyntheticMetric", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/calculatedWebMetric", _module) +pulumi.runtime.registerResourceModule("dynatrace", "index/cloudDevelopmentEnvironments", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/cloudFoundry", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/cloudappWorkloaddetection", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/cloudfoundryCredentials", _module) @@ -2694,7 +2723,9 @@ pulumi.runtime.registerResourceModule("dynatrace", "index/keyUserAction", _modul pulumi.runtime.registerResourceModule("dynatrace", "index/kubernetes", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/kubernetesApp", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/kubernetesEnrichment", _module) +pulumi.runtime.registerResourceModule("dynatrace", "index/kubernetesSpm", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/limitOutboundConnections", _module) +pulumi.runtime.registerResourceModule("dynatrace", "index/logAgentFeatureFlags", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/logBuckets", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/logCustomAttribute", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/logCustomSource", _module) @@ -2771,6 +2802,7 @@ pulumi.runtime.registerResourceModule("dynatrace", "index/pgAnomalies", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/platformBucket", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/policy", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/policyBindings", _module) +pulumi.runtime.registerResourceModule("dynatrace", "index/problemRecordPropagationRules", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/processAvailability", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/processGroupDetection", _module) pulumi.runtime.registerResourceModule("dynatrace", "index/processGroupDetectionFlags", _module) diff --git a/sdk/nodejs/k8sMonitoring.ts b/sdk/nodejs/k8sMonitoring.ts index ca81b52c..045b85f4 100644 --- a/sdk/nodejs/k8sMonitoring.ts +++ b/sdk/nodejs/k8sMonitoring.ts @@ -66,8 +66,10 @@ export class K8sMonitoring extends pulumi.CustomResource { public readonly openMetricsPipelineEnabled!: pulumi.Output; /** * To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. + * + * @deprecated This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. */ - public readonly pvcMonitoringEnabled!: pulumi.Output; + public readonly pvcMonitoringEnabled!: pulumi.Output; /** * The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. */ @@ -109,9 +111,6 @@ export class K8sMonitoring extends pulumi.CustomResource { if ((!args || args.openMetricsPipelineEnabled === undefined) && !opts.urn) { throw new Error("Missing required property 'openMetricsPipelineEnabled'"); } - if ((!args || args.pvcMonitoringEnabled === undefined) && !opts.urn) { - throw new Error("Missing required property 'pvcMonitoringEnabled'"); - } resourceInputs["cloudApplicationPipelineEnabled"] = args ? args.cloudApplicationPipelineEnabled : undefined; resourceInputs["eventPatterns"] = args ? args.eventPatterns : undefined; resourceInputs["eventProcessingActive"] = args ? args.eventProcessingActive : undefined; @@ -163,6 +162,8 @@ export interface K8sMonitoringState { openMetricsPipelineEnabled?: pulumi.Input; /** * To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. + * + * @deprecated This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. */ pvcMonitoringEnabled?: pulumi.Input; /** @@ -207,8 +208,10 @@ export interface K8sMonitoringArgs { openMetricsPipelineEnabled: pulumi.Input; /** * To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. + * + * @deprecated This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details. */ - pvcMonitoringEnabled: pulumi.Input; + pvcMonitoringEnabled?: pulumi.Input; /** * The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. */ diff --git a/sdk/nodejs/kubernetesSpm.ts b/sdk/nodejs/kubernetesSpm.ts new file mode 100644 index 00000000..0300332a --- /dev/null +++ b/sdk/nodejs/kubernetesSpm.ts @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class KubernetesSpm extends pulumi.CustomResource { + /** + * Get an existing KubernetesSpm resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: KubernetesSpmState, opts?: pulumi.CustomResourceOptions): KubernetesSpm { + return new KubernetesSpm(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'dynatrace:index/kubernetesSpm:KubernetesSpm'; + + /** + * Returns true if the given object is an instance of KubernetesSpm. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is KubernetesSpm { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === KubernetesSpm.__pulumiType; + } + + /** + * Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + */ + public readonly configurationDatasetPipelineEnabled!: pulumi.Output; + /** + * The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + */ + public readonly scope!: pulumi.Output; + + /** + * Create a KubernetesSpm resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: KubernetesSpmArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: KubernetesSpmArgs | KubernetesSpmState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as KubernetesSpmState | undefined; + resourceInputs["configurationDatasetPipelineEnabled"] = state ? state.configurationDatasetPipelineEnabled : undefined; + resourceInputs["scope"] = state ? state.scope : undefined; + } else { + const args = argsOrState as KubernetesSpmArgs | undefined; + if ((!args || args.configurationDatasetPipelineEnabled === undefined) && !opts.urn) { + throw new Error("Missing required property 'configurationDatasetPipelineEnabled'"); + } + resourceInputs["configurationDatasetPipelineEnabled"] = args ? args.configurationDatasetPipelineEnabled : undefined; + resourceInputs["scope"] = args ? args.scope : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(KubernetesSpm.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering KubernetesSpm resources. + */ +export interface KubernetesSpmState { + /** + * Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + */ + configurationDatasetPipelineEnabled?: pulumi.Input; + /** + * The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + */ + scope?: pulumi.Input; +} + +/** + * The set of arguments for constructing a KubernetesSpm resource. + */ +export interface KubernetesSpmArgs { + /** + * Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + */ + configurationDatasetPipelineEnabled: pulumi.Input; + /** + * The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + */ + scope?: pulumi.Input; +} diff --git a/sdk/nodejs/logAgentFeatureFlags.ts b/sdk/nodejs/logAgentFeatureFlags.ts new file mode 100644 index 00000000..badddf14 --- /dev/null +++ b/sdk/nodejs/logAgentFeatureFlags.ts @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class LogAgentFeatureFlags extends pulumi.CustomResource { + /** + * Get an existing LogAgentFeatureFlags resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: LogAgentFeatureFlagsState, opts?: pulumi.CustomResourceOptions): LogAgentFeatureFlags { + return new LogAgentFeatureFlags(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags'; + + /** + * Returns true if the given object is an instance of LogAgentFeatureFlags. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is LogAgentFeatureFlags { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LogAgentFeatureFlags.__pulumiType; + } + + /** + * Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + */ + public readonly newContainerLogDetector!: pulumi.Output; + /** + * The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + */ + public readonly scope!: pulumi.Output; + + /** + * Create a LogAgentFeatureFlags resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: LogAgentFeatureFlagsArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: LogAgentFeatureFlagsArgs | LogAgentFeatureFlagsState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as LogAgentFeatureFlagsState | undefined; + resourceInputs["newContainerLogDetector"] = state ? state.newContainerLogDetector : undefined; + resourceInputs["scope"] = state ? state.scope : undefined; + } else { + const args = argsOrState as LogAgentFeatureFlagsArgs | undefined; + if ((!args || args.newContainerLogDetector === undefined) && !opts.urn) { + throw new Error("Missing required property 'newContainerLogDetector'"); + } + resourceInputs["newContainerLogDetector"] = args ? args.newContainerLogDetector : undefined; + resourceInputs["scope"] = args ? args.scope : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(LogAgentFeatureFlags.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering LogAgentFeatureFlags resources. + */ +export interface LogAgentFeatureFlagsState { + /** + * Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + */ + newContainerLogDetector?: pulumi.Input; + /** + * The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + */ + scope?: pulumi.Input; +} + +/** + * The set of arguments for constructing a LogAgentFeatureFlags resource. + */ +export interface LogAgentFeatureFlagsArgs { + /** + * Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + */ + newContainerLogDetector: pulumi.Input; + /** + * The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + */ + scope?: pulumi.Input; +} diff --git a/sdk/nodejs/problemRecordPropagationRules.ts b/sdk/nodejs/problemRecordPropagationRules.ts new file mode 100644 index 00000000..191d414c --- /dev/null +++ b/sdk/nodejs/problemRecordPropagationRules.ts @@ -0,0 +1,118 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class ProblemRecordPropagationRules extends pulumi.CustomResource { + /** + * Get an existing ProblemRecordPropagationRules resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ProblemRecordPropagationRulesState, opts?: pulumi.CustomResourceOptions): ProblemRecordPropagationRules { + return new ProblemRecordPropagationRules(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules'; + + /** + * Returns true if the given object is an instance of ProblemRecordPropagationRules. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ProblemRecordPropagationRules { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ProblemRecordPropagationRules.__pulumiType; + } + + /** + * This setting is enabled (`true`) or disabled (`false`) + */ + public readonly enabled!: pulumi.Output; + /** + * Attribute key from the event that will be propagated. + */ + public readonly sourceAttributeKey!: pulumi.Output; + /** + * Attribute key under which the propagated event data will be stored on the problem. + */ + public readonly targetAttributeKey!: pulumi.Output; + + /** + * Create a ProblemRecordPropagationRules resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ProblemRecordPropagationRulesArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ProblemRecordPropagationRulesArgs | ProblemRecordPropagationRulesState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ProblemRecordPropagationRulesState | undefined; + resourceInputs["enabled"] = state ? state.enabled : undefined; + resourceInputs["sourceAttributeKey"] = state ? state.sourceAttributeKey : undefined; + resourceInputs["targetAttributeKey"] = state ? state.targetAttributeKey : undefined; + } else { + const args = argsOrState as ProblemRecordPropagationRulesArgs | undefined; + if ((!args || args.enabled === undefined) && !opts.urn) { + throw new Error("Missing required property 'enabled'"); + } + if ((!args || args.sourceAttributeKey === undefined) && !opts.urn) { + throw new Error("Missing required property 'sourceAttributeKey'"); + } + if ((!args || args.targetAttributeKey === undefined) && !opts.urn) { + throw new Error("Missing required property 'targetAttributeKey'"); + } + resourceInputs["enabled"] = args ? args.enabled : undefined; + resourceInputs["sourceAttributeKey"] = args ? args.sourceAttributeKey : undefined; + resourceInputs["targetAttributeKey"] = args ? args.targetAttributeKey : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ProblemRecordPropagationRules.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ProblemRecordPropagationRules resources. + */ +export interface ProblemRecordPropagationRulesState { + /** + * This setting is enabled (`true`) or disabled (`false`) + */ + enabled?: pulumi.Input; + /** + * Attribute key from the event that will be propagated. + */ + sourceAttributeKey?: pulumi.Input; + /** + * Attribute key under which the propagated event data will be stored on the problem. + */ + targetAttributeKey?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ProblemRecordPropagationRules resource. + */ +export interface ProblemRecordPropagationRulesArgs { + /** + * This setting is enabled (`true`) or disabled (`false`) + */ + enabled: pulumi.Input; + /** + * Attribute key from the event that will be propagated. + */ + sourceAttributeKey: pulumi.Input; + /** + * Attribute key under which the propagated event data will be stored on the problem. + */ + targetAttributeKey: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 0f167793..745955ef 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -67,6 +67,7 @@ "calculatedServiceMetric.ts", "calculatedSyntheticMetric.ts", "calculatedWebMetric.ts", + "cloudDevelopmentEnvironments.ts", "cloudFoundry.ts", "cloudappWorkloaddetection.ts", "cloudfoundryCredentials.ts", @@ -222,7 +223,9 @@ "kubernetes.ts", "kubernetesApp.ts", "kubernetesEnrichment.ts", + "kubernetesSpm.ts", "limitOutboundConnections.ts", + "logAgentFeatureFlags.ts", "logBuckets.ts", "logCustomAttribute.ts", "logCustomSource.ts", @@ -299,6 +302,7 @@ "platformBucket.ts", "policy.ts", "policyBindings.ts", + "problemRecordPropagationRules.ts", "processAvailability.ts", "processGroupDetection.ts", "processGroupDetectionFlags.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 38f89801..dab78ae7 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -1166,6 +1166,10 @@ export interface AutomationWorkflowTasksTask { * Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800 */ timeout?: pulumi.Input; + /** + * Specifies a default task wait before in seconds. 0 is used when not set + */ + waitBefore?: pulumi.Input; /** * Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` */ diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index a08562e9..d93ddd76 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -1166,6 +1166,10 @@ export interface AutomationWorkflowTasksTask { * Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800 */ timeout?: string; + /** + * Specifies a default task wait before in seconds. 0 is used when not set + */ + waitBefore?: string; /** * Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` */ diff --git a/sdk/python/pulumiverse_dynatrace/__init__.py b/sdk/python/pulumiverse_dynatrace/__init__.py index 2642c924..50171306 100644 --- a/sdk/python/pulumiverse_dynatrace/__init__.py +++ b/sdk/python/pulumiverse_dynatrace/__init__.py @@ -59,6 +59,7 @@ from .calculated_service_metric import * from .calculated_synthetic_metric import * from .calculated_web_metric import * +from .cloud_development_environments import * from .cloud_foundry import * from .cloudapp_workloaddetection import * from .cloudfoundry_credentials import * @@ -211,7 +212,9 @@ from .kubernetes import * from .kubernetes_app import * from .kubernetes_enrichment import * +from .kubernetes_spm import * from .limit_outbound_connections import * +from .log_agent_feature_flags import * from .log_buckets import * from .log_custom_attribute import * from .log_custom_source import * @@ -288,6 +291,7 @@ from .platform_bucket import * from .policy import * from .policy_bindings import * +from .problem_record_propagation_rules import * from .process_availability import * from .process_group_detection import * from .process_group_detection_flags import * @@ -822,6 +826,14 @@ "dynatrace:index/calculatedWebMetric:CalculatedWebMetric": "CalculatedWebMetric" } }, + { + "pkg": "dynatrace", + "mod": "index/cloudDevelopmentEnvironments", + "fqn": "pulumiverse_dynatrace", + "classes": { + "dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments": "CloudDevelopmentEnvironments" + } + }, { "pkg": "dynatrace", "mod": "index/cloudFoundry", @@ -1670,6 +1682,14 @@ "dynatrace:index/kubernetesEnrichment:KubernetesEnrichment": "KubernetesEnrichment" } }, + { + "pkg": "dynatrace", + "mod": "index/kubernetesSpm", + "fqn": "pulumiverse_dynatrace", + "classes": { + "dynatrace:index/kubernetesSpm:KubernetesSpm": "KubernetesSpm" + } + }, { "pkg": "dynatrace", "mod": "index/limitOutboundConnections", @@ -1678,6 +1698,14 @@ "dynatrace:index/limitOutboundConnections:LimitOutboundConnections": "LimitOutboundConnections" } }, + { + "pkg": "dynatrace", + "mod": "index/logAgentFeatureFlags", + "fqn": "pulumiverse_dynatrace", + "classes": { + "dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags": "LogAgentFeatureFlags" + } + }, { "pkg": "dynatrace", "mod": "index/logBuckets", @@ -2286,6 +2314,14 @@ "dynatrace:index/policyBindings:PolicyBindings": "PolicyBindings" } }, + { + "pkg": "dynatrace", + "mod": "index/problemRecordPropagationRules", + "fqn": "pulumiverse_dynatrace", + "classes": { + "dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules": "ProblemRecordPropagationRules" + } + }, { "pkg": "dynatrace", "mod": "index/processAvailability", diff --git a/sdk/python/pulumiverse_dynatrace/_inputs.py b/sdk/python/pulumiverse_dynatrace/_inputs.py index 7b011223..98d9f3e5 100644 --- a/sdk/python/pulumiverse_dynatrace/_inputs.py +++ b/sdk/python/pulumiverse_dynatrace/_inputs.py @@ -8697,6 +8697,10 @@ class AutomationWorkflowTasksTaskArgsDict(TypedDict): """ Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800 """ + wait_before: NotRequired[pulumi.Input[str]] + """ + Specifies a default task wait before in seconds. 0 is used when not set + """ with_items: NotRequired[pulumi.Input[str]] """ Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` @@ -8717,6 +8721,7 @@ def __init__(__self__, *, position: Optional[pulumi.Input['AutomationWorkflowTasksTaskPositionArgs']] = None, retry: Optional[pulumi.Input['AutomationWorkflowTasksTaskRetryArgs']] = None, timeout: Optional[pulumi.Input[str]] = None, + wait_before: Optional[pulumi.Input[str]] = None, with_items: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] action: Currently known and supported values are `dynatrace.automations:http-function`, `dynatrace.automations:run-javascript` and `dynatrace.automations:execute-dql-query` @@ -8729,6 +8734,7 @@ def __init__(__self__, *, :param pulumi.Input['AutomationWorkflowTasksTaskPositionArgs'] position: Layouting information about the task tile when visualized. If not specified Dynatrace will position the task tiles automatically :param pulumi.Input['AutomationWorkflowTasksTaskRetryArgs'] retry: Configure whether to automatically rerun the task on failure. If not specified no retries will be attempted :param pulumi.Input[str] timeout: Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800 + :param pulumi.Input[str] wait_before: Specifies a default task wait before in seconds. 0 is used when not set :param pulumi.Input[str] with_items: Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` """ pulumi.set(__self__, "action", action) @@ -8749,6 +8755,8 @@ def __init__(__self__, *, pulumi.set(__self__, "retry", retry) if timeout is not None: pulumi.set(__self__, "timeout", timeout) + if wait_before is not None: + pulumi.set(__self__, "wait_before", wait_before) if with_items is not None: pulumi.set(__self__, "with_items", with_items) @@ -8872,6 +8880,18 @@ def timeout(self) -> Optional[pulumi.Input[str]]: def timeout(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "timeout", value) + @property + @pulumi.getter(name="waitBefore") + def wait_before(self) -> Optional[pulumi.Input[str]]: + """ + Specifies a default task wait before in seconds. 0 is used when not set + """ + return pulumi.get(self, "wait_before") + + @wait_before.setter + def wait_before(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "wait_before", value) + @property @pulumi.getter(name="withItems") def with_items(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumiverse_dynatrace/cloud_development_environments.py b/sdk/python/pulumiverse_dynatrace/cloud_development_environments.py new file mode 100644 index 00000000..ab4623d5 --- /dev/null +++ b/sdk/python/pulumiverse_dynatrace/cloud_development_environments.py @@ -0,0 +1,148 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['CloudDevelopmentEnvironmentsArgs', 'CloudDevelopmentEnvironments'] + +@pulumi.input_type +class CloudDevelopmentEnvironmentsArgs: + def __init__(__self__, *, + cloud_development_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a CloudDevelopmentEnvironments resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] cloud_development_environments: The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + """ + if cloud_development_environments is not None: + pulumi.set(__self__, "cloud_development_environments", cloud_development_environments) + + @property + @pulumi.getter(name="cloudDevelopmentEnvironments") + def cloud_development_environments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + """ + return pulumi.get(self, "cloud_development_environments") + + @cloud_development_environments.setter + def cloud_development_environments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "cloud_development_environments", value) + + +@pulumi.input_type +class _CloudDevelopmentEnvironmentsState: + def __init__(__self__, *, + cloud_development_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering CloudDevelopmentEnvironments resources. + :param pulumi.Input[Sequence[pulumi.Input[str]]] cloud_development_environments: The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + """ + if cloud_development_environments is not None: + pulumi.set(__self__, "cloud_development_environments", cloud_development_environments) + + @property + @pulumi.getter(name="cloudDevelopmentEnvironments") + def cloud_development_environments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + """ + return pulumi.get(self, "cloud_development_environments") + + @cloud_development_environments.setter + def cloud_development_environments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "cloud_development_environments", value) + + +class CloudDevelopmentEnvironments(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cloud_development_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + __props__=None): + """ + Create a CloudDevelopmentEnvironments resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] cloud_development_environments: The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[CloudDevelopmentEnvironmentsArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a CloudDevelopmentEnvironments resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param CloudDevelopmentEnvironmentsArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(CloudDevelopmentEnvironmentsArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cloud_development_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = CloudDevelopmentEnvironmentsArgs.__new__(CloudDevelopmentEnvironmentsArgs) + + __props__.__dict__["cloud_development_environments"] = cloud_development_environments + super(CloudDevelopmentEnvironments, __self__).__init__( + 'dynatrace:index/cloudDevelopmentEnvironments:CloudDevelopmentEnvironments', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + cloud_development_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'CloudDevelopmentEnvironments': + """ + Get an existing CloudDevelopmentEnvironments resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] cloud_development_environments: The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CloudDevelopmentEnvironmentsState.__new__(_CloudDevelopmentEnvironmentsState) + + __props__.__dict__["cloud_development_environments"] = cloud_development_environments + return CloudDevelopmentEnvironments(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="cloudDevelopmentEnvironments") + def cloud_development_environments(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The URL to allow app development from. E.g. `https://*.my-company.my-cde-provider.com`. + """ + return pulumi.get(self, "cloud_development_environments") + diff --git a/sdk/python/pulumiverse_dynatrace/direct_shares.py b/sdk/python/pulumiverse_dynatrace/direct_shares.py index 834c4bf2..85938ca3 100644 --- a/sdk/python/pulumiverse_dynatrace/direct_shares.py +++ b/sdk/python/pulumiverse_dynatrace/direct_shares.py @@ -152,11 +152,144 @@ def __init__(__self__, ```python import pulumi + import json import pulumiverse_dynatrace as dynatrace - this = dynatrace.DirectShares("this", + this_document = dynatrace.Document("thisDocument", + type="dashboard", + content=json.dumps({ + "version": 13, + "variables": [], + "tiles": { + "0": { + "type": "markdown", + "title": "", + "content": "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + }, + "1": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.cpu.user)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.cpu.user", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.cpu.user)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + "2": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.memory.used)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.memory.used", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.memory.used)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + "categoricalBarChartSettings": {}, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + }, + "layouts": { + "0": { + "x": 0, + "y": 0, + "w": 24, + "h": 14, + }, + "1": { + "x": 0, + "y": 14, + "w": 9, + "h": 6, + }, + "2": { + "x": 15, + "y": 14, + "w": 9, + "h": 6, + }, + }, + })) + this_direct_shares = dynatrace.DirectShares("thisDirectShares", + document_id=this_document.id, access="read-write", - document_id="441564f0-23c9-40ef-b344-18c02c23d712", recipients={ "recipients": [ { @@ -198,11 +331,144 @@ def __init__(__self__, ```python import pulumi + import json import pulumiverse_dynatrace as dynatrace - this = dynatrace.DirectShares("this", + this_document = dynatrace.Document("thisDocument", + type="dashboard", + content=json.dumps({ + "version": 13, + "variables": [], + "tiles": { + "0": { + "type": "markdown", + "title": "", + "content": "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + }, + "1": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.cpu.user)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.cpu.user", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.cpu.user)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + "2": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.memory.used)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.memory.used", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.memory.used)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + "categoricalBarChartSettings": {}, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + }, + "layouts": { + "0": { + "x": 0, + "y": 0, + "w": 24, + "h": 14, + }, + "1": { + "x": 0, + "y": 14, + "w": 9, + "h": 6, + }, + "2": { + "x": 15, + "y": 14, + "w": 9, + "h": 6, + }, + }, + })) + this_direct_shares = dynatrace.DirectShares("thisDirectShares", + document_id=this_document.id, access="read-write", - document_id="441564f0-23c9-40ef-b344-18c02c23d712", recipients={ "recipients": [ { diff --git a/sdk/python/pulumiverse_dynatrace/document.py b/sdk/python/pulumiverse_dynatrace/document.py index c2899566..32ac0169 100644 --- a/sdk/python/pulumiverse_dynatrace/document.py +++ b/sdk/python/pulumiverse_dynatrace/document.py @@ -28,7 +28,7 @@ def __init__(__self__, *, """ The set of arguments for constructing a Document resource. :param pulumi.Input[str] content: Document content as JSON - :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard` and `notebook` + :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` :param pulumi.Input[str] actor: The user context the executions of the document will happen with :param pulumi.Input[str] name: The name/name of the document :param pulumi.Input[str] owner: The ID of the owner of this document @@ -61,7 +61,7 @@ def content(self, value: pulumi.Input[str]): @pulumi.getter def type(self) -> pulumi.Input[str]: """ - Type of the document. Possible Values are `dashboard` and `notebook` + Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` """ return pulumi.get(self, "type") @@ -135,7 +135,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name/name of the document :param pulumi.Input[str] owner: The ID of the owner of this document :param pulumi.Input[bool] private: Specifies whether the document is private or readable by everybody - :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard` and `notebook` + :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` :param pulumi.Input[int] version: The version of the document """ if actor is not None: @@ -217,7 +217,7 @@ def private(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - Type of the document. Possible Values are `dashboard` and `notebook` + Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` """ return pulumi.get(self, "type") @@ -261,6 +261,147 @@ def __init__(__self__, - Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service + ## Resource Example Usage + + ```python + import pulumi + import json + import pulumiverse_dynatrace as dynatrace + + this = dynatrace.Document("this", + type="dashboard", + content=json.dumps({ + "version": 13, + "variables": [], + "tiles": { + "0": { + "type": "markdown", + "title": "", + "content": "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + }, + "1": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.cpu.user)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.cpu.user", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.cpu.user)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + "2": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.memory.used)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.memory.used", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.memory.used)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + "categoricalBarChartSettings": {}, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + }, + "layouts": { + "0": { + "x": 0, + "y": 0, + "w": 24, + "h": 14, + }, + "1": { + "x": 0, + "y": 14, + "w": 9, + "h": 6, + }, + "2": { + "x": 15, + "y": 14, + "w": 9, + "h": 6, + }, + }, + })) + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] actor: The user context the executions of the document will happen with @@ -268,7 +409,7 @@ def __init__(__self__, :param pulumi.Input[str] name: The name/name of the document :param pulumi.Input[str] owner: The ID of the owner of this document :param pulumi.Input[bool] private: Specifies whether the document is private or readable by everybody - :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard` and `notebook` + :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` """ ... @overload @@ -287,6 +428,147 @@ def __init__(__self__, - Dynatrace Documents - https://########.apps.dynatrace.com/platform/swagger-ui/index.html?urls.primaryName=Document%20Service + ## Resource Example Usage + + ```python + import pulumi + import json + import pulumiverse_dynatrace as dynatrace + + this = dynatrace.Document("this", + type="dashboard", + content=json.dumps({ + "version": 13, + "variables": [], + "tiles": { + "0": { + "type": "markdown", + "title": "", + "content": "![Image of a Dashboard](https://dt-cdn.net/wp-content/uploads/2022/09/pic1____Dashboard-Preset___PNG.png)", + }, + "1": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.cpu.user)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.cpu.user", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.cpu.user)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + "2": { + "type": "data", + "title": "", + "query": "timeseries avg(dt.host.memory.used)", + "queryConfig": { + "additionalFilters": {}, + "version": "4.3.1", + "datatype": "metrics", + "metricKey": "dt.host.memory.used", + "aggregation": "avg", + "by": [], + }, + "subType": "dql-builder-metrics", + "visualization": "lineChart", + "visualizationSettings": { + "thresholds": [], + "chartSettings": { + "gapPolicy": "connect", + "circleChartSettings": { + "groupingThresholdType": "relative", + "groupingThresholdValue": 0, + "valueType": "relative", + }, + "categoryOverrides": {}, + "fieldMapping": { + "timestamp": "timeframe", + "leftAxisValues": ["avg(dt.host.memory.used)"], + "leftAxisDimensions": [], + "fields": [], + "values": [], + }, + "categoricalBarChartSettings": {}, + }, + "singleValue": { + "showLabel": True, + "label": "", + "prefixIcon": "", + "autoscale": True, + "alignment": "center", + "colorThresholdTarget": "value", + }, + "table": { + "rowDensity": "condensed", + "enableSparklines": False, + "hiddenColumns": [], + "lineWrapIds": [], + "columnWidths": {}, + }, + }, + }, + }, + "layouts": { + "0": { + "x": 0, + "y": 0, + "w": 24, + "h": 14, + }, + "1": { + "x": 0, + "y": 14, + "w": 9, + "h": 6, + }, + "2": { + "x": 15, + "y": 14, + "w": 9, + "h": 6, + }, + }, + })) + ``` + :param str resource_name: The name of the resource. :param DocumentArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. @@ -357,7 +639,7 @@ def get(resource_name: str, :param pulumi.Input[str] name: The name/name of the document :param pulumi.Input[str] owner: The ID of the owner of this document :param pulumi.Input[bool] private: Specifies whether the document is private or readable by everybody - :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard` and `notebook` + :param pulumi.Input[str] type: Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` :param pulumi.Input[int] version: The version of the document """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -417,7 +699,7 @@ def private(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter def type(self) -> pulumi.Output[str]: """ - Type of the document. Possible Values are `dashboard` and `notebook` + Type of the document. Possible Values are `dashboard`, `launchpad` and `notebook` """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumiverse_dynatrace/get_iam_policies.py b/sdk/python/pulumiverse_dynatrace/get_iam_policies.py index 7e8f3548..a3d90281 100644 --- a/sdk/python/pulumiverse_dynatrace/get_iam_policies.py +++ b/sdk/python/pulumiverse_dynatrace/get_iam_policies.py @@ -27,7 +27,7 @@ class GetIamPoliciesResult: """ A collection of values returned by getIamPolicies. """ - def __init__(__self__, accounts=None, environments=None, global_=None, id=None, policies=None): + def __init__(__self__, accounts=None, environments=None, global_=None, groups=None, id=None, policies=None): if accounts and not isinstance(accounts, list): raise TypeError("Expected argument 'accounts' to be a list") pulumi.set(__self__, "accounts", accounts) @@ -37,6 +37,9 @@ def __init__(__self__, accounts=None, environments=None, global_=None, id=None, if global_ and not isinstance(global_, bool): raise TypeError("Expected argument 'global_' to be a bool") pulumi.set(__self__, "global_", global_) + if groups and not isinstance(groups, list): + raise TypeError("Expected argument 'groups' to be a list") + pulumi.set(__self__, "groups", groups) if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) @@ -68,6 +71,14 @@ def global_(self) -> Optional[bool]: """ return pulumi.get(self, "global_") + @property + @pulumi.getter + def groups(self) -> Optional[Sequence[str]]: + """ + The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies + """ + return pulumi.get(self, "groups") + @property @pulumi.getter def id(self) -> str: @@ -91,6 +102,7 @@ def __await__(self): accounts=self.accounts, environments=self.environments, global_=self.global_, + groups=self.groups, id=self.id, policies=self.policies) @@ -98,6 +110,7 @@ def __await__(self): def get_iam_policies(accounts: Optional[Sequence[str]] = None, environments: Optional[Sequence[str]] = None, global_: Optional[bool] = None, + groups: Optional[Sequence[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIamPoliciesResult: """ > **Dynatrace SaaS only** @@ -147,11 +160,13 @@ def get_iam_policies(accounts: Optional[Sequence[str]] = None, :param Sequence[str] accounts: The results will contain policies defined for the given accountID. If one of the entries contains `*` the results will contain policies for all accounts :param Sequence[str] environments: The results will contain policies defined for the given environments. If one of the entries contains `*` the results will contain policies for all environments :param bool global_: If `true` the results will contain global policies + :param Sequence[str] groups: The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies """ __args__ = dict() __args__['accounts'] = accounts __args__['environments'] = environments __args__['global'] = global_ + __args__['groups'] = groups opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('dynatrace:index/getIamPolicies:getIamPolicies', __args__, opts=opts, typ=GetIamPoliciesResult).value @@ -159,11 +174,13 @@ def get_iam_policies(accounts: Optional[Sequence[str]] = None, accounts=pulumi.get(__ret__, 'accounts'), environments=pulumi.get(__ret__, 'environments'), global_=pulumi.get(__ret__, 'global_'), + groups=pulumi.get(__ret__, 'groups'), id=pulumi.get(__ret__, 'id'), policies=pulumi.get(__ret__, 'policies')) def get_iam_policies_output(accounts: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, environments: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, global_: Optional[pulumi.Input[Optional[bool]]] = None, + groups: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetIamPoliciesResult]: """ > **Dynatrace SaaS only** @@ -213,16 +230,19 @@ def get_iam_policies_output(accounts: Optional[pulumi.Input[Optional[Sequence[st :param Sequence[str] accounts: The results will contain policies defined for the given accountID. If one of the entries contains `*` the results will contain policies for all accounts :param Sequence[str] environments: The results will contain policies defined for the given environments. If one of the entries contains `*` the results will contain policies for all environments :param bool global_: If `true` the results will contain global policies + :param Sequence[str] groups: The results will only contain policies that are bound to the specified groups. Omit this attribute if you want to retrieve all policies """ __args__ = dict() __args__['accounts'] = accounts __args__['environments'] = environments __args__['global'] = global_ + __args__['groups'] = groups opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('dynatrace:index/getIamPolicies:getIamPolicies', __args__, opts=opts, typ=GetIamPoliciesResult) return __ret__.apply(lambda __response__: GetIamPoliciesResult( accounts=pulumi.get(__response__, 'accounts'), environments=pulumi.get(__response__, 'environments'), global_=pulumi.get(__response__, 'global_'), + groups=pulumi.get(__response__, 'groups'), id=pulumi.get(__response__, 'id'), policies=pulumi.get(__response__, 'policies'))) diff --git a/sdk/python/pulumiverse_dynatrace/k8s_monitoring.py b/sdk/python/pulumiverse_dynatrace/k8s_monitoring.py index 9f1382d3..c7cae895 100644 --- a/sdk/python/pulumiverse_dynatrace/k8s_monitoring.py +++ b/sdk/python/pulumiverse_dynatrace/k8s_monitoring.py @@ -25,10 +25,10 @@ def __init__(__self__, *, event_processing_active: pulumi.Input[bool], open_metrics_builtin_enabled: pulumi.Input[bool], open_metrics_pipeline_enabled: pulumi.Input[bool], - pvc_monitoring_enabled: pulumi.Input[bool], event_patterns: Optional[pulumi.Input['K8sMonitoringEventPatternsArgs']] = None, filter_events: Optional[pulumi.Input[bool]] = None, include_all_fdi_events: Optional[pulumi.Input[bool]] = None, + pvc_monitoring_enabled: Optional[pulumi.Input[bool]] = None, scope: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a K8sMonitoring resource. @@ -37,24 +37,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] open_metrics_builtin_enabled: Workload and node resource metrics are based on a subset of cAdvisor metrics. Depending on your Kubernetes cluster size, this may increase the CPU/memory resource consumption of your ActiveGate. :param pulumi.Input[bool] open_metrics_pipeline_enabled: For annotation guidance, see the [documentation](https://dt-url.net/g42i0ppw). - :param pulumi.Input[bool] pvc_monitoring_enabled: To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. :param pulumi.Input['K8sMonitoringEventPatternsArgs'] event_patterns: Define Kubernetes event filters to ingest events into your environment. For more details, see the [documentation](https://dt-url.net/2201p0u). :param pulumi.Input[bool] filter_events: Include only events specified by Events Field Selectors :param pulumi.Input[bool] include_all_fdi_events: For a list of included events, see the [documentation](https://dt-url.net/l61d02no). + :param pulumi.Input[bool] pvc_monitoring_enabled: To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. :param pulumi.Input[str] scope: The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. """ pulumi.set(__self__, "cloud_application_pipeline_enabled", cloud_application_pipeline_enabled) pulumi.set(__self__, "event_processing_active", event_processing_active) pulumi.set(__self__, "open_metrics_builtin_enabled", open_metrics_builtin_enabled) pulumi.set(__self__, "open_metrics_pipeline_enabled", open_metrics_pipeline_enabled) - pulumi.set(__self__, "pvc_monitoring_enabled", pvc_monitoring_enabled) if event_patterns is not None: pulumi.set(__self__, "event_patterns", event_patterns) if filter_events is not None: pulumi.set(__self__, "filter_events", filter_events) if include_all_fdi_events is not None: pulumi.set(__self__, "include_all_fdi_events", include_all_fdi_events) + if pvc_monitoring_enabled is not None: + warnings.warn("""This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details.""", DeprecationWarning) + pulumi.log.warn("""pvc_monitoring_enabled is deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details.""") + if pvc_monitoring_enabled is not None: + pulumi.set(__self__, "pvc_monitoring_enabled", pvc_monitoring_enabled) if scope is not None: pulumi.set(__self__, "scope", scope) @@ -107,18 +111,6 @@ def open_metrics_pipeline_enabled(self) -> pulumi.Input[bool]: def open_metrics_pipeline_enabled(self, value: pulumi.Input[bool]): pulumi.set(self, "open_metrics_pipeline_enabled", value) - @property - @pulumi.getter(name="pvcMonitoringEnabled") - def pvc_monitoring_enabled(self) -> pulumi.Input[bool]: - """ - To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. - """ - return pulumi.get(self, "pvc_monitoring_enabled") - - @pvc_monitoring_enabled.setter - def pvc_monitoring_enabled(self, value: pulumi.Input[bool]): - pulumi.set(self, "pvc_monitoring_enabled", value) - @property @pulumi.getter(name="eventPatterns") def event_patterns(self) -> Optional[pulumi.Input['K8sMonitoringEventPatternsArgs']]: @@ -156,6 +148,19 @@ def include_all_fdi_events(self) -> Optional[pulumi.Input[bool]]: def include_all_fdi_events(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "include_all_fdi_events", value) + @property + @pulumi.getter(name="pvcMonitoringEnabled") + @_utilities.deprecated("""This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details.""") + def pvc_monitoring_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. + """ + return pulumi.get(self, "pvc_monitoring_enabled") + + @pvc_monitoring_enabled.setter + def pvc_monitoring_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "pvc_monitoring_enabled", value) + @property @pulumi.getter def scope(self) -> Optional[pulumi.Input[str]]: @@ -209,6 +214,9 @@ def __init__(__self__, *, pulumi.set(__self__, "open_metrics_builtin_enabled", open_metrics_builtin_enabled) if open_metrics_pipeline_enabled is not None: pulumi.set(__self__, "open_metrics_pipeline_enabled", open_metrics_pipeline_enabled) + if pvc_monitoring_enabled is not None: + warnings.warn("""This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details.""", DeprecationWarning) + pulumi.log.warn("""pvc_monitoring_enabled is deprecated: This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details.""") if pvc_monitoring_enabled is not None: pulumi.set(__self__, "pvc_monitoring_enabled", pvc_monitoring_enabled) if scope is not None: @@ -302,6 +310,7 @@ def open_metrics_pipeline_enabled(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="pvcMonitoringEnabled") + @_utilities.deprecated("""This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details.""") def pvc_monitoring_enabled(self) -> Optional[pulumi.Input[bool]]: """ To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. @@ -412,8 +421,6 @@ def _internal_init(__self__, if open_metrics_pipeline_enabled is None and not opts.urn: raise TypeError("Missing required property 'open_metrics_pipeline_enabled'") __props__.__dict__["open_metrics_pipeline_enabled"] = open_metrics_pipeline_enabled - if pvc_monitoring_enabled is None and not opts.urn: - raise TypeError("Missing required property 'pvc_monitoring_enabled'") __props__.__dict__["pvc_monitoring_enabled"] = pvc_monitoring_enabled __props__.__dict__["scope"] = scope super(K8sMonitoring, __self__).__init__( @@ -529,7 +536,8 @@ def open_metrics_pipeline_enabled(self) -> pulumi.Output[bool]: @property @pulumi.getter(name="pvcMonitoringEnabled") - def pvc_monitoring_enabled(self) -> pulumi.Output[bool]: + @_utilities.deprecated("""This attribute is deprecated, see [this community guide](https://dt-url.net/v2200u4m) for details.""") + def pvc_monitoring_enabled(self) -> pulumi.Output[Optional[bool]]: """ To enable dashboards and alerts, add the Kubernetes persistent volume claims extension to your environment. """ diff --git a/sdk/python/pulumiverse_dynatrace/kubernetes_spm.py b/sdk/python/pulumiverse_dynatrace/kubernetes_spm.py new file mode 100644 index 00000000..6370a4fa --- /dev/null +++ b/sdk/python/pulumiverse_dynatrace/kubernetes_spm.py @@ -0,0 +1,196 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['KubernetesSpmArgs', 'KubernetesSpm'] + +@pulumi.input_type +class KubernetesSpmArgs: + def __init__(__self__, *, + configuration_dataset_pipeline_enabled: pulumi.Input[bool], + scope: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a KubernetesSpm resource. + :param pulumi.Input[bool] configuration_dataset_pipeline_enabled: Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + :param pulumi.Input[str] scope: The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + """ + pulumi.set(__self__, "configuration_dataset_pipeline_enabled", configuration_dataset_pipeline_enabled) + if scope is not None: + pulumi.set(__self__, "scope", scope) + + @property + @pulumi.getter(name="configurationDatasetPipelineEnabled") + def configuration_dataset_pipeline_enabled(self) -> pulumi.Input[bool]: + """ + Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + """ + return pulumi.get(self, "configuration_dataset_pipeline_enabled") + + @configuration_dataset_pipeline_enabled.setter + def configuration_dataset_pipeline_enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "configuration_dataset_pipeline_enabled", value) + + @property + @pulumi.getter + def scope(self) -> Optional[pulumi.Input[str]]: + """ + The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + """ + return pulumi.get(self, "scope") + + @scope.setter + def scope(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "scope", value) + + +@pulumi.input_type +class _KubernetesSpmState: + def __init__(__self__, *, + configuration_dataset_pipeline_enabled: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering KubernetesSpm resources. + :param pulumi.Input[bool] configuration_dataset_pipeline_enabled: Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + :param pulumi.Input[str] scope: The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + """ + if configuration_dataset_pipeline_enabled is not None: + pulumi.set(__self__, "configuration_dataset_pipeline_enabled", configuration_dataset_pipeline_enabled) + if scope is not None: + pulumi.set(__self__, "scope", scope) + + @property + @pulumi.getter(name="configurationDatasetPipelineEnabled") + def configuration_dataset_pipeline_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + """ + return pulumi.get(self, "configuration_dataset_pipeline_enabled") + + @configuration_dataset_pipeline_enabled.setter + def configuration_dataset_pipeline_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "configuration_dataset_pipeline_enabled", value) + + @property + @pulumi.getter + def scope(self) -> Optional[pulumi.Input[str]]: + """ + The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + """ + return pulumi.get(self, "scope") + + @scope.setter + def scope(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "scope", value) + + +class KubernetesSpm(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + configuration_dataset_pipeline_enabled: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a KubernetesSpm resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] configuration_dataset_pipeline_enabled: Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + :param pulumi.Input[str] scope: The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: KubernetesSpmArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a KubernetesSpm resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param KubernetesSpmArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(KubernetesSpmArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + configuration_dataset_pipeline_enabled: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = KubernetesSpmArgs.__new__(KubernetesSpmArgs) + + if configuration_dataset_pipeline_enabled is None and not opts.urn: + raise TypeError("Missing required property 'configuration_dataset_pipeline_enabled'") + __props__.__dict__["configuration_dataset_pipeline_enabled"] = configuration_dataset_pipeline_enabled + __props__.__dict__["scope"] = scope + super(KubernetesSpm, __self__).__init__( + 'dynatrace:index/kubernetesSpm:KubernetesSpm', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + configuration_dataset_pipeline_enabled: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None) -> 'KubernetesSpm': + """ + Get an existing KubernetesSpm resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] configuration_dataset_pipeline_enabled: Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + :param pulumi.Input[str] scope: The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _KubernetesSpmState.__new__(_KubernetesSpmState) + + __props__.__dict__["configuration_dataset_pipeline_enabled"] = configuration_dataset_pipeline_enabled + __props__.__dict__["scope"] = scope + return KubernetesSpm(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="configurationDatasetPipelineEnabled") + def configuration_dataset_pipeline_enabled(self) -> pulumi.Output[bool]: + """ + Follow the [installation instructions](https://dt-url.net/4x23ut5) to deploy the Security Posture Management components. + """ + return pulumi.get(self, "configuration_dataset_pipeline_enabled") + + @property + @pulumi.getter + def scope(self) -> pulumi.Output[Optional[str]]: + """ + The scope of this setting (KUBERNETES_CLUSTER). Omit this property if you want to cover the whole environment. + """ + return pulumi.get(self, "scope") + diff --git a/sdk/python/pulumiverse_dynatrace/log_agent_feature_flags.py b/sdk/python/pulumiverse_dynatrace/log_agent_feature_flags.py new file mode 100644 index 00000000..430ffb73 --- /dev/null +++ b/sdk/python/pulumiverse_dynatrace/log_agent_feature_flags.py @@ -0,0 +1,196 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['LogAgentFeatureFlagsArgs', 'LogAgentFeatureFlags'] + +@pulumi.input_type +class LogAgentFeatureFlagsArgs: + def __init__(__self__, *, + new_container_log_detector: pulumi.Input[bool], + scope: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a LogAgentFeatureFlags resource. + :param pulumi.Input[bool] new_container_log_detector: Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + :param pulumi.Input[str] scope: The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + """ + pulumi.set(__self__, "new_container_log_detector", new_container_log_detector) + if scope is not None: + pulumi.set(__self__, "scope", scope) + + @property + @pulumi.getter(name="newContainerLogDetector") + def new_container_log_detector(self) -> pulumi.Input[bool]: + """ + Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + """ + return pulumi.get(self, "new_container_log_detector") + + @new_container_log_detector.setter + def new_container_log_detector(self, value: pulumi.Input[bool]): + pulumi.set(self, "new_container_log_detector", value) + + @property + @pulumi.getter + def scope(self) -> Optional[pulumi.Input[str]]: + """ + The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + """ + return pulumi.get(self, "scope") + + @scope.setter + def scope(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "scope", value) + + +@pulumi.input_type +class _LogAgentFeatureFlagsState: + def __init__(__self__, *, + new_container_log_detector: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering LogAgentFeatureFlags resources. + :param pulumi.Input[bool] new_container_log_detector: Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + :param pulumi.Input[str] scope: The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + """ + if new_container_log_detector is not None: + pulumi.set(__self__, "new_container_log_detector", new_container_log_detector) + if scope is not None: + pulumi.set(__self__, "scope", scope) + + @property + @pulumi.getter(name="newContainerLogDetector") + def new_container_log_detector(self) -> Optional[pulumi.Input[bool]]: + """ + Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + """ + return pulumi.get(self, "new_container_log_detector") + + @new_container_log_detector.setter + def new_container_log_detector(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_container_log_detector", value) + + @property + @pulumi.getter + def scope(self) -> Optional[pulumi.Input[str]]: + """ + The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + """ + return pulumi.get(self, "scope") + + @scope.setter + def scope(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "scope", value) + + +class LogAgentFeatureFlags(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + new_container_log_detector: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a LogAgentFeatureFlags resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] new_container_log_detector: Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + :param pulumi.Input[str] scope: The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: LogAgentFeatureFlagsArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a LogAgentFeatureFlags resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param LogAgentFeatureFlagsArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(LogAgentFeatureFlagsArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + new_container_log_detector: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = LogAgentFeatureFlagsArgs.__new__(LogAgentFeatureFlagsArgs) + + if new_container_log_detector is None and not opts.urn: + raise TypeError("Missing required property 'new_container_log_detector'") + __props__.__dict__["new_container_log_detector"] = new_container_log_detector + __props__.__dict__["scope"] = scope + super(LogAgentFeatureFlags, __self__).__init__( + 'dynatrace:index/logAgentFeatureFlags:LogAgentFeatureFlags', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + new_container_log_detector: Optional[pulumi.Input[bool]] = None, + scope: Optional[pulumi.Input[str]] = None) -> 'LogAgentFeatureFlags': + """ + Get an existing LogAgentFeatureFlags resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] new_container_log_detector: Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + :param pulumi.Input[str] scope: The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _LogAgentFeatureFlagsState.__new__(_LogAgentFeatureFlagsState) + + __props__.__dict__["new_container_log_detector"] = new_container_log_detector + __props__.__dict__["scope"] = scope + return LogAgentFeatureFlags(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="newContainerLogDetector") + def new_container_log_detector(self) -> pulumi.Output[bool]: + """ + Enable Log Agent to use new container log detector. Please do not turn it off once enabled. For more details, check our [documentation](https://dt-url.net/jn02ey0). + """ + return pulumi.get(self, "new_container_log_detector") + + @property + @pulumi.getter + def scope(self) -> pulumi.Output[Optional[str]]: + """ + The scope of this setting (HOST, KUBERNETES*CLUSTER, HOST*GROUP). Omit this property if you want to cover the whole environment. + """ + return pulumi.get(self, "scope") + diff --git a/sdk/python/pulumiverse_dynatrace/outputs.py b/sdk/python/pulumiverse_dynatrace/outputs.py index bb0dcbbb..4925794d 100644 --- a/sdk/python/pulumiverse_dynatrace/outputs.py +++ b/sdk/python/pulumiverse_dynatrace/outputs.py @@ -5487,7 +5487,9 @@ class AutomationWorkflowTasksTask(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "withItems": + if key == "waitBefore": + suggest = "wait_before" + elif key == "withItems": suggest = "with_items" if suggest: @@ -5512,6 +5514,7 @@ def __init__(__self__, *, position: Optional['outputs.AutomationWorkflowTasksTaskPosition'] = None, retry: Optional['outputs.AutomationWorkflowTasksTaskRetry'] = None, timeout: Optional[str] = None, + wait_before: Optional[str] = None, with_items: Optional[str] = None): """ :param str action: Currently known and supported values are `dynatrace.automations:http-function`, `dynatrace.automations:run-javascript` and `dynatrace.automations:execute-dql-query` @@ -5524,6 +5527,7 @@ def __init__(__self__, *, :param 'AutomationWorkflowTasksTaskPositionArgs' position: Layouting information about the task tile when visualized. If not specified Dynatrace will position the task tiles automatically :param 'AutomationWorkflowTasksTaskRetryArgs' retry: Configure whether to automatically rerun the task on failure. If not specified no retries will be attempted :param str timeout: Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800 + :param str wait_before: Specifies a default task wait before in seconds. 0 is used when not set :param str with_items: Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}` """ pulumi.set(__self__, "action", action) @@ -5544,6 +5548,8 @@ def __init__(__self__, *, pulumi.set(__self__, "retry", retry) if timeout is not None: pulumi.set(__self__, "timeout", timeout) + if wait_before is not None: + pulumi.set(__self__, "wait_before", wait_before) if with_items is not None: pulumi.set(__self__, "with_items", with_items) @@ -5627,6 +5633,14 @@ def timeout(self) -> Optional[str]: """ return pulumi.get(self, "timeout") + @property + @pulumi.getter(name="waitBefore") + def wait_before(self) -> Optional[str]: + """ + Specifies a default task wait before in seconds. 0 is used when not set + """ + return pulumi.get(self, "wait_before") + @property @pulumi.getter(name="withItems") def with_items(self) -> Optional[str]: diff --git a/sdk/python/pulumiverse_dynatrace/problem_record_propagation_rules.py b/sdk/python/pulumiverse_dynatrace/problem_record_propagation_rules.py new file mode 100644 index 00000000..ccee2662 --- /dev/null +++ b/sdk/python/pulumiverse_dynatrace/problem_record_propagation_rules.py @@ -0,0 +1,245 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['ProblemRecordPropagationRulesArgs', 'ProblemRecordPropagationRules'] + +@pulumi.input_type +class ProblemRecordPropagationRulesArgs: + def __init__(__self__, *, + enabled: pulumi.Input[bool], + source_attribute_key: pulumi.Input[str], + target_attribute_key: pulumi.Input[str]): + """ + The set of arguments for constructing a ProblemRecordPropagationRules resource. + :param pulumi.Input[bool] enabled: This setting is enabled (`true`) or disabled (`false`) + :param pulumi.Input[str] source_attribute_key: Attribute key from the event that will be propagated. + :param pulumi.Input[str] target_attribute_key: Attribute key under which the propagated event data will be stored on the problem. + """ + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "source_attribute_key", source_attribute_key) + pulumi.set(__self__, "target_attribute_key", target_attribute_key) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Input[bool]: + """ + This setting is enabled (`true`) or disabled (`false`) + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="sourceAttributeKey") + def source_attribute_key(self) -> pulumi.Input[str]: + """ + Attribute key from the event that will be propagated. + """ + return pulumi.get(self, "source_attribute_key") + + @source_attribute_key.setter + def source_attribute_key(self, value: pulumi.Input[str]): + pulumi.set(self, "source_attribute_key", value) + + @property + @pulumi.getter(name="targetAttributeKey") + def target_attribute_key(self) -> pulumi.Input[str]: + """ + Attribute key under which the propagated event data will be stored on the problem. + """ + return pulumi.get(self, "target_attribute_key") + + @target_attribute_key.setter + def target_attribute_key(self, value: pulumi.Input[str]): + pulumi.set(self, "target_attribute_key", value) + + +@pulumi.input_type +class _ProblemRecordPropagationRulesState: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + source_attribute_key: Optional[pulumi.Input[str]] = None, + target_attribute_key: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ProblemRecordPropagationRules resources. + :param pulumi.Input[bool] enabled: This setting is enabled (`true`) or disabled (`false`) + :param pulumi.Input[str] source_attribute_key: Attribute key from the event that will be propagated. + :param pulumi.Input[str] target_attribute_key: Attribute key under which the propagated event data will be stored on the problem. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if source_attribute_key is not None: + pulumi.set(__self__, "source_attribute_key", source_attribute_key) + if target_attribute_key is not None: + pulumi.set(__self__, "target_attribute_key", target_attribute_key) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + This setting is enabled (`true`) or disabled (`false`) + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="sourceAttributeKey") + def source_attribute_key(self) -> Optional[pulumi.Input[str]]: + """ + Attribute key from the event that will be propagated. + """ + return pulumi.get(self, "source_attribute_key") + + @source_attribute_key.setter + def source_attribute_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_attribute_key", value) + + @property + @pulumi.getter(name="targetAttributeKey") + def target_attribute_key(self) -> Optional[pulumi.Input[str]]: + """ + Attribute key under which the propagated event data will be stored on the problem. + """ + return pulumi.get(self, "target_attribute_key") + + @target_attribute_key.setter + def target_attribute_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "target_attribute_key", value) + + +class ProblemRecordPropagationRules(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + enabled: Optional[pulumi.Input[bool]] = None, + source_attribute_key: Optional[pulumi.Input[str]] = None, + target_attribute_key: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a ProblemRecordPropagationRules resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] enabled: This setting is enabled (`true`) or disabled (`false`) + :param pulumi.Input[str] source_attribute_key: Attribute key from the event that will be propagated. + :param pulumi.Input[str] target_attribute_key: Attribute key under which the propagated event data will be stored on the problem. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ProblemRecordPropagationRulesArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a ProblemRecordPropagationRules resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param ProblemRecordPropagationRulesArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ProblemRecordPropagationRulesArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + enabled: Optional[pulumi.Input[bool]] = None, + source_attribute_key: Optional[pulumi.Input[str]] = None, + target_attribute_key: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ProblemRecordPropagationRulesArgs.__new__(ProblemRecordPropagationRulesArgs) + + if enabled is None and not opts.urn: + raise TypeError("Missing required property 'enabled'") + __props__.__dict__["enabled"] = enabled + if source_attribute_key is None and not opts.urn: + raise TypeError("Missing required property 'source_attribute_key'") + __props__.__dict__["source_attribute_key"] = source_attribute_key + if target_attribute_key is None and not opts.urn: + raise TypeError("Missing required property 'target_attribute_key'") + __props__.__dict__["target_attribute_key"] = target_attribute_key + super(ProblemRecordPropagationRules, __self__).__init__( + 'dynatrace:index/problemRecordPropagationRules:ProblemRecordPropagationRules', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + enabled: Optional[pulumi.Input[bool]] = None, + source_attribute_key: Optional[pulumi.Input[str]] = None, + target_attribute_key: Optional[pulumi.Input[str]] = None) -> 'ProblemRecordPropagationRules': + """ + Get an existing ProblemRecordPropagationRules resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] enabled: This setting is enabled (`true`) or disabled (`false`) + :param pulumi.Input[str] source_attribute_key: Attribute key from the event that will be propagated. + :param pulumi.Input[str] target_attribute_key: Attribute key under which the propagated event data will be stored on the problem. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ProblemRecordPropagationRulesState.__new__(_ProblemRecordPropagationRulesState) + + __props__.__dict__["enabled"] = enabled + __props__.__dict__["source_attribute_key"] = source_attribute_key + __props__.__dict__["target_attribute_key"] = target_attribute_key + return ProblemRecordPropagationRules(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Output[bool]: + """ + This setting is enabled (`true`) or disabled (`false`) + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="sourceAttributeKey") + def source_attribute_key(self) -> pulumi.Output[str]: + """ + Attribute key from the event that will be propagated. + """ + return pulumi.get(self, "source_attribute_key") + + @property + @pulumi.getter(name="targetAttributeKey") + def target_attribute_key(self) -> pulumi.Output[str]: + """ + Attribute key under which the propagated event data will be stored on the problem. + """ + return pulumi.get(self, "target_attribute_key") +