pulumi-bunnynet
Version:
A Pulumi provider for managing Bunny.net CDN and edge computing resources, dynamically bridged from the Terraform Bunnynet provider with support for pull zones, storage, DNS, compute containers, and video streaming.
725 lines • 28.7 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface ComputeContainerAppContainer {
/**
* The arguments that will be added to the container entry point when starting the image.
*/
arguments?: pulumi.Input<string | undefined>;
/**
* A custom startup command that will execute once the container is launched.
*/
command?: pulumi.Input<string | undefined>;
/**
* Defines a public endpoint for the application.
*/
endpoints?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerEndpoint>[] | undefined>;
/**
* Defines an environment variable for the container
*/
envs?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerEnv>[] | undefined>;
/**
* The unique identifier for the container.
*/
id?: pulumi.Input<string | undefined>;
/**
* The image digest.
*/
imageDigest?: pulumi.Input<string | undefined>;
/**
* The image name within the registry, without the domain prefix (i.e.: `my-app`).
*/
imageName: pulumi.Input<string>;
/**
* The image namespace within the registry, without the domain prefix (i.e.: `my-org`).
*/
imageNamespace: pulumi.Input<string>;
/**
* Options: `Always`, `IfNotPresent`
*/
imagePullPolicy?: pulumi.Input<string | undefined>;
/**
* The image registry for the container.
*/
imageRegistry: pulumi.Input<number>;
/**
* The image tag (i.e.: `2.9-alpine`).
*/
imageTag: pulumi.Input<string>;
/**
* Checks that the application is actively running without issues. It the check fails, the container will be automatically restarted
*/
livenessProbes?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerLivenessProbe>[] | undefined>;
/**
* The name of the container.
*/
name: pulumi.Input<string>;
/**
* Checks if the application is fully prepared to handle incoming requests. No requests will be routed to the application until this check is successful.
*/
readinessProbes?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerReadinessProbe>[] | undefined>;
/**
* Checks if the application has successfully started. No requests will be routed to the application until this check is successful.
*/
startupProbes?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerStartupProbe>[] | undefined>;
/**
* Mounts a volume within a container
*/
volumemounts?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerVolumemount>[] | undefined>;
/**
* The working directory of the container runtime.
*/
workingDir?: pulumi.Input<string | undefined>;
}
export interface ComputeContainerAppContainerEndpoint {
/**
* Configurations for CDN endpoint.
*/
cdns?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerEndpointCdn>[] | undefined>;
/**
* The name of the endpoint.
*/
name: pulumi.Input<string>;
/**
* Endpoint port configuration.
*/
ports?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerEndpointPort>[] | undefined>;
/**
* Options: `Anycast`, `CDN`, `InternalIP`
*/
type: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerEndpointCdn {
/**
* Indicates whether the container will handle TLS termination.
*/
originSsl?: pulumi.Input<boolean | undefined>;
/**
* The ID of the pullzone associated with the endpoint.
*/
pullzoneId?: pulumi.Input<number | undefined>;
/**
* Indicates whether sticky sessions is enabled.
*/
stickySessions?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerEndpointCdnStickySession>[] | undefined>;
}
export interface ComputeContainerAppContainerEndpointCdnStickySession {
/**
* Incoming request headers used to select a pod for sticky sessions.
*/
headers: pulumi.Input<pulumi.Input<string>[]>;
}
export interface ComputeContainerAppContainerEndpointPort {
/**
* The container port number.
*/
container: pulumi.Input<number>;
/**
* The exposed port number.
*/
exposed?: pulumi.Input<number | undefined>;
/**
* Options: `SCTP`, `TCP`, `UDP`
*/
protocols?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface ComputeContainerAppContainerEnv {
/**
* The name of the environment variable.
*/
name: pulumi.Input<string>;
/**
* The value of the environment variable.
*/
value: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerLivenessProbe {
/**
* The number of failed probes to consider the container unhealthy.
*/
failureThreshold?: pulumi.Input<number | undefined>;
/**
* gRPC-specific configurations.
*/
grpcs?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerLivenessProbeGrpc>[] | undefined>;
/**
* HTTP-specific configurations.
*/
https?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerLivenessProbeHttp>[] | undefined>;
/**
* The amount of time in seconds after the container is started to wait before the first probe is sent.
*/
initialDelay?: pulumi.Input<number | undefined>;
/**
* The amount of time in seconds between each probe.
*/
period?: pulumi.Input<number | undefined>;
/**
* The port within the container the probe will connect to.
*/
port: pulumi.Input<number>;
/**
* The number of successful probes to consider the container healthy.
*/
successThreshold?: pulumi.Input<number | undefined>;
/**
* The amount of time in seconds the probe will wait for a response before considering it a failure.
*/
timeout?: pulumi.Input<number | undefined>;
/**
* Options: <span pulumi-lang-nodejs="`grpc`" pulumi-lang-dotnet="`Grpc`" pulumi-lang-go="`grpc`" pulumi-lang-python="`grpc`" pulumi-lang-yaml="`grpc`" pulumi-lang-java="`grpc`" pulumi-lang-hcl="`grpc`">`grpc`</span>, <span pulumi-lang-nodejs="`http`" pulumi-lang-dotnet="`Http`" pulumi-lang-go="`http`" pulumi-lang-python="`http`" pulumi-lang-yaml="`http`" pulumi-lang-java="`http`" pulumi-lang-hcl="`http`">`http`</span>, <span pulumi-lang-nodejs="`tcp`" pulumi-lang-dotnet="`Tcp`" pulumi-lang-go="`tcp`" pulumi-lang-python="`tcp`" pulumi-lang-yaml="`tcp`" pulumi-lang-java="`tcp`" pulumi-lang-hcl="`tcp`">`tcp`</span>
*/
type: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerLivenessProbeGrpc {
/**
* The gRPC service name.
*/
service: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerLivenessProbeHttp {
/**
* The expected HTTP response status code.
*/
expectedStatus?: pulumi.Input<number | undefined>;
/**
* The HTTP path to be requested.
*/
path: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerReadinessProbe {
/**
* The number of failed probes to consider the container unhealthy.
*/
failureThreshold?: pulumi.Input<number | undefined>;
/**
* gRPC-specific configurations.
*/
grpcs?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerReadinessProbeGrpc>[] | undefined>;
/**
* HTTP-specific configurations.
*/
https?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerReadinessProbeHttp>[] | undefined>;
/**
* The amount of time in seconds after the container is started to wait before the first probe is sent.
*/
initialDelay?: pulumi.Input<number | undefined>;
/**
* The amount of time in seconds between each probe.
*/
period?: pulumi.Input<number | undefined>;
/**
* The port within the container the probe will connect to.
*/
port: pulumi.Input<number>;
/**
* The number of successful probes to consider the container healthy.
*/
successThreshold?: pulumi.Input<number | undefined>;
/**
* The amount of time in seconds the probe will wait for a response before considering it a failure.
*/
timeout?: pulumi.Input<number | undefined>;
/**
* Options: <span pulumi-lang-nodejs="`grpc`" pulumi-lang-dotnet="`Grpc`" pulumi-lang-go="`grpc`" pulumi-lang-python="`grpc`" pulumi-lang-yaml="`grpc`" pulumi-lang-java="`grpc`" pulumi-lang-hcl="`grpc`">`grpc`</span>, <span pulumi-lang-nodejs="`http`" pulumi-lang-dotnet="`Http`" pulumi-lang-go="`http`" pulumi-lang-python="`http`" pulumi-lang-yaml="`http`" pulumi-lang-java="`http`" pulumi-lang-hcl="`http`">`http`</span>, <span pulumi-lang-nodejs="`tcp`" pulumi-lang-dotnet="`Tcp`" pulumi-lang-go="`tcp`" pulumi-lang-python="`tcp`" pulumi-lang-yaml="`tcp`" pulumi-lang-java="`tcp`" pulumi-lang-hcl="`tcp`">`tcp`</span>
*/
type: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerReadinessProbeGrpc {
/**
* The gRPC service name.
*/
service: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerReadinessProbeHttp {
/**
* The expected HTTP response status code.
*/
expectedStatus?: pulumi.Input<number | undefined>;
/**
* The HTTP path to be requested.
*/
path: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerStartupProbe {
/**
* The number of failed probes to consider the container unhealthy.
*/
failureThreshold?: pulumi.Input<number | undefined>;
/**
* gRPC-specific configurations.
*/
grpcs?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerStartupProbeGrpc>[] | undefined>;
/**
* HTTP-specific configurations.
*/
https?: pulumi.Input<pulumi.Input<inputs.ComputeContainerAppContainerStartupProbeHttp>[] | undefined>;
/**
* The amount of time in seconds after the container is started to wait before the first probe is sent.
*/
initialDelay?: pulumi.Input<number | undefined>;
/**
* The amount of time in seconds between each probe.
*/
period?: pulumi.Input<number | undefined>;
/**
* The port within the container the probe will connect to.
*/
port: pulumi.Input<number>;
/**
* The number of successful probes to consider the container healthy.
*/
successThreshold?: pulumi.Input<number | undefined>;
/**
* The amount of time in seconds the probe will wait for a response before considering it a failure.
*/
timeout?: pulumi.Input<number | undefined>;
/**
* Options: <span pulumi-lang-nodejs="`grpc`" pulumi-lang-dotnet="`Grpc`" pulumi-lang-go="`grpc`" pulumi-lang-python="`grpc`" pulumi-lang-yaml="`grpc`" pulumi-lang-java="`grpc`" pulumi-lang-hcl="`grpc`">`grpc`</span>, <span pulumi-lang-nodejs="`http`" pulumi-lang-dotnet="`Http`" pulumi-lang-go="`http`" pulumi-lang-python="`http`" pulumi-lang-yaml="`http`" pulumi-lang-java="`http`" pulumi-lang-hcl="`http`">`http`</span>, <span pulumi-lang-nodejs="`tcp`" pulumi-lang-dotnet="`Tcp`" pulumi-lang-go="`tcp`" pulumi-lang-python="`tcp`" pulumi-lang-yaml="`tcp`" pulumi-lang-java="`tcp`" pulumi-lang-hcl="`tcp`">`tcp`</span>
*/
type: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerStartupProbeGrpc {
/**
* The gRPC service name.
*/
service: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerStartupProbeHttp {
/**
* The expected HTTP response status code.
*/
expectedStatus?: pulumi.Input<number | undefined>;
/**
* The HTTP path to be requested.
*/
path: pulumi.Input<string>;
}
export interface ComputeContainerAppContainerVolumemount {
/**
* The name of the volume.
*/
name: pulumi.Input<string>;
/**
* The path within the container where the volume will be mounted.
*/
path: pulumi.Input<string>;
}
export interface ComputeContainerAppVolume {
/**
* The name of the volume.
*/
name: pulumi.Input<string>;
/**
* The size of the volume, in Gigabytes (10^9 bytes).
*/
size: pulumi.Input<number>;
}
export interface GetPullzoneOrigin {
/**
* The ID if the compute container app.
*/
containerAppId?: string;
/**
* The ID if the compute container app endpoint.
*/
containerEndpointId?: string;
/**
* The port for DNS Accelerated endpoints.
*/
dnsPort?: number;
/**
* The scheme for DNS Accelerated endpoints.
*/
dnsScheme?: string;
/**
* Indicates whether the zone will follow origin redirects.
*/
followRedirects?: boolean;
/**
* Indicates whether the current hostname is forwarded to the origin.
*/
forwardHostHeader?: boolean;
/**
* The host header that will be sent to the origin.
*/
hostHeader?: string;
/**
* The ID of the compute script used as a middleware.
*/
middlewareScript?: number;
/**
* The ID of the linked compute script.
*/
script?: number;
/**
* The ID of the linked storage zone.
*/
storagezone?: number;
/**
* Options: `ComputeContainer`, `ComputeScript`, `DnsAccelerate`, `OriginUrl`, `StorageZone`
*/
type?: string;
/**
* The origin URL from where the files are fetched.
*/
url?: string;
/**
* Indicates whether the Origin's TLS certificate should be verified.
*/
verifySsl?: boolean;
}
export interface GetPullzoneOriginArgs {
/**
* The ID if the compute container app.
*/
containerAppId?: pulumi.Input<string | undefined>;
/**
* The ID if the compute container app endpoint.
*/
containerEndpointId?: pulumi.Input<string | undefined>;
/**
* The port for DNS Accelerated endpoints.
*/
dnsPort?: pulumi.Input<number | undefined>;
/**
* The scheme for DNS Accelerated endpoints.
*/
dnsScheme?: pulumi.Input<string | undefined>;
/**
* Indicates whether the zone will follow origin redirects.
*/
followRedirects?: pulumi.Input<boolean | undefined>;
/**
* Indicates whether the current hostname is forwarded to the origin.
*/
forwardHostHeader?: pulumi.Input<boolean | undefined>;
/**
* The host header that will be sent to the origin.
*/
hostHeader?: pulumi.Input<string | undefined>;
/**
* The ID of the compute script used as a middleware.
*/
middlewareScript?: pulumi.Input<number | undefined>;
/**
* The ID of the linked compute script.
*/
script?: pulumi.Input<number | undefined>;
/**
* The ID of the linked storage zone.
*/
storagezone?: pulumi.Input<number | undefined>;
/**
* Options: `ComputeContainer`, `ComputeScript`, `DnsAccelerate`, `OriginUrl`, `StorageZone`
*/
type?: pulumi.Input<string | undefined>;
/**
* The origin URL from where the files are fetched.
*/
url?: pulumi.Input<string | undefined>;
/**
* Indicates whether the Origin's TLS certificate should be verified.
*/
verifySsl?: pulumi.Input<boolean | undefined>;
}
export interface GetPullzoneRouting {
/**
* The list of blocked countries with the two-letter Alpha2 ISO codes. Traffic connecting from a blocked country will be rejected on the DNS level.
*/
blockedCountries?: string[];
/**
* Options: <span pulumi-lang-nodejs="`all`" pulumi-lang-dotnet="`All`" pulumi-lang-go="`all`" pulumi-lang-python="`all`" pulumi-lang-yaml="`all`" pulumi-lang-java="`all`" pulumi-lang-hcl="`all`">`all`</span>, <span pulumi-lang-nodejs="`eu`" pulumi-lang-dotnet="`Eu`" pulumi-lang-go="`eu`" pulumi-lang-python="`eu`" pulumi-lang-yaml="`eu`" pulumi-lang-java="`eu`" pulumi-lang-hcl="`eu`">`eu`</span>, <span pulumi-lang-nodejs="`scripting`" pulumi-lang-dotnet="`Scripting`" pulumi-lang-go="`scripting`" pulumi-lang-python="`scripting`" pulumi-lang-yaml="`scripting`" pulumi-lang-java="`scripting`" pulumi-lang-hcl="`scripting`">`scripting`</span>
*/
filters?: string[];
/**
* The list of budget redirected countries with the two-letter Alpha2 ISO codes. Traffic from a redirected country will connect to the cheapest possible node in North America or Europe.
*/
redirectedCountries?: string[];
/**
* Options: `Standard`, `Volume`
*/
tier?: string;
/**
* Options: `AF`, `ASIA`, `EU`, `SA`, `US`
*/
zones?: string[];
}
export interface GetPullzoneRoutingArgs {
/**
* The list of blocked countries with the two-letter Alpha2 ISO codes. Traffic connecting from a blocked country will be rejected on the DNS level.
*/
blockedCountries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Options: <span pulumi-lang-nodejs="`all`" pulumi-lang-dotnet="`All`" pulumi-lang-go="`all`" pulumi-lang-python="`all`" pulumi-lang-yaml="`all`" pulumi-lang-java="`all`" pulumi-lang-hcl="`all`">`all`</span>, <span pulumi-lang-nodejs="`eu`" pulumi-lang-dotnet="`Eu`" pulumi-lang-go="`eu`" pulumi-lang-python="`eu`" pulumi-lang-yaml="`eu`" pulumi-lang-java="`eu`" pulumi-lang-hcl="`eu`">`eu`</span>, <span pulumi-lang-nodejs="`scripting`" pulumi-lang-dotnet="`Scripting`" pulumi-lang-go="`scripting`" pulumi-lang-python="`scripting`" pulumi-lang-yaml="`scripting`" pulumi-lang-java="`scripting`" pulumi-lang-hcl="`scripting`">`scripting`</span>
*/
filters?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The list of budget redirected countries with the two-letter Alpha2 ISO codes. Traffic from a redirected country will connect to the cheapest possible node in North America or Europe.
*/
redirectedCountries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Options: `Standard`, `Volume`
*/
tier?: pulumi.Input<string | undefined>;
/**
* Options: `AF`, `ASIA`, `EU`, `SA`, `US`
*/
zones?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface PullzoneEdgeruleAction {
parameter1?: pulumi.Input<string | undefined>;
parameter2?: pulumi.Input<string | undefined>;
parameter3?: pulumi.Input<string | undefined>;
type?: pulumi.Input<string | undefined>;
}
export interface PullzoneEdgeruleTrigger {
matchType?: pulumi.Input<string | undefined>;
parameter1?: pulumi.Input<string | undefined>;
parameter2?: pulumi.Input<string | undefined>;
patterns?: pulumi.Input<pulumi.Input<string>[] | undefined>;
type?: pulumi.Input<string | undefined>;
}
export interface PullzoneOrigin {
/**
* The ID if the compute container app.
*/
containerAppId?: pulumi.Input<string | undefined>;
/**
* The ID if the compute container app endpoint.
*/
containerEndpointId?: pulumi.Input<string | undefined>;
/**
* The port for DNS Accelerated endpoints.
*/
dnsPort?: pulumi.Input<number | undefined>;
/**
* The scheme for DNS Accelerated endpoints.
*/
dnsScheme?: pulumi.Input<string | undefined>;
/**
* Indicates whether the zone will follow origin redirects.
*/
followRedirects?: pulumi.Input<boolean | undefined>;
/**
* Indicates whether the current hostname is forwarded to the origin.
*/
forwardHostHeader?: pulumi.Input<boolean | undefined>;
/**
* The host header that will be sent to the origin.
*/
hostHeader?: pulumi.Input<string | undefined>;
/**
* The ID of the compute script used as a middleware.
*/
middlewareScript?: pulumi.Input<number | undefined>;
/**
* The ID of the linked compute script.
*/
script?: pulumi.Input<number | undefined>;
/**
* The ID of the linked storage zone.
*/
storagezone?: pulumi.Input<number | undefined>;
/**
* Options: `ComputeContainer`, `ComputeScript`, `DnsAccelerate`, `OriginUrl`, `StorageZone`
*/
type: pulumi.Input<string>;
/**
* The origin URL from where the files are fetched.
*/
url?: pulumi.Input<string | undefined>;
/**
* Indicates whether the Origin's TLS certificate should be verified.
*/
verifySsl?: pulumi.Input<boolean | undefined>;
}
export interface PullzoneRatelimitRuleCondition {
/**
* Options: `BEGINSWITH`, `CONTAINS`, `CONTAINSWORD`, `DETECTSQLI`, `DETECTXSS`, `ENDSWITH`, `EQ`, `GE`, `GT`, `LE`, `LT`, `RX`, `STREQ`, `STRMATCH`, `WITHIN`
*/
operator: pulumi.Input<string>;
value: pulumi.Input<string>;
/**
* Options: `ARGS`, `ARGS_COMBINED_SIZE`, `ARGS_GET`, `ARGS_GET_NAMES`, `ARGS_POST`, `ARGS_POST_NAMES`, `FILES_NAMES`, `FINGERPRINT`, `GEO`, `QUERY_STRING`, `REMOTE_ADDR`, `REQUEST_BASENAME`, `REQUEST_BODY`, `REQUEST_COOKIES`, `REQUEST_COOKIES_NAMES`, `REQUEST_FILENAME`, `REQUEST_HEADERS`, `REQUEST_HEADERS_NAMES`, `REQUEST_LINE`, `REQUEST_METHOD`, `REQUEST_PROTOCOL`, `REQUEST_URI`, `REQUEST_URI_RAW`, `RESPONSE_BODY`, `RESPONSE_HEADERS`, `RESPONSE_STATUS`, `VERIFIED_BOT_CATEGORY`
*/
variable: pulumi.Input<string>;
variableValue?: pulumi.Input<string | undefined>;
}
export interface PullzoneRatelimitRuleLimit {
/**
* The interval, in seconds, to consider for to trigger the rate limit rule.
*/
interval: pulumi.Input<number>;
/**
* The number of request within the interval to trigger the rate limit rule.
*/
requests: pulumi.Input<number>;
}
export interface PullzoneRatelimitRuleResponse {
/**
* The interval, in seconds, that the rate limit will apply.
*/
interval: pulumi.Input<number>;
}
export interface PullzoneRouting {
/**
* The list of blocked countries with the two-letter Alpha2 ISO codes. Traffic connecting from a blocked country will be rejected on the DNS level.
*/
blockedCountries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Options: <span pulumi-lang-nodejs="`all`" pulumi-lang-dotnet="`All`" pulumi-lang-go="`all`" pulumi-lang-python="`all`" pulumi-lang-yaml="`all`" pulumi-lang-java="`all`" pulumi-lang-hcl="`all`">`all`</span>, <span pulumi-lang-nodejs="`eu`" pulumi-lang-dotnet="`Eu`" pulumi-lang-go="`eu`" pulumi-lang-python="`eu`" pulumi-lang-yaml="`eu`" pulumi-lang-java="`eu`" pulumi-lang-hcl="`eu`">`eu`</span>, <span pulumi-lang-nodejs="`scripting`" pulumi-lang-dotnet="`Scripting`" pulumi-lang-go="`scripting`" pulumi-lang-python="`scripting`" pulumi-lang-yaml="`scripting`" pulumi-lang-java="`scripting`" pulumi-lang-hcl="`scripting`">`scripting`</span>
*/
filters?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The list of budget redirected countries with the two-letter Alpha2 ISO codes. Traffic from a redirected country will connect to the cheapest possible node in North America or Europe.
*/
redirectedCountries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Options: `Standard`, `Volume`
*/
tier?: pulumi.Input<string | undefined>;
/**
* Options: `AF`, `ASIA`, `EU`, `SA`, `US`
*/
zones?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface PullzoneShieldAccessList {
/**
* Options: `Allow`, `Block`, `Bypass`, `Challenge`, `Log`
*/
action: pulumi.Input<string>;
/**
* The ID of the Access List.
*/
id: pulumi.Input<number>;
}
export interface PullzoneShieldBotDetection {
/**
* Combines advanced entropy analysis and cross-session consistency.
*/
complexFingerprinting?: pulumi.Input<boolean | undefined>;
/**
* Controls how assertively unusual fingerprints are treated as bots.
*/
fingerprintAggression?: pulumi.Input<number | undefined>;
/**
* Adjusts how precisely browsers are checked for signs of automation.
*/
fingerprintSensitivity?: pulumi.Input<number | undefined>;
/**
* Monitors IP behaviour, reputation, and rate patterns.
*/
ipSensitivity?: pulumi.Input<number | undefined>;
/**
* Indicates the mode the Bot Detection engine is running. Options: `Challenge`, `Log`
*/
mode?: pulumi.Input<string | undefined>;
/**
* Analyzes request headers, query structure, and protocol anomalies.
*/
requestIntegrity?: pulumi.Input<number | undefined>;
}
export interface PullzoneShieldDdos {
/**
* The window of time a visitor can access your website after passing a challenge. Once the timeout expires, they'll face a new challenge.
*/
challengeWindow?: pulumi.Input<number | undefined>;
/**
* Options: `Asleep`, `Extreme`, `High`, `Low`, `Medium`
*/
level: pulumi.Input<string>;
/**
* Indicates the mode the engine is running. Options: `Block`, `Log`
*/
mode?: pulumi.Input<string | undefined>;
}
export interface PullzoneShieldWaf {
/**
* Indicates allowed HTTP methods.
*/
allowedHttpMethods?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Indicates allowed HTTP versions.
*/
allowedHttpVersions?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Indicates allowed values for request Content-Type.
*/
allowedRequestContentTypes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Determines which severity level of rules will block requests.
*/
blockingSensitivity?: pulumi.Input<number | undefined>;
/**
* Determines the action to take when the request body length exceeds your plan limit. Options: `Block`, `Ignore`, `Log`
*/
bodyLimitRequest?: pulumi.Input<string | undefined>;
/**
* Determines the action to take when the response body length exceeds your plan limit. Options: `Block`, `Ignore`, `Log`
*/
bodyLimitResponse?: pulumi.Input<string | undefined>;
/**
* Determines which severity level of rules will trigger a detection log.
*/
detectionSensitivity?: pulumi.Input<number | undefined>;
/**
* Indicates whether the WAF (Web Application Firewall) is enabled.
*/
enabled: pulumi.Input<boolean>;
/**
* Determines which severity level of rules will trigger the rules and their action.
*/
executionSensitivity?: pulumi.Input<number | undefined>;
/**
* When enabled, detected WAF audit logs will contain the full list of request headers sent during the request.
*/
logHeaders?: pulumi.Input<boolean | undefined>;
/**
* The list of headers excluded from the logs. They will still be used for processing WAF rules.
*/
logHeadersExcludeds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Indicates the mode the engine is running. Options: `Block`, `Log`
*/
mode?: pulumi.Input<string | undefined>;
/**
* Real-time Threat Intelligence delivers zero-day protection by instantly detecting and blocking emerging threats.
*/
realtimeThreatIntelligence?: pulumi.Input<boolean | undefined>;
/**
* List of disabled WAF rules.
*/
rulesDisableds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* List of WAF rules that will not be blocked, but will be logged when triggered.
*/
rulesLogonlies?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface PullzoneWafRuleCondition {
/**
* Options: `BEGINSWITH`, `CONTAINS`, `CONTAINSWORD`, `DETECTSQLI`, `DETECTXSS`, `ENDSWITH`, `EQ`, `GE`, `GT`, `LE`, `LT`, `RX`, `STREQ`, `STRMATCH`, `WITHIN`
*/
operator: pulumi.Input<string>;
value: pulumi.Input<string>;
/**
* Options: `ARGS`, `ARGS_COMBINED_SIZE`, `ARGS_GET`, `ARGS_GET_NAMES`, `ARGS_POST`, `ARGS_POST_NAMES`, `FILES_NAMES`, `FINGERPRINT`, `GEO`, `QUERY_STRING`, `REMOTE_ADDR`, `REQUEST_BASENAME`, `REQUEST_BODY`, `REQUEST_COOKIES`, `REQUEST_COOKIES_NAMES`, `REQUEST_FILENAME`, `REQUEST_HEADERS`, `REQUEST_HEADERS_NAMES`, `REQUEST_LINE`, `REQUEST_METHOD`, `REQUEST_PROTOCOL`, `REQUEST_URI`, `REQUEST_URI_RAW`, `RESPONSE_BODY`, `RESPONSE_HEADERS`, `RESPONSE_STATUS`, `VERIFIED_BOT_CATEGORY`
*/
variable: pulumi.Input<string>;
variableValue?: pulumi.Input<string | undefined>;
}
export interface PullzoneWafRuleResponse {
/**
* The action to take if the WAF rule is triggered. Options: `Allow`, `Block`, `Bypass`, `Challenge`, `Log`
*/
action: pulumi.Input<string>;
}
export interface StreamVideoChapter {
end?: pulumi.Input<string | undefined>;
start?: pulumi.Input<string | undefined>;
title?: pulumi.Input<string | undefined>;
}
export interface StreamVideoMoment {
label?: pulumi.Input<string | undefined>;
timestamp?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=input.d.ts.map