Policy management API - PUT a policy

Edits an existing access policy. You can't edit a global-level policy, as these are managed by Dynatrace.

If the specified policy doesn't exist, a new policy is created instead.

The request consumes and produces an application/json payload.

PUT

https://api.dynatrace.com/iam/v1/repo/{levelType}/{levelId}/policies/{policyUuid}

Authentication

To execute this request, you need the Allow IAM policy configuration for environments (iam-policies-management) permission assigned to your token. To learn how to obtain and use it, see OAuth clients.

Parameters

ParameterTypeDescriptionInRequired
policyUuid-

The ID of the required policy.

pathrequired
levelId-

The ID of the policy level. Use one of the following values, depending on the level type:

  • account: use the UUID of the account.
  • environment: use the ID of the environment.
pathrequired
levelType-

The type of the policy level. The following values are available:

  • account: An account policy applies to all environments of an account.
  • environment: An environment policy applies to a specific environment.

Each level inherits the policies of the higher level and extends them with its own policies.

pathrequired
bodyCreateOrUpdateLevelPolicyRequestDto

The JSON body of the request. Contains the updated configuration of a policy.

bodyrequired

Request body objects

The CreateOrUpdateLevelPolicyRequestDto object

ElementTypeDescriptionRequired
namestring

The display name of the policy.

required
descriptionstring

A short description of the policy.

required
tagsstring[]

A list of tags.

optional
statementQuerystring

The statement of the policy.

required
categorystring

The category of the policy.

optional

Request body JSON model

This is a model of the request body, showing the possible elements. It has to be adjusted for usage in an actual request.

{
"name": "string",
"description": "string",
"tags": [
"string"
],
"statementQuery": "string",
"category": "string"
}

Response

Response codes

CodeTypeDescription
201LevelPolicyDto

Success. The policy has been created. The response contains the configuration of the policy.

204-

Success. The policy has been updated. The response doesn't have a body.

400ErrorDto

Failed. The request is invalid

404ErrorDto

Failed. The specified resource is not found.

422ErrorDto

The specified response not found

Response body objects

The LevelPolicyDto object

ElementTypeDescription
uuidstring

The ID of the policy.

namestring

The display name of the policy.

tagsstring[]

A list of tags.

descriptionstring

A short description of the policy.

statementQuerystring

The statement of the policy.

statementsStatement[]

The expanded form of the policy statement.

The Statement object

ElementTypeDescription
effectstring

The effect of the policy (for example, allow something).

servicestring

The service to which the policy applies.

permissionsstring[]

A list of granted permissions.

conditionsCondition[]

A list of conditions limiting the granted permissions.

The Condition object

ElementTypeDescription
namestring

The name of the condition.

It indicates which part of the services is checked by the condition.

operatorstring

The operator of the condition.

valuesstring[]

A list of reference values of the condition.

Response body JSON model

{
"uuid": "string",
"name": "string",
"tags": [
"string"
],
"description": "string",
"statementQuery": "string",
"statements": [
{
"effect": "string",
"service": "string",
"permissions": [
"string"
],
"conditions": [
{
"name": "string",
"operator": "string",
"values": [
"string"
]
}
]
}
]
}

Validate payload

We recommend that you validate the payload before submitting it with an actual request. A response code of 200 indicates a valid payload.

The request consumes an application/json payload.

POST

https://api.dynatrace.com/iam/v1/repo/{levelType}/{levelId}/policies/validation/{policyUuid}

Authentication

To execute this request, you need the Allow IAM policy configuration for environments (iam-policies-management) permission assigned to your token. To learn how to obtain and use it, see OAuth clients.

Parameters

ParameterTypeDescriptionInRequired
policyUuid-

The ID of the policy to be validated.

pathrequired
levelId-

The ID of the policy level. Use one of the following values, depending on the level type:

  • account: use the UUID of the account.
  • environment: use the ID of the environment.
pathrequired
levelType-

The type of the policy level. The following values are available:

  • account: An account policy applies to all environments of an account.
  • environment: An environment policy applies to a specific environment.

Each level inherits the policies of the higher level and extends them with its own policies.

pathrequired
bodyCreateOrUpdateLevelPolicyRequestDto

The JSON body of the request. Contains the configuration of a policy to be validated.

bodyrequired

Request body objects

The CreateOrUpdateLevelPolicyRequestDto object

ElementTypeDescriptionRequired
namestring

The display name of the policy.

required
descriptionstring

A short description of the policy.

required
tagsstring[]

A list of tags.

optional
statementQuerystring

The statement of the policy.

required
categorystring

The category of the policy.

optional

Request body JSON model

This is a model of the request body, showing the possible elements. It has to be adjusted for usage in an actual request.

{
"name": "string",
"description": "string",
"tags": [
"string"
],
"statementQuery": "string",
"category": "string"
}

Example

In this example, the request updates the apiExample policy from the POST request example. It changes the name and adds permission to read objects (settings:objects:read in the value of the statementQuery parameter) based on the anomaly detection for services (builtin:anomaly-detection.services) schema from the Settings 2.0 framework. The response code of 204 indicates successful modification.

Curl

curl --request PUT \
--url https://api.dynatrace.com/iam/v1/repo/environment/mySampleEnv/policies/0c621587-f978-4c7b-89ee-d2045f611b03 \
--header 'Authorization: Bearer abcdefjhij1234567890' \
--header 'Content-Type: application/json' \
--data '{
"name": "apiExample - updated",
"description": "Example of an API request",
"tags": [],
"statementQuery": "ALLOW settings:schemas:read, settings:objects:write, settings:objects:read WHERE settings:schemaId = \"builtin:anomaly-detection.services\";"
}'

Request URL

https://api.dynatrace.com/iam/v1/repo/environment/mySampleEnv/policies/0c621587-f978-4c7b-89ee-d2045f611b03

Request body

{
"name": "apiExample - updated",
"description": "Example of an API request",
"tags": [],
"statementQuery": "ALLOW settings:schemas:read, settings:objects:write, settings:objects:read WHERE settings:schemaId = \"builtin:anomaly-detection.services\";"
}

Response code

204