@twingate/pulumi-twingate
Version:
A Pulumi package for creating and managing Twingate cloud resources.
439 lines (438 loc) • 13.7 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface GetTwingateDNSFilteringProfileAllowedDomains {
/**
* A set of allowed domains.
*/
domains?: string[];
}
export interface GetTwingateDNSFilteringProfileAllowedDomainsArgs {
/**
* A set of allowed domains.
*/
domains?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateDNSFilteringProfileContentCategories {
/**
* Whether to block adult content.
*/
blockAdultContent?: boolean;
/**
* Whether to block dating content.
*/
blockDating?: boolean;
/**
* Whether to block gambling content.
*/
blockGambling?: boolean;
/**
* Whether to block games.
*/
blockGames?: boolean;
/**
* Whether to block piracy sites.
*/
blockPiracy?: boolean;
/**
* Whether to block social media.
*/
blockSocialMedia?: boolean;
/**
* Whether to block streaming content.
*/
blockStreaming?: boolean;
/**
* Whether to force safe search.
*/
enableSafesearch?: boolean;
/**
* Whether to force YouTube to use restricted mode.
*/
enableYoutubeRestrictedMode?: boolean;
}
export interface GetTwingateDNSFilteringProfileContentCategoriesArgs {
/**
* Whether to block adult content.
*/
blockAdultContent?: pulumi.Input<boolean>;
/**
* Whether to block dating content.
*/
blockDating?: pulumi.Input<boolean>;
/**
* Whether to block gambling content.
*/
blockGambling?: pulumi.Input<boolean>;
/**
* Whether to block games.
*/
blockGames?: pulumi.Input<boolean>;
/**
* Whether to block piracy sites.
*/
blockPiracy?: pulumi.Input<boolean>;
/**
* Whether to block social media.
*/
blockSocialMedia?: pulumi.Input<boolean>;
/**
* Whether to block streaming content.
*/
blockStreaming?: pulumi.Input<boolean>;
/**
* Whether to force safe search.
*/
enableSafesearch?: pulumi.Input<boolean>;
/**
* Whether to force YouTube to use restricted mode.
*/
enableYoutubeRestrictedMode?: pulumi.Input<boolean>;
}
export interface GetTwingateDNSFilteringProfileDeniedDomains {
/**
* A set of denied domains.
*/
domains?: string[];
}
export interface GetTwingateDNSFilteringProfileDeniedDomainsArgs {
/**
* A set of denied domains.
*/
domains?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateDNSFilteringProfilePrivacyCategories {
/**
* Whether to block ads and trackers.
*/
blockAdsAndTrackers?: boolean;
/**
* Whether to block affiliate links.
*/
blockAffiliateLinks?: boolean;
/**
* Whether to block disguised third party trackers.
*/
blockDisguisedTrackers?: boolean;
}
export interface GetTwingateDNSFilteringProfilePrivacyCategoriesArgs {
/**
* Whether to block ads and trackers.
*/
blockAdsAndTrackers?: pulumi.Input<boolean>;
/**
* Whether to block affiliate links.
*/
blockAffiliateLinks?: pulumi.Input<boolean>;
/**
* Whether to block disguised third party trackers.
*/
blockDisguisedTrackers?: pulumi.Input<boolean>;
}
export interface GetTwingateDNSFilteringProfileSecurityCategories {
/**
* Whether to block cryptojacking sites.
*/
blockCryptojacking?: boolean;
/**
* Blocks public DNS entries from returning private IP addresses.
*/
blockDnsRebinding?: boolean;
/**
* Blocks DGA domains.
*/
blockDomainGenerationAlgorithms?: boolean;
/**
* Whether to block homoglyph attacks.
*/
blockIdnHomoglyph?: boolean;
/**
* Blocks newly registered domains.
*/
blockNewlyRegisteredDomains?: boolean;
/**
* Block parked domains.
*/
blockParkedDomains?: boolean;
/**
* Blocks typosquatted domains.
*/
blockTyposquatting?: boolean;
/**
* Whether to use Google Safe browsing lists to block content.
*/
enableGoogleSafeBrowsing?: boolean;
/**
* Whether to filter content using threat intelligence feeds.
*/
enableThreatIntelligenceFeeds?: boolean;
}
export interface GetTwingateDNSFilteringProfileSecurityCategoriesArgs {
/**
* Whether to block cryptojacking sites.
*/
blockCryptojacking?: pulumi.Input<boolean>;
/**
* Blocks public DNS entries from returning private IP addresses.
*/
blockDnsRebinding?: pulumi.Input<boolean>;
/**
* Blocks DGA domains.
*/
blockDomainGenerationAlgorithms?: pulumi.Input<boolean>;
/**
* Whether to block homoglyph attacks.
*/
blockIdnHomoglyph?: pulumi.Input<boolean>;
/**
* Blocks newly registered domains.
*/
blockNewlyRegisteredDomains?: pulumi.Input<boolean>;
/**
* Block parked domains.
*/
blockParkedDomains?: pulumi.Input<boolean>;
/**
* Blocks typosquatted domains.
*/
blockTyposquatting?: pulumi.Input<boolean>;
/**
* Whether to use Google Safe browsing lists to block content.
*/
enableGoogleSafeBrowsing?: pulumi.Input<boolean>;
/**
* Whether to filter content using threat intelligence feeds.
*/
enableThreatIntelligenceFeeds?: pulumi.Input<boolean>;
}
export interface GetTwingateResourceProtocols {
/**
* Whether to allow ICMP (ping) traffic
*/
allowIcmp?: boolean;
tcp?: inputs.GetTwingateResourceProtocolsTcp;
udp?: inputs.GetTwingateResourceProtocolsUdp;
}
export interface GetTwingateResourceProtocolsArgs {
/**
* Whether to allow ICMP (ping) traffic
*/
allowIcmp?: pulumi.Input<boolean>;
tcp?: pulumi.Input<inputs.GetTwingateResourceProtocolsTcpArgs>;
udp?: pulumi.Input<inputs.GetTwingateResourceProtocolsUdpArgs>;
}
export interface GetTwingateResourceProtocolsTcp {
/**
* Whether to allow or deny all ports, or restrict protocol access within certain port ranges: Can be `RESTRICTED` (only listed ports are allowed), `ALLOW_ALL`, or `DENY_ALL`
*/
policy?: string;
/**
* List of port ranges between 1 and 65535 inclusive, in the format `100-200` for a range, or `8080` for a single port
*/
ports?: string[];
}
export interface GetTwingateResourceProtocolsTcpArgs {
/**
* Whether to allow or deny all ports, or restrict protocol access within certain port ranges: Can be `RESTRICTED` (only listed ports are allowed), `ALLOW_ALL`, or `DENY_ALL`
*/
policy?: pulumi.Input<string>;
/**
* List of port ranges between 1 and 65535 inclusive, in the format `100-200` for a range, or `8080` for a single port
*/
ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateResourceProtocolsUdp {
/**
* Whether to allow or deny all ports, or restrict protocol access within certain port ranges: Can be `RESTRICTED` (only listed ports are allowed), `ALLOW_ALL`, or `DENY_ALL`
*/
policy?: string;
/**
* List of port ranges between 1 and 65535 inclusive, in the format `100-200` for a range, or `8080` for a single port
*/
ports?: string[];
}
export interface GetTwingateResourceProtocolsUdpArgs {
/**
* Whether to allow or deny all ports, or restrict protocol access within certain port ranges: Can be `RESTRICTED` (only listed ports are allowed), `ALLOW_ALL`, or `DENY_ALL`
*/
policy?: pulumi.Input<string>;
/**
* List of port ranges between 1 and 65535 inclusive, in the format `100-200` for a range, or `8080` for a single port
*/
ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface ProviderCache {
/**
* Specifies whether the provider should cache groups. The default value is `true`.
*/
groupsEnabled?: pulumi.Input<boolean>;
/**
* Specifies whether the provider should cache resources. The default value is `true`.
*/
resourceEnabled?: pulumi.Input<boolean>;
}
export interface ProviderDefaultTags {
/**
* A map of key-value pair tags to be set on all resources by default.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
}
export interface TwingateDNSFilteringProfileAllowedDomains {
/**
* A set of allowed domains. Defaults to an empty set.
*/
domains?: pulumi.Input<pulumi.Input<string>[]>;
isAuthoritative?: pulumi.Input<boolean>;
}
export interface TwingateDNSFilteringProfileContentCategories {
/**
* Whether to block adult content. Defaults to false.
*/
blockAdultContent?: pulumi.Input<boolean>;
/**
* Whether to block dating content. Defaults to false.
*/
blockDating?: pulumi.Input<boolean>;
/**
* Whether to block gambling content. Defaults to false.
*/
blockGambling?: pulumi.Input<boolean>;
/**
* Whether to block games. Defaults to false.
*/
blockGames?: pulumi.Input<boolean>;
/**
* Whether to block piracy sites. Defaults to false.
*/
blockPiracy?: pulumi.Input<boolean>;
/**
* Whether to block social media. Defaults to false.
*/
blockSocialMedia?: pulumi.Input<boolean>;
/**
* Whether to block streaming content. Defaults to false.
*/
blockStreaming?: pulumi.Input<boolean>;
/**
* Whether to force safe search. Defaults to false.
*/
enableSafesearch?: pulumi.Input<boolean>;
/**
* Whether to force YouTube to use restricted mode. Defaults to false.
*/
enableYoutubeRestrictedMode?: pulumi.Input<boolean>;
}
export interface TwingateDNSFilteringProfileDeniedDomains {
/**
* A set of denied domains. Defaults to an empty set.
*/
domains?: pulumi.Input<pulumi.Input<string>[]>;
isAuthoritative?: pulumi.Input<boolean>;
}
export interface TwingateDNSFilteringProfilePrivacyCategories {
/**
* Whether to block ads and trackers. Defaults to false.
*/
blockAdsAndTrackers?: pulumi.Input<boolean>;
/**
* Whether to block affiliate links. Defaults to false.
*/
blockAffiliateLinks?: pulumi.Input<boolean>;
/**
* Whether to block disguised third party trackers. Defaults to false.
*/
blockDisguisedTrackers?: pulumi.Input<boolean>;
}
export interface TwingateDNSFilteringProfileSecurityCategories {
/**
* Whether to block cryptojacking sites. Defaults to true.
*/
blockCryptojacking?: pulumi.Input<boolean>;
/**
* Blocks public DNS entries from returning private IP addresses. Defaults to true.
*/
blockDnsRebinding?: pulumi.Input<boolean>;
/**
* Blocks DGA domains. Defaults to true.
*/
blockDomainGenerationAlgorithms?: pulumi.Input<boolean>;
/**
* Whether to block homoglyph attacks. Defaults to true.
*/
blockIdnHomoglyph?: pulumi.Input<boolean>;
/**
* Blocks newly registered domains. Defaults to true.
*/
blockNewlyRegisteredDomains?: pulumi.Input<boolean>;
/**
* Block parked domains. Defaults to true.
*/
blockParkedDomains?: pulumi.Input<boolean>;
/**
* Blocks typosquatted domains. Defaults to true.
*/
blockTyposquatting?: pulumi.Input<boolean>;
/**
* Whether to use Google Safe browsing lists to block content. Defaults to true.
*/
enableGoogleSafeBrowsing?: pulumi.Input<boolean>;
/**
* Whether to filter content using threat intelligence feeds. Defaults to true.
*/
enableThreatIntelligenceFeeds?: pulumi.Input<boolean>;
}
export interface TwingateResourceAccessGroup {
/**
* This will set the approval model on the edge. The valid values are `AUTOMATIC` and `MANUAL`.
*/
approvalMode?: pulumi.Input<string>;
/**
* Group ID that will have permission to access the Resource.
*/
groupId?: pulumi.Input<string>;
/**
* The ID of a `twingate.getTwingateSecurityPolicy` to use as the access policy for the group IDs in the access block.
*/
securityPolicyId?: pulumi.Input<string>;
/**
* The usage-based auto-lock duration configured on the edge (in days).
*/
usageBasedAutolockDurationDays?: pulumi.Input<number>;
}
export interface TwingateResourceAccessService {
/**
* The ID of the service account that should have access to this Resource.
*/
serviceAccountId?: pulumi.Input<string>;
}
export interface TwingateResourceProtocols {
/**
* Whether to allow ICMP (ping) traffic
*/
allowIcmp?: pulumi.Input<boolean>;
tcp?: pulumi.Input<inputs.TwingateResourceProtocolsTcp>;
udp?: pulumi.Input<inputs.TwingateResourceProtocolsUdp>;
}
export interface TwingateResourceProtocolsTcp {
/**
* Whether to allow or deny all ports, or restrict protocol access within certain port ranges: Can be `RESTRICTED` (only listed ports are allowed), `ALLOW_ALL`, or `DENY_ALL`
*/
policy?: pulumi.Input<string>;
/**
* List of port ranges between 1 and 65535 inclusive, in the format `100-200` for a range, or `8080` for a single port
*/
ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface TwingateResourceProtocolsUdp {
/**
* Whether to allow or deny all ports, or restrict protocol access within certain port ranges: Can be `RESTRICTED` (only listed ports are allowed), `ALLOW_ALL`, or `DENY_ALL`
*/
policy?: pulumi.Input<string>;
/**
* List of port ranges between 1 and 65535 inclusive, in the format `100-200` for a range, or `8080` for a single port
*/
ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export declare namespace config {
}