@pulumi/fastly
Version:
A Pulumi package for creating and managing fastly cloud resources.. Based on terraform-provider-fastly: version v4
1,300 lines • 153 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface AlertDimensions {
/**
* Names of a subset of domains that the alert monitors.
*/
domains?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Addresses of a subset of backends that the alert monitors.
*/
origins?: pulumi.Input<pulumi.Input<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?: pulumi.Input<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: pulumi.Input<string>;
/**
* Threshold used to alert.
*/
threshold: pulumi.Input<number>;
/**
* Type of strategy to use to evaluate. One of: `aboveThreshold`, `allAboveThreshold`, `belowThreshold`, `percentAbsolute`, `percentDecrease`, `percentIncrease`.
*/
type: pulumi.Input<string>;
}
export interface CustomDashboardDashboardItem {
/**
* An object which describes the data to display.
*/
dataSource: pulumi.Input<inputs.CustomDashboardDashboardItemDataSource>;
/**
* Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard.
*/
id: pulumi.Input<string>;
/**
* The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes.
*/
span?: pulumi.Input<number>;
/**
* A human-readable subtitle for the dashboard item. Often a description of the visualization.
*/
subtitle: pulumi.Input<string>;
/**
* A human-readable title for the dashboard item.
*/
title: pulumi.Input<string>;
/**
* An object which describes the data visualization to display.
*/
visualization: pulumi.Input<inputs.CustomDashboardDashboardItemVisualization>;
}
export interface CustomDashboardDashboardItemDataSource {
/**
* Configuration options for the selected data source.
*/
config: pulumi.Input<inputs.CustomDashboardDashboardItemDataSourceConfig>;
/**
* The source of the data to display. One of: `stats.edge`, `stats.domain`, `stats.origin`.
*/
type: pulumi.Input<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: pulumi.Input<pulumi.Input<string>[]>;
}
export interface CustomDashboardDashboardItemVisualization {
/**
* Configuration options for the selected data source.
*/
config: pulumi.Input<inputs.CustomDashboardDashboardItemVisualizationConfig>;
/**
* The type of visualization to display. One of: `chart`.
*/
type: pulumi.Input<string>;
}
export interface CustomDashboardDashboardItemVisualizationConfig {
/**
* The aggregation function to apply to the dataset. One of: `avg`, `sum`, `min`, `max`, `latest`, `p95`.
*/
calculationMethod?: pulumi.Input<string>;
/**
* The units to use to format the data. One of: `number`, `bytes`, `percent`, `requests`, `responses`, `seconds`, `milliseconds`, `ratio`, `bitrate`.
*/
format?: pulumi.Input<string>;
/**
* The type of chart to display. One of: `line`, `bar`, `single-metric`, `donut`.
*/
plotType: pulumi.Input<string>;
}
export interface NgwafAccountRuleAction {
/**
* Signal name to exclude (used when `type = excludeSignal`).
*/
signal?: pulumi.Input<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: pulumi.Input<string>;
}
export interface NgwafAccountRuleCondition {
/**
* Field to inspect (e.g., `ip`, `path`).
*/
field: pulumi.Input<string>;
/**
* Operator to apply (e.g., `equals`, `contains`).
*/
operator: pulumi.Input<string>;
/**
* The value to test the field against.
*/
value: pulumi.Input<string>;
}
export interface NgwafAccountRuleGroupCondition {
/**
* A list of nested conditions in this group.
*/
conditions: pulumi.Input<pulumi.Input<inputs.NgwafAccountRuleGroupConditionCondition>[]>;
/**
* Logical operator for the group. Accepted values are `any` and `all`.
*/
groupOperator: pulumi.Input<string>;
}
export interface NgwafAccountRuleGroupConditionCondition {
/**
* Field to inspect (e.g., `ip`, `path`).
*/
field: pulumi.Input<string>;
/**
* Operator to apply (e.g., `equals`, `contains`).
*/
operator: pulumi.Input<string>;
/**
* The value to test the field against.
*/
value: pulumi.Input<string>;
}
export interface NgwafAccountRuleMultivalCondition {
/**
* A list of nested conditions in this list.
*/
conditions: pulumi.Input<pulumi.Input<inputs.NgwafAccountRuleMultivalConditionCondition>[]>;
/**
* Enums for multival condition field.. Accepted values are `postParameter`, `queryParameter`, `requestCookie`, `requestHeader`, `responseHeader`, and `signal`.
*/
field: pulumi.Input<string>;
/**
* Logical operator for the group. Accepted values are `any` and `all`.
*/
groupOperator: pulumi.Input<string>;
/**
* Indicates whether the supplied conditions will check for existence or non-existence of matching field values. Accepted values are `exists` and `doesNotExist`.
*/
operator: pulumi.Input<string>;
}
export interface NgwafAccountRuleMultivalConditionCondition {
/**
* Field to inspect (e.g., `name`, `value`, `signalId`).
*/
field: pulumi.Input<string>;
/**
* Operator to apply (e.g., `equals`, `contains`).
*/
operator: pulumi.Input<string>;
/**
* The value to test the field against.
*/
value: pulumi.Input<string>;
}
export interface NgwafWorkspaceAttackSignalThresholds {
/**
* Ignore thresholds and block immediately when at least one attack signal is detected. Default value `false`.
*/
immediate?: pulumi.Input<boolean>;
/**
* The one-hour interval threshold. Minimum 1 and maximum 10,000. Default value 100.
*/
oneHour?: pulumi.Input<number>;
/**
* The one-minute interval threshold. Minimum 1 and maximum 10,000. Default value 1.
*/
oneMinute?: pulumi.Input<number>;
/**
* The ten-minute interval threshold. Minimum 1 and maximum 10,000. Default value 60.
*/
tenMinutes?: pulumi.Input<number>;
}
export interface NgwafWorkspaceRuleAction {
/**
* Specifies if interaction is allowed (used when `type = browserChallenge`).
*/
allowInteractive?: pulumi.Input<boolean>;
/**
* specifies the type of deception (used when `type = deception`).
*/
deceptionType?: pulumi.Input<string>;
/**
* Redirect target (used when `type = redirect`).
*/
redirectUrl?: pulumi.Input<string>;
/**
* Response code used with redirect.
*/
responseCode?: pulumi.Input<number>;
/**
* Signal name to exclude (used when `type = excludeSignal`).
*/
signal?: pulumi.Input<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: pulumi.Input<string>;
}
export interface NgwafWorkspaceRuleCondition {
/**
* Field to inspect (e.g., `ip`, `path`).
*/
field: pulumi.Input<string>;
/**
* Operator to apply (e.g., `equals`, `contains`).
*/
operator: pulumi.Input<string>;
/**
* The value to test the field against.
*/
value: pulumi.Input<string>;
}
export interface NgwafWorkspaceRuleGroupCondition {
/**
* A list of nested conditions in this group.
*/
conditions: pulumi.Input<pulumi.Input<inputs.NgwafWorkspaceRuleGroupConditionCondition>[]>;
/**
* Logical operator for the group. Accepted values are `any` and `all`.
*/
groupOperator: pulumi.Input<string>;
}
export interface NgwafWorkspaceRuleGroupConditionCondition {
/**
* Field to inspect (e.g., `ip`, `path`).
*/
field: pulumi.Input<string>;
/**
* Operator to apply (e.g., `equals`, `contains`).
*/
operator: pulumi.Input<string>;
/**
* The value to test the field against.
*/
value: pulumi.Input<string>;
}
export interface NgwafWorkspaceRuleMultivalCondition {
/**
* A list of nested conditions in this list.
*/
conditions: pulumi.Input<pulumi.Input<inputs.NgwafWorkspaceRuleMultivalConditionCondition>[]>;
/**
* Enums for multival condition field.. Accepted values are `postParameter`, `queryParameter`, `requestCookie`, `requestHeader`, `responseHeader`, and `signal`.
*/
field: pulumi.Input<string>;
/**
* Logical operator for the group. Accepted values are `any` and `all`.
*/
groupOperator: pulumi.Input<string>;
/**
* Indicates whether the supplied conditions will check for existence or non-existence of matching field values. Accepted values are `exists` and `doesNotExist`.
*/
operator: pulumi.Input<string>;
}
export interface NgwafWorkspaceRuleMultivalConditionCondition {
/**
* Field to inspect (e.g., `name`, `value`, `signalId`).
*/
field: pulumi.Input<string>;
/**
* Operator to apply (e.g., `equals`, `contains`).
*/
operator: pulumi.Input<string>;
/**
* The value to test the field against.
*/
value: pulumi.Input<string>;
}
export interface NgwafWorkspaceRuleRateLimit {
/**
* List of client identifiers used for rate limiting. Can only be length 1 or 2.
*/
clientIdentifiers: pulumi.Input<pulumi.Input<inputs.NgwafWorkspaceRuleRateLimitClientIdentifier>[]>;
/**
* Duration in seconds for the rate limit.
*/
duration: pulumi.Input<number>;
/**
* Time interval for the rate limit in seconds. Accepted values are 60, 600, and 3600.
*/
interval: pulumi.Input<number>;
/**
* Reference ID of the custom signal this rule uses to count requests.
*/
signal: pulumi.Input<string>;
/**
* Rate limit threshold. Minimum 1 and maximum 10,000.
*/
threshold: pulumi.Input<number>;
}
export interface NgwafWorkspaceRuleRateLimitClientIdentifier {
/**
* Key for the Client Identifier.
*/
key?: pulumi.Input<string>;
/**
* Name for the Client Identifier.
*/
name?: pulumi.Input<string>;
/**
* Type of the Client Identifier. Accepted values are `ip`, `postParameter`, `requestCookie`, `requestHeader`, and `signalPayload`.
*/
type: pulumi.Input<string>;
}
export interface ServiceACLEntriesEntry {
/**
* A personal freeform descriptive note
*/
comment?: pulumi.Input<string>;
/**
* The unique ID of the entry
*/
id?: pulumi.Input<string>;
/**
* An IP address that is the focus for the ACL
*/
ip: pulumi.Input<string>;
/**
* A boolean that will negate the match if true
*/
negated?: pulumi.Input<boolean>;
/**
* An optional subnet mask applied to the IP address
*/
subnet?: pulumi.Input<string>;
}
export interface ServiceComputeBackend {
/**
* An IPv4, hostname, or IPv6 address for the Backend
*/
address: pulumi.Input<string>;
/**
* How long to wait between bytes in milliseconds. Default `10000`
*/
betweenBytesTimeout?: pulumi.Input<number>;
/**
* How long to wait for a timeout in milliseconds. Default `1000`
*/
connectTimeout?: pulumi.Input<number>;
/**
* Number of errors to allow before the Backend is marked as down. Default `0`
*/
errorThreshold?: pulumi.Input<number>;
/**
* How long to wait for the first bytes in milliseconds. Default `15000`
*/
firstByteTimeout?: pulumi.Input<number>;
/**
* Name of a defined `healthcheck` to assign to this backend
*/
healthcheck?: pulumi.Input<string>;
/**
* How long in seconds to keep a persistent connection to the backend between requests.
*/
keepaliveTime?: pulumi.Input<number>;
/**
* Maximum number of connections for this Backend. Default `200`
*/
maxConn?: pulumi.Input<number>;
/**
* Maximum allowed TLS version on SSL connections to this backend.
*/
maxTlsVersion?: pulumi.Input<string>;
/**
* Minimum allowed TLS version on SSL connections to this backend.
*/
minTlsVersion?: pulumi.Input<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: pulumi.Input<string>;
/**
* The hostname to override the Host header
*/
overrideHost?: pulumi.Input<string>;
/**
* The port number on which the Backend responds. Default `80`
*/
port?: pulumi.Input<number>;
/**
* Prefer IPv6 connections to origins for hostname backends. Default `true`
*/
preferIpv6?: pulumi.Input<boolean>;
/**
* Value that when shared across backends will enable those backends to share the same health check.
*/
shareKey?: pulumi.Input<string>;
/**
* The POP of the shield designated to reduce inbound load. Valid values for `shield` are included in the `GET /datacenters` API response
*/
shield?: pulumi.Input<string>;
/**
* CA certificate attached to origin.
*/
sslCaCert?: pulumi.Input<string>;
/**
* Configure certificate validation. Does not affect SNI at all
*/
sslCertHostname?: pulumi.Input<string>;
/**
* Be strict about checking SSL certs. Default `true`
*/
sslCheckCert?: pulumi.Input<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?: pulumi.Input<string>;
/**
* Client certificate attached to origin. Used when connecting to the backend
*/
sslClientCert?: pulumi.Input<string>;
/**
* Client key attached to origin. Used when connecting to the backend
*/
sslClientKey?: pulumi.Input<string>;
/**
* Configure SNI in the TLS handshake. Does not affect cert validation at all
*/
sslSniHostname?: pulumi.Input<string>;
/**
* Whether or not to use SSL to reach the Backend. Default `false`
*/
useSsl?: pulumi.Input<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?: pulumi.Input<number>;
}
export interface ServiceComputeDictionary {
/**
* The ID of the dictionary
*/
dictionaryId?: pulumi.Input<string>;
/**
* Allow the dictionary to be deleted, even if it contains entries. Defaults to false.
*/
forceDestroy?: pulumi.Input<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: pulumi.Input<string>;
writeOnly?: pulumi.Input<boolean>;
}
export interface ServiceComputeDomain {
/**
* An optional comment about the Domain.
*/
comment?: pulumi.Input<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: pulumi.Input<string>;
}
export interface ServiceComputeHealthcheck {
/**
* How often to run the Healthcheck in milliseconds. Default `5000`
*/
checkInterval?: pulumi.Input<number>;
/**
* The status code expected from the host. Default `200`
*/
expectedResponse?: pulumi.Input<number>;
/**
* Custom health check HTTP headers (e.g. if your health check requires an API key to be provided).
*/
headers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The Host header to send for this Healthcheck
*/
host: pulumi.Input<string>;
/**
* Whether to use version 1.0 or 1.1 HTTP. Default `1.1`
*/
httpVersion?: pulumi.Input<string>;
/**
* When loading a config, the initial number of probes to be seen as OK. Default `3`
*/
initial?: pulumi.Input<number>;
/**
* Which HTTP method to use. Default `HEAD`
*/
method?: pulumi.Input<string>;
/**
* A unique name to identify this Healthcheck. It is important to note that changing this attribute will delete and recreate the resource
*/
name: pulumi.Input<string>;
/**
* The path to check
*/
path: pulumi.Input<string>;
/**
* How many Healthchecks must succeed to be considered healthy. Default `3`
*/
threshold?: pulumi.Input<number>;
/**
* Timeout in milliseconds. Default `5000`
*/
timeout?: pulumi.Input<number>;
/**
* The number of most recent Healthcheck queries to keep for this Healthcheck. Default `5`
*/
window?: pulumi.Input<number>;
}
export interface ServiceComputeImageOptimizerDefaultSettings {
/**
* Enables GIF to MP4 transformations on this service.
*/
allowVideo?: pulumi.Input<boolean>;
/**
* The default quality to use with JPEG output. This can be overridden with the "quality" parameter on specific image optimizer requests.
*/
jpegQuality?: pulumi.Input<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?: pulumi.Input<string>;
/**
* Used by the provider to identify modified settings. Changing this value will force the entire block to be deleted, then recreated.
*/
name?: pulumi.Input<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?: pulumi.Input<string>;
/**
* Whether or not we should allow output images to render at sizes larger than input.
*/
upscale?: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<string>;
/**
* The ID of your BigQuery dataset
*/
dataset: pulumi.Input<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: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The ID of your GCP project
*/
projectId: pulumi.Input<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: pulumi.Input<string>;
/**
* The ID of your BigQuery table
*/
table: pulumi.Input<string>;
/**
* BigQuery table name suffix template
*/
template?: pulumi.Input<string>;
}
export interface ServiceComputeLoggingBlobstorage {
/**
* The unique Azure Blob Storage namespace in which your data objects are stored
*/
accountName: pulumi.Input<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?: pulumi.Input<string>;
/**
* The name of the Azure Blob Storage container in which to store logs
*/
container: pulumi.Input<string>;
/**
* Maximum size of an uploaded log file, if non-zero.
*/
fileMaxBytes?: pulumi.Input<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?: pulumi.Input<number>;
/**
* How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic`
*/
messageType?: pulumi.Input<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: pulumi.Input<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?: pulumi.Input<string>;
/**
* How frequently the logs should be transferred in seconds. Default `3600`
*/
period?: pulumi.Input<number>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* A PGP public key that Fastly will use to encrypt your log files before writing them to disk
*/
publicKey?: pulumi.Input<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: pulumi.Input<string>;
/**
* The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`)
*/
timestampFormat?: pulumi.Input<string>;
}
export interface ServiceComputeLoggingCloudfile {
/**
* Your Cloud File account access key
*/
accessKey: pulumi.Input<string>;
/**
* The name of your Cloud Files container
*/
bucketName: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<number>;
/**
* How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic`
*/
messageType?: pulumi.Input<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: pulumi.Input<string>;
/**
* The path to upload logs to
*/
path?: pulumi.Input<string>;
/**
* How frequently log files are finalized so they can be available for reading (in seconds, default `3600`)
*/
period?: pulumi.Input<number>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The PGP public key that Fastly will use to encrypt your log files before writing them to disk
*/
publicKey?: pulumi.Input<string>;
/**
* The region to stream logs to. One of: DFW (Dallas), ORD (Chicago), IAD (Northern Virginia), LON (London), SYD (Sydney), HKG (Hong Kong)
*/
region?: pulumi.Input<string>;
/**
* The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`)
*/
timestampFormat?: pulumi.Input<string>;
/**
* The username for your Cloud Files account
*/
user: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The region that log data will be sent to. Defaults to `US` if undefined
*/
region?: pulumi.Input<string>;
/**
* The API key from your Datadog account
*/
token: pulumi.Input<string>;
}
export interface ServiceComputeLoggingDigitalocean {
/**
* Your DigitalOcean Spaces account access key
*/
accessKey: pulumi.Input<string>;
/**
* The name of the DigitalOcean Space
*/
bucketName: pulumi.Input<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?: pulumi.Input<string>;
/**
* The domain of the DigitalOcean Spaces endpoint (default `nyc3.digitaloceanspaces.com`)
*/
domain?: pulumi.Input<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?: pulumi.Input<number>;
/**
* How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic`
*/
messageType?: pulumi.Input<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: pulumi.Input<string>;
/**
* The path to upload logs to
*/
path?: pulumi.Input<string>;
/**
* How frequently log files are finalized so they can be available for reading (in seconds, default `3600`)
*/
period?: pulumi.Input<number>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* A PGP public key that Fastly will use to encrypt your log files before writing them to disk
*/
publicKey?: pulumi.Input<string>;
/**
* Your DigitalOcean Spaces account secret key
*/
secretKey: pulumi.Input<string>;
/**
* The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`)
*/
timestampFormat?: pulumi.Input<string>;
}
export interface ServiceComputeLoggingElasticsearch {
/**
* The name of the Elasticsearch index to send documents (logs) to
*/
index: pulumi.Input<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: pulumi.Input<string>;
/**
* BasicAuth password for Elasticsearch
*/
password?: pulumi.Input<string>;
/**
* The ID of the Elasticsearch ingest pipeline to apply pre-process transformations to before indexing
*/
pipeline?: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The maximum number of logs sent in one request. Defaults to `0` for unbounded
*/
requestMaxBytes?: pulumi.Input<number>;
/**
* The maximum number of bytes sent in one request. Defaults to `0` for unbounded
*/
requestMaxEntries?: pulumi.Input<number>;
/**
* A secure certificate to authenticate the server with. Must be in PEM format
*/
tlsCaCert?: pulumi.Input<string>;
/**
* The client certificate used to make authenticated requests. Must be in PEM format
*/
tlsClientCert?: pulumi.Input<string>;
/**
* The client private key used to make authenticated requests. Must be in PEM format
*/
tlsClientKey?: pulumi.Input<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?: pulumi.Input<string>;
/**
* The Elasticsearch URL to stream logs to
*/
url: pulumi.Input<string>;
/**
* BasicAuth username for Elasticsearch
*/
user?: pulumi.Input<string>;
}
export interface ServiceComputeLoggingFtp {
/**
* The FTP address to stream logs to
*/
address: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<number>;
/**
* How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic`
*/
messageType?: pulumi.Input<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: pulumi.Input<string>;
/**
* The password for the server (for anonymous use an email address)
*/
password: pulumi.Input<string>;
/**
* The path to upload log files to. If the path ends in `/` then it is treated as a directory
*/
path: pulumi.Input<string>;
/**
* How frequently the logs should be transferred, in seconds (Default `3600`)
*/
period?: pulumi.Input<number>;
/**
* The port number. Default: `21`
*/
port?: pulumi.Input<number>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The PGP public key that Fastly will use to encrypt your log files before writing them to disk
*/
publicKey?: pulumi.Input<string>;
/**
* The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`)
*/
timestampFormat?: pulumi.Input<string>;
/**
* The username for the server (can be `anonymous`)
*/
user: pulumi.Input<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?: pulumi.Input<string>;
/**
* The name of the bucket in which to store the logs
*/
bucketName: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<number>;
/**
* How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic`
*/
messageType?: pulumi.Input<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: pulumi.Input<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?: pulumi.Input<string>;
/**
* How frequently the logs should be transferred, in seconds (Default 3600)
*/
period?: pulumi.Input<number>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The ID of your Google Cloud Platform project
*/
projectId?: pulumi.Input<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?: pulumi.Input<string>;
/**
* The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`)
*/
timestampFormat?: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The ID of your Google Cloud Platform project
*/
projectId: pulumi.Input<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: pulumi.Input<string>;
/**
* The Google Cloud Pub/Sub topic to which logs will be published
*/
topic: pulumi.Input<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: pulumi.Input<string>;
}
export interface ServiceComputeLoggingGrafanacloudlog {
/**
* The stream identifier as a JSON string
*/
index: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The Access Policy Token key for your GrafanaCloudLogs account
*/
token: pulumi.Input<string>;
/**
* The URL to stream logs to
*/
url: pulumi.Input<string>;
/**
* The Grafana User ID
*/
user: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The token to use for authentication (https://www.heroku.com/docs/customer-token-authentication-token/)
*/
token: pulumi.Input<string>;
/**
* The URL to stream logs to
*/
url: pulumi.Input<string>;
}
export interface ServiceComputeLoggingHoneycomb {
/**
* The Honeycomb Dataset you want to log to
*/
dataset: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The Write Key from the Account page of your Honeycomb account
*/
token: pulumi.Input<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?: pulumi.Input<string>;
/**
* Value of the `Content-Type` header sent with the request
*/
contentType?: pulumi.Input<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?: pulumi.Input<number>;
/**
* Custom header sent with the request
*/
headerName?: pulumi.Input<string>;
/**
* Value of the custom header sent with the request
*/
headerValue?: pulumi.Input<string>;
/**
* Formats log entries as JSON. Can be either disabled (`0`), array of json (`1`), or newline delimited json (`2`)
*/
jsonFormat?: pulumi.Input<string>;
/**
* How the message should be formatted. Can be either `classic`, `loggly`, `logplex` or `blank`. Default is `classic`
*/
messageType?: pulumi.Input<string>;
/**
* HTTP method used for request. Can be either `POST` or `PUT`. Default `POST`
*/
method?: pulumi.Input<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: pulumi.Input<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?: pulumi.Input<number>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The maximum number of bytes sent in one request
*/
requestMaxBytes?: pulumi.Input<number>;
/**
* The maximum number of logs sent in one request
*/
requestMaxEntries?: pulumi.Input<number>;
/**
* A secure certificate to authenticate the server with. Must be in PEM format
*/
tlsCaCert?: pulumi.Input<string>;
/**
* The client certificate used to make authenticated requests. Must be in PEM format
*/
tlsClientCert?: pulumi.Input<string>;
/**
* The client private key used to make authenticated requests. Must be in PEM format
*/
tlsClientKey?: pulumi.Input<string>;
/**
* Used during the TLS handshake to validate the certificate
*/
tlsHostname?: pulumi.Input<string>;
/**
* URL that log data will be sent to. Must use the https protocol
*/
url: pulumi.Input<string>;
}
export interface ServiceComputeLoggingKafka {
/**
* SASL authentication method. One of: plain, scram-sha-256, scram-sha-512
*/
authMethod?: pulumi.Input<string>;
/**
* A comma-separated list of IP addresses or hostnames of Kafka brokers
*/
brokers: pulumi.Input<string>;
/**
* The codec used for compression of your logs. One of: `gzip`, `snappy`, `lz4`
*/
compressionCodec?: pulumi.Input<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: pulumi.Input<string>;
/**
* Enables parsing of key=value tuples from the beginning of a logline, turning them into record headers
*/
parseLogKeyvals?: pulumi.Input<boolean>;
/**
* SASL Pass
*/
password?: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* Maximum size of log batch, if non-zero. Defaults to 0 for unbounded
*/
requestMaxBytes?: pulumi.Input<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?: pulumi.Input<string>;
/**
* A secure certificate to authenticate the server with. Must be in PEM format
*/
tlsCaCert?: pulumi.Input<string>;
/**
* The client certificate used to make authenticated requests. Must be in PEM format
*/
tlsClientCert?: pulumi.Input<string>;
/**
* The client private key used to make authenticated requests. Must be in PEM format
*/
tlsClientKey?: pulumi.Input<string>;
/**
* The hostname used to verify the server's certificate. It can either be the Common Name or a Subject Alternative Name (SAN)
*/
tlsHostname?: pulumi.Input<string>;
/**
* The Kafka topic to send logs to
*/
topic: pulumi.Input<string>;
/**
* Whether to use TLS for secure logging. Can be either `true` or `false`
*/
useTls?: pulumi.Input<boolean>;
/**
* SASL User
*/
user?: pulumi.Input<string>;
}
export interface ServiceComputeLoggingKinese {
/**
* The AWS access key to be used to write to the stream
*/
accessKey?: pulumi.Input<string>;
/**
* The Amazon Resource Name (ARN) for the IAM role granting Fastly access to Kinesis. Not required if `accessKey` and `secretKey` are provided.
*/
iamRole?: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The AWS region the stream resides in. (Default: `us-east-1`)
*/
region?: pulumi.Input<string>;
/**
* The AWS secret access key to authenticate with
*/
secretKey?: pulumi.Input<string>;
/**
* The Kinesis stream name
*/
topic: pulumi.Input<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: pulumi.Input<string>;
/**
* The port number configured in Logentries
*/
port?: pulumi.Input<number>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* Use token based authentication (https://logentries.com/doc/input-token/)
*/
token: pulumi.Input<string>;
/**
* Whether to use TLS for secure logging
*/
useTls?: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The token to use for authentication (https://www.loggly.com/docs/customer-token-authentication-token/).
*/
token: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The data authentication token associated with this endpoint
*/
token: pulumi.Input<string>;
/**
* Your Log Shuttle endpoint URL
*/
url: pulumi.Input<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: pulumi.Input<string>;
/**
* Region where logs will be processed before streaming to BigQuery. Valid values are 'none', 'us' and 'eu'.
*/
processingRegion?: pulumi.Input<string>;
/**
* The region that log data will be sent to. Default: `US`
*/
region?: pulumi.Input<string>;
/**
* The Insert API key from the Account page of your New Relic account
*/
token: pulumi.Input<string>;
}
export interface ServiceComputeLoggingNewrelicotlp {
/**
* Apache style log formatting. Your log must produce valid JSON that New Relic OTLP can ingest.
*/
format?: pulumi.Input<string>;
/**
* The version of the custom logging format used for the configured endpoint. Can be either `1` or `2`. (default: `2`).
*/
formatVersion?: pulumi.Input<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: pulumi.Input<string>;
/**
* Where in the generated VCL the logging call should be placed.
*/
placement?: pulumi.Input<string>;
/**
* Region where logs will be