1. Packages
  2. Packages
  3. Dynatrace
  4. API Docs
  5. getIamServiceUser
Viewing docs for Dynatrace v0.37.0
published on Tuesday, Jun 23, 2026 by Pulumiverse
dynatrace logo
Viewing docs for Dynatrace v0.37.0
published on Tuesday, Jun 23, 2026 by Pulumiverse

    Dynatrace SaaS only

    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 permission: Allow read access for identity resources (users and groups) (account-idm-read).

    This data source allows you to query a service user by ID, name, or email address. Note: as the name of a service user is not necessarily unique, the data source will produce an error if two or more service users exist with the specified name.

    Example Usage

    Query a service user by name:

    import * as pulumi from "@pulumi/pulumi";
    import * as dynatrace from "@pulumiverse/dynatrace";
    
    export = async () => {
        const testServiceUser = await dynatrace.getIamServiceUser({
            name: "test",
        });
        return {
            testServiceUser: testServiceUser,
        };
    }
    
    import pulumi
    import pulumi_dynatrace as dynatrace
    
    test_service_user = dynatrace.get_iam_service_user(name="test")
    pulumi.export("testServiceUser", test_service_user)
    
    package main
    
    import (
    	"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 {
    		testServiceUser, err := dynatrace.GetIamServiceUser(ctx, &dynatrace.LookupIamServiceUserArgs{
    			Name: pulumi.StringRef("test"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("testServiceUser", testServiceUser)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Dynatrace = Pulumiverse.Dynatrace;
    
    return await Deployment.RunAsync(() => 
    {
        var testServiceUser = Dynatrace.GetIamServiceUser.Invoke(new()
        {
            Name = "test",
        });
    
        return new Dictionary<string, object?>
        {
            ["testServiceUser"] = testServiceUser,
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.dynatrace.DynatraceFunctions;
    import com.pulumi.dynatrace.inputs.GetIamServiceUserArgs;
    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 testServiceUser = DynatraceFunctions.getIamServiceUser(GetIamServiceUserArgs.builder()
                .name("test")
                .build());
    
            ctx.export("testServiceUser", testServiceUser);
        }
    }
    
    variables:
      testServiceUser:
        fn::invoke:
          function: dynatrace:getIamServiceUser
          arguments:
            name: test
    outputs:
      testServiceUser: ${testServiceUser}
    
    pulumi {
      required_providers {
        dynatrace = {
          source = "pulumi/dynatrace"
        }
      }
    }
    
    data "dynatrace_getiamserviceuser" "testServiceUser" {
      name = "test"
    }
    
    output "testServiceUser" {
      value = data.dynatrace_getiamserviceuser.testServiceUser
    }
    

    Query a service user by ID:

    import * as pulumi from "@pulumi/pulumi";
    import * as dynatrace from "@pulumiverse/dynatrace";
    
    export = async () => {
        const testServiceUser = await dynatrace.getIamServiceUser({
            id: "12345678-90ab-cdef-1234-567890abcdef",
        });
        return {
            testServiceUser: testServiceUser,
        };
    }
    
    import pulumi
    import pulumi_dynatrace as dynatrace
    
    test_service_user = dynatrace.get_iam_service_user(id="12345678-90ab-cdef-1234-567890abcdef")
    pulumi.export("testServiceUser", test_service_user)
    
    package main
    
    import (
    	"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 {
    		testServiceUser, err := dynatrace.GetIamServiceUser(ctx, &dynatrace.LookupIamServiceUserArgs{
    			Id: pulumi.StringRef("12345678-90ab-cdef-1234-567890abcdef"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("testServiceUser", testServiceUser)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Dynatrace = Pulumiverse.Dynatrace;
    
    return await Deployment.RunAsync(() => 
    {
        var testServiceUser = Dynatrace.GetIamServiceUser.Invoke(new()
        {
            Id = "12345678-90ab-cdef-1234-567890abcdef",
        });
    
        return new Dictionary<string, object?>
        {
            ["testServiceUser"] = testServiceUser,
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.dynatrace.DynatraceFunctions;
    import com.pulumi.dynatrace.inputs.GetIamServiceUserArgs;
    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 testServiceUser = DynatraceFunctions.getIamServiceUser(GetIamServiceUserArgs.builder()
                .id("12345678-90ab-cdef-1234-567890abcdef")
                .build());
    
            ctx.export("testServiceUser", testServiceUser);
        }
    }
    
    variables:
      testServiceUser:
        fn::invoke:
          function: dynatrace:getIamServiceUser
          arguments:
            id: 12345678-90ab-cdef-1234-567890abcdef
    outputs:
      testServiceUser: ${testServiceUser}
    
    pulumi {
      required_providers {
        dynatrace = {
          source = "pulumi/dynatrace"
        }
      }
    }
    
    data "dynatrace_getiamserviceuser" "testServiceUser" {
      id = "12345678-90ab-cdef-1234-567890abcdef"
    }
    
    output "testServiceUser" {
      value = data.dynatrace_getiamserviceuser.testServiceUser
    }
    

    Query a service user by email:

    import * as pulumi from "@pulumi/pulumi";
    import * as dynatrace from "@pulumiverse/dynatrace";
    
    export = async () => {
        const testServiceUser = await dynatrace.getIamServiceUser({
            email: "12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com",
        });
        return {
            testServiceUser: testServiceUser,
        };
    }
    
    import pulumi
    import pulumi_dynatrace as dynatrace
    
    test_service_user = dynatrace.get_iam_service_user(email="12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com")
    pulumi.export("testServiceUser", test_service_user)
    
    package main
    
    import (
    	"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 {
    		testServiceUser, err := dynatrace.GetIamServiceUser(ctx, &dynatrace.LookupIamServiceUserArgs{
    			Email: pulumi.StringRef("12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("testServiceUser", testServiceUser)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Dynatrace = Pulumiverse.Dynatrace;
    
    return await Deployment.RunAsync(() => 
    {
        var testServiceUser = Dynatrace.GetIamServiceUser.Invoke(new()
        {
            Email = "12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com",
        });
    
        return new Dictionary<string, object?>
        {
            ["testServiceUser"] = testServiceUser,
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.dynatrace.DynatraceFunctions;
    import com.pulumi.dynatrace.inputs.GetIamServiceUserArgs;
    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 testServiceUser = DynatraceFunctions.getIamServiceUser(GetIamServiceUserArgs.builder()
                .email("12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com")
                .build());
    
            ctx.export("testServiceUser", testServiceUser);
        }
    }
    
    variables:
      testServiceUser:
        fn::invoke:
          function: dynatrace:getIamServiceUser
          arguments:
            email: 12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com
    outputs:
      testServiceUser: ${testServiceUser}
    
    pulumi {
      required_providers {
        dynatrace = {
          source = "pulumi/dynatrace"
        }
      }
    }
    
    data "dynatrace_getiamserviceuser" "testServiceUser" {
      email = "12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com"
    }
    
    output "testServiceUser" {
      value = data.dynatrace_getiamserviceuser.testServiceUser
    }
    

    Example Output

    test_service_user = {
      "description" = "Test service user"
      "email" = "12345678-90ab-cdef-1234-567890abcdef@service.sso.dynatrace.com"
      "groups" = tolist([
        "abcdef12-3456-7890-abcd-ef1234567890",
      ])
      "id" = "12345678-90ab-cdef-1234-567890abcdef"
      "name" = "test"
    }
    

    Using getIamServiceUser

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getIamServiceUser(args: GetIamServiceUserArgs, opts?: InvokeOptions): Promise<GetIamServiceUserResult>
    function getIamServiceUserOutput(args: GetIamServiceUserOutputArgs, opts?: InvokeOptions): Output<GetIamServiceUserResult>
    def get_iam_service_user(email: Optional[str] = None,
                             id: Optional[str] = None,
                             name: Optional[str] = None,
                             opts: Optional[InvokeOptions] = None) -> GetIamServiceUserResult
    def get_iam_service_user_output(email: pulumi.Input[Optional[str]] = None,
                             id: pulumi.Input[Optional[str]] = None,
                             name: pulumi.Input[Optional[str]] = None,
                             opts: Optional[InvokeOptions] = None) -> Output[GetIamServiceUserResult]
    func LookupIamServiceUser(ctx *Context, args *LookupIamServiceUserArgs, opts ...InvokeOption) (*LookupIamServiceUserResult, error)
    func LookupIamServiceUserOutput(ctx *Context, args *LookupIamServiceUserOutputArgs, opts ...InvokeOption) LookupIamServiceUserResultOutput

    > Note: This function is named LookupIamServiceUser in the Go SDK.

    public static class GetIamServiceUser 
    {
        public static Task<GetIamServiceUserResult> InvokeAsync(GetIamServiceUserArgs args, InvokeOptions? opts = null)
        public static Output<GetIamServiceUserResult> Invoke(GetIamServiceUserInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetIamServiceUserResult> getIamServiceUser(GetIamServiceUserArgs args, InvokeOptions options)
    public static Output<GetIamServiceUserResult> getIamServiceUser(GetIamServiceUserArgs args, InvokeOptions options)
    
    fn::invoke:
      function: dynatrace:index/getIamServiceUser:getIamServiceUser
      arguments:
        # arguments dictionary
    data "dynatrace_getiamserviceuser" "name" {
        # arguments
    }

    The following arguments are supported:

    Email string
    The email of the service user
    Id string
    The UUID of the service user
    Name string
    The name of the service user
    Email string
    The email of the service user
    Id string
    The UUID of the service user
    Name string
    The name of the service user
    email string
    The email of the service user
    id string
    The UUID of the service user
    name string
    The name of the service user
    email String
    The email of the service user
    id String
    The UUID of the service user
    name String
    The name of the service user
    email string
    The email of the service user
    id string
    The UUID of the service user
    name string
    The name of the service user
    email str
    The email of the service user
    id str
    The UUID of the service user
    name str
    The name of the service user
    email String
    The email of the service user
    id String
    The UUID of the service user
    name String
    The name of the service user

    getIamServiceUser Result

    The following output properties are available:

    Description string
    The description of the service user
    Groups List<string>
    The UUIDs of the groups the service user belongs to
    Email string
    The email of the service user
    Id string
    The UUID of the service user
    Name string
    The name of the service user
    Description string
    The description of the service user
    Groups []string
    The UUIDs of the groups the service user belongs to
    Email string
    The email of the service user
    Id string
    The UUID of the service user
    Name string
    The name of the service user
    description string
    The description of the service user
    groups list(string)
    The UUIDs of the groups the service user belongs to
    email string
    The email of the service user
    id string
    The UUID of the service user
    name string
    The name of the service user
    description String
    The description of the service user
    groups List<String>
    The UUIDs of the groups the service user belongs to
    email String
    The email of the service user
    id String
    The UUID of the service user
    name String
    The name of the service user
    description string
    The description of the service user
    groups string[]
    The UUIDs of the groups the service user belongs to
    email string
    The email of the service user
    id string
    The UUID of the service user
    name string
    The name of the service user
    description str
    The description of the service user
    groups Sequence[str]
    The UUIDs of the groups the service user belongs to
    email str
    The email of the service user
    id str
    The UUID of the service user
    name str
    The name of the service user
    description String
    The description of the service user
    groups List<String>
    The UUIDs of the groups the service user belongs to
    email String
    The email of the service user
    id String
    The UUID of the service user
    name String
    The name of the service user

    Package Details

    Repository
    dynatrace pulumiverse/pulumi-dynatrace
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the dynatrace Terraform Provider.
    dynatrace logo
    Viewing docs for Dynatrace v0.37.0
    published on Tuesday, Jun 23, 2026 by Pulumiverse

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial