import * as pulumi from "@pulumi/pulumi"; import { input as inputs } from "../types"; export interface AccessApplicationCorsHeader { /** * Boolean value to determine whether all * HTTP headers are exposed. */ allowAllHeaders?: pulumi.Input; /** * Boolean value to determine whether all * methods are exposed. */ allowAllMethods?: pulumi.Input; /** * Boolean value to determine whether all * origins are permitted to make CORS requests. */ allowAllOrigins?: pulumi.Input; /** * Boolean value to determine if credentials * (cookies, authorization headers, or TLS client certificates) are included with * requests. */ allowCredentials?: pulumi.Input; /** * List of HTTP headers to expose via CORS. */ allowedHeaders?: pulumi.Input[]>; /** * List of methods to expose via CORS. */ allowedMethods?: pulumi.Input[]>; /** * List of origins permitted to make CORS requests. */ allowedOrigins?: pulumi.Input[]>; /** * Integer representing the maximum time a preflight * request will be cached. */ maxAge?: pulumi.Input; } export interface AccessGroupExclude { anyValidServiceToken?: pulumi.Input; authMethod?: pulumi.Input; azures?: pulumi.Input[]>; certificate?: pulumi.Input; commonName?: pulumi.Input; devicePostures?: pulumi.Input[]>; emailDomains?: pulumi.Input[]>; emails?: pulumi.Input[]>; everyone?: pulumi.Input; externalEvaluation?: pulumi.Input; geos?: pulumi.Input[]>; githubs?: pulumi.Input[]>; groups?: pulumi.Input[]>; gsuites?: pulumi.Input[]>; ips?: pulumi.Input[]>; loginMethods?: pulumi.Input[]>; oktas?: pulumi.Input[]>; samls?: pulumi.Input[]>; serviceTokens?: pulumi.Input[]>; } export interface AccessGroupExcludeAzure { identityProviderId?: pulumi.Input; ids?: pulumi.Input[]>; } export interface AccessGroupExcludeExternalEvaluation { evaluateUrl?: pulumi.Input; keysUrl?: pulumi.Input; } export interface AccessGroupExcludeGithub { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Group. */ name?: pulumi.Input; teams?: pulumi.Input[]>; } export interface AccessGroupExcludeGsuite { emails?: pulumi.Input[]>; identityProviderId?: pulumi.Input; } export interface AccessGroupExcludeOkta { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Group. */ names?: pulumi.Input[]>; } export interface AccessGroupExcludeSaml { attributeName?: pulumi.Input; attributeValue?: pulumi.Input; identityProviderId?: pulumi.Input; } export interface AccessGroupInclude { anyValidServiceToken?: pulumi.Input; authMethod?: pulumi.Input; azures?: pulumi.Input[]>; certificate?: pulumi.Input; commonName?: pulumi.Input; devicePostures?: pulumi.Input[]>; emailDomains?: pulumi.Input[]>; emails?: pulumi.Input[]>; everyone?: pulumi.Input; externalEvaluation?: pulumi.Input; geos?: pulumi.Input[]>; githubs?: pulumi.Input[]>; groups?: pulumi.Input[]>; gsuites?: pulumi.Input[]>; ips?: pulumi.Input[]>; loginMethods?: pulumi.Input[]>; oktas?: pulumi.Input[]>; samls?: pulumi.Input[]>; serviceTokens?: pulumi.Input[]>; } export interface AccessGroupIncludeAzure { identityProviderId?: pulumi.Input; ids?: pulumi.Input[]>; } export interface AccessGroupIncludeExternalEvaluation { evaluateUrl?: pulumi.Input; keysUrl?: pulumi.Input; } export interface AccessGroupIncludeGithub { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Group. */ name?: pulumi.Input; teams?: pulumi.Input[]>; } export interface AccessGroupIncludeGsuite { emails?: pulumi.Input[]>; identityProviderId?: pulumi.Input; } export interface AccessGroupIncludeOkta { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Group. */ names?: pulumi.Input[]>; } export interface AccessGroupIncludeSaml { attributeName?: pulumi.Input; attributeValue?: pulumi.Input; identityProviderId?: pulumi.Input; } export interface AccessGroupRequire { anyValidServiceToken?: pulumi.Input; authMethod?: pulumi.Input; azures?: pulumi.Input[]>; certificate?: pulumi.Input; commonName?: pulumi.Input; devicePostures?: pulumi.Input[]>; emailDomains?: pulumi.Input[]>; emails?: pulumi.Input[]>; everyone?: pulumi.Input; externalEvaluation?: pulumi.Input; geos?: pulumi.Input[]>; githubs?: pulumi.Input[]>; groups?: pulumi.Input[]>; gsuites?: pulumi.Input[]>; ips?: pulumi.Input[]>; loginMethods?: pulumi.Input[]>; oktas?: pulumi.Input[]>; samls?: pulumi.Input[]>; serviceTokens?: pulumi.Input[]>; } export interface AccessGroupRequireAzure { identityProviderId?: pulumi.Input; ids?: pulumi.Input[]>; } export interface AccessGroupRequireExternalEvaluation { evaluateUrl?: pulumi.Input; keysUrl?: pulumi.Input; } export interface AccessGroupRequireGithub { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Group. */ name?: pulumi.Input; teams?: pulumi.Input[]>; } export interface AccessGroupRequireGsuite { emails?: pulumi.Input[]>; identityProviderId?: pulumi.Input; } export interface AccessGroupRequireOkta { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Group. */ names?: pulumi.Input[]>; } export interface AccessGroupRequireSaml { attributeName?: pulumi.Input; attributeValue?: pulumi.Input; identityProviderId?: pulumi.Input; } export interface AccessIdentityProviderConfig { apiToken?: pulumi.Input; appsDomain?: pulumi.Input; attributes?: pulumi.Input[]>; authUrl?: pulumi.Input; centrifyAccount?: pulumi.Input; centrifyAppId?: pulumi.Input; certsUrl?: pulumi.Input; clientId?: pulumi.Input; clientSecret?: pulumi.Input; directoryId?: pulumi.Input; emailAttributeName?: pulumi.Input; idpPublicCert?: pulumi.Input; issuerUrl?: pulumi.Input; oktaAccount?: pulumi.Input; oneloginAccount?: pulumi.Input; redirectUrl?: pulumi.Input; signRequest?: pulumi.Input; ssoTargetUrl?: pulumi.Input; supportGroups?: pulumi.Input; tokenUrl?: pulumi.Input; } export interface AccessPolicyApprovalGroup { /** * Number of approvals needed. */ approvalsNeeded: pulumi.Input; /** * List of emails to request approval from. */ emailAddresses?: pulumi.Input[]>; emailListUuid?: pulumi.Input; } export interface AccessPolicyExclude { anyValidServiceToken?: pulumi.Input; authMethod?: pulumi.Input; azures?: pulumi.Input[]>; certificate?: pulumi.Input; commonName?: pulumi.Input; devicePostures?: pulumi.Input[]>; emailDomains?: pulumi.Input[]>; emails?: pulumi.Input[]>; everyone?: pulumi.Input; externalEvaluation?: pulumi.Input; geos?: pulumi.Input[]>; githubs?: pulumi.Input[]>; groups?: pulumi.Input[]>; gsuites?: pulumi.Input[]>; ips?: pulumi.Input[]>; loginMethods?: pulumi.Input[]>; oktas?: pulumi.Input[]>; samls?: pulumi.Input[]>; serviceTokens?: pulumi.Input[]>; } export interface AccessPolicyExcludeAzure { identityProviderId?: pulumi.Input; ids?: pulumi.Input[]>; } export interface AccessPolicyExcludeExternalEvaluation { evaluateUrl?: pulumi.Input; keysUrl?: pulumi.Input; } export interface AccessPolicyExcludeGithub { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Application. */ name?: pulumi.Input; teams?: pulumi.Input[]>; } export interface AccessPolicyExcludeGsuite { emails?: pulumi.Input[]>; identityProviderId?: pulumi.Input; } export interface AccessPolicyExcludeOkta { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Application. */ names?: pulumi.Input[]>; } export interface AccessPolicyExcludeSaml { attributeName?: pulumi.Input; attributeValue?: pulumi.Input; identityProviderId?: pulumi.Input; } export interface AccessPolicyInclude { anyValidServiceToken?: pulumi.Input; authMethod?: pulumi.Input; azures?: pulumi.Input[]>; certificate?: pulumi.Input; commonName?: pulumi.Input; devicePostures?: pulumi.Input[]>; emailDomains?: pulumi.Input[]>; emails?: pulumi.Input[]>; everyone?: pulumi.Input; externalEvaluation?: pulumi.Input; geos?: pulumi.Input[]>; githubs?: pulumi.Input[]>; groups?: pulumi.Input[]>; gsuites?: pulumi.Input[]>; ips?: pulumi.Input[]>; loginMethods?: pulumi.Input[]>; oktas?: pulumi.Input[]>; samls?: pulumi.Input[]>; serviceTokens?: pulumi.Input[]>; } export interface AccessPolicyIncludeAzure { identityProviderId?: pulumi.Input; ids?: pulumi.Input[]>; } export interface AccessPolicyIncludeExternalEvaluation { evaluateUrl?: pulumi.Input; keysUrl?: pulumi.Input; } export interface AccessPolicyIncludeGithub { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Application. */ name?: pulumi.Input; teams?: pulumi.Input[]>; } export interface AccessPolicyIncludeGsuite { emails?: pulumi.Input[]>; identityProviderId?: pulumi.Input; } export interface AccessPolicyIncludeOkta { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Application. */ names?: pulumi.Input[]>; } export interface AccessPolicyIncludeSaml { attributeName?: pulumi.Input; attributeValue?: pulumi.Input; identityProviderId?: pulumi.Input; } export interface AccessPolicyRequire { anyValidServiceToken?: pulumi.Input; authMethod?: pulumi.Input; azures?: pulumi.Input[]>; certificate?: pulumi.Input; commonName?: pulumi.Input; devicePostures?: pulumi.Input[]>; emailDomains?: pulumi.Input[]>; emails?: pulumi.Input[]>; everyone?: pulumi.Input; externalEvaluation?: pulumi.Input; geos?: pulumi.Input[]>; githubs?: pulumi.Input[]>; groups?: pulumi.Input[]>; gsuites?: pulumi.Input[]>; ips?: pulumi.Input[]>; loginMethods?: pulumi.Input[]>; oktas?: pulumi.Input[]>; samls?: pulumi.Input[]>; serviceTokens?: pulumi.Input[]>; } export interface AccessPolicyRequireAzure { identityProviderId?: pulumi.Input; ids?: pulumi.Input[]>; } export interface AccessPolicyRequireExternalEvaluation { evaluateUrl?: pulumi.Input; keysUrl?: pulumi.Input; } export interface AccessPolicyRequireGithub { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Application. */ name?: pulumi.Input; teams?: pulumi.Input[]>; } export interface AccessPolicyRequireGsuite { emails?: pulumi.Input[]>; identityProviderId?: pulumi.Input; } export interface AccessPolicyRequireOkta { identityProviderId?: pulumi.Input; /** * Friendly name of the Access Application. */ names?: pulumi.Input[]>; } export interface AccessPolicyRequireSaml { attributeName?: pulumi.Input; attributeValue?: pulumi.Input; identityProviderId?: pulumi.Input; } export interface AccessRuleConfiguration { /** * The request property to target. Allowed values: "ip", "ip6", "ipRange", "asn", "country" */ target: pulumi.Input; /** * The value to target. Depends on target's type. */ value: pulumi.Input; } export interface ApiTokenCondition { /** * Request IP related conditions. See the definition below. */ requestIp?: pulumi.Input; } export interface ApiTokenConditionRequestIp { /** * List of IPv4/IPv6 CIDR addresses where * the Token can be used from. */ ins?: pulumi.Input[]>; /** * List of IPv4/IPv6 CIDR addresses where * the Token cannot be used from. */ notIns?: pulumi.Input[]>; } export interface ApiTokenPolicy { /** * Policy effect. Valid values are `allow` or `deny`. `allow` * is set as default. */ effect?: pulumi.Input; /** * List of permissions groups * ids ([see official docs](https://developers.cloudflare.com/api/tokens/create/permissions)). */ permissionGroups: pulumi.Input[]>; /** * Map describes what operations against which resources * are allowed or denied. */ resources: pulumi.Input<{ [key: string]: pulumi.Input; }>; } export interface CertificatePackValidationError { message?: pulumi.Input; } export interface CertificatePackValidationRecord { cnameName?: pulumi.Input; cnameTarget?: pulumi.Input; emails?: pulumi.Input[]>; httpBody?: pulumi.Input; httpUrl?: pulumi.Input; txtName?: pulumi.Input; txtValue?: pulumi.Input; } export interface CustomHostnameSsl { certificateAuthority?: pulumi.Input; /** * If a custom uploaded certificate is used. */ customCertificate?: pulumi.Input; /** * The key for a custom uploaded certificate. */ customKey?: pulumi.Input; /** * Domain control validation (DCV) method used for this * hostname. Valid values are `"txt"`, `"http"` and `"email"`. */ method?: pulumi.Input; /** * SSL/TLS settings for the certificate. See further notes below. */ settings?: pulumi.Input[]>; status?: pulumi.Input; /** * Level of validation to be used for this hostname. Domain validation ("dv") must be used. */ type?: pulumi.Input; validationErrors?: pulumi.Input[]>; validationRecords?: pulumi.Input[]>; /** * Indicates whether the certificate covers a wildcard. */ wildcard?: pulumi.Input; } export interface CustomHostnameSslSetting { /** * List of SSL/TLS ciphers to associate with this certificate. */ ciphers?: pulumi.Input[]>; /** * Whether or not early hints should be supported. Valid values are `"on"` or `"off"`. */ earlyHints?: pulumi.Input; /** * Whether or not HTTP2 should be supported. Valid values are `"on"` or `"off"`. */ http2?: pulumi.Input; /** * Lowest version of TLS this certificate should * support. Valid values are `"1.0"`, `"1.1"`, `"1.2"` and `"1.3"`. */ minTlsVersion?: pulumi.Input; /** * Whether or not TLSv1.3 should be supported. Valid values are `"on"` or `"off"`. */ tls13?: pulumi.Input; } export interface CustomHostnameSslValidationError { message?: pulumi.Input; } export interface CustomHostnameSslValidationRecord { cnameName?: pulumi.Input; cnameTarget?: pulumi.Input; emails?: pulumi.Input[]>; httpBody?: pulumi.Input; httpUrl?: pulumi.Input; txtName?: pulumi.Input; txtValue?: pulumi.Input; } export interface CustomSslCustomSslOptions { /** * Method of building intermediate certificate chain. A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it. Valid values are `ubiquitous` (default), `optimal`, `force`. */ bundleMethod?: pulumi.Input; /** * Certificate certificate and the intermediate(s) */ certificate?: pulumi.Input; /** * Specifies the region where your private key can be held locally. Valid values are `us`, `eu`, `highestSecurity`. */ geoRestrictions?: pulumi.Input; /** * Certificate's private key */ privateKey?: pulumi.Input; /** * Whether to enable support for legacy clients which do not include SNI in the TLS handshake. Valid values are `legacyCustom` (default), `sniCustom`. */ type?: pulumi.Input; } export interface CustomSslCustomSslPriority { id?: pulumi.Input; priority?: pulumi.Input; } export interface DevicePostureIntegrationConfig { /** * The third-party API's URL. */ apiUrl?: pulumi.Input; /** * The third-party authorization API URL. */ authUrl?: pulumi.Input; /** * The client identifier for authenticating API calls. */ clientId?: pulumi.Input; /** * The client secret for authenticating API calls. */ clientSecret?: pulumi.Input; } export interface DevicePostureRuleInput { complianceStatus?: pulumi.Input; connectionId?: pulumi.Input; /** * = (Required) The domain that the client must join. */ domain?: pulumi.Input; /** * = (Required) True if the firewall must be enabled. */ enabled?: pulumi.Input; /** * Checks if the file should exist. */ exists?: pulumi.Input; /** * The Teams List id. */ id?: pulumi.Input; /** * = (Required) The version comparison operator in (>,>=,<,<=,==) */ operator?: pulumi.Input; /** * The path to the application. */ path?: pulumi.Input; /** * = (Required) True if all drives must be encrypted. */ requireAll?: pulumi.Input; /** * Checks if the application should be running. */ running?: pulumi.Input; /** * The sha256 hash of the file. */ sha256?: pulumi.Input; /** * The thumbprint of the application certificate. */ thumbprint?: pulumi.Input; /** * = (Required) The operating system semantic version. */ version?: pulumi.Input; } export interface DevicePostureRuleMatch { /** * The platform of the device. Valid values are `windows`, `mac`, `linux`, `android`, and `ios`. */ platform?: pulumi.Input; } export interface FallbackDomainDomain { /** * The description of the domain. */ description?: pulumi.Input; /** * The DNS servers to receive the redirected request. */ dnsServers?: pulumi.Input[]>; /** * The domain to ignore DNS requests. */ suffix?: pulumi.Input; } export interface GetWafGroupsFilter { /** * Mode of the WAF Rule Groups to lookup. Valid values: on and off. */ mode?: string; /** * A regular expression matching the name of the WAF Rule Groups to lookup. */ name?: string; } export interface GetWafGroupsFilterArgs { /** * Mode of the WAF Rule Groups to lookup. Valid values: on and off. */ mode?: pulumi.Input; /** * A regular expression matching the name of the WAF Rule Groups to lookup. */ name?: pulumi.Input; } export interface GetWafPackagesFilter { /** * Action mode of the WAF Rule Packages to lookup. Valid values: simulate, block and challenge. */ actionMode?: string; /** * Detection mode of the WAF Rule Packages to lookup. */ detectionMode?: string; /** * A regular expression matching the name of the WAF Rule Packages to lookup. */ name?: string; /** * Sensitivity of the WAF Rule Packages to lookup. Valid values: high, medium, low and off. */ sensitivity?: string; } export interface GetWafPackagesFilterArgs { /** * Action mode of the WAF Rule Packages to lookup. Valid values: simulate, block and challenge. */ actionMode?: pulumi.Input; /** * Detection mode of the WAF Rule Packages to lookup. */ detectionMode?: pulumi.Input; /** * A regular expression matching the name of the WAF Rule Packages to lookup. */ name?: pulumi.Input; /** * Sensitivity of the WAF Rule Packages to lookup. Valid values: high, medium, low and off. */ sensitivity?: pulumi.Input; } export interface GetWafRulesFilter { /** * A regular expression matching the description of the WAF Rules to lookup. */ description?: string; /** * The ID of the WAF Rule Group in which the WAF Rules to lookup have to be. */ groupId?: string; /** * Mode of the WAF Rules to lookup. Valid values: one of ["block", "challenge", "default", "disable", "simulate"] or ["on", "off"] depending on the WAF Rule type. */ mode?: string; } export interface GetWafRulesFilterArgs { /** * A regular expression matching the description of the WAF Rules to lookup. */ description?: pulumi.Input; /** * The ID of the WAF Rule Group in which the WAF Rules to lookup have to be. */ groupId?: pulumi.Input; /** * Mode of the WAF Rules to lookup. Valid values: one of ["block", "challenge", "default", "disable", "simulate"] or ["on", "off"] depending on the WAF Rule type. */ mode?: pulumi.Input; } export interface GetZonesFilter { /** * Only search for zones in this account. */ accountId?: string; /** * The type of search to perform for the `name` value * when querying the zone API. Valid values: `"exact"` and `"contains"`. Defaults * to `"exact"`. */ lookupType?: string; /** * A RE2 compatible regular expression to filter the * results. This is performed client side whereas the `name` and `lookupType` * are performed on the Cloudflare server side. */ match?: string; /** * A string value to search for. */ name?: string; /** * Paused status of the zone to lookup. Valid values are * `true` or `false`. */ paused?: boolean; /** * Status of the zone to lookup. Valid values: `"active"`, * `"pending"`, `"initializing"`, `"moved"`, `"deleted"`, `"deactivated"` and * `"read only"`. */ status?: string; } export interface GetZonesFilterArgs { /** * Only search for zones in this account. */ accountId?: pulumi.Input; /** * The type of search to perform for the `name` value * when querying the zone API. Valid values: `"exact"` and `"contains"`. Defaults * to `"exact"`. */ lookupType?: pulumi.Input; /** * A RE2 compatible regular expression to filter the * results. This is performed client side whereas the `name` and `lookupType` * are performed on the Cloudflare server side. */ match?: pulumi.Input; /** * A string value to search for. */ name?: pulumi.Input; /** * Paused status of the zone to lookup. Valid values are * `true` or `false`. */ paused?: pulumi.Input; /** * Status of the zone to lookup. Valid values: `"active"`, * `"pending"`, `"initializing"`, `"moved"`, `"deleted"`, `"deactivated"` and * `"read only"`. */ status?: pulumi.Input; } export interface HealthcheckHeader { /** * The header name. */ header: pulumi.Input; /** * A list of string values for the header. */ values: pulumi.Input[]>; } export interface IpListItem { /** * A note that can be used to annotate the item. */ comment?: pulumi.Input; /** * The IPv4 address, IPv4 CIDR or IPv6 CIDR. IPv6 CIDRs are limited to a maximum of /64. */ value: pulumi.Input; } export interface LoadBalancerMonitorHeader { /** * The header name. */ header: pulumi.Input; /** * A list of string values for the header. */ values: pulumi.Input[]>; } export interface LoadBalancerPoolLoadShedding { /** * Percent of traffic to shed 0 - 100. */ defaultPercent?: pulumi.Input; /** * Method of shedding traffic "", "hash" or "random". */ defaultPolicy?: pulumi.Input; /** * Percent of session traffic to shed 0 - 100. */ sessionPercent?: pulumi.Input; /** * Method of shedding session traffic "" or "hash". */ sessionPolicy?: pulumi.Input; } export interface LoadBalancerPoolOrigin { /** * The IP address (IPv4 or IPv6) of the origin, or the publicly addressable hostname. Hostnames entered here should resolve directly to the origin, and not be a hostname proxied by Cloudflare. */ address: pulumi.Input; /** * Whether to enable (the default) this origin within the Pool. Disabled origins will not receive traffic and are excluded from health checks. The origin will only be disabled for the current pool. */ enabled?: pulumi.Input; /** * The header name. */ headers?: pulumi.Input[]>; /** * A human-identifiable name for the origin. */ name: pulumi.Input; /** * The weight (0.01 - 1.00) of this origin, relative to other origins in the pool. Equal values mean equal weighting. A weight of 0 means traffic will not be sent to this origin, but health is still checked. Default: 1. */ weight?: pulumi.Input; } export interface LoadBalancerPoolOriginHeader { /** * The header name. */ header: pulumi.Input; /** * A list of string values for the header. */ values: pulumi.Input[]>; } export interface LoadBalancerPoolOriginSteering { /** * Either "random" (default) or "hash". */ policy?: pulumi.Input; } export interface LoadBalancerPopPool { /** * A list of pool IDs in failover priority to use for traffic reaching the given PoP. */ poolIds: pulumi.Input[]>; /** * A 3-letter code for the Point-of-Presence. Allowed values can be found in the list of datacenters on the [status page](https://www.cloudflarestatus.com/). Multiple entries should not be specified with the same PoP. */ pop: pulumi.Input; } export interface LoadBalancerRegionPool { /** * A list of pool IDs in failover priority to use for traffic reaching the given PoP. */ poolIds: pulumi.Input[]>; /** * A region code which must be in the list defined [here](https://support.cloudflare.com/hc/en-us/articles/115000540888-Load-Balancing-Geographic-Regions). Multiple entries should not be specified with the same region. */ region: pulumi.Input; } export interface LoadBalancerRule { /** * The statement to evaluate to determine if this rules effects should be applied. An empty condition is always true. See [load balancing rules](https://developers.cloudflare.com/load-balancing/understand-basics/load-balancing-rules). */ condition?: pulumi.Input; /** * A disabled rule will be be executed. */ disabled?: pulumi.Input; /** * Settings for a HTTP response to return directly to the eyeball if the condition is true. Note: overrides or fixedResponse must be set. See the field documentation below. */ fixedResponse?: pulumi.Input; /** * Human readable name for this rule. */ name: pulumi.Input; /** * The Load Balancer settings to alter if this rules condition is true. Note: overrides or fixedResponse must be set. See the field documentation below. */ overrides?: pulumi.Input[]>; /** * Priority used when determining the order of rule execution. Lower values are executed first. If not provided list order will be used. */ priority?: pulumi.Input; /** * Terminates indicates that if this rule is true no further rules should be executed. Note: setting a fixedResponse forces this field to true. */ terminates?: pulumi.Input; } export interface LoadBalancerRuleFixedResponse { /** * The value of the HTTP context-type header for this fixed response. */ contentType?: pulumi.Input; /** * The value of the HTTP location header for this fixed response. */ location?: pulumi.Input; /** * The text used as the html body for this fixed response. */ messageBody?: pulumi.Input; /** * The HTTP status code used for this fixed response. */ statusCode?: pulumi.Input; } export interface LoadBalancerRuleOverride { /** * See defaultPoolIds above. */ defaultPools?: pulumi.Input[]>; /** * See fallbackPoolId above. */ fallbackPool?: pulumi.Input; /** * See popPools above. */ popPools?: pulumi.Input[]>; /** * See regionPools above. */ regionPools?: pulumi.Input[]>; /** * See field above. */ sessionAffinity?: pulumi.Input; /** * See field above. */ sessionAffinityAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * See field above. */ sessionAffinityTtl?: pulumi.Input; /** * See field above. */ steeringPolicy?: pulumi.Input; /** * See field above. */ ttl?: pulumi.Input; } export interface LoadBalancerRuleOverridePopPool { /** * A list of pool IDs in failover priority to use for traffic reaching the given PoP. */ poolIds: pulumi.Input[]>; /** * A 3-letter code for the Point-of-Presence. Allowed values can be found in the list of datacenters on the [status page](https://www.cloudflarestatus.com/). Multiple entries should not be specified with the same PoP. */ pop: pulumi.Input; } export interface LoadBalancerRuleOverrideRegionPool { /** * A list of pool IDs in failover priority to use for traffic reaching the given PoP. */ poolIds: pulumi.Input[]>; /** * A region code which must be in the list defined [here](https://support.cloudflare.com/hc/en-us/articles/115000540888-Load-Balancing-Geographic-Regions). Multiple entries should not be specified with the same region. */ region: pulumi.Input; } export interface NotificationPolicyEmailIntegration { id: pulumi.Input; /** * The name of the notification policy. */ name?: pulumi.Input; } export interface NotificationPolicyFilters { /** * State of the pool to alert on. Example: `"true"`, `"false"`. */ enableds?: pulumi.Input[]>; /** * Identifier health check. */ healthCheckIds?: pulumi.Input[]>; /** * A numerical limit. Example: `"100"` */ limits?: pulumi.Input[]>; /** * Load balancer pool identifier. */ poolIds?: pulumi.Input[]>; /** * Product name. Available values: `"workerRequests"`, `"workerDurableObjectsRequests"`, `"workerDurableObjectsDuration"`, `"workerDurableObjectsDataTransfer"`, `"workerDurableObjectsStoredData"`, `"workerDurableObjectsStorageDeletes"`, `"workerDurableObjectsStorageWrites"`, `"workerDurableObjectsStorageReads"`. */ products?: pulumi.Input[]>; services?: pulumi.Input[]>; /** * A numerical limit. Example: `"99.9"` */ slos?: pulumi.Input[]>; /** * Status to alert on. Example: `"Unhealthy"`, `"Healthy"`. */ statuses?: pulumi.Input[]>; /** * A list of zone identifiers. */ zones?: pulumi.Input[]>; } export interface NotificationPolicyPagerdutyIntegration { id: pulumi.Input; /** * The name of the notification policy. */ name?: pulumi.Input; } export interface NotificationPolicyWebhooksIntegration { id: pulumi.Input; /** * The name of the notification policy. */ name?: pulumi.Input; } export interface PageRuleActions { /** * Whether this action is `"on"` or `"off"`. */ alwaysOnline?: pulumi.Input; /** * Boolean of whether this action is enabled. Default: false. */ alwaysUseHttps?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ automaticHttpsRewrites?: pulumi.Input; /** * The Time To Live for the browser cache. `0` means 'Respect Existing Headers' */ browserCacheTtl?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ browserCheck?: pulumi.Input; /** * String value of cookie name to conditionally bypass cache the page. */ bypassCacheOnCookie?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ cacheByDeviceType?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ cacheDeceptionArmor?: pulumi.Input; /** * Controls how Cloudflare creates Cache Keys used to identify files in cache. See below for full description. */ cacheKeyFields?: pulumi.Input; /** * Whether to set the cache level to `"bypass"`, `"basic"`, `"simplified"`, `"aggressive"`, or `"cacheEverything"`. */ cacheLevel?: pulumi.Input; /** * String value of cookie name to conditionally cache the page. */ cacheOnCookie?: pulumi.Input; /** * Set cache TTL based on the response status from the origin web server. Can be specified multiple times. See below for full description. */ cacheTtlByStatuses?: pulumi.Input[]>; /** * Boolean of whether this action is enabled. Default: false. */ disableApps?: pulumi.Input; /** * Boolean of whether this action is enabled. Default: false. */ disablePerformance?: pulumi.Input; /** * Boolean of whether this action is enabled. Default: false. */ disableRailgun?: pulumi.Input; /** * Boolean of whether this action is enabled. Default: false. */ disableSecurity?: pulumi.Input; /** * Boolean of whether this action is enabled. Default: false. */ disableZaraz?: pulumi.Input; /** * The Time To Live for the edge cache. */ edgeCacheTtl?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ emailObfuscation?: pulumi.Input; /** * Whether origin Cache-Control action is `"on"` or `"off"`. */ explicitCacheControl?: pulumi.Input; /** * The URL to forward to, and with what status. See below. */ forwardingUrl?: pulumi.Input; /** * Value of the Host header to send. */ hostHeaderOverride?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ ipGeolocation?: pulumi.Input; /** * The configuration for HTML, CSS and JS minification. See below for full list of options. */ minifies?: pulumi.Input[]>; /** * Whether this action is `"on"` or `"off"`. */ mirage?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ opportunisticEncryption?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ originErrorPagePassThru?: pulumi.Input; /** * Whether this action is `"off"`, `"lossless"` or `"lossy"`. */ polish?: pulumi.Input; /** * Overridden origin server name. */ resolveOverride?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ respectStrongEtag?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ responseBuffering?: pulumi.Input; /** * Whether to set the rocket loader to `"on"`, `"off"`. */ rocketLoader?: pulumi.Input; /** * Whether to set the security level to `"off"`, `"essentiallyOff"`, `"low"`, `"medium"`, `"high"`, or `"underAttack"`. */ securityLevel?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ serverSideExclude?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ sortQueryStringForCache?: pulumi.Input; /** * Whether to set the SSL mode to `"off"`, `"flexible"`, `"full"`, `"strict"`, or `"originPull"`. */ ssl?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ trueClientIpHeader?: pulumi.Input; /** * Whether this action is `"on"` or `"off"`. */ waf?: pulumi.Input; } export interface PageRuleActionsCacheKeyFields { /** * Controls what cookies go into Cache Key: */ cookie: pulumi.Input; /** * Controls what HTTP headers go into Cache Key: */ header: pulumi.Input; /** * Controls which Host header goes into Cache Key: */ host: pulumi.Input; /** * Controls which URL query string parameters go into the Cache Key. */ queryString: pulumi.Input; /** * Controls which end user-related features go into the Cache Key. */ user: pulumi.Input; } export interface PageRuleActionsCacheKeyFieldsCookie { /** * Check for presence of specified HTTP headers, without including their actual values. */ checkPresences?: pulumi.Input[]>; /** * Only use values of specified query string parameters in Cache Key. */ includes?: pulumi.Input[]>; } export interface PageRuleActionsCacheKeyFieldsHeader { /** * Check for presence of specified HTTP headers, without including their actual values. */ checkPresences?: pulumi.Input[]>; /** * Exclude these query string parameters from Cache Key. */ excludes?: pulumi.Input[]>; /** * Only use values of specified query string parameters in Cache Key. */ includes?: pulumi.Input[]>; } export interface PageRuleActionsCacheKeyFieldsHost { /** * `false` (default) - includes the Host header in the HTTP request sent to the origin; `true` - includes the Host header that was resolved to get the origin IP for the request (e.g. changed with Resolve Override Page Rule). */ resolved?: pulumi.Input; } export interface PageRuleActionsCacheKeyFieldsQueryString { /** * Exclude these query string parameters from Cache Key. */ excludes?: pulumi.Input[]>; /** * `false` (default) - all query string parameters are used for Cache Key, unless explicitly excluded; `true` - all query string parameters are ignored; value is ignored if any of `exclude` or `include` is non-empty. */ ignore?: pulumi.Input; /** * Only use values of specified query string parameters in Cache Key. */ includes?: pulumi.Input[]>; } export interface PageRuleActionsCacheKeyFieldsUser { /** * `true` - classifies a request as “mobile”, “desktop”, or “tablet” based on the User Agent; defaults to `false`. */ deviceType?: pulumi.Input; /** * `true` - includes the client’s country, derived from the IP address; defaults to `false`. */ geo?: pulumi.Input; /** * `true` - includes the first language code contained in the `Accept-Language` header sent by the client; defaults to `false`. */ lang?: pulumi.Input; } export interface PageRuleActionsCacheTtlByStatus { /** * A HTTP code (e.g. `404`) or range of codes (e.g. `400-499`) */ codes: pulumi.Input; /** * Duration a resource lives in the Cloudflare cache. * * positive number - cache for specified duration in seconds */ ttl: pulumi.Input; } export interface PageRuleActionsForwardingUrl { /** * The status code to use for the redirection. */ statusCode: pulumi.Input; /** * The URL to which the page rule should forward. */ url: pulumi.Input; } export interface PageRuleActionsMinify { /** * Whether CSS should be minified. Valid values are `"on"` or `"off"`. */ css: pulumi.Input; /** * Whether HTML should be minified. Valid values are `"on"` or `"off"`. */ html: pulumi.Input; /** * Whether Javascript should be minified. Valid values are `"on"` or `"off"`. */ js: pulumi.Input; } export interface RateLimitAction { /** * The type of action to perform. Allowable values are 'simulate', 'ban', 'challenge', 'js_challenge' and 'managed_challenge'. */ mode: pulumi.Input; /** * Custom content-type and body to return, this overrides the custom error for the zone. This field is not required. Omission will result in default HTML error page. Definition below. */ response?: pulumi.Input; /** * The time in seconds as an integer to perform the mitigation action. This field is required if the `mode` is either `simulate` or `ban`. Must be the same or greater than the period (min: 1, max: 86400). */ timeout?: pulumi.Input; } export interface RateLimitActionResponse { /** * The body to return, the content here should conform to the content_type. */ body: pulumi.Input; /** * The content-type of the body, must be one of: 'text/plain', 'text/xml', 'application/json'. */ contentType: pulumi.Input; } export interface RateLimitCorrelate { /** * If set to 'nat', NAT support will be enabled for rate limiting. */ by?: pulumi.Input; } export interface RateLimitMatch { /** * Matches HTTP requests (from the client to Cloudflare). See definition below. */ request?: pulumi.Input; /** * Custom content-type and body to return, this overrides the custom error for the zone. This field is not required. Omission will result in default HTML error page. Definition below. */ response?: pulumi.Input; } export interface RateLimitMatchRequest { /** * HTTP Methods, can be a subset ['POST','PUT'] or all ['\_ALL\_']. Default: ['\_ALL\_']. */ methods?: pulumi.Input[]>; /** * HTTP Schemes, can be one ['HTTPS'], both ['HTTP','HTTPS'] or all ['\_ALL\_']. Default: ['\_ALL\_']. */ schemes?: pulumi.Input[]>; /** * The URL pattern to match comprised of the host and path, i.e. example.org/path. Wildcard are expanded to match applicable traffic, query strings are not matched. Use * for all traffic to your zone. Default: '*'. */ urlPattern?: pulumi.Input; } export interface RateLimitMatchResponse { /** * block is a list of maps with the following attributes: */ headers?: pulumi.Input; }>[]>; /** * Only count traffic that has come from your origin servers. If true, cached items that Cloudflare serve will not count towards rate limiting. Default: `true`. */ originTraffic?: pulumi.Input; /** * HTTP Status codes, can be one [403], many [401,403] or indicate all by not providing this value. */ statuses?: pulumi.Input[]>; } export interface RecordData { algorithm?: pulumi.Input; altitude?: pulumi.Input; certificate?: pulumi.Input; content?: pulumi.Input; digest?: pulumi.Input; digestType?: pulumi.Input; fingerprint?: pulumi.Input; flags?: pulumi.Input; keyTag?: pulumi.Input; latDegrees?: pulumi.Input; latDirection?: pulumi.Input; latMinutes?: pulumi.Input; latSeconds?: pulumi.Input; longDegrees?: pulumi.Input; longDirection?: pulumi.Input; longMinutes?: pulumi.Input; longSeconds?: pulumi.Input; matchingType?: pulumi.Input; /** * The name of the record */ name?: pulumi.Input; order?: pulumi.Input; port?: pulumi.Input; precisionHorz?: pulumi.Input; precisionVert?: pulumi.Input; preference?: pulumi.Input; /** * The priority of the record */ priority?: pulumi.Input; proto?: pulumi.Input; protocol?: pulumi.Input; publicKey?: pulumi.Input; regex?: pulumi.Input; replacement?: pulumi.Input; selector?: pulumi.Input; service?: pulumi.Input; size?: pulumi.Input; tag?: pulumi.Input; target?: pulumi.Input; /** * The type of the record */ type?: pulumi.Input; usage?: pulumi.Input; /** * The (string) value of the record. Either this or `data` must be specified */ value?: pulumi.Input; weight?: pulumi.Input; } export interface RulesetRule { /** * Action to perform in the rule-level override. Valid values are `"block"`, `"challenge"`, `"ddosDynamic"`, `"execute"`, `"forceConnectionClose"`, `"jsChallenge"`, `"managedChallenge"`, `"log"`, `"rewrite"`, `"score"`, or `"skip"`. */ action?: pulumi.Input; /** * List of parameters that configure the behavior of the ruleset rule action (refer to the nested schema). */ actionParameters?: pulumi.Input; /** * Brief summary of the ruleset rule and its intended use. */ description?: pulumi.Input; /** * Defines if the current rule-level override enables or disables the rule. */ enabled?: pulumi.Input; /** * List of parameters that configure exposed credential checks (refer to the nested schema). */ exposedCredentialCheck?: pulumi.Input; /** * Expression that defines the updated (dynamic) value of the URI path or query string component. Conflicts with `value`. */ expression: pulumi.Input; /** * Rule ID to apply the override to. */ id?: pulumi.Input; /** * List parameters to configure how the rule generates logs (refer to the nested schema). */ logging?: pulumi.Input; /** * List of parameters that configure HTTP rate limiting behaviour (refer to the nested schema). */ ratelimit?: pulumi.Input; /** * Rule reference. */ ref?: pulumi.Input; version?: pulumi.Input; } export interface RulesetRuleActionParameters { /** * List of cookie values to include as part of custom fields logging. */ cookieFields?: pulumi.Input[]>; /** * List of HTTP header modifications to perform in the ruleset rule (refer to the nested schema). */ headers?: pulumi.Input[]>; /** * Host Header that request origin receives. */ hostHeader?: pulumi.Input; /** * Rule ID to apply the override to. */ id?: pulumi.Input; increment?: pulumi.Input; /** * List of properties to configure WAF payload logging (refer to the nested schema). */ matchedData?: pulumi.Input; /** * List of properties to change request origin (refer to the nested schema). */ origin?: pulumi.Input; /** * List of override configurations to apply to the ruleset (refer to the nested schema). */ overrides?: pulumi.Input; phases?: pulumi.Input[]>; /** * Products to target with the actions. Valid values are `"bic"`, `"hot"`, `"ratelimit"`, `"securityLevel"`, `"uablock"`, `"waf"` or `"zonelockdown"`. */ products?: pulumi.Input[]>; /** * List of request headers to include as part of custom fields logging, in lowercase. */ requestFields?: pulumi.Input[]>; /** * List of response headers to include as part of custom fields logging, in lowercase. */ responseFields?: pulumi.Input[]>; /** * List of parameters that configure the response given to end users (refer to the nested schema). */ responses?: pulumi.Input[]>; /** * List of rule-based overrides (refer to the nested schema). */ rules?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Which ruleset ID to target. */ ruleset?: pulumi.Input; /** * List of managed WAF rule IDs to target. Only valid when the "action" is set to skip. */ rulesets?: pulumi.Input[]>; /** * List of URI properties to configure for the ruleset rule when performing URL rewrite transformations (refer to the nested schema). */ uri?: pulumi.Input; version?: pulumi.Input; } export interface RulesetRuleActionParametersHeader { /** * Expression that defines the updated (dynamic) value of the URI path or query string component. Conflicts with `value`. */ expression?: pulumi.Input; /** * Name of the HTTP request header to target. */ name?: pulumi.Input; /** * Action to perform on the HTTP request header. Valid values are `"set"` or `"remove"`. */ operation?: pulumi.Input; /** * Static string value of the updated URI path or query string component. Conflicts with `expression`. */ value?: pulumi.Input; } export interface RulesetRuleActionParametersMatchedData { /** * Public key to use within WAF Ruleset payload logging to view the HTTP request parameters. You can generate a public key [using the `matched-data-cli` command-line tool](https://developers.cloudflare.com/waf/managed-rulesets/payload-logging/command-line/generate-key-pair) or [in the Cloudflare dashboard](https://developers.cloudflare.com/waf/managed-rulesets/payload-logging/configure). */ publicKey?: pulumi.Input; } export interface RulesetRuleActionParametersOrigin { /** * Origin Hostname where request is sent. */ host?: pulumi.Input; /** * Oirign Port where request is sent. */ port?: pulumi.Input; } export interface RulesetRuleActionParametersOverrides { /** * Action to perform in the rule-level override. Valid values are `"block"`, `"challenge"`, `"ddosDynamic"`, `"execute"`, `"forceConnectionClose"`, `"jsChallenge"`, `"managedChallenge"`, `"log"`, `"rewrite"`, `"score"`, or `"skip"`. */ action?: pulumi.Input; /** * List of tag-based overrides (refer to the nested schema). */ categories?: pulumi.Input[]>; /** * Defines if the current rule-level override enables or disables the rule. */ enabled?: pulumi.Input; /** * List of rule-based overrides (refer to the nested schema). */ rules?: pulumi.Input[]>; } export interface RulesetRuleActionParametersOverridesCategory { /** * Action to perform in the rule-level override. Valid values are `"block"`, `"challenge"`, `"ddosDynamic"`, `"execute"`, `"forceConnectionClose"`, `"jsChallenge"`, `"managedChallenge"`, `"log"`, `"rewrite"`, `"score"`, or `"skip"`. */ action?: pulumi.Input; /** * Tag name to apply the ruleset rule override to. */ category?: pulumi.Input; /** * Defines if the current rule-level override enables or disables the rule. */ enabled?: pulumi.Input; } export interface RulesetRuleActionParametersOverridesRule { /** * Action to perform in the rule-level override. Valid values are `"block"`, `"challenge"`, `"ddosDynamic"`, `"execute"`, `"forceConnectionClose"`, `"jsChallenge"`, `"managedChallenge"`, `"log"`, `"rewrite"`, `"score"`, or `"skip"`. */ action?: pulumi.Input; /** * Defines if the current rule-level override enables or disables the rule. */ enabled?: pulumi.Input; /** * Rule ID to apply the override to. */ id?: pulumi.Input; /** * Anomaly score threshold to apply in the ruleset rule override. Only applicable to modsecurity-based rulesets. */ scoreThreshold?: pulumi.Input; /** * Sensitivity level for a ruleset rule override. */ sensitivityLevel?: pulumi.Input; } export interface RulesetRuleActionParametersResponse { /** * Body content to include in the response. */ content?: pulumi.Input; /** * HTTP content type to send in the response. */ contentType?: pulumi.Input; /** * HTTP status code to send in the response. */ statusCode?: pulumi.Input; } export interface RulesetRuleActionParametersUri { /** * List of properties to change request origin (refer to the nested schema). */ origin?: pulumi.Input; /** * URI path configuration when performing a URL rewrite (refer to the nested schema). */ path?: pulumi.Input; /** * Query string configuration when performing a URL rewrite (refer to the nested schema). */ query?: pulumi.Input; } export interface RulesetRuleActionParametersUriPath { /** * Expression that defines the updated (dynamic) value of the URI path or query string component. Conflicts with `value`. */ expression?: pulumi.Input; /** * Static string value of the updated URI path or query string component. Conflicts with `expression`. */ value?: pulumi.Input; } export interface RulesetRuleActionParametersUriQuery { /** * Expression that defines the updated (dynamic) value of the URI path or query string component. Conflicts with `value`. */ expression?: pulumi.Input; /** * Static string value of the updated URI path or query string component. Conflicts with `expression`. */ value?: pulumi.Input; } export interface RulesetRuleExposedCredentialCheck { /** * Firewall Rules expression language based on Wireshark display filters for where to check for the "password" value. Refer to the [Firewall Rules language](https://developers.cloudflare.com/firewall/cf-firewall-language). */ passwordExpression?: pulumi.Input; /** * Firewall Rules expression language based on Wireshark display filters for where to check for the "username" value. Refer to the [Firewall Rules language](https://developers.cloudflare.com/firewall/cf-firewall-language). */ usernameExpression?: pulumi.Input; } export interface RulesetRuleLogging { /** * Defines if the current rule-level override enables or disables the rule. */ enabled?: pulumi.Input; } export interface RulesetRuleRatelimit { /** * List of parameters that define how Cloudflare tracks the request rate for this rule. */ characteristics?: pulumi.Input[]>; /** * Criteria for counting HTTP requests to trigger the Rate Limiting action. Uses the Firewall Rules expression language based on Wireshark display filters. Refer to the [Firewall Rules language](https://developers.cloudflare.com/firewall/cf-firewall-language) documentation for all available fields, operators, and functions. */ countingExpression?: pulumi.Input; /** * Once the request rate is reached, the Rate Limiting rule blocks further requests for the period of time defined in this field. */ mitigationTimeout?: pulumi.Input; /** * The period of time to consider (in seconds) when evaluating the request rate. */ period?: pulumi.Input; /** * The number of requests over the period of time that will trigger the Rate Limiting rule. */ requestsPerPeriod?: pulumi.Input; /** * Whether to include requests to origin within the Rate Limiting count. */ requestsToOrigin?: pulumi.Input; } export interface SpectrumApplicationDns { /** * Fully qualified domain name of the origin e.g. origin-ssh.example.com. */ name: pulumi.Input; /** * The type of DNS record associated with the application. Valid values: `CNAME`. */ type: pulumi.Input; } export interface SpectrumApplicationOriginDns { /** * Fully qualified domain name of the origin e.g. origin-ssh.example.com. */ name: pulumi.Input; } export interface SpectrumApplicationOriginPortRange { /** * Upper bound of the origin port range, e.g. `2000` */ end: pulumi.Input; /** * Lower bound of the origin port range, e.g. `1000` */ start: pulumi.Input; } export interface SplitTunnelTunnel { /** * The address in CIDR format to include in the tunnel configuration. Conflicts with `"host"`. */ address?: pulumi.Input; /** * The description of the tunnel. */ description?: pulumi.Input; /** * The domain name to include in the tunnel configuration. Conflicts with `"address"`. */ host?: pulumi.Input; } export interface TeamsAccountAntivirus { /** * Scan on file download. */ enabledDownloadPhase: pulumi.Input; /** * Scan on file upload. */ enabledUploadPhase: pulumi.Input; /** * Block requests for files that cannot be scanned. */ failClosed: pulumi.Input; } export interface TeamsAccountBlockPage { /** * Hex code of block page background color. */ backgroundColor?: pulumi.Input; /** * Indicator of enablement. */ enabled?: pulumi.Input; /** * Block page header text. */ footerText?: pulumi.Input; /** * Block page footer text. */ headerText?: pulumi.Input; /** * URL of block page logo. */ logoPath?: pulumi.Input; /** * Name of block page configuration. */ name?: pulumi.Input; } export interface TeamsAccountFips { /** * Only allow FIPS-compliant TLS configuration. */ tls?: pulumi.Input; } export interface TeamsAccountLogging { /** * Redact personally identifiable information from activity logging (PII fields are: source IP, * user email, user ID, device ID, URL, referrer, user agent). */ redactPii: pulumi.Input; /** * Represents whether all requests are logged or only the blocked requests are * logged in DNS, HTTP and L4 filters. */ settingsByRuleType: pulumi.Input; } export interface TeamsAccountLoggingSettingsByRuleType { dns: pulumi.Input; http: pulumi.Input; l4: pulumi.Input; } export interface TeamsAccountLoggingSettingsByRuleTypeDns { logAll: pulumi.Input; logBlocks: pulumi.Input; } export interface TeamsAccountLoggingSettingsByRuleTypeHttp { logAll: pulumi.Input; logBlocks: pulumi.Input; } export interface TeamsAccountLoggingSettingsByRuleTypeL4 { logAll: pulumi.Input; logBlocks: pulumi.Input; } export interface TeamsAccountProxy { /** * Whether gateway proxy is enabled on gateway devices for tcp traffic. */ tcp: pulumi.Input; /** * Whether gateway proxy is enabled on gateway devices for udp traffic. */ udp: pulumi.Input; } export interface TeamsLocationNetwork { /** * ID of the teams location. */ id?: pulumi.Input; network: pulumi.Input; } export interface TeamsRuleRuleSettings { /** * Add custom headers to allowed requests in the form of key-value pairs. */ addHeaders?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Configure how browser isolation behaves (refer to the nested schema). */ bisoAdminControls?: pulumi.Input; /** * Indicator of block page enablement. */ blockPageEnabled?: pulumi.Input; /** * The displayed reason for a user being blocked. */ blockPageReason?: pulumi.Input; /** * Configure how session check behaves (refer to the nested schema). */ checkSession?: pulumi.Input; /** * Disable DNSSEC validation (must be Allow rule) */ insecureDisableDnssecValidation?: pulumi.Input; /** * Settings to forward layer 4 traffic (refer to the nested schema). */ l4override?: pulumi.Input; /** * The host to override matching DNS queries with. */ overrideHost?: pulumi.Input; /** * The IPs to override matching DNS queries with. */ overrideIps?: pulumi.Input[]>; } export interface TeamsRuleRuleSettingsBisoAdminControls { /** * Disable copy-paste. */ disableCopyPaste?: pulumi.Input; /** * Disable download. */ disableDownload?: pulumi.Input; /** * Disable keyboard usage. */ disableKeyboard?: pulumi.Input; /** * Disable printing. */ disablePrinting?: pulumi.Input; /** * Disable upload. */ disableUpload?: pulumi.Input; } export interface TeamsRuleRuleSettingsCheckSession { /** * Configure how fresh the session needs to be to be considered valid. */ duration: pulumi.Input; /** * Enable session enforcement for this rule. */ enforce: pulumi.Input; } export interface TeamsRuleRuleSettingsL4override { /** * Override IP to forward traffic to. */ ip: pulumi.Input; /** * Override Port to forward traffic to. */ port: pulumi.Input; } export interface WorkerScriptKvNamespaceBinding { /** * The global variable for the binding in your Worker code. */ name: pulumi.Input; namespaceId: pulumi.Input; } export interface WorkerScriptPlainTextBinding { /** * The global variable for the binding in your Worker code. */ name: pulumi.Input; /** * The secret text you want to store. */ text: pulumi.Input; } export interface WorkerScriptSecretTextBinding { /** * The global variable for the binding in your Worker code. */ name: pulumi.Input; /** * The secret text you want to store. */ text: pulumi.Input; } export interface WorkerScriptWebassemblyBinding { /** * The base64 encoded wasm module you want to store. */ module: pulumi.Input; /** * The global variable for the binding in your Worker code. */ name: pulumi.Input; } export interface ZoneLockdownConfiguration { /** * The request property to target. Allowed values: "ip", "ipRange" */ target: pulumi.Input; /** * The value to target. Depends on target's type. IP addresses should just be standard IPv4/IPv6 notation i.e. `198.51.100.4` or `2001:db8::/32` and IP ranges in CIDR format i.e. `198.51.0.0/16`. */ value: pulumi.Input; } export interface ZoneSettingsOverrideInitialSetting { alwaysOnline?: pulumi.Input; alwaysUseHttps?: pulumi.Input; automaticHttpsRewrites?: pulumi.Input; binaryAst?: pulumi.Input; brotli?: pulumi.Input; browserCacheTtl?: pulumi.Input; browserCheck?: pulumi.Input; /** * Allowed values: "aggressive" (default) - delivers a different resource each time the query string changes, "basic" - delivers resources from cache when there is no query string, "simplified" - delivers the same resource to everyone independent of the query string. */ cacheLevel?: pulumi.Input; challengeTtl?: pulumi.Input; /** * An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format. */ ciphers?: pulumi.Input[]>; /** * Allowed values: "flattenAtRoot" (default), "flattenAll", "flattenNone". */ cnameFlattening?: pulumi.Input; developmentMode?: pulumi.Input; earlyHints?: pulumi.Input; emailObfuscation?: pulumi.Input; filterLogsToCloudflare?: pulumi.Input; /** * Allowed values: "on", "off" (default), "custom". */ h2Prioritization?: pulumi.Input; hotlinkProtection?: pulumi.Input; http2?: pulumi.Input; http3?: pulumi.Input; /** * Allowed values: "on", "off" (default), "open". */ imageResizing?: pulumi.Input; ipGeolocation?: pulumi.Input; ipv6?: pulumi.Input; logToCloudflare?: pulumi.Input; maxUpload?: pulumi.Input; /** * Allowed values: "1.0" (default), "1.1", "1.2", "1.3". */ minTlsVersion?: pulumi.Input; minify?: pulumi.Input; mirage?: pulumi.Input; mobileRedirect?: pulumi.Input; opportunisticEncryption?: pulumi.Input; opportunisticOnion?: pulumi.Input; orangeToOrange?: pulumi.Input; originErrorPagePassThru?: pulumi.Input; /** * Allowed values: "off" (default), "lossless", "lossy". */ polish?: pulumi.Input; prefetchPreload?: pulumi.Input; privacyPass?: pulumi.Input; proxyReadTimeout?: pulumi.Input; /** * Allowed values: "off" (default), "addHeader", "overwriteHeader". */ pseudoIpv4?: pulumi.Input; responseBuffering?: pulumi.Input; rocketLoader?: pulumi.Input; securityHeader?: pulumi.Input; /** * Allowed values: "off" (Enterprise only), "essentiallyOff", "low", "medium" (default), "high", "underAttack". */ securityLevel?: pulumi.Input; serverSideExclude?: pulumi.Input; sortQueryStringForCache?: pulumi.Input; /** * Allowed values: "off" (default), "flexible", "full", "strict", "originPull". */ ssl?: pulumi.Input; /** * @deprecated tls_1_2_only has been deprecated in favour of using `min_tls_version = "1.2"` instead. */ tls12Only?: pulumi.Input; /** * Allowed values: "off" (default), "on", "zrt". */ tls13?: pulumi.Input; tlsClientAuth?: pulumi.Input; trueClientIpHeader?: pulumi.Input; universalSsl?: pulumi.Input; visitorIp?: pulumi.Input; waf?: pulumi.Input; /** * . Note that the value specified will be ignored unless `polish` is turned on (i.e. is "lossless" or "lossy") */ webp?: pulumi.Input; websockets?: pulumi.Input; zeroRtt?: pulumi.Input; } export interface ZoneSettingsOverrideInitialSettingMinify { /** * "on"/"off" */ css: pulumi.Input; /** * "on"/"off" */ html: pulumi.Input; /** * "on"/"off" */ js: pulumi.Input; } export interface ZoneSettingsOverrideInitialSettingMobileRedirect { /** * String value */ mobileSubdomain: pulumi.Input; /** * "on"/"off" */ status: pulumi.Input; /** * true/false */ stripUri: pulumi.Input; } export interface ZoneSettingsOverrideInitialSettingSecurityHeader { /** * true/false */ enabled?: pulumi.Input; /** * true/false */ includeSubdomains?: pulumi.Input; /** * Integer */ maxAge?: pulumi.Input; /** * true/false */ nosniff?: pulumi.Input; /** * true/false */ preload?: pulumi.Input; } export interface ZoneSettingsOverrideSettings { alwaysOnline?: pulumi.Input; alwaysUseHttps?: pulumi.Input; automaticHttpsRewrites?: pulumi.Input; binaryAst?: pulumi.Input; brotli?: pulumi.Input; browserCacheTtl?: pulumi.Input; browserCheck?: pulumi.Input; /** * Allowed values: "aggressive" (default) - delivers a different resource each time the query string changes, "basic" - delivers resources from cache when there is no query string, "simplified" - delivers the same resource to everyone independent of the query string. */ cacheLevel?: pulumi.Input; challengeTtl?: pulumi.Input; /** * An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format. */ ciphers?: pulumi.Input[]>; /** * Allowed values: "flattenAtRoot" (default), "flattenAll", "flattenNone". */ cnameFlattening?: pulumi.Input; developmentMode?: pulumi.Input; earlyHints?: pulumi.Input; emailObfuscation?: pulumi.Input; filterLogsToCloudflare?: pulumi.Input; /** * Allowed values: "on", "off" (default), "custom". */ h2Prioritization?: pulumi.Input; hotlinkProtection?: pulumi.Input; http2?: pulumi.Input; http3?: pulumi.Input; /** * Allowed values: "on", "off" (default), "open". */ imageResizing?: pulumi.Input; ipGeolocation?: pulumi.Input; ipv6?: pulumi.Input; logToCloudflare?: pulumi.Input; maxUpload?: pulumi.Input; /** * Allowed values: "1.0" (default), "1.1", "1.2", "1.3". */ minTlsVersion?: pulumi.Input; minify?: pulumi.Input; mirage?: pulumi.Input; mobileRedirect?: pulumi.Input; opportunisticEncryption?: pulumi.Input; opportunisticOnion?: pulumi.Input; orangeToOrange?: pulumi.Input; originErrorPagePassThru?: pulumi.Input; /** * Allowed values: "off" (default), "lossless", "lossy". */ polish?: pulumi.Input; prefetchPreload?: pulumi.Input; privacyPass?: pulumi.Input; proxyReadTimeout?: pulumi.Input; /** * Allowed values: "off" (default), "addHeader", "overwriteHeader". */ pseudoIpv4?: pulumi.Input; responseBuffering?: pulumi.Input; rocketLoader?: pulumi.Input; securityHeader?: pulumi.Input; /** * Allowed values: "off" (Enterprise only), "essentiallyOff", "low", "medium" (default), "high", "underAttack". */ securityLevel?: pulumi.Input; serverSideExclude?: pulumi.Input; sortQueryStringForCache?: pulumi.Input; /** * Allowed values: "off" (default), "flexible", "full", "strict", "originPull". */ ssl?: pulumi.Input; /** * @deprecated tls_1_2_only has been deprecated in favour of using `min_tls_version = "1.2"` instead. */ tls12Only?: pulumi.Input; /** * Allowed values: "off" (default), "on", "zrt". */ tls13?: pulumi.Input; tlsClientAuth?: pulumi.Input; trueClientIpHeader?: pulumi.Input; universalSsl?: pulumi.Input; visitorIp?: pulumi.Input; waf?: pulumi.Input; /** * . Note that the value specified will be ignored unless `polish` is turned on (i.e. is "lossless" or "lossy") */ webp?: pulumi.Input; websockets?: pulumi.Input; zeroRtt?: pulumi.Input; } export interface ZoneSettingsOverrideSettingsMinify { /** * "on"/"off" */ css: pulumi.Input; /** * "on"/"off" */ html: pulumi.Input; /** * "on"/"off" */ js: pulumi.Input; } export interface ZoneSettingsOverrideSettingsMobileRedirect { /** * String value */ mobileSubdomain: pulumi.Input; /** * "on"/"off" */ status: pulumi.Input; /** * true/false */ stripUri: pulumi.Input; } export interface ZoneSettingsOverrideSettingsSecurityHeader { /** * true/false */ enabled?: pulumi.Input; /** * true/false */ includeSubdomains?: pulumi.Input; /** * Integer */ maxAge?: pulumi.Input; /** * true/false */ nosniff?: pulumi.Input; /** * true/false */ preload?: pulumi.Input; }