import * as outputs from "../types/output"; export interface AlertDimensions { /** * Names of a subset of domains that the alert monitors. */ domains?: string[]; /** * Addresses of a subset of backends that the alert monitors. */ origins?: string[]; } export interface AlertEvaluationStrategy { /** * Threshold for the denominator value used in evaluations that calculate a rate or ratio. Usually used to filter out noise. */ ignoreBelow?: number; /** * The length of time to evaluate whether the conditions have been met. The data is polled every minute. One of: `2m`, `3m`, `5m`, `15m`, `30m`. */ period: string; /** * Threshold used to alert. */ threshold: number; /** * Type of strategy to use to evaluate. One of: `aboveThreshold`, `allAboveThreshold`, `belowThreshold`, `percentAbsolute`, `percentDecrease`, `percentIncrease`. */ type: string; } export interface CustomDashboardDashboardItem { /** * An object which describes the data to display. */ dataSource: outputs.CustomDashboardDashboardItemDataSource; /** * Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard. */ id: string; /** * The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes. */ span?: number; /** * A human-readable subtitle for the dashboard item. Often a description of the visualization. */ subtitle: string; /** * A human-readable title for the dashboard item. */ title: string; /** * An object which describes the data visualization to display. */ visualization: outputs.CustomDashboardDashboardItemVisualization; } export interface CustomDashboardDashboardItemDataSource { /** * Configuration options for the selected data source. */ config: outputs.CustomDashboardDashboardItemDataSourceConfig; /** * The source of the data to display. One of: `stats.edge`, `stats.domain`, `stats.origin`. */ type: string; } export interface CustomDashboardDashboardItemDataSourceConfig { /** * The metrics to visualize. Valid options are defined by the selected data source: [stats.edge](https://www.fastly.com/documentation/reference/api/observability/custom-dashboards/metrics/edge/), [stats.domain](https://www.fastly.com/documentation/reference/api/observability/custom-dashboards/metrics/domain/), [stats.origin](https://www.fastly.com/documentation/reference/api/observability/custom-dashboards/metrics/origin/). */ metrics: string[]; } export interface CustomDashboardDashboardItemVisualization { /** * Configuration options for the selected data source. */ config: outputs.CustomDashboardDashboardItemVisualizationConfig; /** * The type of visualization to display. One of: `chart`. */ type: string; } export interface CustomDashboardDashboardItemVisualizationConfig { /** * The aggregation function to apply to the dataset. One of: `avg`, `sum`, `min`, `max`, `latest`, `p95`. */ calculationMethod?: string; /** * The units to use to format the data. One of: `number`, `bytes`, `percent`, `requests`, `responses`, `seconds`, `milliseconds`, `ratio`, `bitrate`. */ format?: string; /** * The type of chart to display. One of: `line`, `bar`, `single-metric`, `donut`. */ plotType: string; } export interface DnsZoneXfrConfigInbound { /** * The ID of the TSIG key used to secure inbound zone transfers. */ inboundTsigKeyId?: string; /** * An array of the primary DNS server objects associated with inbound zone transfers. */ primaries?: outputs.DnsZoneXfrConfigInboundPrimary[]; } export interface DnsZoneXfrConfigInboundPrimary { /** * An IPv4 address for the Primary DNS Server. */ address?: string; /** * A description of the Primary DNS server. */ description?: string; } export interface GetApiSecurityDiscoveredOperationsOperation { /** * Discovered operation domain. */ domain: string; /** * Discovered operation ID. */ id: string; /** * Last seen timestamp (when present). */ lastSeenAt: string; /** * Discovered operation HTTP method. */ method: string; /** * Discovered operation path. */ path: string; /** * Observed requests per second (when present). */ rps: number; /** * Discovered operation status (when present). */ status: string; /** * Updated timestamp (when present). */ updatedAt: string; } export interface GetApiSecurityOperationTagsTag { /** * Created timestamp (when present). */ createdAt: string; /** * Tag description (when present). */ description: string; /** * Tag ID. */ id: string; /** * Tag name. */ name: string; /** * Number of operations associated with this tag (when present). */ operationCount: number; /** * Updated timestamp (when present). */ updatedAt: string; } export interface GetApiSecurityOperationsOperation { /** * Created timestamp (when present). */ createdAt: string; /** * Operation description (when present). */ description: string; /** * Operation domain. */ domain: string; /** * Operation ID. */ id: string; /** * Last seen timestamp (when present). */ lastSeenAt: string; /** * Operation HTTP method. */ method: string; /** * Operation path. */ path: string; /** * Observed requests per second (when present). */ rps: number; /** * Discovery status (when present). One of `DISCOVERED`, `SAVED`, or `IGNORED`. */ status: string; /** * Associated operation tag IDs. */ tagIds: string[]; /** * Updated timestamp (when present). */ updatedAt: string; } export interface GetComputeAclsAcl { /** * Identifier of the Compute ACL. */ id: string; /** * Name of the Compute ACL. */ name: string; } export interface GetConfigstoresStore { /** * Alphanumeric string identifying the Config Store. */ id: string; /** * Name for the Config Store. */ name: string; } export interface GetDatacentersPop { /** * A code representing the POP location. */ code: string; /** * A code representing the general region of the world in which the POP location resides. */ group: string; /** * The name of the POP. */ name: string; /** * A code representing the shielding name of the POP. The value may be empty if the POP is not available for shielding. */ shield: string; } export interface GetDictionariesDictionary { /** * Alphanumeric string identifying the Dictionary. */ id: string; /** * Name for the Dictionary. */ name: string; /** * Indicates if items in the dictionary are readable or not. */ writeOnly: boolean; } export interface GetDnsZonesZone { /** * A freeform descriptive note. */ description: string; /** * Zone Identifier (UUID). */ id: string; /** * The domain name for the zone. */ name: string; } export interface GetDomainsDomain { /** * The fully-qualified domain name for your domain. */ fqdn: string; /** * Domain Identifier (UUID). */ id: string; /** * The 'service_id' associated with your domain or 'null' if there is no association. */ serviceId: string; } export interface GetDomainsV1Domain { /** * The fully-qualified domain name for your domain. */ fqdn: string; /** * Domain Identifier (UUID). */ id: string; /** * The 'service_id' associated with your domain or 'null' if there is no association. */ serviceId: string; } export interface GetKvstoresStore { /** * Alphanumeric string identifying the KV Store. */ id: string; /** * Name for the KV Store. */ name: string; } export interface GetNgwafAccountListsList { /** * The date and time in ISO 8601 format when the list was created. */ createdAt: string; /** * The description of the list. */ description: string; /** * The ID of the list. */ id: string; /** * The name of the list. */ name: string; /** * The reference ID of the list. */ referenceId: string; /** * The type of the list. */ type: string; /** * The date and time in ISO 8601 format when the list was last updated. */ updatedAt: string; } export interface GetNgwafAccountRulesRule { /** * The date and time in ISO 8601 format when the rule was created. */ createdAt: string; /** * The description of the rule. */ description: string; /** * Whether the rule is currently enabled. */ enabled: boolean; /** * The ID of the rule. */ id: string; /** * The type of the rule. */ type: string; /** * The date and time in ISO 8601 format when the rule was last updated. */ updatedAt: string; } export interface GetNgwafAccountSignalsSignal { /** * The description of the signal. */ description: string; /** * The ID of the signal. */ id: string; /** * The name of the signal. */ name: string; /** * The tag name of the signal. */ tagName: string; } export interface GetNgwafAlertDatadogIntegrationDatadogAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafAlertJiraIntegrationJiraAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafAlertMailingListIntegrationMailingListAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafAlertMicrosoftTeamsIntegrationMicrosoftTeamsAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafAlertOpsgenieIntegrationOpsgenieAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafAlertPagerdutyIntegrationPagerdutyAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafAlertSlackIntegrationSlackAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafAlertWebhookIntegrationWebhookAlert { /** * The ID of the workspace alert. */ id: string; } export interface GetNgwafRedactionsRedaction { /** * The name of the field that is being redacted. */ field: string; /** * The ID of the redaction. */ id: string; /** * The type of field being redacted. One of `requestParameter`, `requestHeader`, or `responseHeader`. */ type: string; } export interface GetNgwafThresholdsThreshold { /** * The ID of the threshold. */ id: string; } export interface GetNgwafVirtualPatchesVirtualPatch { /** * Whether the virtual patch is enabled or disabled. */ enabled: boolean; /** * The ID of the virtual patch. */ id: string; /** * Action to take when a signal for the virtual patch is detected. One of `log` or `block`. */ mode: string; } export interface GetNgwafWorkspaceListsList { /** * The date and time in ISO 8601 format when the list was created. */ createdAt: string; /** * The description of the list. */ description: string; /** * The ID of the list. */ id: string; /** * The name of the list. */ name: string; /** * The reference ID of the list. */ referenceId: string; /** * The type of the list. */ type: string; /** * The date and time in ISO 8601 format when the list was last updated. */ updatedAt: string; } export interface GetNgwafWorkspaceRulesRule { /** * The date and time in ISO 8601 format when the rule was created. */ createdAt: string; /** * The description of the rule. */ description: string; /** * Whether the rule is currently enabled. */ enabled: boolean; /** * The ID of the rule. */ id: string; /** * The type of the rule. */ type: string; /** * The date and time in ISO 8601 format when the rule was last updated. */ updatedAt: string; } export interface GetNgwafWorkspaceSignalsSignal { /** * The description of the signal. */ description: string; /** * The ID of the signal. */ id: string; /** * The name of the signal. */ name: string; /** * The tag name of the signal. */ tagName: string; } export interface GetNgwafWorkspacesWorkspace { /** * The ID of the workspace. */ id: string; /** * The name of the workspace. */ name: string; } export interface GetSecretstoresStore { /** * Alphanumeric string identifying the Secrets Store. */ id: string; /** * Name for the Secrets Store. */ name: string; } export interface GetServicesDetail { /** * A freeform descriptive note. */ comment: string; /** * Date and time in ISO 8601 format. */ createdAt: string; /** * Alphanumeric string identifying the customer. */ customerId: string; /** * Alphanumeric string identifying the service. */ id: string; /** * The name of the service. */ name: string; /** * The type of this service. One of `vcl`, `wasm`. */ type: string; /** * Date and time in ISO 8601 format. */ updatedAt: string; /** * The currently activated version. */ version: number; } export interface GetStagingIpsDomain { /** * The domain name. */ name: string; /** * The staging IP address for the domain. */ stagingIp: string; } export interface GetTlsConfigurationDnsRecord { /** * Type of DNS record to set, e.g. A, AAAA, or CNAME. */ recordType: string; /** * The IP address or hostname of the DNS record. */ recordValue: string; /** * The regions that will be used to route traffic. Select DNS Records with a `global` region to route traffic to the most performant point of presence (POP) worldwide (global pricing will apply). Select DNS records with a `us-eu` region to exclusively land traffic on North American and European POPs. */ region: string; } export interface GetTsigKeysKey { /** * The algorithm of the TSIG key. */ algorithm: string; /** * A freeform descriptive note. */ description: string; /** * TSIG Key Identifier (UUID). */ id: string; /** * The name of the TSIG key. */ name: string; } export interface GetVclSnippetsVclSnippet { /** * The VCL code that specifies exactly what the snippet does. */ content: string; /** * Alphanumeric string identifying a VCL Snippet. */ id: string; /** * The name for the snippet. */ name: string; /** * Priority determines execution order. Lower numbers execute first. */ priority: number; /** * The location in generated VCL where the snippet should be placed. */ type: string; } export interface NgwafAccountRuleAction { /** * Signal name to exclude (used when `type = excludeSignal`). */ signal?: string; /** * The action type. One of: `addSignal`, `allow`, `block`, `browserChallenge`, `dynamicChallenge`, `excludeSignal`, `verifyToken` or for rate limit rule valid values: `logRequest`, `blockSignal`, `browserChallenge`, `verifyToken` */ type: string; } export interface NgwafAccountRuleCondition { /** * Field to inspect (e.g., `ip`, `path`). */ field: string; /** * Operator to apply. One of: `equals`, `doesNotEqual`, `contains`, `doesNotContain`, `like`, `notLike`, `inList`, `notInList`, `matches`, `doesNotMatch`, `greaterEqual`, `lesserEqual`. */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafAccountRuleGroupCondition { /** * A list of nested conditions in this group. */ conditions?: outputs.NgwafAccountRuleGroupConditionCondition[]; /** * Logical operator for the group. Accepted values are `any` and `all`. */ groupOperator: string; /** * List of nested multival conditions in this group. Each multival list must define a `field, operator, groupOperator` and at least one condition. */ multivalConditions?: outputs.NgwafAccountRuleGroupConditionMultivalCondition[]; } export interface NgwafAccountRuleGroupConditionCondition { /** * Field to inspect (e.g., `ip`, `path`). */ field: string; /** * Operator to apply. One of: `equals`, `doesNotEqual`, `contains`, `doesNotContain`, `like`, `notLike`, `inList`, `notInList`, `matches`, `doesNotMatch`, `greaterEqual`, `lesserEqual`. */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafAccountRuleGroupConditionMultivalCondition { /** * A list of nested conditions in this multival. */ conditions: outputs.NgwafAccountRuleGroupConditionMultivalConditionCondition[]; /** * Enums for multival condition field. Accepted values are `postParameter`, `queryParameter`, `requestCookie`, `requestHeader`, `responseHeader`, and `signal`. */ field: string; /** * Logical operator for the multival condition. Accepted values are `any` and `all`. */ groupOperator: string; /** * Indicates whether the supplied conditions will check for existence or non-existence of matching field values. Accepted values are `exists` and `doesNotExist`. */ operator: string; } export interface NgwafAccountRuleGroupConditionMultivalConditionCondition { /** * Field to inspect (e.g., `name`, `value`, `signalId`). */ field: string; /** * Operator to apply (e.g., `equals`, `contains`). */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafAccountRuleMultivalCondition { /** * A list of nested conditions in this list. */ conditions: outputs.NgwafAccountRuleMultivalConditionCondition[]; /** * Enums for multival condition field.. Accepted values are `postParameter`, `queryParameter`, `requestCookie`, `requestHeader`, `responseHeader`, and `signal`. */ field: string; /** * Logical operator for the group. Accepted values are `any` and `all`. */ groupOperator: string; /** * Indicates whether the supplied conditions will check for existence or non-existence of matching field values. Accepted values are `exists` and `doesNotExist`. */ operator: string; } export interface NgwafAccountRuleMultivalConditionCondition { /** * Field to inspect (e.g., `name`, `value`, `signalId`). */ field: string; /** * Operator to apply. One of: `equals`, `doesNotEqual`, `contains`, `doesNotContain`, `like`, `notLike`, `inList`, `notInList`, `matches`, `doesNotMatch`, `greaterEqual`, `lesserEqual`. */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafWorkspaceAttackSignalThresholds { /** * Ignore thresholds and block immediately when at least one attack signal is detected. Default value `false`. */ immediate?: boolean; /** * The one-hour interval threshold. Minimum 1 and maximum 10,000. Default value 100. */ oneHour?: number; /** * The one-minute interval threshold. Minimum 1 and maximum 10,000. Default value 1. */ oneMinute?: number; /** * The ten-minute interval threshold. Minimum 1 and maximum 10,000. Default value 60. */ tenMinutes?: number; } export interface NgwafWorkspaceRuleAction { /** * Specifies if interaction is allowed (used when `type = browserChallenge`). */ allowInteractive?: boolean; /** * specifies the type of deception (used when `type = deception`). */ deceptionType?: string; /** * Redirect target (used when `type = redirect`). */ redirectUrl?: string; /** * Response code used with redirect. */ responseCode?: number; /** * Signal name to exclude (used when `type = excludeSignal`). */ signal?: string; /** * The action type. One of: `addSignal`, `allow`, `block`, `browserChallenge`, `dynamicChallenge`, `excludeSignal`, `verifyToken` or for rate limit rule valid values: `logRequest`, `blockSignal`, `browserChallenge`, `verifyToken` */ type: string; } export interface NgwafWorkspaceRuleCondition { /** * Field to inspect (e.g., `ip`, `path`). */ field: string; /** * Operator to apply. One of: `equals`, `doesNotEqual`, `contains`, `doesNotContain`, `like`, `notLike`, `inList`, `notInList`, `matches`, `doesNotMatch`, `greaterEqual`, `lesserEqual`. */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafWorkspaceRuleGroupCondition { /** * A list of nested conditions in this group. */ conditions?: outputs.NgwafWorkspaceRuleGroupConditionCondition[]; /** * Logical operator for the group. Accepted values are `any` and `all`. */ groupOperator: string; /** * List of nested multival conditions in this group. Each multival list must define a `field, operator, groupOperator` and at least one condition. */ multivalConditions?: outputs.NgwafWorkspaceRuleGroupConditionMultivalCondition[]; } export interface NgwafWorkspaceRuleGroupConditionCondition { /** * Field to inspect (e.g., `ip`, `path`). */ field: string; /** * Operator to apply. One of: `equals`, `doesNotEqual`, `contains`, `doesNotContain`, `like`, `notLike`, `inList`, `notInList`, `matches`, `doesNotMatch`, `greaterEqual`, `lesserEqual`. */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafWorkspaceRuleGroupConditionMultivalCondition { /** * A list of nested conditions in this multival. */ conditions: outputs.NgwafWorkspaceRuleGroupConditionMultivalConditionCondition[]; /** * Enums for multival condition field. Accepted values are `postParameter`, `queryParameter`, `requestCookie`, `requestHeader`, `responseHeader`, and `signal`. */ field: string; /** * Logical operator for the multival condition. Accepted values are `any` and `all`. */ groupOperator: string; /** * Indicates whether the supplied conditions will check for existence or non-existence of matching field values. Accepted values are `exists` and `doesNotExist`. */ operator: string; } export interface NgwafWorkspaceRuleGroupConditionMultivalConditionCondition { /** * Field to inspect (e.g., `name`, `value`, `signalId`). */ field: string; /** * Operator to apply (e.g., `equals`, `contains`). */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafWorkspaceRuleMultivalCondition { /** * A list of nested conditions in this list. */ conditions: outputs.NgwafWorkspaceRuleMultivalConditionCondition[]; /** * Enums for multival condition field.. Accepted values are `postParameter`, `queryParameter`, `requestCookie`, `requestHeader`, `responseHeader`, and `signal`. */ field: string; /** * Logical operator for the group. Accepted values are `any` and `all`. */ groupOperator: string; /** * Indicates whether the supplied conditions will check for existence or non-existence of matching field values. Accepted values are `exists` and `doesNotExist`. */ operator: string; } export interface NgwafWorkspaceRuleMultivalConditionCondition { /** * Field to inspect (e.g., `name`, `value`, `signalId`). */ field: string; /** * Operator to apply. One of: `equals`, `doesNotEqual`, `contains`, `doesNotContain`, `like`, `notLike`, `inList`, `notInList`, `matches`, `doesNotMatch`, `greaterEqual`, `lesserEqual`. */ operator: string; /** * The value to test the field against. */ value: string; } export interface NgwafWorkspaceRuleRateLimit { /** * List of client identifiers used for rate limiting. Can only be length 1 or 2. */ clientIdentifiers: outputs.NgwafWorkspaceRuleRateLimitClientIdentifier[]; /** * Duration in seconds for the rate limit. */ duration: number; /** * Time interval for the rate limit in seconds. Accepted values are 60, 600, and 3600. */ interval: number; /** * Reference ID of the custom signal this rule uses to count requests. */ signal: string; /** * Rate limit threshold. Minimum 1 and maximum 100,000. */ threshold: number; } export interface NgwafWorkspaceRuleRateLimitClientIdentifier { /** * Key for the Client Identifier. */ key?: string; /** * Name for the Client Identifier. */ name?: string; /** * Type of the Client Identifier. Accepted values are `ip`, `postParameter`, `requestCookie`, `requestHeader`, and `signalPayload`. */ type: string; } export interface ServiceACLEntriesEntry { /** * A personal freeform descriptive note */ comment?: string; /** * The unique ID of the entry */ id: string; /** * An IP address that is the focus for the ACL */ ip: string; /** * A boolean that will negate the match if true */ negated?: boolean; /** * An optional subnet mask applied to the IP address */ subnet?: string; } export interface ServiceComputeBackend { /** * An IPv4, hostname, or IPv6 address for the Backend */ address: string; /** * How long to wait between bytes in milliseconds. Default `10000` */ betweenBytesTimeout?: number; /** * How long to wait for a timeout in milliseconds. Default `1000` */ connectTimeout?: number; /** * Number of errors to allow before the Backend is marked as down. Default `0` */ errorThreshold?: number; /** * How long to wait for the first bytes in milliseconds. Default `15000` */ firstByteTimeout?: number; /** * Name of a defined `healthcheck` to assign to this backend */ healthcheck?: string; /** * How long in seconds to keep a persistent connection to the backend between requests. */ keepaliveTime: number; /** * Maximum number of connections for this Backend. Default `200` */ maxConn?: number; /** * Maximum time from creation (in milliseconds) that a pooled HTTP keepalive connection will be eligible for reuse; 0 is treated as unlimited - which is the default behavior. */ maxLifetime?: number; /** * Maximum allowed TLS version on SSL connections to this backend. */ maxTlsVersion?: string; /** * Maximum number of requests allowed over a single, pooled HTTP keepalive connection to this backend; 0 is treated as unlimited - which is the default behavior. */ maxUse?: number; /** * Minimum allowed TLS version on SSL connections to this backend. */ minTlsVersion?: string; /** * Name for this Backend. Must be unique to this Service. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The hostname to override the Host header */ overrideHost?: string; /** * The port number on which the Backend responds. Default `80` */ port?: number; /** * Prefer IPv6 connections to origins for hostname backends. Default `true` */ preferIpv6?: boolean; /** * Value that when shared across backends will enable those backends to share the same health check. */ shareKey?: string; /** * The POP of the shield designated to reduce inbound load. Valid values for `shield` are included in the `GET /datacenters` API response */ shield?: string; /** * CA certificate attached to origin. */ sslCaCert?: string; /** * Configure certificate validation. Does not affect SNI at all */ sslCertHostname?: string; /** * Be strict about checking SSL certs. Default `true` */ sslCheckCert?: boolean; /** * Cipher list consisting of one or more cipher strings separated by colons. Commas or spaces are also acceptable separators but colons are normally used. */ sslCiphers?: string; /** * Client certificate attached to origin. Used when connecting to the backend */ sslClientCert?: string; /** * Client key attached to origin. Used when connecting to the backend */ sslClientKey?: string; /** * Configure SNI in the TLS handshake. Does not affect cert validation at all */ sslSniHostname?: string; /** * Whether or not to use SSL to reach the Backend. Default `false` */ useSsl?: boolean; /** * The [portion of traffic](https://docs.fastly.com/en/guides/load-balancing-configuration#how-weight-affects-load-balancing) to send to this Backend. Each Backend receives weight / total of the traffic. Default `100` */ weight?: number; } export interface ServiceComputeDictionary { /** * The ID of the dictionary */ dictionaryId: string; /** * Allow the dictionary to be deleted, even if it contains entries. Defaults to false. */ forceDestroy?: boolean; /** * A unique name to identify this dictionary. It is important to note that changing this attribute will delete and recreate the dictionary, and discard the current items in the dictionary */ name: string; /** * If `true`, the dictionary is a [private dictionary](https://docs.fastly.com/en/guides/private-dictionaries). Default is `false`. Please note that changing this attribute will delete and recreate the dictionary, and discard the current items in the dictionary. `fastly.ServiceVcl` resource will only manage the dictionary object itself, and items under private dictionaries can not be managed using [`fastly.ServiceDictionaryItems`](https://registry.terraform.io/providers/fastly/fastly/latest/docs/resources/service_dictionary_items#limitations) resource. Therefore, using a write-only/private dictionary should only be done if the items are managed outside of Terraform */ writeOnly?: boolean; } export interface ServiceComputeDomain { /** * An optional comment about the Domain. */ comment?: string; /** * The domain that this Service will respond to. It is important to note that changing this attribute will delete and recreate the resource. */ name: string; } export interface ServiceComputeHealthcheck { /** * How often to run the Healthcheck in milliseconds. Default `5000` */ checkInterval?: number; /** * The status code expected from the host. Default `200` */ expectedResponse?: number; /** * Custom health check HTTP headers (e.g. if your health check requires an API key to be provided). */ headers?: string[]; /** * The Host header to send for this Healthcheck */ host: string; /** * Whether to use version 1.0 or 1.1 HTTP. Default `1.1` */ httpVersion?: string; /** * When loading a config, the initial number of probes to be seen as OK. Default `3` */ initial?: number; /** * Which HTTP method to use. Default `HEAD` */ method?: string; /** * A unique name to identify this Healthcheck. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to check */ path: string; /** * How many Healthchecks must succeed to be considered healthy. Default `3` */ threshold?: number; /** * Timeout in milliseconds. Default `5000` */ timeout?: number; /** * The number of most recent Healthcheck queries to keep for this Healthcheck. Default `5` */ window?: number; } export interface ServiceComputeImageOptimizerDefaultSettings { /** * Enables GIF to MP4 transformations on this service. */ allowVideo?: boolean; /** * The default quality to use with JPEG output. This can be overridden with the "quality" parameter on specific image optimizer requests. */ jpegQuality?: number; /** * The default type of JPEG output to use. This can be overridden with "format=bjpeg" and "format=pjpeg" on specific image optimizer requests. Valid values are `auto`, `baseline` and `progressive`. * - auto: Match the input JPEG type, or baseline if transforming from a non-JPEG input. * - baseline: Output baseline JPEG images * - progressive: Output progressive JPEG images */ jpegType?: string; /** * Used by the provider to identify modified settings. Changing this value will force the entire block to be deleted, then recreated. */ name?: string; /** * The type of filter to use while resizing an image. Valid values are `lanczos3`, `lanczos2`, `bicubic`, `bilinear` and `nearest`. * - lanczos3: A Lanczos filter with a kernel size of 3. Lanczos filters can detect edges and linear features within an image, providing the best possible reconstruction. * - lanczos2: A Lanczos filter with a kernel size of 2. * - bicubic: A filter using an average of a 4x4 environment of pixels, weighing the innermost pixels higher. * - bilinear: A filter using an average of a 2x2 environment of pixels. * - nearest: A filter using the value of nearby translated pixel values. Preserves hard edges. */ resizeFilter?: string; /** * Whether or not we should allow output images to render at sizes larger than input. */ upscale?: boolean; /** * Controls whether or not to default to WebP output when the client supports it. This is equivalent to adding "auto=webp" to all image optimizer requests. */ webp?: boolean; /** * The default quality to use with WebP output. This can be overridden with the second option in the "quality" URL parameter on specific image optimizer requests. */ webpQuality?: number; } export interface ServiceComputeLoggingBigquery { /** * The google account name used to obtain temporary credentials (default none). Not required if 'email' and 'secret_key' are provided. You may optionally provide this via an environment variable, `FASTLY_GCS_ACCOUNT_NAME`. */ accountName?: string; /** * The ID of your BigQuery dataset */ dataset: string; /** * The email for the service account with write access to your BigQuery dataset. If not provided, this will be pulled from a `FASTLY_BQ_EMAIL` environment variable */ email: string; /** * A unique name to identify this BigQuery logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The ID of your GCP project */ projectId: string; /** * The secret key associated with the service account that has write access to your BigQuery table. If not provided, this will be pulled from the `FASTLY_BQ_SECRET_KEY` environment variable. Typical format for this is a private key in a string with newlines */ secretKey: string; /** * The ID of your BigQuery table */ table: string; /** * BigQuery table name suffix template */ template?: string; } export interface ServiceComputeLoggingBlobstorage { /** * The unique Azure Blob Storage namespace in which your data objects are stored */ accountName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * The name of the Azure Blob Storage container in which to store logs */ container: string; /** * Maximum size of an uploaded log file, if non-zero. */ fileMaxBytes?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify the Azure Blob Storage endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to upload logs to. Must end with a trailing slash. If this field is left empty, the files will be saved in the container's root path */ path?: string; /** * How frequently the logs should be transferred in seconds. Default `3600` */ period?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The Azure shared access signature providing write access to the blob service objects. Be sure to update your token before it expires or the logging functionality will not work */ sasToken: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; } export interface ServiceComputeLoggingCloudfile { /** * Your Cloud File account access key */ accessKey: string; /** * The name of your Cloud Files container */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the Rackspace Cloud Files logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to upload logs to */ path?: string; /** * How frequently log files are finalized so they can be available for reading (in seconds, default `3600`) */ period?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The region to stream logs to. One of: DFW (Dallas), ORD (Chicago), IAD (Northern Virginia), LON (London), SYD (Sydney), HKG (Hong Kong) */ region?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * The username for your Cloud Files account */ user: string; } export interface ServiceComputeLoggingDatadog { /** * The unique name of the Datadog logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The region that log data will be sent to. Defaults to `US` if undefined */ region?: string; /** * The API key from your Datadog account */ token: string; } export interface ServiceComputeLoggingDigitalocean { /** * Your DigitalOcean Spaces account access key */ accessKey: string; /** * The name of the DigitalOcean Space */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * The domain of the DigitalOcean Spaces endpoint (default `nyc3.digitaloceanspaces.com`) */ domain?: string; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the DigitalOcean Spaces logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to upload logs to */ path?: string; /** * How frequently log files are finalized so they can be available for reading (in seconds, default `3600`) */ period?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * Your DigitalOcean Spaces account secret key */ secretKey: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; } export interface ServiceComputeLoggingElasticsearch { /** * The name of the Elasticsearch index to send documents (logs) to */ index: string; /** * The unique name of the Elasticsearch logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * BasicAuth password for Elasticsearch */ password?: string; /** * The ID of the Elasticsearch ingest pipeline to apply pre-process transformations to before indexing */ pipeline?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The maximum number of logs sent in one request. Defaults to `0` for unbounded */ requestMaxBytes?: number; /** * The maximum number of bytes sent in one request. Defaults to `0` for unbounded */ requestMaxEntries?: number; /** * A secure certificate to authenticate the server with. Must be in PEM format */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format */ tlsClientKey?: string; /** * The hostname used to verify the server's certificate. It can either be the Common Name (CN) or a Subject Alternative Name (SAN) */ tlsHostname?: string; /** * The Elasticsearch URL to stream logs to */ url: string; /** * BasicAuth username for Elasticsearch */ user?: string; } export interface ServiceComputeLoggingFtp { /** * The FTP address to stream logs to */ address: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the FTP logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The password for the server (for anonymous use an email address) */ password: string; /** * The path to upload log files to. If the path ends in `/` then it is treated as a directory */ path: string; /** * How frequently the logs should be transferred, in seconds (Default `3600`) */ period?: number; /** * The port number. Default: `21` */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * The username for the server (can be `anonymous`) */ user: string; } export interface ServiceComputeLoggingGc { /** * The google account name used to obtain temporary credentials (default none). You may optionally provide this via an environment variable, `FASTLY_GCS_ACCOUNT_NAME`. */ accountName?: string; /** * The name of the bucket in which to store the logs */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify this GCS endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Path to store the files. Must end with a trailing slash. If this field is left empty, the files will be saved in the bucket's root path */ path?: string; /** * How frequently the logs should be transferred, in seconds (Default 3600) */ period?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The ID of your Google Cloud Platform project */ projectId?: string; /** * The secret key associated with the target gcs bucket on your account. You may optionally provide this secret via an environment variable, `FASTLY_GCS_SECRET_KEY`. A typical format for the key is PEM format, containing actual newline characters where required */ secretKey?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * Your Google Cloud Platform service account email address. The `clientEmail` field in your service account authentication JSON. You may optionally provide this via an environment variable, `FASTLY_GCS_EMAIL`. */ user?: string; } export interface ServiceComputeLoggingGooglepubsub { /** * The google account name used to obtain temporary credentials (default none). You may optionally provide this via an environment variable, `FASTLY_GCS_ACCOUNT_NAME`. */ accountName?: string; /** * The unique name of the Google Cloud Pub/Sub logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The ID of your Google Cloud Platform project */ projectId: string; /** * Your Google Cloud Platform account secret key. The `privateKey` field in your service account authentication JSON. You may optionally provide this secret via an environment variable, `FASTLY_GOOGLE_PUBSUB_SECRET_KEY`. */ secretKey: string; /** * The Google Cloud Pub/Sub topic to which logs will be published */ topic: string; /** * Your Google Cloud Platform service account email address. The `clientEmail` field in your service account authentication JSON. You may optionally provide this via an environment variable, `FASTLY_GOOGLE_PUBSUB_EMAIL`. */ user: string; } export interface ServiceComputeLoggingGrafanacloudlog { /** * The stream identifier as a JSON string */ index: string; /** * The unique name of the GrafanaCloudLogs logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The Access Policy Token key for your GrafanaCloudLogs account */ token: string; /** * The URL to stream logs to */ url: string; /** * The Grafana User ID */ user: string; } export interface ServiceComputeLoggingHeroku { /** * The unique name of the Heroku logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The token to use for authentication (https://www.heroku.com/docs/customer-token-authentication-token/) */ token: string; /** * The URL to stream logs to */ url: string; } export interface ServiceComputeLoggingHoneycomb { /** * The Honeycomb Dataset you want to log to */ dataset: string; /** * The unique name of the Honeycomb logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The Write Key from the Account page of your Honeycomb account */ token: string; } export interface ServiceComputeLoggingHttp { /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Value of the `Content-Type` header sent with the request */ contentType?: string; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * Custom header sent with the request */ headerName?: string; /** * Value of the custom header sent with the request */ headerValue?: string; /** * Formats log entries as JSON. Can be either disabled (`0`), array of json (`1`), or newline delimited json (`2`) */ jsonFormat?: string; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * HTTP method used for request. Can be either `POST` or `PUT`. Default `POST` */ method?: string; /** * The unique name of the HTTPS logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * How frequently, in seconds, batches of log data are sent to the HTTPS endpoint. A value of 0 sends logs at the same interval as the default, which is 5 seconds. */ period?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The maximum number of bytes sent in one request */ requestMaxBytes?: number; /** * The maximum number of logs sent in one request */ requestMaxEntries?: number; /** * A secure certificate to authenticate the server with. Must be in PEM format */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format */ tlsClientKey?: string; /** * Used during the TLS handshake to validate the certificate */ tlsHostname?: string; /** * URL that log data will be sent to. Must use the https protocol */ url: string; } export interface ServiceComputeLoggingKafka { /** * SASL authentication method. One of: plain, scram-sha-256, scram-sha-512 */ authMethod?: string; /** * A comma-separated list of IP addresses or hostnames of Kafka brokers */ brokers: string; /** * The codec used for compression of your logs. One of: `gzip`, `snappy`, `lz4` */ compressionCodec?: string; /** * The unique name of the Kafka logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Enables parsing of key=value tuples from the beginning of a logline, turning them into record headers */ parseLogKeyvals?: boolean; /** * SASL Pass */ password?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * Maximum size of log batch, if non-zero. Defaults to 0 for unbounded */ requestMaxBytes?: number; /** * The Number of acknowledgements a leader must receive before a write is considered successful. One of: `1` (default) One server needs to respond. `0` No servers need to respond. `-1` Wait for all in-sync replicas to respond */ requiredAcks?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format */ tlsClientKey?: string; /** * The hostname used to verify the server's certificate. It can either be the Common Name or a Subject Alternative Name (SAN) */ tlsHostname?: string; /** * The Kafka topic to send logs to */ topic: string; /** * Whether to use TLS for secure logging. Can be either `true` or `false` */ useTls?: boolean; /** * SASL User */ user?: string; } export interface ServiceComputeLoggingKinese { /** * The AWS access key to be used to write to the stream */ accessKey?: string; /** * The Amazon Resource Name (ARN) for the IAM role granting Fastly access to Kinesis. Not required if `accessKey` and `secretKey` are provided. */ iamRole?: string; /** * The unique name of the Kinesis logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The AWS region the stream resides in. (Default: `us-east-1`) */ region?: string; /** * The AWS secret access key to authenticate with */ secretKey?: string; /** * The Kinesis stream name */ topic: string; } export interface ServiceComputeLoggingLogentry { /** * The unique name of the Logentries logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The port number configured in Logentries */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * Use token based authentication (https://logentries.com/doc/input-token/) */ token: string; /** * Whether to use TLS for secure logging */ useTls?: boolean; } export interface ServiceComputeLoggingLoggly { /** * The unique name of the Loggly logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The token to use for authentication (https://www.loggly.com/docs/customer-token-authentication-token/). */ token: string; } export interface ServiceComputeLoggingLogshuttle { /** * The unique name of the Log Shuttle logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The data authentication token associated with this endpoint */ token: string; /** * Your Log Shuttle endpoint URL */ url: string; } export interface ServiceComputeLoggingNewrelic { /** * The unique name of the New Relic logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The region that log data will be sent to. Default: `US` */ region?: string; /** * The Insert API key from the Account page of your New Relic account */ token: string; } export interface ServiceComputeLoggingNewrelicotlp { /** * Apache style log formatting. Your log must produce valid JSON that New Relic OTLP can ingest. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the New Relic OTLP logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The region that log data will be sent to. Default: `US` */ region?: string; /** * The name of the condition to apply. */ responseCondition?: string; /** * The Insert API key from the Account page of your New Relic account */ token: string; /** * The optional New Relic Trace Observer URL to stream logs to for Infinite Tracing. */ url?: string; } export interface ServiceComputeLoggingOpenstack { /** * Your OpenStack account access key */ accessKey: string; /** * The name of your OpenStack container */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the OpenStack logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Path to store the files. Must end with a trailing slash. If this field is left empty, the files will be saved in the bucket's root path */ path?: string; /** * How frequently the logs should be transferred, in seconds. Default `3600` */ period?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * Your OpenStack auth url */ url: string; /** * The username for your OpenStack account */ user: string; } export interface ServiceComputeLoggingPapertrail { /** * The address of the Papertrail endpoint */ address: string; /** * A unique name to identify this Papertrail endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The port associated with the address where the Papertrail endpoint can be accessed */ port: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; } export interface ServiceComputeLoggingS3 { /** * The AWS [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) to use for objects uploaded to the S3 bucket. Options are: `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, `bucket-owner-full-control` */ acl?: string; /** * The name of the bucket in which to store the logs */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * If you created the S3 bucket outside of `us-east-1`, then specify the corresponding bucket endpoint. Example: `s3-us-west-2.amazonaws.com` */ domain?: string; /** * Maximum size of an uploaded log file, if non-zero. */ fileMaxBytes?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the S3 logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Path to store the files. Must end with a trailing slash. If this field is left empty, the files will be saved in the bucket's root path */ path?: string; /** * How frequently the logs should be transferred, in seconds. Default `3600` */ period?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The S3 storage class (redundancy level). Should be one of: `standard`, `intelligentTiering`, `standardIa`, `onezoneIa`, `glacier`, `glacierIr`, `deepArchive`, or `reducedRedundancy` */ redundancy?: string; /** * AWS Access Key of an account with the required permissions to post logs. It is **strongly** recommended you create a separate IAM user with permissions to only operate on this Bucket. This key will be not be encrypted. Not required if `iamRole` is provided. You can provide this key via an environment variable, `FASTLY_S3_ACCESS_KEY` */ s3AccessKey?: string; /** * The Amazon Resource Name (ARN) for the IAM role granting Fastly access to S3. Not required if `accessKey` and `secretKey` are provided. You can provide this value via an environment variable, `FASTLY_S3_IAM_ROLE` */ s3IamRole?: string; /** * AWS Secret Key of an account with the required permissions to post logs. It is **strongly** recommended you create a separate IAM user with permissions to only operate on this Bucket. This secret will be not be encrypted. Not required if `iamRole` is provided. You can provide this secret via an environment variable, `FASTLY_S3_SECRET_KEY` */ s3SecretKey?: string; /** * Specify what type of server side encryption should be used. Can be either `AES256` or `aws:kms` */ serverSideEncryption?: string; /** * Optional server-side KMS Key Id. Must be set if serverSideEncryption is set to `aws:kms` */ serverSideEncryptionKmsKeyId?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; } export interface ServiceComputeLoggingScalyr { /** * The unique name of the Scalyr logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of the logfile field sent to Scalyr */ projectId?: string; /** * The region that log data will be sent to. One of `US` or `EU`. Defaults to `US` if undefined */ region?: string; /** * The token to use for authentication (https://www.scalyr.com/keys) */ token: string; } export interface ServiceComputeLoggingSftp { /** * The SFTP address to stream logs to */ address: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the SFTP logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The password for the server. If both `password` and `secretKey` are passed, `secretKey` will be preferred */ password?: string; /** * The path to upload log files to. If the path ends in `/` then it is treated as a directory */ path: string; /** * How frequently log files are finalized so they can be available for reading (in seconds, default `3600`) */ period?: number; /** * The port the SFTP service listens on. (Default: `22`) */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The SSH private key for the server. If both `password` and `secretKey` are passed, `secretKey` will be preferred */ secretKey?: string; /** * A list of host keys for all hosts we can connect to over SFTP */ sshKnownHosts: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * The username for the server */ user: string; } export interface ServiceComputeLoggingSplunk { /** * A unique name to identify the Splunk endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format. You can provide this certificate via an environment variable, `FASTLY_SPLUNK_CA_CERT` */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format. */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format. */ tlsClientKey?: string; /** * The hostname used to verify the server's certificate. It can either be the Common Name or a Subject Alternative Name (SAN) */ tlsHostname?: string; /** * The Splunk token to be used for authentication */ token: string; /** * The Splunk URL to stream logs to */ url: string; /** * Whether to use TLS for secure logging. Default: `false` */ useTls?: boolean; } export interface ServiceComputeLoggingSumologic { /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify this Sumologic endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The URL to Sumologic collector endpoint */ url: string; } export interface ServiceComputeLoggingSyslog { /** * A hostname or IPv4 address of the Syslog endpoint */ address: string; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify this Syslog endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The port associated with the address where the Syslog endpoint can be accessed. Default `514` */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format. You can provide this certificate via an environment variable, `FASTLY_SYSLOG_CA_CERT` */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format. You can provide this certificate via an environment variable, `FASTLY_SYSLOG_CLIENT_CERT` */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format. You can provide this key via an environment variable, `FASTLY_SYSLOG_CLIENT_KEY` */ tlsClientKey?: string; /** * Used during the TLS handshake to validate the certificate */ tlsHostname?: string; /** * Whether to prepend each message with a specific token */ token?: string; /** * Whether to use TLS for secure logging. Default `false` */ useTls?: boolean; } export interface ServiceComputePackage { /** * The contents of the Wasm deployment package as a base64 encoded string (e.g. could be provided using an input variable or via external data source output variable). Conflicts with `filename`. Exactly one of these two arguments must be specified */ content?: string; /** * The path to the Wasm deployment package within your local filesystem. Conflicts with `content`. Exactly one of these two arguments must be specified */ filename?: string; /** * Used to trigger updates. Must be set to a SHA512 hash of all files (in sorted order) within the package. The usual way to set this is using the fastly.getPackageHash data source. */ sourceCodeHash: string; } export interface ServiceComputeProductEnablement { /** * Enable API Discovery support */ apiDiscovery?: boolean; /** * Enable Bot Management support */ botManagement?: outputs.ServiceComputeProductEnablementBotManagement; /** * DDoS Protection product */ ddosProtection?: outputs.ServiceComputeProductEnablementDdosProtection; /** * Enable Domain Inspector support */ domainInspector?: boolean; /** * Enable Fanout support */ fanout?: boolean; /** * Enable Log Explorer & Insights */ logExplorerInsights?: boolean; /** * Used by the provider to identify modified settings (changing this value will force the entire block to be deleted, then recreated) */ name?: string; /** * Next-Gen WAF product */ ngwaf?: outputs.ServiceComputeProductEnablementNgwaf; /** * Enable WebSockets support */ websockets?: boolean; } export interface ServiceComputeProductEnablementBotManagement { /** * ContentGuard status. Can be either `off`, or `on`. */ contentguard: string; /** * Enable Bot Management support */ enabled: boolean; } export interface ServiceComputeProductEnablementDdosProtection { /** * Enable DDoS Protection support */ enabled: boolean; /** * Operation mode. Can be either `off`, `log`, or `block`. */ mode: string; } export interface ServiceComputeProductEnablementNgwaf { /** * Enable Next-Gen WAF support */ enabled: boolean; /** * The workspace to link */ workspaceId: string; } export interface ServiceComputeResourceLink { /** * An alphanumeric string identifying the resource link. */ linkId: string; /** * The name of the resource link. */ name: string; /** * The ID of the underlying linked resource. */ resourceId: string; } export interface ServiceVclAcl { /** * The ID of the ACL */ aclId: string; /** * Allow the ACL to be deleted, even if it contains entries. Defaults to false. */ forceDestroy?: boolean; /** * A unique name to identify this ACL. It is important to note that changing this attribute will delete and recreate the ACL, and discard the current items in the ACL */ name: string; } export interface ServiceVclBackend { /** * An IPv4, hostname, or IPv6 address for the Backend */ address: string; /** * Denotes if this Backend should be included in the pool of backends that requests are load balanced against. Default `false` */ autoLoadbalance?: boolean; /** * How long to wait between bytes in milliseconds. Default `10000` */ betweenBytesTimeout?: number; /** * How long to wait for a timeout in milliseconds. Default `1000` */ connectTimeout?: number; /** * Number of errors to allow before the Backend is marked as down. Default `0` */ errorThreshold?: number; /** * How long to wait for the first bytes in milliseconds. Default `15000` */ firstByteTimeout?: number; /** * Name of a defined `healthcheck` to assign to this backend */ healthcheck?: string; /** * How long in seconds to keep a persistent connection to the backend between requests. */ keepaliveTime: number; /** * Maximum number of connections for this Backend. Default `200` */ maxConn?: number; /** * Maximum time from creation (in milliseconds) that a pooled HTTP keepalive connection will be eligible for reuse; 0 is treated as unlimited - which is the default behavior. */ maxLifetime?: number; /** * Maximum allowed TLS version on SSL connections to this backend. */ maxTlsVersion?: string; /** * Maximum number of requests allowed over a single, pooled HTTP keepalive connection to this backend; 0 is treated as unlimited - which is the default behavior. */ maxUse?: number; /** * Minimum allowed TLS version on SSL connections to this backend. */ minTlsVersion?: string; /** * Name for this Backend. Must be unique to this Service. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The hostname to override the Host header */ overrideHost?: string; /** * The port number on which the Backend responds. Default `80` */ port?: number; /** * Prefer IPv6 connections to origins for hostname backends. Default `false` */ preferIpv6?: boolean; /** * Name of a condition, which if met, will select this backend during a request. */ requestCondition?: string; /** * Value that when shared across backends will enable those backends to share the same health check. */ shareKey?: string; /** * The POP of the shield designated to reduce inbound load. Valid values for `shield` are included in the `GET /datacenters` API response */ shield?: string; /** * CA certificate attached to origin. */ sslCaCert?: string; /** * Configure certificate validation. Does not affect SNI at all */ sslCertHostname?: string; /** * Be strict about checking SSL certs. Default `true` */ sslCheckCert?: boolean; /** * Cipher list consisting of one or more cipher strings separated by colons. Commas or spaces are also acceptable separators but colons are normally used. */ sslCiphers?: string; /** * Client certificate attached to origin. Used when connecting to the backend */ sslClientCert?: string; /** * Client key attached to origin. Used when connecting to the backend */ sslClientKey?: string; /** * Configure SNI in the TLS handshake. Does not affect cert validation at all */ sslSniHostname?: string; /** * Whether or not to use SSL to reach the Backend. Default `false` */ useSsl?: boolean; /** * The [portion of traffic](https://docs.fastly.com/en/guides/load-balancing-configuration#how-weight-affects-load-balancing) to send to this Backend. Each Backend receives weight / total of the traffic. Default `100` */ weight?: number; } export interface ServiceVclCacheSetting { /** * One of cache, pass, or restart, as defined on Fastly's documentation under "[Caching action descriptions](https://docs.fastly.com/en/guides/controlling-caching#caching-action-descriptions)" */ action?: string; /** * Name of already defined `condition` used to test whether this settings object should be used. This `condition` must be of type `CACHE` */ cacheCondition?: string; /** * Unique name for this Cache Setting. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Max "Time To Live" for stale (unreachable) objects */ staleTtl?: number; /** * The Time-To-Live (TTL) for the object */ ttl?: number; } export interface ServiceVclCondition { /** * The unique name for the condition. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * A number used to determine the order in which multiple conditions execute. Lower numbers execute first. Default `10` */ priority?: number; /** * The statement used to determine if the condition is met */ statement: string; /** * Type of condition, either `REQUEST` (req), `RESPONSE` (req, resp), or `CACHE` (req, beresp) */ type: string; } export interface ServiceVclDictionary { /** * The ID of the dictionary */ dictionaryId: string; /** * Allow the dictionary to be deleted, even if it contains entries. Defaults to false. */ forceDestroy?: boolean; /** * A unique name to identify this dictionary. It is important to note that changing this attribute will delete and recreate the dictionary, and discard the current items in the dictionary */ name: string; /** * If `true`, the dictionary is a [private dictionary](https://docs.fastly.com/en/guides/private-dictionaries). Default is `false`. Please note that changing this attribute will delete and recreate the dictionary, and discard the current items in the dictionary. `fastly.ServiceVcl` resource will only manage the dictionary object itself, and items under private dictionaries can not be managed using [`fastly.ServiceDictionaryItems`](https://registry.terraform.io/providers/fastly/fastly/latest/docs/resources/service_dictionary_items#limitations) resource. Therefore, using a write-only/private dictionary should only be done if the items are managed outside of Terraform */ writeOnly?: boolean; } export interface ServiceVclDirector { /** * Names of defined backends to map the director to. Example: `[ "origin1", "origin2" ]` */ backends: string[]; /** * An optional comment about the Director */ comment?: string; /** * Unique name for this Director. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Percentage of capacity that needs to be up for the director itself to be considered up. Default `75` */ quorum?: number; /** * How many backends to search if it fails. Default `5` */ retries?: number; /** * Selected POP to serve as a "shield" for backends. Valid values for `shield` are included in the [`GET /datacenters`](https://developer.fastly.com/reference/api/utils/datacenter/) API response */ shield?: string; /** * Type of load balance group to use. Integer, 1 to 4. Values: `1` (random), `3` (hash), `4` (client). Default `1` */ type?: number; } export interface ServiceVclDomain { /** * An optional comment about the Domain. */ comment?: string; /** * The domain that this Service will respond to. It is important to note that changing this attribute will delete and recreate the resource. */ name: string; } export interface ServiceVclDynamicsnippet { /** * The VCL code that specifies exactly what the snippet does */ content?: string; /** * A name that is unique across "regular" and "dynamic" VCL Snippet configuration blocks. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Priority determines the ordering for multiple snippets. Lower numbers execute first. Defaults to `100` */ priority?: number; /** * The ID of the dynamic snippet */ snippetId: string; /** * The location in generated VCL where the snippet should be placed (can be one of `init`, `recv`, `hash`, `hit`, `miss`, `pass`, `fetch`, `error`, `deliver`, `log` or `none`) */ type: string; } export interface ServiceVclGzip { /** * Name of already defined `condition` controlling when this gzip configuration applies. This `condition` must be of type `CACHE`. For detailed information about Conditionals, see [Fastly's Documentation on Conditionals](https://docs.fastly.com/en/guides/using-conditions) */ cacheCondition?: string; /** * The content-type for each type of content you wish to have dynamically gzip'ed. Example: `["text/html", "text/css"]` */ contentTypes?: string[]; /** * File extensions for each file type to dynamically gzip. Example: `["css", "js"]` */ extensions?: string[]; /** * A name to refer to this gzip condition. It is important to note that changing this attribute will delete and recreate the resource */ name: string; } export interface ServiceVclHeader { /** * The Header manipulation action to take; must be one of `set`, `append`, `delete`, `regex`, or `regexRepeat` */ action: string; /** * Name of already defined `condition` to apply. This `condition` must be of type `CACHE` */ cacheCondition?: string; /** * The name of the header that is going to be affected by the Action */ destination: string; /** * Don't add the header if it is already. (Only applies to `set` action.). Default `false` */ ignoreIfSet?: boolean; /** * Unique name for this header attribute. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Lower priorities execute first. Default: `100` */ priority?: number; /** * Regular expression to use (Only applies to `regex` and `regexRepeat` actions.) */ regex: string; /** * Name of already defined `condition` to apply. This `condition` must be of type `REQUEST` */ requestCondition?: string; /** * Name of already defined `condition` to apply. This `condition` must be of type `RESPONSE`. For detailed information about Conditionals, see [Fastly's Documentation on Conditionals](https://docs.fastly.com/en/guides/using-conditions) */ responseCondition?: string; /** * Variable to be used as a source for the header content (Does not apply to `delete` action.) */ source: string; /** * Value to substitute in place of regular expression. (Only applies to `regex` and `regexRepeat`.) */ substitution: string; /** * The Request type on which to apply the selected Action; must be one of `request`, `fetch`, `cache` or `response` */ type: string; } export interface ServiceVclHealthcheck { /** * How often to run the Healthcheck in milliseconds. Default `5000` */ checkInterval?: number; /** * The status code expected from the host. Default `200` */ expectedResponse?: number; /** * Custom health check HTTP headers (e.g. if your health check requires an API key to be provided). */ headers?: string[]; /** * The Host header to send for this Healthcheck */ host: string; /** * Whether to use version 1.0 or 1.1 HTTP. Default `1.1` */ httpVersion?: string; /** * When loading a config, the initial number of probes to be seen as OK. Default `3` */ initial?: number; /** * Which HTTP method to use. Default `HEAD` */ method?: string; /** * A unique name to identify this Healthcheck. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to check */ path: string; /** * How many Healthchecks must succeed to be considered healthy. Default `3` */ threshold?: number; /** * Timeout in milliseconds. Default `5000` */ timeout?: number; /** * The number of most recent Healthcheck queries to keep for this Healthcheck. Default `5` */ window?: number; } export interface ServiceVclImageOptimizerDefaultSettings { /** * Enables GIF to MP4 transformations on this service. */ allowVideo?: boolean; /** * The default quality to use with JPEG output. This can be overridden with the "quality" parameter on specific image optimizer requests. */ jpegQuality?: number; /** * The default type of JPEG output to use. This can be overridden with "format=bjpeg" and "format=pjpeg" on specific image optimizer requests. Valid values are `auto`, `baseline` and `progressive`. * - auto: Match the input JPEG type, or baseline if transforming from a non-JPEG input. * - baseline: Output baseline JPEG images * - progressive: Output progressive JPEG images */ jpegType?: string; /** * Used by the provider to identify modified settings. Changing this value will force the entire block to be deleted, then recreated. */ name?: string; /** * The type of filter to use while resizing an image. Valid values are `lanczos3`, `lanczos2`, `bicubic`, `bilinear` and `nearest`. * - lanczos3: A Lanczos filter with a kernel size of 3. Lanczos filters can detect edges and linear features within an image, providing the best possible reconstruction. * - lanczos2: A Lanczos filter with a kernel size of 2. * - bicubic: A filter using an average of a 4x4 environment of pixels, weighing the innermost pixels higher. * - bilinear: A filter using an average of a 2x2 environment of pixels. * - nearest: A filter using the value of nearby translated pixel values. Preserves hard edges. */ resizeFilter?: string; /** * Whether or not we should allow output images to render at sizes larger than input. */ upscale?: boolean; /** * Controls whether or not to default to WebP output when the client supports it. This is equivalent to adding "auto=webp" to all image optimizer requests. */ webp?: boolean; /** * The default quality to use with WebP output. This can be overridden with the second option in the "quality" URL parameter on specific image optimizer requests. */ webpQuality?: number; } export interface ServiceVclLoggingBigquery { /** * The google account name used to obtain temporary credentials (default none). Not required if 'email' and 'secret_key' are provided. You may optionally provide this via an environment variable, `FASTLY_GCS_ACCOUNT_NAME`. */ accountName?: string; /** * The ID of your BigQuery dataset */ dataset: string; /** * The email for the service account with write access to your BigQuery dataset. If not provided, this will be pulled from a `FASTLY_BQ_EMAIL` environment variable */ email: string; /** * The logging format desired. */ format?: string; /** * A unique name to identify this BigQuery logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The ID of your GCP project */ projectId: string; /** * Name of a condition to apply this logging. */ responseCondition?: string; /** * The secret key associated with the service account that has write access to your BigQuery table. If not provided, this will be pulled from the `FASTLY_BQ_SECRET_KEY` environment variable. Typical format for this is a private key in a string with newlines */ secretKey: string; /** * The ID of your BigQuery table */ table: string; /** * BigQuery table name suffix template */ template?: string; } export interface ServiceVclLoggingBlobstorage { /** * The unique Azure Blob Storage namespace in which your data objects are stored */ accountName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * The name of the Azure Blob Storage container in which to store logs */ container: string; /** * Maximum size of an uploaded log file, if non-zero. */ fileMaxBytes?: number; /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2) */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify the Azure Blob Storage endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to upload logs to. Must end with a trailing slash. If this field is left empty, the files will be saved in the container's root path */ path?: string; /** * How frequently the logs should be transferred in seconds. Default `3600` */ period?: number; /** * Where in the generated VCL the logging call should be placed */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The name of the condition to apply */ responseCondition?: string; /** * The Azure shared access signature providing write access to the blob service objects. Be sure to update your token before it expires or the logging functionality will not work */ sasToken: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; } export interface ServiceVclLoggingCloudfile { /** * Your Cloud File account access key */ accessKey: string; /** * The name of your Cloud Files container */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the Rackspace Cloud Files logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to upload logs to */ path?: string; /** * How frequently log files are finalized so they can be available for reading (in seconds, default `3600`) */ period?: number; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The region to stream logs to. One of: DFW (Dallas), ORD (Chicago), IAD (Northern Virginia), LON (London), SYD (Sydney), HKG (Hong Kong) */ region?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * The username for your Cloud Files account */ user: string; } export interface ServiceVclLoggingDatadog { /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the Datadog logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The region that log data will be sent to. Defaults to `US` if undefined */ region?: string; /** * The name of the condition to apply. */ responseCondition?: string; /** * The API key from your Datadog account */ token: string; } export interface ServiceVclLoggingDigitalocean { /** * Your DigitalOcean Spaces account access key */ accessKey: string; /** * The name of the DigitalOcean Space */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * The domain of the DigitalOcean Spaces endpoint (default `nyc3.digitaloceanspaces.com`) */ domain?: string; /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the DigitalOcean Spaces logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The path to upload logs to */ path?: string; /** * How frequently log files are finalized so they can be available for reading (in seconds, default `3600`) */ period?: number; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * Your DigitalOcean Spaces account secret key */ secretKey: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; } export interface ServiceVclLoggingElasticsearch { /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2). */ formatVersion?: number; /** * The name of the Elasticsearch index to send documents (logs) to */ index: string; /** * The unique name of the Elasticsearch logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * BasicAuth password for Elasticsearch */ password?: string; /** * The ID of the Elasticsearch ingest pipeline to apply pre-process transformations to before indexing */ pipeline?: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The maximum number of logs sent in one request. Defaults to `0` for unbounded */ requestMaxBytes?: number; /** * The maximum number of bytes sent in one request. Defaults to `0` for unbounded */ requestMaxEntries?: number; /** * The name of the condition to apply */ responseCondition?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format */ tlsClientKey?: string; /** * The hostname used to verify the server's certificate. It can either be the Common Name (CN) or a Subject Alternative Name (SAN) */ tlsHostname?: string; /** * The Elasticsearch URL to stream logs to */ url: string; /** * BasicAuth username for Elasticsearch */ user?: string; } export interface ServiceVclLoggingFtp { /** * The FTP address to stream logs to */ address: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2). */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the FTP logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The password for the server (for anonymous use an email address) */ password: string; /** * The path to upload log files to. If the path ends in `/` then it is treated as a directory */ path: string; /** * How frequently the logs should be transferred, in seconds (Default `3600`) */ period?: number; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * The port number. Default: `21` */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The name of the condition to apply. */ responseCondition?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * The username for the server (can be `anonymous`) */ user: string; } export interface ServiceVclLoggingGc { /** * The google account name used to obtain temporary credentials (default none). You may optionally provide this via an environment variable, `FASTLY_GCS_ACCOUNT_NAME`. */ accountName?: string; /** * The name of the bucket in which to store the logs */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Apache-style string or VCL variables to use for log formatting */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (Default: 2) */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify this GCS endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Path to store the files. Must end with a trailing slash. If this field is left empty, the files will be saved in the bucket's root path */ path?: string; /** * How frequently the logs should be transferred, in seconds (Default 3600) */ period?: number; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The ID of your Google Cloud Platform project */ projectId?: string; /** * Name of a condition to apply this logging. */ responseCondition?: string; /** * The secret key associated with the target gcs bucket on your account. You may optionally provide this secret via an environment variable, `FASTLY_GCS_SECRET_KEY`. A typical format for the key is PEM format, containing actual newline characters where required */ secretKey?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * Your Google Cloud Platform service account email address. The `clientEmail` field in your service account authentication JSON. You may optionally provide this via an environment variable, `FASTLY_GCS_EMAIL`. */ user?: string; } export interface ServiceVclLoggingGooglepubsub { /** * The google account name used to obtain temporary credentials (default none). You may optionally provide this via an environment variable, `FASTLY_GCS_ACCOUNT_NAME`. */ accountName?: string; /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2). */ formatVersion?: number; /** * The unique name of the Google Cloud Pub/Sub logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The ID of your Google Cloud Platform project */ projectId: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * Your Google Cloud Platform account secret key. The `privateKey` field in your service account authentication JSON. You may optionally provide this secret via an environment variable, `FASTLY_GOOGLE_PUBSUB_SECRET_KEY`. */ secretKey: string; /** * The Google Cloud Pub/Sub topic to which logs will be published */ topic: string; /** * Your Google Cloud Platform service account email address. The `clientEmail` field in your service account authentication JSON. You may optionally provide this via an environment variable, `FASTLY_GOOGLE_PUBSUB_EMAIL`. */ user: string; } export interface ServiceVclLoggingGrafanacloudlog { /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The stream identifier as a JSON string */ index: string; /** * The unique name of the GrafanaCloudLogs logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of the condition to apply. */ responseCondition?: string; /** * The Access Policy Token key for your GrafanaCloudLogs account */ token: string; /** * The URL to stream logs to */ url: string; /** * The Grafana User ID */ user: string; } export interface ServiceVclLoggingHerokus { /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the Heroku logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The token to use for authentication (https://www.heroku.com/docs/customer-token-authentication-token/) */ token: string; /** * The URL to stream logs to */ url: string; } export interface ServiceVclLoggingHoneycomb { /** * The Honeycomb Dataset you want to log to */ dataset: string; /** * Apache style log formatting. Your log must produce valid JSON that Honeycomb can ingest. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the Honeycomb logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The Write Key from the Account page of your Honeycomb account */ token: string; } export interface ServiceVclLoggingHttp { /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Value of the `Content-Type` header sent with the request */ contentType?: string; /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2) */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * Custom header sent with the request */ headerName?: string; /** * Value of the custom header sent with the request */ headerValue?: string; /** * Formats log entries as JSON. Can be either disabled (`0`), array of json (`1`), or newline delimited json (`2`) */ jsonFormat?: string; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * HTTP method used for request. Can be either `POST` or `PUT`. Default `POST` */ method?: string; /** * The unique name of the HTTPS logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * How frequently, in seconds, batches of log data are sent to the HTTPS endpoint. A value of 0 sends logs at the same interval as the default, which is 5 seconds. */ period?: number; /** * Where in the generated VCL the logging call should be placed */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The maximum number of bytes sent in one request */ requestMaxBytes?: number; /** * The maximum number of logs sent in one request */ requestMaxEntries?: number; /** * The name of the condition to apply */ responseCondition?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format */ tlsClientKey?: string; /** * Used during the TLS handshake to validate the certificate */ tlsHostname?: string; /** * URL that log data will be sent to. Must use the https protocol */ url: string; } export interface ServiceVclLoggingKafka { /** * SASL authentication method. One of: plain, scram-sha-256, scram-sha-512 */ authMethod?: string; /** * A comma-separated list of IP addresses or hostnames of Kafka brokers */ brokers: string; /** * The codec used for compression of your logs. One of: `gzip`, `snappy`, `lz4` */ compressionCodec?: string; /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2). */ formatVersion?: number; /** * The unique name of the Kafka logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Enables parsing of key=value tuples from the beginning of a logline, turning them into record headers */ parseLogKeyvals?: boolean; /** * SASL Pass */ password?: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * Maximum size of log batch, if non-zero. Defaults to 0 for unbounded */ requestMaxBytes?: number; /** * The Number of acknowledgements a leader must receive before a write is considered successful. One of: `1` (default) One server needs to respond. `0` No servers need to respond. `-1` Wait for all in-sync replicas to respond */ requiredAcks?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format */ tlsClientKey?: string; /** * The hostname used to verify the server's certificate. It can either be the Common Name or a Subject Alternative Name (SAN) */ tlsHostname?: string; /** * The Kafka topic to send logs to */ topic: string; /** * Whether to use TLS for secure logging. Can be either `true` or `false` */ useTls?: boolean; /** * SASL User */ user?: string; } export interface ServiceVclLoggingKinese { /** * The AWS access key to be used to write to the stream */ accessKey?: string; /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The Amazon Resource Name (ARN) for the IAM role granting Fastly access to Kinesis. Not required if `accessKey` and `secretKey` are provided. */ iamRole?: string; /** * The unique name of the Kinesis logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The AWS region the stream resides in. (Default: `us-east-1`) */ region?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The AWS secret access key to authenticate with */ secretKey?: string; /** * The Kinesis stream name */ topic: string; } export interface ServiceVclLoggingLogentry { /** * Apache-style string or VCL variables to use for log formatting */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (Default: 2) */ formatVersion?: number; /** * The unique name of the Logentries logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * The port number configured in Logentries */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * Name of blockAttributes condition to apply this logging. */ responseCondition?: string; /** * Use token based authentication (https://logentries.com/doc/input-token/) */ token: string; /** * Whether to use TLS for secure logging */ useTls?: boolean; } export interface ServiceVclLoggingLoggly { /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the Loggly logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The token to use for authentication (https://www.loggly.com/docs/customer-token-authentication-token/). */ token: string; } export interface ServiceVclLoggingLogshuttle { /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the Log Shuttle logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The data authentication token associated with this endpoint */ token: string; /** * Your Log Shuttle endpoint URL */ url: string; } export interface ServiceVclLoggingNewrelic { /** * Apache style log formatting. Your log must produce valid JSON that New Relic Logs can ingest. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the New Relic logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The region that log data will be sent to. Default: `US` */ region?: string; /** * The name of the condition to apply. */ responseCondition?: string; /** * The Insert API key from the Account page of your New Relic account */ token: string; } export interface ServiceVclLoggingNewrelicotlp { /** * Apache style log formatting. Your log must produce valid JSON that New Relic OTLP can ingest. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * The unique name of the New Relic OTLP logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The region that log data will be sent to. Default: `US` */ region?: string; /** * The name of the condition to apply. */ responseCondition?: string; /** * The Insert API key from the Account page of your New Relic account */ token: string; /** * The optional New Relic Trace Observer URL to stream logs to for Infinite Tracing. */ url?: string; } export interface ServiceVclLoggingOpenstack { /** * Your OpenStack account access key */ accessKey: string; /** * The name of your OpenStack container */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`). */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the OpenStack logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Path to store the files. Must end with a trailing slash. If this field is left empty, the files will be saved in the bucket's root path */ path?: string; /** * How frequently the logs should be transferred, in seconds. Default `3600` */ period?: number; /** * Where in the generated VCL the logging call should be placed. Can be `none` or `none`. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * Your OpenStack auth url */ url: string; /** * The username for your OpenStack account */ user: string; } export interface ServiceVclLoggingPapertrail { /** * The address of the Papertrail endpoint */ address: string; /** * A Fastly [log format string](https://docs.fastly.com/en/guides/custom-log-formats) */ format?: string; /** * The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vclLog` if `formatVersion` is set to `2` and in `vclDeliver` if `formatVersion` is set to `1` */ formatVersion?: number; /** * A unique name to identify this Papertrail endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. If not set, endpoints with `formatVersion` of 2 are placed in `vclLog` and those with `formatVersion` of 1 are placed in `vclDeliver` */ placement?: string; /** * The port associated with the address where the Papertrail endpoint can be accessed */ port: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute */ responseCondition?: string; } export interface ServiceVclLoggingS3 { /** * The AWS [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) to use for objects uploaded to the S3 bucket. Options are: `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, `bucket-owner-full-control` */ acl?: string; /** * The name of the bucket in which to store the logs */ bucketName: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * If you created the S3 bucket outside of `us-east-1`, then specify the corresponding bucket endpoint. Example: `s3-us-west-2.amazonaws.com` */ domain?: string; /** * Maximum size of an uploaded log file, if non-zero. */ fileMaxBytes?: number; /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (Default: 2). */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the S3 logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Path to store the files. Must end with a trailing slash. If this field is left empty, the files will be saved in the bucket's root path */ path?: string; /** * How frequently the logs should be transferred, in seconds. Default `3600` */ period?: number; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The S3 storage class (redundancy level). Should be one of: `standard`, `intelligentTiering`, `standardIa`, `onezoneIa`, `glacier`, `glacierIr`, `deepArchive`, or `reducedRedundancy` */ redundancy?: string; /** * Name of blockAttributes condition to apply this logging. */ responseCondition?: string; /** * AWS Access Key of an account with the required permissions to post logs. It is **strongly** recommended you create a separate IAM user with permissions to only operate on this Bucket. This key will be not be encrypted. Not required if `iamRole` is provided. You can provide this key via an environment variable, `FASTLY_S3_ACCESS_KEY` */ s3AccessKey?: string; /** * The Amazon Resource Name (ARN) for the IAM role granting Fastly access to S3. Not required if `accessKey` and `secretKey` are provided. You can provide this value via an environment variable, `FASTLY_S3_IAM_ROLE` */ s3IamRole?: string; /** * AWS Secret Key of an account with the required permissions to post logs. It is **strongly** recommended you create a separate IAM user with permissions to only operate on this Bucket. This secret will be not be encrypted. Not required if `iamRole` is provided. You can provide this secret via an environment variable, `FASTLY_S3_SECRET_KEY` */ s3SecretKey?: string; /** * Specify what type of server side encryption should be used. Can be either `AES256` or `aws:kms` */ serverSideEncryption?: string; /** * Optional server-side KMS Key Id. Must be set if serverSideEncryption is set to `aws:kms` */ serverSideEncryptionKmsKeyId?: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; } export interface ServiceVclLoggingScalyr { /** * Apache style log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2). */ formatVersion?: number; /** * The unique name of the Scalyr logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of the logfile field sent to Scalyr */ projectId?: string; /** * The region that log data will be sent to. One of `US` or `EU`. Defaults to `US` if undefined */ region?: string; /** * The name of an existing condition in the configured endpoint, or leave blank to always execute. */ responseCondition?: string; /** * The token to use for authentication (https://www.scalyr.com/keys) */ token: string; } export interface ServiceVclLoggingSftp { /** * The SFTP address to stream logs to */ address: string; /** * The codec used for compression of your logs. Valid values are zstd, snappy, and gzip. If the specified codec is "gzip", gzipLevel will default to 3. To specify a different level, leave compressionCodec blank and explicitly set the level using gzip_level. Specifying both compressionCodec and gzipLevel in the same API request will result in an error. */ compressionCodec?: string; /** * Apache-style string or VCL variables to use for log formatting. */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2). */ formatVersion?: number; /** * Level of Gzip compression from `0-9`. `0` means no compression. `1` is the fastest and the least compressed version, `9` is the slowest and the most compressed version. Default `0` */ gzipLevel?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * The unique name of the SFTP logging endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * The password for the server. If both `password` and `secretKey` are passed, `secretKey` will be preferred */ password?: string; /** * The path to upload log files to. If the path ends in `/` then it is treated as a directory */ path: string; /** * How frequently log files are finalized so they can be available for reading (in seconds, default `3600`) */ period?: number; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * The port the SFTP service listens on. (Default: `22`) */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: string; /** * The name of the condition to apply. */ responseCondition?: string; /** * The SSH private key for the server. If both `password` and `secretKey` are passed, `secretKey` will be preferred */ secretKey?: string; /** * A list of host keys for all hosts we can connect to over SFTP */ sshKnownHosts: string; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: string; /** * The username for the server */ user: string; } export interface ServiceVclLoggingSplunk { /** * Apache-style string or VCL variables to use for log formatting (default: `%h %l %u %t "%r" %>s %b`) */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (default: 2) */ formatVersion?: number; /** * A unique name to identify the Splunk endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * The name of the condition to apply */ responseCondition?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format. You can provide this certificate via an environment variable, `FASTLY_SPLUNK_CA_CERT` */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format. */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format. */ tlsClientKey?: string; /** * The hostname used to verify the server's certificate. It can either be the Common Name or a Subject Alternative Name (SAN) */ tlsHostname?: string; /** * The Splunk token to be used for authentication */ token: string; /** * The Splunk URL to stream logs to */ url: string; /** * Whether to use TLS for secure logging. Default: `false` */ useTls?: boolean; } export interface ServiceVclLoggingSumologic { /** * Apache-style string or VCL variables to use for log formatting */ format?: string; /** * The version of the custom logging format used for the configured endpoint. Can be either 1 or 2. (Default: 2) */ formatVersion?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify this Sumologic endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * Name of blockAttributes condition to apply this logging. */ responseCondition?: string; /** * The URL to Sumologic collector endpoint */ url: string; } export interface ServiceVclLoggingSyslog { /** * A hostname or IPv4 address of the Syslog endpoint */ address: string; /** * Apache-style string or VCL variables to use for log formatting */ format?: string; /** * The version of the custom logging format. Can be either 1 or 2. (Default: 2) */ formatVersion?: number; /** * How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic` */ messageType?: string; /** * A unique name to identify this Syslog endpoint. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Where in the generated VCL the logging call should be placed. */ placement?: string; /** * The port associated with the address where the Syslog endpoint can be accessed. Default `514` */ port?: number; /** * Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'. */ processingRegion?: string; /** * Name of blockAttributes condition to apply this logging. */ responseCondition?: string; /** * A secure certificate to authenticate the server with. Must be in PEM format. You can provide this certificate via an environment variable, `FASTLY_SYSLOG_CA_CERT` */ tlsCaCert?: string; /** * The client certificate used to make authenticated requests. Must be in PEM format. You can provide this certificate via an environment variable, `FASTLY_SYSLOG_CLIENT_CERT` */ tlsClientCert?: string; /** * The client private key used to make authenticated requests. Must be in PEM format. You can provide this key via an environment variable, `FASTLY_SYSLOG_CLIENT_KEY` */ tlsClientKey?: string; /** * Used during the TLS handshake to validate the certificate */ tlsHostname?: string; /** * Whether to prepend each message with a specific token */ token?: string; /** * Whether to use TLS for secure logging. Default `false` */ useTls?: boolean; } export interface ServiceVclProductEnablement { /** * Enable API Discovery support */ apiDiscovery?: boolean; /** * Enable Bot Management support */ botManagement?: outputs.ServiceVclProductEnablementBotManagement; /** * Enable Brotli Compression support */ brotliCompression?: boolean; /** * DDoS Protection product */ ddosProtection?: outputs.ServiceVclProductEnablementDdosProtection; /** * Enable Domain Inspector support */ domainInspector?: boolean; /** * Enable Image Optimizer support (all backends must have a `shield` attribute) */ imageOptimizer?: boolean; /** * Enable Log Explorer & Insights */ logExplorerInsights?: boolean; /** * Used by the provider to identify modified settings (changing this value will force the entire block to be deleted, then recreated) */ name?: string; /** * Next-Gen WAF product */ ngwaf?: outputs.ServiceVclProductEnablementNgwaf; /** * Enable Origin Inspector support */ originInspector?: boolean; /** * Enable WebSockets support */ websockets?: boolean; } export interface ServiceVclProductEnablementBotManagement { /** * ContentGuard status. Can be either `off`, or `on`. */ contentguard: string; /** * Enable Bot Management support */ enabled: boolean; } export interface ServiceVclProductEnablementDdosProtection { /** * Enable DDoS Protection support */ enabled: boolean; /** * Operation mode. Can be either `off`, `log`, or `block`. */ mode: string; } export interface ServiceVclProductEnablementNgwaf { /** * Enable Next-Gen WAF support */ enabled: boolean; /** * The percentage of traffic to inspect */ trafficRamp?: number; /** * The workspace to link */ workspaceId: string; } export interface ServiceVclRateLimiter { /** * The action to take when a rate limiter violation is detected (one of: log_only, response, response_object) */ action: string; /** * Comma-separated list of VCL variables used to generate a counter key to identify a client */ clientKey: string; /** * Revision number of the rate limiting feature implementation */ featureRevision?: number; /** * Comma-separated list of HTTP methods to apply rate limiting to */ httpMethods: string; /** * Name of the type of logging endpoint to be used when action is logOnly (one of: azureblob, bigquery, cloudfiles, datadog, digitalocean, elasticsearch, ftp, gcs, googleanalytics, heroku, honeycomb, http, https, kafka, kinesis, logentries, loggly, logshuttle, newrelic, openstack, papertrail, pubsub, s3, scalyr, sftp, splunk, stackdriver, sumologic, syslog) */ loggerType?: string; /** * A unique human readable name for the rate limiting rule */ name: string; /** * Length of time in minutes that the rate limiter is in effect after the initial violation is detected */ penaltyBoxDuration: number; /** * Alphanumeric string identifying the rate limiter */ ratelimiterId: string; /** * Custom response to be sent when the rate limit is exceeded. Required if action is response */ response?: outputs.ServiceVclRateLimiterResponse; /** * Name of existing response object. Required if action is response_object */ responseObjectName?: string; /** * Upper limit of requests per second allowed by the rate limiter */ rpsLimit: number; /** * The name of an Edge Dictionary containing URIs as keys. If not defined or null, all origin URIs will be rate limited */ uriDictionaryName?: string; /** * Number of seconds during which the RPS limit must be exceeded in order to trigger a violation (one of: 1, 10, 60) */ windowSize: number; } export interface ServiceVclRateLimiterResponse { /** * HTTP response body data */ content: string; /** * HTTP Content-Type (e.g. application/json) */ contentType: string; /** * HTTP response status code (e.g. 429) */ status: number; } export interface ServiceVclRequestSetting { /** * Allows you to terminate request handling and immediately perform an action. When set it can be `lookup` or `pass` (Ignore the cache completely) */ action?: string; /** * Disable collapsed forwarding, so you don't wait for other objects to origin */ bypassBusyWait?: boolean; /** * Sets the host header */ defaultHost?: string; /** * Force a cache miss for the request. If specified, can be `true` or `false` */ forceMiss?: boolean; /** * Forces the request to use SSL (Redirects a non-SSL request to SSL) */ forceSsl?: boolean; /** * Comma separated list of varnish request object fields that should be in the hash key */ hashKeys?: string; /** * How old an object is allowed to be to serve `stale-if-error` or `stale-while-revalidate`, in seconds */ maxStaleAge?: number; /** * Unique name to refer to this Request Setting. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Name of already defined `condition` to determine if this request setting should be applied (should be unique across multiple instances of `requestSetting`) */ requestCondition?: string; /** * Injects the X-Timer info into the request for viewing origin fetch durations */ timerSupport?: boolean; /** * X-Forwarded-For, should be `clear`, `leave`, `append`, `appendAll`, or `overwrite` */ xff?: string; } export interface ServiceVclResponseObject { /** * Name of already defined `condition` to check after we have retrieved an object. If the condition passes then deliver this Request Object instead. This `condition` must be of type `CACHE`. For detailed information about Conditionals, see [Fastly's Documentation on Conditionals](https://docs.fastly.com/en/guides/using-conditions) */ cacheCondition?: string; /** * The content to deliver for the response object */ content?: string; /** * The MIME type of the content */ contentType?: string; /** * A unique name to identify this Response Object. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Name of already defined `condition` to be checked during the request phase. If the condition passes then this object will be delivered. This `condition` must be of type `REQUEST` */ requestCondition?: string; /** * The HTTP Response. Default `OK` */ response?: string; /** * The HTTP Status Code. Default `200` */ status?: number; } export interface ServiceVclSnippet { /** * The VCL code that specifies exactly what the snippet does */ content: string; /** * A name that is unique across "regular" and "dynamic" VCL Snippet configuration blocks. It is important to note that changing this attribute will delete and recreate the resource */ name: string; /** * Priority determines the ordering for multiple snippets. Lower numbers execute first. Defaults to `100` */ priority?: number; /** * The location in generated VCL where the snippet should be placed (can be one of `init`, `recv`, `hash`, `hit`, `miss`, `pass`, `fetch`, `error`, `deliver`, `log` or `none`) */ type: string; } export interface ServiceVclVcl { /** * The custom VCL code to upload */ content: string; /** * If `true`, use this block as the main configuration. If `false`, use this block as an includable library. Only a single VCL block can be marked as the main block. Default is `false` */ main?: boolean; /** * A unique name for this configuration block. It is important to note that changing this attribute will delete and recreate the resource */ name: string; } export interface TlsSubscriptionManagedDnsChallenge { /** * The name of the DNS record to add. For example `_acme-challenge.example.com`. */ recordName: string; /** * The type of DNS record to add, e.g. `A`, or `CNAME`. */ recordType: string; /** * The value to which the DNS record should point, e.g. `xxxxx.fastly-validations.com`. */ recordValue: string; } export interface TlsSubscriptionManagedHttpChallenge { /** * The name of the DNS record to add. For example `example.com`. Best accessed through a `for` expression to filter the relevant record. */ recordName: string; /** * The type of DNS record to add, e.g. `A`, or `CNAME`. */ recordType: string; /** * A list with the value(s) to which the DNS record should point. */ recordValues: string[]; } //# sourceMappingURL=output.d.ts.map