1. Registry
  2. Packages
  3. Datadog Provider
  4. API Docs
  5. ActionExecutionPolicy
Viewing docs for Datadog v5.11.0
published on Tuesday, Sep 15, 2026 by Pulumi
datadog logo
Viewing docs for Datadog v5.11.0
published on Tuesday, Sep 15, 2026 by Pulumi

    Provides a Datadog Execution Policy resource. Execution policies control which Action Platform actions may run against your infrastructure, and where. Each policy pairs an effect (allow or deny) with a pattern of actions, optionally narrowed to specific Kubernetes namespaces, scripts or remote shell paths, and optionally scoped to agents matching a set of Fleet Automation tags.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as datadog from "@pulumi/datadog";
    
    // Kubernetes: allow read-only actions against prod namespaces, on agents/PARs
    // matching either target tag set below.
    const kubernetesProdRead = new datadog.ActionExecutionPolicy("kubernetes_prod_read", {
        name: "allow-kubernetes-prod-read",
        effect: "allow",
        actionPattern: [{
            integration: "INTEGRATION_KUBERNETES",
            actionFqns: [
                "com.datadoghq.kubernetes.core.getPod",
                "com.datadoghq.kubernetes.core.listPod",
            ],
        }],
        scope: [{
            kubernetes: [{
                rules: [{
                    targetNamespaces: [
                        "prod",
                        "prod-system",
                    ],
                }],
            }],
        }],
        targets: [
            {
                name: "prod-us",
                agentTags: [
                    "env:prod",
                    "region:us-east-1",
                ],
            },
            {
                name: "prod-eu",
                agentTags: [
                    "env:prod",
                    "region:eu-west-1",
                ],
            },
        ],
    });
    // Remote action (rshell): allow command execution restricted to a read-only path on staging agents.
    const rshellStagingReadonly = new datadog.ActionExecutionPolicy("rshell_staging_readonly", {
        name: "rshell-staging-readonly",
        effect: "allow",
        actionPattern: [{
            integration: "INTEGRATION_REMOTE_ACTION",
            actionFqns: ["com.datadoghq.remoteaction.rshell.runCommand"],
        }],
        scope: [{
            remoteActionRshell: [{
                rules: [{
                    targetPaths: ["/etc/datadog-agent/"],
                    access: "read_only",
                }],
            }],
        }],
        targets: [{
            name: "staging",
            agentTags: ["env:staging"],
        }],
    });
    // Scripts: deny a specific shell script action everywhere, regardless of agent tags
    // (no `target` block means the policy applies fleet-wide).
    const denyDangerousScript = new datadog.ActionExecutionPolicy("deny_dangerous_script", {
        name: "deny-dangerous-cleanup-script",
        effect: "deny",
        actionPattern: [{
            integration: "INTEGRATION_SCRIPT",
            actionFqns: ["com.datadoghq.script.runShellScript"],
        }],
        scope: [{
            scripts: [{
                rules: [{
                    targetScriptNames: ["dangerous-cleanup.sh"],
                }],
            }],
        }],
    });
    // Access to a policy is managed separately via datadog_restriction_policy,
    // keyed by "execution-policy:<id>".
    const kubernetesProdPerms = new datadog.RestrictionPolicy("kubernetes_prod_perms", {
        resourceId: pulumi.interpolate`execution-policy:${kubernetesProdRead.id}`,
        bindings: [{
            relation: "editor",
            principals: ["role:sre-oncall"],
        }],
    });
    
    import pulumi
    import pulumi_datadog as datadog
    
    # Kubernetes: allow read-only actions against prod namespaces, on agents/PARs
    # matching either target tag set below.
    kubernetes_prod_read = datadog.ActionExecutionPolicy("kubernetes_prod_read",
        name="allow-kubernetes-prod-read",
        effect="allow",
        action_pattern=[{
            "integration": "INTEGRATION_KUBERNETES",
            "actionFqns": [
                "com.datadoghq.kubernetes.core.getPod",
                "com.datadoghq.kubernetes.core.listPod",
            ],
        }],
        scope=[{
            "kubernetes": [{
                "rules": [{
                    "targetNamespaces": [
                        "prod",
                        "prod-system",
                    ],
                }],
            }],
        }],
        targets=[
            {
                "name": "prod-us",
                "agent_tags": [
                    "env:prod",
                    "region:us-east-1",
                ],
            },
            {
                "name": "prod-eu",
                "agent_tags": [
                    "env:prod",
                    "region:eu-west-1",
                ],
            },
        ])
    # Remote action (rshell): allow command execution restricted to a read-only path on staging agents.
    rshell_staging_readonly = datadog.ActionExecutionPolicy("rshell_staging_readonly",
        name="rshell-staging-readonly",
        effect="allow",
        action_pattern=[{
            "integration": "INTEGRATION_REMOTE_ACTION",
            "actionFqns": ["com.datadoghq.remoteaction.rshell.runCommand"],
        }],
        scope=[{
            "remoteActionRshell": [{
                "rules": [{
                    "targetPaths": ["/etc/datadog-agent/"],
                    "access": "read_only",
                }],
            }],
        }],
        targets=[{
            "name": "staging",
            "agent_tags": ["env:staging"],
        }])
    # Scripts: deny a specific shell script action everywhere, regardless of agent tags
    # (no `target` block means the policy applies fleet-wide).
    deny_dangerous_script = datadog.ActionExecutionPolicy("deny_dangerous_script",
        name="deny-dangerous-cleanup-script",
        effect="deny",
        action_pattern=[{
            "integration": "INTEGRATION_SCRIPT",
            "actionFqns": ["com.datadoghq.script.runShellScript"],
        }],
        scope=[{
            "scripts": [{
                "rules": [{
                    "targetScriptNames": ["dangerous-cleanup.sh"],
                }],
            }],
        }])
    # Access to a policy is managed separately via datadog_restriction_policy,
    # keyed by "execution-policy:<id>".
    kubernetes_prod_perms = datadog.RestrictionPolicy("kubernetes_prod_perms",
        resource_id=kubernetes_prod_read.id.apply(lambda id: f"execution-policy:{id}"),
        bindings=[{
            "relation": "editor",
            "principals": ["role:sre-oncall"],
        }])
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-datadog/sdk/v5/go/datadog"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Kubernetes: allow read-only actions against prod namespaces, on agents/PARs
    		// matching either target tag set below.
    		kubernetesProdRead, err := datadog.NewActionExecutionPolicy(ctx, "kubernetes_prod_read", &datadog.ActionExecutionPolicyArgs{
    			Name:   pulumi.String("allow-kubernetes-prod-read"),
    			Effect: pulumi.String("allow"),
    			ActionPattern: datadog.ActionExecutionPolicyActionPatternArgs{
    				map[string]interface{}{
    					"integration": "INTEGRATION_KUBERNETES",
    					"actionFqns": []string{
    						"com.datadoghq.kubernetes.core.getPod",
    						"com.datadoghq.kubernetes.core.listPod",
    					},
    				},
    			},
    			Scope: datadog.ActionExecutionPolicyScopeArgs{
    				map[string][]map[string][]map[string][]string{
    					"kubernetes": []map[string][]map[string][]string{
    						{
    							"rules": []map[string][]string{
    								{
    									"targetNamespaces": []string{
    										"prod",
    										"prod-system",
    									},
    								},
    							},
    						},
    					},
    				},
    			},
    			Targets: datadog.ActionExecutionPolicyTargetArray{
    				&datadog.ActionExecutionPolicyTargetArgs{
    					Name: pulumi.String("prod-us"),
    					AgentTags: pulumi.StringArray{
    						pulumi.String("env:prod"),
    						pulumi.String("region:us-east-1"),
    					},
    				},
    				&datadog.ActionExecutionPolicyTargetArgs{
    					Name: pulumi.String("prod-eu"),
    					AgentTags: pulumi.StringArray{
    						pulumi.String("env:prod"),
    						pulumi.String("region:eu-west-1"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Remote action (rshell): allow command execution restricted to a read-only path on staging agents.
    		_, err = datadog.NewActionExecutionPolicy(ctx, "rshell_staging_readonly", &datadog.ActionExecutionPolicyArgs{
    			Name:   pulumi.String("rshell-staging-readonly"),
    			Effect: pulumi.String("allow"),
    			ActionPattern: datadog.ActionExecutionPolicyActionPatternArgs{
    				map[string]interface{}{
    					"integration": "INTEGRATION_REMOTE_ACTION",
    					"actionFqns": []string{
    						"com.datadoghq.remoteaction.rshell.runCommand",
    					},
    				},
    			},
    			Scope: datadog.ActionExecutionPolicyScopeArgs{
    				map[string][]map[string][]map[string]interface{}{
    					"remoteActionRshell": []map[string][]map[string]interface{}{
    						map[string][]map[string]interface{}{
    							"rules": []map[string]interface{}{
    								map[string]interface{}{
    									"targetPaths": []string{
    										"/etc/datadog-agent/",
    									},
    									"access": "read_only",
    								},
    							},
    						},
    					},
    				},
    			},
    			Targets: datadog.ActionExecutionPolicyTargetArray{
    				&datadog.ActionExecutionPolicyTargetArgs{
    					Name: pulumi.String("staging"),
    					AgentTags: pulumi.StringArray{
    						pulumi.String("env:staging"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Scripts: deny a specific shell script action everywhere, regardless of agent tags
    		// (no `target` block means the policy applies fleet-wide).
    		_, err = datadog.NewActionExecutionPolicy(ctx, "deny_dangerous_script", &datadog.ActionExecutionPolicyArgs{
    			Name:   pulumi.String("deny-dangerous-cleanup-script"),
    			Effect: pulumi.String("deny"),
    			ActionPattern: datadog.ActionExecutionPolicyActionPatternArgs{
    				map[string]interface{}{
    					"integration": "INTEGRATION_SCRIPT",
    					"actionFqns": []string{
    						"com.datadoghq.script.runShellScript",
    					},
    				},
    			},
    			Scope: datadog.ActionExecutionPolicyScopeArgs{
    				map[string][]map[string][]map[string][]string{
    					"scripts": []map[string][]map[string][]string{
    						{
    							"rules": []map[string][]string{
    								{
    									"targetScriptNames": []string{
    										"dangerous-cleanup.sh",
    									},
    								},
    							},
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Access to a policy is managed separately via datadog_restriction_policy,
    		// keyed by "execution-policy:<id>".
    		_, err = datadog.NewRestrictionPolicy(ctx, "kubernetes_prod_perms", &datadog.RestrictionPolicyArgs{
    			ResourceId: kubernetesProdRead.ID().ApplyT(func(id pulumi.ID) (string, error) {
    				return fmt.Sprintf("execution-policy:%v", id), nil
    			}).(pulumi.StringOutput),
    			Bindings: datadog.RestrictionPolicyBindingArray{
    				&datadog.RestrictionPolicyBindingArgs{
    					Relation: pulumi.String("editor"),
    					Principals: pulumi.StringArray{
    						pulumi.String("role:sre-oncall"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Datadog = Pulumi.Datadog;
    
    return await Deployment.RunAsync(() => 
    {
        // Kubernetes: allow read-only actions against prod namespaces, on agents/PARs
        // matching either target tag set below.
        var kubernetesProdRead = new Datadog.ActionExecutionPolicy("kubernetes_prod_read", new()
        {
            Name = "allow-kubernetes-prod-read",
            Effect = "allow",
            ActionPattern = new[]
            {
                
                {
                    { "integration", "INTEGRATION_KUBERNETES" },
                    { "actionFqns", new[]
                    {
                        "com.datadoghq.kubernetes.core.getPod",
                        "com.datadoghq.kubernetes.core.listPod",
                    } },
                },
            },
            Scope = new[]
            {
                
                {
                    { "kubernetes", new[]
                    {
                        
                        {
                            { "rules", new[]
                            {
                                
                                {
                                    { "targetNamespaces", new[]
                                    {
                                        "prod",
                                        "prod-system",
                                    } },
                                },
                            } },
                        },
                    } },
                },
            },
            Targets = new[]
            {
                new Datadog.Inputs.ActionExecutionPolicyTargetArgs
                {
                    Name = "prod-us",
                    AgentTags = new[]
                    {
                        "env:prod",
                        "region:us-east-1",
                    },
                },
                new Datadog.Inputs.ActionExecutionPolicyTargetArgs
                {
                    Name = "prod-eu",
                    AgentTags = new[]
                    {
                        "env:prod",
                        "region:eu-west-1",
                    },
                },
            },
        });
    
        // Remote action (rshell): allow command execution restricted to a read-only path on staging agents.
        var rshellStagingReadonly = new Datadog.ActionExecutionPolicy("rshell_staging_readonly", new()
        {
            Name = "rshell-staging-readonly",
            Effect = "allow",
            ActionPattern = new[]
            {
                
                {
                    { "integration", "INTEGRATION_REMOTE_ACTION" },
                    { "actionFqns", new[]
                    {
                        "com.datadoghq.remoteaction.rshell.runCommand",
                    } },
                },
            },
            Scope = new[]
            {
                
                {
                    { "remoteActionRshell", new[]
                    {
                        
                        {
                            { "rules", new[]
                            {
                                
                                {
                                    { "targetPaths", new[]
                                    {
                                        "/etc/datadog-agent/",
                                    } },
                                    { "access", "read_only" },
                                },
                            } },
                        },
                    } },
                },
            },
            Targets = new[]
            {
                new Datadog.Inputs.ActionExecutionPolicyTargetArgs
                {
                    Name = "staging",
                    AgentTags = new[]
                    {
                        "env:staging",
                    },
                },
            },
        });
    
        // Scripts: deny a specific shell script action everywhere, regardless of agent tags
        // (no `target` block means the policy applies fleet-wide).
        var denyDangerousScript = new Datadog.ActionExecutionPolicy("deny_dangerous_script", new()
        {
            Name = "deny-dangerous-cleanup-script",
            Effect = "deny",
            ActionPattern = new[]
            {
                
                {
                    { "integration", "INTEGRATION_SCRIPT" },
                    { "actionFqns", new[]
                    {
                        "com.datadoghq.script.runShellScript",
                    } },
                },
            },
            Scope = new[]
            {
                
                {
                    { "scripts", new[]
                    {
                        
                        {
                            { "rules", new[]
                            {
                                
                                {
                                    { "targetScriptNames", new[]
                                    {
                                        "dangerous-cleanup.sh",
                                    } },
                                },
                            } },
                        },
                    } },
                },
            },
        });
    
        // Access to a policy is managed separately via datadog_restriction_policy,
        // keyed by "execution-policy:<id>".
        var kubernetesProdPerms = new Datadog.RestrictionPolicy("kubernetes_prod_perms", new()
        {
            ResourceId = kubernetesProdRead.Id.Apply(id => $"execution-policy:{id}"),
            Bindings = new[]
            {
                new Datadog.Inputs.RestrictionPolicyBindingArgs
                {
                    Relation = "editor",
                    Principals = new[]
                    {
                        "role:sre-oncall",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.datadog.ActionExecutionPolicy;
    import com.pulumi.datadog.ActionExecutionPolicyArgs;
    import com.pulumi.datadog.inputs.ActionExecutionPolicyTargetArgs;
    import com.pulumi.datadog.RestrictionPolicy;
    import com.pulumi.datadog.RestrictionPolicyArgs;
    import com.pulumi.datadog.inputs.RestrictionPolicyBindingArgs;
    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) {
            // Kubernetes: allow read-only actions against prod namespaces, on agents/PARs
            // matching either target tag set below.
            var kubernetesProdRead = new ActionExecutionPolicy("kubernetesProdRead", ActionExecutionPolicyArgs.builder()
                .name("allow-kubernetes-prod-read")
                .effect("allow")
                .actionPattern(com.pulumi.datadog.inputs.ActionExecutionPolicyActionPatternArgs.builder()
                    .integration("INTEGRATION_KUBERNETES")
                    .actionFqns(                
                        "com.datadoghq.kubernetes.core.getPod",
                        "com.datadoghq.kubernetes.core.listPod")
                    .build())
                .scope(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeArgs.builder()
                    .kubernetes(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeKubernetesArgs.builder()
                        .rules(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeKubernetesRuleArgs.builder()
                            .targetNamespaces(                        
                                "prod",
                                "prod-system")
                            .build())
                        .build())
                    .build())
                .targets(            
                    ActionExecutionPolicyTargetArgs.builder()
                        .name("prod-us")
                        .agentTags(                    
                            "env:prod",
                            "region:us-east-1")
                        .build(),
                    ActionExecutionPolicyTargetArgs.builder()
                        .name("prod-eu")
                        .agentTags(                    
                            "env:prod",
                            "region:eu-west-1")
                        .build())
                .build());
    
            // Remote action (rshell): allow command execution restricted to a read-only path on staging agents.
            var rshellStagingReadonly = new ActionExecutionPolicy("rshellStagingReadonly", ActionExecutionPolicyArgs.builder()
                .name("rshell-staging-readonly")
                .effect("allow")
                .actionPattern(com.pulumi.datadog.inputs.ActionExecutionPolicyActionPatternArgs.builder()
                    .integration("INTEGRATION_REMOTE_ACTION")
                    .actionFqns("com.datadoghq.remoteaction.rshell.runCommand")
                    .build())
                .scope(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeArgs.builder()
                    .remoteActionRshell(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeRemoteActionRshellArgs.builder()
                        .rules(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeRemoteActionRshellRuleArgs.builder()
                            .targetPaths("/etc/datadog-agent/")
                            .access("read_only")
                            .build())
                        .build())
                    .build())
                .targets(ActionExecutionPolicyTargetArgs.builder()
                    .name("staging")
                    .agentTags("env:staging")
                    .build())
                .build());
    
            // Scripts: deny a specific shell script action everywhere, regardless of agent tags
            // (no `target` block means the policy applies fleet-wide).
            var denyDangerousScript = new ActionExecutionPolicy("denyDangerousScript", ActionExecutionPolicyArgs.builder()
                .name("deny-dangerous-cleanup-script")
                .effect("deny")
                .actionPattern(com.pulumi.datadog.inputs.ActionExecutionPolicyActionPatternArgs.builder()
                    .integration("INTEGRATION_SCRIPT")
                    .actionFqns("com.datadoghq.script.runShellScript")
                    .build())
                .scope(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeArgs.builder()
                    .scripts(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeScriptsArgs.builder()
                        .rules(com.pulumi.datadog.inputs.ActionExecutionPolicyScopeScriptsRuleArgs.builder()
                            .targetScriptNames("dangerous-cleanup.sh")
                            .build())
                        .build())
                    .build())
                .build());
    
            // Access to a policy is managed separately via datadog_restriction_policy,
            // keyed by "execution-policy:<id>".
            var kubernetesProdPerms = new RestrictionPolicy("kubernetesProdPerms", RestrictionPolicyArgs.builder()
                .resourceId(kubernetesProdRead.id().applyValue(_id -> String.format("execution-policy:%s", _id)))
                .bindings(RestrictionPolicyBindingArgs.builder()
                    .relation("editor")
                    .principals("role:sre-oncall")
                    .build())
                .build());
    
        }
    }
    
    resources:
      # Kubernetes: allow read-only actions against prod namespaces, on agents/PARs
      # matching either target tag set below.
      kubernetesProdRead:
        type: datadog:ActionExecutionPolicy
        name: kubernetes_prod_read
        properties:
          name: allow-kubernetes-prod-read
          effect: allow
          actionPattern:
            - integration: INTEGRATION_KUBERNETES
              actionFqns:
                - com.datadoghq.kubernetes.core.getPod
                - com.datadoghq.kubernetes.core.listPod
          scope:
            - kubernetes:
                - rules:
                    - targetNamespaces:
                        - prod
                        - prod-system
          targets:
            - name: prod-us
              agentTags:
                - env:prod
                - region:us-east-1
            - name: prod-eu
              agentTags:
                - env:prod
                - region:eu-west-1
      # Remote action (rshell): allow command execution restricted to a read-only path on staging agents.
      rshellStagingReadonly:
        type: datadog:ActionExecutionPolicy
        name: rshell_staging_readonly
        properties:
          name: rshell-staging-readonly
          effect: allow
          actionPattern:
            - integration: INTEGRATION_REMOTE_ACTION
              actionFqns:
                - com.datadoghq.remoteaction.rshell.runCommand
          scope:
            - remoteActionRshell:
                - rules:
                    - targetPaths:
                        - /etc/datadog-agent/
                      access: read_only
          targets:
            - name: staging
              agentTags:
                - env:staging
      # Scripts: deny a specific shell script action everywhere, regardless of agent tags
      # (no `target` block means the policy applies fleet-wide).
      denyDangerousScript:
        type: datadog:ActionExecutionPolicy
        name: deny_dangerous_script
        properties:
          name: deny-dangerous-cleanup-script
          effect: deny
          actionPattern:
            - integration: INTEGRATION_SCRIPT
              actionFqns:
                - com.datadoghq.script.runShellScript
          scope:
            - scripts:
                - rules:
                    - targetScriptNames:
                        - dangerous-cleanup.sh
      # Access to a policy is managed separately via datadog_restriction_policy,
      # keyed by "execution-policy:<id>".
      kubernetesProdPerms:
        type: datadog:RestrictionPolicy
        name: kubernetes_prod_perms
        properties:
          resourceId: execution-policy:${kubernetesProdRead.id}
          bindings:
            - relation: editor
              principals:
                - role:sre-oncall
    
    pulumi {
      required_providers {
        datadog = {
          source = "pulumi/datadog"
        }
      }
    }
    
    # Kubernetes: allow read-only actions against prod namespaces, on agents/PARs
    # matching either target tag set below.
    resource "datadog_actionexecutionpolicy" "kubernetes_prod_read" {
      name   = "allow-kubernetes-prod-read"
      effect = "allow"
      action_pattern = [{
        "integration" = "INTEGRATION_KUBERNETES"
        "actionFqns"  = ["com.datadoghq.kubernetes.core.getPod", "com.datadoghq.kubernetes.core.listPod"]
      }]
      scope = [{
        "kubernetes" = [{
          "rules" = [{
            "targetNamespaces" = ["prod", "prod-system"]
          }]
        }]
      }]
      targets {
        name       = "prod-us"
        agent_tags = ["env:prod", "region:us-east-1"]
      }
      targets {
        name       = "prod-eu"
        agent_tags = ["env:prod", "region:eu-west-1"]
      }
    }
    # Remote action (rshell): allow command execution restricted to a read-only path on staging agents.
    resource "datadog_actionexecutionpolicy" "rshell_staging_readonly" {
      name   = "rshell-staging-readonly"
      effect = "allow"
      action_pattern = [{
        "integration" = "INTEGRATION_REMOTE_ACTION"
        "actionFqns"  = ["com.datadoghq.remoteaction.rshell.runCommand"]
      }]
      scope = [{
        "remoteActionRshell" = [{
          "rules" = [{
            "targetPaths" = ["/etc/datadog-agent/"]
            "access"      = "read_only"
          }]
        }]
      }]
      targets {
        name       = "staging"
        agent_tags = ["env:staging"]
      }
    }
    # Scripts: deny a specific shell script action everywhere, regardless of agent tags
    # (no `target` block means the policy applies fleet-wide).
    resource "datadog_actionexecutionpolicy" "deny_dangerous_script" {
      name   = "deny-dangerous-cleanup-script"
      effect = "deny"
      action_pattern = [{
        "integration" = "INTEGRATION_SCRIPT"
        "actionFqns"  = ["com.datadoghq.script.runShellScript"]
      }]
      scope = [{
        "scripts" = [{
          "rules" = [{
            "targetScriptNames" = ["dangerous-cleanup.sh"]
          }]
        }]
      }]
    }
    # Access to a policy is managed separately via datadog_restriction_policy,
    # keyed by "execution-policy:<id>".
    resource "datadog_restrictionpolicy" "kubernetes_prod_perms" {
      resource_id ="execution-policy:${datadog_actionexecutionpolicy.kubernetes_prod_read.id}"
      bindings {
        relation   = "editor"
        principals = ["role:sre-oncall"]
      }
    }
    

    Create ActionExecutionPolicy Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ActionExecutionPolicy(name: string, args: ActionExecutionPolicyArgs, opts?: CustomResourceOptions);
    @overload
    def ActionExecutionPolicy(resource_name: str,
                              args: ActionExecutionPolicyArgs,
                              opts: Optional[ResourceOptions] = None)
    
    @overload
    def ActionExecutionPolicy(resource_name: str,
                              opts: Optional[ResourceOptions] = None,
                              effect: Optional[str] = None,
                              name: Optional[str] = None,
                              action_pattern: Optional[ActionExecutionPolicyActionPatternArgs] = None,
                              scope: Optional[ActionExecutionPolicyScopeArgs] = None,
                              targets: Optional[Sequence[ActionExecutionPolicyTargetArgs]] = None)
    func NewActionExecutionPolicy(ctx *Context, name string, args ActionExecutionPolicyArgs, opts ...ResourceOption) (*ActionExecutionPolicy, error)
    public ActionExecutionPolicy(string name, ActionExecutionPolicyArgs args, CustomResourceOptions? opts = null)
    public ActionExecutionPolicy(String name, ActionExecutionPolicyArgs args)
    public ActionExecutionPolicy(String name, ActionExecutionPolicyArgs args, CustomResourceOptions options)
    
    type: datadog:ActionExecutionPolicy
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "datadog_action_execution_policy" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ActionExecutionPolicyArgs
    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 ActionExecutionPolicyArgs
    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 ActionExecutionPolicyArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ActionExecutionPolicyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ActionExecutionPolicyArgs
    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 actionExecutionPolicyResource = new Datadog.ActionExecutionPolicy("actionExecutionPolicyResource", new()
    {
        Effect = "string",
        Name = "string",
        ActionPattern = new Datadog.Inputs.ActionExecutionPolicyActionPatternArgs
        {
            ActionFqns = new[]
            {
                "string",
            },
            Integration = "string",
        },
        Scope = new Datadog.Inputs.ActionExecutionPolicyScopeArgs
        {
            Kubernetes = new Datadog.Inputs.ActionExecutionPolicyScopeKubernetesArgs
            {
                Rules = new[]
                {
                    new Datadog.Inputs.ActionExecutionPolicyScopeKubernetesRuleArgs
                    {
                        TargetNamespaces = new[]
                        {
                            "string",
                        },
                    },
                },
            },
            RemoteActionRshell = new Datadog.Inputs.ActionExecutionPolicyScopeRemoteActionRshellArgs
            {
                Rules = new[]
                {
                    new Datadog.Inputs.ActionExecutionPolicyScopeRemoteActionRshellRuleArgs
                    {
                        Access = "string",
                        TargetPaths = new[]
                        {
                            "string",
                        },
                    },
                },
            },
            Scripts = new Datadog.Inputs.ActionExecutionPolicyScopeScriptsArgs
            {
                Rules = new[]
                {
                    new Datadog.Inputs.ActionExecutionPolicyScopeScriptsRuleArgs
                    {
                        TargetScriptNames = new[]
                        {
                            "string",
                        },
                    },
                },
            },
        },
        Targets = new[]
        {
            new Datadog.Inputs.ActionExecutionPolicyTargetArgs
            {
                AgentTags = new[]
                {
                    "string",
                },
                Name = "string",
            },
        },
    });
    
    example, err := datadog.NewActionExecutionPolicy(ctx, "actionExecutionPolicyResource", &datadog.ActionExecutionPolicyArgs{
    	Effect: pulumi.String("string"),
    	Name:   pulumi.String("string"),
    	ActionPattern: &datadog.ActionExecutionPolicyActionPatternArgs{
    		ActionFqns: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		Integration: pulumi.String("string"),
    	},
    	Scope: &datadog.ActionExecutionPolicyScopeArgs{
    		Kubernetes: &datadog.ActionExecutionPolicyScopeKubernetesArgs{
    			Rules: datadog.ActionExecutionPolicyScopeKubernetesRuleArray{
    				&datadog.ActionExecutionPolicyScopeKubernetesRuleArgs{
    					TargetNamespaces: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    		},
    		RemoteActionRshell: &datadog.ActionExecutionPolicyScopeRemoteActionRshellArgs{
    			Rules: datadog.ActionExecutionPolicyScopeRemoteActionRshellRuleArray{
    				&datadog.ActionExecutionPolicyScopeRemoteActionRshellRuleArgs{
    					Access: pulumi.String("string"),
    					TargetPaths: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    		},
    		Scripts: &datadog.ActionExecutionPolicyScopeScriptsArgs{
    			Rules: datadog.ActionExecutionPolicyScopeScriptsRuleArray{
    				&datadog.ActionExecutionPolicyScopeScriptsRuleArgs{
    					TargetScriptNames: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    		},
    	},
    	Targets: datadog.ActionExecutionPolicyTargetArray{
    		&datadog.ActionExecutionPolicyTargetArgs{
    			AgentTags: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Name: pulumi.String("string"),
    		},
    	},
    })
    
    resource "datadog_action_execution_policy" "actionExecutionPolicyResource" {
      lifecycle {
        create_before_destroy = true
      }
      effect = "string"
      name   = "string"
      action_pattern = {
        action_fqns = ["string"]
        integration = "string"
      }
      scope = {
        kubernetes = {
          rules = [{
            target_namespaces = ["string"]
          }]
        }
        remote_action_rshell = {
          rules = [{
            access       = "string"
            target_paths = ["string"]
          }]
        }
        scripts = {
          rules = [{
            target_script_names = ["string"]
          }]
        }
      }
      targets {
        agent_tags = ["string"]
        name       = "string"
      }
    }
    
    var actionExecutionPolicyResource = new ActionExecutionPolicy("actionExecutionPolicyResource", ActionExecutionPolicyArgs.builder()
        .effect("string")
        .name("string")
        .actionPattern(ActionExecutionPolicyActionPatternArgs.builder()
            .actionFqns("string")
            .integration("string")
            .build())
        .scope(ActionExecutionPolicyScopeArgs.builder()
            .kubernetes(ActionExecutionPolicyScopeKubernetesArgs.builder()
                .rules(ActionExecutionPolicyScopeKubernetesRuleArgs.builder()
                    .targetNamespaces("string")
                    .build())
                .build())
            .remoteActionRshell(ActionExecutionPolicyScopeRemoteActionRshellArgs.builder()
                .rules(ActionExecutionPolicyScopeRemoteActionRshellRuleArgs.builder()
                    .access("string")
                    .targetPaths("string")
                    .build())
                .build())
            .scripts(ActionExecutionPolicyScopeScriptsArgs.builder()
                .rules(ActionExecutionPolicyScopeScriptsRuleArgs.builder()
                    .targetScriptNames("string")
                    .build())
                .build())
            .build())
        .targets(ActionExecutionPolicyTargetArgs.builder()
            .agentTags("string")
            .name("string")
            .build())
        .build());
    
    action_execution_policy_resource = datadog.ActionExecutionPolicy("actionExecutionPolicyResource",
        effect="string",
        name="string",
        action_pattern={
            "action_fqns": ["string"],
            "integration": "string",
        },
        scope={
            "kubernetes": {
                "rules": [{
                    "target_namespaces": ["string"],
                }],
            },
            "remote_action_rshell": {
                "rules": [{
                    "access": "string",
                    "target_paths": ["string"],
                }],
            },
            "scripts": {
                "rules": [{
                    "target_script_names": ["string"],
                }],
            },
        },
        targets=[{
            "agent_tags": ["string"],
            "name": "string",
        }])
    
    const actionExecutionPolicyResource = new datadog.ActionExecutionPolicy("actionExecutionPolicyResource", {
        effect: "string",
        name: "string",
        actionPattern: {
            actionFqns: ["string"],
            integration: "string",
        },
        scope: {
            kubernetes: {
                rules: [{
                    targetNamespaces: ["string"],
                }],
            },
            remoteActionRshell: {
                rules: [{
                    access: "string",
                    targetPaths: ["string"],
                }],
            },
            scripts: {
                rules: [{
                    targetScriptNames: ["string"],
                }],
            },
        },
        targets: [{
            agentTags: ["string"],
            name: "string",
        }],
    });
    
    type: datadog:ActionExecutionPolicy
    properties:
        actionPattern:
            actionFqns:
                - string
            integration: string
        effect: string
        name: string
        scope:
            kubernetes:
                rules:
                    - targetNamespaces:
                        - string
            remoteActionRshell:
                rules:
                    - access: string
                      targetPaths:
                        - string
            scripts:
                rules:
                    - targetScriptNames:
                        - string
        targets:
            - agentTags:
                - string
              name: string
    

    ActionExecutionPolicy 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 ActionExecutionPolicy resource accepts the following input properties:

    Effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    Name string
    The name of the execution policy.
    ActionPattern ActionExecutionPolicyActionPattern
    The set of actions this policy applies to. Required.
    Scope ActionExecutionPolicyScope
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    Targets List<ActionExecutionPolicyTarget>
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    Effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    Name string
    The name of the execution policy.
    ActionPattern ActionExecutionPolicyActionPatternArgs
    The set of actions this policy applies to. Required.
    Scope ActionExecutionPolicyScopeArgs
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    Targets []ActionExecutionPolicyTargetArgs
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name string
    The name of the execution policy.
    action_pattern object
    The set of actions this policy applies to. Required.
    scope object
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets list(object)
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    effect String
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name String
    The name of the execution policy.
    actionPattern ActionExecutionPolicyActionPattern
    The set of actions this policy applies to. Required.
    scope ActionExecutionPolicyScope
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets List<ActionExecutionPolicyTarget>
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name string
    The name of the execution policy.
    actionPattern ActionExecutionPolicyActionPattern
    The set of actions this policy applies to. Required.
    scope ActionExecutionPolicyScope
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets ActionExecutionPolicyTarget[]
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    effect str
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name str
    The name of the execution policy.
    action_pattern ActionExecutionPolicyActionPatternArgs
    The set of actions this policy applies to. Required.
    scope ActionExecutionPolicyScopeArgs
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets Sequence[ActionExecutionPolicyTargetArgs]
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    effect String
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name String
    The name of the execution policy.
    actionPattern Property Map
    The set of actions this policy applies to. Required.
    scope Property Map
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets List<Property Map>
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ActionExecutionPolicy resource produces the following output properties:

    CreatedAt string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    CreatedBy string
    The ID of the user who created the execution policy.
    Id string
    The provider-assigned unique ID for this managed resource.
    UpdatedAt string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    UpdatedBy string
    The ID of the user who last updated the execution policy.
    Version int
    The version of the execution policy. Incremented by Datadog on every update.
    CreatedAt string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    CreatedBy string
    The ID of the user who created the execution policy.
    Id string
    The provider-assigned unique ID for this managed resource.
    UpdatedAt string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    UpdatedBy string
    The ID of the user who last updated the execution policy.
    Version int
    The version of the execution policy. Incremented by Datadog on every update.
    created_at string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    created_by string
    The ID of the user who created the execution policy.
    id string
    The provider-assigned unique ID for this managed resource.
    updated_at string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updated_by string
    The ID of the user who last updated the execution policy.
    version number
    The version of the execution policy. Incremented by Datadog on every update.
    createdAt String
    The date and time the execution policy was created, as an RFC3339 timestamp.
    createdBy String
    The ID of the user who created the execution policy.
    id String
    The provider-assigned unique ID for this managed resource.
    updatedAt String
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updatedBy String
    The ID of the user who last updated the execution policy.
    version Integer
    The version of the execution policy. Incremented by Datadog on every update.
    createdAt string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    createdBy string
    The ID of the user who created the execution policy.
    id string
    The provider-assigned unique ID for this managed resource.
    updatedAt string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updatedBy string
    The ID of the user who last updated the execution policy.
    version number
    The version of the execution policy. Incremented by Datadog on every update.
    created_at str
    The date and time the execution policy was created, as an RFC3339 timestamp.
    created_by str
    The ID of the user who created the execution policy.
    id str
    The provider-assigned unique ID for this managed resource.
    updated_at str
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updated_by str
    The ID of the user who last updated the execution policy.
    version int
    The version of the execution policy. Incremented by Datadog on every update.
    createdAt String
    The date and time the execution policy was created, as an RFC3339 timestamp.
    createdBy String
    The ID of the user who created the execution policy.
    id String
    The provider-assigned unique ID for this managed resource.
    updatedAt String
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updatedBy String
    The ID of the user who last updated the execution policy.
    version Number
    The version of the execution policy. Incremented by Datadog on every update.

    Look up Existing ActionExecutionPolicy Resource

    Get an existing ActionExecutionPolicy 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?: ActionExecutionPolicyState, opts?: CustomResourceOptions): ActionExecutionPolicy
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            action_pattern: Optional[ActionExecutionPolicyActionPatternArgs] = None,
            created_at: Optional[str] = None,
            created_by: Optional[str] = None,
            effect: Optional[str] = None,
            name: Optional[str] = None,
            scope: Optional[ActionExecutionPolicyScopeArgs] = None,
            targets: Optional[Sequence[ActionExecutionPolicyTargetArgs]] = None,
            updated_at: Optional[str] = None,
            updated_by: Optional[str] = None,
            version: Optional[int] = None) -> ActionExecutionPolicy
    func GetActionExecutionPolicy(ctx *Context, name string, id IDInput, state *ActionExecutionPolicyState, opts ...ResourceOption) (*ActionExecutionPolicy, error)
    public static ActionExecutionPolicy Get(string name, Input<string> id, ActionExecutionPolicyState? state, CustomResourceOptions? opts = null)
    public static ActionExecutionPolicy get(String name, Output<String> id, ActionExecutionPolicyState state, CustomResourceOptions options)
    resources:  _:    type: datadog:ActionExecutionPolicy    get:      id: ${id}
    import {
      to = datadog_action_execution_policy.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.
    The following state arguments are supported:
    ActionPattern ActionExecutionPolicyActionPattern
    The set of actions this policy applies to. Required.
    CreatedAt string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    CreatedBy string
    The ID of the user who created the execution policy.
    Effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    Name string
    The name of the execution policy.
    Scope ActionExecutionPolicyScope
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    Targets List<ActionExecutionPolicyTarget>
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    UpdatedAt string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    UpdatedBy string
    The ID of the user who last updated the execution policy.
    Version int
    The version of the execution policy. Incremented by Datadog on every update.
    ActionPattern ActionExecutionPolicyActionPatternArgs
    The set of actions this policy applies to. Required.
    CreatedAt string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    CreatedBy string
    The ID of the user who created the execution policy.
    Effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    Name string
    The name of the execution policy.
    Scope ActionExecutionPolicyScopeArgs
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    Targets []ActionExecutionPolicyTargetArgs
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    UpdatedAt string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    UpdatedBy string
    The ID of the user who last updated the execution policy.
    Version int
    The version of the execution policy. Incremented by Datadog on every update.
    action_pattern object
    The set of actions this policy applies to. Required.
    created_at string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    created_by string
    The ID of the user who created the execution policy.
    effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name string
    The name of the execution policy.
    scope object
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets list(object)
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    updated_at string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updated_by string
    The ID of the user who last updated the execution policy.
    version number
    The version of the execution policy. Incremented by Datadog on every update.
    actionPattern ActionExecutionPolicyActionPattern
    The set of actions this policy applies to. Required.
    createdAt String
    The date and time the execution policy was created, as an RFC3339 timestamp.
    createdBy String
    The ID of the user who created the execution policy.
    effect String
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name String
    The name of the execution policy.
    scope ActionExecutionPolicyScope
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets List<ActionExecutionPolicyTarget>
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    updatedAt String
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updatedBy String
    The ID of the user who last updated the execution policy.
    version Integer
    The version of the execution policy. Incremented by Datadog on every update.
    actionPattern ActionExecutionPolicyActionPattern
    The set of actions this policy applies to. Required.
    createdAt string
    The date and time the execution policy was created, as an RFC3339 timestamp.
    createdBy string
    The ID of the user who created the execution policy.
    effect string
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name string
    The name of the execution policy.
    scope ActionExecutionPolicyScope
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets ActionExecutionPolicyTarget[]
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    updatedAt string
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updatedBy string
    The ID of the user who last updated the execution policy.
    version number
    The version of the execution policy. Incremented by Datadog on every update.
    action_pattern ActionExecutionPolicyActionPatternArgs
    The set of actions this policy applies to. Required.
    created_at str
    The date and time the execution policy was created, as an RFC3339 timestamp.
    created_by str
    The ID of the user who created the execution policy.
    effect str
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name str
    The name of the execution policy.
    scope ActionExecutionPolicyScopeArgs
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets Sequence[ActionExecutionPolicyTargetArgs]
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    updated_at str
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updated_by str
    The ID of the user who last updated the execution policy.
    version int
    The version of the execution policy. Incremented by Datadog on every update.
    actionPattern Property Map
    The set of actions this policy applies to. Required.
    createdAt String
    The date and time the execution policy was created, as an RFC3339 timestamp.
    createdBy String
    The ID of the user who created the execution policy.
    effect String
    Whether the policy allows or denies the matched actions. Valid values are allow, deny.
    name String
    The name of the execution policy.
    scope Property Map
    Restricts where the policy applies, beyond actionPattern. When configured, exactly one of kubernetes, scripts or remoteActionRshell must be set, and it must match action_pattern.integration. Omitting this block means the policy has no scope restriction.
    targets List<Property Map>
    A target this policy is scoped to, expressed as a set of Agent tags. Each target is matched independently; omitting all target blocks applies the policy fleet-wide.
    updatedAt String
    The date and time the execution policy was last updated, as an RFC3339 timestamp.
    updatedBy String
    The ID of the user who last updated the execution policy.
    version Number
    The version of the execution policy. Incremented by Datadog on every update.

    Supporting Types

    ActionExecutionPolicyActionPattern, ActionExecutionPolicyActionPatternArgs

    ActionFqns List<string>
    The fully qualified action names this policy matches. Use * to match all actions of the integration, or a fully qualified name prefixed with the integration's action namespace (for example com.datadoghq.script.* for the Script integration).
    Integration string
    The integration the actions belong to. Valid values are INTEGRATION_KUBERNETES, INTEGRATION_SCRIPT, INTEGRATION_REMOTE_ACTION.
    ActionFqns []string
    The fully qualified action names this policy matches. Use * to match all actions of the integration, or a fully qualified name prefixed with the integration's action namespace (for example com.datadoghq.script.* for the Script integration).
    Integration string
    The integration the actions belong to. Valid values are INTEGRATION_KUBERNETES, INTEGRATION_SCRIPT, INTEGRATION_REMOTE_ACTION.
    action_fqns list(string)
    The fully qualified action names this policy matches. Use * to match all actions of the integration, or a fully qualified name prefixed with the integration's action namespace (for example com.datadoghq.script.* for the Script integration).
    integration string
    The integration the actions belong to. Valid values are INTEGRATION_KUBERNETES, INTEGRATION_SCRIPT, INTEGRATION_REMOTE_ACTION.
    actionFqns List<String>
    The fully qualified action names this policy matches. Use * to match all actions of the integration, or a fully qualified name prefixed with the integration's action namespace (for example com.datadoghq.script.* for the Script integration).
    integration String
    The integration the actions belong to. Valid values are INTEGRATION_KUBERNETES, INTEGRATION_SCRIPT, INTEGRATION_REMOTE_ACTION.
    actionFqns string[]
    The fully qualified action names this policy matches. Use * to match all actions of the integration, or a fully qualified name prefixed with the integration's action namespace (for example com.datadoghq.script.* for the Script integration).
    integration string
    The integration the actions belong to. Valid values are INTEGRATION_KUBERNETES, INTEGRATION_SCRIPT, INTEGRATION_REMOTE_ACTION.
    action_fqns Sequence[str]
    The fully qualified action names this policy matches. Use * to match all actions of the integration, or a fully qualified name prefixed with the integration's action namespace (for example com.datadoghq.script.* for the Script integration).
    integration str
    The integration the actions belong to. Valid values are INTEGRATION_KUBERNETES, INTEGRATION_SCRIPT, INTEGRATION_REMOTE_ACTION.
    actionFqns List<String>
    The fully qualified action names this policy matches. Use * to match all actions of the integration, or a fully qualified name prefixed with the integration's action namespace (for example com.datadoghq.script.* for the Script integration).
    integration String
    The integration the actions belong to. Valid values are INTEGRATION_KUBERNETES, INTEGRATION_SCRIPT, INTEGRATION_REMOTE_ACTION.

    ActionExecutionPolicyScope, ActionExecutionPolicyScopeArgs

    Kubernetes ActionExecutionPolicyScopeKubernetes
    Restricts the policy to specific Kubernetes namespaces. Requires action_pattern.integration to be INTEGRATION_KUBERNETES.
    RemoteActionRshell ActionExecutionPolicyScopeRemoteActionRshell
    Restricts the policy to specific remote shell paths. Requires action_pattern.integration to be INTEGRATION_REMOTE_ACTION.
    Scripts ActionExecutionPolicyScopeScripts
    Restricts the policy to specific scripts. Requires action_pattern.integration to be INTEGRATION_SCRIPT.
    Kubernetes ActionExecutionPolicyScopeKubernetes
    Restricts the policy to specific Kubernetes namespaces. Requires action_pattern.integration to be INTEGRATION_KUBERNETES.
    RemoteActionRshell ActionExecutionPolicyScopeRemoteActionRshell
    Restricts the policy to specific remote shell paths. Requires action_pattern.integration to be INTEGRATION_REMOTE_ACTION.
    Scripts ActionExecutionPolicyScopeScripts
    Restricts the policy to specific scripts. Requires action_pattern.integration to be INTEGRATION_SCRIPT.
    kubernetes object
    Restricts the policy to specific Kubernetes namespaces. Requires action_pattern.integration to be INTEGRATION_KUBERNETES.
    remote_action_rshell object
    Restricts the policy to specific remote shell paths. Requires action_pattern.integration to be INTEGRATION_REMOTE_ACTION.
    scripts object
    Restricts the policy to specific scripts. Requires action_pattern.integration to be INTEGRATION_SCRIPT.
    kubernetes ActionExecutionPolicyScopeKubernetes
    Restricts the policy to specific Kubernetes namespaces. Requires action_pattern.integration to be INTEGRATION_KUBERNETES.
    remoteActionRshell ActionExecutionPolicyScopeRemoteActionRshell
    Restricts the policy to specific remote shell paths. Requires action_pattern.integration to be INTEGRATION_REMOTE_ACTION.
    scripts ActionExecutionPolicyScopeScripts
    Restricts the policy to specific scripts. Requires action_pattern.integration to be INTEGRATION_SCRIPT.
    kubernetes ActionExecutionPolicyScopeKubernetes
    Restricts the policy to specific Kubernetes namespaces. Requires action_pattern.integration to be INTEGRATION_KUBERNETES.
    remoteActionRshell ActionExecutionPolicyScopeRemoteActionRshell
    Restricts the policy to specific remote shell paths. Requires action_pattern.integration to be INTEGRATION_REMOTE_ACTION.
    scripts ActionExecutionPolicyScopeScripts
    Restricts the policy to specific scripts. Requires action_pattern.integration to be INTEGRATION_SCRIPT.
    kubernetes ActionExecutionPolicyScopeKubernetes
    Restricts the policy to specific Kubernetes namespaces. Requires action_pattern.integration to be INTEGRATION_KUBERNETES.
    remote_action_rshell ActionExecutionPolicyScopeRemoteActionRshell
    Restricts the policy to specific remote shell paths. Requires action_pattern.integration to be INTEGRATION_REMOTE_ACTION.
    scripts ActionExecutionPolicyScopeScripts
    Restricts the policy to specific scripts. Requires action_pattern.integration to be INTEGRATION_SCRIPT.
    kubernetes Property Map
    Restricts the policy to specific Kubernetes namespaces. Requires action_pattern.integration to be INTEGRATION_KUBERNETES.
    remoteActionRshell Property Map
    Restricts the policy to specific remote shell paths. Requires action_pattern.integration to be INTEGRATION_REMOTE_ACTION.
    scripts Property Map
    Restricts the policy to specific scripts. Requires action_pattern.integration to be INTEGRATION_SCRIPT.

    ActionExecutionPolicyScopeKubernetes, ActionExecutionPolicyScopeKubernetesArgs

    Rules List<ActionExecutionPolicyScopeKubernetesRule>
    A rule restricting the Kubernetes scope to specific namespaces.
    Rules []ActionExecutionPolicyScopeKubernetesRule
    A rule restricting the Kubernetes scope to specific namespaces.
    rules list(object)
    A rule restricting the Kubernetes scope to specific namespaces.
    rules List<ActionExecutionPolicyScopeKubernetesRule>
    A rule restricting the Kubernetes scope to specific namespaces.
    rules ActionExecutionPolicyScopeKubernetesRule[]
    A rule restricting the Kubernetes scope to specific namespaces.
    rules Sequence[ActionExecutionPolicyScopeKubernetesRule]
    A rule restricting the Kubernetes scope to specific namespaces.
    rules List<Property Map>
    A rule restricting the Kubernetes scope to specific namespaces.

    ActionExecutionPolicyScopeKubernetesRule, ActionExecutionPolicyScopeKubernetesRuleArgs

    TargetNamespaces List<string>
    The Kubernetes namespaces this rule applies to.
    TargetNamespaces []string
    The Kubernetes namespaces this rule applies to.
    target_namespaces list(string)
    The Kubernetes namespaces this rule applies to.
    targetNamespaces List<String>
    The Kubernetes namespaces this rule applies to.
    targetNamespaces string[]
    The Kubernetes namespaces this rule applies to.
    target_namespaces Sequence[str]
    The Kubernetes namespaces this rule applies to.
    targetNamespaces List<String>
    The Kubernetes namespaces this rule applies to.

    ActionExecutionPolicyScopeRemoteActionRshell, ActionExecutionPolicyScopeRemoteActionRshellArgs

    Rules List<ActionExecutionPolicyScopeRemoteActionRshellRule>
    A rule restricting remote shell access to specific paths.
    Rules []ActionExecutionPolicyScopeRemoteActionRshellRule
    A rule restricting remote shell access to specific paths.
    rules list(object)
    A rule restricting remote shell access to specific paths.
    rules List<ActionExecutionPolicyScopeRemoteActionRshellRule>
    A rule restricting remote shell access to specific paths.
    rules ActionExecutionPolicyScopeRemoteActionRshellRule[]
    A rule restricting remote shell access to specific paths.
    rules Sequence[ActionExecutionPolicyScopeRemoteActionRshellRule]
    A rule restricting remote shell access to specific paths.
    rules List<Property Map>
    A rule restricting remote shell access to specific paths.

    ActionExecutionPolicyScopeRemoteActionRshellRule, ActionExecutionPolicyScopeRemoteActionRshellRuleArgs

    Access string
    The level of remote shell access granted for the target paths. Valid values are readOnly, readWrite.
    TargetPaths List<string>
    The filesystem paths this rule applies to.
    Access string
    The level of remote shell access granted for the target paths. Valid values are readOnly, readWrite.
    TargetPaths []string
    The filesystem paths this rule applies to.
    access string
    The level of remote shell access granted for the target paths. Valid values are readOnly, readWrite.
    target_paths list(string)
    The filesystem paths this rule applies to.
    access String
    The level of remote shell access granted for the target paths. Valid values are readOnly, readWrite.
    targetPaths List<String>
    The filesystem paths this rule applies to.
    access string
    The level of remote shell access granted for the target paths. Valid values are readOnly, readWrite.
    targetPaths string[]
    The filesystem paths this rule applies to.
    access str
    The level of remote shell access granted for the target paths. Valid values are readOnly, readWrite.
    target_paths Sequence[str]
    The filesystem paths this rule applies to.
    access String
    The level of remote shell access granted for the target paths. Valid values are readOnly, readWrite.
    targetPaths List<String>
    The filesystem paths this rule applies to.

    ActionExecutionPolicyScopeScripts, ActionExecutionPolicyScopeScriptsArgs

    Rules List<ActionExecutionPolicyScopeScriptsRule>
    A rule restricting the script scope to specific script names.
    Rules []ActionExecutionPolicyScopeScriptsRule
    A rule restricting the script scope to specific script names.
    rules list(object)
    A rule restricting the script scope to specific script names.
    rules List<ActionExecutionPolicyScopeScriptsRule>
    A rule restricting the script scope to specific script names.
    rules ActionExecutionPolicyScopeScriptsRule[]
    A rule restricting the script scope to specific script names.
    rules Sequence[ActionExecutionPolicyScopeScriptsRule]
    A rule restricting the script scope to specific script names.
    rules List<Property Map>
    A rule restricting the script scope to specific script names.

    ActionExecutionPolicyScopeScriptsRule, ActionExecutionPolicyScopeScriptsRuleArgs

    TargetScriptNames List<string>
    The script names this rule applies to.
    TargetScriptNames []string
    The script names this rule applies to.
    target_script_names list(string)
    The script names this rule applies to.
    targetScriptNames List<String>
    The script names this rule applies to.
    targetScriptNames string[]
    The script names this rule applies to.
    target_script_names Sequence[str]
    The script names this rule applies to.
    targetScriptNames List<String>
    The script names this rule applies to.

    ActionExecutionPolicyTarget, ActionExecutionPolicyTargetArgs

    AgentTags List<string>
    The Agent tags identifying the target, for example env:prod.
    Name string
    A human-readable name for the target.
    AgentTags []string
    The Agent tags identifying the target, for example env:prod.
    Name string
    A human-readable name for the target.
    agent_tags list(string)
    The Agent tags identifying the target, for example env:prod.
    name string
    A human-readable name for the target.
    agentTags List<String>
    The Agent tags identifying the target, for example env:prod.
    name String
    A human-readable name for the target.
    agentTags string[]
    The Agent tags identifying the target, for example env:prod.
    name string
    A human-readable name for the target.
    agent_tags Sequence[str]
    The Agent tags identifying the target, for example env:prod.
    name str
    A human-readable name for the target.
    agentTags List<String>
    The Agent tags identifying the target, for example env:prod.
    name String
    A human-readable name for the target.

    Import

    The pulumi import command can be used, for example:

    $ pulumi import datadog:index/actionExecutionPolicy:ActionExecutionPolicy my_policy 11111111-2222-3333-4444-555555555555
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Datadog pulumi/pulumi-datadog
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the datadog Terraform Provider.
    datadog logo
    Viewing docs for Datadog v5.11.0
    published on Tuesday, Sep 15, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial