import {z} from 'zod' export type PlanReadWrite = {href: string}; export type SubscriptionReadWrite = {plan: PlanReadWrite}; export type BotManagement = {user_agent: boolean}; export type ServicesHref = string; export type Component = {layer_name?: string | undefined, element?: ServicesHref | undefined}; export type CdnControlPath = string; export type CdnCacheKey = {headers: 'none' | 'include-specified', header_names?: Array | undefined, cookies: 'none' | 'all' | 'include-specified' | 'exclude-specified', cookie_names?: Array | undefined, queries: 'none' | 'all' | 'include-specified' | 'exclude-specified', query_names?: Array | undefined}; export type CdnOriginRequest = {headers: 'none' | 'all' | 'include-specified', header_names?: Array | undefined, cookies: 'none' | 'all' | 'include-specified', cookie_names?: Array | undefined, queries: 'none' | 'all' | 'include-specified', query_names?: Array | undefined}; export type HandlerHref = string; export type CdnControl = {path_pattern: CdnControlPath, default_ttl?: number | undefined, cache_key: CdnCacheKey, origin_request?: CdnOriginRequest | undefined, origin_request_handlers?: Array | undefined, origin_response_handlers?: Array | undefined}; export type CdnConfiguration = {controls: Array}; export type Alias = string; export type ServersHostname = string; export type ResourceReference = {href: string}; export type SecretHref = string; export type TlsVersion = 'TlsV1.1' | 'TlsV1.2'; export type Timestamp = string; export type CoveredAlias = {name: string, not_after: Timestamp, trusted: boolean}; export type TlsConfiguration = {private_key?: (ResourceReference | string) | undefined, private_keys?: (Array) | undefined, certificate_chain?: string | undefined, enable_auto_tls?: boolean | undefined, enable_force_tls?: boolean | undefined, enable_tls_offloading?: boolean | undefined, enable_server_validation?: boolean | undefined, tolerate_invalid_chain?: boolean | undefined, versions?: Array | undefined, covered_aliases?: Array | undefined}; export type MetricConfiguration = {name?: string | undefined, frequency?: number | undefined, prototype: string}; export type Monitoring = 'none' | 'passive' | 'active'; export type WafFileReference = {file: ResourceReference, name: string, created?: string | undefined, active: number}; export type Cidr = string; export type AddressSetEntry = {created?: Timestamp | undefined, created_by?: string | undefined, description?: string | undefined, address: Cidr, expiry?: Timestamp | undefined}; export type AddressSetHref = string; export type ConcurrentLimit = number; export type MaximumQueueTime = number; export type MergeSlashes = boolean; export type SuspendLimit = number; export type ClusterHref = string | null; export type Address = string; export type ApplicationServer = {public_address: Address, description?: string | undefined}; export type PageControlConditionAuthCookieIsNotSet = {name: string}; export type PageControlConditionAuthCookieIsSet = {name: string}; export type PageControlConditionCookieIsNotSet = {name: string}; export type PageControlConditionCookieIsSet = {name: string}; export type PageControlConditionCookieValueDoesNotMatch = {name: string, pattern: unknown}; export type PageControlConditionCookieValueMatches = {name: string, pattern: unknown}; export type CountryCode = string; export type CountryCodes = Array; export type PageControlConditionCountryIsNotIncluded = {list: CountryCodes}; export type PageControlConditionCountryIsIncluded = {list: CountryCodes}; export type PageControlConditionHeaderValueMatches = {name: string, pattern: unknown}; export type ConditionHeader = {name: string, pattern: unknown}; export type ConditionHeaders = Array; export type MethodName = string; export type MethodNames = Array; export type PageControlMethodIsIncluded = {values: MethodNames}; export type PageControlMethodIsNotIncluded = {values: MethodNames}; export type PageControlConditionAddressInSet = {address_set: AddressSetHref}; export type PageControlConditionAddressNotInSet = {address_set: AddressSetHref}; export type PageControlConditionRandom = {probability: number}; export type DurationDisplayUnit = 'seconds' | 'minutes' | 'hours'; export type PageControlConditionRateLimit = {duration: number, display_unit: DurationDisplayUnit, threshold: number}; export type PageControlConditionStatusCodeMatches = {pattern: unknown}; export type ConditionUrl = {scheme?: string | undefined, domain?: string | undefined, path?: string | undefined, query?: string | undefined}; export type ConditionUrls = Array; export type PageControlConditionUserAgentMatches = {pattern: string}; export type PageControlConditionUserAgentDoesNotMatch = {pattern: string}; export type PageControlConditions = {address_is_whitelisted?: Record | undefined, address_is_not_whitelisted?: Record | undefined, auth_cookie_is_not_set?: PageControlConditionAuthCookieIsNotSet | undefined, auth_cookie_is_set?: PageControlConditionAuthCookieIsSet | undefined, cookie_is_not_set?: PageControlConditionCookieIsNotSet | undefined, cookie_is_set?: PageControlConditionCookieIsSet | undefined, cookie_value_does_not_match?: PageControlConditionCookieValueDoesNotMatch | undefined, cookie_value_matches?: PageControlConditionCookieValueMatches | undefined, country_is_not?: PageControlConditionCountryIsNotIncluded | undefined, country_is?: PageControlConditionCountryIsIncluded | undefined, header_value_matches?: PageControlConditionHeaderValueMatches | undefined, header_value_does_not_match?: PageControlConditionHeaderValueMatches | undefined, headers_match?: ConditionHeaders | undefined, headers_not_match?: ConditionHeaders | undefined, method_is?: PageControlMethodIsIncluded | undefined, method_is_not?: PageControlMethodIsNotIncluded | undefined, address_is_threat?: Record | undefined, address_is_not_threat?: Record | undefined, is_crawler?: Record | undefined, address_in_set?: PageControlConditionAddressInSet | undefined, address_not_in_set?: PageControlConditionAddressNotInSet | undefined, random?: PageControlConditionRandom | undefined, rate_limit?: PageControlConditionRateLimit | undefined, referrer_is?: Array | undefined, referrer_is_not?: Array | undefined, referrer_is_defined?: Record | undefined, referrer_is_not_defined?: Record | undefined, status_code_matches?: PageControlConditionStatusCodeMatches | undefined, urls?: ConditionUrls | undefined, url_is_not?: ConditionUrls | undefined, user_agent_matches?: PageControlConditionUserAgentMatches | undefined, user_agent_does_not_match?: PageControlConditionUserAgentDoesNotMatch | undefined}; export type PageControlActionAddIPToList = {type: 'add-address-to-set', address_set: AddressSetHref, ttl?: number | undefined}; export type Label = string; export type PageControlActionAddLabels = {type: 'add-labels', labels: Array