Zero Trust Device Custom Profile
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as cloudflare from "@pulumi/cloudflare";
const exampleZeroTrustDeviceCustomProfile = new cloudflare.ZeroTrustDeviceCustomProfile("example_zero_trust_device_custom_profile", {
accountId: "699d98642c564d2e855e9661899b7252",
match: "identity.email == \"test@cloudflare.com\"",
name: "Allow Developers",
precedence: 100,
allowModeSwitch: true,
allowUpdates: true,
allowedToLeave: true,
autoConnect: 0,
captivePortal: 180,
description: "Policy for test teams.",
disableAutoFallback: true,
enabled: true,
excludes: [{
address: "192.0.2.0/24",
description: "Exclude testing domains from the tunnel",
}],
excludeOfficeIps: true,
includes: [{
address: "192.0.2.0/24",
description: "Include testing domains in the tunnel",
}],
lanAllowMinutes: 30,
lanAllowSubnetSize: 24,
registerInterfaceIpWithDns: true,
serviceModeV2: {
mode: "proxy",
port: 3000,
},
supportUrl: "https://1.1.1.1/help",
switchLocked: true,
tunnelProtocol: "wireguard",
});
import pulumi
import pulumi_cloudflare as cloudflare
example_zero_trust_device_custom_profile = cloudflare.ZeroTrustDeviceCustomProfile("example_zero_trust_device_custom_profile",
account_id="699d98642c564d2e855e9661899b7252",
match="identity.email == \"test@cloudflare.com\"",
name="Allow Developers",
precedence=100,
allow_mode_switch=True,
allow_updates=True,
allowed_to_leave=True,
auto_connect=0,
captive_portal=180,
description="Policy for test teams.",
disable_auto_fallback=True,
enabled=True,
excludes=[{
"address": "192.0.2.0/24",
"description": "Exclude testing domains from the tunnel",
}],
exclude_office_ips=True,
includes=[{
"address": "192.0.2.0/24",
"description": "Include testing domains in the tunnel",
}],
lan_allow_minutes=30,
lan_allow_subnet_size=24,
register_interface_ip_with_dns=True,
service_mode_v2={
"mode": "proxy",
"port": 3000,
},
support_url="https://1.1.1.1/help",
switch_locked=True,
tunnel_protocol="wireguard")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Cloudflare = Pulumi.Cloudflare;
return await Deployment.RunAsync(() =>
{
var exampleZeroTrustDeviceCustomProfile = new Cloudflare.ZeroTrustDeviceCustomProfile("example_zero_trust_device_custom_profile", new()
{
AccountId = "699d98642c564d2e855e9661899b7252",
Match = "identity.email == \"test@cloudflare.com\"",
Name = "Allow Developers",
Precedence = 100,
AllowModeSwitch = true,
AllowUpdates = true,
AllowedToLeave = true,
AutoConnect = 0,
CaptivePortal = 180,
Description = "Policy for test teams.",
DisableAutoFallback = true,
Enabled = true,
Excludes = new[]
{
new Cloudflare.Inputs.ZeroTrustDeviceCustomProfileExcludeArgs
{
Address = "192.0.2.0/24",
Description = "Exclude testing domains from the tunnel",
},
},
ExcludeOfficeIps = true,
Includes = new[]
{
new Cloudflare.Inputs.ZeroTrustDeviceCustomProfileIncludeArgs
{
Address = "192.0.2.0/24",
Description = "Include testing domains in the tunnel",
},
},
LanAllowMinutes = 30,
LanAllowSubnetSize = 24,
RegisterInterfaceIpWithDns = true,
ServiceModeV2 = new Cloudflare.Inputs.ZeroTrustDeviceCustomProfileServiceModeV2Args
{
Mode = "proxy",
Port = 3000,
},
SupportUrl = "https://1.1.1.1/help",
SwitchLocked = true,
TunnelProtocol = "wireguard",
});
});
package main
import (
"github.com/pulumi/pulumi-cloudflare/sdk/v6/go/cloudflare"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cloudflare.NewZeroTrustDeviceCustomProfile(ctx, "example_zero_trust_device_custom_profile", &cloudflare.ZeroTrustDeviceCustomProfileArgs{
AccountId: pulumi.String("699d98642c564d2e855e9661899b7252"),
Match: pulumi.String("identity.email == \"test@cloudflare.com\""),
Name: pulumi.String("Allow Developers"),
Precedence: pulumi.Float64(100),
AllowModeSwitch: pulumi.Bool(true),
AllowUpdates: pulumi.Bool(true),
AllowedToLeave: pulumi.Bool(true),
AutoConnect: pulumi.Float64(0),
CaptivePortal: pulumi.Float64(180),
Description: pulumi.String("Policy for test teams."),
DisableAutoFallback: pulumi.Bool(true),
Enabled: pulumi.Bool(true),
Excludes: cloudflare.ZeroTrustDeviceCustomProfileExcludeArray{
&cloudflare.ZeroTrustDeviceCustomProfileExcludeArgs{
Address: pulumi.String("192.0.2.0/24"),
Description: pulumi.String("Exclude testing domains from the tunnel"),
},
},
ExcludeOfficeIps: pulumi.Bool(true),
Includes: cloudflare.ZeroTrustDeviceCustomProfileIncludeArray{
&cloudflare.ZeroTrustDeviceCustomProfileIncludeArgs{
Address: pulumi.String("192.0.2.0/24"),
Description: pulumi.String("Include testing domains in the tunnel"),
},
},
LanAllowMinutes: pulumi.Float64(30),
LanAllowSubnetSize: pulumi.Float64(24),
RegisterInterfaceIpWithDns: pulumi.Bool(true),
ServiceModeV2: &cloudflare.ZeroTrustDeviceCustomProfileServiceModeV2Args{
Mode: pulumi.String("proxy"),
Port: pulumi.Float64(3000),
},
SupportUrl: pulumi.String("https://1.1.1.1/help"),
SwitchLocked: pulumi.Bool(true),
TunnelProtocol: pulumi.String("wireguard"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.cloudflare.ZeroTrustDeviceCustomProfile;
import com.pulumi.cloudflare.ZeroTrustDeviceCustomProfileArgs;
import com.pulumi.cloudflare.inputs.ZeroTrustDeviceCustomProfileExcludeArgs;
import com.pulumi.cloudflare.inputs.ZeroTrustDeviceCustomProfileIncludeArgs;
import com.pulumi.cloudflare.inputs.ZeroTrustDeviceCustomProfileServiceModeV2Args;
import java.util.List;
import java.util.ArrayList;
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) {
var exampleZeroTrustDeviceCustomProfile = new ZeroTrustDeviceCustomProfile("exampleZeroTrustDeviceCustomProfile", ZeroTrustDeviceCustomProfileArgs.builder()
.accountId("699d98642c564d2e855e9661899b7252")
.match("identity.email == \"test@cloudflare.com\"")
.name("Allow Developers")
.precedence(100.0)
.allowModeSwitch(true)
.allowUpdates(true)
.allowedToLeave(true)
.autoConnect(0.0)
.captivePortal(180.0)
.description("Policy for test teams.")
.disableAutoFallback(true)
.enabled(true)
.excludes(ZeroTrustDeviceCustomProfileExcludeArgs.builder()
.address("192.0.2.0/24")
.description("Exclude testing domains from the tunnel")
.build())
.excludeOfficeIps(true)
.includes(ZeroTrustDeviceCustomProfileIncludeArgs.builder()
.address("192.0.2.0/24")
.description("Include testing domains in the tunnel")
.build())
.lanAllowMinutes(30.0)
.lanAllowSubnetSize(24.0)
.registerInterfaceIpWithDns(true)
.serviceModeV2(ZeroTrustDeviceCustomProfileServiceModeV2Args.builder()
.mode("proxy")
.port(3000.0)
.build())
.supportUrl("https://1.1.1.1/help")
.switchLocked(true)
.tunnelProtocol("wireguard")
.build());
}
}
resources:
exampleZeroTrustDeviceCustomProfile:
type: cloudflare:ZeroTrustDeviceCustomProfile
name: example_zero_trust_device_custom_profile
properties:
accountId: 699d98642c564d2e855e9661899b7252
match: identity.email == "test@cloudflare.com"
name: Allow Developers
precedence: 100
allowModeSwitch: true
allowUpdates: true
allowedToLeave: true
autoConnect: 0
captivePortal: 180
description: Policy for test teams.
disableAutoFallback: true
enabled: true
excludes:
- address: 192.0.2.0/24
description: Exclude testing domains from the tunnel
excludeOfficeIps: true
includes:
- address: 192.0.2.0/24
description: Include testing domains in the tunnel
lanAllowMinutes: 30
lanAllowSubnetSize: 24
registerInterfaceIpWithDns: true
serviceModeV2:
mode: proxy
port: 3000
supportUrl: https://1.1.1.1/help
switchLocked: true
tunnelProtocol: wireguard
Import
$ pulumi import cloudflare:index/zeroTrustDeviceCustomProfile:ZeroTrustDeviceCustomProfile example '<account_id>/<policy_id>'
Properties
Whether to allow devices to leave the organization.
Whether to allow the user to switch WARP between modes.
Whether to receive update notifications when a new version of the client is available.
The amount of time in seconds to reconnect after having been disabled.
Turn on the captive portal after the specified amount of time.
A description of the policy.
If the dns_server
field of a fallback domain is not present, the client will fall back to a best guess of the default/system DNS resolvers unless this policy option is set to true
.
Whether to add Microsoft IPs to Split Tunnel exclusions.
List of routes excluded in the WARP client's tunnel. Both 'exclude' and 'include' cannot be set in the same request.
List of routes included in the WARP client's tunnel. Both 'exclude' and 'include' cannot be set in the same request.
The amount of time in minutes a user is allowed access to their LAN. A value of 0 will allow LAN access until the next WARP reconnection, such as a reboot or a laptop waking from sleep. Note that this field is omitted from the response if null or unset.
The size of the subnet for the local access network. Note that this field is omitted from the response if null or unset.
The precedence of the policy. Lower values indicate higher precedence. Policies will be evaluated in ascending order of this field.
Determines if the operating system will register WARP's local interface IP with your on-premises DNS server.
The URL to launch when the Send Feedback button is clicked.
Whether to allow the user to turn off the WARP switch and disconnect the client.
Determines which tunnel protocol to use.