Skip to main content

    Identity and Access Management

    Identity and Access Management configuration. Allows viewing users within the platform and their access capabilities.

    npm install @dynatrace-sdk/client-iam

    usersAndGroupsClient

    import { usersAndGroupsClient } from '@dynatrace-sdk/client-iam';

    getActiveUserFromOrganizationalLevel

    usersAndGroupsClient.getActiveUserFromOrganizationalLevel(config): Promise<RestUserPublic>

    Get active user from organizational level

    Required scope: iam:users:read

    Authorization is based on an assignment of the calling user to the account associated with the 'level-type' and 'level-id' For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment

    Parameters

    NameTypeDescription
    config.levelId*requiredstringIdentifier of 'level-type'. Max allowed length is 36. For account use its UUID. For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment
    config.levelType*requiredstringAllowed values: account, environment
    config.uuid*requiredstringUser UUID

    Returns

    Return typeStatus codeDescription
    RestUserPublic200User fetched successfully

    Throws

    Error TypeError Message
    PublicExceptionMessageErrorAuthorization header is missing or is incorrect. | Execution user is not allowed to perform the action. | Calling user is not assigned to the requested account or requested environment is not assigned to account that user is assigned to or the 'level-id' does not exist
    PublicExceptionThrottlingMessageErrorToo many requests have been sent - requests are throttled

    Code example

    import { usersAndGroupsClient } from "@dynatrace-sdk/client-iam";

    const data =
    await usersAndGroupsClient.getActiveUserFromOrganizationalLevel(
    { levelType: "...", levelId: "...", uuid: "..." },
    );

    getActiveUsersForOrganizationalLevel

    usersAndGroupsClient.getActiveUsersForOrganizationalLevel(config): Promise<RestUserPublicListResponse>

    Get active users from organizational level

    Required scope: iam:users:read

    Providing value for at least one of the parameters: 'partialString' or 'uuid' is required. If both query params 'partialString' and 'uuid' are provided then the result returns users meeting any of the filtering criteria. Returned users are first ordered by name and then by surname. Authorization is based on an assignment of the calling user to the account associated with the 'level-type' and 'level-id' For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment

    Parameters

    NameTypeDescription
    config.levelId*requiredstringIdentifier of 'level-type'. Max allowed length is 36. For account use its UUID. For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment
    config.levelType*requiredstringAllowed values: account, environment
    config.pagenumberOffset-based Pagination - page. Default value: 1. Page number to return. Offset-based Pagination can't be used with Cursor-based Pagination!
    config.pageKeystringCursor-based Pagination - page-key. Cursor to the next page, includes page number and filtering values. Implicit filtering values will be overwritten by page-key property. Cursor-based Pagination can't be used together with Offset-based Pagination! Max length: 2000
    config.pageSizenumberPagination - page size. Default value: 1000. Minimum value: 1. Maximum value: 1000
    config.partialStringstringFilter value - searches for users whose email contains provided value AND users whose 'name surname' or 'surname name' starts with provided value. Minimum length: 3. Maximum length: 320
    config.uuidArray<string>List of user UUIDs. Filter value - equals. Allows multiple values. Maximum allowed size: 25

    Returns

    Return typeStatus codeDescription
    RestUserPublicListResponse200Users from the organizational level fetched successfully

    Throws

    Error TypeError Message
    PublicExceptionMessageErrorAuthorization header is missing or is incorrect. | Execution user is not allowed to perform the action. | Calling user is not assigned to the requested account or requested environment is not assigned to account that user is assigned to or the 'level-id' does not exist
    PublicExceptionThrottlingMessageErrorToo many requests have been sent - requests are throttled

    Code example

    import { usersAndGroupsClient } from "@dynatrace-sdk/client-iam";

    const data =
    await usersAndGroupsClient.getActiveUsersForOrganizationalLevel(
    { levelType: "...", levelId: "..." },
    );

    getActiveUsersForOrganizationalLevelPost

    usersAndGroupsClient.getActiveUsersForOrganizationalLevelPost(config): Promise<RestUserPublicListResponse>

    Get active users from organizational level

    Required scope: iam:users:read

    It is required to provide either request body containing list of user UUIDs or partialString. If both are provided then the result returns users meeting any of the provided criteria. Returned users are first ordered by name and then by surname. Authorization is based on an assignment of the calling user to the account associated with the 'level-type' and 'level-id' For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment

    Parameters

    NameTypeDescription
    config.body*requiredArray<string>
    config.levelId*requiredstringIdentifier of 'level-type'. Max allowed length is 36. For account use its UUID. For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment
    config.levelType*requiredstringAllowed values: account, environment
    config.pagenumberOffset-based Pagination - page. Default value: 1. Page number to return. Offset-based Pagination can't be used with Cursor-based Pagination!
    config.pageKeystringCursor-based Pagination - page-key. Cursor to the next page, includes page number and filtering values. Implicit filtering values will be overwritten by page-key property. Cursor-based Pagination can't be used together with Offset-based Pagination! Max length: 2000
    config.pageSizenumberPagination - page size. Default value: 1000. Minimum value: 1. Maximum value: 1000
    config.partialStringstringFilter value - searches for users whose email contains provided value AND users whose 'name surname' or 'surname name' starts with provided value. Minimum length: 3. Maximum length: 320

    Returns

    Return typeDescription
    Promise<RestUserPublicListResponse>Users from the organizational level fetched successfully

    Throws

    Error TypeError Message
    PublicExceptionMessageErrorAuthorization header is missing or is incorrect. | Execution user is not allowed to perform the action. | Calling user is not assigned to the requested account or requested environment is not assigned to account that user is assigned to or the 'level-id' does not exist
    PublicExceptionThrottlingMessageErrorToo many requests have been sent - requests are throttled

    Code example

    import { usersAndGroupsClient } from "@dynatrace-sdk/client-iam";

    const data =
    await usersAndGroupsClient.getActiveUsersForOrganizationalLevelPost(
    { levelType: "...", levelId: "...", body: ["..."] },
    );

    getAvailableServiceUsers

    usersAndGroupsClient.getAvailableServiceUsers(config): Promise<SearchResult>

    Get active service users from organizational level which are usable by the execution user

    Required scope: iam:service-users:use

    Environment-level queries are executed in account context because there is no direct link between environments and service users.

    Parameters

    NameTypeDescription
    config.levelId*requiredstringIdentifier of 'level-type'. Max allowed length is 36. For account use its UUID. For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment
    config.levelType*requiredstringAllowed values: account, environment
    config.pagenumberOffset-based Pagination - page. Default value: 1. Page number to return. Offset-based Pagination can't be used with Cursor-based Pagination!
    config.pageKeystringCursor-based Pagination - page-key. Cursor to the next page, includes page number and filtering values. Implicit filtering values will be overwritten by page-key property. Cursor-based Pagination can't be used together with Offset-based Pagination! Max length: 2000
    config.pageSizenumberPagination - page size. Default value: 1000. Minimum value: 1. Maximum value: 1000

    Returns

    Return typeStatus codeDescription
    SearchResult200Active service users from the organizational level filtered by user permissions fetched successfully

    Throws

    Error TypeError Message
    PublicExceptionMessageErrorAuthorization header is missing or is incorrect. | Execution user is not allowed to perform the action. | The 'level-id' param does not exist
    PublicExceptionThrottlingMessageErrorToo many requests have been sent - requests are throttled

    Code example

    import { usersAndGroupsClient } from "@dynatrace-sdk/client-iam";

    const data =
    await usersAndGroupsClient.getAvailableServiceUsers({
    levelType: "...",
    levelId: "...",
    });

    getVisibleGroupsForAccount

    usersAndGroupsClient.getVisibleGroupsForAccount(config): Promise<RestGroupPublicListResponse>

    Get visible groups from organizational level

    Required scope: iam:groups:read

    Providing value for at least one of the parameters: 'partialGroupName' or 'uuid' is required. If both query params 'partialGroupName' and 'uuid' are provided then the result will be all of the groups meeting any of the filtering criteria. Authorization is based on an assignment of the calling user to the account associated with the 'level-type' and 'level-id' For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment

    Parameters

    NameTypeDescription
    config.levelId*requiredstringIdentifier of 'level-type'. Max allowed length is 36. For account use its UUID. For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment
    config.levelType*requiredstringAllowed values: account, environment
    config.pagenumberOffset-based Pagination - page. Default value: 1. Page number to return. Offset-based Pagination can't be used with Cursor-based Pagination!
    config.pageKeystringCursor-based Pagination - page-key. Cursor to the next page, includes page number and filtering values. Implicit filtering values will be overwritten by page-key property. Cursor-based Pagination can't be used together with Offset-based Pagination! Max length: 2000
    config.pageSizenumberPagination - page size. Default value: 1000. Minimum value: 1. Maximum value: 1000
    config.partialGroupNamestringFilter value - contains. Minimum length: 3. Maximum length: 320
    config.uuidArray<string>List of group UUIDs. Filter value - equals. Allows definition of multiple values. Maximum allowed size: 10

    Returns

    Return typeStatus codeDescription
    RestGroupPublicListResponse200Groups from the level fetched successfully

    Throws

    Error TypeError Message
    PublicExceptionMessageErrorMissing both 'partialGroupName' and 'uuid' filter values, or the values don't meet the requirements. | Authorization header is missing or is incorrect. | Execution user is not allowed to perform the action. | Calling user is not assigned to the requested account or requested environment is not assigned to account that user is assigned to or the 'level-id' does not exist
    PublicExceptionThrottlingMessageErrorToo many requests have been sent - requests are throttled

    Code example

    import { usersAndGroupsClient } from "@dynatrace-sdk/client-iam";

    const data =
    await usersAndGroupsClient.getVisibleGroupsForAccount({
    levelType: "...",
    levelId: "...",
    });

    getVisibleGroupsForAccountPost

    usersAndGroupsClient.getVisibleGroupsForAccountPost(config): Promise<RestGroupPublicListResponse>

    Get visible groups from organizational level

    Required scope: iam:groups:read

    It is required to provide at either request body containing list of group uuids or partialGroupName. If both are provided then the result returns groups meeting any of the provided criteria. Authorization is based on an assignment of the calling user to the account associated with the 'level-type' and 'level-id' For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment

    Parameters

    NameTypeDescription
    config.body*requiredArray<string>
    config.levelId*requiredstringIdentifier of 'level-type'. Max allowed length is 36. For account use its UUID. For environment 'level-type' user has to be assigned to account to which the environment is assigned, user does not need any permissions in such environment
    config.levelType*requiredstringAllowed values: account, environment
    config.pagenumberOffset-based Pagination - page. Default value: 1. Page number to return. Offset-based Pagination can't be used with Cursor-based Pagination!
    config.pageKeystringCursor-based Pagination - page-key. Cursor to the next page, includes page number and filtering values. Implicit filtering values will be overwritten by page-key property. Cursor-based Pagination can't be used together with Offset-based Pagination! Max length: 2000
    config.pageSizenumberPagination - page size. Default value: 1000. Minimum value: 1. Maximum value: 1000
    config.partialGroupNamestringFilter value - contains. Minimum length: 3. Maximum length: 320

    Returns

    Return typeDescription
    Promise<RestGroupPublicListResponse>Groups from the level fetched successfully

    Throws

    Error TypeError Message
    PublicExceptionMessageErrorMissing both 'partialGroupName' and 'uuid' filter values, or the values don't meet requirements. | Authorization header is missing or is incorrect. | Execution user is not allowed to perform the action. | Calling user is not assigned to the requested account or requested environment is not assigned to account that user is assigned to or the 'level-id' does not exist
    PublicExceptionThrottlingMessageErrorToo many requests have been sent - requests are throttled

    Code example

    import { usersAndGroupsClient } from "@dynatrace-sdk/client-iam";

    const data =
    await usersAndGroupsClient.getVisibleGroupsForAccountPost(
    { levelType: "...", levelId: "...", body: ["..."] },
    );

    Types

    ErrorResponse

    NameType
    codenumber
    detailsErrorResponseDetails
    messagestring

    ErrorResponseConstraintViolation

    NameType
    messagestring
    parameterLocationstring
    pathstring

    ErrorResponseDetails

    NameType
    constraintViolationsArray<ErrorResponseConstraintViolation>
    missingScopesArray<string>

    ErrorThrottlingResponse

    NameType
    codenumber
    messagestring
    retryAfterSecondsnumber

    PublicExceptionMessage

    NameType
    errorErrorResponse

    PublicExceptionThrottlingMessage

    NameType
    errorErrorThrottlingResponse

    RestGroupPublic

    Collection containing the paginated result

    NameType
    groupName*requiredstring
    type*required"LOCAL" | "ALL_USERS" | "SCIM" | "SAML"
    uuid*requiredstring

    RestGroupPublicListResponse

    NameTypeDescription
    nextPageKeystringKey for requesting the next page of the result
    resultsArray<RestGroupPublic>Collection containing the paginated result
    totalCountnumberTotal count of records

    RestUserPublic

    Collection containing the paginated result

    NameType
    descriptionstring
    email*requiredstring
    namestring
    surnamestring
    uid*requiredstring

    RestUserPublicListResponse

    NameTypeDescription
    nextPageKeystringKey for requesting the next page of the result
    resultsArray<RestUserPublic>Collection containing the paginated result
    totalCountnumberTotal count of records

    SearchResult

    NameTypeDescription
    nextPageKeystringKey for requesting the next page of the result
    resultsArray<ServiceUserDto>Collection containing the paginated result
    totalCountnumberTotal count of records

    ServiceUserDto

    Collection containing the paginated result

    NameType
    createdAtDate
    descriptionstring
    emailstring
    namestring
    surnamestring
    uidstring

    Enums

    RestGroupPublicType

    ⚠️ Deprecated Use literal values.

    Enum keys

    AllUsers | Local | Saml | Scim

    Still have questions?
    Find answers in the Dynatrace Community