published on Thursday, Jun 25, 2026 by Pulumiverse
published on Thursday, Jun 25, 2026 by Pulumiverse
This resource requires the API token scopes Read settings (
settings.read) and Write settings (settings.write)
This resource requires the OAuth scopes Read settings (
settings:objects:read) and Write settings (settings:objects:write)
Requirements
This resource uses service account impersonation, which requires the Dynatrace GCP Principal to be granted the roles/iam.serviceAccountTokenCreator role on the impersonated service account.
Use the dynatrace.GcpPrincipal resource to provision the Dynatrace GCP Principal and grant it access before creating the connection.
A full example of how to set this up can be found in the Resource Example Usage section below.
Limitations
If you are creating the dynatrace.GcpConnection and the IAM binding that grants the Dynatrace GCP Principal access to the service account in the same invocation
of pulumi up, be aware that due to eventual consistency in GCP, the IAM policy change might not be fully propagated
when the dynatrace.GcpConnection resource is being created. To mitigate this, we retry the creation of the dynatrace.GcpConnection resource
with a default timeout of 2 minutes.
If you desire a different timeout, you can adjust it using the timeouts block in the dynatrace.GcpConnection resource.
The following is an example of the error you might encounter due to this limitation:
GCP authentication failed
Warning If a resource is created using an API token or without setting
DYNATRACE_HTTP_OAUTH_PREFERENCE=true(when both are used), the settings object’s owner will remain empty.
An empty owner implies:
- The settings object becomes public, allowing other users with settings permissions to read and modify it.
- Changing the settings object’s permissions will have no effect, meaning the
dynatrace.SettingsPermissionsresource can’t alter its access.
When a settings object is created using platform credentials:
- The owner is set to the owner of the OAuth client or platform token.
- By default, the settings object is private; only the owner can read and modify it.
- Access modifiers can be managed using the
dynatrace.SettingsPermissionsresource.
We recommend using platform credentials to ensure a correct setup.
In case an API token is needed, we recommend setting DYNATRACE_HTTP_OAUTH_PREFERENCE=true.
Dynatrace Documentation
- Settings API - https://www.dynatrace.com/support/help/dynatrace-api/environment-api/settings (schemaId:
builtin:hyperscaler-authentication.connections.gcp)
Export Example Usage
terraform-provider-dynatrace -export dynatrace.GcpConnectiondownloads all existing GCP connections.
The full documentation of the export feature is available here.
Resource Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as dynatrace from "@pulumiverse/dynatrace";
import * as gcp from "@pulumi/gcp";
const config = new pulumi.Config();
// The Google Cloud Platform project ID
const gcpProjectId = config.require("gcpProjectId");
// Create a Service Account in GCP
const impersonableServiceAccount = new gcp.serviceaccount.Account("impersonable_service_account", {
accountId: "test-service-account",
displayName: "Test Service Account",
});
// Provision the DT GCP Principal. This resource takes no input; it triggers creation of the
// Dynatrace-managed principal (a singleton) and exposes it via the `principal` attribute.
const principal = new dynatrace.GcpPrincipal("principal", {});
// Grant DT GCP Principal access to the service account
const wifBinding = new gcp.serviceaccount.IAMMember("wif_binding", {
serviceAccountId: impersonableServiceAccount.name,
member: pulumi.interpolate`serviceAccount:${principal.principal}`,
role: "roles/iam.serviceAccountTokenCreator",
});
// Create GCP connection
const myGcpConnection = new dynatrace.GcpConnection("my_gcp_connection", {
name: "My Gcp Connection",
type: "serviceAccountImpersonation",
serviceAccountImpersonation: {
serviceAccountId: impersonableServiceAccount.email,
consumers: ["SVC:com.dynatrace.da"],
},
}, {
dependsOn: [wifBinding],
});
import pulumi
import pulumi_gcp as gcp
import pulumiverse_dynatrace as dynatrace
config = pulumi.Config()
# The Google Cloud Platform project ID
gcp_project_id = config.require("gcpProjectId")
# Create a Service Account in GCP
impersonable_service_account = gcp.serviceaccount.Account("impersonable_service_account",
account_id="test-service-account",
display_name="Test Service Account")
# Provision the DT GCP Principal. This resource takes no input; it triggers creation of the
# Dynatrace-managed principal (a singleton) and exposes it via the `principal` attribute.
principal = dynatrace.GcpPrincipal("principal")
# Grant DT GCP Principal access to the service account
wif_binding = gcp.serviceaccount.IAMMember("wif_binding",
service_account_id=impersonable_service_account.name,
member=principal.principal.apply(lambda principal: f"serviceAccount:{principal}"),
role="roles/iam.serviceAccountTokenCreator")
# Create GCP connection
my_gcp_connection = dynatrace.GcpConnection("my_gcp_connection",
name="My Gcp Connection",
type="serviceAccountImpersonation",
service_account_impersonation={
"service_account_id": impersonable_service_account.email,
"consumers": ["SVC:com.dynatrace.da"],
},
opts = pulumi.ResourceOptions(depends_on=[wif_binding]))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
"github.com/pulumiverse/pulumi-dynatrace/sdk/go/dynatrace"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
// The Google Cloud Platform project ID
gcpProjectId := cfg.Require("gcpProjectId")
// Create a Service Account in GCP
impersonableServiceAccount, err := serviceaccount.NewAccount(ctx, "impersonable_service_account", &serviceaccount.AccountArgs{
AccountId: pulumi.String("test-service-account"),
DisplayName: pulumi.String("Test Service Account"),
})
if err != nil {
return err
}
// Provision the DT GCP Principal. This resource takes no input; it triggers creation of the
// Dynatrace-managed principal (a singleton) and exposes it via the `principal` attribute.
principal, err := dynatrace.NewGcpPrincipal(ctx, "principal", nil)
if err != nil {
return err
}
// Grant DT GCP Principal access to the service account
wifBinding, err := serviceaccount.NewIAMMember(ctx, "wif_binding", &serviceaccount.IAMMemberArgs{
ServiceAccountId: impersonableServiceAccount.Name,
Member: principal.Principal.ApplyT(func(principal string) (string, error) {
return fmt.Sprintf("serviceAccount:%v", principal), nil
}).(pulumi.StringOutput),
Role: pulumi.String("roles/iam.serviceAccountTokenCreator"),
})
if err != nil {
return err
}
// Create GCP connection
_, err = dynatrace.NewGcpConnection(ctx, "my_gcp_connection", &dynatrace.GcpConnectionArgs{
Name: pulumi.String("My Gcp Connection"),
Type: pulumi.String("serviceAccountImpersonation"),
ServiceAccountImpersonation: &dynatrace.GcpConnectionServiceAccountImpersonationArgs{
ServiceAccountId: impersonableServiceAccount.Email,
Consumers: pulumi.StringArray{
pulumi.String("SVC:com.dynatrace.da"),
},
},
}, pulumi.DependsOn([]pulumi.Resource{
wifBinding,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Dynatrace = Pulumiverse.Dynatrace;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var config = new Config();
// The Google Cloud Platform project ID
var gcpProjectId = config.Require("gcpProjectId");
// Create a Service Account in GCP
var impersonableServiceAccount = new Gcp.ServiceAccount.Account("impersonable_service_account", new()
{
AccountId = "test-service-account",
DisplayName = "Test Service Account",
});
// Provision the DT GCP Principal. This resource takes no input; it triggers creation of the
// Dynatrace-managed principal (a singleton) and exposes it via the `principal` attribute.
var principal = new Dynatrace.GcpPrincipal("principal");
// Grant DT GCP Principal access to the service account
var wifBinding = new Gcp.ServiceAccount.IAMMember("wif_binding", new()
{
ServiceAccountId = impersonableServiceAccount.Name,
Member = principal.Principal.Apply(principal => $"serviceAccount:{principal}"),
Role = "roles/iam.serviceAccountTokenCreator",
});
// Create GCP connection
var myGcpConnection = new Dynatrace.GcpConnection("my_gcp_connection", new()
{
Name = "My Gcp Connection",
Type = "serviceAccountImpersonation",
ServiceAccountImpersonation = new Dynatrace.Inputs.GcpConnectionServiceAccountImpersonationArgs
{
ServiceAccountId = impersonableServiceAccount.Email,
Consumers = new[]
{
"SVC:com.dynatrace.da",
},
},
}, new CustomResourceOptions
{
DependsOn =
{
wifBinding,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.dynatrace.GcpPrincipal;
import com.pulumi.gcp.serviceaccount.IAMMember;
import com.pulumi.gcp.serviceaccount.IAMMemberArgs;
import com.pulumi.dynatrace.GcpConnection;
import com.pulumi.dynatrace.GcpConnectionArgs;
import com.pulumi.dynatrace.inputs.GcpConnectionServiceAccountImpersonationArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var gcpProjectId = config.require("gcpProjectId");
// Create a Service Account in GCP
var impersonableServiceAccount = new Account("impersonableServiceAccount", AccountArgs.builder()
.accountId("test-service-account")
.displayName("Test Service Account")
.build());
// Provision the DT GCP Principal. This resource takes no input; it triggers creation of the
// Dynatrace-managed principal (a singleton) and exposes it via the `principal` attribute.
var principal = new GcpPrincipal("principal");
// Grant DT GCP Principal access to the service account
var wifBinding = new IAMMember("wifBinding", IAMMemberArgs.builder()
.serviceAccountId(impersonableServiceAccount.name())
.member(principal.principal().applyValue(_principal -> String.format("serviceAccount:%s", _principal)))
.role("roles/iam.serviceAccountTokenCreator")
.build());
// Create GCP connection
var myGcpConnection = new GcpConnection("myGcpConnection", GcpConnectionArgs.builder()
.name("My Gcp Connection")
.type("serviceAccountImpersonation")
.serviceAccountImpersonation(GcpConnectionServiceAccountImpersonationArgs.builder()
.serviceAccountId(impersonableServiceAccount.email())
.consumers("SVC:com.dynatrace.da")
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(wifBinding)
.build());
}
}
configuration:
gcpProjectId:
type: string
resources:
# Create a Service Account in GCP
impersonableServiceAccount:
type: gcp:serviceaccount:Account
name: impersonable_service_account
properties:
accountId: test-service-account
displayName: Test Service Account
# Provision the DT GCP Principal. This resource takes no input; it triggers creation of the
# Dynatrace-managed principal (a singleton) and exposes it via the `principal` attribute.
principal:
type: dynatrace:GcpPrincipal
# Grant DT GCP Principal access to the service account
wifBinding:
type: gcp:serviceaccount:IAMMember
name: wif_binding
properties:
serviceAccountId: ${impersonableServiceAccount.name}
member: serviceAccount:${principal.principal}
role: roles/iam.serviceAccountTokenCreator
# Create GCP connection
myGcpConnection:
type: dynatrace:GcpConnection
name: my_gcp_connection
properties:
name: My Gcp Connection
type: serviceAccountImpersonation
serviceAccountImpersonation:
serviceAccountId: ${impersonableServiceAccount.email}
consumers:
- SVC:com.dynatrace.da
options:
dependsOn:
- ${wifBinding}
pulumi {
required_providers {
dynatrace = {
source = "pulumi/dynatrace"
}
gcp = {
source = "pulumi/gcp"
}
}
}
# Create a Service Account in GCP
resource "gcp_serviceaccount_account" "impersonable_service_account" {
account_id = "test-service-account"
display_name = "Test Service Account"
}
# Provision the DT GCP Principal. This resource takes no input; it triggers creation of the
# Dynatrace-managed principal (a singleton) and exposes it via the `principal` attribute.
resource "dynatrace_gcpprincipal" "principal" {
}
# Grant DT GCP Principal access to the service account
resource "gcp_serviceaccount_iammember" "wif_binding" {
service_account_id = gcp_serviceaccount_account.impersonable_service_account.name
member ="serviceAccount:${dynatrace_gcpprincipal.principal.principal}"
role = "roles/iam.serviceAccountTokenCreator"
}
# Create GCP connection
resource "dynatrace_gcpconnection" "my_gcp_connection" {
depends_on = [gcp_serviceaccount_iammember.wif_binding]
name = "My Gcp Connection"
type = "serviceAccountImpersonation"
service_account_impersonation = {
service_account_id = gcp_serviceaccount_account.impersonable_service_account.email
consumers = ["SVC:com.dynatrace.da"]
}
}
variable "gcpProjectId" {
type = string
description = "The Google Cloud Platform project ID"
}
Create GcpConnection Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new GcpConnection(name: string, args: GcpConnectionArgs, opts?: CustomResourceOptions);@overload
def GcpConnection(resource_name: str,
args: GcpConnectionArgs,
opts: Optional[ResourceOptions] = None)
@overload
def GcpConnection(resource_name: str,
opts: Optional[ResourceOptions] = None,
type: Optional[str] = None,
name: Optional[str] = None,
service_account_impersonation: Optional[GcpConnectionServiceAccountImpersonationArgs] = None)func NewGcpConnection(ctx *Context, name string, args GcpConnectionArgs, opts ...ResourceOption) (*GcpConnection, error)public GcpConnection(string name, GcpConnectionArgs args, CustomResourceOptions? opts = null)
public GcpConnection(String name, GcpConnectionArgs args)
public GcpConnection(String name, GcpConnectionArgs args, CustomResourceOptions options)
type: dynatrace:GcpConnection
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "dynatrace_gcpconnection" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args GcpConnectionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args GcpConnectionArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args GcpConnectionArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args GcpConnectionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args GcpConnectionArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var gcpConnectionResource = new Dynatrace.GcpConnection("gcpConnectionResource", new()
{
Type = "string",
Name = "string",
ServiceAccountImpersonation = new Dynatrace.Inputs.GcpConnectionServiceAccountImpersonationArgs
{
ServiceAccountId = "string",
Consumers = new[]
{
"string",
},
},
});
example, err := dynatrace.NewGcpConnection(ctx, "gcpConnectionResource", &dynatrace.GcpConnectionArgs{
Type: pulumi.String("string"),
Name: pulumi.String("string"),
ServiceAccountImpersonation: &dynatrace.GcpConnectionServiceAccountImpersonationArgs{
ServiceAccountId: pulumi.String("string"),
Consumers: pulumi.StringArray{
pulumi.String("string"),
},
},
})
resource "dynatrace_gcpconnection" "gcpConnectionResource" {
type = "string"
name = "string"
service_account_impersonation = {
service_account_id = "string"
consumers = ["string"]
}
}
var gcpConnectionResource = new GcpConnection("gcpConnectionResource", GcpConnectionArgs.builder()
.type("string")
.name("string")
.serviceAccountImpersonation(GcpConnectionServiceAccountImpersonationArgs.builder()
.serviceAccountId("string")
.consumers("string")
.build())
.build());
gcp_connection_resource = dynatrace.GcpConnection("gcpConnectionResource",
type="string",
name="string",
service_account_impersonation={
"service_account_id": "string",
"consumers": ["string"],
})
const gcpConnectionResource = new dynatrace.GcpConnection("gcpConnectionResource", {
type: "string",
name: "string",
serviceAccountImpersonation: {
serviceAccountId: "string",
consumers: ["string"],
},
});
type: dynatrace:GcpConnection
properties:
name: string
serviceAccountImpersonation:
consumers:
- string
serviceAccountId: string
type: string
GcpConnection Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The GcpConnection resource accepts the following input properties:
- Type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation - Name string
- The name of the connection
- Service
Account Pulumiverse.Impersonation Dynatrace. Inputs. Gcp Connection Service Account Impersonation - No documentation available
- Type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation - Name string
- The name of the connection
- Service
Account GcpImpersonation Connection Service Account Impersonation Args - No documentation available
- type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation - name string
- The name of the connection
- service_
account_ objectimpersonation - No documentation available
- type String
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation - name String
- The name of the connection
- service
Account GcpImpersonation Connection Service Account Impersonation - No documentation available
- type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation - name string
- The name of the connection
- service
Account GcpImpersonation Connection Service Account Impersonation - No documentation available
- type str
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation - name str
- The name of the connection
- service_
account_ Gcpimpersonation Connection Service Account Impersonation Args - No documentation available
- type String
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation - name String
- The name of the connection
- service
Account Property MapImpersonation - No documentation available
Outputs
All input properties are implicitly available as output properties. Additionally, the GcpConnection resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing GcpConnection Resource
Get an existing GcpConnection resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: GcpConnectionState, opts?: CustomResourceOptions): GcpConnection@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
name: Optional[str] = None,
service_account_impersonation: Optional[GcpConnectionServiceAccountImpersonationArgs] = None,
type: Optional[str] = None) -> GcpConnectionfunc GetGcpConnection(ctx *Context, name string, id IDInput, state *GcpConnectionState, opts ...ResourceOption) (*GcpConnection, error)public static GcpConnection Get(string name, Input<string> id, GcpConnectionState? state, CustomResourceOptions? opts = null)public static GcpConnection get(String name, Output<String> id, GcpConnectionState state, CustomResourceOptions options)resources: _: type: dynatrace:GcpConnection get: id: ${id}import {
to = dynatrace_gcpconnection.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Name string
- The name of the connection
- Service
Account Pulumiverse.Impersonation Dynatrace. Inputs. Gcp Connection Service Account Impersonation - No documentation available
- Type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation
- Name string
- The name of the connection
- Service
Account GcpImpersonation Connection Service Account Impersonation Args - No documentation available
- Type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation
- name string
- The name of the connection
- service_
account_ objectimpersonation - No documentation available
- type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation
- name String
- The name of the connection
- service
Account GcpImpersonation Connection Service Account Impersonation - No documentation available
- type String
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation
- name string
- The name of the connection
- service
Account GcpImpersonation Connection Service Account Impersonation - No documentation available
- type string
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation
- name str
- The name of the connection
- service_
account_ Gcpimpersonation Connection Service Account Impersonation Args - No documentation available
- type str
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation
- name String
- The name of the connection
- service
Account Property MapImpersonation - No documentation available
- type String
- GCP Authentication mechanism to be used by the connection. Possible values:
serviceAccountImpersonation
Supporting Types
GcpConnectionServiceAccountImpersonation, GcpConnectionServiceAccountImpersonationArgs
- Service
Account stringId - Id of your Service Account
- Consumers List<string>
- Dynatrace integrations that can use this connection. Possible values:
SVC:com.dynatrace.bo,SVC:com.dynatrace.da,SVC:com.dynatrace.openpipeline
- Service
Account stringId - Id of your Service Account
- Consumers []string
- Dynatrace integrations that can use this connection. Possible values:
SVC:com.dynatrace.bo,SVC:com.dynatrace.da,SVC:com.dynatrace.openpipeline
- service_
account_ stringid - Id of your Service Account
- consumers list(string)
- Dynatrace integrations that can use this connection. Possible values:
SVC:com.dynatrace.bo,SVC:com.dynatrace.da,SVC:com.dynatrace.openpipeline
- service
Account StringId - Id of your Service Account
- consumers List<String>
- Dynatrace integrations that can use this connection. Possible values:
SVC:com.dynatrace.bo,SVC:com.dynatrace.da,SVC:com.dynatrace.openpipeline
- service
Account stringId - Id of your Service Account
- consumers string[]
- Dynatrace integrations that can use this connection. Possible values:
SVC:com.dynatrace.bo,SVC:com.dynatrace.da,SVC:com.dynatrace.openpipeline
- service_
account_ strid - Id of your Service Account
- consumers Sequence[str]
- Dynatrace integrations that can use this connection. Possible values:
SVC:com.dynatrace.bo,SVC:com.dynatrace.da,SVC:com.dynatrace.openpipeline
- service
Account StringId - Id of your Service Account
- consumers List<String>
- Dynatrace integrations that can use this connection. Possible values:
SVC:com.dynatrace.bo,SVC:com.dynatrace.da,SVC:com.dynatrace.openpipeline
Package Details
- Repository
- dynatrace pulumiverse/pulumi-dynatrace
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
dynatraceTerraform Provider.
published on Thursday, Jun 25, 2026 by Pulumiverse